2016-12-22 7 views
0

나는 aruco 마커를 사용하여 카메라 보정을 수행했습니다. 고유 행렬이 K = [fx 0 cx; 0 fy cy; 0 0 1]이고 fx = image_width/2 and fy = image_height/2 인 경우. I 두번 보정을 수행하고 그 결과는 :고유 행렬이 정확한지 어떻게 확인할 수 있습니까?

CASE 1

camera_matrix: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 1.7837087835808685e+004, 0., 9.4648597205501767e+002, 0., 
     1.7846680517567835e+004, 6.2655678552312384e+002, 0., 0., 1. ] 
distortion_coefficients: !!opencv-matrix 
    rows: 1 
    cols: 5 
    dt: d 
    data: [ 1.3214125616841757e-001, 1.3720591379476604e+001, 
     4.1379706976846960e-003, 3.2630160993931338e-002, 
     7.2446581087476508e-002 ] 

CASE 2

camera_matrix: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 3.9925887362481939e+004, 0., 9.6015637557091463e+002, 0., 
     3.5268399261164773e+003, 5.9886507612381956e+002, 0., 0., 1. ] 
distortion_coefficients: !!opencv-matrix 
    rows: 1 
    cols: 5 
    dt: d 
    data: [ 4.4338539084399781e-001, 4.9217843346948866e+000, 
     5.8004377137432547e-002, 1.1762688789809046e-004, 
     -5.4097967557812456e+002 ] 

화상의 해상도 * 1,200 1,920 때문에 cxcy 960이어야하며 두 번째 경우 cxcy은 예상대로입니다. 재 투영 오차가 크다. 다른 경우 cxcy은 일치하지 않지만 재 투영 오류는 매우 낮습니다 (1 미만).

그래서 지금 어떤 결과가 고려 될 수 있으며 가장 좋은 방법 일 수 있으며 fxfy은 일반적으로 정의 할 수 있습니까?

답변

0

cx와 cy가 960과 600에 가까워 야한다는 점에 틀림 없습니다.이 관점에서 케이스 2는 다소 더 가능성이 높지만 케이스 1은 (946,626)의 중심점에서 확실히 그럴듯합니다.

눈썹을 높이는 것은 얻은 초점 거리 매개 변수입니다. 초점 길이 쌍에 대해서는 (17837,17846) 또는 (39925,3526)도 그럴듯한 것으로 보이지 않습니다. 일반적으로 fx 매개 변수는 픽셀 폭 (이 경우 1920)과 2 배 (예 : iPhone 5S의 fx ~ 0.8 * pixelWidth)를 일치시켜야합니다. fx는 fx와 1.2 배 정도 일치해야합니다. 케이스 1의 경우, fx는 폭의 10 배만큼 떨어져 있고, 케이스 2의 fx와 fy의 미스 매치는 10 배입니다.

교정 도구 상자를 여러 개 시험해보고 여러 기계 공학자에게 자동차를 확인하는 것과 같은 두 가지 사항 사이에서 합의를 구하는 것이 좋습니다. 나는 OpenCV의 접근법에 대한 전조가 된 Jean-Yves Bouguet's calibration toolbox을 추천한다.

+0

정보 주셔서 감사합니다. 그러나 트랙을 aruco 마커로 바꾸려면 aruco 보정을 사용하십시오. – Reddy2810

+0

초점 거리가 멀고 초점 거리가 긴 초점 렌즈를 사용하고 있는데 약 35mm입니다. – Reddy2810

0

여전히 카메라에 액세스 할 수 있다면 더 많은 이미지를 캡처하고 보정 절차를 여러 번 반복 해보십시오.

@willem의 답변에서 Jean-Yves' Toolbox을 사용하면 코너 감지와 3D 위치 파악을 시각화하고 시끄러운 이미지를 버릴 수 있습니다. 그러나 Jean-Yves의 Toolbox는 체커 보드에서만 작동하며 사각형이있는 ROI를 수동으로 입력해야합니다.

aruco 보드가 높은 정확도를 제공하지 않는다고 생각하면 Charuco board도 opencv에서 시도 할 수 있습니다.

카메라의 이미 저 크기가 필요하므로 mm 단위의 초점 거리는 픽셀 초점 거리와 관련이 없습니다. 일반적으로 사용할 수 없습니다.

+0

정보를 제공해 주셔서 감사합니다. 보드의 검출은 완벽하고 재 투영 오차는 0.2 픽셀보다 적어 양호한 교정을 나타냅니다. 심지어 여러 번 보정을 수행했지만 두 배로 fx 또는 fy를 얻지는 못했습니다. – Reddy2810

+0

opencv의 'calibrateCamera (..)'함수 ([here] (http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#calibrate 카메라)를 사용하는 경우, intrinsic 행렬에 대한 초기 추정값,'CV_CALIB_USE_INTRINSIC_GUESS'.그것은 당신이 당신이 기대하는 것에 대한 생각을 가지고 있다면 당신을 도울 것입니다. 조금이라도 초기 값을 시도해 볼 수도 있습니다. 나는 2x 규칙을 우연히 만나지 않았다. 그래서 나는 그것에 대해 많이 모른다. –

+0

감사합니다. 물고기 눈 효과가없는 카메라를 보정하면 더 많은 왜곡이 발생합니까? 또는 이미지를 향상시킬 수 있습니까? – Reddy2810