基于OpenCV的视障人士实时目标检测
共 1730字,需浏览 4分钟
·
2021-07-05 07:47
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
计算机视觉领域一直是一个活跃的研究领域,在本文中,我们让设备实时与其应用程序(对象检测)相结合并运行。
设备:程序将在其上运行,由于该设备将安装在手杖上,并且可以实时工作,因此可以使用智能手机或 Raspberry-Pi。在本文实现中,使用了Raspberry-Pi 4。
相机:相机将用于打开图像流(视频),并处理帧以识别对象。在本文中,使用了 Raspberry-Pi 4摄像头。
距离传感器:红外或超声波传感器可用于测量距离。在本文中,使用了超声波传感器。
反馈组件:可以使用各种反馈机制,例如使用耳机或振动电机的文本到语音。在该实施方式中,使用振动电机。
为了开发这个项目,使用了Python编程语言和OpenCV库。OpenCV 是一个开源的编程函数库,主要针对实时计算机视觉,可以按照此链接中提到的步骤将 OpenCV 安装到 Raspberry-Pi 上。使用线程,其中代码的不同部分可以同时运行,这允许距离传感器在对象检测工作时工作。
由于项目设备的处理能力有限,我们需要轻量级的对象检测模型才能实时检测。可用的轻型模型有TinyYOLO和SSD MobileNet。在本文中,我们使用 SSD MobileNet。
该模型获取每一帧并尝试对该帧上的对象进行分类,它最多可以对 100 个对象进行分类,并返回对象名称以及模型对其分类的置信度。
为了利用模型返回的信息,机器不断测量用户的危险等级,这是通过划分三个危险等级(高、中、低)来完成的,并根据检测到的物体,可以得出危险等级改变。例如,如果检测到汽车,则危险级别高于检测到手机。此外,危险等级可以根据距离而变化。例如,如果传感器检测到物体在 1 米以内,则会导致更高的危险级别。
本文使用了上面提到的最新的光物体检测模型,这些模型速度快,精度合理,随着计算机视觉领域的快速发展和研究,模型与使用的模型一样快(甚至更快),精度更高希望出现。使用这些新模型将改进项目实施。此外,虽然计算能力可以产生好的结果,但更大的计算能力会带来更流畅的体验和更好的相机帧率。
可以开发移动应用程序以与机器一起使用,这可以向用户(或用户的监护人)提供有关设备的信息,例如电池健康状况,并允许进一步的功能。反馈机制可以改为无线方式,比如蓝牙控制的无线频段,或者其他任何合理的想法。此外,为实现而编写的代码可以更高效,并且可以进行更好的线程化实现。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~