嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

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

 

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

 

060_2b683bc8e0c17565b83fef3abc4b44347bd5849b.jpg

 

人工智慧神經網路運算往往是會進行大量浮點數計算,在一般的個人電腦若需要取得較高的計算效率,往往都會透過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/

0013_1d766e76605e662778345f485dac2ef17514ab7b.jpg

 

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

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

0023_194a33e5ae279396eeaea344576ee7b24df5e175.jpg

 

3.建立安裝資料夾

$ sudo mkdir -p /opt/intel/openvino

0033_c2bc8dac786b8f73c3ba4c979ec3d933941b649d.jpg

 

4.解壓縮檔案

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

0043_7cb3c8a59d6b5055a0f59e44e15c566aacfd8aac.jpg

 

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

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

0052_29335a5c5f05557b2dc09c274da1d290f76309dc.jpg

 

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

0062_60029ce227c76c39386a10e612825a60adddd29e.jpg

 

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

0072_53556ac174530006e8d6ce1ccb26537e8efd43ba.jpg

 

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

0082_035cd0c2240c3b70da6063bf054ad260f285d5d7.jpg

 

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

0092_b7fa11e2bd664db066c0a24ad21dc219cc90d6d3.jpg

 

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

0102_8537db3ef09ae287c0475da856f81e3840721331.jpg

 

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

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

 

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

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

0119_b79e3c3abb6ba4b54bf2f64bb4238aa26beedd92.jpg

(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

0132_cdb26a9c2934c08298eca1eb33fb210ed909bcc0.jpg

 

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

0142_a8fda73ec468839b0c2f4c0acafed750a598f2dd.jpg

(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

0151_7d12026f3d63c9dd89ed11db3faa5fcf6ba9c0b1.jpg

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

3. object_detection_demo_ssd_async.py操作參數說明

0161_5514e0dcf82564f9ee2a1651b099cdbdd67bd5d3.jpg

 

參數

參數功能說明

-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

0171_92d5e01b2a865c809fa8c7c4329c39c8231898ec.jpg

 

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

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

0181_2b683bc8e0c17565b83fef3abc4b44347bd5849b.jpg

 

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

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

0191_e800c81bac6bd49831b27266ca174e888192aec2.jpg

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

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

0201_3d0e51ce2bce2d477c18956e37424ce0037d0561.jpg

相关文章

[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 Deep Learning, edge computing, App Inventor, IoT and robotics. Please check CAVEDU's website for more information: http://www.cavedu.com, http://www.appinventor.tw
DesignSpark Electrical Logolinkedin