论文:Image Deformation Using Moving Least Squares

Nonrigid Image Deformation Using Moving Regularized Least Squares

Github:https://github.com/Jarvis73/Moving-Least-Squares

Moving Least Squares Deformation 

• p: 一列控制顶点.

• q: 控制顶点变换后的坐标.

给定图上的一点 v, 求解一个最优的仿射变换来最小化

其中 pi 和 qi 都是行向量, 每行的分量为点的坐标, 权重 wi 有如下的形式

因为该最小二乘问题中的权重 wi 独立于 v 变形后的点, 所以我们称之为移动最小二乘最小化. 对于不同的 v, 可以得到不同的变换 lv(x). 由于 lv(x) 是仿射变换, 所以可以写成

令原始的优化函数对 T 求偏导数并令其为 0, 解出

其中 p∗ 和 q∗ 是原来一系列控制顶点的加权质心,

所以有

所以原优化函数可以修改为

其中

考虑二维图像时, M 就是一个 2 × 2 的矩阵.

1.1 Affine Deformation

要找一个仿射变换来极小化方程 (4), 直接用古典方法求解优化问题得

从而我们可以写出仿射变换的表达式

 又因为 pi 是固定的, 所以上式可以变为

其中 Aj 可以预计算

1.2 Similarity Deformation

实际上仿射变换包含了非一致性的平移和放缩,实际中的许多物体并不会产生这么复杂的变化。相似变换是仿射变换的一个子类,仅包含平移、旋转和一致的放缩。为了满足相似变换的性质,我们限制矩阵 M 满足 M⊤M = λ2 I, ∃λ。如果 M 是分块矩阵,有 M = (M1,M2) 的形式,其中 M1, M2 都是长度为 2 的列向量,那么对于 M 的限制可以 变为 M⊤1 M1 = M⊤2 M2 = λ2,并且 M⊤1 M2 = 0。这个限制意味着 M2 = M⊥1 ,其中 ⊥ 是一 个作用于二维向量的算子使得 (x, y)⊥ = ( y, x)。这样原来的目标方程 (4) 可以修改为

(注: 论文上式中有个符号可能写错了, 有待进一步确认.) 该二次方程有唯一的最优值,从而可以得到最优值点 M)

其中

从而得到最终的变换公式

其中 Ai 是

1.3 Rigid Deformation

进一步地,我们要求变换中不包括一致放缩,即限制变为 M⊤M = I。先给出一个定理,这个定理说明了刚性变换和相似变换的关系。

定理 1. 令 C 是可以极小化如下相似问题的矩阵

如果 C 写成 λR 的形式,R 是一个旋转矩阵,λ 是一个标量,那么旋转矩阵 R 极小化如

下的刚性问题

定理证明略去,可以参考原文中的 AppendixA。

根据定理我们知道刚性变化恰好就是方程 (7),除了把其中的 µs 替换为 µr

 令

其中 Ai 由式 (8) 定义,最后的变换公式为

速度显存开销测试

三种变形方式

cpu速度(720*960大小图片)

gpu显存/速度

仿射变形affine

10.05s

6.5G/600ms

相似变形similar

14.32s

3.8G/1060ms

网格变形rigid

13.47s

3.8G/1040ms

移动最小二乘MLS vs 反距离加权IDW:

MLS的显存开销更大,速度更慢

全局变形方法

速度

显存开销

变形效果

移动最小二乘MLS

较慢

多(可以通过减少点的数量,减少图片大小,增大网格大小gridsize)

可以从原始点一模一样的变形到目标点,但是在点多的时候边缘平滑性细节较差,点少的时候边缘平滑性细节较好

反距离加权IDW

较快

不能从原始点一模一样的变形到目标点,会受变形系数的影响,但是边缘细节较好

测试效果

