嘿!您似乎在 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传输线 .
  6. 屏幕、键盘、鼠标

070_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/

0014_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

0024_194a33e5ae279396eeaea344576ee7b24df5e175.jpg

3. 建立安装文件夹

$ sudo mkdir -p /opt/intel/openvino

0034_c2bc8dac786b8f73c3ba4c979ec3d933941b649d.jpg

 

4. 解压缩文件案

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

0044_7cb3c8a59d6b5055a0f59e44e15c566aacfd8aac.jpg

 

二、初始化OpenVINO环境,并设定USB规则

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

0053_29335a5c5f05557b2dc09c274da1d290f76309dc.jpg

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

0063_60029ce227c76c39386a10e612825a60adddd29e.jpg

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

0073_53556ac174530006e8d6ce1ccb26537e8efd43ba.jpg

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

0083_035cd0c2240c3b70da6063bf054ad260f285d5d7.jpg

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

0093_b7fa11e2bd664db066c0a24ad21dc219cc90d6d3.jpg

OpenVINO初始化成功后,可把终端机关掉再重开,会看见"[setupvars.sh] OpenVINO environment initialized"的字,即设置成功。

0103_8537db3ef09ae287c0475da856f81e3840721331.jpg

三、下载所需对象辨识范例档案,并执行于树莓派

1. 执行动态人脸辨识及动态车辆辨识需要各分三种档案,下列一一讲解档案之来源,人脸辨识需要档案:

(1) 对象辨识范例文件 py,在RPi4的路径:

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

01110_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

0133_cdb26a9c2934c08298eca1eb33fb210ed909bcc0.jpg

2. 执行动态车辆辨识需要:

(1) 对象辨识范例文件 object_detection_demo_ssd_async.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

0143_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

0152_7d12026f3d63c9dd89ed11db3faa5fcf6ba9c0b1.jpg

读者将以上档案下载后需放置同一个文件夹内,而本文已准备好人脸及车辆辨识范例,及相关档案,下载连结: https://reurl.cc/KkrmDq ,下列说明执行指令。

3. object_detection_demo_ssd_async.py操作参数说明

0162_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

0172_92d5e01b2a865c809fa8c7c4329c39c8231898ec.jpg

5. 执行影片动态人脸辨识范例,影片来源由Youtube下载。

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

0182_2b683bc8e0c17565b83fef3abc4b44347bd5849b.jpg

6. 执行Webcam动态车辆辨识范例,将Webcam挂于窗外拍摄。

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

0192_e800c81bac6bd49831b27266ca174e888192aec2.jpg

7. 执行动态车辆辨识范例影片,影片来源已先预录于马路上车况。

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

0202_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