分享

基于OpenCV的视障人士实时目标检测

 小白学视觉 2021-06-29

重磅干货,第一时间送达

一、概述

计算机视觉领域一直是一个活跃的研究领域,在本文中,我们让设备实时与其应用程序(对象检测)相结合并运行。



二、硬件

设备:程序将在其上运行,由于该设备将安装在手杖上,并且可以实时工作,因此可以使用智能手机或 Raspberry-Pi。在本文实现中,使用了Raspberry-Pi 4。

相机:相机将用于打开图像流(视频),并处理帧以识别对象。在本文中,使用了 Raspberry-Pi 4摄像头。

距离传感器:红外或超声波传感器可用于测量距离。在本文中,使用了超声波传感器。

反馈组件:可以使用各种反馈机制,例如使用耳机或振动电机的文本到语音。在该实施方式中,使用振动电机。

三、软件

为了开发这个项目,使用了Python编程语言和OpenCV库。OpenCV 是一个开源的编程函数库,主要针对实时计算机视觉,可以按照此链接中提到的步骤将 OpenCV 安装到 Raspberry-Pi 上。使用线程,其中代码的不同部分可以同时运行,这允许距离传感器在对象检测工作时工作。


四、物体检测模型

由于项目设备的处理能力有限,我们需要轻量级的对象检测模型才能实时检测。可用的轻型模型有TinyYOLO和SSD MobileNet。在本文中,我们使用 SSD MobileNet。

该模型获取每一帧并尝试对该帧上的对象进行分类,它最多可以对 100 个对象进行分类,并返回对象名称以及模型对其分类的置信度。


五、实践

为了利用模型返回的信息,机器不断测量用户的危险等级,这是通过划分三个危险等级(高、中、低)来完成的,并根据检测到的物体,可以得出危险等级改变。例如,如果检测到汽车,则危险级别高于检测到手机。此外,危险等级可以根据距离而变化。例如,如果传感器检测到物体在 1 米以内,则会导致更高的危险级别。


六、不足之处

本文使用了上面提到的最新的光物体检测模型,这些模型速度快,精度合理,随着计算机视觉领域的快速发展和研究,模型与使用的模型一样快(甚至更快),精度更高希望出现。使用这些新模型将改进项目实施。此外,虽然计算能力可以产生好的结果,但更大的计算能力会带来更流畅的体验和更好的相机帧率。

可以开发移动应用程序以与机器一起使用,这可以向用户(或用户的监护人)提供有关设备的信息,例如电池健康状况,并允许进一步的功能。反馈机制可以改为无线方式,比如蓝牙控制的无线频段,或者其他任何合理的想法。此外,为实现而编写的代码可以更高效,并且可以进行更好的线程化实现。

下载1:OpenCV-Contrib扩展模块中文版教程

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多