使用深度学习框架目标检测算法YOLOv8训练番茄采摘检测数据集 番茄检测数据集的训练及应用 深度学习基于YOLOV8西红柿检测系统
文章目录
- 使用深度学习框架目标检测算法YOLOv8训练番茄采摘检测数据集 番茄检测数据集的训练及应用 深度学习基于YOLOV8西红柿检测系统
- 一、环境准备
- 安装CUDA驱动
- 安装Anaconda并创建虚拟环境
- 安装依赖项
- 二、数据集组织
- 三、使用YOLOv8训练模型
- 加载预训练模型
- 训练模型
- 四、推理代码
- 五、评估代码
数据集描述:
番茄采摘数据集 番茄检测1分类。 未增强。 共895张。数据集按8:2分配。其中 训练集716张图片,验证集179张图片,YOLO下的txt标注
使用YOLOv8训练你的番茄采摘数据集,我们将按照以下步骤操作。该数据集包含895张图片,并按8:2的比例分配为训练集和验证集,所有图像样张均采用YOLO格式的txt标注文件。
一、环境准备
安装CUDA驱动
确保系统已经安装了适合你GPU的NVIDIA CUDA驱动程序。可通过运行nvidia-smi命令来检查是否已正确安装。
安装Anaconda并创建虚拟环境
首先,下载并安装Anaconda。然后创建一个新的Python虚拟环境:
conda create-ntomato_detectionpython=3.8conda activate tomato_detection安装依赖项
在激活的虚拟环境中安装必要的库:
pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 pipinstallultralytics opencv-python matplotlib tqdmCUDA版本调整PyTorch的安装链接。
二、数据集组织
确保数据集按如下结构组织(YOLOv8支持YAML格式的数据配置):
tomato_dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yaml其中data.yaml文件应包含如下信息:
train:./tomato_dataset/images/trainval:./tomato_dataset/images/valnc:1# 类别数量names:['tomato']三、使用YOLOv8训练模型
加载预训练模型
fromultralyticsimportYOLO# 加载预训练模型model=YOLO('yolov8n.pt')# 可以选择其他尺寸的预训练模型训练模型
编写Python脚本来启动训练过程:
fromultralyticsimportYOLOimportosdeftrain_yolo():model=YOLO('yolov8n.yaml')# 使用YOLOv8n配置文件results=model.train(data='./tomato_dataset/data.yaml',epochs=100,imgsz=640,batch=16)if__name__=='__main__':train_yolo()确保将'./tomato_dataset/data.yaml'替换为实际路径。你可以根据需要调整epochs和batch大小。
四、推理代码
用于对新的图像进行检测:
fromultralyticsimportYOLOimportcv2importosdefdetect_image(image_path,output_dir):ifnotos.path.exists(output_dir):os.makedirs(output_dir)model=YOLO('runs/detect/exp/weights/best.pt')# 替换为你的最佳权重路径results=model.predict(source=image_path,save=True,project=output_dir,name="")# 如果你想手动保存结果forrinresults:im_array=r.plot()# plot a BGR numpy array of predictionsim=cv2.cvtColor(im_array,cv2.COLOR_BGR2RGB)output_path=os.path.join(output_dir,os.path.basename(image_path))cv2.imwrite(output_path,im)if__name__=='__main__':detect_image('path/to/test/image.jpg','output/directory')五、评估代码
使用YOLOv8内置的评估函数直接对验证集进行评估:
fromultralyticsimportYOLOdefevaluate_yolo():model=YOLO('runs/detect/exp/weights/best.pt')# 替换为你的最佳权重路径metrics=model.val()# 自动对验证集进行评估print(f"mAP50:{metrics.box.map50:.3f}| mAP50-95:{metrics.box.map:.3f}")if__name__=='__main__':evaluate_yolo()