Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、
試してみました。の #4 です。
今回は、気になった点の改善を行ってみました。
https://github.com/google-coral/examples-camera
テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
USB カメラ
試したのは、上記プログラムの、examples-camera/opencv/ です。
最近、guichristmann/edge-tpu-tiny-yolo を試してみて、再度、こちらの
Coral Edge TPU USB のサンプルの Object Detecton を試す。
を動かしてみると、微妙に検出ボックスが大きい気がしました。
プログラムを調べてみると、 guichristmann/edge-tpu-tiny-yolo と、examples-camera/opencv/ では、画像の取り込みと、
検出ボックスの変換に違いがありました。
guichristmann/edge-tpu-tiny-yolo は、入力画像の縮小時に、元画像アスペクト比を維持して縮小しているのに対して、
examples-camera/opencv/ は、単純に入力画像を、入力テンサーサイズ 300x300 に縮小しているので、
元画像アスペクト比が維持されなくなっていました。
なので、微妙に検出ボックスのサイズが大きくなっている気がします。
ですので、今回は、guichristmann/edge-tpu-tiny-yolo の入力画像の縮小と、検出ボックスの描画の処理を取り入れてみました。
注) guichristmann/edge-tpu-tiny-yolo の、ボックスの描画処理もバグがあって、横長の画像は問題ないですが、
縦長の画像ではバグっています。
今回は、そのバグも改修しています。
detect_nishi.py
これで、検出ボックスのサイズが、幾分小さく纏まった気がします。
また、検出の正解率が、少しだけ良くなります。
但しオリジナルの儘でも、入力画像のアスペクト比が、1:1 だと問題は、ありません。
USB カメラで、OpenCV で取り込むと、480:640 とかになるので、その場合は、影響がでます。
オリジナルのままで、USB カメラで自分の顔を判定して試してみたのですが、検出ボックスが、結構大きいので、
これでは、余りに使い物にならないと思っていました。
しかし、今回の改造版であれば、少しは実用に耐え得る気がします。