人脸变形之移动最小二乘MLS相关推荐

  1. 基于生成对抗网络(GAN)的人脸变形(附链接) | CSDN博文精选

    扫码参与CSDN"原力计划" 翻译 | 张一豪 校对 | 吴金笛 来源 | 数据派THU *点击阅读原文,查看「CSDN原力计划」详细说明. 本文详细介绍了生成对抗网络(GAN)的 ...

  2. 基于生成对抗网络(GAN)的人脸变形

    作者:Rudra Raina 翻译:张一豪 校对:吴金笛 本文约2100字,建议阅读10分钟. 本文详细介绍了生成对抗网络(GAN)的知识,并用其变换人脸,并探寻如何利用StyleGAN生成不同属性( ...

  3. 人脸变形算法——MLS

    目录 论文信息 基础介绍 MLS Affine Deformation Similarity Deformation Rigid Deformation 论文信息 论文链接:<Image Def ...

  4. android 人脸变形,人脸形变算法——液化变形

    在PS中,我们可以利用液化工具对人像进行形变处理,例如瘦脸.瘦腿.放大眼睛等一系列的常规操作.今天我们来了解一下这些操作的算法原理,调研该算法我参考了一篇博士毕业论文<Interactive I ...

  5. android 人脸端正,一种移动端人脸图像面部实时变形调节方法与流程

    本发明涉及手机拍摄图像领域,更具体的说,其涉及用于一种移动端人脸图像面部实时变形调节方法. 背景技术: 目前移动端人脸变形算法大多都是局部变形,一种变形对应一次图像处理,多种变形效果的累加导致移植到手 ...

  6. 人脸妆容迁移---研究和思考

    引自:http://blog.csdn.net/trent1985/article/details/70226779 引自:http://blog.csdn.net/jsgaobiao/article ...

  7. 图像滤镜艺术---人脸编辑(五官微调+瘦脸美型)

    写本文的目的,实际上是对目前人脸美型这一块技术做个总结,跟大家 分享一下! 目前提到美颜算法,大家都会想到磨皮美白 /大眼瘦脸,实际上做好 美颜这件事情,关乎的不仅仅是这些,还有五官的协调比例等,今天 ...

  8. Facial Landmark Detection(人脸特征点检测)

    原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 作为计算机视觉研究员,我们很早就开始研究人脸 ...

  9. 图形处理(十二)拉普拉斯网格优化、最小二乘网格模型光顺

    看这篇博文前,请先参考我的另外一篇博文<图形处理(三)简单拉普拉斯网格变形-Siggraph 2004>学习拉普拉斯坐标的相关理论知识.这里要分享的paper,是通过拉普拉斯的方法实现三角 ...

最新文章

  1. Makefile 里的 subst 函数
  2. MATLAB 图像函数(第五章) 图像空间变换和图像配准
  3. java并发编程之美-阅读记录11
  4. 团队-科学技术器-模块测试过程
  5. UVA - 101:The Blocks Problem
  6. java mqtt客户端_java 实现mqtt发送和接收消息客户端具体用法及测试代码
  7. QT 008 UI Add action 的方法
  8. Bootstrap3基础 warning/active... 表格的状态类(不同的背景色)
  9. texstudio如何安装cjk宏包_MikTex+TexStudio配置论文写作环境
  10. BZOJ 1007 [HNOI2008]水平可见直线 ——半平面交 凸包
  11. CSS定位规则之BFC
  12. zeromq源码分析笔记之架构
  13. 技术沙龙 | Android应用之插件化
  14. xcode archive 去掉dsym文件和添加dsym文件
  15. BAT 老兵的经验之谈,成长路上这个道理越早知道越好
  16. W ndows7蓝屏0x00000024,Win7开机蓝屏报错0x00000024如何解决?
  17. java代码审计手书(三)
  18. Linux 桌面图标分类
  19. c语言实现海龟爬行程序
  20. 程序员自学者的福利来了,各种编程视频教程,助你自学编程畅通无阻。

热门文章

  1. SQL Server数据表中数据的增加(插入)、查询、修改、删除
  2. kettle运行spoon.bat时找不到javaw文件 bug报错
  3. 液晶显示器黑色彩条泛蓝原因。
  4. Android经典蓝牙开发全流程
  5. SQL之Join的使用详解(附 :分组查询每组前N条记录)
  6. DataX之MySQL-overwrite-HIVE
  7. 席八,迭代创建链表就是个坑货
  8. spring boot整合Shiro实现单点登录
  9. CYAT81688如何切换模式
  10. 网店实名制剑指何方?