Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、
試してみました。の#2 です。
https://github.com/google-coral/examples-camera
テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
USB カメラ
coco学習データのまま、Windows10 の USBカメラで自分を映していたら、コーヒーカップにも反応するので、
少し応用を考えてみました。
コーヒーカップを検出で来たら、スピーカに "コップ" と出せないかとGoogle で、Pythonでの音の作成を探していたら、
が出ていたので、早速取り入れて、 wav ファアイルを作成して試してみました。
1. wav ファイルの作成 。
取り敢えず、下記プログラムで、"コップ ぞね","ねこ ぞね","犬 ぞね" と発声する wav ファイルを
それぞれ、ファイル名称を変えて作成します。
neko.wav , inu.wav , kop.wav
sayaka-wav.py
2. 次は、コップを検出したら、"コップぞね" と発声するプログラムの作成です。
detect-speaker.py
>python detect-speaker.py
で実行します。
上記、プログラムで、猫、犬、カップ を検出すると、それぞれ、
"ねこ ぞね"、"犬 ぞね"、"コップ ぞね" と発声します。
まあ、発声している時は、映像は止まりますが、これも、お愛嬌のうちぞね。
この後は、 Raspberry Pi 3B+ と Coral Edge TPU USB で、猫を検出したら、"ねこ ぞね"
と言わせてみようかと、考えちょります。
3. Raspberry Pi 3B+ で走らせてみました。
Raspberry Pi 3B+ and Buster
どうも、PyAudio にバグあるみたいで、Sample Rate=48000 でないと NG のようです。
Raspi での実行の為に、別途、48K の WAV ファイルを用意するのが面倒なので、
simpleaudio を使う事にしました。
https://simpleaudio.readthedocs.io/en/latest/tutorial.html
detect-speaker2.py
何とか、Raspi でも WAVがでるようになりましたが、出だしの音が聞こえないみたいです。
Windows10 だと問題無いのですが、...
後、Raspi では、picamera を使うようにしました。
raspi-config で設定すれば、 picamera でも OpenCV でそのままアクセスできました。
但し、picamera だとバッファリングされて、先読みされている様で、
スピーカーで発声している時も、キャプチャーされた映像が溜まっているようで、
どうも感覚と一致しません。
スピーカーで発声し終わった時は、実際のカメラの前の映像は先に進んでいるのに、
その後も、バッファされた古い映像が出てくるので、ある意味、具合が悪いです。
Windows10 だと、発声している間は、映像が止まっていて、発声が終了した時の映像が、
次に画面に表示されるので、こちらの方が、感覚と一致するのではと思います。