Jupyter Labで顔認識の入門

6月 13, 2020

動作環境

Windows 10
Anaconda Navigator 1.9.12
Jupyter Lab 1.1.4 (Anaconda3に付属)

OpenCVをインストールする

opencvは画像を操作するためのpythonのパッケージです。互換性の問題がありますので、自分は以下のコマンドでインストールしています。
詳しくは、https://anaconda.org で調べて下さい。

!conda install -c menpo opencv
//確認
conda list

(実行結果)
opencv                    3.4.2            py37h40b0b35_0
// opencvのバージョン確認
import cv2
print(cv2.__version__)

(実行結果)
3.4.2

その他のライブラリのインストール

conda install matplotlib
# ↓画像に文字を表示したい場合に利用するライブラリ
conda install pillow

Jupyter Labで顔認証する

コードの参考元:https://qiita.com/TakayukiNJ/items/c6fea71a3dfc2a8a0b80

import cv2
import sys
import matplotlib.pyplot as plt


def main():
    cap = cv2.VideoCapture(0)

    if not cap.isOpened():
        sys.exit(1)

    # このファイルを置かないといけない
    cascade_path = "haarcascade_frontalface_alt.xml"

    while True:
        ret, im = cap.read()
        img_gray = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)
        cascade = cv2.CascadeClassifier(cascade_path)
        # minNeighborsは人数
        faces = cascade.detectMultiScale(img_gray, scaleFactor=1.1, minNeighbors=2, minSize=(80, 80))

        if len(faces) > 0:
            for (x, y, w, h) in faces:
                cv2.rectangle(im, (x,y), (x+w, y+h), (255, 0, 0), 2)

        img = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
        plt.imshow(img)

        blur = cv2.GaussianBlur(im, (0, 0), 1)
        cv2.imshow('camera capture', blur)
        # ESCキーで終了
        if cv2.waitKey(10) == 27:
            break

    cap.release()
    cv2.destroyAllWindows()
    

if __name__ == "__main__":
    main()

TrainingAssistantを使って画像データの座標を記録する方法

画像認証のデータを作成する方法です。

anaconda consoleから以下のコマンドを実行する

// ディレクトリを移動する
cd [gitリポジトリを置きたいディレクトリ]

// cloneする
// git clone https://github.com/shkh/TrainingAssistant.git

cd TrainingAssistant
git submodule init
git submodule update
cd static/Jcrop
git checkout master
cd ../..
pip install -r freezed.txt

TrainingAssistant/static/imgにファイルを置けば動くはずなのだが、動かない。
確認中。これできればいいのになあ。

python views.py