一户一墩?墩墩生成器安排了!

简介: 墩墩生成器的原理非常简单。只需要从原图中识别出特定几个关键点的位置,与冰墩墩素材中标注好的锚点做匹配,计算出合适的图像变换。最后将变换后的图像叠加在冰墩墩素材上,并抠出脸部区域即可。得益于 MMPose Model Zoo 中丰富的人体、动物姿态估计模型,我们可以轻松实现这些步骤,并可以处理各种不同的目标类型。


墩墩生成器诞生记



这几天正值北京冬奥会,吉祥物冰墩墩成为了家喻户晓的“明星”。赛场上、领奖台上、热搜榜上都少不了它的身影。看着电视中的冰墩墩,家里的猫崽蛋黄不禁陷入沉思:这就是传说中的大明星么,也太拉风了,慕了慕了……640.png

看到这一幕,当老父亲的哪能坐得住:奥运吉祥物咱是暂时当不上了,但这身行头高低得给娃整一件!


image.png

先给蛋黄来个喵墩墩,看着还挺精神有木有。

image.gif

蛋黄:所以说好的墩墩服,原来是表情包嘛,挠你)


猫崽逆子虽不领情,旁边的二狗已经馋哭了。来,汪墩墩安排上!

image.gif

看到毛孩子们都成功“墩墩化”,老父亲也不禁跃跃欲试。这就墩墩服上身,给大家献丑啦!

网络异常,图片无法展示
|

蛋黄:咦,老父亲什么时候变这么帅了~


没错,以上就是 MMPose 墩墩生成器诞生记。没有爱猫如命的老父亲-MMPose 算法工程师,哪来冰墩墩生成器!所以我们最该感谢谁!没错!当然是我们的猫崽子蛋黄啦!分分钟拿捏老父亲!

墩墩生成器原理篇



墩墩生成器的原理非常简单。只需要从原图中识别出特定几个关键点的位置,与冰墩墩素材中标注好的锚点做匹配,计算出合适的图像变换。最后将变换后的图像叠加在冰墩墩素材上,并抠出脸部区域即可。得益于MMPose Model Zoo 中丰富的人体、动物姿态估计模型,我们可以轻松实现这些步骤,并可以处理各种不同的目标类型。

image.png



墩墩生成器工具篇



MMPose WebcamAPI


墩墩生成器虽然原理简单,但实现的背后还藏有一点“玄机”,那就是 MMPose v0.23.0 新增加的工具-MMPose WebcamAPI。


640.png

MMPose WebcamAPI 是一套简单的应用开发接口,可以帮助用户方便地调用 MMPose 以及其他 OpenMMLab 算法库中的算法,开发基于摄像头输入的交互式视频应用。这里我们先卖个关子,在之后的推送中再带来它的详细说明。不过,除了“墩墩生成器”,还有其他有趣的小应用已经加入 MMPose 算法库中,感兴趣的小伙伴不妨去一探究竟吧。


数据标注工具 Labelbee


在标注冰墩墩脸部关键点和区域时,我们用到了 OpenMMLab 家族标注工具-Labelbee。虽然只标注了几张图片,但还是忍不住向大家安利一波。一键安装,跨平台使用,强大的功能,便捷的操作,真的非常好用。

640.png



玩转墩墩生成器



如此好玩又有趣的墩墩生成器,怎能让老父亲独美呢?必须拿出来让大家伙一起嗨!So ~生成一个墩墩分几步?分3步!

1.获取最新版本的 MMPose(v0.23.0 或以上)。

如果你已经是 MMPose 的用户,只需要拉取最新的 master 分支到本地即可。如果是新上手的小伙伴,需要从官方仓库将 MMPose clone 到本地并安装,

2.选择一张喵星人、汪星人或者本人的靓照作为素材。如果希望呈现动态效果,还可以使用视频素材,甚至直接用电脑的摄像头。

3.启动墩墩生成器!

# 以下命令需在 MMPose 根目录下执行
 2
 3# 例子1:使用默认图片
 4python tools/webcam/run_webcam.py
 5
 6# 例子2:使用自己的图片或视频
 7python tools/webcam/run_webcam.py --cfg-options runner.camera_id=my_cat.jpg
 8
 9# 例子3:使用摄像头
