AS-One

GitHub
612 106 较难 1 次阅读 1个月前GPL-3.0图像开发框架
AI 解读 由 AI 自动生成,仅供参考

AS-One 是一款专为计算机视觉任务打造的模块化 Python 库,旨在让目标检测、图像分割、姿态估计及多目标追踪变得极其简单。它像一个统一的“工具箱”,将 YOLO 系列(涵盖 v5 至最新的 v9 及 R、X 版本)与强大的跟踪算法(如 ByteTrack、DeepSORT、NorFair)以及 SAM(Segment Anything Model)无缝集成。

过去,开发者往往需要为不同版本的模型编写复杂的适配代码,或花费大量时间处理格式转换。AS-One 完美解决了这一痛点,用户仅需不到 10 行代码,即可灵活调用 ONNX、PyTorch 或 CoreML 等多种格式的模型,快速实现从检测到追踪的全流程部署。其高度模块化的设计允许用户像搭积木一样,自由组合不同的检测器与追踪器,极大提升了开发效率与实验灵活性。

这款工具非常适合计算机视觉开发者、算法研究人员以及希望快速验证原型的工程师使用。无论你是需要构建实时监控系统,还是进行学术算法对比,AS-One 都能提供稳定且高效的支持。通过屏蔽底层繁琐的配置细节,它让用户能更专注于核心业务逻辑与创新,是探索 YOLO 生态与前沿视觉技术的得力助手。

使用场景

某智慧物流团队正在开发一套自动化分拣系统,需要实时识别传送带上的包裹并追踪其运动轨迹,以控制机械臂进行精准抓取。

没有 AS-One 时

  • 代码冗余严重:开发者需分别下载 YOLOv5/v8 等不同版本的官方仓库,为每个模型编写独立的加载与推理脚本,导致项目结构混乱。
  • 算法集成困难:若想将检测模型与 ByteTrack 或 DeepSORT 等追踪器结合,需手动对齐数据格式并调试接口,往往需要数百行胶水代码。
  • 环境部署繁琐:不同模型依赖特定的 PyTorch 版本或 ONNX 运行时,频繁切换环境极易引发依赖冲突,配置 GPU 加速更是耗时耗力。
  • 迭代验证缓慢:尝试新模型(如最新的 YOLOv9)或分割任务(SAM)时,重新搭建流程需数天时间,严重拖慢原型验证进度。

使用 AS-One 后

  • 统一调用接口:仅需不到 10 行代码即可灵活切换 YOLOv5 至 v9 等多种模型,无需关心底层实现差异,项目结构清晰简洁。
  • 模块化即插即用:内置多种追踪器与检测模型的预置组合,一键启用“检测 + 追踪”或“分割 + 姿态估计”流水线,大幅降低集成门槛。
  • 跨平台高效运行:自动适配 ONNX、PyTorch 及 CoreML 后端,屏蔽底层驱动与环境配置细节,让团队能专注于业务逻辑而非环境调试。
  • 快速技术演进:无缝支持最新发布的 YOLOv9 和 SAM 模型,团队可在几小时内完成新算法的性能测试与对比,显著加速产品迭代。

AS-One 通过高度模块化的设计,将复杂的计算机视觉工程链路简化为简单的 API 调用,让开发者从繁琐的底层适配中解放出来,专注于核心业务价值的创造。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需(支持 CPU 模式)
  • 若使用 GPU,需安装 NVIDIA 驱动,文档示例中指定了 CUDA 11.3 (cu113) 环境
内存

未说明

依赖
notesWindows 用户必须从源代码安装(需先安装 MS Build Tools 和 Git);Linux/macOS 可直接通过 pip 安装。支持 YOLOv5/v7/v8/v9、SAM、ByteTrack、DeepSORT 等模型。MacOS 支持 Apple Silicon (M1/M2)。若使用 GPU,Linux/Windows 需手动指定 cu113 版本的 PyTorch。
python未说明 (根据 PyTorch 和依赖库推断建议 Python 3.8+)
torch
torchvision
onnxruntime-gpu==1.12.1
typing_extensions==4.7.1
super-gradients==3.1.3
numpy
Cython
lap
cython-bbox
AS-One hero image

快速开始

AS-One v2:用于 YOLO 目标检测、分割、跟踪与姿态估计的模块化库

👋 你好

==更新:ASOne v2 现已发布!我们已集成 YOLOV9 和 SAM==

AS-One 是一个 Python 封装库,将多种目标检测和跟踪算法集中于一处。不同的跟踪器,如 ByteTrackDeepSORTNorFair,只需少量代码即可与不同版本的 YOLO 集成。 该 Python 封装库提供 ONNXPyTorchCoreML 格式的 YOLO 模型。我们计划在后续版本的 YOLO 发布时为其提供支持。

这是一站式库,满足您大部分计算机视觉需求。

如果您想深入学习 YOLO 目标检测与跟踪,欢迎查看我们的 课程项目

观看分步教程 🤝

💻 安装

🔥 先决条件
pip install asone

对于 Windows 机器,您需要从源代码安装才能运行 asone 库。请参阅下方的 👉 从源代码安装 部分,了解在 Windows 上的安装步骤。

👉 从源代码安装

💾 克隆仓库

导航到您选择的空文件夹。

git clone https://github.com/augmentedstartups/AS-One.git

进入 AS-One 目录:

cd AS-One

👉 对于 Linux
python3 -m venv .env
source .env/bin/activate

pip install -r requirements.txt

# 对于 CPU
pip install torch torchvision
# 对于 GPU
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113
👉 对于 Windows 10/11
python -m venv .env
.env\Scripts\activate
pip install numpy Cython
pip install lap
pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox

pip install asone onnxruntime-gpu==1.12.1
pip install typing_extensions==4.7.1
pip install super-gradients==3.1.3
# 对于 CPU
pip install torch torchvision

# 对于 GPU
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113
或
pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
👉 对于 macOS
python3 -m venv .env
source .env/bin/activate


pip install -r requirements.txt

# 对于 CPU
pip install torch torchvision

快速入门 🏃‍♂️

在示例视频上使用跟踪器。

import asone
from asone import ASOne

model = ASOne(tracker=asone.BYTETRACK, detector=asone.YOLOV9_C, use_cuda=True)
tracks = model.video_tracker('data/sample_videos/test.mp4', filter_classes=['car'])

for model_output in tracks:
    annotations = ASOne.draw(model_output, display=False)

Google Colab 中运行 💻

在 Colab 中打开

示例代码片段 📃

6.1 👉 目标检测
import asone
from asone import ASOne

model = ASOne(detector=asone.YOLOV9_C, use_cuda=True) # 设置 use_cuda 为 False 以使用 CPU
vid = model.read_video('data/sample_videos/test.mp4')

for img in vid:
    detection = model.detecter(img)
    annotations = ASOne.draw(detection, img=img, display=True)

运行 asone/demo_detector.py 来测试检测器。

# 在 GPU 上运行
python -m asone.demo_detector data/sample_videos/test.mp4

# 在 CPU 上运行
python -m asone.demo_detector data/sample_videos/test.mp4 --cpu
6.1.1 👉 使用自定义训练的权重进行检测

只需提供权重文件的路径,即可使用基于自定义数据训练的检测器模型的自定义权重。

import asone
from asone import ASOne

model = ASOne(detector=asone.YOLOV9_C, weights='data/custom_weights/yolov7_custom.pt', use_cuda=True) # 设置 use_cuda 为 False 以使用 CPU
vid = model.read_video('data/sample_videos/license_video.mp4')

for img in vid:
    detection = model.detecter(img)
    annotations = ASOne.draw(detection, img=img, display=True, class_names=['license_plate'])
6.1.2 👉 更改检测器模型

只需更改检测器标志即可切换检测器。这些标志在 基准测试 表格中列出。

  • 我们的库现在支持在 macOS 上使用 YOLOv5、YOLOv7 和 YOLOv8。
# 更改检测器
model = ASOne(detector=asone.YOLOX_S_PYTORCH, use_cuda=True)

# 对于 macOS
# YOLO5
model = ASOne(detector=asone.YOLOV5X_MLMODEL)
# YOLO7
model = ASOne(detector=asone.YOLOV7_MLMODEL)
# YOLO8
model = ASOne(detector=asone.YOLOV8L_MLMODEL)
6.2 👉 目标跟踪

在示例视频上使用跟踪器。

import asone
from asone import ASOne

# 实例化 Asone 对象
model = ASOne(tracker=asone.BYTETRACK, detector=asone.YOLOV9_C, use_cuda=True) # 设置 use_cuda=False 以使用 CPU
tracks = model.video_tracker('data/sample_videos/test.mp4', filter_classes=['car'])

# 遍历跟踪结果,获取每一帧的输出
for model_output in tracks:
    annotations = ASOne.draw(model_output, display=True)
    # 在这里可以对边界框进行任何操作

[注意] 可以通过在 ASOne 类中提供检测器模型权重文件的路径来使用自定义权重。

6.2.1 👉 更改检测器和跟踪模型

