人头重建模型

我要开发同款
匿名用户2024年07月31日
65阅读
开发技术head reconstruction、pytorch
所属分类ai、三维重建、人脸重建、avatar、head reconstruction、Alibaba、face reconstruction、cv
开源地址https://modelscope.cn/models/iic/cv_HRN_head-reconstruction
授权协议Apache License 2.0

作品详情

基于HRN的高精度人头重建模型

人头重建模型以单张人像图作为输入,基于人脸重建模型HRN ,利用层次化表征实现快速人脸几何、纹理恢复,输出高精度3D人头重建mesh。

Output2

三维视觉系列模型

HRN人脸重建 文本生成3D头部

模型描述

  • 该人头重建模型以HRN 为基础,融合了BFM与FLAME,构建新的head 3DMM模型,结合两者的头部完整性、脸部高精度等优势。
  • 重建区域限于脸部,头部其他区域(后脑、耳朵、脖子)为补全效果,与输入可能不符。

期望模型使用方式以及适用范围

模型参数:

  • hair_tex: pipeline参数,可在configuration.json中修改,或者在pipeline初始化中传入,如:

    pipeline(Tasks.head_reconstruction, model='damo/cv_HRN_head-reconstruction', model_revision='v0.1', hair_tex=True))
    

    当hair_tex为False时(默认),将输出光头的纹理,如以上示例;

    当hair_tex为True时,将输出带头发的纹理(效果不稳定,取决于输入图像)。

使用方式:

  • 直接推理,输入图像直接进行推理。

使用范围:

  • 适用于包含人脸的人像照片,其中人脸分辨率大于100x100,图像整体分辨率小于5000x5000。

目标场景:

  • 影视、娱乐、医美等。

如何使用

本模型基于pytorch进行训练和推理,在ModelScope框架上,提供输入图片,即可以通过简单的Pipeline调用来使用人头重建模型。

代码范例

import os
import cv2
from modelscope.models.cv.face_reconstruction.utils import write_obj
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks


def save_results(result, save_root):
    os.makedirs(save_root, exist_ok=True)

    # export obj and texture
    mesh = result[OutputKeys.OUTPUT]['mesh']
    texture_map = result[OutputKeys.OUTPUT_IMG]
    mesh['texture_map'] = texture_map
    write_obj(os.path.join(save_root, 'head_recon_result.obj'), mesh)

    print(f'Output written to {os.path.abspath(save_root)}')

head_reconstruction = pipeline(Tasks.head_reconstruction, model='damo/cv_HRN_head-reconstruction', model_revision='v0.1')
result = head_reconstruction('https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/face_reconstruction.jpg')

save_results(result, './head_reconstruction_results')

模型局限性以及可能的偏差

  • 人像占比过小可能会影响纹理重建的效果,在人脸分辨率大于200×200的图像上可取得期望效果。
  • 对于脸部存在严重遮挡的情况,重建效果可能不符合预期。

训练数据介绍

  • 本模型通过自监督的方式进行训练,训练数据仅需2D人脸图像,可使用人脸公开数据集如CeleA、300W-LP等。

预处理

  • 人脸区域裁剪、resize到224x224分辨率作为网络输入。

后处理

  • 将顶点坐标、三角面片、贴图等数据转化为obj等模型文件。

引用

如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:

@inproceedings{lei2023hierarchical,
  title={A Hierarchical Representation Network for Accurate and Detailed Face Reconstruction from In-The-Wild Images},
  author={Lei, Biwen and Ren, Jianqiang and Feng, Mengyang and Cui, Miaomiao and Xie, Xuansong},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={394--403},
  year={2023}
}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论