Raspberry Pi でカメラをつなぎ顔検出
前準備
Raspbian のシステム更新
Raspbian のシステム更新を行っておく.
次のコマンドを実行.
sudo apt -y update
sudo apt -yV upgrade
sudo apt -yV dist-upgrade
sudo apt -yV autoremove
sudo apt autoclean
sudo shutdown -r now
virtualenv, virtualenv-wrapperのインストール
virtualenv, virtualenv-wrapperのインストール
sudo rm -rf $HOME/.virtualenvs
sudo rm -rf ~/.cache/pip
sudo pip install virtualenv virtualenv-wrapper
sudo pip3 install virtualenv virtualenv-wrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenv-wrapper.sh
touch ~/.bashrc
echo -e "\n# virtualenv and virtualenv-wrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
echo "source /usr/local/bin/virtualenv-wrapper.sh" >> ~/.bashrc
source ~/.bashrc
PiCamera を使って Raspberry Pi でカメラを動かす
-
カメラを有効に
- 端末で、次のコマンドを実行
sudo raspi-config
- 「5. Interfacing Options」を選ぶ
- 「P1. Camera」を選ぶ
- 「はい」を選ぶ
- 「了解」を選ぶ
- 元の画面で「Finish」を選ぶ
- 「はい」を選び、システムを再起動する
- 端末で、次のコマンドを実行
- virtualenv を使って Python 3 環境を作る
mkvirtualenv --python=/usr/bin/python3 py35 lsvirtualenv
- 動作確認のため picamera をインストール
端末で、次のコマンドを実行
source /usr/local/bin/virtualenv-wrapper.sh workon py35 pip install picamera
- カメラの動作確認
Pythonで、次の Python プログラムを実行してみる
* 画像ファイルは jpg でも png でも保存できる.ここでは「1.jpg」としている.
import picamera camera = picamera.PiCamera() camera.capture("1.jpg") exit()
- ImageMagick を使って画像表示してみる
* インストールは「sudo apt install imagemagick」
display 1.jpg
- 画像ファイル名に、日時を含める
Pythonで、次の Python プログラムを実行してみる
import picamera import datetime camera = picamera.PiCamera() camera.capture( datetime.datetime.now().strftime("%y%m%d%H%M%S") + ".jpg" ) exit()
ImageMagick を使って画像表示してみる
DLib を使って顔検出してみる
- dlib をビルドしインストール
source /usr/local/bin/virtualenv-wrapper.sh workon py35 cd /tmp wget http://dlib.net/files/dlib-19.15.zip unzip dlib-19.15.zip cd /tmp/dlib-19.15 rm -rf build mkdir build cd build cmake .. cmake --build . sudo make install cd /tmp/dlib-19.15 python setup.py install
- 確認
source /usr/local/bin/virtualenv-wrapper.sh workon py35 ipython << EOS import dlib print(dlib.__version__) EOS
-
trydlib.htmlの
「学習済みモデルデータのダウンロードの展開(解凍)」の
記述の通りに、
3つのファイルをダウンロード
wget http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2 wget http://dlib.net/files/mmod_human_face_detector.dat.bz2 wget http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2 ls -la *.bz2
- 展開(解凍)し, /tmp/dlib-19.15 にコピー
bzip2 -d dlib_face_recognition_resnet_model_v1.dat.bz2 bzip2 -d mmod_human_face_detector.dat.bz2 bzip2 -d shape_predictor_5_face_landmarks.dat.bz2 cp *.dat /tmp/dlib-19.15 ls -la *.dat
- 動作確認
cd /tmp/dlib-19.15 display 1.jpg python face_recognition.py shape_predictor_5_face_landmarks.dat dlib_face_recognition_resnet_model_v1.dat .