ラズパイ向け・Pythonソースコード・画像認識AI(顔検出)
ソースコード:ラズパイ向け・Python・画像認識AI(顔検出)
ご要望にお応えして、ソースコードを無償にて提供いたします。
このサンプルソースのプログラムの動作の概要は、カメラの動作、AIライブラリによる顔の検出、画像ファイルの取り扱いの、3つのブロックで構成されています。
具体的には以下のような流れですが、コメントを入れて40行程度です。
【動作概要】
・カメラを初期化する
・カメラから映像を取得する
・顔検出のための学習データを読み込む
・顔検出をする
・検出ができたら顔を赤枠で囲む
・所定の場所に保存する
【システム環境】
・物理構成
Raspberry Pi Starter Kit
Kumanカメラモジュール
・ソフトウェア
Raspberry Pi OS(Raspbian-reference 2019-07-10)
Python 2.7
python-opencv
【作成日/動作確認日】
2019/9/3
—
# -*- coding: utf-8 -*-
import picamera
import picamera.array
import cv2
# カメラ初期化
with picamera.PiCamera() as camera:
# カメラの画像をリアルタイムで取得するための処理
with picamera.array.PiRGBArray(camera) as stream:
# 解像度の設定
camera.resolution = (512, 384)
while True:
# カメラから映像を取得する(OpenCVへ渡すために、各ピクセルの色の並びをBGRの順番にする)
camera.capture(stream, ‘bgr’, use_video_port=True)
# 顔検出の処理効率化のために、写真の情報量を落とす(モノクロにする)
gray_image = cv2.cvtColor(stream.array, cv2.COLOR_BGR2GRAY)
# 顔検出のための学習元データを読み込む
cascade = cv2.CascadeClassifier(‘./haarcascades/haarcascade_frontalface_default.xml’)
# 顔検出を行う
face = cascade.detectMultiScale(gray_image, scaleFactor=1.2, minNeighbors=2, minSize=(100, 100))
# 顔が検出された場合
if len(face) > 0:
◆この後につづくのは下記のとおりです。
# 検出した場所すべてに赤色で枠を描画する
# 結果の画像を表示する
# カメラから読み込んだ映像を破棄する
# 何かキーが押されたかどうかを検出する(検出のため、1ミリ秒待つ)
# 表示したウィンドウを閉じる
—
※コードは作成日時点で、Raspberry Pi Starter Kitにおいて動作確認済みです。
ダウンロードファイルは、当時の動作確認済み、pyファイルをzipでラッピングしています。
解凍に際してPWを求められた場合には、webと入力してください。
※pyファイルには省略されているコードもすべて含んでいます。
ダウンロードは、ラズパイやPythonに関しての知識がある方に限らせてください。
プログラムは、システム環境が異なると動作しない可能性があります。
基本的にはありえませんが、以下はお約束ごとの文言となります。
万一、なんらかの障害やそれによる損害などが発生いたしましても、当方での責任は負いかねます。
なお、コードの関してのご質問はお受けできません。
コードをご活用いただき、スムーズな開発や学習にお役立てください。