专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

LivePortrait实现快速、高质量的人像驱动视频生成

dotNET跨平台  · 公众号  · 科技媒体  · 2024-10-01 07:55
    

主要观点总结

文章介绍了如何使用LivePortrait工具进行人像驱动视频生成,并提供了相关的代码实现。首先,文章介绍了初始化FaceAnalysis类,包括加载模型和设置相关参数。接着,描述了预处理图像的方法,包括调整图像大小和添加边框。然后,描述了生成候选框和检测人脸的过程,包括使用ONNX运行模型,并进行了非极大值抑制(NMS)处理。最后,文章提供了其他的工具函数,如裁剪图像、计算距离比、计算IoU和进行NMS等。

关键观点总结

关键观点1: 初始化FaceAnalysis类

加载模型,设置参数,包括输入和输出节点数量,以及ONNX会话的创建。

关键观点2: 预处理图像

调整图像大小,添加边框,以便输入模型。

关键观点3: 生成候选框和检测人脸

使用ONNX运行模型,生成候选框,并进行非极大值抑制处理。

关键观点4: 其他工具函数

包括裁剪图像,计算距离比,计算IoU,进行NMS等,用于辅助整个流程。


文章预览

说明 LivePortrait实现快速、高质量的人像驱动视频生成 github地址: https://github.com/hpc203/liveportrait-onnxrun onnx文件在百度云盘 链接: https://pan.baidu.com/s/13wjBFRHIIyCyBsgnBOKqsw 提取码: si95 效果 代码 faceanalysis.cpp #include "faceanalysis.h" using namespace cv; using namespace std; using namespace Ort; FaceAnalysis::FaceAnalysis(string model_patha, string model_pathb) {     /// OrtStatus* status = OrtSessionOptionsAppendExecutionProvider_CUDA(sessionOptions, 0);   ///如果使用cuda加速,需要取消注释     sessionOptions.SetGraphOptimizationLevel(ORT_ENABLE_BASIC);     /// std::wstring widestr = std::wstring(model_patha.begin(), model_patha.end());  ////windows写法     /// ort_session = new Session(env, widestr.c_str(), sessionOptions); ////windows写法     det_face_ort_session = new Session(env, model_patha.c_str(), sessionOptions); ////linux写法     size_t  ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览