主要观点总结
文章介绍了如何使用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
………………………………