VIA 图像标注工具实战:从打开浏览器到导出标注的完整指南
2026/8/21 21:38:57 网站建设 项目流程

VIA 图像标注工具实战:从打开浏览器到导出标注的完整指南

【免费下载链接】via(MIRROR) see https://gitlab.com/vgg/via/项目地址: https://gitcode.com/gh_mirrors/via/via

VIA(VGG Image Annotator)是牛津大学视觉几何组(VGG)出品的浏览器端手动图像标注工具,支持对图片、音频、视频做区域标注和属性标注。整套软件打包成一个小于 400 KB 的独立 HTML 页面,无需安装任何服务端环境,适合刚开始接触数据标注的研究者和开发者。

项目定位与核心能力

VIA 要解决的问题很具体:在准备训练数据时,需要把"图里有什么、在哪里、是什么颜色/类别"这类信息人工整理成结构化数据。它把这件事压缩到浏览器里完成,不依赖外部库,也不依赖网络。

仓库按三个大版本组织,能力各有侧重:

  • 图像区域标注:矩形、圆形、椭圆、多边形、点五种形状,配合区域属性(如namecolour)和文件属性记录标注结果
  • 项目与元数据管理:所有标注存为一个项目,可整体导出、再导入另一台机器
  • 时序标注:v3 版支持在音频/视频上划时间片段,并在视频帧上同时做空间区域标注(见 src/js/_via_temporal_segmenter.js)
  • 批量导入导出:支持 CSV、JSON、COCO 格式,也支持把整个项目打包成一个文件
  • 零依赖离线运行:纯 HTML/CSS/Javascript 实现,单文件即可离线打开

环境准备与启动

参考文章里"pip 装依赖、跑 Python 服务"的流程其实用不上——VIA 不需要 Python,也不需要 Flask,打开 HTML 文件就是启动它。完整流程只有三步:

  1. 克隆仓库到本地:
git clone https://gitcode.com/gh_mirrors/via/via
  1. 进入目录。只标图片的话,用 v1 版单文件入口via-1.x.y/index.html;要标视频、音频则用via-3.x.y/src/html/下对应的_via_video_annotator.html_via_audio_annotator.html

  2. 浏览器直接打开该 HTML 文件(双击或拖进去均可)。如果想让示例数据走相对路径加载,可以起一个静态文件服务器:

cd via && python3 -m http.server 8080

然后在浏览器访问http://localhost:8080/via-1.x.y/index.html。界面左上角是菜单栏(Home / Image / Annotation / Attributes / Settings / Help),右侧是图片画布,标注操作都在这两个区域完成。

标注工作流实操

以仓库自带的天鹅图为例,走一遍完整的标注流程:

  1. 导入图片:在 Image 菜单里选择本地图片。仓库自带示例可对照练习:via-2.x.y/data/basic/下的天鹅图、via-2.x.y/data/face/下的人物图。
  2. 设置属性:在 Attributes 菜单里给区域加属性。截图里演示了两个属性:name(标注对象名)和colour(颜色),每张图的每个区域都要填。这一步决定了导出的 CSV 有哪些列,建议标注前一次性定好。
  3. 绘制区域:在左侧工具区选中形状(矩形 / 圆形 / 椭圆 / 多边形 / 点),在图片上拖拽绘制。图中 Big Ben 用了多边形、公交车用矩形、船用了椭圆,同一张图可以自由混用形状。
  4. 修正与补充:点击已画好的区域可以移动、改大小、删除;属性填错直接在表格里改即可。
  5. 导出:在 Annotation 菜单选择导出格式,结果会以下载文件的形式保存到你电脑上。

做视频标注时界面会多出一条时间轴区域:上方是视频画面,下方是 timeline 和元数据面板,可以一边划时间片段一边在某一帧上画框。

数据导出与团队协作

导出时有三种常见选择:

  • CSV:一行一个区域,列包含文件名、形状、坐标和所有属性,Excel 直接打开就能看,适合人工核对
  • JSON:保留完整元数据,是程序化处理的默认格式
  • COCO 格式:仓库自 2.0.8 版起支持,导出后可以直接喂给主流检测训练框架
  • 项目文件:把整个项目(图片清单 + 全部标注 + 属性定义)打包成一个文件,是团队流转标注成果最稳妥的方式

多人协作的典型链路是:A 导出项目文件发给 B,B 在本地 VIA 里导入后接着标;两边各自做完后,再用 scripts/io/merge_via2_projects.py 把两个项目文件合并成一份。注意 COCO 导出对属性类型有限制(只支持单选类属性),如果项目里放了自定义文本属性,导出时留意界面上的提示。

典型应用场景

  • 医学影像:MRI 狭窄程度标注器,见 projects/mri_stenosis_annotator/
  • 视频目标跟踪:在连续帧上给同一目标(如人脸)画跟踪框并打 track 属性
  • 语音活动标注:在音频上切分说话人片段,配合音频标注器使用
  • 影视片段切分:subtitle_annotator 示例展示了按镜头分组、给片段打属性的完整做法,见 projects/subtitle_annotator/

上手建议

  • 先小批量试跑:拿仓库里via-2.x.y/data/face/的几张示例图把"建属性 → 画框 → 导出"完整走一遍,确认格式符合下游需求,再上全量图片。
  • 标注前锁定属性表:属性列决定了 CSV 结构,中途加列会导致前后导出的文件列不一致,返工成本高。
  • 导出后人工抽检:随机打开 CSV 对照原图核对坐标和属性值,确认没问题再交付训练流程。

结语

熟悉基本流程后,可以进一步看看仓库里的 demo 页面和 v3 音视频标注器,把标注范围从单张图片扩展到整个视频片段。

【免费下载链接】via(MIRROR) see https://gitlab.com/vgg/via/项目地址: https://gitcode.com/gh_mirrors/via/via

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询