object_detection と Image depth estimation を使用してオブジェクトの深度を計測
注意
python初心者なのでコードにツッコミどころがるとおみますが、
お気になさらず。
本題です。
作った経緯としては、オブジェクト(画像の中に映ってる人)の距離を計測できるかなって感じです。
今回、使用したモデルはオブジェクト検知の object_detection と midas/v2です
object_detectionのモデルは基本どれを使用しても問題ないはずです。
まず、midas/v2とobject_detectionを使ってこの画像を以下のようにします。




detection_boxesの部分を切り出して、numpy array内を平均で出すと以下になります。
{'id': 17, 'name': 'cat', 'detection_scores': 0.9192501306533813, 'mean': 0.6890426442537253}
だいたい0.69ぐらいです。
この数値が1.0になるほど近くなり0.0になるほど遠くなります。
問題点
- 画像によってmidas/v2の精度が良くない。
- object_detectionからdetection_boxesを使ってmidas/v2から出た画像が以下のように黒い部分の割合が多い場合、平均化する時に良くない影響を出す。

