yolo26柑橘果实检测数据集 如何建立 深度学习基于 YOLOv8 的柑橘果实检测系统 柑桔柑橘数据集的训练及应用 (1)

发布时间:2026/10/27 5:02:00

yolo26柑橘果实检测数据集 如何建立 深度学习基于 YOLOv8 的柑橘果实检测系统 柑桔柑橘数据集的训练及应用 (1) 通过调用官YOLOv8模型训练柑橘果实检测数据集 如何建立 深度学习基于 YOLOv8 的柑橘果实检测系统 柑桔柑橘数据集的训练及应用文章目录通过调用官YOLOv8模型训练柑橘果实检测数据集 如何建立 深度学习基于 YOLOv8 的柑橘果实检测系统 柑桔柑橘数据集的训练及应用数据集描述如何建立 基于 YOLOv8 的柑橘果实检测系统构建 环境搭建CUDA驱动、Anaconda、Python虚拟环境1. 安装 CUDA 驱动2. 安装 Anaconda3. 创建 Python 虚拟环境4. 安装依赖项 数据集结构说明data.yaml 内容如下️ 使用 YOLOv8 训练模型加载官方预训练模型进行训练开始训练推荐配置 推理代码单张图片 批量处理单张图片推理批量图片推理 模型评估代码验证精度、混淆矩阵等验证 mAP、Recall、Precision 等指标2. 训练模型3. 推理和评估4. 构建GUI界面以下文字及代码仅供参考学习使用。文章目录通过调用官YOLOv8模型训练柑橘果实检测数据集 如何建立 深度学习基于 YOLOv8 的柑橘果实检测系统 柑桔柑橘数据集的训练及应用数据集描述如何建立 基于 YOLOv8 的柑橘果实检测系统构建 环境搭建CUDA驱动、Anaconda、Python虚拟环境1. 安装 CUDA 驱动2. 安装 Anaconda3. 创建 Python 虚拟环境4. 安装依赖项 数据集结构说明data.yaml 内容如下️ 使用 YOLOv8 训练模型加载官方预训练模型进行训练开始训练推荐配置 推理代码单张图片 批量处理单张图片推理批量图片推理 模型评估代码验证精度、混淆矩阵等验证 mAP、Recall、Precision 等指标2. 训练模型3. 推理和评估4. 构建GUI界面以下文字及代码仅供参考学习使用。数据集描述柑橘果实检测数据集 可yolo目标检测训练测试验证 标签为txt格式一类[ ’ orange’]训练集2913张测试集971张验证集971张1如何建立 基于 YOLOv8 的柑橘果实检测系统构建 环境搭建CUDA驱动、Anaconda、Python虚拟环境1. 安装 CUDA 驱动nvidia-smi如果未安装请前往 NVIDIA官网 下载并安装对应显卡型号的最新驱动。2. 安装 Anaconda从 Anaconda官网 下载并安装适合你系统的版本。3. 创建 Python 虚拟环境conda create--nameyolov8_orangepython3.9conda activate yolov8_orange4. 安装依赖项pipinstalltorch torchvision torchaudio pipinstallultralytics8.2.0 pipinstallopencv-python pipinstallnumpy pipinstallmatplotlib pipinstalltqdm 数据集结构说明你的柑橘果实数据集应组织如下orange_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yamldata.yaml内容如下train:./orange_dataset/images/trainval:./orange_dataset/images/valtest:./orange_dataset/images/testnc:1names:[orange]️ 使用 YOLOv8 训练模型加载官方预训练模型进行训练fromultralyticsimportYOLO# 加载YOLOv8预训练模型如 yolov8s.ptmodelYOLO(yolov8s.pt)# 可选yolov8n, yolov8m, yolov8l, yolov8x开始训练推荐配置resultsmodel.train(datapath/to/data.yaml,epochs100,imgsz640,batch16,nameorange_yolov8s,pretrainedTrue,optimizerAdamW,lr01e-3,lrf1e-4,momentum0.937,weight_decay0.0005,warmup_epochs3,patience10,device0iftorch.cuda.is_available()elseNone,workers4,projectruns/orange,saveTrue,save_period5,# 每5个epoch保存一次模型verboseTrue) 推理代码单张图片 批量处理单张图片推理fromultralyticsimportYOLOimportcv2# 加载模型modelYOLO(runs/orange/orange_yolov8s/weights/best.pt)# 图片路径image_pathtest_images/example.jpg# 进行预测resultsmodel(image_path)# 绘制结果forresultinresults:annotated_imgresult.plot()cv2.imshow(Detection Result,annotated_img)cv2.waitKey(0)cv2.destroyAllWindows()批量图片推理importosfromultralyticsimportYOLO# 加载模型modelYOLO(runs/orange/orange_yolov8s/weights/best.pt)# 输入输出目录input_dirorange_dataset/images/testoutput_dirinference_resultsos.makedirs(output_dir,exist_okTrue)# 批量处理forimg_fileinos.listdir(input_dir):ifimg_file.lower().endswith((.png,.jpg,.jpeg)):image_pathos.path.join(input_dir,img_file)resultsmodel(image_path)forresultinresults:annotated_imgresult.plot()output_pathos.path.join(output_dir,img_file)cv2.imwrite(output_path,annotated_img)print(f✅ 批量推理完成结果已保存到{output_dir}) 模型评估代码验证精度、混淆矩阵等验证 mAP、Recall、Precision 等指标# 验证模型性能metricsmodel.val()# 输出各项指标print(mAP0.5:,metrics.box.map50)print(mAP0.5:0.95:,metrics.box.map)print(Precision:,metrics.box.precision)print(Recall:,metrics.box.recall)print(F1 Score:,metrics.box.f1)--- 基于YOLOv8的柑橘检测系统使用Python的tkinter库来构建图形用户界面。以下是一个详细的代码示例包括训练、推理和评估部分以及一个简单的GUI界面。 ### 1. 安装必要的库 确保你已经安装了所有必要的库 bash pip install torch torchvision torchaudio pip install ultralytics8.2.0 pip install opencv-python pip install numpy pip install matplotlib pip install tqdm pip install tk2. 训练模型需要训练模型。使用以下代码进行训练fromultralyticsimportYOLO# 加载YOLOv8预训练模型如 yolov8s.ptmodelYOLO(yolov8s.pt)# 开始训练resultsmodel.train(datapath/to/data.yaml,epochs100,imgsz640,batch16,nameorange_yolov8s,pretrainedTrue,optimizerAdamW,lr01e-3,lrf1e-4,momentum0.937,weight_decay0.0005,warmup_epochs3,patience10,device0iftorch.cuda.is_available()elseNone,workers4,projectruns/orange,saveTrue,save_period5,# 每5个epoch保存一次模型verboseTrue)3. 推理和评估接下来我们编写推理和评估的代码importcv2fromultralyticsimportYOLO# 加载模型modelYOLO(runs/orange/orange_yolov8s/weights/best.pt)# 验证模型性能metricsmodel.val()# 输出各项指标print(mAP0.5:,metrics.box.map50)print(mAP0.5:0.95:,metrics.box.map)print(Precision:,metrics.box.precision)print(Recall:,metrics.box.recall)print(F1 Score:,metrics.box.f1)# 单张图片推理image_pathtest_images/example.jpgresultsmodel(image_path)forresultinresults:annotated_imgresult.plot()cv2.imshow(Detection Result,annotated_img)cv2.waitKey(0)cv2.destroyAllWindows()4. 构建GUI界面最后我们使用tkinter构建一个简单的GUI界面importtkinterastkfromPILimportImage,ImageTkimportcv2fromultralyticsimportYOLOimportosclassOrangeDetectorApp:def__init__(self,root):self.rootroot self.root.title(基于YOLOv8的柑橘检测系统)# 创建左侧图像显示区域self.image_frametk.Frame(root)self.image_frame.pack(sidetk.LEFT,padx10,pady10)self.image_labeltk.Label(self.image_frame)self.image_label.pack()# 创建右侧控制面板self.control_paneltk.Frame(root)self.control_panel.pack(sidetk.RIGHT,padx10,pady10)# 权重选择self.weight_frametk.Frame(self.control_panel)self.weight_frame.pack(pady10)tk.Label(self.weight_frame,text选择权重).pack()self.weight_entrytk.Entry(self.weight_frame,width50)self.weight_entry.pack()self.weight_entry.insert(0,runs/orange/orange_yolov8s/weights/best.pt)tk.Button(self.weight_frame,text加载,commandself.load_model).pack()# 数据源选择self.data_source_frametk.Frame(self.control_panel)self.data_source_frame.pack(pady10)tk.Label(self.data_source_frame,text选择检测资源).pack()tk.Button(self.data_source_frame,text图片,commandself.detect_image).pack(sidetk.LEFT)tk.Button(self.data_source_frame,text视频,commandself.detect_video).pack(sidetk.LEFT)tk.Button(self.data_source_frame,text摄像头,commandself.detect_camera).pack(sidetk.LEFT)# 参数设置self.param_frametk.Frame(self.control_panel)self.param_frame.pack(pady10)tk.Label(self.param_frame,textconf).pack()self.conf_slidertk.Scale(self.param_frame,from_0.0,to1.0,resolution0.01,orienttk.HORIZONTAL)self.conf_slider.set(0.25)self.conf_slider.pack()tk.Label(self.param_frame,textIOU).pack()self.iou_slidertk.Scale(self.param_frame,from_0.0,to1.0,resolution0.01,orienttk.HORIZONTAL)self.iou_slider.set(0.7)self.iou_slider.pack()# 检测结果self.result_frametk.Frame(self.control_panel)self.result_frame.pack(pady10)tk.Label(self.result_frame,text检测结果).pack()self.result_labeltk.Label(self.result_frame,text目标总数0\n花费时间0 ms)self.result_label.pack()# 是否保存结果self.save_frametk.Frame(self.control_panel)self.save_frame.pack(pady10)self.save_vartk.IntVar()tk.Checkbutton(self.save_frame,text是否保存结果,variableself.save_var).pack()# 初始化模型self.modelNonedefload_model(self):weight_pathself.weight_entry.get()ifos.path.exists(weight_path):self.modelYOLO(weight_path)print(模型加载成功)else:print(模型路径不存在)defdetect_image(self):ifself.modelisnotNone:image_pathtest_images/example.jpg# 替换为你的测试图片路径resultsself.model(image_path,confself.conf_slider.get(),iouself.iou_slider.get())forresultinresults:annotated_imgresult.plot()imgcv2.cvtColor(annotated_img,cv2.COLOR_BGR2RGB)imgImage.fromarray(img).resize((640,480))imgtkImageTk.PhotoImage(imageimg)self.image_label.imgtkimgtk self.image_label.configure(imageimgtk)self.result_label.config(textf目标总数{len(result.boxes)}\n花费时间{result.speed[inference]:.1f}ms)defdetect_video(self):pass# 实现视频检测逻辑defdetect_camera(self):pass# 实现摄像头检测逻辑if__name____main__:roottk.Tk()appOrangeDetectorApp(root)root.mainloop()
延伸阅读

