基于深度学习的植物病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍

本项目旨在开发一个基于深度学习的植物病害检测系统,采用YOLOv10目标检测模型,能够高效准确地识别和分类多种植物叶片上的病害。系统支持实时摄像头检测及图片视频检测,具有较强的实用性和可扩展性,适用于农业病害监控和农田管理等实际场景。

主要功能:
  1. 植物病害检测:该系统基于YOLOv10(You Only Look Once)的深度学习目标检测技术,能够对30种植物叶片病害进行准确分类。包括但不限于苹果斑点、番茄早期炭疽病、葡萄黑腐病等常见植物病害。

  2. 实时摄像头检测:支持通过连接摄像头,实时捕捉图像并进行病害识别。该功能可以实现农田监控或温室环境中的实时病害监测。

  3. 图片和视频检测:系统不仅可以处理静态图片,也支持处理视频流,用户可以批量上传图片或视频文件,系统会自动检测其中的病害并返回检测结果。

  4. YOLOv10模型训练与优化:本项目使用的YOLOv10模型通过在提供的病害数据集上训练,优化模型参数,达到较高的检测精度。数据集包含了2009张训练图片和246张验证图片,涵盖了30种不同的植物病害。

  5. UI界面:提供简洁易用的用户界面,用户可以通过UI上传图片或视频,查看实时检测结果。界面包括病害检测结果的显示、模型输出的分类标签、预测置信度以及检测框的位置。

  6. 部署与使用:系统采用Python语言开发,依赖深度学习框架PyTorch,支持Windows和Linux平台的部署。用户通过简单的操作便可启动实时监测或批量检测,适合农业从业者和研究人员使用。

数据集:

本项目使用的病害数据集包含30类植物病害,每个类别对应一个特定的植物叶片病变。每个类别的样本包含了不同植物的叶片图像,数据集的数量包括2009张训练集图像和246张验证集图像,覆盖了不同的植物种类和病害类型。

项目技术架构:
  • 深度学习模型:YOLOv10(目标检测)
  • 数据集:训练集2009张,验证集246张
  • 开发语言:Python
  • 深度学习框架:PyTorch
  • 界面框架:PyQt或Tkinter(根据实际开发选择)
  • 实时检测:支持摄像头输入,实时捕捉并识别植物病害
  • 输出形式:可视化检测结果(包括病害类别、置信度等)

基于深度学习的植物病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)_哔哩哔哩_bilibili

基于深度学习的植物病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)

二、项目功能展示

系统功能

图片检测:可对图片进行检测,返回检测框及类别信息。

视频检测:支持视频文件输入,检测视频中每一帧的情况。

摄像头实时检测:连接USB 摄像头,实现实时监测。

参数实时调节(置信度和IoU阈值)

  • 图片检测

该功能允许用户通过单张图片进行目标检测。输入一张图片后,YOLO模型会实时分析图像,识别出其中的目标,并在图像中框出检测到的目标,输出带有目标框的图像。

  • 批量图片检测

用户可以一次性上传多个图片进行批量处理。该功能支持对多个图像文件进行并行处理,并返回每张图像的目标检测结果,适用于需要大规模处理图像数据的应用场景。

  • 视频检测

视频检测功能允许用户将视频文件作为输入。YOLO模型将逐帧分析视频,并在每一帧中标记出检测到的目标。最终结果可以是带有目标框的视频文件或实时展示,适用于视频监控和分析等场景。

  • 摄像头实时检测

该功能支持通过连接摄像头进行实时目标检测。YOLO模型能够在摄像头拍摄的实时视频流中进行目标检测,实时识别并显示检测结果。此功能非常适用于安防监控、无人驾驶、智能交通等应用,提供即时反馈。

核心特点:

  • 高精度:基于YOLO模型,提供精确的目标检测能力,适用于不同类型的图像和视频。
  • 实时性:特别优化的算法使得实时目标检测成为可能,无论是在视频还是摄像头实时检测中,响应速度都非常快。
  • 批量处理:支持高效的批量图像和视频处理,适合大规模数据分析。

三、数据集介绍

本项目使用的植物病害数据集包含了30种常见植物叶片病害的图像,旨在为基于深度学习的病害检测模型(如YOLOv10)提供高质量的训练数据。数据集包含多种植物的叶片图像,涵盖了不同类型的病害,能够帮助模型在多种环境下进行有效的病害识别。

