MonocularDepthEstimator-Simple-Calibration-Demo.mp4
単眼デプス推定で推定した相対距離をシンプルなキャリブレーションで絶対距離へ変換するプログラムです。
2点以上の実測値から最小二乗法で1次関数へ近似します。
本リポジトリでは単眼デプス推定にMiDaS v2.1 smallを使用しています。
ONNXモデルはPINTO_model_zooのモデルを使用しています。
- opencv-python 4.5.2.54 or later
- onnxruntime 1.5.2 or later
以下コマンドで起動してください。
画面上でマウス左クリックすることで実測値(cm)の入力用のポップアップが出ます。
2点以上で実測値を入力するとマウスポインタ上の距離表示が推論値からキャリブレーション値に変わります。
また、キーボードの「c」を押下することでキャリブレーションの指定をリセットすることが出来ます。
python main.py
実行時には、以下のオプションが指定可能です。
- --device
カメラデバイス番号の指定
デフォルト:0 - --width
カメラキャプチャ時の横幅
デフォルト:640 - --height
カメラキャプチャ時の縦幅
デフォルト:360
利用するモデルを独自にカスタマイズする際には、main.pyの以下個所を変更してください。
def model_load():
from midas_predictor.midas_predictor import MiDaSPredictor
model_path = 'midas_predictor/midas_v2_1_small.onnx'
model_type = 'small'
midas_predictor = MiDaSPredictor(model_path, model_type)
def model_run(image):
result = midas_predictor(image)
return result
return model_run
高橋かずひと(https://twitter.com/KzhtTkhs)
MonocularDepthEstimator-Simple-Calibration is under MIT License.