Metahuman——我捏的第一个数字人
本帖最后由 云天 于 2021-11-9 17:16 编辑https://www.bilibili.com/video/BV1ap4y1t7KL
Metahuman是依托于Unreal引擎(MetaHuman Creator)开发的超写实数字人。MetaHuman Creator是一款云端流送应用,设计目的就是在不牺牲质量的前提下,使实时数字人类的创作时间从数周乃至数月缩短到一小时以内。它的工作原理就是根据一个不断增长的、丰富的人类外表与动作库进行绘制,并且允许你使用直观的工作流程雕刻和制作想要的结果,从而创作出可信的新角色。
MetaHuman AYAYI
AYAYI的美,不仅仅是跳脱传统审美制式的美,更是超越真实感的美,是打破时间与空间界限的永恒之美。
元宇宙Metaverse是一个虚拟时空间的集合, 由一系列的增强现实(AR), 虚拟现实(VR) 和互联网(Internet)所组成。1992年著名的美国科幻小说家尼奥·斯蒂文森(Neal Stephenson)撰写的《雪崩》(Snow Crash)一书中描述了一个平行于现实世界的网络世界-元界(Metaverse)。所有的现实世界中的人在元界中都有一个网络分身(Avatar)。斯蒂文森笔下的元界是实现虚拟现实后的下一个阶段的互联网的新形态。 元宇宙时代来临,混合现实主义大势所趋。 在MHC中,创作者可以先跳过数据采集这一繁琐且昂贵的步骤,在一个丰富的素材库中选取例如发型、面部、肤色等预设,来制作和生成想要的数字人模型,而Epic声称这些预设数据均来自真实,真实,合理的人脸。换句话说,MHC可以让整个虚拟真人创作过程大量简化,在提升速度和可拓展性的同时还保证了作品的质量。
这听起来或许跟如今一些游戏中的捏脸系统有些相似,但实际上MHC里面却大有文章。首先,MHC允许创作者对这些系统预设进行混合搭配,并在预设的基础上对人物的细节进行高度自定义的修改。 高度自定义到什么程度?从官网的描述可以发现,创作者可以在大约30种使用虚幻引擎的基于发束的发型中进行选择。当然,还有一系列的示例服装,以及18种不同比例的体型可供选择。而根据宣传视频的描述,MHC似乎还允许创作者对数字人的牙齿、骨骼等进行随意修改,颇有一种“武装到牙齿”的既视感。 高保真只是MHC的特点之一,而模型的精细度也是不得不提的一点。尤其是每当角色移动脸部时,角色脸上的纹理也会随之产生变化,并影响面部阴影的形变,而这些光源还会与肤色产生相互作用,导致面部反光情况的差异。 实际上,MHC采用的是一项云托管服务,这意味着对于创作者而言,这些高分辨率和照明水平渲染的角色,其所需的计算能力和存储量其实并不高,一根能联网的网线、一套虚幻引擎制作工具MHC,以及一个Web浏览器即可。
【自己捏一个】
https://www.bilibili.com/video/BV1FR4y1t78b?share_source=copy_web
原型
自己捏的,丑了许多{:7_221:}
https://www.bilibili.com/video/BV1Pq4y1k7FR?share_source=copy_web
男女不清楚了
https://www.bilibili.com/video/BV1CU4y1g7LT?share_source=copy_web
捏人过程
import cv2
import mediapipe as mp
import numpy as numpy
import math
mp_drawing = mp.solutions.drawing_utils
mp_hands = mp.solutions.hands
# For webcam input:
cap = cv2.VideoCapture(0)
W=cap.get(3)
H=cap.get(4)
font = cv2.FONT_HERSHEY_SIMPLEX
point1=(0,0)
point2=(0,0)
with mp_hands.Hands(
0,max_num_hands=1,
min_detection_confidence=0.8,
min_tracking_confidence=0.5) as hands:
while cap.isOpened():
success, image = cap.read()
if not success:
print("Ignoring empty camera frame.")
# If loading a video, use 'break' instead of 'continue'.
continue
# To improve performance, optionally mark the image as not writeable to
# pass by reference.
image.flags.writeable = False
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
results = hands.process(image)
blue=(255,255,0)
# Draw the hand annotations on the image.
image.flags.writeable = True
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
#mp_drawing.draw_landmarks(image,hand_landmarks,mp_hands.HAND_CONNECTIONS)
for i in range(len(hand_landmarks.landmark)):
#cv2.circle(image,(int(hand_landmarks.landmark.x*W),int(hand_landmarks.landmark.y*H)),6,blue,3)
cv2.putText(image, str(i), (int(hand_landmarks.landmark.x*W),int(hand_landmarks.landmark.y*H)), font, 0.5, blue, 2)
mx=abs(hand_landmarks.landmark.x+hand_landmarks.landmark.x)/2*W
my=abs(hand_landmarks.landmark.y+hand_landmarks.landmark.y)/2*H
cv2.circle(image,(int(mx),int(my)),6,blue,3)
# Flip the image horizontally for a selfie-view display.
cv2.imshow('MediaPipe Hands', cv2.flip(image, 1))
if cv2.waitKey(5) & 0xFF == 27:
break
cap.release()
真的 好厉害! 喔 噻 碉 厉害厉害
页:
[1]