近日,在AIGC的广阔世界里出现了一个火热的图像编辑方法—即通过在给定图像上通过把语义内容从原位置(handle point)拖动到目标位置(target point)的方式进行精细的定制化编辑操作。比如令人印象深刻的让你家猫咪对你wink的神奇操作:
这一惊人效果来自于发表在SIGGRAPH 2023会议上的 [Drag Your GAN] 论文(简称为DragGAN)。并且DragGAN的代码一经发出就在短短几周内狂揽30K star,引发广大网友的“Drag”热潮。有了DragGAN的加持,各种AI画图工具的「阿喀琉斯之踵」再也不是弱点,哪里不满意就只修哪里!
图 1 DragGAN 由于内容突变发生跟踪点丢失
近日,中科大和上海AI Lab的研究者们又发布了一项相关研究—FreeDrag。研究者们表明,先前的DragGAN由两个交替迭代进行的过程构成:(1)运动监督(motion supervision)过程指导handle point向着对应的target point进行移动;(2)点跟踪(point tracking)过程则负责定位移动后handle point的精确位置从而为下次移动提供方向和约束特征。因此DragGAN 严重依赖于点跟踪的精确性。然而,点跟踪的策略本质上是不稳定的,因为它隐式地假设每次移动后在默认的搜索区域内有且仅有一个点完美继承了handle point的特征。这个假设会在以下两种情况下失效:i) 图像内容发生剧烈变化导致的跟踪丢失(图1) ii) 搜索区域内的相似点导致的跟踪错误(图2),例如轮廓线和马腿等。错误的点跟踪会为下一次移动提供错误的方向和约束特征,造成误差累积从而损害编辑的质量。
图 1 DragGAN 由于相似点的存在发生错误的点跟踪
方法介绍
为了防止不稳定的点跟踪过程不可避免地损害图像编辑的质量,中国科学技术大学和上海AI Lab的研究者们共同提出FreeDrag, 一种以特征为导向的基于点的交互式编辑框架。FreeDrag通过引入自适应更新的模板特征,模糊定位和线性搜索技术,在无需进行精确点跟踪的情况下即可实现更加稳定可靠的拖动编辑。
图 2 FreeDrag 的流程图
图 3 DragGAN的点跟踪和FreeDrag 点定位的比较。
DragGAN 要求精确定位的位置,而FreeDrag 通过约束特征差异限制定位点在附近,但不要求确定的具体位置。
动态更新的模板特征
研究者们首先提出了动态更新的模板特征技术来缓解跟踪点丢失问题。模板特征通过衡量每次移动的质量来决定是否更新,即通过控制的值来决定每次更新的比例。更大的意味着更大的更新程度。移动质量越高更新程度越大。移动质量通过衡量移动结束后处的特征和上一次的模板特征值的 L1 距离 () 来度量,越小说明移动质量越高。模板特征的更新过程不依赖于handle point 的位置和特征,从而摆脱了对精确的点跟踪的负担,同时自适应的更新策略带来的平滑性赋予了模板特征更好的鲁棒性来克服剧烈的内容变化,避免编辑内容的异常丢失。
模糊定位和线性搜索
紧接着,研究者们提出模糊定位和线性搜索技术来缓解跟踪点模糊问题。FreeDrag 通过移动距离和特征差异来为每次的移动定位适合的目标点,即公式(10)。定位主要分为三种情况:继续向target point移动(移动质量高);保持当前位置不动(移动不彻底),点回退(移动异常)。
相比于DragGAN要求的精确的点跟踪,公式(10)搜寻的定位点是“模糊”因为它并不要求搜寻handle point的准确位置,而是通过约束特征差异确保定位点在handle point附近, 因此摆脱了精确定位的负担。此外,公式(10) 只在原始handle point 和 target point 形成的直线上进行点搜索,这种线性搜索策略有效地缓解了相邻区域内相似点的干扰,保障了运动监督的可靠性,进一步提高点移动的稳定性。
实验对比
DragGAN 和 FreeDrag 在各类场景上的对比如下图(图4)所示,可以发现FreeDrag可以有效地防止handle point的异常消失(如图4第一个例子中消失的嘴巴和第二个例子中消失的眼镜),同时有力地避免了由于内容突变和相似点干扰导致的异常编辑,保障了点移动的可靠性(如图4第三个例子中大象的眼睛和第四个例子中的马腿)。此外,从图4的(5)-(8)例子可以观察到FreeDrag 可以通过稳定的点移动更有效更精确地实现预定的编辑目标。进一步的,在各类场景上的大量实验(图5) 充分验证了FreeDrag 可以通过稳定的点移动实现更高的编辑质量,助力交互式的基于点的图像编辑达到新的高度。
图 4 DragGAN 和 FreeDrag 在各类场景上的对比图
图 5 DragGAN 和 FreeDrag 在更多场景下的对比图
视频对比如下:
左边两张图分别为原始图片和编辑目标(红色为handle point, 蓝色为target point)
右边分别为为DragGAN 和FreeDrag的处理过程(gif)
对于拖动大象眼睛的例子,可以观察到,DragGAN 在移动大象眼睛的过程中发生了图像布局的突变造成点跟踪丢失,点跟踪丢失导致无法为之后的运动提供有效的运动监督,进而无法实现预定的编辑目的。相比而言,得益于动态更新的模板特征的平滑性,FreeDrag 可以更好地避免图像内容的急剧变化,从而更可靠地将眼部特征拖向预定的位置。
对于拖动马腿的例子,可以观察到, DragGAN在移动马腿过程中发生了错误的点跟踪,从而为之后的运动监督提供了错误的优化方向,进而降低了图像质量,这种错误会在多次迭代中累计导致编辑结果质量的急剧下降。相比而言, FreeDrag 的模糊定位和线性搜索策略有效地缓解了相似点的干扰,为点移动提供了可靠的监督信号,从而高质量地实现预定的编辑目的。
全部0条评论
快来发表一下你的评论吧 !