人脸网格/人脸3D重建 face_mesh(毕业设计+代码)

本文涉及的产品
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频通用资源包5000点
简介: 人脸网格/人脸3D重建 face_mesh(毕业设计+代码)

概述


Face Mesh是一个解决方案,可在移动设备上实时估计468个3D面部地标。它利用机器学习(ML)推断3D面部表面,只需要单个摄像头输入,无需专用深度传感器。利用轻量级模型架构以及整个管道中的GPU加速,该解决方案提供实时性能,对于实时体验至关重要。

此外,该解决方案还捆绑了Face Transform模块,弥合了面部地标估计和实用的实时增强现实(AR)应用之间的差距。它建立了一个度量的3D空间,并使用面部地标屏幕位置来估计该空间内的面部变换。

7d42d1ea9aeb6731b70b37a0041faa09_32c5c12021ec4fa69c4c01ad611c8bf6.png


面部变换数据包括常见的3D基元,包括面部姿势变换矩阵和三角形面网格。在底层采用了一种轻量级的统计分析方法,称为Procrustes分析,以驱动强大、高效和可移植的逻辑。分析在CPU上运行,并在ML模型推断之上具有最小的速度/内存占用。


模型算法


我们的机器学习过程由两个实时深度神经网络模型组成,它们共同工作:一个检测器在完整图像上运行,并计算面部位置;一个3D面部地标模型在这些位置上运行,并通过回归预测近似的3D表面。准确地裁剪面部极大地减少了常见数据增强的需求,如由旋转、平移和缩放变化组成的仿射变换。

65e4f4ac1a7e083af40c8bb13d0d43b6_269e6f53a9f54c42a678fb9c6fdfbd7b.png相反,它使网络能够将大部分容量专注于坐标预测准确性。此外,在我们的管道中,裁剪也可以基于上一帧中识别的面部地标生成,只有当地标模型无法再识别面部存在时,才会调用面部检测器重新定位面部。这种策略类似于我们的解决方案,它使用手掌检测器和手部地标模型。

该管道实现为使用面部地标模块中的面部地标子图的MediaPipe图,使用专用面部渲染器子图进行渲染。面部地标子图在内部使用来自面部检测模块的面部检测子图。


结论和代码


除了面部地标模型外,我们还提供另一个模型,它将注意力集中在语义上有意义的面部区域上,从而更准确地预测唇部、眼睛和虹膜周围的地标,但需要更多计算资源。它可以实现AR化妆和AR操纵等应用。

c5f26c94e16e6dfc575025b8509bb165_233380f3d3274d5a92c5d7dd1a21c9e3.png


# For static images:
#全部代码 -----qq1309399183<---------
IMAGE_FILES = []
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
with mp_face_mesh.FaceMesh(
    static_image_mode=True,
    max_num_faces=1,
    refine_landmarks=True,
    min_detection_confidence=0.5) as face_mesh:
  for idx, file in enumerate(IMAGE_FILES):
    image = cv2.imread(file)
    # Convert the BGR image to RGB before processing.
    results = face_mesh.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
    # Print and draw face mesh landmarks on the image.
    if not results.multi_face_landmarks:
      continue
    annotated_image = image.copy()
    for face_landmarks in results.multi_face_landmarks:
      print('face_landmarks:', face_landmarks)
      mp_drawing.draw_landmarks(
          image=annotated_image,
          landmark_list=face_landmarks,
          connections=mp_face_mesh.FACEMESH_TESSELATION,
          landmark_drawing_spec=None,
          connection_drawing_spec=mp_drawing_styles
          .get_default_face_mesh_tesselation_style())


全部代码私信会回复!



相关文章
|
机器学习/深度学习 vr&ar
一起来学MediaPipe(二)人脸面网格
一起来学MediaPipe(二)人脸面网格
1673 0
一起来学MediaPipe(二)人脸面网格
|
机器学习/深度学习 Shell 算法框架/工具
【姿态估计】实操记录:使用Dlib与mediapipe进行人脸姿态估计
【姿态估计】实操记录:使用Dlib与mediapipe进行人脸姿态估计
1846 0
|
机器学习/深度学习 存储 人工智能
5秒实现AI语音克隆(Python)
推荐一个有趣的AI黑科技--MockingBird,该项目集成了Python开发,语音提取、录制、调试、训练一体化GUI操作,号称只需要你的 5 秒钟的声音,就能实时克隆出你的任意声音
开源项目推荐:3D重建开源库Colmap/OpenMVG/OpenMVS/Fade2D/2.5D
开源项目推荐:3D重建开源库Colmap/OpenMVG/OpenMVS/Fade2D/2.5D
798 0
|
11月前
|
数据采集 前端开发 物联网
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
本文介绍了一个基于多模态大模型的医疗图像诊断项目。项目旨在通过训练一个医疗领域的多模态大模型,提高医生处理医学图像的效率,辅助诊断和治疗。作者以家中老人的脑部CT为例,展示了如何利用MedTrinity-25M数据集训练模型,经过数据准备、环境搭建、模型训练及微调、最终验证等步骤,成功使模型能够识别CT图像并给出具体的诊断意见,与专业医生的诊断结果高度吻合。
20115 162
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
416 1
|
11月前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
11421 34
Qwen2.5-7B-Instruct Lora 微调
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
19235 0
|
存储 缓存 JavaScript
Flutter笔记:关于WebView插件的用法(上)
Flutter笔记:关于WebView插件的用法(上)
3974 5
|
Ubuntu 安全 网络协议

热门文章

最新文章