8375浏览
查看: 8375|回复: 4

[黑科技] Metahuman——我捏的第一个数字人

[复制链接]
本帖最后由 云天 于 2021-11-9 17:16 编辑


Metahuman是依托于Unreal引擎(MetaHuman Creator)开发的超写实数字人。MetaHuman Creator是一款云端流送应用,设计目的就是在不牺牲质量的前提下,使实时数字人类的创作时间从数周乃至数月缩短到一小时以内。它的工作原理就是根据一个不断增长的、丰富的人类外表与动作库进行绘制,并且允许你使用直观的工作流程雕刻和制作想要的结果,从而创作出可信的新角色。

Metahuman——我捏的第一个数字人图1



MetaHuman AYAYI

  AYAYI的美,不仅仅是跳脱传统审美制式的美,更是超越真实感的美,是打破时间与空间界限的永恒之美。

  元宇宙Metaverse是一个虚拟时空间的集合, 由一系列的增强现实(AR), 虚拟现实(VR) 和互联网(Internet)所组成。1992年著名的美国科幻小说家尼奥·斯蒂文森(Neal Stephenson)撰写的《雪崩》(Snow Crash)一书中描述了一个平行于现实世界的网络世界-元界(Metaverse)。所有的现实世界中的人在元界中都有一个网络分身(Avatar)。斯蒂文森笔下的元界是实现虚拟现实后的下一个阶段的互联网的新形态。
  元宇宙时代来临,混合现实主义大势所趋。
Metahuman——我捏的第一个数字人图2
  在MHC中,创作者可以先跳过数据采集这一繁琐且昂贵的步骤,在一个丰富的素材库中选取例如发型、面部、肤色等预设,来制作和生成想要的数字人模型,而Epic声称这些预设数据均来自真实,真实,合理的人脸。换句话说,MHC可以让整个虚拟真人创作过程大量简化,在提升速度和可拓展性的同时还保证了作品的质量。

  这听起来或许跟如今一些游戏中的捏脸系统有些相似,但实际上MHC里面却大有文章。首先,MHC允许创作者对这些系统预设进行混合搭配,并在预设的基础上对人物的细节进行高度自定义的修改。
Metahuman——我捏的第一个数字人图4
  高度自定义到什么程度?从官网的描述可以发现,创作者可以在大约30种使用虚幻引擎的基于发束的发型中进行选择。当然,还有一系列的示例服装,以及18种不同比例的体型可供选择。而根据宣传视频的描述,MHC似乎还允许创作者对数字人的牙齿、骨骼等进行随意修改,颇有一种“武装到牙齿”的既视感。
Metahuman——我捏的第一个数字人图3
  高保真只是MHC的特点之一,而模型的精细度也是不得不提的一点。尤其是每当角色移动脸部时,角色脸上的纹理也会随之产生变化,并影响面部阴影的形变,而这些光源还会与肤色产生相互作用,导致面部反光情况的差异。
Metahuman——我捏的第一个数字人图5
  实际上,MHC采用的是一项云托管服务,这意味着对于创作者而言,这些高分辨率和照明水平渲染的角色,其所需的计算能力和存储量其实并不高,一根能联网的网线、一套虚幻引擎制作工具MHC,以及一个Web浏览器即可。

【自己捏一个】
Metahuman——我捏的第一个数字人图8

Metahuman——我捏的第一个数字人图7


原型
Metahuman——我捏的第一个数字人图6

自己捏的,丑了许多
Metahuman——我捏的第一个数字人图9


男女不清楚了


捏人过程



云天  初级技神
 楼主|

发表于 2021-11-13 18:29:01

  1. import cv2
  2. import mediapipe as mp
  3. import numpy as numpy
  4. import math
  5. mp_drawing = mp.solutions.drawing_utils
  6. mp_hands = mp.solutions.hands
  7. # For webcam input:
  8. cap = cv2.VideoCapture(0)
  9. W=cap.get(3)
  10. H=cap.get(4)
  11. font = cv2.FONT_HERSHEY_SIMPLEX
  12. point1=(0,0)
  13. point2=(0,0)
  14. with mp_hands.Hands(
  15.     0,max_num_hands=1,
  16.     min_detection_confidence=0.8,
  17.     min_tracking_confidence=0.5) as hands:
  18.   while cap.isOpened():
  19.     success, image = cap.read()
  20.     if not success:
  21.       print("Ignoring empty camera frame.")
  22.       # If loading a video, use 'break' instead of 'continue'.
  23.       continue
  24.     # To improve performance, optionally mark the image as not writeable to
  25.     # pass by reference.
  26.     image.flags.writeable = False
  27.     image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
  28.     results = hands.process(image)
  29.     blue=(255,255,0)
  30.     # Draw the hand annotations on the image.
  31.     image.flags.writeable = True
  32.     image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
  33.     if results.multi_hand_landmarks:
  34.       for hand_landmarks in results.multi_hand_landmarks:
  35.         #mp_drawing.draw_landmarks(image,hand_landmarks,mp_hands.HAND_CONNECTIONS)
  36.         for i in range(len(hand_landmarks.landmark)):
  37.             #cv2.circle(image,(int(hand_landmarks.landmark[i].x*W),int(hand_landmarks.landmark[i].y*H)),6,blue,3)
  38.             cv2.putText(image, str(i), (int(hand_landmarks.landmark[i].x*W),int(hand_landmarks.landmark[i].y*H)), font, 0.5, blue, 2)
  39.         mx=abs(hand_landmarks.landmark[4].x+hand_landmarks.landmark[8].x)/2*W
  40.         my=abs(hand_landmarks.landmark[4].y+hand_landmarks.landmark[8].y)/2*H
  41.         cv2.circle(image,(int(mx),int(my)),6,blue,3)
  42.     # Flip the image horizontally for a selfie-view display.
  43.     cv2.imshow('MediaPipe Hands', cv2.flip(image, 1))
  44.     if cv2.waitKey(5) & 0xFF == 27:
  45.       break
  46. cap.release()
复制代码


回复

使用道具 举报

lumeizhu20  见习技师

发表于 2021-11-15 11:23:52

真的 好厉害!
回复

使用道具 举报

安卓机器人  中级技神

发表于 2021-11-19 15:11:43

喔 噻 碉
回复

使用道具 举报

QQQQQQQ  初级技匠

发表于 2022-3-10 18:29:42

厉害厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail