图像分割(上)
显著性检测
显著性物体分割:最能引起人的视觉注意的物体区域
注视点预测:通过对眼动的预测和探究探索人类视觉注意机制
俩种策略的视觉注意机制:
自底而上基于数据驱动的注意机制:从数据出发,与周边有较强对比度或差异,颜色,亮度,边缘等特征
自上而下基于任务驱动的目标注意机制:从认知因素出发,如知识,语气,兴趣等
DNN模型:
由VGG网络修改而成
DNN模型物体分割
前景背景分割
前景一般包含物体,需要交互提供初始标记
Groph Cuts分割
基于图论的分割方法
分割模型:每个像素是一个节点,加2个节点F/B,边 像素跟F/B的连接,相邻像素的连接,最小割最大流算法优化。
Grab Cuts分割(opencv内包含)
前景/背景的颜色模型,高斯混合模型,Kmeans算法获得
迭代进行Graph Cuts 优化前景和背景的颜色模型,能量随着不断迭代变小,分割结果越来越好
算法流程
使用标记初始化的颜色模型
执行Graph Cuts
Grab Cuts分割语义分割
目标:从像素水平上,理解,识别图片的内容,根据语义信息分割,输入:图片,输出:通尺寸的分割标记(像素水平),每个像素会被识别为一个类别。
语义分割语义分割的用处:
机器人视觉和场景理解,辅助/自动驾驶,医学X光
算法研究阶段
2015年前:手工特征+图模型CRF
2015年开始:深度神经网络
思路:改进CNN,并使用预训练CNN层的参数
传统的CNN问题:后半段网络无空间信息,输入图片尺寸固定
卷积网络:所有层都是卷积层,解决降采样后的低分辨率问题
全卷积网络:
卷积化(Convolutionalization):将所有全连接层转换成卷积层(可以输入任意尺寸的图片),适应任意尺寸的输入,输入低分辨率切割图片
基础CNN网络:AlexNet,VGG16,GoogLeNet
卷积化后的核尺寸(通道数,宽,高):FC6->(1*1,4096),FC7->(1*1,4096),FC8->(1*1,类别N),分辨率降低32倍,五个卷积层,每层降俩倍。
FCN卷积化反卷积(Deconvolution):将低分辨率图片进行上采样,输出同分辨率分割图片
一对多操作,卷积的逆操作:小数步长1/f,卷积核尺寸不变,前向和后向传播:对应于卷积操作的后向和前向传播,优化上做颠倒,反卷积核是卷积核的转置,学习率为0,也叫转置卷积,可以拟合出双线性插值。
外围全部补0(Full padding)反卷积,输入2*2,输出4*4,参数设置,卷积核尺寸3*3,步长:1,padding:2,倍、被Skip-layer使用。(偶数输出使用的例子)
反卷积( 外围全部补0(Full padding) )插零分数步长反卷积(Deconvolution),输入3*3,输出5*5,参数设置:卷积核尺寸:3*3,步长:2,padding:1,精化分割图片(奇数输出使用的例子)
反卷积( 插零分数步长反卷积(Deconvolution) )反池化操作:记录池化时的位置,将输入特征按记录位置摆放回去(近似)[效果不太好,一般不用]
反池化操作跳层结构(Skip-layer):
原因:直接使用32倍反卷积得到的分割结果粗糙,使用前2个卷积层的输出做融合,跳层:Pool4和Pool3后会增加一个1*1卷积层做预测,较浅网络的结果精细,较深网络的结果鲁棒
跳层结构(Skip-layer) FCN构架图例使用AlexNet构建FCN
第一步:使用AlexNet作为初始网络,保留参数,舍弃最后一个全连接层。
第一步第二步:替换为俩个不同深度的卷积层(4096,1,1)->16*16*4096,追加一个预测卷积层(21,1,1)->16*16*21,追加一个步长为32的双线性插值反卷积层->500*500*21
第二步第三步:Conv7结果2倍上采样->34*34*21,提取Pool4输出,追加预测卷积层(21,1,1)->34*34*21,相融合->34*34*21,追加一个步长为16的双线性插值反卷积层->500*500*21
第三步第四步:结果2倍上采样->70*70*21,提取Pool3输出,追加预测卷积层(21,1,1)->70*70*21,相融合->70*70*21,追加一个步长为8的双线性插值反卷积层->500*500*21
第四步FCG训练
初始化:卷积层:前五个卷积层使用初始CNN网络的参数,剩余第6和7卷积层初始化为0
反卷积层:最后一层反卷积层固定为双线性插值,不做学习,剩余反卷积层初始化为双线性插值,做学习。