更多相关文章

2026/10/27 4:57:58

YOLO模型演进:从v5到v11的技术突破与应用实践

1. YOLO模型演进全景图:从v5到v11的技术跃迁目标检测领域近年来最引人注目的技术路线莫过于YOLO系列的持续迭代。作为一名计算机视觉工程师,我完整经历了从YOLOv5到v11的每个版本升级过程。这个系列最令人惊叹的是其始终保持"速度-精度"双优特…

2026/10/27 4:57:58

CSS与JavaScript实现全屏图片展示技术详解

1. 全屏图片展示的核心实现思路全屏图片展示是现代网页设计中常见的交互效果,它能最大化利用屏幕空间,为用户提供沉浸式的视觉体验。实现这一效果需要同时运用CSS和JavaScript技术栈,两者各司其职又相互配合。CSS主要负责静态样式的定义&…

2026/10/27 4:57:58

Hadoop在碳排放分析中的分布式计算实践

1. 项目背景与核心价值碳排放分析正成为全球关注的焦点领域。随着各国"双碳"目标的推进,企业需要准确量化自身的碳排放情况。传统单机处理方式在面对TB级能源消耗数据时显得力不从心,这正是Hadoop分布式计算框架大显身手的场景。我去年指导的一…

2026/10/27 4:57:58

无人驾驶车辆MPC轨迹跟踪程序:建模、预测与QP求解

简介:这份无人驾驶车辆模型预测控制程序代码面向学习自动驾驶控制算法的高校学生、科研人员与工程开发者,聚焦MPC在路径跟踪、速度调节与转向控制中的落地实现,可作为控制理论向工程代码过渡的参考样例。ZIP压缩包共16个文件、约38KB&#xf…

2026/10/27 4:57:58

马尾怎么扎才好看?高度、蓬松度与碎发处理全解析

马尾辫这东西,乍一听谁不会扎?橡筋一套,三秒钟完事。但我可以负责任地说,能把马尾扎得好看、扎得显脸小、扎得一天下来不塌不痛不炸毛的人,十个里未必有一个。我这些年折腾过的发型不算少,最后发现最日常、…

2026/10/27 4:52:57

Calico calicoctl 二进制安装与集群网络排障实战

1. 先想清楚:为什么还要单独装一个 calicoctl很多人在集群里排查网络问题,第一反应是kubectl get pods -n kube-system,看看 calico-node 的 Pod 是不是 Running,然后就卡住了。Pod 是 Running 不等于网络是通的,BGP 会…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