跳转至

👁️ 目标检测 (Transformers.js)

在这个示例中,我们将使用 Transformers.js 实现一个目标检测工具。该工具可以在图像中检测和定位多个对象,并为它们分类,同时提供边界框和置信度分数。

基本原理

目标检测是计算机视觉中的一项基础任务,与图像分类不同,它不仅要识别图像中存在的对象类别,还需要确定每个对象的精确位置(通常以边界框的形式表示)。现代目标检测方法主要基于深度学习模型,如YOLO(You Only Look Once)、SSD(Single Shot Detector)、Faster R-CNN等。

Transformers.js 使我们能够在浏览器中运行预训练的目标检测模型,无需服务器支持,完全在客户端进行处理,保护隐私并降低延迟。

交互式AI工具

以下是一个使用 Transformers.js 实现目标检测的基本示例:

如何使用

  1. 打开工具后,模型会自动加载(首次加载可能需要一些时间)
  2. 上传图像或选择预设的示例图像
  3. 调整置信度阈值滑块(可选,默认为0.5或50%)
  4. 点击"检测目标"按钮
  5. 查看结果:图像上会显示带有标签和置信度的边界框,下方列出了检测到的所有对象

支持的功能

  • 多目标检测 - 同时检测和定位图像中的多个对象
  • 边界框可视化 - 在图像上直观显示检测到的对象位置
  • 中文标签 - 支持常见检测对象的中文显示
  • 置信度调整 - 使用滑块控制显示检测结果的置信度阈值
  • 实时过滤 - 根据置信度阈值实时筛选显示的检测结果
  • 颜色编码 - 不同类别的对象使用不同颜色的边界框,便于区分

支持的模型

在上面的示例中,我们使用了 yolos-tiny 模型,这是一个基于Vision Transformer的目标检测模型。它具有以下特点:

  • 可以检测80种常见物体类别(基于COCO数据集)
  • 相对轻量级,适合在浏览器中运行
  • 采用YOLO(You Only Look Once)检测架构的变体
  • 结合了Transformer的全局注意力机制
  • 在速度和准确性之间取得较好平衡

应用场景

  • 安全监控 - 检测摄像头画面中的人或异常物体
  • 零售分析 - 分析商店货架上的商品摆放和库存
  • 交通监控 - 检测道路上的车辆、行人和交通标志
  • 智能家居 - 帮助家用机器人识别家中的物品
  • 自动驾驶 - 识别道路环境中的各种元素
  • 辅助视觉 - 帮助视障人士了解周围环境
  • 内容审核 - 自动检测和标记图像中的特定内容
  • 农业监测 - 识别农作物和病虫害

进阶应用

  • 目标跟踪 - 在视频流中跟踪检测到的对象
  • 实例分割 - 不仅检测对象位置,还生成精确的轮廓
  • 目标计数 - 自动统计图像中特定类型对象的数量
  • 姿态估计 - 检测人体关键点和姿势
  • 行为识别 - 基于检测结果分析人物行为
  • 图像搜索 - 通过检测结果对图像进行索引和检索

这个目标检测工具展示了如何使用 Transformers.js 在浏览器中实现高级计算机视觉功能,无需服务器或云服务,完全在客户端进行处理,保护用户隐私并提供即时的检测结果。