NVIDIA在目标检测模型量化分析模型方面,怎样做到速度和精度之间的平衡。NVIDIA 在目标检测采用哪种算法?

目标检测作为计算机视觉领域的顶梁柱,不仅可以独立完成车辆、商品、缺陷检测等任务,也是人脸识别、视频分析、以图搜图等复合技术的核心模块,在自动驾驶、工业视觉、安防交通等领域的商业价值有目共睹。

正因如此,YOLOv5、YOLOX、PP-YOLOE、PP-PicoDet等优秀算法层出不穷,各有优劣侧重。而在当前云、边、端多场景协同的产业大趋势下,运行速度、模型计算量、模型格式转化、硬件适配、统一部署方案等实际问题都需要考虑,到底该怎么选呢?

今天小编就给大家推荐一个,针对云、边、端各环境都深层优化的超强目标检测开发套件 — PaddleDetection。无论你追求的是高精度、轻量化,还是场景预训练模型,它其中的模型都能以业界最高标准满足你的需求。同时,这些模型都拥有统一的使用方式及部署策略,不再需要进行模型转化、接口调整,更贴合工业大生产标准化、模块化的需求!

计图(Jittor)深度学习框架于2020年3月由清华大学自主研发并发布,在诸多应用领域取得了优于国际主流框架的性能。

近期,阿联酋起源人工智能研究院(IIAI)邵岭教授团队和南开大学程明明教授团队联合构建了隐蔽目标检测(Concealed Object Detection)新任务。团队发布了COD10K数据集,涵盖了真实场景中78个不同类别目标所组成的10,000张图像样本,并提出一种基于分组反向注意力的基线模型,该研究成果发表于IEEET-PAMI[1]。

附 图1中所对应的正确答案

图7 图1中小鸟藏在哪里?

您可通过下方二维码,关注清华大学图形学实验室,了解图形学、Jittor框架、CVMJ期刊和CVM会议的相关资讯。

摘要:针对油田作业现场监控视频中的工人安全着装小目标检测效果较差的问题, 提出了改进YOLOv5的油田场景规范化着装检测方法Cascade-YOLOv5 (C-YOLOv5). 首先搭建YOLO-people与YOLO-dress级联的小目标检测网络, 定位行人目标, 然后裁剪出行人区域并进行尺度变换, 最后对行人进行安全着装检测; 为了充分融合浅层与深层特征信息, 在各级网络中使用4个不同尺度的卷积特征层来预测待检测目标. 最后在原始图像中用不同颜色的框标出行人以及行人的着装部件类别, 从而判定行人是否着装规范. 实验证明, 相比原始YOLOv5算法, C-YOLOv5方法不仅满足实时性的要求, 而且检测的mAP提升了2.3%. 同时, 融合了深浅层信息的改进方法有效地增强了特征的表征能力, 提高了小目标的检测精度.

油田作业现场中工作人员的着装不规范问题经常出现, 例如油田工人工作时未佩戴安全帽、未穿着劳保服等, 从而导致一些不安全的事件时而发生, 因此, 规范化安全着装检测在推进企业智能化安全管理、保障人员生命财产安全等方面起着至关重要的作用[]. 对于规范化安全着装检测任务, 由于油田作业现场的监控摄像头覆盖范围广、拍摄距离远, 画面中人员目标的尺寸较小, 导致着装部件目标所占的像素数较少、携带的特征信息很弱, 提高了检测难度. 因此, 提高小目标检测精度是规范化安全着装检测任务的关键. 本文针对油田作业现场规范化安全着装小目标检测问题, 基于YOLOv5设计了一种YOLO-people和YOLO-dress级联的小目标检测网络, 先定位行人目标进行尺度变换后再对行人进行安全着装检测. 同时结合多尺度特征融合的思想, 将YOLOv5中原来的3尺度检测扩展为4尺度检测, 充分融合深浅层特征信息, 进一步提高小目标检测精度, 降低漏检率.