数据集概况
  • 数据集类型:图像分类与目标检测数据集
  • 图像数量:
    • 训练集:2009张图像
    • 验证集:246张图像
  • 分类数量:30类植物病害
  • 图像分辨率:图像分辨率较为一致,但可能因拍摄角度、光照条件等因素有所差异。
主要类别(30类植物病害)

以下是数据集中包含的30种植物叶片病害类别及其对应的植物种类:

  1. Apple Scab Leaf(苹果叶斑病)
  2. Apple Leaf(苹果叶)
  3. Apple Rust Leaf(苹果锈病)
  4. Bell Pepper Leaf Spot(甜椒叶斑病)
  5. Bell Pepper Leaf(甜椒叶)
  6. Blueberry Leaf(蓝莓叶)
  7. Cherry Leaf(樱桃叶)
  8. Corn Gray Leaf Spot(玉米灰斑病)
  9. Corn Leaf Blight(玉米叶枯病)
  10. Corn Rust Leaf(玉米锈病)
  11. Peach Leaf(桃树叶)
  12. Potato Leaf Early Blight(马铃薯早期晚疫病)
  13. Potato Leaf Late Blight(马铃薯晚期晚疫病)
  14. Potato Leaf(马铃薯叶)
  15. Raspberry Leaf(覆盆子叶)
  16. Soyabean Leaf(大豆叶)
  17. Soybean Leaf(大豆叶)
  18. Squash Powdery Mildew Leaf(南瓜白粉病)
  19. Strawberry Leaf(草莓叶)
  20. Tomato Early Blight Leaf(番茄早期炭疽病)
  21. Tomato Septoria Leaf Spot(番茄Septoria叶斑病)
  22. Tomato Leaf Bacterial Spot(番茄细菌性斑点病)
  23. Tomato Leaf Late Blight(番茄晚疫病)
  24. Tomato Leaf Mosaic Virus(番茄花叶病毒)
  25. Tomato Leaf Yellow Virus(番茄黄化病毒)
  26. Tomato Leaf(番茄叶)
  27. Tomato Mold Leaf(番茄霉病)
  28. Tomato Two Spotted Spider Mites Leaf(番茄两点蜘蛛螨)
  29. Grape Leaf Black Rot(葡萄黑腐病)
  30. Grape Leaf(葡萄叶)

训练集

验证集

数据集配置文件data.yaml

train: .\datasets\images\train val: .\datasets\images\val test: .\datasets\images\test nc: 30 names: ['Apple Scab Leaf', 'Apple leaf', 'Apple rust leaf', 'Bell_pepper leaf spot', 'Bell_pepper leaf', 'Blueberry leaf', 'Cherry leaf', 'Corn Gray leaf spot', 'Corn leaf blight', 'Corn rust leaf', 'Peach leaf', 'Potato leaf early blight', 'Potato leaf late blight', 'Potato leaf', 'Raspberry leaf', 'Soyabean leaf', 'Soybean leaf', 'Squash Powdery mildew leaf', 'Strawberry leaf', 'Tomato Early blight leaf', 'Tomato Septoria leaf spot', 'Tomato leaf bacterial spot', 'Tomato leaf late blight', 'Tomato leaf mosaic virus', 'Tomato leaf yellow virus', 'Tomato leaf', 'Tomato mold leaf', 'Tomato two spotted spider mites leaf', 'grape leaf black rot', 'grape leaf']

数据集制作流程

  • 标注数据:使用标注工具(如LabelImg、CVAT等)对图像中的目标进行标注。每个目标需要标出边界框,并且标注类别。

  • 转换格式:将标注的数据转换为YOLO格式。YOLO标注格式为每行:<object-class> <x_center> <y_center> <width> <height>,这些坐标是相对于图像尺寸的比例。

  • 分割数据集:将数据集分为训练集、验证集和测试集,通常的比例是80%训练集、10%验证集和10%测试集。

  • 准备标签文件:为每张图片生成一个对应的标签文件,确保标签文件与图片的命名一致。

  • 调整图像尺寸:根据YOLO网络要求,统一调整所有图像的尺寸(如416x416或608x608)。

