美文网首页
AI入门基础笔记- 5.1:目标检测算法的背景与分类

AI入门基础笔记- 5.1:目标检测算法的背景与分类

作者: 薛东弗斯 | 来源:发表于2023-04-22 08:22 被阅读0次

    无人驾驶(先对人、车、交通指示牌、路进行检测,再进行决策),人脸识别(先做人脸检测,再对人脸分析),客流统计行业(先对人体做检测,再进行追踪,从而进行统计)。

    因此,人脸检测,是很多项目落地的第一步。因此,对人脸检测的研究最多

    Yolo V3 2018

    Yolo V4 2020

    图像分类:给定一张图片,直接判断图像中包含什么类别的目标,解决了“是什么”的问题。 比如输入上图左边的图片,输出的图片会判断图片中有小狗。

    目标定位:将目标的位置找出来,解决“在哪里”的问题。比如输入右边的图片,返回的是小狗的坐标信息。

    目标检测:在目标定位的基础上进一步升级,即要定位出图片上所有目标的位置,也要输出目标的类别,从而解决了“是什么,在哪里”的问题。比如输入上图左边图片,会输出两个目标的坐标信息,同时判断左边的是小狗,右边的是小猫

    图像分割:主要解决每个像素是什么的问题。在算法上,通常将图像分割分为三类:实例分割,语义分割,全景分割。

    上面右图就是实例分割的应用,对于每个人体都进行了分割,每个人体都是不同颜色的轮廓,因此可以区分出单个不同的个体。

    上图左边是语义分割的效果,它与前面的实例分割不同,只能判断类别,无法区分个体。 比如语义分割将整个图像分成了草地、人、树木以及天空四类,都用不同的颜色进行标识。但是不同的人体之间无法进行区分。

    右图是全景分割的效果,是实例分割和语义分割的结合,在语义分割中,将整张图像分成四类,草地、人、树木以及天空,当一个类别中有多个实例的时候,就会用不同的颜色进行区分。比如人群中因为有多个不同的个体,所以用了不同的颜色。而天空、草地、树木都是一体的,所以用了一种颜色。

    由于各类物体的形状、外观、姿态,加上成像时候的光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域,非常具有挑战性的问题,所以目标检测的算法有很多。上图是传统目标检测算法到基于深度学习的目标检测算法的发展历程。

    以卷积神经网络为分水岭,在2012年之前,属于冷兵器时代。主导的算法主要是基于传统的手工特征的检测算法。比如HOG特征。

    到了2012年之后,随着GPU的发展,图像数据增加,开始进入了GPU时代。主要通过大量的深度学习来进行目标检测,其中比较有代表性的算法就是YOLO系列和RCNN系列。这两种算法都是基于Anchor锚框的。

    YOLO算法是端到端,直接输出目标物体的位置和类别,属于One-Stage算法。

    而Faster-RCNN算法分为两个阶段,第一个阶段 首先产生候选的区域,包含大量的可能存在目标的框; 然后第二阶段对候选区域进行分类和位置精修。Two-stage算法。

     2012年之后,其实还产生了另外一种Anchor-free无锚框的方式,以CenterNet算法为代表。但也是直接输出目标物体的信息,因此也属于One-Stage算法。

    这些数据集都是网络公开的。

    该数据集类别多,数量最庞大,所以很多图像分类/识别/目标定位等研究基于ImageNet数据集进行

    很多目标检测、图像分割、语义分析等算法性能评价的“标准” 基于COCO数据集

    图像分类\检测 算法性能测试 的 基本数据集。

    当用数据集训练好目标检测模型时,还需要使用一些指标,去判断模型的好坏,以及对检测出的目标框进行过滤。

    算法A:1秒可以处理5张图片  算法B:1秒可以处理20张图片

    比如对左边图片进行人脸检测,可以看到网络预测出很多个框,但是实际上每个目标只有一个框,比如右图标注的那样,所以在网络预测后,还要进行NMS,非极大值抑制的方式,去除预测后重叠的框,保留最好的一个框。

    比如输入一张原始图片,网络中的定位分支,可以对前景和背景进行分类,从而找出图片上所有物体的框。比如车,人,马,狗。 

    但是目标检测不仅有定位,还有分类的功能,所以再使用网络中的分类分支,对定位出的所有目标框进行分类,区分不同的物体。 可以看到,分类后,可以把人、车、马、狗分成几类,

    但是也可以看到每个物体上有很多框。再采用NMS,对网络预测的结果,进行后处理,处理完之后,可以看到每个物体上只有一个框了。

    比如做汽车检测的项目,上面四个框都是网络预测出的目标框,那么该如何对这四个框做非极大值抑制处理呢? 从图片上可以看到,这四个框上面,都有网络预测的得分,即网络预测这个框,属于汽车的概率。

    第一步:先对四个框按照得分,从高到低进行排序

    第二步,选额其中得分最高的框,即得分0.92这个框,再依次计算它和其它框之间的IOU值。

    比如第一个目标框和第二个目标框之间的IOU值,等于0.6

    比如第一个目标框和第三个目标框之间的IOU值,等于0.06

    比如第一个目标框和第四个目标框之间的IOU值,等于0,没有交集

    计算出来后,再设置IOU的阈值,等于0.5,就是将大于0.5的所有框去除。因为大于0.5的两个框很有可能是同一个物体上的,我们只保留分数最大的那一个。因此将IOU=0.6的目标框2去除

    去掉2之后,只剩下1、3、4 三个目标框。 除了1号框以外,我们再对目标框3、4 再用同样的方式循环处理

    3和4中,3号框得分0.78,所以先选择3号框,再计算它和4号框的IOU,比如IOU=0.55,因为0.55大于0.5,所以去除4,保留3

    人体检测:商场、营业厅、餐厅等各种场景中,应用很多。比如检测到人体,可以做流量统计,行人跟踪等

    头肩检测:与人体检测比较类似,但是检测的准确性相对更好一些,特别在人群比较密集的地方,检测的更精准一些

    人脸检测:智能安防行业,以及一些App中应用较多。检测到人脸之后,再提取出图片中的人脸区域,进而对人脸部分进行分析,从而人脸识别。再很多App的人脸特效中应用很多。在人脸的某些部位,或者头上加一些动画特效。

    安全帽检测:很多工地上都在用这个应用。没戴安全帽会自动报警提示

    车辆检测:自动驾驶领域应用较多。比如分析汽车前面是否有车辆,是否有行人,从而和其它传感器结合,判断距离自己的车有多远,以及是否有路灯,是否有指示牌,车辆会自动计算,从而做出预防的机制。

    口罩检测:疫情期间 机场、车站、办公场所 多采用该应用。若没有佩戴,自动提醒。

    相关文章

      网友评论

          本文标题:AI入门基础笔记- 5.1:目标检测算法的背景与分类

          本文链接:https://www.haomeiwen.com/subject/igoghdtx.html