分类 默认分类 下的文章
yolov5 目标检测训练学习笔记
yolov5
实操的时候老是提示找不到标签或者图片什么的,结果需要把图片文以及标签txt文件放在同一个目录中,不能分开放,因为yaml配置文件中我还没有找到可以分开配置路径的方法,暂时只能放到一个目录中,我的配置文件:
train: ../data/train_img
val: ../data/val_img
nc: 1 # 类别数量,这里是气球
names: ['balloon'] # 类别名称训练数据集下载
先保存到自己的数据集,点击下载数据ZIP文件
https://openbayes.com/console/public/datasets/sFP84BCSkDW/2/overview
处理图片和标签数据集中的数据,转成yolo使用的格式,保存到txt文件中
data_init.py:
import json
import os
from PIL import Image
def convert_json_to_yolo(json_folder, img_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for json_file in os.listdir(json_folder):
if json_file.endswith('.json'):
with open(os.path.join(json_folder, json_file)) as f:
data = json.load(f)
# 假设图片名称与JSON文件名称相同,但扩展名不同
image_name = json_file.replace('.json', '.jpg') # 或其他扩展名
img_path = os.path.join(img_folder, image_name)
# 自动获取图像尺寸
with Image.open(img_path) as img:
img_width, img_height = img.size
yolo_lines = []
for bbox in data['bboxes']:
x_coords = bbox['x_arr']
y_coords = bbox['y_arr']
x_min = min(x_coords)
x_max = max(x_coords)
y_min = min(y_coords)
y_max = max(y_coords)
# 计算YOLO格式的中心坐标和宽高
x_center = (x_min + x_max) / 2
y_center = (y_min + y_max) / 2
width = x_max - x_min
height = y_max - y_min
# 转换为相对坐标
x_center /= img_width
y_center /= img_height
width /= img_width
height /= img_height
yolo_lines.append(f"0 {x_center} {y_center} {width} {height}") # 类别ID假设为0
# 保存为YOLO格式文件
with open(os.path.join(output_folder, image_name.replace('.jpg', '.txt')), 'w') as out_file:
out_file.write('\n'.join(yolo_lines))
# 调用函数
convert_json_to_yolo('train_json', 'train_img', 'train_img')
convert_json_to_yolo('val_json', 'val_img', 'val_img')
训练
可能是电脑配置低了,我在执行1张图片训练的时候,顺利完成,但是把所有图片丢到目录训练时,结果看到:Killed 就结束了,后续再研究研究
python train.py --img 640 --batch 16 --epochs 50 --data data/balloon.yaml --weights yolov5s.pt --cache使用训练出来的模型测试其它图片
这步还没有执行,不知道结果会是怎样,期待尝试
python detect.py --weights runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source path/to/test/images以下是AI提供的资料,仅作参考:
1. 环境搭建
安装Python和相关库
确保你安装了Python(推荐使用3.7及以上版本),然后安装必要的库。可以使用Anaconda管理你的环境:
conda create -n balloon-env python=3.8
conda activate balloon-env
pip install torch torchvision torchaudio # 如果使用PyTorch
pip install opencv-python numpy matplotlib # OpenCV和其他工具安装YOLOv5
你可以使用YOLOv5,它的文档非常齐全,适合初学者。可以从GitHub克隆YOLOv5仓库:
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt2. 准备数据集
确保你的数据集按照YOLO格式组织。文件结构大致如下:
/data
/images
train # 训练集图片
val # 验证集图片
/labels
train # 训练集标签
val # 验证集标签标签文件的格式为每行一个物体,格式为:<class_id> <x_center> <y_center>
3. 配置训练参数
在yolov5/data目录下,创建一个新的配置文件(例如balloon.yaml)来描述你的数据集,内容如下:
train: ../data/images/train
val: ../data/images/val
nc: 1 # 类别数量,这里是气球
names: ['balloon'] # 类别名称4. 训练模型
在YOLOv5目录下运行训练命令:
python train.py --img 640 --batch 16 --epochs 50 --data data/balloon.yaml --weights yolov5s.pt --cache--img:设置输入图像的大小。
--batch:每次训练的批量大小。
--epochs:训练轮数。
--data:数据集配置文件。
--weights:可以选择使用YOLOv5的预训练模型。
5. 监控训练过程
训练过程中,你可以在控制台查看损失值和准确率。训练完成后,模型会保存在runs/train/exp/weights目录中,通常会生成best.pt和last.pt。
- 测试模型
在训练完成后,你可以使用以下命令对新的图像进行测试:
python detect.py --weights runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source path/to/test/images--source:可以是单个图像、文件夹或视频。
7. 结果可视化
检测结果会保存在runs/detect/exp目录中,你可以查看输出的图片,并验证模型的效果。
8. 调整与优化
如果结果不理想,可以考虑以下方法进行优化:
增加数据集大小或多样性。
调整超参数(如学习率)。
进行数据增强。
Anaconda 查看、创建、管理和使用python环境
本文仅作学习记录而转载:
原文链接:https://blog.csdn.net/u014628771/article/details/80066624
1. 查看Python环境
conda info --env可以看到所有python环境,前面有个‘*’的代表当前环境:
2.创建Python环境
conda create --name python35 python=3.5 代表创建一个python3.5的环境,我们把它命名为python35
现在我们再用conda info --env看看环境:
3.管理和使用python环境
使用conda activate python35 来激活刚才创建的环境:
尝试使用pip install numpy来给这个环境安装一个常用的包:
当然也可以用conda install numpy来安装,但是会同时安装很多相关的包,在此就不演示了。
在简单的熟悉了以后,就会发现用anaconda来进行python环境的控制真的是非常方便,其实anaconda环境是有物理路径的,如下,你会发现这和我们之前conda info --env的list是一样的:
之后我们删除python35 :
conda remove -n python35 --all再看文件夹,果然已经被删除了:
7z在解压时提示 磁盘空间不足 解决方案 C盘满了怎么办
报错情景: Windows系统+拖拽 解压文件到指定目录
解决问题过程
验证C盘(系统盘)空间容量 图1<解压.7z文件容量 (所以空间不足) 图2
注释:(7zip默认使用系统临时文件夹为自己的工作临时文件夹,出现这种情况因为系统临时文件夹剩余空间不足,也就是整个C盘可用空间不足)
Windows临时文件目录:C:\Windows\Temp
问题解决(结论)
因为系统存储空间不足导致解压文件出错
解决方案一(不推荐)
可以更改工作文件夹为 "当前文件夹"或者"指定位置"
注意:指定位置通常需要 给予软件管理员权限才能启动+当前磁盘有最高Everyone访问权限,否则会导致设置失败(软件不会提示), 并且问题接踵而至,甚至无法找出原因
权限设置示例
前提是 "结束7z的相关进程"或"退出软件"
解决方案二(推荐)
无需改变现有配置
7z软件选项保持不变,只需要在需要解压的文件,"鼠标右键" 选择"提取到当前目录"解压文件即可。这种未打开压缩文件直接解压的方式,不会去占用C盘空间
实现逻辑:系统变量导致
mysql 客户端SSL错误2026 (HY000) 解决办法
背景:客户端连接mysql8.x出现“ERROR 2026 (HY000): SSL connection error: unknown error number”
mysql -h 10.233.117.225 -P3306 -uroot -p方案一(已过时):
mysql -h10.233.117.225 -P3306 -uroot -p --skip-ssl方案二(推荐):
mysql -h10.233.117.225 -P3306 -uroot -p --ssl-mode=DISABLED参数–ssl-mode取值
官方文档:https://dev.mysql.com/doc/refman/8.0/en/connection-options.html#option_general_ssl-mode
DISABLED 与参数skip-ssl一样,不使用SSL/TLS建立加密连接
PREFERRED 优先尝试使用SSL/TLS建立加密连接,如果无法建立则尝试建立非SSL/TLS连接
REQUIRED 只会尝试使用SSL/TLS建立加密连接
VERIFY_CA 与REQUIRED行为一样,与此同时会验证server端的证书是否有效
VERIFY_IDENTITY 与VERIFY_CA行为一样,与此同时验证server端证书的host是否与实际连接的hostname一致