Author :Horizon Max
✨ 编程技巧篇:各种操作小结
神经网络篇:经典网络模型
Fine-grained sketch-based image retrieval (FG-SBIR)
:基于细粒度草图的图像检索 ;
作者重新制定了传统的 FG-SBIR
框架来解决现有的两个挑战:草图绘制需要大量的时间,大多数人很难画出一副完整和真实的草图 ;
最终目标:用尽可能少的笔画数检索目标图像 ;
作者提出了一个动态的设计(on-the-fly design):
Publication :CVPR 2020 [Oral Presentation]
Paper :Sketch Less for More: On-the-Fly Fine-Grained Sketch Based Image Retrieval
GIthub :On-the-Fly-FGSBIR
基于草图的图像检索(sketch based image retreival, SBIR)由于其潜在的商业应用而受到了特别的关注 ;
草图检索相比于文本/标记检索有着关键的优势:可以传递细粒度的细节 ;
ps:
FG-SBIR 任务仍存在着两个障碍阻碍了实践中的广泛应用:
从 “less is more” 的角度来打破这些障碍,旨在实现较少的笔画就能检索目标图片:
传统的方案:
即,大多采用三元组排名框架 (triplet ranking framework):
每个三元组都被视为一个独立的训练样本,由于草图的高度抽象性,最初的草图笔画可能对应着多张可能的图像,这极易给模型带来一个噪声梯度 ;
而且没有特定的机制可以指导现有的 FG-SBIR 模型以最小的笔画来检索图像,使得其在动态检索过程中表现性能较差 ;
当前研究方向可以分为以下三类:
提出了三元组损失 ;
流行于图像修复领域 ;
通过权衡草图的可识别性和笔画数量来学习抽象和总结,即通过使用 RL 从给定的完整笔画中过滤掉不必要的笔画 ;
由三个特定的模块组成:
给定特征图 B = fθ(I) ,注意力模块输出为 Batt = B + B · fatt(B) ;
训练数据包括:Sketch、Positive、Negative ;
使用三元损失以减小草图与正样本之间的距离,并增大草图与负样本之间的距离;
action
:by producing a feature vector representation of the sketch at each rendering step ;reward
:by retrieving the paired photo early ;action_mean, sketch_anchor_embedding, log_prob, entropy =
SBIR_Environment.policy_network.select_action(sampled_batch[i_sketch].unsqueeze(0).to(opt.device))
reward = SBIR_Environment.get_reward(sketch_anchor_embedding, SBIR_Environment.Sketch_Name_Train[niter])
entropies.append(entropy)
log_probs.append(log_prob)
rewards.append(reward)
distance
:target_distance = F.pairwise_distance(F.normalize(sketch_feature),
self.Image_Array_Test[position_query].unsqueeze(0))
distance = F.pairwise_distance(F.normalize(sketch_feature),
self.Image_Array_Test)
rank_all[i_batch, i_sketch] = distance.le(target_distance).sum()
为减小计算开销,将草图栅格化 T 次来代替每一个坐标时刻渲染一个新的草图,即间隔步长为:[ N T \frac {N} {T} TN] ;
在保证照片分支不变的情况下,使用 baseline model 得到 G ^ \widehat{G} G ;
对草图分支进行微调的情况下,训练 agent (sketch branch) 来处理部分草图,使其能胜任处理部分草图 ;
假设一个草图渲染集为:S = { p1, p2, p3, … , pT } ,agent 每个时间 t 步骤内都将 st = ∅ (pt) 作为输入,并输出一个连续的动作向量 at ;
考虑 at 和 G ^ \widehat{G} G 之间的成对距离,检索环境 (environment) 返回一个奖励 (reward) : rt ;
RL模型的目的是在一个完整的草图绘制情景下 (environment) ,为 agent 找到最优策略 (Policy),使总奖励 (Reward) 最大化 ;
RL : ΠΘ(a | s)
在每个时间 t 步骤内,得到一个策略 (Policy) 分布 ΠΘ(at | st) ,此后从这个分布中采样一个动作作为草图的 D维特征表示;
即:at ~ ΠΘ( · | st)
Local Reward :
目标:使 配对图像(草图与对应图像)在得到的 rank list 最小 ;
Local Reward:
R t L o c a l ^{Local}_{t} tLocal = 1 r a n k t \frac {1} {rank~t~} rank t 1
Global Reward :
使用 Kendall-Tau-distance 来测量 Lt 和 Lt+1 两个 rank list 之间的距离,以模拟草图绘制过程中草图与对应图像映射迈进的过程 ;
Kendall-Tau-distance 值会随着草图绘制过程不断减小 ;
Global Reward:
R t G l o b a l ^{Global}_{t} tGlobal = -max(0, τ(Lt, Lt+1) - τ(Lt-1, Lt))
Training Procedure :
Rewards:
Rt = γ1 · R t L o c a l ^{Local}_{t} tLocal + γ2 · R t G l o b a l ^{Global}_{t} tGlobal