当前目标检测算法主要分为两阶段方法和单阶段方法. 经典的两阶段方法[-]首先利用区域候选网络来提取候选目标信息, 再利用检测网络对候选目标集合进行位置和类别的判定, 具有很高的检测精度, 但由于两阶段方法推理速度慢、处理效率低, 很难达到实时性检测的要求. 单阶段检测算法如SSD[]和YOLO[, ]系列, 这些算法不需要对特征区域进行提取, 只需在特征图上进行边界框的回归, 仅仅一步即可预测最终结果, 算法推理速度能够达到实时. 这些方法在通用数据集上已经取得了较好的检测效果, 但对于某些特定场景比如油田作业现场, 由于监控探头拍摄范围广、目标距离远, 导致人员身上的着装部件在监控画面下所占像素较少, 携带的特征信息十分有限, 缺少明显的纹理、形状等特征, 使得通用的目标检测算法在规范化安全着装检测任务上表现不佳, 在进行小目标检测具有一定的局限性. 因此, 主流的目标检测方法在处理规范化着装检测任务尤其是针对小目标的检测, 仍有较大的提升空间.

目前基于深度学习的目标检测算法普遍针对具有一定比例或尺寸的中大型目标, 难以适用复杂背景下的小目标, 小目标检测的难点总结成以下3个方面.

(1)深度神经网络特征提取和小目标尺寸之间的问题. 对于如油田作业现场等特定场景下的监控探头, 由于拍摄范围广、目标距离远, 导致待检测目标尺寸较小, 而且多数目标检测网络由于池化层的存在, 在特征提取时能够提取到的特征信息逐渐减少, 导致深层特征对小目标的表达能力较弱, 检测效果欠佳.

(2)小目标检测公共数据集较少且目标尺寸分布不均匀. 现有的目标检测算法大多基于Pascal VOC或COCO数据集进行小目标检测研究, 数据集中小目标的分布十分不均匀且占比不多, 导致在训练过程中难以充分学习小目标物体的特征, 对小目标的泛化能力弱、检测精度较低.

(3)相关检测算法缺乏通用性. 目前对小目标检测的研究大多应用于特定场景下, 如疫情期间对人脸口罩的识别、无人机视角检测地理空间小目标, 道路交通方面识别交通标志等, 由于检测任务的多样性和复杂性使算法在实际应用中面临很大挑战, 难以迁移.

目前针对小目标检测, 基于单阶段的检测算法[-]大多通过多尺度特征融合的方式充分利用包含较多细节信息的高分辨率底层特征, 卷积神经网络能够自动学习不同层次结构的图像信息特征, 底层特征保留了很多局部的图像细节信息如轮廓、边缘和纹理等, 有助于更好地进行目标定位. 深层特征图感知细节信息的能力较差, 但包含了更多深层次的语义信息, 有助于更好地进行目标分类. 多尺度特征融合采用自顶向下的横向连接的方式融合底层特征与深层特征, 融合后的特征具有更强的描述性, 有利于小目标的检测. Lin等人[]提出特征金字塔网络(FPN), 结构如所示. 深层特征图经过上采样后与较低层特征图做元素级别的相加, 上采样时采用双线性插值法增强了网络提取多尺度特征的能力. FPN结构作为基础模块, 在各类目标检测算法中被普遍使用并取得了极大成功; Woo等人[]改进了FPN上采样方式, 在深层特征图进行上采样时用反卷积层代替双线性插值法并获得了更好的性能; Li等人[]将注意力机制引入FPN结构, 使经过全局池化后的深层特征对底层特征图的通道进行加权, 来引导不用层级信息之间的融合; 郑秋梅等人[]改进YOLOv3中的FPN结构, 将其在3个尺度检测增加至4个尺度, 充分融合提取的底层特征信息和深层语义信息, 同时改进原有的损失函数, 最终提升对车辆小目标的识别效果.


