1. 前言
图像匹配问题是图像领域中较为基础的课题,其发展也从最简单粗暴的模板匹配到现在基于CNN表达的特征匹配,匹配的时效与准确性得到了很大提升。其实从某种意义上来讲模板匹配与目标跟踪存在着一些关联性,对于现有的一些跟踪算法运行过程中目标丢失的情况可以考虑使用模板匹配的方式进行找回,但是这里就需要考虑很多东西了,如目标姿态、光照变化等等因素的影响。如何得到更加鲁棒的模板匹配算法也是一个只得思考的问题。
在下面的内容中主要介绍本人认为还不错的算法QATM,并且在之后的内容总结了一些基于CNN的模板匹配算法,以提供给各位参考。
2. QATM
论文名称:《QATM:Quality-Aware Template Matching For Deep Learning》
参考代码:
- QATM-TF
- QATM_pytorch
这篇文章提出了一种采用CNN网络进行模板图像匹配的算法,将模板图与目标图分别送入这个CNN网络,之后通过文章提出的QATM方法构建模板图和目标图的响应程度。不过需要指出的是文章的方法是检测框的大小是根据模板图像固定的,这就导致其对多尺度兼容性比较弱,同时输出的检测框对目标的贴合程度不高,可以在此基础上引入网络进行训练借以提升模板匹配鲁棒性。不过这样便会使得其与目标跟踪的差异越来越小了。
文章的方法将模板匹配问题转换为寻找区域最大响应问题,则可以描述为:
R ∗ = arg max R { ∑ r ∈ R m a x { { Q u a l i t y ( s , t ) , t ∈ T } } R^{*}=\argmax_{R}\{\sum_{r\in R}max\{\{Quality(s,t),t\in T\}\} R∗=Rargmax{r∈R∑max{{Quality(s,t),t∈T}}
其中, T , S T,S T,S分别代表的是模板图与目标图, R R R代表的是搜索区域。文章的具体的算法可以描述为:
不过其实际的运算流程会不太一样具体可以参考:
# qatm_pytorch.py#L159
class QATM():
def __init__(self, alpha):
self.alpha = alpha
def __call__(self, x):
batch_size, ref_row, ref_col, qry_row, qry_col = x.size()
x = x.view(batch_size, ref_row*ref_col, qry_row*qry_col)
xm_ref = x - torch.max(x, dim=1, keepdim=True)[0]
xm_qry = x - torch.max(x, dim=2, keepdim=True)[0]
confidence = torch.sqrt(F.softmax(self.alpha*xm_ref, dim=1) * F.softmax(self.alpha * xm_qry, dim=2))
conf_values, ind3 = torch.topk(confidence, 1)
ind1, ind2 = torch.meshgrid(torch.arange(batch_size), torch.arange(ref_row*ref_col))
ind1 = ind1.flatten()
ind2 = ind2.flatten()
ind3 = ind3.flatten()
if x.is_cuda:
ind1 = ind1.cuda()
ind2 = ind2.cuda()
values = confidence[ind1, ind2, ind3]
values = torch.reshape(values, [batch_size, ref_row, ref_col, 1])
return values
3. 其它参考文献
- 《2017-DDIS:Template Matching with Deformable Diversity Similarity》
- 《2017-Deep Learning Improves Template Matching by Normalized Cross Correlation》
- 《2017-Fast Screening Algorithm for Rotation and Scale Invariant Template》
- 《2018-OATM:Occlusion Aware Template Matching by Consensus Set Maximization》
- 《2019-Explaining Away Results in Accurate and Tolerant Template Matching》
- 《2019-Multi-scale Template Matching with Scalable Diversity Similarity in an Unconstrained Environment》
- 《2021-Deep-DIM:Robust Template Matching via Hierarchical Convolutional Features from a Shape Biased CNN》
- 《2021-PatchNet:Short-range Template Matching for Efficient Video Processing》