●RaspberryPi4B 4WD-Car OpenCV 顔認証
2021.08.31
Raspberry Pi 4B を使用した4輪駆動車に OpenCV を install して画像認識を
行い、道路標識を認識して自分で進行方向を変えて走る車を作ります。
DownLoadして installした openCVの顔認証用カスケード分類器部分の
Program (haarcascades)を /home/pi にコピーして、cameraから画像を
取込んで表示するだけの Programを作ります。
$ cd /home/pi
$ sudo mkdir opencv4
$ cd /usr/local/opencv4/opencv/data
$ sudo cp -r haarcascades /home/pi/opencv4
$ cd /home/pi/opencv4
$ sudo nano camDemo.py
4WD Car Python Program : camDemo.py
Errorが出て画像表示が出ない。
Error表示
このErrorは、色々な原因ででてきます。
$ raspistill -v ・・・・Status確認をすると同じ Messageが出る。
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates
第1 raspi-config で cameraが 「有効」に設定されていない。
$ sudo raspi-config ⇒ camera:ONにする。
第2 updateが行われていない。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update ← Raspbian Program Update
第3 Cable の接触不良などで cameraが検出できていない。
$ vcgencmd get_camera
supported=1 detected=1 になっていれば動作中。
第4 Memory 不足でcameraを起動できない。
Increased the GPU memory available from the default of 128 to 256MB
128MBではMemory不足のため 144MB~256MBにする。
第5 daemon Proguram は動作中か。
$ sudo ps aux| grep raspi
avahi 380 0.0 0.0 5768 2516 ? Ss 14:42 0:00 avahi-daemon: running [raspi04.local]
pi 2397 0.0 0.0 3916 548 pts/2 S+ 18:44 0:00 grep --color=auto raspi
第6 camera Program は動作しているか。
$ cd /home/pi/TensorflowLite-bin
$ ps aux | grep picamera
pi 1196 0.0 0.0 3916 576 pts/0 S+ 19:38 0:00 grep --color=auto picamera
第7 camera module 版数と python3 版数はあっているか。
$ cd /home/pi/TensorflowLite-bin
$ dpkg -l | grep picamera
ii python-picamera 1.13 armhf Pure Python interface to the Raspberry Pi's camera module.
ii python3-picamera 1.13 armhf Pure Python interface to the Raspberry Pi's camera module.
第8 競合している Programはないか。
$ cd /home/pi/TensorflowLite-bin
$ dpkg -l | grep camera
ii libdc1394-22:armhf 2.2.5-1 armhf high level programming interface for IEEE 1394 digital cameras
ii libgphoto2-6:armhf 2.5.22-3 armhf gphoto2 digital camera library
ii libgphoto2-port12:armhf 2.5.22-3 armhf gphoto2 digital camera port library
ii python-picamera 1.13 armhf Pure Python interface to the Raspberry Pi's camera module.
ii python3-picamera 1.13 armhf Pure Python interface to the Raspberry Pi's camera module.
第9 openCV と tensorflow-Lite は正常に install されているか。
tensorflowLite ⇒ tflite-runtime 2.7.0 ← Program名称
この Errorは、OpenCVと他の Programが競合して cameraを取りあっている
ために起きている状況です。まず、mjpg-streamerを止めます。
RasPi 4を立上げ時に mjpg-streamer が自動で起動する様に設定しているので、
これを止めます。
$ cd /etc
$ sudo nano rc.local
$ sh /home/pi/mjpg-streamer/start_server.sh &
↓
$ #sh /home/pi/mjpg-streamer/start_server.sh &
これでmjpg-streamerは止める事ができました。
では、再度 openCVを実行してみます。
$ cd /home/pi/opencv4
$ python camDemo.py
今度は違う Errorがでます。
接続方法により Errorの種類は違っています。
● Windowsの tera termから実行すると Errorがでる。
● Chromebookの Secure shellから実行すると Errorが出る。
● VNCで接続した時は、映像画面が表示される。
● RaspberryPiの画面上で termから起動すると映像画面が表示される。
RaspberryPi上又は VNCで接続して、pythonを起動するしかない様です。
次に顔認証用 python Programを nanoを起動して作成します。
$ cd /home/pi/opencv4
$ sudo nano camface.py
4WD Car python Program :camface.py
この Programを実行すると、撮影した画像の中に顔を検出すれば、
SoftWareがその部分に赤四角を表示してくれます。
$ python camface.py
4WD Car と 顔検出用に準備した写真
camface.pyが顔検出した画面
準備した写真のコントラストが良くないのかもしれませんが、検出数は少ない。
次に動画で顔検出を行います
顔検出 Program :CamMovie.py
動画の顔検出画面
----------------------------------------------------------------------------------------------------------------------------