Yolov5基于目标区域(Region of Interest)的检测
前言引入
想必大家在做yolo目标检测的时候很容易会遇上这样的问题,图片中的某个部分其实我并不想去检测里面的物品,它无关紧要…
正如这个转角,我的本意只想检测前方通道的目标,这个转角应该交给另外的摄像头去识别,所以我不希望因为这里出现了一小部分物体,导致整个检测结果受到影响,因此,想要让yolo不检测这一部分区域…
所以为了实现这个功能,我们可以用一个mask覆盖掉这个区域,让yolo在检测的时候,假装“看不到这个区域”,就能成功实现yolo检测忽略这一块内容的目的了;
先演示一下效果,为了更加直观,我用了yolov5给的测试样例图片进行测试,下面是正常情况下,检测zidane.jpg
的结果图(这里我使用了yolov5s6.pt
模型进行检验):
可以看到是非常标准的一个识别结果,然后我加上了一个mask掩模图,此图如下:
红色区域就是我想要让yolo去识别的部分,黑色区域则不让yolo进行识别,然后我们来看一下检测结果:
可以看到非常明显,右边的人不再被识别到,而且左边的人的手也因为区域的限制没有被完全选中,证明了我们这个方法的可行性;如果这个演示示例符合你的预期功能,那可以继续往下看hhh
mask图的制作
所以,其实最重要的就是把mask图给制作出来,这里也非常容易,我们只需要安装一个labelme
软件即可,在anaconda的环境下执行命令:
#labelme需要pyqt5的支持
pip install pyqt5
pip install labelme==3.16.2
这里指定了labelme的版本,对于之后的大数据处理有用处,但是本文暂时不会介绍,可以百度查看
安装完成之后,我们打开anaconda prompt
(如果是linux系统那就打开命令窗口即可,前提是已经安装anaconda)
直接输入命令
然后就会弹出一个窗口
这样就证明我们已经安装完毕,然后我们先做一点准备工作,选择一个文件夹进入,然后在里面新建4个文件夹