yolo地裂缝(wsl+ubuntu)
一、环境
环境配置
YOLOv12保姆级教程(win系统和ubuntu系统均可使用)_yolov12代码-CSDN博客
git clone 代码
权重下载: 此处直接选择权重文件【YOLO12n】下载即可
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
conda create -n yolov12 python=3.11
conda activate yolov12
在pycharm中添加解释器


pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
----------安装requirements.txt文件,后面加清华的镜像源效果更好。
pip install -e .
先检查下torch的版本以及cuda是否可用
搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试_python 3.12.3 yolo8-CSDN博客
根目录创建一个py文件,名为cuda检查.py,放置如下代码并且执行:
import torch
import numpy as np
# 检查GPU、Cuda
print("numpy版本:"+np.__version__)
print("CUDA是否可用=>", torch.cuda.is_available())
print("pytorch版本=>"+torch.__version__)
print("是否支持CUDA=>"+str(torch.cuda.is_available()))
# 如果有 GPU 可用,打印 GPU 数量和名称
if torch.cuda.is_available():
print("GPU设备数量=>", torch.cuda.device_count())
print("当前使用GPU=>", torch.cuda.get_device_name(torch.cuda.current_device()))
else:
print("没有GPU可用,当前将运行在CPU上")
如果没问题,会显示如下

如果你的pytorch显示cpu版本的,且numpy提示报错了,看博客解决
二、数据集
搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试_python 3.12.3 yolo8-CSDN博客
我选择第二个链接的数据集,下载splitata,换成下图的结构
想将 project_old目录移动到 /home/username/workspace/目录下,并重命名为 project_new。
mv project_old /home/username/workspace/project_new

crack_segmentation.yaml

# 数据集路径
path: /home/qsl/3dgs-code/yolov12/splitData(3) # 数据集根目录
train: images/train # 训练集图像相对路径
val: images/val # 验证集图像相对路径
test: images/test # 测试集图像相对路径 (可选)
# 类别信息
names:
0: crack # 类别名称,索引从0开始
制作数据集
三、运行
train.py
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('/home/qsl/3dgs-code/yolov12/ultralytics/cfg/models/v12/yolov12n.yaml')
# 代表使用yolov12n的神经网络结构
model.load('/home/qsl/3dgs-code/yolov12/yolov12n.pt')
# 代表使用yolov12n的预训练权重
model.train(data='/home/qsl/3dgs-code/yolov12/splitData(3)/splitData/crack_segmentation.yaml', # 数据集yaml路径
imgsz=640, # 输入图像的尺寸为 640x640 像素
epochs=200, # 训练300轮
batch=16, # 每一批样本的数量
workers=8, # 同时32个线程
device="0", #只使用第一张显卡进行训练
project='/home/qsl/3dgs-code/yolov12/train',
name='yolov12n',
)
python train.py ,运行了3小时,输出在 /home/qsl/3dgs-code/yolov12/train/yolov12n5
结果分析参考一条视频讲清楚yolo训练结果的含义 - Coding茶水间 - 博客园 - 愿你无忧yyyyyyy - 博客园


cmd打开终端,在终端输入nvidia-smi,回车执行命令就能看到GPU利用率66%:

如果电脑不太好的话,会出现GPU容量不足的情况,尽量调整数据输入量和线程,减少电脑负担,在train文件里调小workers、batch
报错Could not load library libcudnn_cnn_train.so.8
您遇到的错误,核心问题在于环境中的CUDA和cuDNN库版本存在冲突。从您提供的版本信息来看,PyTorch期望使用CUDA 12.1,但系统却错误地加载了来自CUDA 11.8路径下的旧版cuDNN库。
echo $LD_LIBRARY_PATH
echo $CUDA_HOME

- conda activate yolov12
- unset CUDA_HOME
- export LD_LIBRARY_PATH=
更稳妥的做法(每次激活环境自动生效)(可以试试):
- mkdir -p $CONDA_PREFIX/etc/conda/activate.d
- 创建文件 vim $CONDA_PREFIX/etc/conda/activate.d/cuda_clean.sh,内容:
- unset CUDA_HOME
- export LD_LIBRARY_PATH=
验证:
- python -c "import torch, os; print(torch.version, torch.version.cuda); print('CUDA_HOME=', os.environ.get('CUDA_HOME')); print('LD_LIBRARY_PATH=', os.environ.get('LD_LIBRARY_PATH'))"
predict.py
from ultralytics import YOLO
from PIL import Image
import cv2
model = YOLO('train/yolov12n5/weights/best.pt')
results = model.predict(source='splitData(3)/images/test/1-59-_jpg.rf.88757267d8830b549d4b2eadb5febba9.jpg', save=True,save_txt=True, imgsz=640, conf=0.25)#单张图片,source也可以是文件夹
# 结果可视化
for r in results:
# 方法1: 使用Ultralytics内置的plot方法 (快速显示)
im_array = r.plot() # 绘制边界框、分割掩码、标签
im = Image.fromarray(im_array[..., ::-1]) # BGR to RGB
cv2.imshow('result', im_array) # 显示图像
# 等待按键,0表示无限等待直到按键
key = cv2.waitKey(0) # 程序会停在这里等待用户按键
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
控制台提示识别的结果在runs\detect\predict目录下,发现图中出现多个裂缝时不能准确识别

【图像算法 - 14】精准识别路面墙体裂缝:基于YOLO12与OpenCV的实例分割智能检测实战(附完整代码)_crack500数据集宽度测量-CSDN博客
四、autodl部署
可尝试参考
更多推荐



所有评论(0)