液压吊车数据集 1分类,Crane(液压吊车)。数据集来源于电力数据,可用于YOLO的目标检测。![]()
图片共2363张。数据集按7:1:2分配。其中 训练集1648张图片,测试集477张图片,验证集238张。
该数据包含yolo的txt和VOC的xml格式
1
训练 YOLOv8训练液压吊车数据集,进行评估和结果可视化,我们将从环境设置、数据预处理、模型训练、评估以及简易用户界面开发几个方面进行详细说明。
以下文字及代码仅供参考。
1. 环境设置
首先确保你的环境中安装了必要的依赖项。这里以YOLOv5为例(请根据实际情况调整为YOLOv8)。
安装依赖
# 克隆YOLOv8仓库(请确认这是正确的URL)gitclone https://github.com/ultralytics/yolov8cdyolov8# 安装依赖pipinstall-rrequirements.txt2. 数据准备
组织你的数据集如下:
hydraulic_crane_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ └── labels/ ├── train/ ├── val/ └── test/创建crane_data.yaml文件来描述数据集路径和类别信息:
train:./hydraulic_crane_dataset/images/train/val:./hydraulic_crane_dataset/images/val/test:./hydraulic_crane_dataset/images/test/nc:1# 类别数量names:['Crane']# 类别名称3. 模型定义与训练
开始训练过程。假设你已经下载了YOLOv8的预训练权重,如果没有,可以从头开始训练。
开始训练
python train.py--img640--batch16--epochs50--datacrane_data.yaml--weightsyolov8s.pt--namehydraulic_crane_model--img 640: 输入图像尺寸。--batch 16: 每批次的图像数量。--epochs 50: 训练周期数。--data crane_data.yaml: 数据配置文件路径。--weights yolov8s.pt: 预训练权重文件路径(如果有)。--name hydraulic_crane_model: 保存模型的目录名。
4. 评估
训练完成后,可以对验证集或测试集进行评估:
python val.py--weightsruns/train/hydraulic_crane_model/weights/best.pt--datacrane_data.yaml--img640--taskval5. 结果分析与可视化
对于预测结果的可视化,可以使用如下命令:
python detect.py--weightsruns/train/hydraulic_crane_model/weights/best.pt--source./hydraulic_crane_dataset/images/test/ --save-txt --save-conf--projectoutput--namedetection_results6. 用户界面开发(Flask应用)
构建一个简单的Flask应用用于展示检测结果。
Flask 应用代码
fromflaskimportFlask,request,render_template,send_from_directoryimporttorchfromPILimportImageimportos app=Flask(__name__)model=torch.hub.load('ultralytics/yolov8','custom',path='runs/train/hydraulic_crane_model/weights/best.pt')@app.route('/',methods=['GET','POST'])defupload_file():ifrequest.method=='POST':if'file'notinrequest.files:return"No file part"file=request.files['file']iffile.filename=='':return"No selected file"iffile:img=Image.open(file.stream)results=model(img)results.save(save_dir='static/detect_results')# 保存检测结果图片到指定目录result_image_path=os.path.join('detect_results',os.listdir('static/detect_results')[0])returnrender_template('result.html',result_image=result_image_path)returnrender_template('index.html')@app.route('/static/<path:filename>')defserve_static(filename):returnsend_from_directory('static',filename)if__name__=='__main__':app.run(debug=True)HTML 文件
index.html
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Upload Image</title></head><body><formaction="/"method="post"enctype="multipart/form-data">Select image to upload:<inputtype="file"name="file"id="file"><inputtype="submit"value="Upload Image"name="submit"></form></body></html>result.html
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Result</title></head><body><h1>Detection Result:</h1><imgsrc="{{ url_for('serve_static', filename=result_image) }}"alt="Detection Result"></body></html>解释
- 环境设置:通过克隆YOLOv8仓库并安装其依赖项来设置工作环境。
- 数据准备:将数据集按比例分为训练集、验证集和测试集,并为每个子集创建相应的目录结构。同时创建一个
crane_data.yaml文件来描述数据集路径和类别信息。 - 模型训练:使用YOLOv8提供的
train.py脚本进行模型训练,指定了输入图像大小、每批图像数量、训练周期数等参数。 - 评估:训练完成后,使用
val.py脚本对模型进行评估,检查其在验证集上的性能。 - 结果分析与可视化:使用
detect.py脚本对测试集中的图像进行推理,并保存结果图像。 - 用户界面开发:创建了一个简单的Flask应用,允许用户上传图片并显示检测结果。
使用YOLOv8训练液压吊车数据集,并开发一个简易的用户界面来展示检测结果。请根据实际情况调整上述代码中的路径和其他细节