基于3D人像复原技术的试衣平台

基于3D人像复原技术的试衣平台

摘要

近年来,随着 会的进步与发展,人们的物质生活得到了极大的丰富,对衣食住行的要求也越来越高,为了更好地适应现代化生活的需求, 上试衣软件、平台的研究也一直没有停止过,目前国内外都在积极的构建和完善自己国家的人体体型数据库。
2019年3月19日,根据官方消息,云从科技基于单帧图像的3D人体建模重建技术同时在Human3.6M、Surreal和UP-3D三大数据集上创造了最新的世界纪录,将原有的最低误差纪录大幅降低了30%。从照片快速重建人体的三维模型,将传统的人体建模过程由三步降低到两步,极大程度上简化了三维建模的流程,节约的人力物力成本,对于游戏、电影、计算机视觉等领域具有重要的意义。
1.衣吧试衣平台。基于Python、Django的搭建试衣平台:衣吧,该平台可通过用户上传的单张全身照实现对人体关键点的检测以及人体骨架的提取;
2. 图像获取部分。通过用户上传单张个人全身照;
3. 图像预处理部分。主要采用了OpenCV对图像的图像阈值、图像平滑、形态学转换进行了处理。
4. 人体关键点检测。采用Harris角点检测、SIFT关键点检测、角点检测的FAST算法以及ORB算法分别对用户上传的图像进行人体关键点检测,选择特征提取与描述以及执行效率最优的算法。
5. 人体骨架提取。采用OpenCV库计算生态骨架(morphological skeleton)。
关键词:三维人体重建, ORB图像特征提取, 试衣平台, OpenCV

Fitting Platform Based on 3D Human Image Restoration Technology

ABSTRACT

In recent years, with the progress and development of society, people’s material life has been greatly enriched, and the requirements for clothing, food, housing and transportation have become higher and higher. In order to better adapt to the needs of modern life, the research on online fitting software and platform has never stopped. At present, both at home and abroad are actively building and improving their own national body shape database.
On March 19, 2019, according to the official news, the 3D human modeling and reconstruction technology based on single frame image of Yuncong technology has set the latest world record on three data sets of human3.6m, surreal and up-3d, greatly reducing the original minimum error record by 30%. The rapid reconstruction of three-dimensional human body model from photos reduces the traditional human body modeling process from three steps to two steps, greatly simplifies the process of three-dimensional modeling, saves the cost of human and material resources, and is of great significance in the fields of games, movies, computer vision, etc.
Starting from the research background and significance of the project, this paper builds a fitting platform: clothing bar, which can be used for ordinary users to upload personal full body photos to extract the human body model and model fitting function, and studies the reconstruction of the three-dimensional human body model based on the two-dimensional image of the ordinary camera. Finally, the future work is prospected. The main research work and contributions of this paper are as follows:
Dressing bar fitting platform. Build a fitting platform based on Python and Django: clothing bar, the platform can detect the key points of human body and extract the skeleton of human body through a single full body photo uploaded by users;
Image acquisition part. Upload a single full body photo through the user;
Image preprocessing part. Opencv is mainly used to process image threshold, image smoothing and morphological transformation.
Detection of key points of human body. The fast algorithm of Harris corner detection, sift key point detection, corner point detection and orb algorithm are used to detect the human body key point of the image uploaded by the user, and the algorithm of feature extraction and description as well as the best execution efficiency is selected.
Human skeleton extraction. Opencv library was used to calculate the ecological skeleton.

Key words: 3D human reconstruction, orb image feature extraction, fitting platform, OpenCV

目录

第一章 绪论

1.1引言

