제 질문은 어떻게 파이썬 솔버에 가중치가 적용된 최소 제곱 문제를 넣을 수 있습니까? 나는이 논문에서 접근법을 구현하려고 시도 중이다. here (PDF warning). 문제의 개요가 게시물 하단에 있습니다.scipy weighted least squares solver에 최소화 방정식 넣기 도움이 필요하십니까
구체적 I는 (용지 19) 다음 최소화 방정식 시작할 :
latex formula can be found here는 :
\frac{min}{\Theta \epsilon M} \sum_{j=1}^{n} \sum_{i=1}^{m}(w(i,j))\left | \Psi(i,j)*\Theta (i,j) - I(i,j) \right |^{2}
는 가중 된 최소 제곱 문제로 표현된다.
w
, psi
및 I
은 알려진 것으로, theta
을 해결하려고합니다.
나는 처음에 theta를 취하고 위에 표현 된 것과 똑같이이 방정식의 합계를 반환하는 함수를 만들려고했다. 그런 다음 scipy.optimize.least_squares로 전달했지만 최적화 후에도 theta 값은 항상 동일하게 유지됩니다. 나는 jacobian을 구현하려고 시도했지만, 결과의 합은 엄청난 음의 값으로 폭발합니다. 또한 이미지에서 이것을 실행하려고 시도 할 때 나이가 들었다. (나는 빛 i를 가진 픽셀 j의 픽셀 값이다.)
나는이 문제를 해결하는 방법에 대해 거의 오해하고 있고 그것에 접근하는 데 도움이 될 수 있음을 깨달았다. 내 현재 코드는 다음과 같습니다 :
def theta_solver(self, theta):
imshape = self.images.shape
sm = 0
for j in j_array:
for i in i_array:
w = self.get_w(i, j, theta)
psi = self.non_diff_smoothing(self.get_psi(i, j))
diff = psi*(theta[i, j]) - self.I[i, j]
res = w*(diff)
sm += res
return sm
def solve_theta(self, theta_guess):
res = scipy.optimize.least_squares(self.theta_solver, theta_guess)
뭔가 내가이 문제를 접근하고있어 방법은 방법 기지에서 해요, 내가 올바른 방향으로 손가락을 사용할 수 있습니다 알려줍니다. 시간 내 줘서 고마워.
문제 개요 :
이 특수한 비전 방법을 광도계 스테레오라고합니다. 광원이 다른 장면의 여러 이미지를 찍음으로써 우리는 그 장면의 3D 재구성을 만들 수 있습니다.
광원에서의 쇠퇴는 광원으로부터의 거리에 따라 다르므로 일반적인 선형 솔루션으로는 해결할 수 없습니다.
이 문서에 설명 된 접근법은 밝은 빛의 측광 스테레오를 해결하기위한 비선형 접근법입니다. 해법을 번갈아 세타로 표시되는 각 화소에서 그 표면 Z
해결
- 및
- 알베도/강도 : 그것은 두 가지 일을한다.
이 질문에서 나는 방정식의 theta
요소를 풀려고합니다.이 방정식은 가중치가 적용된 최소 제곱을 통해 해결할 수 있습니다.