インストールガイドに環境構築後のpythonサンプルとして、顔認識(face-detection)が記載されています。それを流用して人認識(person-detection)として実行してみます。モデルを変えるだけのお手軽確認です。環境構築が終わっている場合は10分で確認出来ます。
本記事は https://docs.openvinotoolkit.org/2020.1/_docs_install_guides_installing_openvino_raspbian.html
を元に記述しています。元のページも参照してください。
以降は、RaspberryPiにOpenVINOが構築されている事が前提です。
Run Inference of Face Detection Model Using OpenCV* API
1. person-detection-retail-0013を用意します。
$ wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/person-detection-retail-0013/FP16/person-detection-retail-0013.xml (略) HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 354107 (346K) [text/xml] `person-detection-retail-0013.xml' に保存中 person-detection-retail-0013.xml 100%[=============================================================================================>] 345.81K 979KB/s 時間 0.4s 2020-10-11 10:01:12 (979 KB/s) - `person-detection-retail-0013.xml' へ保存完了 [354107/354107] $ wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/person-detection-retail-0013/FP16/person-detection-retail-0013.bin (略) HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 1445736 (1.4M) [application/octet-stream] `person-detection-retail-0013.bin' に保存中 person-detection-retail-0013.bin 100%[=============================================================================================>] 1.38M 7.02MB/s 時間 0.2s 2020-10-11 10:01:19 (7.02 MB/s) - `person-detection-retail-0013.bin' へ保存完了 [1445736/1445736]
2. openvino_pd_myriad.py というようなファイルを作成して、以下のスクリプト をコピーしてください。
スクリプト 実行前に、frame = cv.imread(‘/path/to/image’) に読み込む画像ファイルに修正してください。
import cv2 as cv Load the model. net = cv.dnn_DetectionModel('person-detection-retail-0013.xml', 'person-detection-retail-0013.bin') Specify target device. net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD) Read an image. frame = cv.imread('/path/to/image') if frame is None: raise Exception('Image not found!') Perform an inference. _, confidences, boxes = net.detect(frame, confThreshold=0.5) Draw detected faces on the frame. for confidence, box in zip(list(confidences), boxes): cv.rectangle(frame, box, color=(0, 255, 0)) Save the frame to an image file. cv.imwrite('out.png', frame)
3. スクリプト を実行します
python3 openvino_pd_myriad.py
結果は、out.pngというファイルが作成されるので、確認してください。
フリーのITエンジニア(何でも屋さん)。趣味は渓流釣り、サッカー観戦、インラインホッケー、アイスホッケー、RaspberryPiを使った工作など。AI活用に興味があり試行錯誤中です。