OpenCV 2.4.2를 실행 중입니다.3D 재구성을위한 OpenCV 보정되지 않은 카메라 수정
내 프로젝트는 3D 얼굴 인식으로 구성됩니다.
수정되지 않은 카메라으로 촬영 한 이미지 쌍으로 3D 모델을 만들려고합니다. 목표는 식별 프로세스에 사용할 3D 기능을 얻는 것입니다.
나는 카메라를 보정하고 교정하려고하는데 좋은 결과를 얻지 못했습니다. 나는 다음과 같이했다 : 호모 그래피 행렬 를 얻기 위해 "stereoRectifyUncalibrated"중고 - - "findFundamentalMat" 에 기본 매트릭스 덕분에 계산 된 - 2 개 이미지 기능 사이에서 발견 대응 - - 추출 서핑은 2 개 이미지 에서 제공 을 사용 " warpPerspective "를 첫 번째 이미지와 첫 번째 호모 그래피 행렬을 사용하여 결과를 확인합니다.
내가 아주 나쁜 결과를 가지고 내가 지금 무엇을 해야할지하지 않습니다
... 는 그 알고리즘을 맞습니까? 어떠한 제안?얼굴 인식을 향상시키는 데 사용할 수있는 어떤 종류의 3D 기능입니까? 여기 교정 코드
는 :
/// Conversione di 1 vettore di keypoints in 2 vettori di Point2f
vector<int> pointIndexesLeft;
vector<int> pointIndexesFront;
for (vector<DMatch>::iterator it= matches_FL.begin(); it!= matches_FL.end(); ++it) {
// Estrazione degli indici
pointIndexesLeft.push_back(it->queryIdx);
pointIndexesFront.push_back(it->trainIdx);
}
// Convrsione dei keypoints in Point2f
vector<cv::Point2f> selPointsLeft, selPointsFront;
KeyPoint::convert(keypoints_left,selPointsLeft,pointIndexesLeft);
KeyPoint::convert(keypoints_front,selPointsFront,pointIndexesFront);
// Calcolo della matrice fondamentale
Mat F = findFundamentalMat(
Mat(selPointsFront), // points in first image
Mat(selPointsLeft), // points in second image
CV_FM_RANSAC); // 8-point method
/// Rettifico la camera
Mat H1,H2;
stereoRectifyUncalibrated(selPointsFront, selPointsLeft, F, img_front.size(), H1, H2,3);
Mat out_right= Mat::zeros(img_front.rows, img_front.cols, img_front.depth());
Mat out_left= Mat::zeros(img_left.rows, img_left.cols, img_front.depth());
warpPerspective(img_front,out_right, H1, img_front.size(), INTER_LINEAR | WARP_INVERSE_MAP, BORDER_TRANSPARENT);
warpPerspective(img_left,out_left, H2, img_left.size(), INTER_LINEAR | WARP_INVERSE_MAP, BORDER_TRANSPARENT);
imshow("out_right", out_right);
imshow("out_left", out_left);
모든 처음 탐지/식별
카메라가 온라인 데이터 세트에서 왔기 때문에 카메라를 보정 할 방법이 없으므로 내장 및 외재 측정 매트릭스를 계산할 수 없습니다. 이미 2 장의 이미지를 계산했습니다. 그럼 내가 F 매트릭스와 "stereoRectifyUncalibrated"H1과 H2와 함께 그리고 disparity map.I "disroity map과"imaginary "Q matrix로부터"reprojectImageTo3D "를 계산했다. (나는이 행렬을 어떻게 만들지 모르겠다. 단위 행렬). Triangulate의 의미는 무엇입니까? 좀 더 구체적으로 표현해 주실 수 있습니까? 저는 식별을 위해 3D 기능을 사용하고 싶습니다 (어떤 기능 사용에 대한 아이디어가 있다면). – Gappa