四、项目环境配置

创建虚拟环境

首先新建一个Anaconda环境,每个项目用不同的环境,这样项目中所用的依赖包互不干扰。

终端输入

conda create -n yolov10 python==3.9

激活虚拟环境

conda activate yolov10

安装cpu版本pytorch

pip install torch torchvision torchaudio

pycharm中配置anaconda

安装所需要库

pip install -r requirements.txt

五、模型训练

训练代码

from ultralytics import YOLOv10 model_path = 'yolov10s.pt' data_path = 'datasets/data.yaml' if __name__ == '__main__': model = YOLOv10(model_path) results = model.train(data=data_path, epochs=500, batch=64, device='0', workers=0, project='runs/detect', name='exp', )
根据实际情况更换模型 yolov10n.yaml (nano):轻量化模型,适合嵌入式设备,速度快但精度略低。 yolov10s.yaml (small):小模型,适合实时任务。 yolov10m.yaml (medium):中等大小模型,兼顾速度和精度。 yolov10b.yaml (base):基本版模型,适合大部分应用场景。 yolov10l.yaml (large):大型模型,适合对精度要求高的任务。
  • --batch 64:每批次64张图像。
  • --epochs 500:训练500轮。
  • --datasets/data.yaml:数据集配置文件。
  • --weights yolov10s.pt:初始化模型权重,yolov10s.pt是预训练的轻量级YOLO模型。

训练结果

六、核心代码

