语义分割的根本目的:像素级分类!
不同分割网络效果
语义分割算法的基本流程
- 输入:图像(RGB)
- cv.imread、dataloader…
- 算法:深度学习模型
- FCN、UNet…
- 输出:分类结果(与输入大小一致的单通道图)
- 训练过程:
- 输入:image + label
- 前向:out = model(image)
- 计算损失:loss = loss_func(out, label)
- 反向:loss.backward()
- 更新权重:optimizer.minimize(loss)
语义分割性能指标
分割网络的评价指标:mIoU 和 mAcc
- mIoU:mean Intersection-Over-Union
- mAcc:mean Accuracy
其中 50(天空) 54(树) 7(车) 46(地面)为分割结果(分割类别)
Accuracy:两个结果相比,一致的 + 1,然后除以总长度
为什么要用mIoU?
mAcc是蛮高的,因为大部分的天空、森林、土地都是很准的,准确率很高
但是忽略了很重要的一类,例如汽车也是很重要的,算法希望能够把更精细的物体分割出来。所以IoU也是很重要的。
mean:一取mean,车的比重就会变大。