QRコードの姿勢推定サンプルです。
Note
試験的なリポジトリです
マーカーの姿勢推定を行いたいだけであれば、ArUcoマーカーやApriltagの利用を推奨します
Demo.mp4
- opencv-python 4.9.0.80 or later
サンプルでは以下の7×10のチェスボード型のキャリブレーションパターンを使用します。
01_calibrate_camera.pyのサンプルでキャリブレーションパラメータをcsvに保存し、02_qrcode_pose_estimation.pyを実行してください。
python 01_calibrate_camera.py --square_len=23.0キャリブレーションパターン検出時にEnterを押すことで撮影します。
ESCを押すことでプログラムを終了し、キャリブレーションパラメータを保存します。
注意:--square_lenの単位はmmです
実行時には、以下のオプションが指定可能です。
オプション指定
- --device
カメラデバイス番号の指定
デフォルト:0 - --file
動画ファイル名の指定 ※指定時はカメラデバイスより優先し動画を読み込む
デフォルト:None - --width
カメラキャプチャ時の横幅
デフォルト:1280 - --height
カメラキャプチャ時の縦幅
デフォルト:720 - --square_len
キャリブレーションパターン(チェスボード)の1辺の長さ(mm)
デフォルト:23.0 - --grid_size
キャリブレーションパターン(チェスボード)の行列数(カンマ区切り指定)
デフォルト:10,7 - --k_filename
半径方向の歪み係数の保存ファイル名(csv)
デフォルト:K.csv - --d_filename
円周方向の歪み係数の保存ファイル名(csv)
デフォルト:d.csv - --use_autoappend
キャリブレーションパターン検出時に自動で撮影するか否か(指定しない場合はEnterで明示的に撮影)
デフォルト:指定なし - --interval_time
use_autoappend指定時の撮影間隔(ms)
デフォルト:100
python 02_qrcode_pose_estimation.py --qr_size=8.7注意:--qr_sizeの単位はcmです
実行時には、以下のオプションが指定可能です。
オプション指定
- --device
カメラデバイス番号の指定
デフォルト:0 - --file
動画ファイル名の指定 ※指定時はカメラデバイスより優先し動画を読み込む
デフォルト:None - --width
カメラキャプチャ時の横幅
デフォルト:1280 - --height
カメラキャプチャ時の縦幅
デフォルト:720 - --qr_size
QRコードの1辺の長さ(cm)
デフォルト:8.7 - --k_filename
半径方向の歪み係数の保存ファイル名(csv)
デフォルト:K.csv - --d_filename
円周方向の歪み係数の保存ファイル名(csv)
デフォルト:d.csv
高橋かずひと(https://twitter.com/KzhtTkhs)
qrcode-pose-estimation is under Apache-2.0 License.