课时26 图像分割与注意力模型(上)
语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个
使用卷积神经,网络为每个小区块进行分类,对在区块的中间打上标签,对图像的全部区块分类完毕,我们就可以得到每个像素所对应的标签,这个操作实际上非常耗时,因为一张图片将会被分割非常多的小块。
如果这些神经网络具有相关的结构,通过这个图像金字塔方法的话,这些图像的输出将会有不同的感受野。
语义分割的迭代精化
我们有一个输入图像,他们被分割成三个通道,我们把输出从卷积神经网络中拿出来,同时把对应的下采样版本的图像拿出来。然后我们再重复这一过程,所以这个过程,其实是有点增加输出有效的感受野,同时也对输入图像有更多的处理。
即时分割或者实时检测和分割:我们有一些分类需要去识别,给定一张图像需要输出对应图像的不同分类实例,而分实例我们也需要分割到具体每个像素是属于哪个实例。
实例分割
我们给他一副输入图像,CNN还要依赖于外部的候选区域,就是计算机视觉中低层次信息得离线处理操作,预测物体在图像中的具体的位置。每个分割候选我们可以抽取出一个bounding box,来提取边界框裁剪输入图像,喂给卷积神经网络去抽取特征,同时并行的执行RCNN,再一次我们拿到相应的块图像,进行裁剪,但这里我们实际上有候选的分割,我们为图像区域背景使用平均颜色做掩码,现在我们拿到这些掩过的输入图像并运行在独立的RCNN中,我们得到两个特征向量,一个是从原始图像框来的,而另一个是去除了背景颜色的图像框,我们把这两个结果联合起来就是我们在CNN做的一样,预测这个图像是属于哪个分类,同时还有一个区域细化的步骤,如果我们想要细化候选区域的话
课时27 图像分割与注意力模型(下)
语义分析通常使用这种深度卷积的实现方式,而实例分割使用的一整个处理流程更像是物体检测
RNN只有一次机会去看输入图像,当他开始工作时,他是把整个图像作为输入的,并且只操作一次,如果他们可以看输入图像多次,这可能会更好,或者他每次曹锁时可以关注到原始的输入图像的不同部分也是更好的。
我们有一个输入图像,并把他喂给卷积神经网络,但是代替原来使用全连接层,我们改使用全卷积层来抽取特征,这将给予我们L*D的特征,而不是原来的单特征向量,因为这个是从卷积层来的。你可以想象他是2D的特征向量,在这个2D向量中的每一个,特征都对应了原始输入图像的某一部分。现在我们用这些特征以某种方式来初始化神经网络的隐层,他现在是计算分布的不同位置,在我们的卷积特征图中,我们最终得到这个L维向量,给予我们一个不同位置可能的分布,现在我们拿着这个概率分布并且拿着他去得到这些特征向量在不同点的权重和,所以我们拿到这个特征权重的合集,然后拿着我们的2D向量并对之进行汇总到一个单向量,由于概率分布,给予了网络予能力去聚集图像的不同部分。
概率分布,我们每次生成两种类型的概率分布,第一个是D向量,就像我们在普通的图片处理一样;第二个就是也会生成一个在原图中位置的概率分布,他们告诉我们下一次我们要看图片的哪个部分。
使用注意力的两个动机
首先使用注意力模型,可以得到可解释的结果;另一个动机是可以缓解计算压力,特别是你的输入非常非常大的时候,你可能需要大量计算,并且每次计算都是输入整个图像,如果使用注意力模型,每次只需要关注需要关注的那一块
hard attention有做计算保存,并且使用的强学习化。
soft attention这个模型的特征图有点固定限制,他只允许以一种固定大小的网络去看。
空间变换网络
有点像纹理映射。这个网络允许我们在输入图像中访问任意大小的部分以一种可微的方式,我们的网络只需要预测转换坐标数据,这个就可以允许我们以任意大小区域去访问输入图像。
空间转换器接受一些输入,这可以是一个原始的输入图像,实际上执行了这个小的本地化网络,将会生成输出作为一个仿射变换坐标的数据。现在这个仿射变换坐标将会被用来计算采样网络,现在我们从本地化网络中预测这个仿射变换,我们映射输出中的每一个像素,输出中每一个像素的坐标把他作为一个输入,这是一个很好的平滑可微的函数。一旦我们有了这个采样网络,我们可以使用双线性插值,去计算输出中每个像素的值。