独家 | 在树莓派+Movidius NCS上运用YOLO和Tiny-YOLO完成目标检测(附代码下载)

本文详细介绍了如何在树莓派和Movidius NCS上使用Tiny-YOLO进行目标检测,包括环境配置、项目结构、配置文件解析、模型部署和结果展示。Tiny-YOLO虽然准确率低于YOLO,但因其快速的处理速度,适合在树莓派等资源有限的设备上应用。通过OpenVINO工具包,实现了接近实时的物体检测,平均帧率为4.28FPS。
摘要由CSDN通过智能技术生成


作者:Adrian Rosebrock

翻译:吴振东

校对:郑滋

本文约5000字,建议阅读10+分钟

本文教你如何在树莓派和Movidius神经加速棒上运用Tiny-YOLO来实现近乎实时的目标检测。

在这篇教程中,你将会学到如何用YOLO和Tiny-YOLO在树莓派和Movidius NCS上完成一个接近实时的目标检测任务。

YOLO目标检测在近期经常会被人们提起,它是速度最快的深度学习目标检测算法之一,它所实现的FPS(画面每秒传输帧数)指标要比那些消耗大量计算资源的two-stage探测器(例如:Faster R-CNN)或某些single-stage探测器(例如:RetinaNet或某些SSD的变种)更高。即便如此,YOLO的高速并不足以使得它在树莓派上运行,即便是加上Movidius NCS的话也不会有明显的起色。

为了让YOLO变得更快一些,YOLO的创造者们Redmon等人定义了一个YOLO架构的变种,称作Tiny-YOLO。

Tiny-YOLO的处理速度约是老大哥YOLO的442%,在单个GPU上处理视频的刷新率为每秒244帧。

Tiny-YOLO具有模型小(小于50MB)和推理速度快这两大优势,使得它作为目标检测器非常适合移植在树莓派、Google Coral和NVIDIA Jetson Nano上。

关注公众号(DatapiTHU)后台回复“200229”获取本文项目代码下载链接

今天你将会了解到如何使用Tiny-YOLO,并将它部署在树莓派上,再加上Movidius NCS的作用,可以组成一个接近实时的目标检测项目。

在树莓派+Movidius NCS上运用YOLO和Tiny-YOLO完成目标检测

在这篇教程的第一部分,让我们来了解一下YOLO和Tiny-YOLO目标检测。

随后,我来告诉你如何去配置你的树莓派和OpenVINO的环境,这样你就可以使用Tiny-YOLO了。

然后来回顾一下这个项目的目录结构,其中包括利用一个shell脚本来正确地进入到你的OpenVINO环境中。

在我们了解了整个项目结构后,就需要植入一个含有以下内容的Python脚本:

  1. 进入我们的OpenVINO环境。

  2. 在视频中读取帧图像。

  3. 利用树莓派、Movidius NCS和Tiny-YOLO来完成接近实时的目标检测。

最后,我们以检验脚本的结果作为整篇教程的结尾。

什么是YOLO和Tiny-YOLO?

图1:Tiny-YOLO对于COCO数据集的mAP值比其他物体检测器更低。这说明Tiny-YOLO在你的树莓派+Movidius NCS上有可能会是一个有用处的物体检测器

Tiny-YOLO是Redmon 等人在2016年公开发表论文《You Only Look Once: Unified, Real-Time Object Detection》中提到的'You Only Look Once' (YOLO)物体检测器的一个变种。

You Only Look Once: Unified, Real-Time Object Detection》:

https://arxiv.org/abs/1506.02640

YOLO的出现是为了提高two-stage目标检测器的速度,例如Faster R-CNN。

R-CNNs的精确度很高,但是即便是在GPU上运行,他们的速度依然很慢。与此相反,像YOLO这样的single-stage检测器速度非常快,在GPU上运行的话能够达到实时检测的效果。

YOLO的缺点就是准确率不是特别高(而且以我的经验,YOLO要比SSDs和RetinaNet更难训练)。

另外Tiny-YOLO是小巧版的YOLO,这意味着他的准确率要相对更低。

作为参考,在Redmon等人的报告中,YOLO在COCO基准数据集上的mAP约是51-57%,而Tiny-YOLO的mAP只有23.7%,准确率比它“大哥”的一半还要低。

实际上,23%的mAP对于某些应用来说还是在合理范围内的。

我一般的建议是用YOLO来进行“最初的尝试”:

  • 在一些案例中,它可能非常适合你的项目;

  • 如果不合适,你可以再去尝试其他更准确的检测器(Faster R-CNN, SSDs, RetinaNet等等)

想要了解YOLO,Tiny-YOLO或者其他版本的YOLO,请一定要阅读Redmon等人在2018年所发表的论文。

配置你的树莓派和OpenVINO的环境

 

图2:在树莓派和Movidius NCS上配置OpenVINO工具包,用于使用TinyYOLO做目标检测

想要再现这篇教程中的结果,需要配有树莓派4B和Movidius NCS2(不支持NCS1)两项硬件。

我建议你选择一版《Raspberry Pi for Computer Vision》并将 icluded pre-configured.img拷在你的存储卡里,这个文件非常重要,可以省去你数小时的无谓工作。

《Raspberry Pi for Computer Vision》:

https://www.pyimagesearch.com/raspberry-pi-for-computer-vision/

configured.img:

https://www.pyimagesearch.com/2016/11/21/raspbian-opencv-pre-configured-and-pre-installed/

如果有人固执地想要自己去搞树莓派和OpenVINO的配置,这里有一个简单的指导:

  1. 根据BusterOS安装指导手册来创建一个名为cv的环境。

  2. 根据OpenVINO的安装指导手册创建第二个环境,命名为openvino。请确保下载的是OpenVINO 4.1.1版本(4.1.2版本有未解决的问题)

BusterOS:

https://pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

OpenVINO:

https://www.pyimagesearch.com/2016/11/21/raspbian-opencv-pre-configured-and-pre-installed/

为了解析JSON结构,你需要在你的虚拟环境中安装JSON-Minify包:

$ pip install json_minify
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值