YOLO v3基于ROS应用记录

“有时候,就要敢于背上超出自己预料的包袱,真的努力后,你会发现自己要比想象的优秀很多。”

 

하루하루가 지나간다

2019.01

愿在别人眼里算不上梦想的梦想 成真~

 

言归正传,记录下之前在ROS下跑yolov3的历程吧:

感觉现在视觉感知领域用yolo的比faster-RCNN多很多了,毕竟在无人驾驶圈子,感知从不能仅靠一个视觉传感器来实现了,所以在实用方面,单一的视觉算法精度从80%提高到90%,其实际用处并不算大:一方面,可以通过其他传感器比如Lidar来弥补,另一方面在决策规划层的应用效果也是一样的,无论怎样,它都是一个障碍物,需要躲避。所以在yolo版本不断更新、既保持了处理效率的同时,也提高了检测精度,yolo的优势也就凸显出来了!

 

先来看看yolo v1~v3这几个版本的特点吧~

 

YOLO v1:

论文名称:You only look once unified real-time object detection
论文链接

YOLO:其实是把物体检测(object detection)问题看作是目标区域预测和类别预测的回归问题,只用一个卷积神经网络结构就可以从输入图像直接预测bounding box和类别概率。

优点:1、YOLO的速度非常快。在Titan X GPU上的速度是45 fps(frames per second),加速版的YOLO差不多是150fps。2、YOLO是基于图像的全局信息进行预测的。这一点和基于sliding window以及region proposal等检测算法不一样,与Fast R-CNN相比,YOLO在误检测(将背景检测为物体)方面的错误率能降低一半多。3、YOLO可以学到物体的generalizable representations。可以理解为泛化能力强。4、准确率高,有实验证明。

缺点1、位置精确性差,对于小目标物体以及物体比较密集的也检测不好,比如一群小鸟。2、YOLO虽然可以降低将背景检测为物体的概率,但同时导致召回率较低。

 

结构:

算法:

首先把输入图像划分成S*S的格子,然后对每个格子都预测B个bounding boxes,每个bounding box都包含5个预测值:x,y,w,h和confidence。x,y就是bounding box的中心坐标,与grid cell对齐(即相对于当前grid cell的偏移值),使得范围变成0到1;w和h进行归一化(分别除以图像的w和h,这样最后的w和h就在0到1范围);另外每个格子都预测C个假定类别的概率。在本文中作者取S=7,B=2,C=20(因为PASCAL VOC有20个类别),所以最后一共有7*7*30个tensor

此时,可以发现,预测的每个bounding box都对应一个confidence score,如果grid cell里面没有object,confidence就是0,如果有,则confidence score等于预测的box和ground truth的IOU值。所以如何判断一个grid cell中是否包含object呢?答案是:如果一个object的ground truth的中心点坐标在一个grid cell中,那么这个grid cell就是包含这个object,也就是说这个object的预测就由该grid cell负责。每个grid cell都预测C个类别概率,表示一个grid cell在包含object的条件下属于某个类别的概率,注意grid cell和bounding box的区别,类别概率是针对grid cell的。

但是,这个方格(grid cell)在包含object的条件下属于某个类别的概率,也就是这个乘法到底是怎么算的呢?每个bounding box的confidence和每个类别的score相乘,得到每个bounding box属于哪一类的confidence score,即得到每个bounding box属于哪一类的confidence score。也就是说最后会得到20*(7*7*2)=20*98的score矩阵,括号里面是bounding box的数量,20代表类别。接下来的操作都是20个类别轮流进行:在某个类别中(即矩阵的某一行),将得分少于阈值(0.2)的设置为0,然后再按得分从高到低排序。最后再用NMS算法去掉重复率较大的bounding box(NMS:针对某一类别,选择得分最大的bounding box,然后计算它和其它bounding box的IOU值,如果IOU大于0.5,说明重复率较大,该得分设为0,如果不大于0.5,则不改;这样一轮后,再选择剩下的score里面最大的那个bounding box,然后计算该bounding box和其它bounding box的IOU,重复以上过程直到最后)。最后每个bounding box的20个score取最大的score,如果这个score

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值