什么是YOLO训练集
YOLO(You Only Look Once)是一种流行的实时目标检测算法,它通过单个神经网络模型同时完成目标检测和定位。YOLO算法需要使用大量的标记数据进行训练,这些标记数据组成了YOLO数据集。
YOLO数据集是一个包含图像和相应标注的集合,用于训练和评估YOLO目标检测模型。每个图像都与其对应的目标标注信息相关联,标注信息通常以边界框(bounding box)的形式提供,表示图像中目标的位置和类别。
YOLO数据集的创建通常需要以下步骤:
- 收集大量的图像数据,这些图像应涵盖您希望在目标检测任务中处理的各种场景和物体类别。
- 对每个图像进行标注,标注目标的位置和类别信息。标注可以通过手动绘制边界框或使用特定的标注工具来完成。
- 将图像和相应的标注信息组织为数据集的形式,常见的格式包括PASCAL VOC、COCO等。
YOLO数据集通常包含了大量的图像和对应的标注信息,用于训练YOLO模型。这样的数据集可以帮助模型学习目标的外观特征和位置信息,从而能够在输入图像中准确地检测和定位目标物体。
请注意,YOLO数据集的具体内容和格式可能因不同的任务和应用而有所变化。在实际应用中,您可以根据您的需求和数据收集情况来创建或获取适合的YOLO数据集。
一、环境准备
运行cmd执行python --version
检查是否安装成功
安装pip,打开运行指令 python -m ensurepip --upgrade
打开官网,下载get_pip.py
运行cmd 运行指令python get-pip.py
运行cmd 运行指令 pip --version
显示pip版本即安装成功
根据上面获取的相机序号,在python中通过cv2操作相机设备,参考如下脚本
import cv2
def videocapture():
#调用摄像头‘0’一般是打开电脑自带摄像头,‘1’是打开外部摄像头(只有一个摄像头的情况)
cap = cv2.VideoCapture(1)
if False == cap.isOpened():
print('Error: 无法打开相机,请检查相机是否已连接?')
return
#设置图像宽高,必须与相机分辨率一致,否则无法显示
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1440)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
# 设置帧率
cap.set(cv2.CAP_PROP_FPS , 15)
# 显示图像
while True:
ret, frame = cap.read()
frame_1 = cv2.resize(frame , (640 , 512))
cv2.imshow("frame", frame_1)
input = cv2.waitKey(1)
if input == ord('q'):
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 销毁窗口
if __name__ == '__main__' :
videocapture()
二、YOLOX 安装
1、yolox源码下载
git clone https://github.com/Megvii-BaseDetection/YOLOX.git
pip3 install -v -e . # or python3 setup.py develop
2、安装 python 依赖包
安装 vcpkg (windows)
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
安装protoc、protobuf
#1 使用vcpkg 安装 protobuf
vcpkg install protobuf
#1 安装 protobuf
pip3 install protobuf==3.20.1
安装yolox依赖
cd 到 yolox 目录下,注释掉 requirements.txt 中的torch、torchvision、onnx相关行如下
pip3 install -r requirements.txt
1. 安装 cuda
cuda是Nvidia显卡配套的软件,只支持Nvidia显卡。
带Nvidia独显的电脑一般已经安装好cuda,可通过执行命令 nvidia-smi
检查
执行nvidia输出类似上述的界面,则表明已自带cuda,不需再安装cuda。
如果未自带cuda,可参考如下链接安装:
https://blog.csdn.net/m0_45447650/article/details/123704930文章来源:https://www.toymoban.com/news/detail-528154.html
三、模型训练
1. 基于预训练模型训练
# 命令格式:
# python -m tools.train -n 模型 -d 显卡数量 -b batch_size --fp16 \
# -o -c 预训练模型路径
# 模型可选 yolox-m、yolox-l、yolox-x等
# 显卡数量 不能大于实际数量
python -m tools.train -n yolox-s -d 1 -b 16 --fp16 -o -c /home/common/standard_retrained_models/yolox_s.pth
2. 不基于预训练模型训练
# 命令格式:
# python -m tools.train -n 模型 -d 显卡数量 -b batch_size --fp16
# 模型可选 yolox-m、yolox-l、yolox-x等
# 显卡数量 不能大于实际数量
python -m tools.train -n yolox-s -d 1 -b 8 --fp16
3. 分布式训练
以2台机器使用预训练模型为例文章来源地址https://www.toymoban.com/news/detail-528154.html
3.1 master 机器
# 命令格式:
# python -m tools.train -n 模型 -d 显卡数量 -b batch_size --fp16
# --dist-url tcp://mater_ip:端口 --dist-backend 后端 \
# --num_machines 机器数量 --machine_rank 机器序号
# 模型可选 yolox-m、yolox-l、yolox-x等
# 显卡数量 不能大于实际数量
# 机器序号(0代表master)
# --dist-backend 后端 \
python -m tools.train -n yolox-s -d 1 -b 16 --fp16 \
-o -c ./pretrained_models/yolox_s.pth \
--dist-backend gloo --dist-url tcp://10.0.84.234:12315 \
--num_machines 2 --machine_rank 0
3.2 slave 机器
# 命令格式:
# python -m tools.train -n 模型 -d 显卡数量 -b batch_size --fp16
# --dist-url tcp://mater_ip:端口 --dist-backend 后端 \
# --num_machines 机器数量 --machine_rank 机器序号
# 模型可选 yolox-m、yolox-l、yolox-x等
# 显卡数量 不能大于实际数量
# 机器序号(0代表master,非0值代表slave,要与实际的机器数量一致,如3台机器,0代表master,则slave是1或2)
# mater_ip:端口 要与 master保持一致
python -m tools.train -n yolox-s -d 1 -b 16 --fp16 \
-o -c ./pretrained_models/yolox_s.pth \
--dist-backend gloo --dist-url tcp://10.0.84.234:12315 \
--num_machines 2 --machine_rank 1
四、模型使用
1、图片识别
python tools/demo.py image -n yolox-s -c /path/to/your/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]
2、视频
python tools/demo.py video -n yolox-s -c /path/to/your/yolox_s.pth --path /path/to/your/video --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]
到了这里,关于相机- yolo训练集 环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!