Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

カメラ映像から顔認識

https://aiacademy.jp/texts/show/?context=subject-images&id=426

 

カメラ映像から顔認識

カスケードファイルをダウンロード

ターミナルorコマンドにて

wget https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml

↓ダウンロードされた

f:id:chocolate22554:20210308204118p:plain

 

texteditorにて「カメラ映像で」というドキュメント名で上のxmlファイルもあるフォルダ内に作成

f:id:chocolate22554:20210308210220p:plain

 

 

import cv2


cascade_path = "/Users/cyberbrain/Desktop/haarcascade_frontalface_alt.xml"(# wgetコマンドでダウンロードしたカスケードファイルの絶対パスに変更)

cascade = cv2.CascadeClassifier(cascade_path)
color = (255, 255, 255) # 検出した顔を囲む矩形の色 (白色)

# VideoCapture オブジェクトを取得
cap = cv2.VideoCapture(0)

while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
rect = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=2, minSize=(30, 30))

if len(rect) > 0:
for x, y, w, h in rect:
cv2.rectangle(frame, (x, y), (x+w, y+h), color)

cv2.imshow('video capture', frame)
# 1ミリ秒待機
k = cv2.waitKey(1)
# ESCキーで終了
if k == 27:
break

cap.release() # 動画ファイル閉じる。(キャプチャデバイスを終了。)
cv2.destroyAllWindows()

 

上記のプログラムを  コマンドorターミナルにて実行
この場合 python 顔認識  で実行
 
カメラが起動

f:id:chocolate22554:20210308210335p:plain

常時許可していないとこのようなものが出るためエラーが出る

f:id:chocolate22554:20210308210438p:plain

 
許可しない  でなく  ok を押して許可
再度チャレンジ!
 
進んだ

f:id:chocolate22554:20210308210721p:plain

しかし暗いからか同じ文章が永遠に出る

f:id:chocolate22554:20210308210757p:plain

解決策↓

QtとOpenCVの両方をインストールするとエラーが発生する[Python] n++

 

ターミナル or コマンドにて

  opencv-python をアンインストール

pip uninstall -y opencv-python

 

f:id:chocolate22554:20210308213602p:plain

ターミナル or コマンドにて
GUI機能を含まない、OpenCVのヘッドレス版をインストール
pip install opencv-python-headless

f:id:chocolate22554:20210308213704p:plain

 
テキストエディタで記載していた下記コードを
ターミナル or コマンドにて
python  カメラ映像で    にて実行! 
 

import cv2


cascade_path = "/Users/cyberbrain/Desktop/haarcascade_frontalface_alt.xml"(# wgetコマンドでダウンロードしたカスケードファイルの絶対パスに変更)

cascade = cv2.CascadeClassifier(cascade_path)
color = (255, 255, 255) # 検出した顔を囲む矩形の色 (白色)

# VideoCapture オブジェクトを取得
cap = cv2.VideoCapture(0)

while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
rect = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=2, minSize=(30, 30))

if len(rect) > 0:
for x, y, w, h in rect:
cv2.rectangle(frame, (x, y), (x+w, y+h), color)

cv2.imshow('video capture', frame)
# 1ミリ秒待機
k = cv2.waitKey(1)
# ESCキーで終了
if k == 27:
break

cap.release() # 動画ファイル閉じます。(キャプチャデバイスを終了させます。)
cv2.destroyAllWindows()

 

 

カメラが起動

自分の顔が写り自分の顔が認識され四角い枠に囲まれた

 

 

 

 

 

今度は応用して 色々してみたい↓

 

iPhoneでバーコードリーダーでISBNを読み取ってサーバーに送る - argius note

 

Hello Absurd World! pythonでバーコードリーダーの導入(import zbar on python2.6)