近年来愈发成熟和普及的AR、VR技术,无一不是依赖三维重建技术。目前 络购物愈发普及,这就导致很多的商家为了吸引顾客,减少顾客的差评率,让顾客的体验感达到极致,需要实现 上试衣的功能, 上试衣离不开三维建模。
目前不管是基于视频流还是基于多图重建三维模型的技术都逐渐的走向成熟。2017年CVPR国际会议提出一种基于单张照片的三维模型预测 络,可以对单张图片中的物体进行三维预测,通过三维的点图绘制出照片中物体的三维模型。2018年全球人工智能与机器人峰会(CCF-GAIR)在深圳召开,峰会由中国计算机学会(CCF)主办,香港科技大学教授,ICCV 2011主席,IEEE Fellow权龙教授发表题为“计算机视觉,识别与三维重建”的精彩演讲中提到在识别的基础上,计算机视觉下一步必须走向三维重建。2019年3月19日,根据官方消息,云从科技基于单帧图像的3D人体建模重建技术同时在Human3.6M、Surreal和UP-3D三大数据集上创造了最新的世界纪录,将原有的最低误差纪录大幅降低了30%。从照片快速重建人体的三维模型,将传统的人体建模过程由三步降低到两步,极大程度上简化了三维建模的流程,节约的人力物力成本,对于游戏、电影、计算机视觉等领域具有重要的意义。
通过传统的三维建模方法所需要的人力物力资源较为庞大,对于大规模的模型重建来说,具有极大的不便性。通过深度学习,机器学习进行三维模型的预测与重建所需要的先决条件较少,可以实现大规模重建。目前国内外都在积极的构建自己国家的人体体型数据库,为计算机下一步视觉走下三维重建做准备。
目前,国内外对于 上虚拟试衣系统一直处于初级探索阶段,有些试衣软件在用户上传自己的照片之后,建立的模型只是将人脸更换了,并没有在人体体型上做任何改变。还有一些试衣 站有不同的体型的模特供消费者选择,消费者需要输入自己的身体关键部位的参数,就能够生成与自己的体型相似的模特,试穿衣服。
衣吧试衣平台。设计实现基于Python,Django的试衣平台,该平台主要通过接收用户上传的图片,对上传的图片进行处理之后,将建立的模型在该平台进行显示,用于之后进行模型试衣。
图像预处理。主要采用了OpenCV对图像的图像阈值、图像平滑、形态学转换进行了处理。
人体关键点检测。采用Harris角点检测、SIFT关键点检测、角点检测的FAST算法以及ORB算法分别对用户上传的图像进行人体关键点检测,选择特征提取与描述以及执行效率最优的算法。
人体骨架提取。采用OpenCV库计算生态骨架(morphological skeleton)。

第2章 关键技术综述

2.1 OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python的接口。如今也提供对于C#、Ch、Ruby,GO的支持。
OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
OpenCV可以在Windows,Android,Maemo,FreeBSD,OpenBSD,iOS,Linux 和Mac OS等平台上运行。使用者可以在 SourceForge 获得官方版本,或者从 SVN 获得开发版本。OpenCV也是用CMake。
OpenCV有多种优化过的算法,这戏算法主要应用与物体识别、图像分割、动作识别、运动跟踪、机器人、人脸识别、运动分析、机器视觉等。

2.2 Python

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),逐渐用于独立的、大型项目的开发。
Python是一种解释型脚本语言,主要应用于人工智能、软件开发、后端开发、 络爬虫、科学计算和统计以及桌面开发等领域。
Python用作科学计算的优势如下:
Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

2.3 Django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的 站的。于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django是Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架。在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。
Django可以运行在Apache,Nginx上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库Postgresql,MySql, Sqlite3,Oracle。

第3章图像特征获取与描述

3.1 图像预处理技术

3.1.1 图像阈值
我们知道图像阈值分为简单阈值、全局阈值和Otsu二值化。采用OpenCV中的cv2.threshold(),为图像的像素设定一个阈值,当像素值高于阈值时,我们给这个像素赋予一个新值(白色),否则的话,就给它赋予另外一种颜色(可能是黑色)。如果使用全局阈值,就相当于是随便给一个数做阈值,效果的好坏就需要不断的尝试,这样会加大工作量。所以,在这里我们使用函数cv2.threshold时会多传入一个参数(flag):cv2.THRESH_OTSU,这时要将阈值设置为0,然后算法会找到最优阈值。
在本次项目中,会对用户输入的图像首先使用一个5*5d的高斯核去除噪音,然后使用Otsu二值化。
3.1.2 图像平滑
使用低通滤泼器可以达到图像模糊的目的,这在去除图像噪音方面非常有效果。OpenCV提供4种模糊技术:cv2.blur()平均模糊、cv2.GaussianBlur()高斯模糊、cv2.mediaBlur()中值模糊、cv2.bilateralFilter()双边滤波。在本次项目中,会使用5*5的高斯核对用户输入的图像进行处理。
3.1.3 形态学转换
形态学操作时根据图像形状进行的简单操作,一般是对二值化图想进行操作,需要输入两个参数:原始图像和结构元素(又称为核),它用来决定操作的性质。形态学操作分为腐蚀和膨胀,OpenCV中有二者的变体,开运算、闭运算、梯度等。
在本次项目中,主要采用的是开运算(即先腐蚀后膨胀)对用户输入的图像进行处理。

3.2 人体关键点检测技术

3.2.1 Harris角点检测
早在1988年的文章《A Combined Corner and Edge Detector》中就提出了Harris角点检测的算法。由Harris角点检测的结果是一个由角点分数构成的灰度图像。选取合适的阈值对结果图像进行二值化,我们就可以获取图像中的角点了。
本项目中对用户上传的图片使用Harris算法进行角点检测的结果如下:

3.2.3 FAST算法
Edward_Rosten和Tom_Drummond在2006年提出的FAST算法,可以解决上面两种算法,在检测关键点时不够快的缺点。
算法的原理:
取图像中的检测点,通过判断检测点的像素值是否比以该点为圆心的周围16个像素点中的大部分像素点的像素值要亮一个阈值或者暗一个阈值,来判断检测点是否是角点。
本项目中采用cv2.FastFeatureDetector.create()创建一个fast对象,并且使用非最大值抑制,解决检测到的特征点相连问题。之后就可以使用fast的detect()函数检测关键点,并且使用cv2.drawKeyPoints()绘制关键点。项目中使用FAS算法检测用户上传的图像的关键点如下:

3.3 人体骨架提取

3.3.1 OpenCV库计算生态骨架原理
二值图像X的形态学骨架可以通过选定合适的结构元素B,对X进行连续腐蚀或开运算来求得。设S(X)表示X的骨架,则求图像X的骨架的表达式为:

其中,Sn(X)为X的第n个骨架子集,N是预算将X腐蚀成空集前的最后一次迭代次数,即。表示连续n次用B对X进行腐蚀,即

存储用户上传的图片的表的主要包括字段:id、position、pub_time、img_url。position指的是该用户上传的第几张图片;pub_time指的是用户上传照片的时间;而img_url指的是上传的照片存放在本地服务器的url,用于之后访问。数据表具体信息如下:

4.3 系统实现与平台展示

4.3.1 衣吧 照片建模

点击上传个人全身照之后,保存图片,会提示“图片保存成功”,之后就可以点击提取模型了,如果模型提取成功,会在导航栏处提示“图片处理完成,已保存!”。之后,刷新页面,就可以看到提取的模型骨架了。(因为知识储备不足,导致模型并没有建立成功,只能提取模型骨架。)

4.3.3 衣吧 模型试衣间
模型试衣间:主要提供将建立好的模型从数据库中遍历出来,显示在模型试衣间,并且提供模型试衣功能(目前只能展示提取的用户骨架)。

基于3D人像复原技术的试衣平台

第5章

5.1 工作总结
传统的3D人体重建算法需要将问题降维,将复杂的人体形态从三维降到二维层面,以降低问题的难度。但是,信息的传递层级越多,信息的受损也就越大。因此,我们需要做的就是怎么样才能够无需依赖任何参数化的人体模型,从单个彩色图像中直接获取人体的3D模型张图像包含的信息量又相对较少,无疑,这使得从单张图像直接获取3D人体数据又增加了一定的难度。
人体具有封闭的3D曲面结构,任何一个角度拍摄的图像都存在约一半的不可见部分;人体的四肢更加多变,更加复杂;还存在因为服装、光照、雾等的遮挡问题,人体的3D关键点在视觉上也会有明显的差异,身体的不同部位都会有视觉上的缩短效果,导致人体3D数据更难获取,对深度学习技术的使用限制更多等问题。如果要重建,需要技术从单帧图像中推理出人体的3D形态,并通过光学透视、阴影叠加等基本光学原则准确测出各个关键点在3D空间的位置和朝向,才能得到人体的姿态或表情信息。
另外,Github上nkolotTI提出的人形重建的卷积 格回归非常值得学习。这个在部署在Windows 10操作系统上时出现opendr安装不成功,查证之后发现,opendr依赖的操作系统只能是MacOS和Linux,Python版本为Python 2.7,而目前使用的是Python 3.7,所以部署过程就此搁置。之后,将试衣平台,衣吧,部署在Ubuntu 16上时,可以再进行安装opendr。
就目前来说,无论是对OpenCV还是计算机视觉,以及基于深度学习的图像三维重建,现在的技术储备并不能够满足项目的需求,所以还是需要继续学习有关线性蒙皮、骨骼动画等技术,以便之后继续实现该项目做准备。
5.2 未来展望
同时,对于衣吧试衣平台的功能也需要进一步优化,需要提供给用户修改模型参数的功能,使用户可以更好的建立属于自己的人体模型。

参考文献

【1】Fan H,Su H,Guibas L J.A point set generation network for 3d objects reconstruction from a single image[C].Proceeding of the IEEE conference on computer vision and pattern recognition.2017:605-613.
【2】权龙,计算机视觉,识别与三维重建.2018:702.
【3】赵广立,云从科技取得3D人体重建技术新突破.2019:319.
【4】王雅芳,基于三维人体模型重建的人体测量技术研究与实现.2016:12.
【5】齐晓屾,基于二维照片的人物三维模型重建系统的设计与实现.2019:610.
【6】杨成泽,基于图像的三维人体建模技术研究,2011:12.

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月5日
下一篇 2020年4月5日

相关推荐