产品咨询:19113907060
联系我们
产品咨询
资讯内容banner 咨询banner-移动

目标检测类算法中YOLO和Faster R-CNN的具体原理、对比与应用

作者:万物纵横
发布时间:2025-10-21 09:53
阅读量:

YOLO(You Only Look Once)和 Faster R-CNN 是目标检测领域的两大经典算法,分别代表 “单阶段检测” 和 “两阶段检测” 的核心思路,原理差异直接导致了它们在速度和精度上的显著区别。下面从核心架构、工作流程、关键机制三个维度拆解具体原理:


目标检测类算法中YOLO和Faster R-CNN的具体原理、对比与应用(图1)


一、YOLO:单阶段 “端到端” 检测(速度优先)


YOLO 的核心设计是 “一次性看全图,直接输出目标位置和类别”,不需要分阶段生成候选区域,因此速度极快。以应用最广的 YOLOv5 为例,原理可拆解为 3 步:


1. 输入图像预处理


将任意尺寸的输入图像(如园区监控画面)统一缩放至固定尺寸(如 640×640),确保输入网络的图像规格一致,便于并行计算。


2. 网格划分与目标预测


网格划分:将缩放后的图像划分为 S×S 个网格(如 YOLOv5 默认划分为 8×8、16×16、32×32 三种不同大小的网格,对应检测不同尺寸的目标)。


例:若图像被划分为 13×13 网格,每个网格负责检测 “中心落在该网格内” 的目标(比如园区内的人,若其中心点在第 5 行第 6 列网格,就由该网格预测)。


边界框与置信度预测:每个网格会预测 B 个边界框(Bounding Box,如 YOLOv5 每个网格预测 3 个),每个边界框包含 5 个基础信息:


(x, y):边界框中心坐标(相对于网格的偏移量,范围 0-1,确保在网格内);


(w, h):边界框宽高(相对于整幅图像的比例,范围 0-1);


confidence(置信度):表示 “该框内有目标” 且 “框位置准确” 的概率(= 目标存在概率 ×IoU,IoU 是预测框与真实框的重叠度)。


类别概率预测:每个网格还会预测 C 个类别概率(如 “人”“车”“树” 等),表示网格内目标属于某类别的概率。最终每个边界框的 “类别置信度”= 网格类别概率 × 边界框置信度,用于筛选有效目标。


目标检测类算法中YOLO和Faster R-CNN的具体原理、对比与应用(图2)


3. 非极大值抑制(NMS)筛选


同一目标可能被多个网格预测出多个边界框,通过 NMS 保留 “类别置信度最高” 且 “与其他框重叠度低” 的框,最终输出唯一的目标检测结果(如 “在 (100,200) 位置有一个人,置信度 90%”)。


核心特点:


单阶段:从输入到输出仅需一次网络计算,速度极快(YOLOv8 在普通 GPU 上可达 300 + 帧 / 秒);


全局视野:网络一次性看全图,对目标的上下文理解更好(比如能区分 “园区内正常行走的人” 和 “翻越围墙的人” 的整体场景);


缺点:小目标检测精度略低(因网格划分可能漏检极小目标,如远处的人)。


二、Faster R-CNN:两阶段 “先候选后精修” 检测(精度优先)


Faster R-CNN 是两阶段算法的里程碑,核心是 “先生成可能包含目标的候选区域,再对候选区域做精准分类和定位”,分两大阶段:


第一阶段:区域提议网络(RPN)生成候选区域


目标是从图像中快速筛选出 “可能有目标” 的区域(Region Proposal),避免对整幅图的每个像素无差别计算。


特征提取:用 CNN(如 VGG、ResNet)对输入图像提取全局特征图(如将 800×600 的图像压缩为 50×38 的特征图,保留关键信息)。


锚框(Anchor)预设:在特征图的每个像素上预设 k 个不同尺度、不同长宽比的锚框(如 3 种尺度 ×3 种比例 = 9 个锚框),锚框对应原图中的区域(如特征图 1 个像素对应原图 16×16 区域,则锚框在原图的大小可按比例计算)。


例:园区监控中,预设 “小锚框” 检测远处的人,“大锚框” 检测近处的车。


锚框二分类与修正:


二分类:判断每个锚框是 “前景(有目标)” 还是 “背景(无目标)”;


边界框回归:对 “前景锚框” 微调位置和大小,使其更接近真实目标(输出修正量 dx、dy、dw、dh)。


最终从所有前景锚框中筛选出 2000 个高质量候选区域(通过置信度排序和 NMS)。


目标检测类算法中YOLO和Faster R-CNN的具体原理、对比与应用(图3)


第二阶段:Fast R-CNN 对候选区域精修


目标是对 RPN 生成的候选区域做 “类别判断” 和 “精准定位”。


RoI Pooling(感兴趣区域池化):将不同大小的候选区域(如有的 100×80,有的 50×30)统一缩放到固定尺寸(如 7×7),方便后续全连接层处理。


分类与回归:


分类:通过全连接层判断候选区域属于哪个类别(如 “人”“车” 或 “背景”);


边界框回归:再次微调候选区域的位置和大小,进一步提升定位精度。


最终输出每个目标的类别和精确边界框(如 “在 (120, 210)-(180, 350) 区域有一个人,置信度 98%”)。


核心特点:


两阶段:先 “粗筛” 再 “精修”,精度极高(对小目标、遮挡目标的检测更准,比如能区分园区灌木丛后半遮挡的人);


锚框机制:通过预设锚框适配不同尺寸目标,鲁棒性强;


缺点:速度慢(比 YOLO 慢 10-50 倍),因需两次网络计算(RPN+Fast R-CNN)。


三、核心原理对比:为什么 YOLO 快、Faster R-CNN 准?


维度

YOLO(单阶段)

Faster R-CNN(两阶段)

检测流程

1 次网络计算直接输出结果

2 次网络计算(RPN 生成候选 + Fast R-CNN 精修)

目标筛选方式

网格直接预测,依赖 NMS 筛选

先通过 RPN 筛选候选区域,再精修

对小目标的处理

依赖网格划分,小目标易漏检

锚框多尺度覆盖,小目标检测更准

计算量

低(单阶段)

高(两阶段 + 锚框计算)

典型场景

园区实时监控(需快速报警)

园区高精度区域(如危化品仓库,不容误报)


简单说:YOLO 像 “一眼扫过就说出所有目标”,快但可能漏看细节;Faster R-CNN 像 “先圈出可疑区域,再仔细辨认”,慢但看得更准。在园区场景中,周界实时报警选 YOLO,高精度禁区检测选 Faster R-CNN,两者也可结合(如多摄像头分别部署)。

- END -
分享:
留言 留言 留言咨询
电话咨询 电话咨询 电话联系
19113907060
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *