Skip to content

YOLOv8 源代码库的下载与使用指南

字数
1076 字
阅读时间
5 分钟

1. 理解为什么需要源代码库

当你通过 pip install ultralytics 安装库时,你得到的是一个编译好的、通常是精简过的 Python 包。这个包可以直接在你的项目中调用,但它不方便你直接修改其内部的 .py 文件。

为了实现我们之前讨论的,如集成 CBAM、Involution、RepVGG 等模块,你需要直接修改 ultralytics 库的原始 .py 文件(例如 ultralytics/nn/modules/block.pyultralytics/nn/tasks.py)。这就需要你下载完整的源代码库。

2. 源代码库的存放位置建议

为了保持你现有 yolo_project 的整洁和独立性,强烈建议将 ultralytics 的源代码库放在你 yolo_project 目录的同级目录,而不是其内部。

例如,如果你的 yolo_project 位于 ~/my_projects/yolo_project/,那么 ultralytics 源代码库可以放在 ~/my_projects/ultralytics/

my_projects/
├── yolo_project/             # 你现有的项目目录
│   ├── main.py
│   ├── data/
│   └── ...
└── ultralytics/              # 新下载的 YOLOv8 源代码库
    ├── ultralytics/
    │   ├── cfg/
    │   ├── nn/
    │   └── ...
    ├── docs/
    ├── examples/
    └── ...

这样做的好处是:

  • 清晰的项目结构:你的应用代码和依赖库的源代码是分开的。
  • 版本控制独立:你可以独立地管理 yolo_projectultralytics 源代码库的版本。
  • 避免冲突:防止在 yolo_project 内部修改 ultralytics 源码时,不小心破坏了你自己的项目结构。

3. 如何下载和使用源代码库

3.1 下载源代码库

使用 Git 克隆 ultralytics 的官方 GitHub 仓库。

  1. 打开终端或命令行工具。
  2. 导航到你希望存放所有项目的父目录(例如 ~/my_projects/):
    bash
    cd ~/my_projects/ # 替换为你的实际路径
  3. 克隆 ultralytics 仓库
    bash
    git clone https://github.com/ultralytics/ultralytics.git
    这将在 ~/my_projects/ 目录下创建一个名为 ultralytics 的文件夹,其中包含了完整的 YOLOv8 源代码。

3.2 使用源代码库(可编辑模式安装)

为了让你的 Python 环境使用你本地下载的 ultralytics 源代码,而不是之前 pip 安装的那个版本,你需要将本地源代码库安装为“可编辑模式”(editable mode)。

  1. 导航到刚刚克隆的 ultralytics 源代码目录
    bash
    cd ultralytics
  2. 安装为可编辑模式
    bash
    pip install -e .
    • -e--editable 参数告诉 pip,不要将库文件复制到 site-packages 目录,而是创建一个链接指向你当前的源代码目录。
    • 这意味着你对 ultralytics 目录下的任何 .py 文件所做的修改,都会立即反映在你的 Python 环境中,无需重新安装。

3.3 验证安装

你可以通过以下方式验证你的 yolo_project 是否正在使用本地的 ultralytics 源代码:

  1. ultralytics 源代码中做个小改动: 例如,打开 ultralytics/nn/modules/block.py 文件,在某个类的 __init__ 方法中添加一行简单的 print 语句:
    python
    # ultralytics/nn/modules/block.py
    class Conv(nn.Module):
        def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):
            super().__init__()
            print("Using local ultralytics Conv module!") # <-- 添加这一行
            self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)
            self.bn = nn.BatchNorm2d(c2)
            self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity())
  2. 运行你的 yolo_project 中的 main.py
    bash
    cd ~/my_projects/yolo_project/ # 回到你的项目目录
    python main.py
    如果你的控制台输出了 "Using local ultralytics Conv module!",则说明你的 yolo_project 已经成功地在使用你本地修改过的 ultralytics 源代码了。

3.4 代码管理(重要!)

当你开始修改 ultralytics 源代码时,请务必在 ultralytics 目录下使用 Git 进行版本控制。

  • 创建新分支:在进行任何修改之前,最好从 mainmaster 分支创建一个新的特性分支,例如 git checkout -b feature/hic-yolov8-integration
  • 频繁提交:每次完成一个小的、可测试的修改时,都进行提交 (git add .git commit -m "Your commit message")。
  • 回溯与合并:这样可以方便你回溯到之前的版本,或者在未来将你的修改合并到 ultralytics 的更新版本中。

贡献者

The avatar of contributor named as RainbowRain9 RainbowRain9
The avatar of contributor named as Cai Hongyu Cai Hongyu

文件历史

撰写