赤外線カメラで暗闇でも顔認証する!

5月 14, 2021

今回は暗い場所でも顔認証するために赤外線カメラを使ってみました. USBカメラだと可視光の反射を映像とするので, 暗い場所での顔認証は別途光源が必要です. 一方で赤外線カメラは, 赤外光の反射を用いており, 暗闇でも顔の情報を得ることができ, 顔認証することができます. これにより例えば, スマートロックと顔認証を連携した際, 夜帰ってきたときでも鍵を開けることができます. ぜひお試しを!

準備したもの

暗い場所でも映像を撮るために, 赤外線カメラを準備しました.
2個の赤外線LEDライトを備えており, この反射光を利用して, 映像をキャプチャします.

上記の赤外線カメラの制約からRaspberryPiを使用します.

RaspberryPi用のケースも準備しました.

セットアップ

Raspberry Pi

まずはRapberry Pi自身のセットアップをしましょう.

Rapberry Piのセットアップが完了したら, カメラの使用許可とGPUの設定をし, 再起動します.

# enable camera
sudo raspi-config
  • Enable the Raspberry Pi camera (if you have one attached)
  • Save changes and reboot.

顔認証に必要なライブラリをインストールします.

# install necessary library
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential \
    cmake \
    gfortran \
    git \
    wget \
    curl \
    graphicsmagick \
    libgraphicsmagick1-dev \
    libatlas-dev \
    libavcodec-dev \
    libavformat-dev \
    libboost-all-dev \
    libgtk2.0-dev \
    libjpeg-dev \
    liblapack-dev \
    libswscale-dev \
    pkg-config \
    python3-dev \
    python3-numpy \
    python3-pip \
    zip
sudo apt-get clean

OpenCVのインストール

インストール時にメモリ不足を防ぐため, 一時的にスワップ領域を拡張します.

sudo nano /etc/dphys-swapfile

< change CONF_SWAPSIZE=100 to CONF_SWAPSIZE=1024 and save / exit nano >

sudo /etc/init.d/dphys-swapfile restart

opencvをインストールします.

# install opencv
pip3 install opencv-contrib-python opencv-python

face_recognitionのインストール

Raspberry Pi用にdlibをカスタマイズしてインストールします.

# install dlib
cd
mkdir -p dlib
git clone -b 'v19.9' --single-branch https://github.com/davisking/dlib.git dlib/
cd ./dlib
sudo python3 setup.py install --compiler-flags "-mfpu=neon"

次にface_recognitionをインストールします.

# install face_recognition
pip3 install face_recognition

拡張したスワップ領域を戻します.

sudo nano /etc/dphys-swapfile

< change CONF_SWAPSIZE=1024 to CONF_SWAPSIZE=100 and save / exit nano >

sudo /etc/init.d/dphys-swapfile restart

サンプルを実行して, face_recognitionが正常にインストールできたか確認します.

顔認証用に自分の写真を撮影し, それをface_recognition/examplesフォルダにme.jpgという名前で保存します.

その後下記の通りにサンプルを実行していきます.

# OpenCVのセットアップで一度Downloadされていたら実行する必要はありません.
git clone https://github.com/tech-life-hacking/face_recognition.git

# execute samples
cd ./face_recognition/examples
python3 facerec_from_webcam_faster.py

自分の顔が四角く囲われて, meとラベル付されたらセットアップ成功です.

おわりに

暗闇でも赤外線カメラを用いることで顔認証できることをデモしてみました.