『画像処理でいろいろ遊んでみよう!』と思い、Python用のOpenCVをインストールしたときのメモです。静止画の顔認識で動作確認してみました。
準備
pythonのインストール
- 省略
pipのインストール
- 省略
pipを使ってOpenCVをインストールする
- 画像処理初心者なのでOpenCVのインストールから実施しました。
pip install opencv-python
動作確認
- OpenCVで静止画の顔認識を実施してみる
SampleCode
import cv2 # 分類器を指定する(HAAR分類器の顔検出用の特徴量) cascadeFile = "C:\\Python310\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml" # 分類器の設定 cascade = cv2.CascadeClassifier(cascadeFile) # 入力ファイル imageImput ="C:\\Users\\******\\Desktop\\lena.jpg" # 入力ファイルをリードする image = cv2.imread(imageImput) #グレースケールにする imageGray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 出力ファイル imageOutput = "C:\\Users\\******\\Desktop\\lena_new.jpg" # 顔を認識する facerect = cascade.detectMultiScale(imageGray, scaleFactor=1.1, minNeighbors=2, minSize=(30, 30)) # 顔を検出できた際の処理 if len(facerect) > 0: # 顔に枠を付ける for rect in facerect: cv2.rectangle(image, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]), (255, 255, 255), thickness=2) # 結果を画像として保存する cv2.imwrite(imageOutput, image)
pylint
での指摘
module cv2 OpenCV Python binary extension loader Module 'cv2' has no 'CascadeClassifier' memberpylint(no-member)
原因
pylint
がcv2
モジュールを把握できていないので、pylintにcv2の内容を読み込ませればよい。
対策
VSCode
上のメニュー上で[ファイル]
->[ユーザー設定]
->[設定]
を開く- 検索Windowに
Python.linting.pylintArgs
を入力する 項目の追加
を選択する
--extension-pkg-whitelist=cv2
と入力しOK
をクリックする
実行結果
おわりに
Webで調べながらの作業でしたが、実質の作業時間は1時間くらいで画像出力までできました。
今回は静止画の顔認識
でしたが、顔内部の目や口の認識
や動画
内での顔認識等もありそうなので、次はそれらを試してみたいと思います。