PatchMatch主要用于在两幅二维图像中搜索最近领域中相似度最高的patch。其主要基于随机采样(random sampling)思想,并根据图像区域相似性,提供一种在整个图像区域快速propagate以提高搜索与匹配效率的机制(算法原理如下图)。目前主要应用于图像编辑工具,也扩展到诸如双目匹配、AR等多个研究领域。
最小化匹配代价来为每一个像素找到一个最优的3D视差平面。这个问题可以通过patch match来解决:首先对所有像素的视差平面进行随机初始化或根据某些先验信息进行初始化,然后基于迭代传播(空间传播、视图传播、帧间传播、平面细化)不断地更新所有像素的平面参数。patch match的优点是只要至少有一个像素的初始化视差平面位于或接近最优平面,就可以找到剩余所有像素的最优平面。
step1.映射关系初始化
将S划分为M个patch,随机定义一个矩阵,这个矩阵中的每个向量代表着S中的patch与T中对应patch的映射关系,当然由于是随机初始化,这个映射关系是相当不准确的,但总会有或者说至少有一个是较好匹配的;如下图所示,A 中的蓝patch随机映射到B中的蓝色patch,其周围的红色框和绿色框分别对应B图中的红框和绿框