针对规范化安全着装小目标检测问题, 分析小目标检测的特点, 本文提出了Cascade-YOLOv5网络(C-YOLOv5), 首先搭建YOLO-people与YOLO-dress级联的小目标检测网络, 定位行人目标, 然后裁剪出行人区域并进行尺度变换, 最后对行人进行安全着装检测; 同时采用多尺度特征融合方法, 更改YOLOv5中的PANet结构, 采用4个不同尺度的特征层对目标进行预测, 使底层与深层特征信息充分融合, 有效增强小目标的检测效果; 并采用旋转、裁剪、缩放等数据扩充方式处理数据集, 最终提升小目标检测准确率, 减少漏检、误检.

由于油田作业现场规范化着装检测任务对小目标的检测精度要求较高, 本文经过在速度和精度方面的衡量, 最终选择YOLOv5作为本文方法的基础模型, 其图像推理速度最快达到0.007 s, 即每秒可处理140帧, 满足油田作业现场视频监控图像实时检测需求, 同时有非常轻量级的模型大小, 适合监控视频下目标检测任务的模型部署.


在输入端包括Mosaic数据增强、图片自适应缩放和自适应锚框3个部分, 其中Mosaic增强方法能够有效提高小目标检测效果, 适用于规范化安全着装检测任务.

在Backbone特征提取网络部分, 包括CSP结构和新增的Focus结构. YOLOv5中设计了两种CSP结构, CSP1_X结构应用于Backbone主干网络中, 另一种CSP2_X结构则应用于Neck中, 二者结构具体如中所示. Focus结构中比较关键的是切片操作, 原始640×640×3的图像, 先复制4份, 然后通过切片操作将这4个图片切成了4个320×320×3的切片, 然后使用Concat从深度上连接这4个切片, 输出为320×320×12, 之后再通过卷积核数为32的卷积层, 生成320×320×32的输出, 最后经过Batch_norm和Leaky_ReLU将结果输入到下一个卷积层. 提高了特征图上每个点的感受野, 减少原始信息的丢失且减少了计算量加快了检测速度.

在Neck结构中采用了PANet结构, 由FPN+PAN结构组成. FPN利用自上而下的方式通过对特征图进行上采样融合. PAN结构采用自底向上的方式通过对特征图进行下采样融合, PANet结构如所示.


在输出端YOLOv5采用了GIoU_Loss来作为损失函数, 并采用加权NMS来解决遮挡严重导致检测不准确的问题. GIoU_Loss如式(1)所示:

80×80的特征图, 这种采用多尺度特征融合的检测方法在检测图像中不同尺寸的目标时具有较好的鲁棒性, 但仅利用3个尺度的特征层进行预测, 并不能充分的利用底层特征信息, 从而会导致小目标位置信息丢失, 不利于油田作业现场着装部件小目标检测.

针对YOLOv5的不足之处以及油田作业现场安全着装小目标检测任务的特点, 本文提出了改进的C-YOLOv5方法, 最后通过对比实验验证本文方法的有效性.

对实际油田作业场景进行分析, 安全着装检测任务有如下几个特点: 一是由于实际油田作业场景中监控摄像头摆放位置较高, 导致拍摄画面中作业人员目标较小, 且监控摄像头长期暴露在空气中, 监控画面会有轻微的模糊现象, 都会给规范化着装检测带来一定的难度; 二是由于作业人员身上的着装部件相对于作业人员目标尺寸更小, 例如安全帽、作业上衣、作业裤子、作业鞋子、手套等部件, 这也会给检测的准确性带来影响; 三是由于外在环境的影响, 如光照变化、天气变化、场景遮挡以及监控视角的变化等这些因素也会使小目标检测的难度变得非常大.

基于以上这些考虑, 由于通用目标检测算法对中大型目标有较好的检测效果. 因此对比于直接在监控画面中检测较小尺寸的着装部件, 先进行作业人员较大目标检测, 再进行着装检测能够有效地缓解部分小目标难以被检测到的问题. 于是本文以YOLOv5为基础网络来搭建安全着装小目标检测的级联网络Cascade-YOLOv5 (C-YOLOv5).


