주요 콘텐츠

stereoParameters

스테레오 카메라 시스템 파라미터를 저장하기 위한 객체

설명

stereoParameters 객체는 두 카메라의 내부 파라미터 및 외부 파라미터와 그 기하 관계를 저장합니다.

생성

여기에 설명된 stereoParameters 함수를 사용하여 stereoParameters 객체를 만들 수 있습니다. 또한 입력 영상 점의 M×2×numImages×2 배열과 함께 estimateCameraParameters를 사용하여 stereoParameters 객체를 만들 수도 있습니다. 여기서 M은 각 패턴에 포함된 키포인트 좌표의 개수입니다.

설명

stereoParams = stereoParameters(cameraParameters1,cameraParameters2,poseCamera2)는 두 카메라의 카메라 파라미터와 카메라 2의 자세를 사용하여 스테레오 카메라 시스템 파라미터 객체를 반환합니다. cameraParameters1cameraParameters2는 각각 카메라 1과 카메라 2의 내부 파라미터가 포함된 cameraParameters 또는 cameraIntrinsics 객체입니다. 세 가지 입력 인수는 각각 CameraParameters1 속성, CameraParameters2 속성, PoseCamera2 속성을 설정합니다.

예제

stereoParams = stereoParameters(paramStruct)paramStruct에 저장된 파라미터를 사용하여 기존 stereoParameters 객체와 동일한 stereoParameters 객체를 생성합니다.

입력 인수

모두 확장

스테레오 파라미터로, 스테레오 파라미터 구조체로 지정됩니다. 기존 stereoParameters 객체에서 paramStruct를 가져오려면 toStruct 함수를 사용하십시오.

속성

모두 확장

두 카메라의 내부 파라미터 및 외부 파라미터

카메라 1의 파라미터로, cameraParameters 객체로 지정됩니다. 객체는 카메라의 내부 파라미터, 외부 파라미터, 렌즈 왜곡 파라미터를 포함합니다.

카메라 2의 파라미터로, cameraParameters 객체로 지정됩니다. 객체는 카메라의 내부 파라미터, 외부 파라미터, 렌즈 왜곡 파라미터를 포함합니다.

두 카메라 간 기하 관계

두 번째 카메라의 상대 자세로, rigidtform3d 객체로 지정됩니다. 객체의 R 속성과 Translation 속성은 각각 카메라 1과 카메라 2 간의 상대적인 회전과 평행 이동을 나타냅니다. 다음을 사용하여 카메라 2 좌표를 카메라 1 좌표로 다시 변환합니다.

orientation1 = orientation2 * R
location1 = orientation2 * Translation + location2
orientation1location1은 카메라 1의 절대 자세를 나타내고, orientation2location2는 카메라 2의 절대 자세를 나타냅니다.

Camera 2 displayed in camera 1 coordinate system, with the axis origin at the optical center of camera 1.

stereoParameters 객체를 만든 후에는 PoseCamera2 값을 설정할 수 없습니다.

Fundamental 행렬로, 3×3 행렬로 저장됩니다. Fundamental 행렬은 두 스테레오 카메라의 관계를 나타내며, 다음 방정식을 충족해야 합니다.

[P11]*FundamentalMatrix*[P21]=0

영상 1의 점 P1은 영상 2의 점 P2에 대응합니다. 두 점 모두 픽셀 좌표로 표현됩니다.

Essential 행렬로, 3×3 행렬로 저장됩니다. Essential 행렬은 두 스테레오 카메라의 관계를 나타내며, 다음 방정식을 충족해야 합니다.

[P11]*EssentialMatrix*[P21]=0

영상 1의 점 P1은 영상 2의 점 P2에 대응합니다. 두 점 모두 카메라의 광학적 중심을 원점으로 하는 정규화된 영상 좌표로 표현됩니다. xy 픽셀 좌표는 초점 거리 fxfy로 정규화됩니다.

추정된 파라미터의 정확도

모든 영상 쌍에서 재투영된 점과 검출된 점 사이의 평균 유클리드 거리로, 픽셀 단위로 지정됩니다.

카메라 파라미터 추정 설정

두 카메라의 외부 파라미터를 추정하는 보정 패턴의 개수로, 정수로 저장됩니다.

보정 패턴의 키포인트에 대한 세계 좌표로, M×2 배열로 지정됩니다. M은 패턴에 포함된 키포인트 개수를 나타냅니다.

세계 좌표 점 단위로, 문자형 벡터로 지정됩니다. 문자형 벡터는 측정 단위를 나타냅니다.

객체 함수

toStructConvert a stereo parameters object into a struct

예제

모두 축소

보정 영상을 지정합니다.

leftImages = imageDatastore(fullfile(toolboxdir("vision"),"visiondata", ...
    "calibration","stereo","left"));
rightImages = imageDatastore(fullfile(toolboxdir("vision"),"visiondata", ...
    "calibration","stereo","right"));

체커보드를 검출합니다.

[imagePoints,boardSize] = ...
  detectCheckerboardPoints(leftImages.Files,rightImages.Files);

체커보드 키포인트의 세계 좌표를 지정합니다. 사각형 크기의 단위는 밀리미터입니다.

squareSize = 108;
worldPoints = patternWorldPoints("checkerboard",boardSize,squareSize);

스테레오 카메라 시스템을 보정합니다. 두 카메라의 해상도는 같습니다.

I = readimage(leftImages,1); 
imageSize = [size(I,1) size(I,2)];
params = estimateCameraParameters(imagePoints,worldPoints, ...
    "ImageSize",imageSize);

보정 정확도를 시각화합니다.

showReprojectionErrors(params)

Figure contains an axes object. The axes object with title Mean Reprojection Error per Image, xlabel Image Pairs, ylabel Mean Error in Pixels contains 5 objects of type bar, line. These objects represent Camera 1, Camera 2, Overall Mean Error: 0.06 pixels.

카메라 외부 파라미터를 시각화합니다.

figure
showExtrinsics(params)

Figure contains an axes object. The axes object with title Extrinsic Parameters Visualization, xlabel X (mm), ylabel Z (mm) contains 28 objects of type patch, text, line.

구조체로 변환합니다.

paramsStruct = toStruct(params)
paramsStruct = struct with fields:
       CameraParameters1: [1×1 struct]
       CameraParameters2: [1×1 struct]
       RotationOfCamera2: [3×3 double]
    TranslationOfCamera2: [-119.8720 -0.4005 -0.0258]
                 Version: [1×1 struct]
     RectificationParams: [1×1 struct]

참고 문헌

[1] Zhang, Z. "A Flexible New Technique for Camera Calibration." IEEE Transactions on Pattern Analysis and Machine Intelligence 22, no. 11 (November 2000): 1330–34. https://doi.org/10.1109/34.888718..

[2] Heikkila, J., and O. Silven. “A Four-Step Camera Calibration Procedure with Implicit Image Correction.” In Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1106–12. San Juan, Puerto Rico: IEEE Comput. Soc, 1997. https://doi.org/10.1109/CVPR.1997.609468.

확장 기능

모두 확장

버전 내역

R2014a에 개발됨

모두 확장