昇思第16天

SSD目标检测

模型简介

SSD (Single Shot MultiBox Detector) 是 Wei Liu 在 ECCV 2016 上提出的一种目标检测算法。使用 Nvidia Titan X 在 VOC 2007 测试集上,SSD 对于输入尺寸 300x300 的网络,达到 74.3% mAP 和 59 FPS;对于 512x512 的网络,达到 76.9% mAP,超越当时最强的 Faster RCNN (73.2% mAP)。

目标检测算法可以分为两种类型:

  1. Two-stage 方法:RCNN 系列,通过算法产生候选框,然后再对这些候选框进行分类和回归。
  2. One-stage 方法:YOLO 和 SSD,直接通过主干网络给出类别位置信息,不需要区域生成。

SSD 采用卷积神经网络进行特征提取,通过多尺度的特征层进行检测输出,预设不同长宽比例的 anchor,每一个输出特征层基于 anchor 预测多个检测框。

模型结构

SSD 采用 VGG16 作为基础模型,然后在其基础上新增了卷积层以获得更多的特征图用于检测。SSD 利用多尺度特征图进行检测,不同于 YOLO,SSD 是通过卷积得到最后的边界框,而 YOLO 通过全连接形式得到一维向量。

模型特点
  • 多尺度检测:浅层检测小目标,深层检测大目标。
  • anchor 策略:预设不同比例的 anchor,进行多框检测。
  • 卷积实现检测:通过卷积层直接输出检测结果。
数据集和预处理

使用 VOC2012 数据集进行训练,进行数据增强和图像预处理,调整图像尺寸并标准化。

模型训练

训练时设置 epoch 次数为 60,batch_size 为 5,图像尺寸为 300x300。使用位置损失函数和置信度损失函数的加权和作为损失函数,优化器为 Momentum,初始学习率为 0.001。每训练 10 个 epoch 保存一次模型。

评估

使用自定义的 eval_net() 类对训练好的模型进行评估,计算在不同 IoU 阈值、area 和 maxDets 设置下的 AP 和 AR。使用 COCO Metrics 类计算 mAP。模型在测试集上的评估指标包括 mAP、IoU 等。

精确率和召回率
  • TP:IoU > 阈值的检测框数量
  • FP:IoU <= 阈值的检测框数量或多余检测框数量
  • FN:未检测到的 GT 数量

AP 和 AR 的计算公式分别为:

  • AP:正样本预测正确结果与正样本预测总结果的比值。
  • AR:正样本预测正确结果与正样本实际数量的比值。
训练输出指标
  • mAP:各类别 AP 的平均值
  • IoU=0.5 的 mAP:反映算法框的位置精准程度
  • AR:检出率,反映模型的检测性能
相关推荐
撞南墙者5 分钟前
OpenCV自学系列(1)——简介和GUI特征操作
人工智能·opencv·计算机视觉
OCR_wintone4216 分钟前
易泊车牌识别相机,助力智慧工地建设
人工智能·数码相机·ocr
王哈哈^_^27 分钟前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
一者仁心34 分钟前
【AI技术】PaddleSpeech
人工智能
是瑶瑶子啦42 分钟前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
柳鲲鹏1 小时前
OpenCV视频防抖源码及编译脚本
人工智能·opencv·计算机视觉
西柚小萌新1 小时前
8.机器学习--决策树
人工智能·决策树·机器学习
向阳12181 小时前
Bert快速入门
人工智能·python·自然语言处理·bert
jndingxin1 小时前
OpenCV视觉分析之目标跟踪(8)目标跟踪函数CamShift()使用
人工智能·opencv·目标跟踪