通过视频着色进行自监督跟踪( 三 )


颜色是空间频率偏低 , 所以我们可以处理低分辨率的帧 。 我们不需要C(255 , 3)颜色组合 , 所以我们创建了16个聚类并将颜色空间量化为这些聚类 。 现在我们只有16种独特的颜色簇(见上图第3栏) 。 聚类是用k-均值完成的 。 16个群集会有一些颜色信息的丢失 , 但足以识别物体 。 我们可以增加聚类的数目来提高着色的精度 , 但代价是增加计算量 。
通过视频着色进行自监督跟踪文章插图
[来源:]
为了将图像量化成簇 , 我们将使用LAB颜色空间的AB通道而不是RGB颜色空间通道 。 上面的图显示了RGB和LAB通道间的相关性 , 从图中我们可以得出结论
RGB往往比LAB更具相关性 。
LAB将强制模型学习不变性 , 它将强制其学习更强大的表示形式 , 而不是依赖于本地颜色信息 。
可以使用sklearn的KMeans软件包进行聚类 。
通过视频着色进行自监督跟踪文章插图
这个类将用于制作颜色的簇 , 我们将把它存储为一个pickle 。
实现注意:我使用pytorch来进行实现 , 它遵循(N, C, H, W)格式 。 在处理矩阵重塑时要记住这一点 。 如果你对形状有任何疑问 , 请随时与我们联系 。
通过视频着色进行自监督跟踪文章插图
通过视频着色进行自监督跟踪文章插图
该模型从参考帧中学习为视频帧着色 。 [来源:]
输入
该模型的输入是四个灰度视频帧 , 其下采样为256×256 。 三个参考帧和一个目标帧 。
预处理首先 , 我们将所有的训练视频压缩到6fps 。 然后预处理框架以创建两个不同的集合 。 一个用于CNN模型 , 另一个用于着色任务 。
- Video fps is reduced to 6 fpsSET 1 - for CNN Model- Down sampled to 256 x 256- Normalise to have intensities between [-1, 1]SET 2 - for Colourization- Convert to LAB colour space- Downsample to 32 x 32- Quantize in 16 clusters using k-means- Create one-hot vector corresponding to the nearest cluster centroid模型结构所用的主干是ResNet-18 , 因此其结果与其他方法相当 。 ResNet-18的最后一层被更新为32 x 32 x 256的尺寸输出 。 ResNet-18的输出随后被传送到3D-Conv网络 , 最终输出为32 x 32 x 64 。 (下面的代码块显示了从ResNet-18网络获取输入的3D网络)
训练训练可分为以下3个步骤:
1. 网络传递
我们将使用SET 1的预处理帧 , 即通过网络传递大小为(256 x 256)的4个灰度帧 , 以获得具有64个通道的(32 x 32)空间图 。 对于(32 x 32)图像的每个像素 , 这可以解释为64维嵌入 。 因此 , 我们有四个这样的像素级嵌入 , 三个用于参考图像 , 一个用于目标图像。
通过视频着色进行自监督跟踪文章插图
2. 相似度矩阵
利用这五个嵌入 , 我们找到了参考帧和目标帧之间的相似矩阵 。 对于目标帧中的像素我们将获得一个相似度值 , 其中所有三个参考帧中的所有像素均通过softmax归一化为1 。
通过视频着色进行自监督跟踪文章插图
3. Colourization着色处理
我们将使用SET 2的预处理帧 , 即将四个降采样为(32 x 32)并量化的帧用于着色 。 将三个参考帧与相似度矩阵相结合 , 得到预测的量化帧 。 我们发现了具有预测颜色的交叉熵损失 , (记住 , 我们量化帧到16个聚类 , 现在我们有16个类别 。 我们发现在这些颜色上有多类交叉熵损失 。


推荐阅读