import sys import cv2 import numpy as np from PyQt5.QtWidgets import QApplication, QMessageBox, QFileDialog from PyQt5.QtCore import QThread, pyqtSignal from ultralytics import YOLOv10 from UiMain import UiMainWindow import time import os class DetectionThread(QThread): frame_received = pyqtSignal(np.ndarray, np.ndarray, list) # 原始帧, 检测帧, 检测结果 finished_signal = pyqtSignal() # 线程完成信号 def __init__(self, model, source, conf, iou, parent=None): super().__init__(parent) self.model = model self.source = source self.conf = conf self.iou = iou self.running = True def run(self): try: if isinstance(self.source, int) or self.source.endswith(('.mp4', '.avi', '.mov')): # 视频或摄像头 cap = cv2.VideoCapture(self.source) while self.running and cap.isOpened(): ret, frame = cap.read() if not ret: break # 保存原始帧 original_frame = frame.copy() # 检测 results = self.model(frame, conf=self.conf, iou=self.iou) annotated_frame = results[0].plot() # 提取检测结果 detections = [] for result in results: for box in result.boxes: class_id = int(box.cls) class_name = self.model.names[class_id] confidence = float(box.conf) x, y, w, h = box.xywh[0].tolist() detections.append((class_name, confidence, x, y)) # 发送信号 self.frame_received.emit( cv2.cvtColor(original_frame, cv2.COLOR_BGR2RGB), cv2.cvtColor(annotated_frame, cv2.COLOR_BGR2RGB), detections ) # 控制帧率 time.sleep(0.03) # 约30fps cap.release() else: # 图片 frame = cv2.imread(self.source) if frame is not None: original_frame = frame.copy() results = self.model(frame, conf=self.conf, iou=self.iou) annotated_frame = results[0].plot() # 提取检测结果 detections = [] for result in results: for box in result.boxes: class_id = int(box.cls) class_name = self.model.names[class_id] confidence = float(box.conf) x, y, w, h = box.xywh[0].tolist() detections.append((class_name, confidence, x, y)) self.frame_received.emit( cv2.cvtColor(original_frame, cv2.COLOR_BGR2RGB), cv2.cvtColor(annotated_frame, cv2.COLOR_BGR2RGB), detections ) except Exception as e: print(f"Detection error: {e}") finally: self.finished_signal.emit() def stop(self): self.running = False class MainWindow(UiMainWindow): def __init__(self): super().__init__() # 初始化模型 self.model = None self.detection_thread = None self.current_image = None self.current_result = None self.video_writer = None self.is_camera_running = False self.is_video_running = False self.last_detection_result = None # 新增:保存最后一次检测结果 # 连接按钮信号 self.image_btn.clicked.connect(self.detect_image) self.video_btn.clicked.connect(self.detect_video) self.camera_btn.clicked.connect(self.detect_camera) self.stop_btn.clicked.connect(self.stop_detection) self.save_btn.clicked.connect(self.save_result) # 初始化模型 self.load_model() def load_model(self): try: model_name = self.model_combo.currentText() self.model = YOLOv10(f"{model_name}.pt") # 自动下载或加载本地模型 self.update_status(f"模型 {model_name} 加载成功") except Exception as e: QMessageBox.critical(self, "错误", f"模型加载失败: {str(e)}") self.update_status("模型加载失败") def detect_image(self): if self.detection_thread and self.detection_thread.isRunning(): QMessageBox.warning(self, "警告", "请先停止当前检测任务") return file_path, _ = QFileDialog.getOpenFileName( self, "选择图片", "", "图片文件 (*.jpg *.jpeg *.png *.bmp)") if file_path: self.clear_results() self.current_image = cv2.imread(file_path) self.current_image = cv2.cvtColor(self.current_image, cv2.COLOR_BGR2RGB) self.display_image(self.original_image_label, self.current_image) # 创建检测线程 conf = self.confidence_spinbox.value() iou = self.iou_spinbox.value() self.detection_thread = DetectionThread(self.model, file_path, conf, iou) self.detection_thread.frame_received.connect(self.on_frame_received) self.detection_thread.finished_signal.connect(self.on_detection_finished) self.detection_thread.start() self.update_status(f"正在检测图片: {os.path.basename(file_path)}") def detect_video(self): if self.detection_thread and self.detection_thread.isRunning(): QMessageBox.warning(self, "警告", "请先停止当前检测任务") return file_path, _ = QFileDialog.getOpenFileName( self, "选择视频", "", "视频文件 (*.mp4 *.avi *.mov)") if file_path: self.clear_results() self.is_video_running = True # 初始化视频写入器 cap = cv2.VideoCapture(file_path) frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps = cap.get(cv2.CAP_PROP_FPS) cap.release() # 创建保存路径 save_dir = "results" os.makedirs(save_dir, exist_ok=True) timestamp = time.strftime("%Y%m%d_%H%M%S") save_path = os.path.join(save_dir, f"result_{timestamp}.mp4") fourcc = cv2.VideoWriter_fourcc(*'mp4v') self.video_writer = cv2.VideoWriter(save_path, fourcc, fps, (frame_width, frame_height)) # 创建检测线程 conf = self.confidence_spinbox.value() iou = self.iou_spinbox.value() self.detection_thread = DetectionThread(self.model, file_path, conf, iou) self.detection_thread.frame_received.connect(self.on_frame_received) self.detection_thread.finished_signal.connect(self.on_detection_finished) self.detection_thread.start() self.update_status(f"正在检测视频: {os.path.basename(file_path)}") def detect_camera(self): if self.detection_thread and self.detection_thread.isRunning(): QMessageBox.warning(self, "警告", "请先停止当前检测任务") return self.clear_results() self.is_camera_running = True # 创建检测线程 (默认使用摄像头0) conf = self.confidence_spinbox.value() iou = self.iou_spinbox.value() self.detection_thread = DetectionThread(self.model, 0, conf, iou) self.detection_thread.frame_received.connect(self.on_frame_received) self.detection_thread.finished_signal.connect(self.on_detection_finished) self.detection_thread.start() self.update_status("正在从摄像头检测...") def stop_detection(self): if self.detection_thread and self.detection_thread.isRunning(): self.detection_thread.stop() self.detection_thread.quit() self.detection_thread.wait() if self.video_writer: self.video_writer.release() self.video_writer = None self.is_camera_running = False self.is_video_running = False self.update_status("检测已停止") def on_frame_received(self, original_frame, result_frame, detections): # 更新原始图像和结果图像 self.display_image(self.original_image_label, original_frame) self.display_image(self.result_image_label, result_frame) # 保存当前结果帧用于后续保存 self.last_detection_result = result_frame # 新增:保存检测结果 # 更新表格 self.clear_results() for class_name, confidence, x, y in detections: self.add_detection_result(class_name, confidence, x, y) # 保存视频帧 if self.video_writer: self.video_writer.write(cv2.cvtColor(result_frame, cv2.COLOR_RGB2BGR)) def on_detection_finished(self): if self.video_writer: self.video_writer.release() self.video_writer = None self.update_status("视频检测完成,结果已保存") elif self.is_camera_running: self.update_status("摄像头检测已停止") else: self.update_status("图片检测完成") def save_result(self): if not hasattr(self, 'last_detection_result') or self.last_detection_result is None: QMessageBox.warning(self, "警告", "没有可保存的检测结果") return save_dir = "results" os.makedirs(save_dir, exist_ok=True) timestamp = time.strftime("%Y%m%d_%H%M%S") if self.is_camera_running or self.is_video_running: # 保存当前帧为图片 save_path = os.path.join(save_dir, f"snapshot_{timestamp}.jpg") cv2.imwrite(save_path, cv2.cvtColor(self.last_detection_result, cv2.COLOR_RGB2BGR)) self.update_status(f"截图已保存: {save_path}") else: # 保存图片检测结果 save_path = os.path.join(save_dir, f"result_{timestamp}.jpg") cv2.imwrite(save_path, cv2.cvtColor(self.last_detection_result, cv2.COLOR_RGB2BGR)) self.update_status(f"检测结果已保存: {save_path}") def closeEvent(self, event): self.stop_detection() event.accept() if __name__ == "__main__": app = QApplication(sys.argv) # 设置应用程序样式 app.setStyle("Fusion") # 创建并显示主窗口 window = MainWindow() window.show() sys.exit(app.exec_())