以摄像头源流为输入, 首先利用YOLO-people网络将输入图片的像素放缩至640×640, 将整幅图片划分为S×S个网格, 分别在20×20、40×40、80×80和160×160四种不同大小特征图上进行预测, 在每个特征图上采用跨邻域网格匹配策略, 从目标中心点所在的当前网格的上下左右4个网格中找到离目标中心点最近的两个网格, 再加上当前网格共3个网格进行匹配, 产生更多的anchor边界框, 每个网格中都会预测3个不同尺寸的边界框, 每个边界框会产生一个5+C维的向量, 其中5表示5维向量, 包含边框坐标(4个数值), 类别置信度(1个数值). C表示预测类别总数.类别置信度计算方法如式(2)所示:

和真实标注框(GroundTruth)之间的面积重合度将以像素为坐标值来计算, 这一过程如式(3)所示:

如果网格中包含目标, 网格还需要预测该目标属于第i类的概率 $ Pr (clas{s_i}|Object) $ , 即目标分类条件概率. 通过计算目标类别条件概率 $ Pr (clas{s_i}|Object) $ 与预测框置信度 $ (Confidence) $ 的乘积可得目标位置及类别置信度, 能够综合评价预测边界框的性能. 具体计算如式(4)所示:

CIoU_Loss函数增加了相交尺度的衡量方式, 有利于解决边界框有时不重合的问题, 同时考虑了边界框中心点距离的信息与边界框宽高比的尺度信息, 使网络会有更快更好的收敛效果.

最后, 选择置信度最高的预测边界框作为结果的检测框, 同时去除冗余框, 即使用了非极大值抑制(NMS)[]的方法. 然后, 将YOLO-people检测出的行人目标区域根据其左上角和右下角坐标, 从原始图像中裁剪并进行放大处理, 同时对每一个放大后的行人目标区域做锐化、对比度增强等处理, 增强行人目标的边界信息表示, 有利于规范化着装检测. 然后将每个行人区域送入YOLO-dress网络进行规范化着装检测, 检测流程和YOLO-people几乎相同, 最后, 在原始的输入图像中, 用不同颜色的框标出行人以及行人的着装部件类别.

对于背景复杂的图像, 在进行目标检测时小目标在图像中只占用很少量的像素点, 检测网络从这些像素中能提取出的语义信息非常有限. 根据图像梯度上升法[], 利用不同层提取出的特征对原始图像进行重构, 得出富含细节信息的低层特征比富含语义信息的高层特征可以更好地协助目标检测的结论.

本文以YOLOv5L版本的网络结构为基础, 搭建YOLO-people与YOLO-dress级联的小目标检测网络, 每级网络从多尺度融合方式进行改进. 原始YOLOv5通过3个不同尺度的特征图进行目标物体的检测, 输出3个尺度规格分别为20×20、40×40、80×80的特征图, 但是仅利用3个尺度的特征, 对浅层信息的利用并不充分, 会导致部分小目标信息丢失. 因此针对C-YOLOv5两级子网络, 分别将原来的3尺度检测扩展为4尺度, 构成4个检测分支结构, 如所示, 输入尺寸为640×640, 每个分支分别从Backbone主干网络中提取特征, 将从主干网络中提取的深层特征图在FPN中进行上采样并与网络前期相应尺寸的底层特征图由深入浅融合成有效信息, 实现了Concat连接操作. 但是在FPN网络中会存在一个问题, 浅层特征图在向深层传递信息时, 难以与高层特征图进行融合, 因此, 在FPN特征金字塔网络的基础上实现PAN网络结构, 增加了自底向上(bottom-up)路径, 将FPN网络中融合后的特征图继续进行自底向上的下采样融合, 实现特征图的反向融合, 这样会得到更丰富的特征信息. 利用PAN结构的bottom-up路径将FPN网络中融合后的特征图再次自底向上融合并进行下采样操作, 实现特征图的反向融合, 最后在4个尺度的融合特征图上分别做独立的检测. 改进后的多尺度融合可以从浅特征层中学习较强的位置特征, 经过PAN结构的bottom-up路径再次融合使得深层特征可以进行更确切的细粒度检测. 通过融合更多尺度的浅层特征信息, 增强路径聚合网络(PANet)的特征表达能力, 提升小目标的检测精度, 降低漏检率.

