网站怎么做留言板,wordpress简体中文版本,丹阳火车站对面规划,wordpress 代码演示目录
一、相关名词解释
二、目标检测算法
三、目标检测模型
四、目标检测应用
五、目标检测数据集
六、目标检测常用标注工具 一、相关名词解释
关于图像识别的计算机视觉四大类任务#xff1a;
分类#xff08;Classification#xff09;#xff1a;解决“是什么
分类Classification解决“是什么”的问题即给定一张图片或一段视频判断里面包含什么类别的目标。
定位Location解决“在哪里”的问题即定位出这个目标的的位置。
检测Detection解决“在哪里是什么”的问题即定位出这个目标的位置并且知道目标物是什么。
分割Segmentation分为实例的分割Instance-level和场景分割Scene-level解决“每一个像素属于哪个目标物或场景”的问题。 目标检测Object Detection任务找出图像中所有感兴趣的目标物体确定它们的类别和位置。是一个分类、回归问题的叠加。
所以目标检测核心问题有4个
1分类问题即图片或某个区域中的图像属于哪个类别。
2定位问题目标可能出现在图像的任何位置。
3大小问题目标有各种不同的大小。
4形状问题目标可能有各种不同的形状。 二、目标检测算法
1算法分类
Tow stage先进行区域生成该区域称之为region proposal简称RP一个有可能包含待检物体的预选框再通过卷积神经网络进行样本分类。
任务流程特征提取 – 生成RP – 分类/定位回归。
常见tow stage目标检测算法有R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
One stage不用RP直接在网络中提取特征来预测物体分类和位置。
任务流程特征提取– 分类/定位回归。
常见的one stage目标检测算法有OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
2算法原理
1. 候选区域产生
很多目标检测技术都会涉及候选框bounding boxes的生成物体候选框获取当前主要使用图像分割与区域生长技术。区域生长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜色、纹理等)。目标识别与图像分割技术的发展进一步推动有效提取图像中信息。
1滑动窗口
通过滑窗法流程图见下图可以很清晰理解其主要思路首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后会得到不同窗口检测到的物体标记这些窗口大小会存在重复较高的部分最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终经过NMS筛选后获得检测到的物体。 滑窗法简单易于理解但是不同窗口大小进行图像全局搜索导致效率低下而且设计窗口大小时候还需要考虑物体的长宽比。所以对于实时性要求较高的分类器不推荐使用滑窗法。
2选择性搜索
① 什么是选择性搜索
滑窗法类似穷举进行图像子区域搜索但是一般情况下图像中大部分子区域是没有物体的。学者们自然而然想到只对图像中最有可能包含物体的区域进行搜索以此来提高计算效率。选择搜索selective search简称SS方法是当下最为熟知的图像bounding boxes提取算法由Koen E.A于2011年提出。 选择搜索算法的主要思想图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此选择搜索基于上面这一想法采用子区域合并的方法进行提取bounding boxes。首先对输入图像进行分割算法产生许多小的子区域。其次根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外切矩形)这些子区域外切矩形就是通常所说的候选框。 ② 选择搜索流程
step0生成区域集R
step1计算区域集R里每个相邻区域的相似度S{s1, s2,…}
step2找出相似度最高的两个区域将其合并为新集添加进R
step3从S中移除所有与step2中有关的子集
step4计算新集与所有子集的相似度
step5跳至step2直至S为空
③ 选择搜索优点
计算效率优于滑窗法
由于采用子区域合并策略所以可以包含各种大小的疑似物体框
合并区域相似的指标多样性提高了检测物体的概率
2. 数据表示
经过标记后的样本数据如下所示 预测输出包括预测结果的置信概率、边框坐标、属于某个类别的概率。通过预测结果和实际结果构建损失函数。损失函数包含了分类、回归两部分组成。
边界框bounding box论文中设置为2每个栅格的两个bounding box都是预测同一类物体。每个bounding box含有5个值x,y,w,h,confidence。
x,y代表了预测的bounding box的中心与某个栅格的偏移值。
w,h代表了预测的bounding box的width、height相对于整幅图像width,height的比例。
置信度confidence若bounding box包含物体则P(object) 1否则P(object) 0。bounding box和ground truth box的IOU值。
3. 效果评估
使用IoUIntersection over Union交并比来判断模型的好坏。所谓交并比是指预测边框、实际边框交集和并集的比率一般约定0.5为一个可以接收的值。 4. 非极大值抑制
预测结果中可能多个预测结果间存在重叠部分需要保留交并比最大的、去掉非最大的预测结果这就是非极大值抑制Non-Maximum Suppression简写作NMS。如下图所示对同一个物体预测结果包含三个概率0.8/0.9/0.95经过非极大值抑制后仅保留概率最大的预测结果。 三、目标检测模型
目标检测分为两大系列——RCNN系列和YOLO系列RCNN系列是基于区域检测的代表性算法YOLO是基于区域提取的代表性算法另外还有著名的SSD是基于前两个系列的改进。
1R-CNN
① 定义
R-CNN(全称Regions with CNN features) 是R-CNN系列的第一代算法其实没有过多的使用“深度学习”思想而是将“深度学习”和传统的“计算机视觉”的知识相结合。比如R-CNN pipeline中的第二步和第四步其实就属于传统的“计算机视觉”技术。使用selective search提取region proposals使用SVM实现分类。 ② 流程
预训练模型。选择一个预训练 pre-trained神经网络如AlexNet、VGG。重新训练全连接层。使用需要检测的目标重新训练re-train最后全连接层connected layer。提取 proposals并计算CNN 特征。利用选择性搜索Selective Search算法提取所有proposals大约2000幅images调整resize/warp它们成固定大小以满足 CNN输入要求因为全连接层的限制然后将feature map 保存到本地磁盘。训练SVM。利用feature map 训练SVM来对目标和背景进行分类每个类一个二进制SVM边界框回归Bounding boxes Regression。训练将输出一些校正因子的线性回归分类器
③ 效果
R-CNN在VOC 2007测试集上mAP达到58.5%打败当时所有的目标检测算法
④ 缺点
重复计算每个region proposal都需要经过一个AlexNet特征提取为所有的RoIregion of interest提取特征大约花费47秒占用空间selective search方法生成region proposal对一帧图像需要花费2秒三个模块提取、分类、回归是分别训练的并且在训练时候对于存储空间消耗较大。 2Fast R-CNN
① 定义
Fast R-CNN是基于R-CNN和SPPnets进行的改进。SPPnets其创新点在于只进行一次图像特征提取而不是每个候选区域计算一次然后根据算法将候选区域特征图映射到整张图片特征图中。 ② 流程
使用selective search生成region proposal大约2000个左右区域候选框(joint training)缩放图片的scale得到图片金字塔FP得到conv5的特征金字塔(joint training)对于每个scale的每个ROI求取映射关系在conv5中剪裁出对应的patch。并用一个单层的SSP layer来统一到一样的尺度对于AlexNet是6*6(joint training) 继续经过两个全连接得到特征这特征又分别共享到两个新的全连接连接上两个优化目标。第一个优化目标是分类使用softmax第二个优化目标是bbox regression使用了一个平滑的L1-loss测试时需要加上NMS处理利用窗口得分分别对每一类物体进行非极大值抑制提出重叠建议框最终得到每个类别中回归修正后的得分最高的窗口
③ 改进
和RCNN相比训练时间从84小时减少为9.5小时测试时间从47秒减少为0.32秒。在VGG16上Fast RCNN训练速度是RCNN的9倍测试速度是RCNN的213倍训练速度是SPP-net的3倍测试速度是SPP-net的3倍Fast RCNN在PASCAL VOC 2007上准确率相差无几约在66~67%之间加入RoI Pooling采用一个神经网络对全图提取特征在网络中加入了多任务函数边框回归实现了端到端的训练
④ 缺点
依旧采用selective search提取region proposal耗时2~3秒特征提取耗时0.32秒无法满足实时应用没有真正实现端到端训练测试利用了GPU但是region proposal方法是在CPU上实现的
3Faster RCNN
经过R-CNN和Fast-RCNN的积淀Ross B.Girshick在2016年提出了新的Faster RCNN在结构上将特征抽取、region proposal提取 bbox regression分类都整合到了一个网络中使得综合性能有较大提高在检测速度方面尤为明显。 ① 整体流程
Conv Layers。作为一种CNN网络目标检测方法Faster RCNN首先使用一组基础的卷积/激活/池化层提取图像的特征形成一个特征图用于后续的RPN层和全连接层。Region Proposal NetworksRPN。RPN网络用于生成候选区域该层通过softmax判断锚点anchors属于前景还是背景在利用bounding box regression包围边框回归获得精确的候选区域。RoI Pooling。该层收集输入的特征图和候选区域综合这些信息提取候选区特征图proposal feature maps送入后续全连接层判定目标的类别。Classification。利用取候选区特征图计算所属类别并再次使用边框回归算法获得边框最终的精确位置。
② Anchors
Anchors锚点指由一组矩阵每个矩阵对应不同的检测尺度大小。如下矩阵 其中每行4个值 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1,y1,x2,y2对应矩形框左上角、右下角相对于中心点的偏移量。9个矩形共有三种形状即1:1, 1:2, 2:1即进行多尺度检测。 例如一张800*600的原始图片经过VGG下采样后(生成特征矩阵)16倍大小大小变为50*38每个点设置9个anchor则总数为 ③ Bounding box regression
物体识别完成后通过一种方式对外围框进行调整使得和目标物体更加接近。
④ 损失函数
对一个图像的损失函数是一个分类损失函数与回归位置损失函数的叠加。
⑤ 改进
在VOC2007测试集测试mAP达到73.2%目标检测速度可达5帧/秒提出Region Proposal Network(RPN)取代selective search生成待检测区域时间从2秒缩减到了10毫秒真正实现了一个完全的End-To-End的CNN目标检测模型共享RPN与Fast RCNN的特征
⑥ 缺点
还是无法达到实时检测目标获取region proposal 再对每个proposal分类计算量还是较大 2. YOLO系列
1YOLOv12016
① 基本思想
YOLOYou Only Look Once 是继RCNNfast-RCNN和faster-RCNN之后Ross Girshick针对DL目标检测速度问题提出的另一种框架其核心思想是生成RoI目标检测两阶段two-stage算法用一套网络的一阶段one-stage算法替代直接在输出层回归bounding box的位置和所属类别。
之前的物体检测方法首先需要产生大量可能包含待检测物体的先验框, 然后用分类器判断每个先验框对应的边界框里是否包含待检测物体以及物体所属类别的概率或者置信度同时需要后处理修正边界框最后基于一些准则过滤掉置信度不高和重叠度较高的边界框进而得到检测结果。这种基于先产生候选区再检测的方法虽然有相对较高的检测准确率但运行速度较慢。
YOLO创造性的将物体检测任务直接当作回归问题regression problem来处理将候选区和检测两个阶段合二为一。只需一眼就能知道每张图像中有哪些物体以及物体的位置。下图展示了各物体检测系统的流程图。 实际上YOLO并没有真正去掉候选区而是采用了预定义候选区的方法也就是将图片划分为7*7个网格每个网格允许预测出2个边框总共49*2个bounding box可以理解为98个候选区域它们很粗略地覆盖了图片的整个区域。YOLO以降低mAP为代价大幅提升了时间效率。
②模型详细介绍见目标检测系列二yolov1的全面讲解-CSDN博客
③ 优点与缺点
1优点
YOLO检测物体速度非常快其增强版GPU中能跑45fpsframe per second简化版155fpsYOLO在训练和测试时都能看到一整张图的信息而不像其它算法看到局部图片信息因此YOLO在检测物体是能很好利用上下文信息从而不容易在背景上预测出错误的物体信息YOLO可以学到物体泛化特征
2缺点
精度低于其它state-of-the-art的物体检测系统容易产生定位错误对小物体检测效果不好尤其是密集的小物体因为一个栅格只能检测2个物体由于损失函数的问题定位误差是影响检测效果的主要原因尤其是大小物体处理上还有待加强
2YOLOv22016
Ross Girshick吸收fast-RCNN和SSD算法设计了YOLOv2论文原名《YOLO9000: Better, Faster, Stronger 》在精度上利用一些列训练技巧在速度上应用了新的网络模型DarkNet19在分类任务上采用联合训练方法结合wordtree等方法使YOLOv2的检测种类扩充到了上千种作者在论文中称可以检测超过9000个目标类别所以也称YOLO9000. YOLOv2模型可以以不同的尺寸运行从而在速度和准确性之间提供了一个简单的折衷在67FPS时YOLOv2在VOC 2007上获得了76.8 mAP。在40FPS时YOLOv2获得了78.6 mAP比使用ResNet的Faster R-CNN和SSD等先进方法表现更出色同时仍然运行速度显著更快。
①改进策略
YOLOv2对YOLOv1采取了很多改进措施以提高模型mAP如下图所示 ②模型详细介绍见待补充
③ 优点与缺点
1优点
YOLOv2使用了一个新的分类器作为特征提取部分较多使用了3*3卷积核在每次池化后操作后把通道数翻倍。网络使用了全局平均池化把1*1卷积核置于3*3卷积核之间用来压缩特征。也用了batch normalization稳定模型训练最终得出的基础模型就是Darknet-19包含19个卷积层5个最大池化层运算次数55.8亿次top-1图片分类准确率72.9%top-5准确率91.2%YOLOv2比VGG16更快精度略低于VGG16
2缺点
YOLOv2检测准确率不够比SSD稍差不擅长检测小物体对近距离物体准确率较低 3YOLOv32018
YOLOv3总结了自己在YOLOv2的基础上做的一些尝试性改进有的尝试取得了成功而有的尝试并没有提升模型性能。其中有两个值得一提的亮点一个是使用残差模型进一步加深了网络结构另一个是使用FPN架构实现多尺度检测。
① 改进
新网络结构DarkNet-53
用逻辑回归替代softmax作为分类器
融合FPN特征金字塔网络实现多尺度检测。
模型详细介绍见待补充
③ 效果
1兼顾速度与准确率。在COCO数据机上mAP指标与SSD模型相当但速度提高了3倍mAP指标比RetinaNet模型差些但速度要高3.8倍。
2小目标检测有所提升但中等和更大尺寸的物体上的表现相对较差。
当然YOLOv3也有些失败的尝试并未起到有效作用请自行查阅原始论文。 四、目标检测应用
人脸检测智能门控、员工考勤签到智慧超市、人脸支付车站、机场实名认证公共安全逃犯抓捕、走失人员检测
行人检测智能辅助驾驶、智能监控、暴恐检测根据面相识别暴恐倾向、移动侦测、区域入侵检测、安全帽/安全带检测
车辆检测自动驾驶违章查询、关键通道检测广告检测检测广告中的车辆类型弹出链接
遥感检测大地遥感如土地使用、公路、水渠、河流监控
其他农作物监控、军事检测等 五、目标检测数据集
1PASCAL VOC
VOC数据集是目标检测经常用的一个数据集自2005年起每年举办一次比赛最开始只有4类到2007年扩充为20个类共有两个常用的版本2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集test 2007作为测试集用10k的train/val 2007test 2007和16k的train/val 2012作为训练集test2012作为测试集分别汇报结果。
2MS COCO
COCO数据集是微软团队发布的一个可以用来图像recognitionsegmentationcaptioning 数据集该数据集收集了大量包含常见物体的日常场景图片并提供像素级的实例标注以更精确地评估检测和分割算法的效果致力于推动场景理解的研究进展。依托这一数据集每年举办一次比赛现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务是继ImageNet Challenge以来最有影响力的学术竞赛之一。
相比ImageNetCOCO更加偏好目标与其场景共同出现的图片即non-iconic images。这样的图片能够反映视觉上的语义更符合图像理解的任务要求。而相对的iconic images则更适合浅语义的图像分类等任务。
COCO的检测任务共含有80个类在2014年发布的数据规模分train/val/test分别为80k/40k/40k学术界较为通用的划分是使用train和35k的val子集作为训练集trainval35k使用剩余的val作为测试集minival同时向官方的evaluation server提交结果test-dev。除此之外COCO官方也保留一部分test数据作为比赛的评测集。
3Google Open Image
Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类1540万个bounding-box标注是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的确保了它们的准确性和一致性。另外这些图像是非常多样化的并且通常包含有多个对象的复杂场景平均每个图像 8 个。
4ImageNet
ImageNet是一个计算机视觉系统识别项目 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家模拟人类的识别系统建立的。能够从图片识别物体。ImageNet数据集文档详细有专门的团队维护使用非常方便在计算机视觉领域研究论文中应用非常广几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。ImageNet数据集有1400多万幅图片涵盖2万多个类别其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。 六、目标检测常用标注工具
1LabelImg
1LabelImg 是一款开源的图像标注工具标签可用于分类和目标检测它是用 Python 编写的并使用Qt作为其图形界面简单好用。注释以 PASCAL VOC 格式保存为 XML 文件这是 ImageNet 使用的格式。 此外它还支持 COCO 数据集格式。
2安装方法
前置条件安装Python3以上版本安装pyqt5 第一步下载安装包 第二步使用Pycharm打开项目运行labelImg.py文件或直接运行labelImg.py文件
3常见错误处理
① 报错ModuleNotFoundError: No module named ‘libs.resources’
处理方式
将python下scripts添加到环境变量path中
在labelImg目录下执行命令pyrcc5 -o resources.py resources.qrc
将生成的resources.py拷贝到labelImg/libs/下
执行labelImg.py程序
2Labelme
labelme 是一款开源的图像/视频标注工具标签可用于目标检测、分割和分类。灵感是来自于 MIT 开源的一款标注工具 Labelme。Labelme具有的特点是
支持图像的标注的组件有矩形框多边形圆线点rectangle, polygons, circle, lines, points支持视频标注GUI 自定义支持导出 VOC 格式用于 semantic/instance segmentation支出导出 COCO 格式用于 instance segmentation
3Labelbox
Labelbox 是一家为机器学习应用程序创建、管理和维护数据集的服务提供商其中包含一款部分免费的数据标签工具包含图像分类和分割文本音频和视频注释的接口其中图像视频标注具有的功能如下 可用于标注的组件有矩形框多边形线点画笔超像素等bounding box, polygons, lines, pointsbrush, subpixels标签可用于分类分割目标检测等以 JSON / CSV / WKT / COCO / Pascal VOC 等格式导出数据支持 Tiled Imagery (Maps)支持视频标注 快要更新
4RectLabel
RectLabel 是一款在线免费图像标注工具标签可用于目标检测、分割和分类。具有的功能或特点
可用的组件矩形框多边形三次贝塞尔曲线直线和点画笔超像素可只标记整张图像而不绘制可使用画笔和超像素导出为YOLOKITTICOCO JSON和CSV格式以PASCAL VOC XML格式读写使用Core ML模型自动标记图像将视频转换为图像帧
5CVAT
CVAT 是一款开源的基于网络的交互式视频/图像标注工具是对加州视频标注工具Video Annotation Tool 项目的重新设计和实现。OpenCV团队正在使用该工具来标注不同属性的数百万个对象许多 UI 和 UX 的决策都基于专业数据标注团队的反馈。具有的功能
关键帧之间的边界框插值自动标注使用TensorFlow OD API 和 Intel OpenVINO IR格式的深度学习模型
6VIA
VGG Image AnnotatorVIA是一款简单独立的手动注释软件适用于图像音频和视频。 VIA 在 Web 浏览器中运行不需要任何安装或设置。 页面可在大多数现代Web浏览器中作为离线应用程序运行。
支持标注的区域组件有矩形圆形椭圆形多边形点和折线