ラズパイ openCVによる顔認識

1110月 - による raspiwordfan - 0 - ラズパイ 未分類

(2018/8)ラズパイに公式でtensorflow対応とのこと。

https://www.tensorflow.org/install/install_raspbian

pip3 install tensorflow できるようになったらしい

 

 

 

https://qiita.com/PonDad/items/cb78b14297ed16cc74ce

基本ここのをみてやった。

ここの前記事のリンゴのも参考に。

 

各種スクリプトエラーは、cascade xmlファイルの位置書き換えやモジュールインストールを確認

画像クローリング

pip install opencv-python

pip install opencv-contrib-python

pip install matplotlib

pip install scipy

pip install  ipython pyreadline

pip install bs4

pip install scikit-learn

pip install pillow

(pip install tensorflow ?) 32bit pythonには対応していない?->tensorflow

32bit は、ソースからビルドしなきゃいけないようだ

(ubuntuでのビルド)

TensorFlowを32bit-Ubuntuにインストールした時のメモ

 

get_images_yahoo.py

collect_face_samples.py -p ./data

下記3種スクリプトは、

categories = [“humanA”, “humanB”, “humanC”, “humanD”, “humanE”, “masahito”]を編集

face_makedata.py (ワーニング出るけど大丈夫だった)

face_keras.py

face_checker_cv_notalk.py

 

https://qiita.com/suppy193/items/91609e75789e9f458c39

 

https://qiita.com/suppy193/items/91609e75789e9f458c39

 

Raspberry Pi 3にOpenCV 3.1のインストール

参考にいろいろインストール

 

 

 

 

 

画像収集スクレイピング(ここのはできたが、他のサイトのはなかなかできなかった・・・)(ユーザーエージェントをいれないとだめそう?)

 

 

画像切り出し

 

sudo pip3 install opencv-python

 

画像顔切り出しのスクリプトのカスケードファイル位置

カスケードファイルの場所(検索で探した)

/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml

 

ファイル名、拡張子が大文字だとだめだった、リネーム

画像余分なのは手動で削除。

 

各種必要なものインストール

https://kinformation.wjg.jp/blog/20170718-01

結構時間かかる

 

 

makefile

numpy error

https://stackoverflow.com/questions/33859531/runtimeerror-module-compiled-against-api-version-a-but-this-version-of-numpy-is

 

tensoflow インストール

https://qiita.com/ekzemplaro/items/553db4c229632af79607

 

tensoflow 1.1.0 はpython3.4用。

pytnon 3.5用は、作ってくれた人がいる。

https://qiita.com/Dreamwalker/items/5119f312446ec392b04b

だめだった

 

tensoflow 1.01も

https://github.com/samjabrahams/tensorflow-on-raspberry-pi/issues/92

これできた!

 

 

 

なんか

Corrupt JPEG data: 1 extraneous bytes before marker 0xd3

とか毎回でてくるのは、

ret, frame = cap.read()

で出てしまう?

https://pythonexample.com/search/opencv%20dilate%20gray/63

バグなのか?

他のページでは、logicoolカメラはYUV MJPEG形式のなんやらで出てしまうとのことで、opencvコンパイルオプション変えればよいとか高校生のブログとかで書いてあるとのこともネットに書いてあったが、ひとまずJPEGは出来ているので、

上記のサイトのコメントアウト欄にあるとおり、

2>/dev/null

で逃げる。(スクリプト実行時に加える)

http://www.itmedia.co.jp/help/tips/linux/l0388.html

 

つまりエラー出力表示をけしてるだけだけど・・・

 

 

 

スレッド分け

https://ja.stackoverflow.com/questions/21773/python2%E3%81%AEopencv3%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC

そのエラーのひとつ

OpenCV3では名前空間が整理されてcv2.cv.CV_BGR2GRAYはcv2.COLOR_BGR2GRAYになりました。他のcv2.cv.CV_…もこんな感じで移行されています。それで見つからない場合はマニュアルを検索してください。

 

opencvのGUI 基本はhighgui

pygameに映す方法もある(「opencv pygame」で検索)

opencvのGUI cvui

OpenCVのための軽量GUIライブラリ『cvui』

 

windows

tensorflow は、Python 3.x系は、3.5の64bit対応のみぽい

windows の pygameは、Python 32bitのみ

 

 

 

web上の画像を読み込み

urllib.requestを使うことでウェブ上のデータを読み込める。

imreadで直接jpg指定するのはよくわからないができなかった

 

 

 

画像類似度の種類いろいろある

AKAZE, ORB

パターンマッチング

画像単体のハッシュいろいろで比較

imagehash (pip install imagehash) http://tech.unifa-e.com/entry/2017/11/27/111546

hash = imagehash.average_hash(Image.open(‘test.png’))
>>> print(hash)
d879f8f89b1bbf

imagehash.dhash, imagehash.phash など

 

 

 

windows でやったときのメモ(インストールから)

https://qiita.com/t2y/items/2a3eb58103e85d8064b6

ダウンロードアドレスは公式サイトTOPのほうから

anaconda インストール、Environment で一つ作る

https://qiita.com/FukuharaYohei/items/d8f82c827e0bae70096a

tensorflowインストール

pip install --ignore-installed --upgrade tensorflow

pip 自体のアップグレード?

ドライブの移動は cd /d D:\ (/D だとだめだった)

 

pip install opencv-python

pip install opencv-contrib-python

pip install sklearn

pip install scipy

pip install keras

pip install pillow (PILではなかった)

 

このあとは実行

一応画像を32x32にリサイズしなおして実行した

python collect_face_samples.py -p <path>

(haarcascade_frontalface_alt.xml をローカルフォルダにもってきた、ラズパイではpython3 コマンドでやった)

python face_makedata.py

(ソースの画像場所、カテゴリ編集)

python face_keras.py

(ソースの画像場所、カテゴリ編集)

python face_checker_cv_notalk.py

(ソースの画像場所、カテゴリ編集、haarcascade_frontalface_alt.xml をローカルフォルダにもってきた、epoch 数調整、なぜかカテゴリ数ごとにゴリコーディングなのでカテゴリ数まで分岐増やす[0][0]~[0][18]など、秒数0.4 -> 0.2)

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です