七、项目

演示与介绍视频:

基于深度学习的植物病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)_哔哩哔哩_bilibili

基于深度学习的植物病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1174505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的交通标志检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 本项目致力于开发一个基于YOLOv10的交通标志检测系统&#xff0c;旨在通过计算机视觉技术实现对交通标志的高效检测与识别。该系统能够实时处理来自交通监控摄像头的视频流或图片&#xff0c;自动识别并标注出其中的交通标志&#xff0c;为自动驾驶、智能交通系统…

MICROSERVICE - Dev Mentor - Consul + Fabio

MICROSERVICE - Dev Mentor - Consul + FabioSetup rabbitmq using Docker [root@szsit148 ~]# docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 --h ostname rabbitmq rabbitmq:3-management [root@szsi…

MICROSERVICE - Dev Mentor - Consul + Fabio

MICROSERVICE - Dev Mentor - Consul + FabioSetup rabbitmq using Docker [root@szsit148 ~]# docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 --h ostname rabbitmq rabbitmq:3-management [root@szsi…

基于深度学习的杂草检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 本项目使用YOLO&#xff08;You Only Look Once&#xff09;目标检测算法进行特定杂草的自动识别&#xff0c;目标是通过计算机视觉技术识别并定位农田中的“0 ridderzuring”杂草&#xff0c;从而帮助农业自动化管理。杂草的及时识别与处理对于提高农业生产效率、…

DEV TEST- Test Driven Development (Integration Test)

DEV TEST- Test Driven Development (Integration Test)Tdd is about showing external observable behavior, it is a design tool and rely on your test to dictate how your structure your code.[TestMethod]pu…

dify/coze/n8n 智能体开发避坑指南

点赞、关注、收藏&#xff0c;不迷路 智能体&#xff08;AI Agent&#xff09;开发中&#xff0c;Dify&#xff08;专注可视化 LLM 应用搭建&#xff09;、Coze&#xff08;字节智能体开发平台&#xff09;、N8N&#xff08;开源自动化工作流工具&#xff09;是新手入门的核心工…

DEV TEST- Test Driven Development (Integration Test)

DEV TEST- Test Driven Development (Integration Test)Tdd is about showing external observable behavior, it is a design tool and rely on your test to dictate how your structure your code.[TestMethod]pu…

基于深度学习的昆虫识别检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 本系统基于YOLOv10模型&#xff0c;专门设计用于检测和识别10类常见的农业害虫。这些害虫包括&#xff1a;army worm&#xff08;粘虫&#xff09;、legume blister beetle&#xff08;豆芫菁&#xff09;、red spider&#xff08;红蜘蛛&#xff09;、rice gall …

DEV TEST - Full stack Bootstrap and ASP.NET MVC - Testing