只需更改 tracker 标志即可更换跟踪器。

标志在 benchmark 表格中提供。

model = ASOne(tracker=asone.BYTETRACK, detector=asone.YOLOV9_C, use_cuda=True)
# 更换跟踪器
model = ASOne(tracker=asone.DEEPSORT, detector=asone.YOLOV9_C, use_cuda=True)
# 更改检测器
model = ASOne(tracker=asone.DEEPSORT, detector=asone.YOLOX_S_PYTORCH, use_cuda=True)

运行 asone/demo_tracker.py 来测试检测器。

# 在 GPU 上运行
python -m asone.demo_tracker data/sample_videos/test.mp4

# 在 CPU 上运行
python -m asone.demo_tracker data/sample_videos/test.mp4 --cpu
6.3 👉 分割
import asone
from asone import ASOne

model = ASOne(detector=asone.YOLOV9_C, segmentor=asone.SAM, use_cuda=True) # 设置 use_cuda=False 以使用 CPU
tracks = model.video_detecter('data/sample_videos/test.mp4', filter_classes=['car'])

for model_output in tracks:
    annotations = ASOne.draw_masks(model_output, display=True) # 绘制分割掩码
6.4 👉 文本检测

在图像上检测文本的示例代码

# 检测并识别文本
import asone
from asone import ASOne, utils
import cv2

model = ASOne(detector=asone.CRAFT, recognizer=asone.EASYOCR, use_cuda=True) # 将 use_cuda 设置为 False 以使用 CPU
img = cv2.imread('data/sample_imgs/sample_text.jpeg')
results = model.detect_text(img)
annotations = utils.draw_text(img, results, display=True)

在文本上使用跟踪器

import asone
from asone import ASOne

# 实例化 Asone 对象
model = ASOne(tracker=asone.DEEPSORT, detector=asone.CRAFT, recognizer=asone.EASYOCR, use_cuda=True) # 设置 use_cuda=False 以使用 CPU
tracks = model.video_tracker('data/sample_videos/GTA_5-Unique_License_Plate.mp4')

# 遍历跟踪结果,获取每一帧的输出
for model_output in tracks:
    annotations = ASOne.draw(model_output, display=True)

    # 在这里可以对边界框进行任何操作

运行 asone/demo_ocr.py 来测试 OCR。

# 在 GPU 上运行
 python -m asone.demo_ocr data/sample_videos/GTA_5-Unique_License_Plate.mp4

# 在 CPU 上运行
 python -m asone.demo_ocr data/sample_videos/GTA_5-Unique_License_Plate.mp4 --cpu
6.5 👉 姿态估计

在图像上估计姿态的示例代码

# 姿态估计
import asone
from asone import PoseEstimator, utils
import cv2

model = PoseEstimator(estimator_flag=asone.YOLOV8M_POSE, use_cuda=True) # 设置 use_cuda=False 以使用 CPU
img = cv2.imread('data/sample_imgs/test2.jpg')
kpts = model.estimate_image(img)
annotations = utils.draw_kpts(kpts, image=img, display=True)
  • 现在可以使用 Yolov8 和 Yolov7-w6 进行姿态估计。标志在 benchmark 表格中提供。
# 视频中的姿态估计
import asone
from asone import PoseEstimator, utils

model = PoseEstimator(estimator_flag=asone.YOLOV7_W6_POSE, use_cuda=True) # 设置 use_cuda=False 以使用 CPU
estimator = model.video_estimator('data/sample_videos/football1.mp4')
for model_output in estimator:
    annotations = utils.draw_kpts(model_output)
    # 在这里可以对关键点进行任何操作

运行 asone/demo_pose_estimator.py 来测试姿态估计。

# 在 GPU 上运行
 python -m asone.demo_pose_estimator data/sample_videos/football1.mp4

# 在 CPU 上运行
 python -m asone.demo_pose_estimator data/sample_videos/football1.mp4 --cpu

要使用 Docker 设置 ASOne,请按照 docker setup 中的说明操作🐳

待办事项 📝

  • 初始发布
  • 导入训练好的模型
  • 进一步简化代码
  • 更新至 YOLOv8
  • OCR 和计数功能
  • OCSORT、StrongSORT、MoTPy
  • M1/2 Apple Silicon 兼容性
  • YOLOv7/v8 姿态估计
  • YOLO-NAS
  • 更新至 YOLOv8.1
  • YOLOV9
  • SAM 集成
提供方 💼 : 维护方 👨‍💻 :
AugmentedStarups AxcelerateAI

版本历史

AS-Onev12023/06/20

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

154.3k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|3天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|4天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架