YOLOv5苹果香蕉检测

YOLOv5水果新鲜程度检测模型

数据集和训练模型下载:

水果检测数据集: https://download.csdn.net/download/zhiqingAI/84861657
YOLOv3水果检测模型: https://download.csdn.net/download/zhiqingAI/85446749
yolov5水果检测模型+pyqt界面:
https://download.csdn.net/download/zhiqingAI/85446671
水果新鲜程度检测数据集:
https://download.csdn.net/download/zhiqingAI/85448544
YOLOv3水果新鲜程度检测模型:
https://download.csdn.net/download/zhiqingAI/85448506
YOLOv5水果新鲜程度检测模型:
https://download.csdn.net/download/zhiqingAI/85455714
YOLOv5水果新鲜程度检测模型+qt界面:
https://download.csdn.net/download/zhiqingAI/85448391

其他cv领域数据集和模型下载:
https://blog.csdn.net/zhiqingAI/article/details/124230743

1、配置环境

安装anaconda3

在D盘新建一个文件夹anaconda3,不建议安装在C盘,然后Anacona官网下载安装包,下载完后右键以管理员运行,按照默认选项安装即可
在这里插入图片描述
安装到D盘中的anaconda3文件夹中
在这里插入图片描述
勾上,添加环境变量
在这里插入图片描述在这里插入图片描述

最后就等着安装好就可以了,大概10分钟左右

在anaconda中创建python虚拟环境

打开anacona终端

在这里插入图片描述

打开后是这样的:

在这里插入图片描述

然后输出命令: conda create -n py38 python=3.8,回车
其中py38是创建的虚拟环境的名称,可以随意改;python=3.8是python版本,这里我们安准个python3.8版本

在这里插入图片描述

输入小写y,回车:

在这里插入图片描述

然后激活环境:输入 conda activate py38 ,回车

在这里插入图片描述在这里插入图片描述

安装pytorch

进入pytorch官网

在这里插入图片描述在这里插入图片描述

确定自己显卡型号以及对应可安装的CUDA版本,比如RTX1050Ti等英伟达显卡通常可以安装cuda11,不是因为英伟达的显卡一般不能安装CUDA,只能安装CPU版本。
这里我们安装pytorch 1.8.1

在这里插入图片描述

若有英伟达的显卡(一般都能安装CUDA11.1,不可以具体查看自己显卡支持的CUDA版本),怎在py38环境中输入命令:

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html 

等待安装完成即可,安装时间看网速

在这里插入图片描述

若没有英伟达的显卡,则安装CPU版本。在py38环境中输入命令:

conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cpuonly -c pytorch

在这里插入图片描述在这里插入图片描述

然后回车安装即可,由于我笔记本没有英伟达显卡,这里安装CPU版本的pytorch1.8.1。如下图所示这种情况直接输入小写y后回车即可。安装时间一般会比较久。

在这里插入图片描述

安装pycharm(可以安装其他编辑器如vscode,我个人习惯使用pycharm)

进入pycharm官网,下载社区版安装包:

在这里插入图片描述

安装包下载完后,右键以管理员身份运行,按默认方式安装即可,需要注意的地方如下:

在这里插入图片描述

2、使用训练好的模型进行测试

在pycharm中打开YOLOv5-6.0-bad_fruits项目代码:

在这里插入图片描述

打开后为改项目配置解释器,也就是我们安装好的conda中的py38虚拟环境: 依次选择 文件、设置,

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

接下来就是在安装YOLOv5所需要的包,打开项目文件夹下的requiremes.txt:

在这里插入图片描述

接下来打来pycharm自带终端:

在这里插入图片描述在这里插入图片描述

输入命令:pip install -r requirements.txt 安装即可,也可以添加清华源安装加速,则输入:

 pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple 

回车安装即可

在这里插入图片描述
在这里插入图片描述

然后使用训练好的权重进行测试,打开detect.py,首先需要修改参数:

def parse_opt():
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/bad_fruits-v5s/weights/best.pt', help='model path(s)')
    parser.add_argument('--source', type=str, default=ROOT / './fruit_bad_dataset/images/train', help='file/dir/URL/glob, 0 for webcam')
    parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[416], help='inference size h,w')
    parser.add_argument('--conf-thres', type=float, default=0.25, help='confidence threshold')
    parser.add_argument('--iou-thres', type=float, default=0.45, help='NMS IoU threshold')
    parser.add_argument('--max-det', type=int, default=1000, help='maximum detections per image')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--view-img', action='store_true', help='show results')
    parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
    parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
    parser.add_argument('--save-crop', action='store_true', help='save cropped prediction boxes')
    parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
    parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --classes 0, or --classes 0 2 3')
    parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    parser.add_argument('--augment', action='store_true', help='augmented inference')
    parser.add_argument('--visualize', action='store_true', help='visualize features')
    parser.add_argument('--update', action='store_true', help='update all models')
    parser.add_argument('--project', default=ROOT / 'runs/detect', help='save results to project/name')
    parser.add_argument('--name', default='exp', help='save results to project/name')
    parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
    parser.add_argument('--line-thickness', default=3, type=int, help='bounding box thickness (pixels)')
    parser.add_argument('--hide-labels', default=False, action='store_true', help='hide labels')
    parser.add_argument('--hide-conf', default=False, action='store_true', help='hide confidences')
    parser.add_argument('--half', action='store_true', help='use FP16 half-precision inference')
    parser.add_argument('--dnn', action='store_true', help='use OpenCV DNN for ONNX inference')
    opt = parser.parse_args()
    opt.imgsz *= 2 if len(opt.imgsz) == 1 else 1  # expand
    print_args(FILE.stem, opt)
    return opt

在这里插入图片描述

如检测单张图片或者视频,可以在运行过程展示结果:

在这里插入图片描述

步骤如下:

在这里插入图片描述
在这里插入图片描述

然后右键运行detect.py即可:

在这里插入图片描述
在这里插入图片描述

大功告成,结果保存在runs/detect文件夹下

  • 9
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是使用YOLOv5进行苹果叶片病害检测的代码: 首先,需要安装YOLOv5和相关依赖项。可以通过以下命令来安装: ``` git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ``` 接下来,下载训练好的模型权重文件,可以在YOLOv5的Github页面中下载。将其放在`yolov5/weights`目录下。 然后,创建一个Python文件,并导入所需的库: ``` import torch import cv2 import numpy as np from PIL import Image from pathlib import Path from argparse import ArgumentParser from models.experimental import attempt_load from utils.general import check_img_size, non_max_suppression, scale_coords from utils.torch_utils import select_device, time_synchronized ``` 定义一些函数,包括加载模型、预处理图像、后处理检测结果等: ``` def load_model(weights): # 加载模型 model = attempt_load(weights, map_location=torch.device('cpu')) return model def preprocess(img, img_size=640): # 预处理图像 img0 = img.copy() img = cv2.resize(img, (img_size, img_size)) img = img[:, :, ::-1].transpose(2, 0, 1) img = np.ascontiguousarray(img) return img0, img def postprocess(outputs, img0, conf_thres=0.3, iou_thres=0.45): # 后处理检测结果 results = [] for output in outputs: output = non_max_suppression(output, conf_thres, iou_thres) for det in output: if det is not None and len(det): det[:, :4] = scale_coords(img0.shape[1:], det[:, :4], img0.shape[:2]).round() for *xyxy, conf, cls in reversed(det): results.append((xyxy, cls, conf)) return results ``` 最后,编写主函数,加载模型、读取图像、进行预处理和后处理,并将检测结果可视化输出: ``` def main(weights, img_path): # 加载模型 model = load_model(weights) # 选择设备 device = select_device('') # 读取图像 img0 = cv2.imread(img_path) # 预处理图像 img_size = check_img_size(640, s=model.stride.max()) img, img0 = preprocess(img0, img_size) # 将图像转换为PyTorch张量 img = torch.from_numpy(img).to(device) img = img.float() / 255.0 # 执行推理 model.eval() with torch.no_grad(): outputs = model(img, augment=False) # 后处理检测结果 results = postprocess(outputs, img0) # 可视化输出 for result in results: xyxy, cls, conf = result x1, y1, x2, y2 = map(int, xyxy) label = f'class {cls} {conf:.2f}' cv2.rectangle(img0, (x1, y1), (x2, y2), (255, 0, 0), 2) cv2.putText(img0, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) cv2.imshow('result', img0) cv2.waitKey(0) ``` 将`weights`设置为模型权重文件的路径,将`img_path`设置为要检测的图像的路径,然后运行主函数即可对图像进行苹果叶片病害检测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stsdddd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值