如何准备标注数据集?Scalabel prepare_data 视频抽帧与图像列表生成指南
如何准备标注数据集Scalabel prepare_data 视频抽帧与图像列表生成指南【免费下载链接】scalabelScalabel: A versatile web-based visual data annotation tool项目地址: https://gitcode.com/gh_mirrors/sc/scalabel在开始数据标注之前把原始视频整理成一份规范的标注数据集往往是最耗时也最容易出错的一步。Scalabel 这款开源的 Web 可视化数据标注工具内置了一个名为prepare_data的官方脚本只需一条命令就能同时完成视频抽帧与图像列表生成让你跳过繁琐的手工截图与整理环节直接把数据送进标注界面。本文将带你从零掌握 Scalabel 视频抽帧与图像列表生成的完整流程从安装、基础命令到进阶技巧一次讲清。为什么标注数据集前必须先准备数据很多人会问视频不是可以直接拿来标注吗答案是否定的。无论是目标检测、多目标跟踪还是实例分割Scalabel 的标注界面都要求输入逐帧图像并配一份图像列表来告诉系统有哪些图、属于哪个视频。因此把视频拆成图片、生成列表是创建标注项目前绕不开的准备工作。手动用播放器截图不仅效率低下还难以保证帧率统一、命名规范。prepare_data正是为解决这一痛点而生它是 Scalabel 官方推荐的数据预处理方案。Scalabel prepare_data 是什么prepare_data是 Scalabel Python 包中的一个数据处理工具位于 prepare_data.py。它的核心能力有三点视频抽帧把 mp4、mov、avi 视频按指定帧率拆成一张张 jpg 图片图片整理把已有的图片文件夹自动复制、归类到目标目录图像列表生成自动输出image_list.yml图像列表文件标注项目创建时可直接使用。输出的图像列表格式非常简单每个条目包含url图片地址和videoName所属视频名两个字段见 image_list.yml 示例。开始前需要准备什么只需三步即可搭建好运行环境克隆项目源码如需完整工具与示例git clone https://gitcode.com/gh_mirrors/sc/scalabel安装 Python 依赖要求 Python 3.7核心依赖包括 PyYAML、boto3、joblib 等安装 ffmpeg抽帧功能依赖 ffmpeg 命令行工具Linux 下可用包管理器直接安装。视频抽帧——最核心的一步最简单的一键抽帧命令准备好一个dancing.mp4视频后在项目根目录执行python3 -m scalabel.tools.prepare_data \ -i dancing.mp4 -o ./dancing --fps 3执行完毕后dancing目录下会出现一个以视频名命名的子文件夹里面是按 3 帧/秒抽取的图片如dancing-0000001.jpg同时生成image_list.yml图像列表。整个过程无需写任何额外代码。常用参数速查表下表是新手最常用的几个参数全部来自 tools.rst 官方文档参数简写作用--input-i输入的视频或图片文件夹可传多个--out-dir-o输出目录存放抽帧图片与图像列表--fps-f目标帧率默认保持视频原始帧率--start-time无从第几秒开始抽帧--max-frames无每个视频最多抽多少帧--input-list无用文本文件批量指定输入路径--jobs-j并行处理多个视频的进程数--no-list无只抽帧不生成图像列表进阶抽帧技巧实际项目中我们常常只想截取视频的某一段或限制帧数。比如从第 5 秒开始、最多抽 100 帧、每秒 3 帧python3 -m scalabel.tools.prepare_data --start-time 5 --max-frames 100 \ -i dancing.mp4 -o ./dancing --fps 3 \ --url-root http://localhost:8686/items/dancing1k这里--url-root用来指定图片在标注服务上的访问前缀生成图像列表时会被自动拼进url字段。图像列表生成——连接标注界面的关键图像列表生成是prepare_data的点睛之笔。抽帧结束后工具会自动扫描输出目录下所有 jpg 图片生成一份image_list.yml- {url: http://localhost:8686/items/dancing1k/dancing/dancing-0000001.jpg, videoName: dancing} - {url: http://localhost:8686/items/dancing1k/dancing/dancing-0000002.jpg, videoName: dancing}创建标注项目时直接选择这份图像列表即可完成数据导入。videoName字段让跟踪类任务能自动把同一视频的帧归为一组非常方便。进阶用法多视频、图片文件夹与并行处理真实项目往往不止一个视频。prepare_data支持三种灵活的输入方式多个视频同时处理在-i后依次列出如-i a.mp4 b.mp4 c.mp4所有帧会合并进同一份图像列表图片文件夹输入直接传入已有图片的文件夹工具会按文件夹名自动归类并复制到输出目录文本清单批量输入配合--input-list每行写一个视频或文件夹路径适合几十上百个文件的大批量场景。处理大量视频时建议加上--jobs 4开启并行抽帧能显著缩短等待时间。另外若目标目录已有文件可用--scratch强制清空后重新生成。把抽帧结果上传到 S3如果图片需要共享给团队或部署在云端prepare_data也内置了 S3 支持加上--s3参数后抽帧完成会自动把图片上传到指定桶并用 S3 地址生成图像列表python3 -m scalabel.tools.prepare_data -i dancing.mp4 --fps 3 \ -o dancing-s3 --s3 my-bucket/demo/dancing上传后的image_list.yml会直接指向 S3 的公开地址标注前端无需本地文件即可访问。常见问题 FAQQ1抽帧时报 ffmpeg 相关错误怎么办检查 ffmpeg 是否已安装并加入系统 PATH这是抽帧的底层依赖。Q2生成的图片一定是 jpg 吗是的prepare_data假设并统一输出 jpg 格式图片请提前确认原始素材兼容。Q3只想抽帧、不想要图像列表加上--no-list参数即可跳过图像列表生成。Q4视频格式支持哪些目前支持 mp4、mov、avi 三种常见格式其他格式建议先转码。结语从视频到可标注的标注数据集Scalabel 的prepare_data把最繁琐的抽帧、整理与图像列表生成工作浓缩成了一条命令。无论是个人小项目还是团队大批量数据掌握这个工具都能让你把精力真正投入到标注本身。现在就动手试试把第一个视频变成属于你的标注数据集吧【免费下载链接】scalabelScalabel: A versatile web-based visual data annotation tool项目地址: https://gitcode.com/gh_mirrors/sc/scalabel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考