Raspberry Piで画像処理ライブラリ”OpenCV”使って”顔認識”試してみた
画像処理が出来るといろいろ面白そうなので、Raspberry Piに”OpenCV”を入れて遊んでみることにしました。
参考にしたのはこちらの記事。
(35連休)4日目:Raspberry Pi(OpenCVのインストール〜リアルタイム顔認識) - hsuetsugu’s diary
ここの記事を参考に、リアルタイムのカメラ画像の表示から顔認識までさせます。
まず、Raspberry PiをVNCでPC・iPhoneから操作できるようにしないといけません。参考にしたのはこちら。
Raspberry Piの設定【VNCサーバ(tightVNC)の設定】 - Aldebaranな人のブログ
ただしうちのRaspberry Piではどうしてもtightvncが自動起動してくれないため、一旦Tera Termでつなぎ
tightvnc startx &
と打ち込んでからVNCでつないでます。
メインPC、iPhoneともに使ってるVNC Viewerは”RealVNC”ってやつです。
PC用:RealVNC日本語インストール版の詳細情報 : Vector ソフトを探す!
iPhone用:VNC Viewerを App Store で
また、つないだUSBカメラは以前買ったサンコー USB防水内視鏡カメラを使用。
余計な線が多過ぎ!
しかし、手ごろなカメラが見つからなかったんですよね。もうちょっとまともなカメラがどこかにあるはずなんですけど。
こんなカメラで大丈夫か!?と思ったので、以下のサイトを参考に動作確認。
Raspberry Piを使用してWEBカメラの動作確認を行う方法 (参考資料) — Akizuki 1 documentation - dx-670_raspberry_pi_setting.pdf
問題なく動きます。こんなカメラでも一応”Webカメラ”なんですね。
さて、前置きは置いておき、最初のリンク先に従ってOpenCVを導入。
まず
sudo apt-get update
としてから以下のコマンドを実行。
sudo apt-get install libopencv-dev sudo apt-get install python-opencv
これでOpenCVと、Python上でOpen CVを使う環境を導入できます。
続いて以下のコードを作成。
#!/usr/bin/python import cv2.cv as cv import time cv.NamedWindow("camera", 1) capture = cv.CaptureFromCAM(0) # 画像サイズの指定 cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,320) cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT,240) while True: img = cv.QueryFrame(capture) cv.ShowImage("camera", img) if cv.WaitKey(10) > 0: break cv.DestroyAllWindows()
これを”camera.py”という名前で保存して
python camera.py
と実行すると、カメラの画像が映し出されます。
iPhoneのVNCを使っても同様にカメラ画像が確認できます。
さて、せっかくなんで”顔認識”までやらせてみました。
こちらはいちいちコードを打ち込むことなく出来ます。
まず下記サイトに行き
TechnoLabsz: How to easily install OpenCV on Raspberry Pi
ここのちょっと下の方にある”8)Download the source code from below”の下にある”Download”をクリックすると、ダウンロードサイトへ移動。
「DOWNLOAD(92.16KB)」というボタンをクリックすると”face_detect_rpi.zip”という圧縮ファイルが入手できます。
解凍すると”face.xml”と”facedetect.py”の2つのファイルが出てくるので、これをRaspberry Piに転送します。
Windows PCでTera Termを使っていれば簡単にファイル転送できます。
まず転送したい場所(ディレクトリ)にTeraTerm上であらかじめ移動。
そして転送したいファイルをTera Termにドラッグ&ドロップすると
こんな画面が出てくるので”SCP”をクリック。
すると転送完了。楽ですね。
ただし複数ファイルを同時に送ることが出来ないため、”face.xml”と”facedetect.py”の2回分やる必要はありますが。
転送を完了したら、VNC上のRaspberry Piターミナルで
python facedetect.py --cascade=face.xml 0
と実行するだけ。
顔と認識すると、顔部分を赤枠で表示されます。
うまるちゃんも一応顔認識されました。
リアルタイム認識ですが、1~2fps程度でしか動きません。カメラを向けても反応するまでしばらくかかります。
せめてRaspberry Pi 2だったら・・・そろそろ買おうかなぁ。
さて、せっかく導入したOpenCVですが、サンプルを使うならともかく、実際に画像解析ソフトを作るとなると難易度がぐっと上がります。
一応、この辺でどういう機能があるのかを勉強中ですが
OpenCV 2.2 Python リファレンス — opencv 2.2 documentation
あまりに機能が多過ぎて、まず何をやりたいかをイメージしてとっかからないとだめそうです。
せっかくRaspberry Piを使うので、単に画像処理で終わらせるのではなく、画像処理した結果に基づいて何か動作してくれる、てなものを作りたいと考えてます。
といっても、電子工作もプログラムも中途半端な知識しかない私。何が作れるんでしょうか?
OpenCV自体はPCでも使えるわけですし、それこそ会社で使うソフトを作ってもいいわけですし。Raspberry Piにこだわる必要はありません。
てことで、しばらくは勉強してみます。何か面白いものが作れたら記事にしますね。
![]() |
![]() |
« レトロ・パソコンなお店”BEEP”の在庫状況 | トップページ | テレビモニターに収納棚 勉強机のついたベッド”wave chaise” »
「Raspberry Pi・Arduino・電子工作」カテゴリの記事
- 名古屋 大須へ行ってきました(2024.04.28)
- Raspberry Pi 5用電源購入(2024.04.19)
- Interface 2024年5月号はRaspberry Pi 5特集(2024.03.26)
- Raspberry Pi 5とPCがつながらなかった理由は「プライバシーセパレーター機能」のせいでした(2024.03.12)
- Raspberry Pi 5に日本語LLM(ELYZA-Japanese-Llama-2-7b-fast-Instruct)を入れてみた(2024.03.10)
「数値解析系」カテゴリの記事
- 生成AI系の本を2冊購入(2025.01.30)
- Windows 11でFORTRANをコンパイルしたい!という方への対処法(2025.01.04)
- どこに視線を向けているかを可視化してくれる物体検出器(2024.12.23)
- 2024年まとめ記事(2024.12.31)
- 生成AI解説書籍「ChatGPT & 生成AI」という本を買った(2024.12.08)
コメント
« レトロ・パソコンなお店”BEEP”の在庫状況 | トップページ | テレビモニターに収納棚 勉強机のついたベッド”wave chaise” »
こんにちは。はじめまして。Raspberry pi とかリナックスの初心者です。
今日、Raspberry pi3 にカメラモジュール NoIR V2をつなげて、静止画と短い動画撮影を確認したところです。このあと、実はサーモグラフィーを作りたいと思っています。
WEBカメラの定点観測のように被写体の温度変化を色づけて知りたいのです。
動画にとれればもちろんいいのですが。
このあと、どのようなことをしたら良いのか、もし何かご教示いただければ幸いです。
お忙しいところすみません。
投稿: Shin | 2017年10月 9日 (月) 21時32分
こんにちは、shinさん。
まず、サーモグラフィーを作るには、それ用のセンサーを買わないといけません。私は以前にオムロンのDT6-44L-06というセンサーを買ったことがあります。
https://arkouji.cocolog-nifty.com/blog/2016/11/memsd6t-44l-06-.html
4×4の解像度で7000円以上しました。結構サーモグラフィー用センサーって高いです。Raspberry Piで使えるやつで、約4万円くらいするようです。
https://arkouji.cocolog-nifty.com/blog/2014/12/raspberry-pi-9b.html
この辺りのセンサーの色表示を半透明にして、OpenCVなどを使ってカメラの画像の上に重ねてやれば、おそらく狙いのものが作れると思いますが、やったことがないですね。結局、サーモグラフィーセンサーは放置してます。もったいないことです。
投稿: arkouji | 2017年10月10日 (火) 09時39分