Ước tính tâm và bán kính của một hình cầu từ các điểm trên bề mặt


9

Nếu chúng ta giả định rằng các điểm dữ liệu của chúng ta đã được lấy mẫu từ bề mặt của một hình cầu (với một số nhiễu loạn), làm thế nào chúng ta có thể phục hồi trung tâm của hình cầu đó?

Trong quá trình tìm kiếm của mình, tôi đã tìm thấy những bài báo về một cái gì đó có nhãn "hồi quy hình cầu", nhưng có vẻ như nó không giống như vậy. Có lẽ tôi chỉ không hiểu nó.

Có một công thức đơn giản, tương tự như hồi quy tuyến tính, tìm thấy một điểm và bán kính tâm hình cầu làm giảm thiểu khoảng cách bình phương tổng của một tập hợp các điểm dữ liệu từ bề mặt của hình cầu?


Chỉnh sửa 1:

Chúng ta có thể giả sử rằng nhiễu sẽ nhỏ hơn 2 hoặc 3 bậc so với bán kính của quả cầu và Gaussian hình cầu đều. Tuy nhiên, bản thân các mẫu chắc chắn sẽ không được vẽ đồng nhất từ ​​bề mặt của hình cầu, nhưng có khả năng sẽ được nhóm lại trong một vài miếng vá trên bề mặt, có khả năng tất cả nằm trong một bán cầu. Một giải pháp hoạt động cho dữ liệu trong là tốt, nhưng một giải pháp chung cho chiều tùy ý cũng rất tuyệt.R3


Chỉnh sửa 2:

Cơ hội nào tôi có thể nhận được câu trả lời hợp lý nếu tôi sử dụng hồi quy tuyến tính, , trong không gian 7 chiều giả vờ rằng các thành phần bình phương độc lập với các tham số khác:y=Xβ+ϵ

X=[2x2y2z1111]β=[x0y0z0x02y02z02r2]y=x2+y2+z2

Tốt nhất, tôi cho rằng số liệu lỗi của tôi sẽ hơi kỳ quặc. Tệ nhất là giải pháp sẽ không gần với sự nhất quán.
... hoặc điều đó thật ngớ ngẩn vì với bốn cột giống hệt nhau, chúng ta có một ma trận số ít khi chúng ta cố gắng thực hiện hồi quy.


Chỉnh sửa 3:

Vì vậy, có vẻ như đây là những lựa chọn của tôi:

  1. Tối ưu hóa số phi tuyến tính bằng cách sử dụng một số hàm chi phí:f(x0,y0,z0,r|X)=12i=1n(r(xix0)2+(yiy0)2+(ziz0)2)2
  2. Hough-Transform: phân biệt không gian hợp lý hoặc các tâm và bán kính có thể xung quanh các điểm dữ liệu. Mỗi điểm bỏ phiếu cho các trung tâm tiềm năng mà nó có thể là một phần của mỗi lần phân biệt bán kính cụ thể. Hầu hết phiếu bầu đều thắng. Điều này có thể ổn nếu có khả năng có một số lượng hình cầu không xác định, nhưng chỉ với một đó là một giải pháp lộn xộn.
  3. Ngẫu nhiên (hoặc có hệ thống) chọn các nhóm 4 điểm và tính toán phân tích trung tâm . Từ chối lấy mẫu nếu không có điều kiện (các điểm gần như phẳng). Từ chối các ngoại lệ và tìm trung tâm trung bình. Từ đó chúng ta có thể tìm thấy bán kính trung bình.

Có ai có một phương pháp tốt hơn?


Lưu ý rằng hai dạng câu hỏi của bạn không tương đương nhau: không nhất thiết là trường hợp tối thiểu hóa tổng bình phương khoảng cách từ bề mặt sẽ đưa ra ước tính tốt nhất trừ khi giả định mạnh mẽ về bản chất của nhiễu loạn. Do đó, sẽ giúp biết thêm về cách nhiễu loạn xảy ra (và chúng có thể lớn đến mức nào so với kích thước của quả cầu). Ngoài ra: trong quả cầu của bạn có bao nhiêu kích thước?
whuber

@whuber Tôi dự định xác định mức phù hợp nhất là mức tối thiểu hóa khoảng cách bình phương của dữ liệu từ điểm gần nhất trên bề mặt của hình cầu. Tôi đã không nghĩ nhiều về các giả định đòi hỏi. Tôi mong đợi các lỗi nhỏ tương xứng; Vì vậy, có lẽ số liệu chính xác không quá quan trọng, mặc dù tôi muốn biết chức năng nào đang giảm thiểu. Tôi đã thêm thông tin về tiếng ồn cho câu hỏi.
JCooper

@Max tôi đã thấy điều đó. Nhưng đó là một trang web cho một sản phẩm thương mại hộp đen. Đó là công thức thực tế mà tôi quan tâm. Nó bắt đầu giống như không có giải pháp dạng đóng và tôi sẽ phải sử dụng phương pháp số thay thế (đó là điều tôi cho rằng phần mềm nlReg cũng đang làm).
JCooper

có vẻ như đây có thể là một vấn đề tối thiểu hóa thẳng với hàm mục tiêu phi tuyến (một vấn đề bạn đã đề cập ở trên). nếu các lỗi được coi là gaussian, bạn chỉ cần tính toán các tham số phân phối của các lỗi sau khi bạn tìm thấy tâm của hình cầu thu nhỏ hàm mục tiêu. chỉnh sửa: tôi đã để trang mở quá lâu và không thấy bình luận của bạn. chúng tôi có cùng một ý tưởng.
giả định

2
Chỉnh sửa lại 3: Đã cho , rất dễ tìm. Để có được , Phương pháp của Newton phải hội tụ nhanh chóng từ một số giá trị bắt đầu hợp lý thu được như trong (3). r ( x 0 , y 0 , z 0 )(x0,y0,z0)r(x0,y0,z0)
whuber

Câu trả lời:


3

Đây là một số Rmã cho thấy một cách tiếp cận bằng cách sử dụng bình phương tối thiểu:

# set parameters

mu.x <- 8
mu.y <- 13
mu.z <- 20
mu.r <- 5
sigma <- 0.5

# create data
tmp <- matrix(rnorm(300), ncol=3)
tmp <- tmp/apply(tmp,1,function(x) sqrt(sum(x^2)))

r <- rnorm(100, mu.r, sigma)

tmp2 <- tmp*r

x <- tmp2[,1] + mu.x
y <- tmp2[,2] + mu.y
z <- tmp2[,3] + mu.z


# function to minimize
tmpfun <- function(pars) {
    x.center <- pars[1]
    y.center <- pars[2]
    z.center <- pars[3]
    rhat <- pars[4]

    r <- sqrt( (x-x.center)^2 + (y-y.center)^2 + (z-z.center)^2 )
    sum( (r-rhat)^2 )
}

# run optim
out <- optim( c(mean(x),mean(y),mean(z),diff(range(x))/2), tmpfun )
out


# now try a hemisphere (harder problem)

tmp <- matrix(rnorm(300), ncol=3)
tmp[,1] <- abs(tmp[,1])
tmp <- tmp/apply(tmp,1,function(x) sqrt(sum(x^2)))

r <- rnorm(100, mu.r, sigma)

tmp2 <- tmp*r

x <- tmp2[,1] + mu.x
y <- tmp2[,2] + mu.y
z <- tmp2[,3] + mu.z

out <- optim( c(mean(x),mean(y),mean(z),diff(range(y))/2), tmpfun )
out

Nếu bạn không sử dụng Rthì bạn vẫn có thể theo logic và chuyển nó sang ngôn ngữ khác.

Về mặt kỹ thuật, tham số bán kính nên được giới hạn bởi 0, nhưng nếu độ biến thiên nhỏ so với bán kính thực thì phương thức không giới hạn sẽ hoạt động tốt hoặc tối ưu hóa có các tùy chọn để thực hiện tối ưu hóa giới hạn, (hoặc bạn chỉ có thể thực hiện giá trị tuyệt đối của bán kính trong hàm để giảm thiểu).


+1 Điều này thực sự tuyệt vời. Vì những lý do hoàn toàn ích kỷ, tôi rất thích xem một bản chỉnh sửa mà (1) giải thích tại sao tâm của các điểm mẫu là ước tính sai lệch của trung tâm thực sự của hình cầu và (2) một nhận xét hoặc hai được thêm vào mã giải thích logic của chức năng giảm thiểu, như là một giải pháp để tránh sự thiên vị của việc sử dụng centroid.
Alexis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.