け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

●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



この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
camface



この Programを実行すると、撮影した画像の中に顔を検出すれば、
SoftWareがその部分に赤四角を表示してくれます。
 $ python camface.py


 4WD Car と 顔検出用に準備した写真



 camface.pyが顔検出した画面



準備した写真のコントラストが良くないのかもしれませんが、検出数は少ない。



次に動画で顔検出を行います




 顔検出 Program  :CamMovie.py
movie




 動画の顔検出画面


----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan