DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

在Raspberry Pi 4使用Intel神經運算棒實現動態人臉辨識及車輛辨識

 

作者 許鈺莨/曾俊霖
難度 普通
材料表
  1. Raspberry Pi 4 (4GB)          
  2. Neural Compute Stick 2 
  3. SD卡(16G)                       
  4. 网络摄影机                          
  5. Mini HDMI传输线 .           

 

 

人工智慧神經網路運算往往是會進行大量浮點數計算,在一般的個人電腦若需要取得較高的計算效率,往往都會透過GPU進行運算,透過GPU強大的浮點數運算能力,可以有效提升神經網路運算的效能,但若是要將神經網路運算放到如樹莓派的單板電腦進行運算,卻往往受限於單板電腦的GPU運算效能,使得神經網路運算的效能不如個人電腦,但是透過單板電腦進行AIoT的應用促使了邊緣運算技術的發展,若單板電腦要在神經網路運算上獲得較佳的運算效能,可以考慮透過USB隨插即用(或有些單板電腦支援PCIe)的外接神經運算裝置解決神經網路運算的效能需求。

在Rpi4執行NCS2並不是插上即可,必須安裝OpenVINO(全名Open Visual Inference & Neural network Optimization),是Intel所釋出的人工智慧開發工具包,用於支援在NCS2的邊緣運算。

(P.S.本文需安裝OpenCV套件,若未安裝請參照文章: 透過Teachable Machine 來實現Raspberry Pi 4 的影像分類推論! )

 

本文將分為幾個步驟執行:

  • OpenVINO™ toolkit 官網下載開發工具包到RPi4
  • 初始化OpenVINO環境,並設定USB 規則
  • 下載所需執行檔,並執行物件辨識範例

以下將針對上述的的三個步驟,進行分項說明。

 

一、至OpenVINO™ toolkit  官網下載開發工具包到RPi4

1.在打開樹莓派終端機,並將路徑導向Downloads資料夾

$ cd ~/Downloads/

 

2.下載開發工具包至Downloads資料夾

$ sudo wget https://download.01.org/opencv/2020/openvinotoolkit/2020.1/l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz

 

3.建立安裝資料夾

$ sudo mkdir -p /opt/intel/openvino

 

4.解壓縮檔案

$ sudo tar -xf  l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz --strip 1 -C /opt/intel/openvino

 

二、初始化OpenVINO環境,並設定USB規則

$ source /opt/intel/openvino/bin/setupvars.sh

 

$echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc

 

$sudo usermod -a -G users "$(whoami)"

 

$source /opt/intel/openvino/bin/setupvars.sh

 

$ sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh

 

OpenVINO初始化成功後,可把終端機關掉再重開,會看見"[setupvars.sh] OpenVINO environment initialized"的字,即設置成功。

 

三、下載所需物件辨識範例檔案,並執行於樹莓派

  1. 執行動態人臉辨識及動態車輛辨識需要各分三種檔案,下列一一講解檔案之來源,人臉辨識需要檔案:

 

(1)物件辨識範例檔 py,在RPi4的路徑:

/opt/intel/openvino/deployment_tools/inference_engine/samples/python/object_detection_sample_ssd可以找到

(2)神經網路的架構檔 face-detection-adas-0001.xml,在RPi4終端下指令

$ wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.xml

 

(3)神經網路的權重檔face-detection-adas-0001.bin ,在RPi4終端下指令

$ wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.bin

 

2.執行動態車輛辨識需要:

(1)物件辨識範例檔 py ,與人臉辨識檔案相同。

(2)神經網路的架構檔 vehicle-detection-adas-0002.xml ,在RPi4終端下指令

$wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.xml

(3)神經網路的權重檔 face-detection-adas-0001.bin ,在RPi4終端機下指令

$  wget  --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.bin

讀者將以上檔案下載後需放置同一個資料夾內,而本文已準備好人臉及車輛辨識範例,及相關檔案,下載連結: https://reurl.cc/KkrmDq ,下列說明執行指令。

3. object_detection_demo_ssd_async.py操作參數說明

 

參數

參數功能說明

-h

Help 參數,可以查詢其他指令。

-m

MODEL,匯入.xml模型檔案。

-i

INPUT ,輸入來源為影片檔或接上Webcam。

-d

DEVICE ,推論時是依據哪種硬體執行,本文範例參數為MYRIAD 。

--labels

LABELS,匯入標籤檔,本文範例無須匯入。

-pt

PROB_THRESHOLD ,閾值,又可以解釋信心指數,預設為0.5,也就是只要辨識率5成以上就會認為車輛或人臉。

--no_show

執行程式時無畫面顯示。

 

4.  執行Webcam動態人臉辨識範例。

$ cd ncs2_test
$ python3 object_detection_demo_ssd_async.py -m face-detection-adas-0001.xml -d MYRIAD -i cam

 

5.  執行影片動態人臉辨識範例,影片來源由Youtube下載。

$ python3 object_detection_demo_ssd_async.py -m face-detection-adas-0001.xml -d MYRIAD -i May.mp4

 

6.  執行Webcam動態車輛辨識範例,將Webcam掛於窗外拍攝。

$ python3 object_detection_demo_ssd_async.py -m  vehicle-detection-adas-0002.xml -d MYRIAD -i cam

7.  執行動態車輛辨識範例影片,影片來源已先預錄於馬路上車況。

$ python3 object_detection_demo_ssd_async.py -m  vehicle-detection-adas-0002.xml -d MYRIAD -i traffic_0003.mp4

相关文章

[1]https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html

CAVEDU Education is devoted into robotics education and maker movement since 2008, and is intensively active in teaching fundamental knowledge and skills. We had published many books for readers in all ages, topics including App Inventor, Lego robot and IoT (Arduino / Raspberry Pi). Please check CAVEDU's website for more information: http://www.cavedu.com, http://www.appinventor.tw

17 Apr 2020, 2:03