[目标检测] RON-Reverse Connection with Objectness Prior Networks for Object Detection

当前最好的基于深度网络的目标检测框架可以分为两个主要方法流派:基于区域的方法(region-based)和不基于区域(region-free)的方法。两种方法各有优势和劣势。

由清华大学计算机系智能技术与系统国家重点实验室、清华国家信息实验室、清华大学计算机科学与技术系、英特尔中国研究院、清华大学电子工程系的研究人员共同参与的关于高效视觉目标检测的研究已经被 CVPR 2017 接收。论文题目是《RON: Reverse Connection with Objectness Prior Networks for Object Detection》。作者是孔涛、孙富春、Anbang Yao、刘华平、Ming Lu 和陈玉荣。该研究结合了两个主要方法流派的优点,提出了一个有效、高效的通用对象检测框架 RON。


一、网络结构

RON主要关注于两个目标检测领域的基本问题:

  • 多尺度目标定位:研究设计了反向连接(reverse connection),使网络能够检测多层 CNN 中的对象
  • 负样本挖掘:提出了目标先验(objectness prior)来引导目标对象搜索;利用多任务损失函数优化整个网络,这样网络就能直接预测最终检测结果。

在测试中,RON 达到了先进的目标检测性能。采用VGG-16网络在MS COCO数据集上预训练模型,在PASCAL VOC数据集上fine-tune,输入图片resize到384×384时,在VOC 2007数据集上m-AP达到了81.3%,在VOC 2012数据集上m-AP达到了80.7%。在测试阶段使用1.5G GPU显存,图片处理速度为15FPS,相同条件下比Faster R-CNN快3倍。

1.1 网络准备

使用VGG-16网络在ImageNet数据集上预训练作为测试用例参考模型。VGG-16有13个卷积层和3个全连接层,RON将全连接层FC6(第14层)和FC7(第15层)换成卷积层,并且用步长为2的2×2卷积核来将FC7层的分辨率降为一半。

提供的参考引用中未包含基于YOLOv7对遮挡目标进行增强后处理的目标检测相关内容。以下是从一般性专业知识角度的分析: YOLOv7是一种先进的目标检测算法,在处理遮挡目标时,增强后处理可以从多个方面入手。例如,在非极大值抑制(NMS)阶段进行改进,传统的NMS可能会错误地抑制掉被遮挡目标的检测框,改进的NMS可以考虑目标之间的遮挡关系,通过计算遮挡率等信息,保留被遮挡目标的有效检测框。 还可以利用上下文信息来增强对遮挡目标的检测。比如,当一个目标部分被遮挡时,可以根据其周围已知目标的位置、类别等信息,推断出被遮挡目标的可能位置和状态。 代码示例(伪代码展示改进NMS思路): ```python def improved_nms(detections, occlusion_threshold): # 假设detections是检测到的目标框列表,每个元素包含框的坐标、置信度等信息 sorted_detections = sorted(detections, key=lambda x: x['confidence'], reverse=True) final_detections = [] while sorted_detections: current_detection = sorted_detections.pop(0) final_detections.append(current_detection) remaining_detections = [] for detection in sorted_detections: # 计算当前检测框与其他检测框的遮挡率 occlusion_ratio = calculate_occlusion_ratio(current_detection['bbox'], detection['bbox']) if occlusion_ratio < occlusion_threshold: remaining_detections.append(detection) sorted_detections = remaining_detections return final_detections def calculate_occlusion_ratio(box1, box2): # 计算两个框的交集面积 x1 = max(box1[0], box2[0]) y1 = max(box1[1], box2[1]) x2 = min(box1[2], box2[2]) y2 = min(box1[3], box2[3]) intersection_area = max(0, x2 - x1) * max(0, y2 - y1) area_box1 = (box1[2] - box1[0]) * (box1[3] - box1[1]) occlusion_ratio = intersection_area / area_box1 return occlusion_ratio ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值