尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

CVAT Points 图形模式实操:面部关键点标注与源码机制一文讲清

发布时间:2026/9/19 4:24:28

资讯中心
01
ARTICLE

CVAT Points 图形模式实操:面部关键点标注与源码机制一文讲清

CVAT Points 图形模式实操:面部关键点标注与源码机制一文讲清
CVAT Points 图形模式实操面部关键点标注与源码机制一文讲清【免费下载链接】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要在一批图像上给每张脸标 68 个关键点逐个散点点击既慢又容易漏点。CVATComputer Vision Annotation Tool的 Points 图形模式把“一组离散控制点”当作一个可整体管理的标注对象配合固定点数自动结束、单点编辑与单点线性插值让面部关键点标注变成一条流水线。下面按“先跑通操作、再看底层机制”的顺序带你完成从选工具到单点微调的完整流程并讲清 CVAT Points 图形模式在前端核心库中的实现依据。读完后你可以独立完成一组人脸 landmarks 标注并能解释弹窗里每个参数对应哪段源码。Points 模式是什么适用对象与区域图形的差异结论先说点集图形由 N 个独立控制点组成不封闭成面也没有面积这与矩形、多边形、椭圆等“区域型”图形是本质区别——后者描述一块区域前者只记录一组离散坐标。因此在 UI 里点集没有填充色选中和编辑都以单个点为粒度。它适合的任务包括人脸关键点眼角、鼻尖、嘴角等 landmarks身体姿态关键点pose landmarks任意只需坐标、不需要区域的目标如物体特征角点。️ 完整操作流程从选工具到单点微调选中 Points 工具。屏幕上左侧工具栏点击Points快捷键 N后弹出 “Draw new points” 窗口含三样东西——Label 标签选择器、Number of points输入框、Shape/Track两个按钮。你做什么先在 Label 里选中该点集对象的标签如 “face”。发生什么接下来落下的所有点都会挂在这个标签下。设置点数量可选。你做什么任务要求固定点数时如人脸 68 点在Number of points填入 68点数不固定就留空。发生什么填了值落点计数达到该值时绘制自动停止留空则结束时机完全由你决定。进入绘制并落点。你做什么点击Shape单帧图形或Track跨帧轨迹然后在图上逐点点击。发生什么从开始到结束落下的所有点被自动分组auto-grouping归为一个点集对象后续可整体移动而不是 N 个孤立点。结束绘制。你做什么再按一次N或点击顶部面板的Done。发生什么点集对象定稿成为可被选中、拖拽、编辑的常规标注对象。编辑与删除。你做什么删单个点——按住Ctrl点击该点或右键该点选Delete point给已有图形追加新点——按住Shift点击点集对象打开 points shape 编辑器。发生什么以单点为粒度的修改即时生效无需重画整组。导航与微调。你做什么绘制过程中用鼠标滚轮缩放、按住滚轮中键拖动平移绘制完成后可拖拽对象整体移动或单独拖动某个控制点。发生什么高分辨率大图上可以精确落点完成后的小幅纠偏也能逐点完成。速查表操作方式固定点数、达到即自动结束在Number of points填入数值进入绘制点击Shape单帧或Track轨迹结束绘制再按一次N或点顶部Done删除单个点Ctrl 点击该点或右键 →Delete point追加 / 移动点Shift 点击打开点集编辑器绘制后拖拽整体或单点绘制中导航滚轮缩放按住中键拖动平移⚙️ 机制解析①自动结束是怎么实现的结论先说步骤 2 里“填了数值就自动停”的行为由 UI 层一次数值钳制和画布层一次计数判断共同完成两层各一行关键代码。UI 层在 draw-shape-popover.tsxPOLYGON、POLYLINE、POINTS三种图形类型共用同一个Number of points输入框输入值先经钳制再取整——const clampedValue Math.floor( clamp(value, minimumPoints, Number.MAX_SAFE_INTEGER), );它对应到界面上的行为minimumPoints按图形类型取值Points 的下限是 1所以弹窗里最小只能输入 1且你看到的值永远是整数。画布层在 drawHandler.ts进入绘制时处理器直接从配置读出“本次要落下多少个点”——let size this.drawData.shapeType cuboid ? 4 : this.drawData.numberOfPoints;点击计数达到这个size时绘制流程直接判定完成这正是操作文档中 “drawing will be stopped automatically” 的实现来源留空时没有计数上限于是回到手动结束。另外绘制中每个已落点都会以controlPointsSize / scale为半径画成圆形控制点——除以画布缩放系数后无论放大缩小控制点的视觉大小都保持稳定这就是“绘制中可缩放平移”体验的技术基础。 机制解析②PointsShape 校验、命中检测与 PointsTrack 插值结论先说点集对象在模型层是“一组点”而非“一个面”校验、命中、插值三处逻辑都围绕“单点”粒度展开。其一点数下限校验。object-utils.ts 中的checkNumberOfPoints规定POINTS类型至少 1 个点否则抛出DataErrorpoints-shape.ts 的PointsShape构造函数对每个新图形都会调用它。这与弹窗里minimumPoints的最小值 1 互相呼应——少于 1 个点根本构不成合法对象。其二命中检测语义。PointsShape.distance计算的是 (x, y) 到图形中所有点的最小欧氏距离而不是到边界的距离。由于点集没有“面”点击命中、选中、删除自然都以单点为粒度这解释了步骤 5 中为什么可以精确地Ctrl 点击删掉某一个点而不会误伤整组。其三轨迹插值。步骤 3 若选的是Track得到的是 points-track.ts 的PointsTrack构造函数会对每个关键帧图形执行checkNumberOfPoints保证点数一致中间帧则由interpolatePosition处理if (leftPosition.points.length 2 rightPosition.points.length 2) { return { points: leftPosition.points.map( (value, index) value (rightPosition.points[index] - value) * offset,points数组按 x, y 交替存储长度 2 即恰好 1 个点——只有左右两个关键帧都恰好 1 个点时才按offset做线性插值否则中间帧直接复制左关键帧的位置。这正是官方文档 liner-interpolation-with-one-point.md 中“单点线性插值”用法的源码依据把Number of points设为 1、选Track在两个关键帧上各落一个点中间帧就会被自动填充多点点集轨迹则不适用此行为。速记与参考文件要点速记自动结束UI 层把点数钳制为整数Points 最小 1画布层拿numberOfPoints直接当落点计数达到即完成。单点粒度编辑命中检测取到各点的最小距离删除、追加、微调都以单点为单位整组对象仍可整体拖拽。单点插值条件左右关键帧各恰好 1 个点时PointsTrack才做线性插值多点点集轨迹的中间帧复制左关键帧。参考文件操作文档points-in-shape-mode.md、liner-interpolation-with-one-point.md图形模型points-shape.ts、points-track.ts、object-utils.ts弹窗与画布draw-shape-popover.tsx、drawHandler.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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。