10python tools/webcam/run_webcam.py --cfg-options runner.camera_id=0

程序启动后,可以使用 “s” 键切换墩墩背景。同时,生成的结果也会存储在当前目录下的record.mp4文件中。


文章来源:【OpenMMLab

 2022-02-11 18:51

目录
相关文章
|
Docker 容器
docker备份容器到本地(以及恢复)
docker备份容器到本地(以及恢复)
1505 0
|
9月前
|
C语言 C++ 容器
【数据结构】二叉搜索树(二叉排序树)
本文介绍了二叉搜索树(Binary Search Tree, BST)的定义、实现及其性能分析。二叉搜索树是一种特殊的二叉树,其特点是左子树所有节点值小于根节点值,右子树所有节点值大于根节点值,且每个子树也满足此特性。文中详细讲解了BST的节点结构、插入、查找、删除等操作的实现,并通过C++代码展示了这些功能。此外,还讨论了BST的性能:在理想情况下,时间复杂度接近O(logN),但在最坏情况下可能退化为O(N)。为了提高效率,后续将学习自平衡二叉搜索树如AVL树和红黑树。掌握BST有助于理解STL中的set和map容器。感谢阅读,欢迎点赞支持。
797 9
|
资源调度 JavaScript 前端开发
Vue3+TypeScript前端项目新纪元:揭秘高效事件总线Mitt,轻松驾驭组件间通信的艺术!
【8月更文挑战第3天】Vue3结合TypeScript强化了类型安全与组件化开发。面对大型应用中复杂的组件通信挑战,可通过引入轻量级事件发射器Mitt实现事件总线模式。Mitt易于集成,通过简单几步即可完成安装与配置:安装Mitt、创建事件总线实例、并在组件中使用`emit`与`on`方法发送及监听事件。此外,利用TypeScript的强大类型系统确保事件处理器正确无误。这种方式有助于保持代码整洁、解耦组件,同时提高应用的可维护性和扩展性。不过,在大规模项目中需谨慎使用,以防事件流过于复杂难以管理。
461 1
Vue3项目引入 vue-quill 编辑器组件并封装使用
本文介绍了如何在Vue3项目中引入并封装使用`vue-quill`富文本编辑器组件,包括安装配置、父页面实现、子组件设计以及使用方法和效果展示。
3023 0
Vue3项目引入 vue-quill 编辑器组件并封装使用
|
存储 编解码 算法
【信道编码】2 卷积码、状态转移图、状态转移表、网格表示和码字路径
【信道编码】2 卷积码、状态转移图、状态转移表、网格表示和码字路径
1061 1
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
103084 5
|
XML 前端开发 Java
Web开发: 什么是Servlet和JSP?
Web开发: 什么是Servlet和JSP?
493 0
|
存储 数据采集 人工智能
社区供稿 I 基于Qwen-7B的垂域大模型——MindChat(漫谈)心理大模型上线魔搭
心理大模型——漫谈(MindChat)期望从心理咨询、心理评估、心理诊断、心理治疗四个维度帮助人们纾解心理压力与解决心理困惑,提高心理健康水平。
|
小程序 Java API
Java 获取小程序码的两种方式
Java 获取小程序码的两种方式
Java 获取小程序码的两种方式
|
SQL 前端开发 Java
ssm项目从零到精通的超全解析(含项目源码)
目录前言mvcjsp代码css代码 前言 写这篇文章主要是为了给初学者从浅入深进行巩固(后面会慢慢多这一类的文章) 文中主要包含思路以及代码的逻辑、代码细节的补充等 这个项目主要是ssm框架搭建的一个后台网站 主要涉及的知识点有 spring、springmvc、mybatis 这些知识点可通过我之前的文章进行学习 mvc 代码模块主要涉及mvc 所谓mvc为 M——Model(模型,即JavaBean) V——View(视图,即页面) C——Controller(控制层,即与前端交互的类) 关于为什么
746 1
ssm项目从零到精通的超全解析(含项目源码)

热门文章

最新文章