opencv 라이브러리를 이용한 카메라 캘리브레이션 방법입니다.
기존에 EasyMocap에서 가이드한 소스를 참고했는데 이 부분과 charuco board를 사용한 방식을 같이 정리합니다.
1. EasyMocap
https://github.com/zju3dv/EasyMocap/tree/master/apps/calibration
위 URL 참조
export data2=/../data/intri_data
python3 apps/calibration/detect_chessboard.py ${data2} --out ${data2}/output/calibration --pattern 9,6 --grid 0.072
python apps/annotation/annot_calib.py $data2 --mode chessboard --pattern 9,6 --annot chessboard
python3 apps/calibration/calib_intri.py ${data2}
export data=/../data/extri_data
python3 apps/calibration/detect_chessboard.py ${data} --out ${data}/output/calibration --pattern 9,6 --grid 0.07
python apps/annotation/annot_calib.py $data --mode chessboard --pattern 9,6 --annot chessboard
python3 apps/calibration/calib_extri.py ${data} --intri ${data2}/output/intri.yml
내부 파라미터 폴더(intri_data), 외부 파라미터 폴더(extri_data) 안에 "images" 폴더 만들고, 카메라 수가 3대면, "images/01", "images/02", "images/03" 폴더 만들어서 그 안에 이미지 파일 넣으면 됩니다. 물론 파일명은 다른 카메라와 동일하게 해주세요.
결과 확인
출처 : EasyMocap
python3 apps/calibration/check_calib.py ${data} --out ${data}/output --mode cube --write
output 폴더 아래에 cube 폴더가 생깁니다. 거기서 결과 파일 확인할 수 있습니다.
2. charuco board
가이드 소스가 모두 옛날 버전으로 되어있어 최신 버전으로 고친 코드입니다.
해봤는데 잘 못잡네요
웹캠 뜨면 space 버튼 눌러서 10개 내외로 저장 후 ESC 누르면 됩니다.