金子邦彦研究室インストール小型コンピュータ Raspberry PiRaspberry Pi でカメラをつなぎ顔検出

Raspberry Pi でカメラをつなぎ顔検出

目次

  1. 前準備
  2. virtualenv, virtualenv-wrapperのインストール
  3. PiCamera を使って Raspberry Pi でカメラを動かす
  4. DLib を使って顔検出してみる

【サイト内の Raspbian 関連ページ】

小型コンピュータ 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 でカメラを動かす

  1. カメラを有効に
    1. 端末で、次のコマンドを実行
      sudo raspi-config 
      

      [image]
    2. 5. Interfacing Options」を選ぶ

      [image]
    3. P1. Camera」を選ぶ

      [image]
    4. はい」を選ぶ

      [image]
    5. 了解」を選ぶ

      [image]
    6. 元の画面で「Finish」を選ぶ
    7. はい」を選び、システムを再起動する

      [image]
  2. virtualenv を使って Python 3 環境を作る
    mkvirtualenv --python=/usr/bin/python3 py35
    lsvirtualenv 
    
  3. 動作確認のため picamera をインストール

    端末で、次のコマンドを実行

    source /usr/local/bin/virtualenv-wrapper.sh
    workon py35
    pip install picamera
    

    [image]
  4. カメラの動作確認

    Pythonで、次の Python プログラムを実行してみる

    ※ 画像ファイルは jpg でも png でも保存できる.ここでは「1.jpg」としている.

    import picamera
    camera = picamera.PiCamera()
    camera.capture("1.jpg")
    exit()
    

    [image]
  5. ImageMagick を使って画像表示してみる

    ※ インストールは「sudo apt install imagemagick」

    display 1.jpg
    

    [image]
  6. 画像ファイル名に、日時を含める

    Pythonで、次の Python プログラムを実行してみる

    import picamera
    import datetime
    camera = picamera.PiCamera()
    camera.capture( datetime.datetime.now().strftime("%y%m%d%H%M%S")  + ".jpg" )
    exit()
    

    [image]

    ImageMagick を使って画像表示してみる

    [image]

DLib を使って顔検出してみる

  1. 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 
    
  2. 確認
    source /usr/local/bin/virtualenv-wrapper.sh
    workon py35
    ipython << EOS
    import dlib
    print(dlib.__version__)
    EOS
    

    [image]
  3. 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
    

    [image]
  4. 展開(解凍)し, /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
    

    [image]
  5. 動作確認
    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 .
    

    [image]

    [image]