几个月前,搞了一个Movidius(已停产,目前第二代叫NCS 2),由于工作原因,一直没有时间鼓捣,趁着国庆放假,在家好好研究一番。
主要参考的是pyimagesearch 4月8日的文章,现在把其中遇到的问题记录一下,希望能帮到更多人。
我的安装环境:
- 树莓派3B
- Movidius
- CSI摄像头
- Raspbian Buster(Python 3.7)
- 如果你完全按照文章中的步骤进行,而你的系统是最新的Buster,会发现无法import cv2,这是因为文章中使用的是Stretch版本,其默认Python为3.5,而
/home/pi/openvino/inference_engine_vpu_arm/python/python3.5/cv2.cpython-35m-arm-linux-gnueabihf.so
针对的也是3.5版本,因而会报错。
当时曾试图安装python3.5,并在virtualenv中使用python3.5,但在import cv2的过程中出现一系列找不到相关依赖的问题,感觉这些依赖问题是个无底洞。在那篇文章的评论中,有一条这么说:
I just got this tutorial working on my Pi4 & Buster by substituting steps 4,5 & 6 with the instructions here for Raspbian Stretch & Buster https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html and downloading https://download.01.org/opencv/2019/openvinotoolkit/R2/l_openvino_toolkit_runtime_raspbian_p_2019.2.242.tgz
This provides CV 4.1.1
My initial test with my NCS2 has returned ~12.93 FPS with a Logitech C920 Cam
Cant wait for my copy Raspberry Pi for Computer Vision…
Regards,Matt
简单来说就是有一个官方的文档以及更新版本的openvino下载地址。
文档中有一处需要修改(参考):
>>> vim /opt/intel/openvino/bin/setupvars.sh
INSTALLDIR='/opt/intel/openvino'
这样环境基本就没问题了
- 从那篇文章处下载源码与模型文件,再插上摄像头与Movidius就能开始了,注意需开启摄像头接口
>>> sudo raspi-config
- 由于我安装的是Raspbian Lite版,也就是精简版,没有图形界面,因而代码会报错。两种解决思路:
- 检测过程中不显示,直接将结果保存;
- 通过特殊办法,用ssh的方式将结果远程过来
通过搜索发现,Mac、Linux、Windows都支持使用ssh将远程显示图像或视频。
在Mac上需要安装XQuartz,再通过其terminal
>>> ssh -Y pi@xxx.xxx.xxx.xxx
再执行检测脚本就行了
无意中发现一个工具:eog,可以远程查看图片
安装eog:
>>> sudo apt install eog
打开XQuartz:
>>> ssh -Y pi@xxx.xxx.xxx.xxx
>>> eog xxx.jpg
-
能否通过修改脚本中的代码,使其运行在树莓派的CPU上,而不是Movidius上?
答:不能,参考 -
能否修改摄像头ISO、亮度、风格等参数?
答:可以,不过需要使用picamera库代替imutils,其中awb_mode用‘fluorescent’可以显著改善室内偏暗的问题。具体看代码 -
能否检测视频文件中的目标?
答:可以,需要使用imutils.video的FileVideoStream,具体看代码 -
FPS如何?
答:使用imutils库时能达到5.4+FPS,换成picamera后下降到4+FPS,具体原因不详。
代码地址:https://github.com/MacwinWin/raspberry_pi_object_detection
欢迎star
树莓派3B与4B速度对比: