最大的核心点速度会非常快
要做这些检测任务,很多时候都是基于视频去做,要在速度上做一个实时的检测
更简单的网络,那速度肯定会更快啊
map值,综合的去衡量检测效果,是我们在做一些检测任务当中,经常会提到的一个指标,因为这点我们不会涉及到什么准确率,召回率,精度的,这些我们通常不去考虑,而考虑一个综合的指标,就叫做这个map值。
map值是怎么算的,算的过程当中需要我们先算出来两个指标,一个就是精度(查准率) ,一个就召回率(查全率)
精度和召回率我单独的看其中某一个指标不行吗。在很多问题上他俩怎么样的,是不是说一个高了,另一个就低啊,他俩是一个矛盾的吧,所以说我光看这个时我很难综合的去说当前这个结果到底好还是不好
通常衡量两个指标,一个是fps,它的一个速度快还是慢,另外呢就是map值,它的一个效果是好还是不好呢,map值越大代表着它的检测效果是越好的,
i o u,交集和并集的一个比值。什么和什么交集,这里大家可以把它当作是我的一个真实值和预测值之间的一个交集。
置信度:
现在这个阈值吧,从这个0~1之间的,你把它的一个p还有一个r啊,就是一个精度,还有召回率,能不能全画出来,能不能全计算出来,当然可以了,每一个指标值我都能把结果算出来吧,那我们可以构建出来什么叫做一个pr图,我们算它下方的这样的一个阴影的面积,这个面积的结果就代表着一个map值,
显然我希望这个mp值怎么样,越接近于一是越好的。
mvp值,它是在不同阈值当中综合的去考虑所有的一个p和r的情况,综合得出来一个指标值。
yolo(you only look once)把这个检测问题变得非常简单,一个网络架构直接会出一个结果,他是把最终结果直接的转换成了一个回归问题(一个cnn),在网络当中,进行一个特征提取,然后把提取特征图转换成最终要求解的一个结果,就是x y w h
核心思想:对图像当中每个格子当中我每一个位置我都可以做计算,计算出来它各种各样指标,有四个偏移量加上一个置信度的值,当我做完这个置信度值之后,置信度减小的自然要被过滤掉
多了个权重的参数,我们的一个背景会是非常非常多的,前景会比较少啊,那这样显然会导致样本它是不均衡的,
选择最终哪个框,如果有大部分重叠的情况下,i o u 满足一定值的时候,把最大的是给拿出来,其他的就不要
YOLOv5
目标检测:
目标检测涉及到物体的分类,以及对物体边界框的确定,所以对于分类呢,我们可以用混淆矩阵来进行衡量,就是confusion matrix,那么confusion matrix呢,在这个矩阵中,我们可以看到我们有实际的物体的类别,进行了预测到它的类别
FPS和硬件有关系
nvidia驱动器-下载CUDA-下载cuDNN(和cuda相匹配)-安装CUDA-配置系统相关环境-安装cuDNN-CUDA安装测试-安装Anacoda和pytorch-YOLOv5项目克隆和安装【克隆YOLOv5项目(Git软件)-安装所需库-下载预训练权重文件-安装测试】-训练数据集
第一步呢是reset image,就是对于图片进行缩放,然后进行卷积神经网络convolutional neural,
然后是后处理,一般要做非极大抑制max supression,经过这三个以后,我们在图片上就可以检测出物体。
经过卷积神经网络以后呢,在特征图上我们划分s和s的网格,那么通过网格的划分,然后得到物体的bounding box,边界框,以及呢confidence就是置信度得分,另外呢还有class property map类别的概率图,然后结合这两者,我们可以得到final detection最终的检测的结果,
经过多尺度的预测和划分,不同尺度把他的特征进行融合,比如经过FPN进行多尺度的融合,就是特征金字塔网络,因为经过卷积神经网络以后呢,可以得到不同大小的特征图,然后我们可以把不同大小的特征图呢进行融合,来进行预测。
yo采用了anchor机制,也是锚框机制,锚框呢是一种先验框,我们预先设定一些边界框的大小
框置信度得分,和grid truth和预测框的lou相关,那么就是lou乘上这个pr object,也就是里面有没有物体,有的话是一,没有的话是零,
条件类别概率,也就是说有物体的时候,它是哪一种物体的这种概率,也就是说呢它以有物体为条件,然后再去再去找到是某个类别的概率
】
网络架构