Ubuntu 20.04 ARM64 YOLOv5完整实现指南

Ubuntu 20.04 ARM64 YOLOv5完整实现指南

一、环境配置

1.1 系统更新与基础依赖

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装基础依赖
sudo apt install -y \
    git \
    wget \
    curl \
    vim \
    build-essential \
    cmake \
    pkg-config \
    libjpeg-dev \
    libtiff5-dev \
    libpng-dev \
    libavcodec-dev \
    libavformat-dev \
    libswscale-dev \
    libv4l-dev \
    libxvidcore-dev \
    libx264-dev \
    libgtk-3-dev \
    libatlas-base-dev \
    gfortran \
    python3-dev \
    python3-pip \
    python3-venv

1.2 Python环境配置

# 创建虚拟环境
python3 -m venv yolov5_env
source yolov5_env/bin/activate

# 升级pip
pip install --upgrade pip setuptools wheel

# 安装必要的Python包
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose

1.3 PyTorch安装(ARM64专用)

# 对于ARM64架构,需要安装预编译的PyTorch版本
# 检查CUDA是否可用(如果有GPU)
python3 -c "import torch; print(torch.cuda.is_available())"

# 安装CPU版本的PyTorch(ARM64)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

# 验证安装
python3 -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

1.4 OpenCV安装

# 方法1:pip安装(推荐)
pip install opencv-python opencv-python-headless

# 方法2:源码编译(如需要特定功能)
# git clone https://github.com/opencv/opencv.git
# cd opencv && mkdir build && cd build
# cmake -D CMAKE_BUILD_TYPE=RELEASE \
#       -D CMAKE_INSTALL_PREFIX=/usr/local \
#       -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
#       -D PYTHON_EXECUTABLE=$(which python3) ..
# make -j$(nproc)
# sudo make install

1.5 YOLOv5环境准备

# 克隆YOLOv5仓库
git clone https://github.com/ultralytics/yolov5.git
cd yolov5

# 安装YOLOv5依赖
pip install -r requirements.txt

# 安装额外依赖
pip install tensorboard seaborn thop

二、模型训练

2.1 数据准备

2.1.1 数据集结构
datasets/
└── custom_dataset/
    ├── images/
    │   ├── train/
    │   ├── val/
    │   └── test/
    └── labels/
        ├── train/
        ├── val/
        └── test/
2.1.2 创建数据集配置文件
# custom_dataset.yaml
path: /path/to/your/datasets/custom_dataset
train: images/train
val: images/val
test: images/test

nc: 3  # 类别数量
names: ['class1', 'class2', 'class3']  # 类别名称
2.1.3 标签格式转换脚本
# convert_labels.py
import os
import json
from pathlib import Path

def convert_coco_to_yolo(coco_json_path, output_dir):
    """将COCO格式转换为YOLO格式"""
    with open(coco_json_path, 'r') as f:
        data = json.load(f)
    
    # 创建类别ID映射
    category_mapping = {
   cat['id']: idx for idx, cat in enumerate(data['categories'])}
    
    # 获取图像信息
    images = {
   img['id']: img for img in data['images']}
    
    # 处理标注
    for ann in data['annotations']:
        img_id = ann['image_id']
        img_info = images[img_id]
        
        # 计算YOLO格式的坐标
        x, y, w, h = ann['bbox']
        img_w, img_h = img_info['width'], img_info['height']
        
        # 转换为相对坐标
        x_center = (x + w/2) / img_w
        y_center = (y + h/2) / img_h
        width = w / img_w
        height = h / img_h
        
        # 保存YOLO格式标签
        label_file = os.path.join(output_dir, f"{
     img_info['file_name'].split('.')[0]}.txt")
        with open(label_file, 'a') as f:
            f.write(f"{
     category_mapping[ann['category_id']]} {
     x_center} {
     y_center} {
     width} {
     height}\n")

# 使用示例
# convert_coco_to_yolo('annotations.json', 'labels/train/')

2.2 模型训练配置

2.2.1 创建训练脚本
# train_custom.py
import torch
import yaml
from yolov5.train import run

def main():
    # 训练参数配置
    opt = {
   
        'weights': 'yolov5s.pt',  # 预训练权重
        'cfg': '',  # 模型配置文件
        'data': 'custom_dataset.yaml',  # 数据集配置
        'hyp': 'data/hyps/hyp.scratch-low.yaml',  # 超参数配置
        'epochs': 100,  # 训练轮数
        'batch_size': 16,  # 批次大小(ARM64建议较小)
        'imgsz': 640,  # 输入图像尺寸
        'rect': False,  # 矩形训练
        'resume': False,  # 是否恢复训练
        'nosave': False,  # 是否保存模型
        'noval': False,  # 是否跳过验证
        'noautoanchor': False,  # 是否禁用自动锚点
        'evolve': None,  # 进化训练
        'bucket': '',  # gsutil bucket
        'cache': None,  # 图像缓存
        'image_weights'
要在Ubuntu上配置YoloV5环境,您可以按照以下步骤进行操作: 1. 首先,您需要下载YoloV5的代码。可以通过在终端中运行以下命令来克隆代码库: ```shell git clone -b v7.0 https://github.com/ultralytics/yolov5.git ``` 这将克隆YoloV5的代码库到您的本地。 2. 接下来,您需要设置Python环境。请确保您已经安装了Python 3.7或更高版本。您可以通过运行以下命令来检查您的Python版本: ```shell python3 --version ``` 如果您没有正确的Python版本,您可以使用以下命令安装Python: ```shell sudo apt update sudo apt install python3 ``` 3. 安装必要的依赖项。在终端中导航到YoloV5代码库的根目录,并运行以下命令来安装依赖项: ```shell cd yolov5 pip install -r requirements.txt ``` 这将安装YoloV5所需的所有依赖项。 4. 配置YoloV5的环境变量。在终端中打开您的bash配置文件(通常是`.bashrc`或`.bash_profile`),并添加以下行: ```shell export PYTHONPATH=$PWD ``` 保存并关闭文件后,运行以下命令使更改生效: ```shell source ~/.bashrc ``` 5. 现在,您已经成功配置了YoloV5的环境。可以使用以下命令来训练和部署模型: ```shell python train.py --data data/coco.yaml --cfg models/yolov5s.yaml --weights '' --batch-size 16 ``` 这将使用COCO数据集的配置文件`data/coco.yaml`,模型配置文件`models/yolov5s.yaml`以及空的权重文件进行模型的训练。 请注意,这只是YoloV5环境配置的基本步骤,具体的安装过程可能会因个人环境和需求而有所不同。如果您需要更详细的安装指南,请参考YoloV5的官方文档和GitHub代码库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Window和Ubuntu配置YoloV5(GPU)环境简易总结版](https://blog.csdn.net/qq_43234191/article/details/130959190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Ubuntu20.04部署YOLOv5](https://blog.csdn.net/qq_40672115/article/details/130283933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzcufo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值