1.概念
语义分割:语义分割的目标是为图像中的每个像素分配一个语义标签,以指示它属于哪个类别。
实例分割:实例分割的目标是对每个物体实例进行独立的分割,从而可以识别和跟踪图像中的每个物体。与语义分割只关注像素级别的语义标签不同,实例分割还要求对同类但不是同一个物体实例进行区分和分割。
全景分割:全景分割是一种结合了语义分割和实例分割的综合方法、,全景分割为图像中的每个像素分配一个语义标签和一个唯一的实例标识符。
2.1语义分割算法流程
以语义分割算法SegNet为例,就是线通过特征提取网络下采样,然后使用反卷积或者线性差值等方法进行上采用来回复特征图的分辨率和位置信息,之后在通过sotfmax来获取每个像素点的分类结果。
和目标检测算法不同的使语义分割算法去掉了全连接层,全连接层会破坏掉位置信息
2.2.实例分割算法流程
目前主流做二阶段实例分割的方法大都基于目标检测:先跑目标检测,然后对于每一个方框跑一个二元图像分割(binary segmenation)
Mask R-CNN:
YOLACT:是yolov5和v8分割的基础,流程:
1、输入图片;
2、通过主干网络对图片,进行特征提取;
3、经过FPN特征金字塔,对不同尺寸的特征图进行融合;
4.1、检测分支,对于每个目标物体,都输出类别、边框信息(x,y,w,h)、k个mask Coefficients(mask的的置信度,取值1或-1),这整个方块的区域可能是哪个类,但表示方式不是用置信度的形式而是bool;class
4.2、分割分支,针对当前输入图片,输出k个Prototype (mask原型图);不同图片,输出的Prototype有差异,但数量也是k个。bbox
5、对于每个目标物体,将k个mask Coefficients (mask的的置信度)与k个Prototype(mask原型图)进行相乘,然后将所有结果相加,得到该目标物体的实例分割结果。
检测分支
原型掩码,其个数K=32,k为超参数,32为原论文给出的
实例掩码系数
检测分支和mask分支加权求和就得到了最终的mask
参考:https://blog.csdn.net/qq_41204464/article/details/130417487https://blog.csdn.net/qq_41204464/article/details/130417487
https://zhuanlan.zhihu.com/p/376347955
3.评价指标
3.1执行时间
FPS也是指每秒钟可以处理的图像帧数,单位是帧/秒
实例分割的yolov8-seg,在镭神域控上可以达到31帧/秒
3.2准确率
分割性能评价指标有7种:
平 均 精 度(average precision,AP)、平 均 精 度 均 值(mean average precision,mAP)、平 均 准 确 率(mean accuracy,MA)、平均召回率(average recall,AR)、平均交并比(mIoU)、像素准确率(pixel accuracy,PA)和频率加权交并比(frequency weighted intersection over union,FWIoU),比较常用的有两种:平均准确率、平均交并比。
平均准确率PA:表示图像中正确分类的像素数目与像素总数的比率
交并比
平均交并比mean Intersection over Union:图像像素 每个类的 IoU 值累加后的平均值,大于80%就很高了
3.3计算开销
计算量的要求是在于芯片的计算量(指的是gpu的运算能力)参数量取决于显存大小
计算量(FLOPs):即每秒浮点运算次数的意思,考量一个网络模型的计算量的标准。
常用的单位有GFLOPs :GFLOPs为十亿(1e9)次的浮点运算。TFLOPs为万亿次(1e12)
参数量(Params):是指网络模型中需要训练的参数总数,从侧面反映了所需存储空间的大小。
以alexnet为例:参数量是6000万,假设每个参数都是float,也就是一个参数是4字节,总的字节数是24000万字节
24000万字节= 24000万/1024/1024=228mb
参考:
https://blog.csdn.net/huarzail/article/details/131739469