DEV TEST - Full stack Bootstrap and ASP.NET MVC - Testing,General topic : https://www.cnblogs.com/Mattcoder/p/8878481.html Unit Test Integration Test - NetCoreIntegration Test - Net4.5 Unit Test at al…

DEV TEST - Full stack Bootstrap and ASP.NET MVC - Testing

DEV TEST - Full stack Bootstrap and ASP.NET MVC - Testing,General topic : https://www.cnblogs.com/Mattcoder/p/8878481.html Unit Test Integration Test - NetCoreIntegration Test - Net4.5 Unit Test at al…

基于深度学习的鸡检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 本研究开发了一种基于YOLOv10的鸡检测和跟踪系统&#xff0c;专注于检测单一类别&#xff1a;rooster&#xff08;鸡&#xff09;。该系统旨在实现对鸡的实时检测和跟踪&#xff0c;适用于养殖场管理、行为研究等场景。YOLOv10作为一种高效的目标检测模型&#xf…

VIRTUALIZATION - Kubernates - Azure Kubernetes Service

VIRTUALIZATION - Kubernates - Azure Kubernetes Service retag the image to make it azure friendly

WEB - AngularJS and Typescript

WEB - AngularJS and TypescriptSource code https://github.com/mattcoder2017/CoreTypescript/tree/master/WebApplication1 AngularIO: https://angular.io/ Nodejs vs angular compatiblity matrix https://angul…

基于深度学习的香蕉成熟度识别检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 本文介绍了基于YOLOv10的香蕉成熟度检测系统&#xff0c;旨在通过计算机视觉技术自动识别和分类香蕉的成熟度。该系统能够准确区分六种不同的成熟度类别&#xff1a;新鲜成熟&#xff08;freshripe&#xff09;、新鲜未成熟&#xff08;freshunripe&#xff09;、…

基于深度学习的疲劳驾驶检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 本项目旨在开发一个基于YOLOv10的疲劳检测系统&#xff0c;用于实时检测驾驶员的疲劳状态。系统通过分析驾驶员的面部表情&#xff0c;特别是眼睛和嘴巴的状态&#xff0c;来判断其是否处于疲劳状态。模型共分为四类&#xff1a;打哈欠&#xff08;Yawn&#xff0…

强烈安利!自考必看TOP8一键生成论文工具测评

强烈安利&#xff01;自考必看TOP8一键生成论文工具测评 2026年自考论文工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着自考人数逐年增加&#xff0c;论文写作成为众多考生必须面对的难题。从选题构思到文献整理&#xff0c;再到格式规范和内容润色&#xff0c;每…

基于深度学习的生菜周期检测系统(YOLOv10+YOLO数据集+UI界面+Python+模型)

一、项目介绍 YOLOv10生菜生长周期检测系统 是一个基于YOLOv10&#xff08;You Only Look Once version 10&#xff09;目标检测算法的智能系统&#xff0c;专门用于检测和分类生菜在不同生长阶段的生长状态。该系统能够自动识别生菜的生长周期&#xff0c;并将其分类为五个不…

西门子200Smart加Smart 1000 IE水处理程序画面案例。 采用成熟、可靠、先进、...

西门子200Smart加Smart 1000 IE水处理程序画面案例。 采用成熟、可靠、先进、自动化程度高的反渗透精混床除盐水处理工艺&#xff0c;确保处理后的超纯水水质确保处理后出水电阻率达到18.2MΩ.cm, 高纯水制取设备关键设备及耗材采用国际主流先进可靠产品&#xff0c;采用PLC触摸…

震惊!这家浙江头部AI科技公司,竟然藏着这样的秘密!

震惊&#xff01;这家浙江头部AI科技公司&#xff0c;竟然藏着这样的秘密&#xff01;当前行业内对AI技术的认知多聚焦于技术迭代&#xff0c;却鲜少关注落地环节的“适配成本”问题。尤其在中小微企业中&#xff0c;这一痛点尤为突出。许多企业在推进AI转型时&#xff0c;常常…

计算机毕业设计 java 疫苗预约系统 基于 Java 的智能疫苗接种预约管理平台 Java 疫苗接种全流程管理系统

计算机毕业设计 java 疫苗预约系统 9&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着网络科技的飞速发展和人们健康意识的提升&#xff0c;疫苗预约需求日益增长&#xff0c;传统线下预约模…