图 5 改进PANet的多尺度特征融合方式

YOLO-people和YOLO-dress的网络整体结构基本相同, 如所示. 差别在于检测的目标和网络的输入分辨率有所不同, YOLO-people用于检测行人目标, 网络输入分辨率为640×640, YOLO-dress用于检测着装部件, 网络输入分辨率为320×320, 图像信息量的减少加快了检测速度. 最后, 由于anchor box的数量和大小对检测的精度和速度有直接影响, 因此采用K-means聚类方式生成更适合着装部件检测的锚点框, 通过K-means聚类选取合适的IOU分数, 可以在模型召回率和精确度之间取得平衡. 根据IOU和anchor box的关系, 针对C-YOLOv5两级子网络分别生成12个anchor box.


4 实验与结果分析 4.1 数据集构建 4.1.1 数据集预处理

由于油田作业现场要求佩戴安全帽、身穿红色劳保服, 故本文所采用的数据集全部源于某油田作业现场多个监控视角下所拍摄的监控画面, 对每一个摄像头设置每间隔半个小时抓取一张图片, 最后再删除部分没有工人的图片. 为了提高数据集的泛化性, 对4 500张样本采取图像反转、对比度变化等数据增强方式, 这样可以有效地避免了训练模型过拟合问题, 提高模型泛化能力, 避免了因数据样本量少导致的训练不充分的问题, 最终获得9 000张数据样本图, 用于行人检测网络YOLO-people的训练. 着装检测网络YOLO-dress的训练图像是根据每幅图像中行人的标记框坐标, 从原始图像中切割出行人目标区域再进行尺度变换得到, 最终每幅图像中都只有一个行人, 共27000张样本图. 行人检测网络和着装检测网络部分训练样本图如、所示.

本文依据规范化安全着装检测目标, 将设计行人、安全帽、非安全帽、安全上衣、非安全上衣、安全裤子、非安全裤子共7类检测标签, 参照PASCAL VOC[]目标检测数据集标准格式, 首先对每张训练样本中出现的行人目标进行标记, 采用Labelimg图像标注工具标注外围框, 将外围框的左上角坐标(xmin, ymin)、右上角坐标(xmax, ymax)以及目标类别person等相关信息进行记录, 得到行人检测数据集后, 根据标记框坐标将每张训练样本图中的行人目标进行裁剪并放大, 得到每幅图像只有一个行人, 对得到的每幅图像依据上述方式进行其余6个类别的标注, 最终得到着装检测数据集. 将两类数据集分别按8:2划分为训练集和测试集, 行人和6类着装类别目标在两类数据集中所占图像数量分布如所示.

图 7 工人检测网络训练样本图

图 8 着装检测网络训练样本图


为两级子网络训练的损失值收敛曲线, 可以看出损失值随着迭代步数降低, 迭代步数为290左右时, 损失值趋于稳定, YOLO-people网络训练loss值为0.024, YOLO-dress网络训练loss值为0.005.


本文对于规范化安全着装检测任务采用查准率(Precision)、查全率(Recall)、平均精度(AP)、平均精度均值(mAP)及每秒传输帧数(FPS)作为模型的评价指标.

查准率(Precision)衡量的是所有预测为正样本的结果中, 预测正确的比率, 在规范化安全着装检测任务中Precision代表模型正确预测某类着装部件的个数 $ (TP) $ 占预测该类着装部件总个数 $ (TP + FP) $ 的比值, 该指标如式(8)所示:

查全率(Recall)衡量的是所有正样本中被预测正确的比率. 在规范化安全着装检测任务中Recall代表模型正确预测某类着装部件的个数 $ (TP) $ 占该类着装部件总数 $ (TP + FN) $ 的比值, 该指标如式(9)所示:

平均精度(AP)用来计算单类别模型平均准确度, 对于目标检测任务, 每一类都可以计算出PrecisionRecall并得到一条P-R曲线, 曲线下的面积就是AP的值. 平均精度均值(mAP)就是对所有类别的AP值求平均值, N代表类别总数. 该指标如式(10)所示:


和为YOLOv5和YOLO-people在同一测试图像上的检测效果对比. 从图中可以看出, YOLO-people网络可以检测出更多的小目标行人. 和为YOLOv5和YOLO-dress在同一测试图像上的检测效果对比. 从对比图像中看出, 原始YOLOv5对于画面中两个人的安全帽佩戴情况没有检测出来, 而YOLO-dress模型全部检测准确, 相比YOLOv5的3尺度检测效果更好. 以上消融实验说明改进的4尺度模块对小目标检测的准确率有一定的提升.

实验2. 为了验证级联网络检测方式对小目标检测的有效性, 本文的级联网络测试实验采用两个原始YOLOv5网络进行实验, 在检测出行人目标的基础上检测着装部件, 在本文的工人检测数据集和着装检测数据集上进行实验, 采用mAP和FPS作为评价指标, 测试结果如所示. 实验证明, 通过级联网络检测的方式, 在保证实时的情况下, mAP相比于YOLOv5算法提升1.05%, 由此证明, 级联网络检测方式对于小目标的检测效果提升确实有效.



表 2 级联网络对比实验

和为YOLOv5和YOLOv5级联算法对同一图像的测试结果. 从图中可以看出, 原始YOLOv5算法没有检测出画面中一个人的安全帽和工作上衣的穿着情况, 而级联检测方式对画面中的行人都进行了正确的规范性着装检测, 无漏检情况.

图 13 级联网络对比测试

实验3. 通过整合多尺度融合改进和级联网络检测方式, 最终形成本文的C-YOLOv5. 在整体测试中, 本次实验对比了YOLOv5算法在自制着装数据集上的检测效果, 根据FPS和mAP评价指标评估本文方法的有效性, 如所示.

表 3 整体改进对比实验

通过对比实验结果表明, 原始YOLOv5在自制着装数据集上的传输速率达到了81.93 f/s, 检测精度mAP达到了91.75%. 而本文提出的C-YOLOv5方法在自制数据集上的传输速率达到36.24 f/s, 检测精度mAP达到了94.03%, 相比于YOLOv5提高了约2.3%, 这是因为C-YOLOv5在改进了多尺度融合方式的同时采用了级联检测, 不仅增强了小目标的特征信息, 而且通过级联的方式极大减少了背景干扰等影响因素, 降低了小目标检测的难度, 进一步提升了油田作业现场安全着装小目标的检测效果.

展示了本文C-YOLOv5算法在自制数据集上的检测效果与YOLOv5算法的对比. 从对比效果图中可以看出, 对于规范化着装检测任务, C-YOLOv5算法在监控视角拍摄距离较远、人员目标尺寸较小的情况下, 能够很好地检测出油田工人的规范着装情况, 在精确度和查全率方面具有较好的效果, 在小目标检测中表现较好.

图 14 整体改进对比测试

针对油田作业现场的监控视频中人员安全着装小目标检测问题, 本文提出了一种改进的Cascade-YOLOv5 (C-YOLOv5)方法, 该算法首先针对原始YOLOv5算法进行改进多尺度特征融合方式, 从原来的3尺度检测扩展为在4个尺度的融合特征图上分别做独立的检测, 改进后的模型充分利用了浅层特征信息并融合高层语义信息, 增强了路径聚合网络的特征表达能力, 提高了小目标的检测精度. 然后在此基础上, 用两个多尺度特征融合改进后的YOLOv5算法进行级联, 先检测工人目标, 然后将目标进行尺度变换处理后进行着装检测, 进一步提高远距离视频监控中的安全着装检测效果. 本文方法在自制数据集上与YOLOv5算法的对比实验, 证明该方法既能保证实时检测速度, 也提高了小目标检测精度. 本文方法最终实现了油田现场对于工作人员的智能化、自动化的规范化安全着装检测, 对油田作业现场安防智能监控发展有着重要的价值, 且本文方法适用于不同场景下的小目标检测任务.

我要回帖

更多关于 量化分析模型 的文章

 

随机推荐