计算机视觉之SSD目标检测

模型简介

SSD是一种单阶段目标检测算法,通过卷积神经网络进行特征提取,并在不同的特征层进行检测输出,实现多尺度检测。它采用了anchor的策略,预设不同长宽比例的anchor,并在每个输出特征层上预测多个检测框。SSD框架包括了多尺度检测方法,浅层用于检测小目标,深层用于检测大目标。

模型结构

SSD和YOLO是两种单阶段目标检测算法,它们在最终输出边界框的方式上有所不同。SSD通过卷积得到最后的边界框,而YOLO则采用全连接的形式得到一维向量,再对向量进行拆解得到最终的检测框。

模型特点

SSD使用多尺度特征图来进行目标检测,其中大尺度特征图用于检测小物体,小尺度特征图用于检测大物体。SSD采用卷积对不同特征图进行检测,并使用预设的边界框(anchor)来指导预测框的尺寸微调,相比于YOLOv1的全连接层预测,这种方式更容易训练。

环境准备

数据准备与处理

SSD算法通过对每个训练图像进行随机采样,使模型对于不同大小和形状的输入对象更加鲁棒。采样方式包括使用整个原始输入图像、采样一个与原始图片交并比为0.1, 0.3, 0.5, 0.7或0.9的区域,或者随机采样一个区域。采样区域的大小为原始图像大小的[0.3, 1],长宽比在1/2和2之间。如果真实标签框中心在采样区域内,则保留两者重叠部分作为新图片的真实标注框。最后,将每个采样区域大小调整为固定大小,并以0.5的概率水平翻转。

数据集创建和构建

训练过程

(1)先验框匹配

SSD模型在训练时通过匹配ground truth与先验框来确定正负样本。首先,每个ground truth会与IOU最大的先验框匹配,未匹配的先验框则被视为负样本。其次,对于未匹配的先验框,如果其IOU大于设定阈值,也会被匹配到对应的ground truth。为了平衡正负样本比例,SSD采用了hard negative mining策略。需要注意的是,一个先验框只能匹配一个ground truth,而一个ground truth可以匹配多个先验框。

(2)损失函数

损失函数使用的是上文提到的位置损失函数和置信度损失函数的加权和。

(3)数据增强

对创建好的数据增强方式进行数据增强,并使用SSD模型训练60个epoch。训练集和验证集由create_ssd_dataset类创建,batch_size为5,图像尺寸为300×300。损失函数为位置损失函数和置信度损失函数的加权和,优化器为Momentum,初始学习率为0.001。使用LossMonitor和TimeMonitor监控训练过程,并设置每10个epoch保存一次模型。

评估

自定义eval_net()类对训练好的模型进行评估,调用了上述定义的SsdInferWithDecoder类返回预测的坐标及标签,然后分别计算了在不同的IoU阈值、area和maxDets设置下的Average Precision(AP)和Average Recall(AR)。使用COCOMetrics类计算mAP。模型在测试集上的评估指标如下。

总结

SSD(Single Shot MultiBox Detector)是Wei Liu在ECCV 2016提出的一种目标检测算法。它采用了多尺度的特征图来检测不同大小的目标,并利用anchor boxes策略有效地预测边界框和类别。SSD算法在COCO数据集上取得了较好的性能,在网络复杂度和计算量方面也优于之前的算法。本文详细介绍了SSD算法的网络结构、特点、模型训练以及评估过程。

相关推荐
通街市密人有4 小时前
IDF: Iterative Dynamic Filtering Networks for Generalizable Image Denoising
人工智能·深度学习·计算机视觉
sali-tec5 小时前
C# 基于halcon的视觉工作流-章34-环状测量
开发语言·图像处理·算法·计算机视觉·c#
小王爱学人工智能6 小时前
OpenCV一些进阶操作
人工智能·opencv·计算机视觉
猫天意8 小时前
【目标检测】metrice_curve和loss_curve对比图可视化
人工智能·深度学习·目标检测·计算机视觉·cv
山烛8 小时前
OpenCV:图像透视变换
人工智能·opencv·计算机视觉·图像透视变换
这张生成的图像能检测吗10 小时前
(综述)视觉任务的视觉语言模型
人工智能·计算机视觉·语言模型·自然语言处理·视觉语言模型
星期天要睡觉13 小时前
计算机视觉(opencv)实战二十一——基于 SIFT 和 FLANN 的指纹图像匹配与认证
人工智能·opencv·计算机视觉
星期天要睡觉14 小时前
计算机视觉(opencv)实战十七——图像直方图均衡化
人工智能·opencv·计算机视觉
feifeigo12314 小时前
星座SAR动目标检测(GMTI)
人工智能·算法·目标跟踪
赴33517 小时前
图像拼接案例,抠图案例
人工智能·python·计算机视觉