tensorflow-yolov3

GitHub
3.6k 1.3k 中等 1 次阅读 今天MIT图像开发框架
AI 解读 由 AI 自动生成,仅供参考

tensorflow-yolov3 是基于 TensorFlow 框架实现的 YOLOv3 目标检测开源项目,旨在复现技术报告《YOLOv3: An Incremental Improvement》中的核心算法。它主要解决了开发者在 TensorFlow 生态中缺乏高质量、可运行 YOLOv3 代码的痛点,让用户能够轻松进行物体识别任务的推理、评估及自定义训练。

该项目非常适合计算机视觉领域的研究人员、深度学习工程师以及希望入门目标检测技术的开发者使用。其独特亮点在于提供了完整的端到端工作流:不仅支持直接加载 COCO 预训练权重进行图片和视频演示,还详细指导用户如何利用 VOC 等数据集从头训练或微调模型。此外,作者贴心地推出了基于 TensorFlow 2.0 的新版本仓库,并附带中文博客教程,帮助那些不再满足于旧版 TF1.x 的用户更顺畅地理解算法原理与实现细节。通过简洁的脚本接口,用户可以快速将模型转化为冻结图文件,高效部署于实际场景中。

使用场景

某智慧交通初创团队正致力于开发一套实时路口违章检测系统,需要在有限的算力设备上快速部署高精度的车辆与行人识别模型。

没有 tensorflow-yolov3 时

  • 框架迁移成本高:团队熟悉 TensorFlow 生态,但主流 YOLOv3 实现多基于 PyTorch 或 Darknet,被迫跨框架重写代码导致开发周期延长数周。
  • 训练流程繁琐:缺乏现成的脚本将 VOC 或自定义标注数据转换为模型所需格式,手动编写数据加载器极易出错且难以调试。
  • 预训练权重难复用:找不到直接兼容 TensorFlow 的 COCO 预训练权重,从零开始训练不仅耗时极长,且在数据量不足时收敛效果极差。
  • 部署推理复杂:模型训练完成后,缺乏一键导出冻结图(.pb 文件)的工具链,导致后续集成到生产环境时接口对接困难。

使用 tensorflow-yolov3 后

  • 原生无缝集成:直接利用纯 TensorFlow 代码库,团队成员无需学习新框架,当天即可跑通 Demo 并理解核心逻辑。
  • 数据准备自动化:通过内置的 voc_annotation.py 脚本和标准配置文件,几分钟内即可完成自定义数据集的格式转换与路径配置。
  • 迁移学习高效启动:一键下载并转换官方 COCO 预训练权重,基于微调模式训练,在少量违章样本下迅速达到高精度收敛。
  • 端到端部署顺畅:提供 freeze_graph.py 直接生成可用于生产环境的 .pb 模型文件,配合 video_demo.py 轻松实现摄像头实时流检测。

tensorflow-yolov3 通过提供完整的 TensorFlow 原生实现与开箱即用的工具链,将算法从论文复现到落地部署的门槛降至最低,显著提升了研发效率。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明 (基于 TensorFlow 1.x,通常建议使用支持 CUDA 的 NVIDIA GPU,但 README 未指定具体型号或显存要求)

内存

未说明

依赖
notes该项目基于 TensorFlow 1.x 实现(README 开头明确提到如果你讨厌 TF1.x 可以去用 TF2.0 版本)。运行前需通过 pip 安装 docs/requirements.txt 中的依赖。使用前需要下载 COCO 预训练权重文件并转换为 TF checkpoint 及冻结图 (.pb) 格式。若需训练自己的数据集,需准备特定格式的 dataset.txt 和 class.names 文件。
python未说明 (隐含需要兼容 TensorFlow 1.x 的版本,通常为 Python 3.5-3.7)
tensorflow (1.x)
numpy
opencv-python
Pillow
tensorflow-yolov3 hero image

快速开始

🆕 你在寻找用 TF2.0 实现的新版 YOLOv3 吗?

如果你非常讨厌 TensorFlow 1.x,别担心!我已经用 TF2.0 实现了一个全新的 YOLOv3 仓库,并且还写了一篇中文博客,讲解如何从零开始实现 YOLOv3 目标检测器。
代码 | 博客 | 问题

第一部分:快速入门

  1. 克隆本项目
$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git
  1. 在开始使用这些代码之前,你需要先安装一些依赖项。
$ cd tensorflow-yolov3
$ pip install -r ./docs/requirements.txt
  1. 导出已加载的 COCO 权重为 TF 检查点(yolov3_coco.ckpt)【百度网盘
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py
$ python freeze_graph.py
  1. 完成后,你会在根目录下得到一些 .pb 文件,然后运行示例脚本:
$ python image_demo.py
$ python video_demo.py # 如果使用摄像头,将 video_path 设置为 0

第二部分:训练自己的数据集

你需要准备以下两个文件:

xxx/xxx.jpg 18.19,6.32,424.13,421.83,20 323.86,2.65,640.0,421.94,20 
xxx/xxx.jpg 48,240,195,371,11 8,12,352,498,14
# 图片路径 x_min, y_min, x_max, y_max, 类别ID  x_min, y_min ,..., 类别ID 
# 确保 x_max < 宽度 并且 y_max < 高度
person
bicycle
car
...
toothbrush

2.1 在 VOC 数据集上训练

下载 PASCAL VOC 的 trainval 和测试数据:

$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

将所有这些压缩包解压到一个目录中并重命名,最终应具有如下基本结构:


VOC           # 路径: /home/yang/dataset/VOC
├── test
|    └──VOCdevkit
|        └──VOC2007 (来自 VOCtest_06-Nov-2007.tar)
└── train
     └──VOCdevkit
         └──VOC2007 (来自 VOCtrainval_06-Nov-2007.tar)
         └──VOC2012 (来自 VOCtrainval_11-May-2012.tar)
                     
$ python scripts/voc_annotation.py --data_path /home/yang/test/VOC

然后编辑 ./core/config.py 进行必要的配置:

__C.YOLO.CLASSES                = "./data/classes/voc.names"
__C.TRAIN.ANNOT_PATH            = "./data/dataset/voc_train.txt"
__C.TEST.ANNOT_PATH             = "./data/dataset/voc_test.txt"

这里有两种训练方式:

(1) 从头开始训练:
$ python train.py
$ tensorboard --logdir ./data
(2) 基于 COCO 权重进行训练(推荐):
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py --train_from_coco
$ python train.py

2.2 在 VOC 数据集上评估

$ python evaluate.py
$ cd mAP
$ python main.py -na

在 VOC2012 数据集上的 mAP 结果:

第三部分:其他实现

-YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练

-Stronger-yolo

- 在 Tensorflow 中实现 YOLO v3(TF-Slim)

- YOLOv3_TensorFlow

- 使用 YOLOv2 在 Pascal VOC2012 数据集上进行目标检测

-理解 YOLO

版本历史

v1.02018/12/31

常见问题

相似工具推荐

openclaw

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

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

stable-diffusion-webui

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

162.1k|★★★☆☆|4天前
开发框架图像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 真正成长为懂上

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

ComfyUI

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

108.1k|★★☆☆☆|昨天
开发框架图像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|★★☆☆☆|2天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|3天前
语言模型图像Agent