
Everybody Dance Now数据集制备全攻略从OpenPose关键点提取到训练数据生成【免费下载链接】EverybodyDanceNowMotion Retargeting Video Subjects项目地址: https://gitcode.com/gh_mirrors/ev/EverybodyDanceNowEverybody Dance Now是一个专注于动作重定向Motion Retargeting的开源项目能够将视频中人物的动作迁移到目标人物身上。本文将详细介绍如何从原始视频提取OpenPose关键点经过数据预处理最终生成可用于模型训练的高质量数据集帮助新手快速掌握数据制备的完整流程。 数据集制备核心流程概览Everybody Dance Now的数据集制备主要包含三大步骤形成完整的流水线原始数据采集准备包含人物动作的视频帧序列OpenPose关键点提取使用OpenPose工具提取人体姿态、面部和手部关键点数据预处理与格式化将关键点数据转换为模型可接受的训练格式项目的数据处理模块集中在data_prep/目录下包含多个核心脚本renderopenpose.py关键点可视化与处理graph_posenorm.py姿态标准化get_facetexts.py面部特征提取 原始视频帧准备视频帧提取步骤首先需要将原始视频分割为连续的帧序列建议使用FFmpeg工具ffmpeg -i input_video.mp4 -r 25 sample_data/train/original_frames/frame%06d.jpg提取后的帧图像应保存在sample_data/train/original_frames/目录下项目提供的样例帧如原始视频帧样例1920x1080分辨率包含完整的人物动作场景帧选择最佳实践选择动作清晰、光照均匀的视频片段建议帧率保持在25-30fps确保动作连贯性避免过大的镜头切换和遮挡帧图像格式推荐使用JPG或PNG项目样例中使用了1920x1080分辨率的JPG文件 OpenPose关键点提取OpenPose工具简介OpenPose是一个开源的人体姿态估计库能够检测图像中的人体关键点包括身体、面部和手部。Everybody Dance Now项目使用OpenPose输出的关键点数据作为模型输入主要通过data_prep/renderopenpose.py脚本处理。关键点提取过程运行OpenPose检测./build/examples/openpose/openpose.bin --image_dir sample_data/train/original_frames/ --write_json sample_data/train/keypoints/关键点文件结构 检测结果会生成YAML格式文件保存在sample_data/train/keypoints/目录每个视频帧对应四个文件frame020001_pose.yml身体姿态关键点frame020001_face.yml面部关键点frame020001_hand_left.yml左手关键点frame020001_hand_right.yml右手关键点关键点数据解析 renderopenpose.py中的readkeypointsfile()函数支持解析YAML和JSON格式的关键点文件代码片段如下def readkeypointsfile(myfile): supports only .yml and .json files filename, file_extension os.path.splitext(myfile) if file_extension .yml: return readkeypointsfile_yml(myfile) elif file_extension .json: return readkeypointsfile_json(myfile)关键点可视化使用renderopenpose.py中的renderpose()函数可以将关键点渲染到图像上生成可视化结果OpenPose关键点可视化结果不同颜色标记不同身体部位用于直观检查关键点提取质量️ 数据预处理与标准化关键点标准化graph_posenorm.py负责关键点的标准化处理主要包括尺度统一将不同图像尺寸的关键点映射到统一坐标系姿态对齐以特定身体部位如鼻子为参考点进行对齐异常值处理过滤低置信度的关键点数据核心代码在renderopenpose.py中的scale_resize()和fix_scale_coords()函数实现def scale_resize(curshape, myshape(1080, 1920, 3), mean_height0.0): x_mult myshape[0] / float(curshape[0]) y_mult myshape[1] / float(curshape[1]) # 计算缩放比例和偏移量... return scale, translate def fix_scale_coords(points, scale, translate): points[0::3] scale * points[0::3] translate[0] points[1::3] scale * points[1::3] translate[1] return list(points)训练数据生成预处理后的关键点数据会转换为模型训练所需的格式主要生成两类文件标签图像保存为PNG格式存储在sample_data/train/train_label/目录训练标签图像样例1024x512分辨率包含编码后的姿态信息面部特征文本保存为TXT格式存储在sample_data/train/train_facetexts128/目录由get_facetexts.py生成数据校验与质量控制生成训练数据后建议进行以下检查确保所有帧都有对应的关键点文件检查标签图像中关键点是否完整验证训练集与测试集比例通常建议7:3或8:2移除模糊或关键点缺失的低质量样本 数据集目录结构项目采用清晰的目录结构组织不同类型的数据典型结构如下sample_data/ ├── test/ # 测试数据集 │ ├── original_img/ # 测试原始图像 │ ├── test_facetexts128/ # 测试面部特征文本 │ └── test_label/ # 测试标签图像 └── train/ # 训练数据集 ├── keypoints/ # OpenPose关键点文件 ├── original_frames/ # 原始视频帧 ├── train_facetexts128/# 训练面部特征文本 ├── train_img/ # 训练图像 └── train_label/ # 训练标签图像 高效数据集制备技巧批处理自动化编写Shell脚本批量处理多个视频文件for video in videos/*.mp4; do ffmpeg -i $video -r 25 sample_data/train/original_frames/$(basename $video .mp4)_%06d.jpg done数据增强通过旋转、缩放等方式扩充数据集提高模型泛化能力并行处理使用多线程加速OpenPose关键点提取特别是处理大量视频时质量评估定期随机抽查生成的标签图像确保数据质量稳定 开始使用数据集完成数据集制备后可以通过以下命令开始模型训练git clone https://gitcode.com/gh_mirrors/ev/EverybodyDanceNow cd EverybodyDanceNow python train_fullts.py --dataroot sample_data/ --name dance_model --model pix2pixHD训练配置参数可以在options/train_options.py中调整根据硬件条件优化训练参数。通过本文介绍的步骤你可以从原始视频开始完成从OpenPose关键点提取到训练数据生成的全流程。高质量的数据集是模型训练成功的关键建议在数据制备阶段投入足够的时间和精力为后续模型训练打下坚实基础。【免费下载链接】EverybodyDanceNowMotion Retargeting Video Subjects项目地址: https://gitcode.com/gh_mirrors/ev/EverybodyDanceNow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考