CVAT 多边形 Track 模式:用关键帧插值精准标注移动对象 📅 发布时间:2026/9/14 19:54:14 👁 浏览次数: CVAT 多边形 Track 模式用关键帧插值精准标注移动对象【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat在 CVAT 中标注视频里的移动目标时矩形Rectangle常常只能框住物体而无法贴合其轮廓导致分割类任务的标注精度不足。本文以官方文档track-mode-with-polygons为主体讲解如何在 Track 模式下用多边形Polygon标注移动对象如何通过起始点与方向对齐来保证自动插值质量、如何用ShiftN建立关键帧以及如何在不重绘整条轨迹的前提下微调多边形形状。读完本篇你可以独立完成一条平滑、轮廓贴合的多边形轨迹并理解 CVAT 前端源码中插值算法对“起始点一致”这一要求的底层原因。为什么在多边形标注中选择 Track 模式多边形形状本身用于语义/实例分割标注详见 多边形手动绘制指南。但在视频场景中如果逐帧画多边形工作量会非常大Track 模式则允许你在少数几帧关键帧上绘制多边形其余帧由 CVAT 自动插值生成同时保持对象 ID 跨帧一致。官方文档给出的核心动机是Track 模式下的多边形比矩形能更精确地标记移动对象——多边形可以贴合物体轮廓而矩形只能近似包围。代价是你必须遵守关键帧之间的“起始点”与“方向”对齐规则否则插值结果会错位。创建第一个多边形关键帧在控制侧栏选中Polygon工具并选好 Label 后点击Track按钮见上图Draw new polygon弹窗中Track高亮表示本次绘制的是一个轨迹而非单帧形状。绘制方式与单帧多边形完全一致逐点点击或按住Shift拖拽连线。绘制过程中滚轮可缩放、按住鼠标中键可平移。按N或点击顶部面板的Done按钮完成该多边形。多边形的前端绘制逻辑位于 cvat-canvas 的 regionSelector它负责逐点采集、右键上下文菜单删除点等以及Shift拖拽连线等行为Track按钮的作用只是把绘制结果标记为轨迹的关键帧keyframe而不是单帧 shape。起始点与方向插值质量的决定因素文档特别强调创建出的多边形有一个起始点starting point和一个绕行方向direction顺时针或逆时针这两个要素对后续帧的标注至关重要。这不是文档层面的“建议”而是插值算法的直接约束。从源码结构看多边形轨迹的插值实现位于 cvat-core/src/annotations-objects/polygon-track.tsprotected interpolatePosition(leftPosition, rightPosition, offset): InterpolatedPosition { const copyLeft { ...leftPosition, points: [...leftPosition.points, leftPosition.points[0], leftPosition.points[1]], }; const copyRight { ...rightPosition, points: [...rightPosition.points, rightPosition.points[0], rightPosition.points[1]], }; const result super.interpolatePosition(copyLeft, copyRight, offset); return { ...result, points: result.points.slice(0, -2) }; }可以看到多边形插值并不是简单地“第 i 个点向第 i 个点移动”它会在两个端点多边形的点序列尾部补上各自的前两个点交给父类 PolyTrack 的点匹配算法 做点对点的对应与最小化之后再切掉补上的两个点。这套循环缓冲式处理正是为了让“点序列的起点差异”可以被正确对齐——但前提是左右两个关键帧的起始点语义一致例如都从“左侧后视镜顶部”开始且绕行方向一致例如都是顺时针。一旦起始点或方向不匹配点与点的对应关系就会错乱中间帧的多边形会出现明显的扭曲或“拧麻花”式的变形。插值调用入口位于 Track 类的 keyframe 插值逻辑各形状类型矩形、椭圆、多边形、3D cuboid 等通过各自的interpolatePosition实现差异化策略可参考 cvat-core/docs/Interpolation.pdf 中对插值方法的说明。用 ShiftN 建立下一个关键帧并自动插值官方文档给出的关键帧工作流如下图中以 DETRAC 数据集的车辆标注为例沿时间轴向前推进若干帧。按ShiftN旧的多边形消失进入新的关键帧绘制状态。绘制新多边形时新的起始点必须与上一个关键帧的起始点一致文档示例中为“左侧后视镜顶部”方向也必须一致示例中为顺时针。完成后按N两个关键帧之间的中间帧多边形会被自动插值填充无需逐帧绘制。这条流程本质上就是“在关键帧 A 画 →ShiftN在关键帧 B 画 → 中间帧自动插值”之后可继续向前重复直到覆盖目标运动的全部区间。修改起始点与方向如果新关键帧的起始点或方向画得不符合对齐要求不需要删除重画。文档提供了右键上下文菜单的两个入口改变起始点右键点击期望作为起点的那个顶点选择Set starting point。改变绕行方向右键点击顶点选择Switch orientation。这两个操作只调整点序列的表示方式起点偏移与正/负方向不改变多边形的几何形状因此不会破坏已插值的中间帧语义——它们的作用正是让当前关键帧与相邻关键帧满足前面所述的起始点/方向对齐约束。微调代替重绘移动顶点与 ShiftClick文档最后给出了一条高效的进阶技巧不必每次都用ShiftN重新绘制整条轨迹。当某个关键帧的多边形轮廓不理想、或物体形状有局部变化时可以直接拖动单个顶点point来局部调整形状按ShiftClick编辑多边形的一部分。这种方式相当于直接修改现有关键帧的 shape中间帧会随关键帧数据变化而重新参与插值计算工作量远小于重绘一个完整关键帧。对长视频中缓慢变形的目标如车辆转弯、行人姿态变化这是保持轨迹平滑且省力维护的首选手段。小结与延伸操作快捷键 / 入口作用完成当前多边形N或Done结束绘制生成关键帧进入下一关键帧绘制ShiftN旧多边形消失绘制新关键帧设定起始点右键顶点 →Set starting point对齐插值所需的起点语义切换绕行方向右键顶点 →Switch orientation对齐顺时针/逆时针方向局部微调拖动顶点、ShiftClick不重绘整条轨迹即可修正形状核心规则可以浓缩为一句话多边形 Track 的每个关键帧必须让起始点与绕行方向跨关键帧保持一致CVAT 的自动插值才能生成平滑且轮廓正确的中间帧。若想进一步了解单帧多边形的绘制细节、固定点数、拖拽开关等选项可继续阅读 Manual drawing、编辑多边形 与 吸附工具如需从源码层面理解插值建议结合 polygon-track.ts、poly-track.ts 与 track.ts 一起阅读。【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考