博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

二维图片转3D模型的技术不少,但能用你画的草图实时生成骨骼绑定的3D模型见过吗?

像这样,顺着已有的图片描了几笔,立马就得到了三维模型:

两倍速

一共描了五次轮廓就得到了一只完整的3D猫模型,还绑定了骨骼:

看,可以像这样活动骨架关节,随时来一段鬼畜猫:

对比现有的很多自动生骨架建模方法,这一方法并不是在整个网格模型构建完成后,采用算法处理并提取骨架。

而是基于草图,实时进行形状建模和骨架创建。

并且,实验也证明这一新方法的学习成本更低,不同经验的专业人员都能快速上手。

这项研究来自浙江大学,相关论文发布在Computers & Graphics上,代码现已开源:

从草图中创建动态骨架

要实时地从草图中创建动态骨架,研究者主要分为三步来实现:

第一步是提取局部骨架

首先是从原始草图中进行简单的多边形采集,不过手绘图像难免会因为手抖或画技问题出现线条的断裂、不平滑等问题:

(也就是计算机图像问题中常说的噪音)

所以,需要将原始线条均匀地离散小段直线来平滑这些噪音,再用DP(Douglas-Peucker)算法找到一个最接近形状的简化多边形。

对于得到的简化多边形,通过连续向内偏移的轮廓线将多边形划分为单调的区域,提取得到一种直线骨架:

将上面得到的直线骨架中包含的不必要的顶点和边缘删掉,并折叠小于特定阈值的短骨架边缘,将直线骨架进行简化。

全部变化流程如下:

第二步,连接子骨架

研究团队以交互式的成对方式连接子骨架。

当用户创建一个新的子部件或移动一个现有的子部件时,立即检查当前子部件是否与其他子部件相交。

如果相交,就把当前子部分的骨架与被交的子部分的骨架连接起来:

这符合用户交互式地逐个创建三维模型的真实场景:新的子部件被连接到现有的子部件上,同时,新的子骨架被连接到相应的子骨架上。

第三步、全局骨架细化

在上一步中,当两个或多个子骨架连接到父骨架的类似位置时,常常会生成多余的短骨。

因此,这一步中首先要进行曲线简化、关节合并、分支修剪和边缘折叠。

其次,为了控制模型不同部位的骨架的复杂性,研究者将3D模型旋转到XY平面,把子形状和分支从三维空间映射到二维空间:

然后通过在二维空间运行BoundedDP算法,将简化后的分支重新映射到其原来的三维位置。

BoundedDP算法步骤

最终,一个最开始是手绘草图的图像,就变成一个绑定了骨骼的3D模型了:

算法速度更快,安装即玩

研究者首先对比了本文提出的骨骼模型生成算法与已有方法的执行时间,可以看到,其速度优于大多数方法:

研究者还请来了12位经验各异的用户来使用MonsterMash2、RigMesh3,以及本文提出的系统来创建3D模型。

可以看到,使用本文提出的系统创建得到的模型精度最高,但花费时间却较少:

在开源文件中,研究者提供了一个exe的可执行文件,安装即玩。

如果要进行测试,要先安装Qt、 OpenCV、 Boost、 Libigl (Tetgen、 Triangle、 CGAL、 Eigen) ,并根据库的安装路径修改相关文件。

目前的测试环境则是这两种:

话不多说,去找张狗勾图片试试能不能搞个鬼畜狗模型了

论文:
https://arxiv.org/abs/2110.05805

下载链接:
https://github.com/jingma-git/RealSkel

5笔涂出一只3D猫咪模型,可跑可跳无需手动绑定骨骼,新鬼畜素材get丨浙大开源...相关推荐

  1. 浙大开源:5 笔涂出一只 3D 猫咪模型,可跑可跳无需手动绑定骨骼

    来源:量子位 QbitAI 二维图片转3D模型的技术不少,但能用你画的草图实时生成骨骼绑定的3D模型见过吗? 像这样,顺着已有的图片描了几笔,立马就可得到三维模型. 一共描了五次轮廓就得到了一只完整的 ...

  2. 2D草图实时3D建模,可跑可跳无需手动绑定骨骼丨开源

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 二维图片转3D模型的技术不少,但能用你画的草图实时生成骨骼绑定的3D模型见过吗?下载链接见文未. 像这样,顺着已有的图片描了几笔,立马就得到 ...

  3. 前端-一只会动的猫咪

    前端-一只会动的猫咪 需要引入第三方插件: 一只黑色猫咪源码: <div id="page_end_html"><script src="https:/ ...

  4. edit with idle 没反应_搬个家,猫咪不吃不喝甚至猝死?可能是你没做好“前戏”...

    搬家啦啦啦,好开心! 图自:网络 对人类来说,虽然过程总是很麻烦的,但一切收拾稳妥之后,换新环境还是让人挺开心的. 可对猫咪来说,搬家就是一件很恐怖的事情了. 图自:网络 轻则不吃不喝几天,重则疾病发 ...

  5. 猫的计算机相关的网络语言,辟谣:猫咪的语言是喵?教你读懂“猫言猫语”,让你明白猫的内心...

    "我们一起学猫叫,一起喵喵喵~"歌词里唱的很动听,可是养过猫的主子们应该会很难引起共鸣,毕竟在家也没真的听主子们喵过多少次,兽医小明在这里辟个谣哦,猫咪的叫声可不只是喵喵叫. 猫咪 ...

  6. Typecho的卡哇伊小猫咪小插件(Live2D猫咪插件)

    之前看到一个博客,被它博客上的动态小猫咪给吸引了,这个纯粹就是一个在线撸猫的神器啊.但是在网上寻找一番,并没有找到合适的插件,或者说没有找到合适的模型,因此无奈之后,只能向该博主请教,在它写的博客上, ...

  7. 遇见一只黑猫,她说Python是个怪物

    (给Python开发者加星标,提升Python技能) 作者:豌豆花下猫  (本文来自作者投稿,简介见末尾) 今天依然是些猫言猫语,请看官们不要嫌弃.我近来倾诉欲茂盛,急需写写文字打发一下,所以现在就开 ...

  8. 5秒手机猫片也能重建猫咪3D模型,Meta提出新算法为变形物体建模 | CVPR 2022

    晓查 发自 凹非寺 量子位 | 公众号 QbitAI 众所周知,猫是一种液体. 这也给CVer带来了极大的烦恼:如何从2D视频中准确地对一只猫进行3D重建? 在很多情况下,3D重建模型得到的真是一滩液 ...

  9. 用python turtle画龙猫_【跟着弹簧学画画】教你一步步画出一只超萌的龙猫来!...

    原标题:[跟着弹簧学画画]教你一步步画出一只超萌的龙猫来! 龙猫,日文音译过来是豆豆龙,今天咱们就来画一个吧! 照旧先来感受下动态图↓ 1.先画耳朵,然后画出头部和身体,因为龙猫是圆滚滚的一只 画出胳 ...

最新文章

  1. 一次mysql数据库连接池泄露的解决经历
  2. Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证
  3. C++文件流操作备忘录
  4. 复选框怎么点td选中_jQuery点击tr实现checkbox选中的方法
  5. 2012年蓝桥杯【初赛试题】 转方阵
  6. 如何更改 macOS Monterey 和 iPadOS 15 中的 Safari 选项卡外观?
  7. 大数据架构师必读的NoSQL建模技术
  8. Win10屏保设置详细教程
  9. ffmpeg实时传输视频_使用ffmpeg和DirectX 11流式传输视频
  10. TestCenter测试管理工具问题详解(3)
  11. DOM事件总结(事件处理程序的类型及浏览器的兼容性)
  12. 新手小白怎么学抖音运营?抖音运营5大技巧
  13. (科软)高级软件工程课程总结
  14. 如何截取视频中的一部分制作成GIF动态图
  15. 电力电子中的宽禁带器件
  16. 清东陵的三次大规模盗掘
  17. 文件管理之文件共享与文件保护
  18. 通过mvn命令上传jar包到nexus
  19. agilent3070 中 analog测试程序的写法
  20. 计算机配置认识,硬件配置 认识计算机硬件组成

热门文章

  1. 为什么要使用String.Equals over ==? [重复]
  2. Facebook 对前端工程师的要求是啥?一起来看看
  3. SignalR Core尝鲜
  4. [原创]浅谈对华为34岁以上员工“退休”
  5. 第二章:搭建Android开发环境(读后感)
  6. 三十八,反射的应用:工厂模式
  7. IOS 面试 --- 动画 block
  8. 技术是最求 买卖是境界
  9. F2etest+UIRecorder(录制脚本)【2】
  10. RunLoop深度探究以及有关面试题