(有报告 跑通)基于YOLOV8的花卉检测识别系统 基于深度学习的花卉检测识别系统 有数据集 ...
数据集共15类 \"雏菊\", '蒲公英', '玫瑰', '向日葵', '素馨花', '栀子花', '金盏花', '芙蓉花', '金银花', '印度锦葵', '麻风树属', '马拉巴尔木槿', '万寿菊', '香花', '蜘蛛百合'数据集共15类 \"雏菊\", '蒲公英', '玫瑰', '向日葵', '素馨花', '栀子花', '金盏花', '芙蓉花', '金银花', '印度锦葵', '麻风树属
(有报告 跑通)基于YOLOV8的花卉检测识别系统 基于深度学习的花卉检测识别系统 有数据集 模型已经训练好 直接用即可 包搭配环境 远程运行跑通程序 本项目已经训练好模型,配置好环境可直接使用,运行效果见图像(可找我要演示视频) 项目介绍: 软件:Pycharm+Anaconda 环境:python=3.9 opencv-python PyQt5 torch1.9 文件: 1.完整程序文件(.py等 2.UI界面源文件、图标(.ui、.qrc、.py等) 3.测试图片、视频文件(.jpeg、.mp4、.avi等) 数据集共15类 \"雏菊\", '蒲公英', '玫瑰', '向日葵', '素馨花', '栀子花', '金盏花', '芙蓉花', '金银花', '印度锦葵', '麻风树属', '马拉巴尔木槿', '万寿菊', '香花', '蜘蛛百合' 功能: 系统可用于花卉检测识别; 支持图片、视频及摄像头进行检测: 界面可实时显示目标位置、目标总数、置信度等信息: 支持检测结果保存; ①选择图片进行对于花卉检测识别 ②选择视频进行对于花卉检测识别 ③摄像头进行检测对于花卉检测识别

想不想用摄像头对准花园就能自动识别出玫瑰还是向日葵?今天咱们来玩个有意思的——基于YOLOv8训练好的15种花卉检测系统。不用自己标注数据,不用漫长训练,环境都给你配好了,拿来就能直接开箱检测!

这个项目的最大优势是"即插即用"。下载完压缩包后,用conda创建个虚拟环境:
conda create -n flower_det python=3.9
conda activate flower_det
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
核心检测代码藏在detect_flowers.py里,来看这段视频检测的精华部分:
def video_detect(self, video_path):
cap = cv2.VideoCapture(video_path)
while True:
ret, frame = cap.read()
if not ret: break
results = self.model.predict(frame, conf=0.6)
annotated_frame = results[0].plot()
# 实时统计花仙子数量
self.label_count.setText(f"Detected: {len(results[0])}")
# 把带框的画面怼到UI上
self.display_image(annotated_frame)
cap.release()
这里用了YOLOv8原生的predict接口,conf参数控制着检测阈值。有意思的是results[0].plot()自带了画框功能,比自己写OpenCV画框省事多了。注意那个0.6的置信度阈值,调低点能抓更多花但可能有误检,根据实际场景微调。

(有报告 跑通)基于YOLOV8的花卉检测识别系统 基于深度学习的花卉检测识别系统 有数据集 模型已经训练好 直接用即可 包搭配环境 远程运行跑通程序 本项目已经训练好模型,配置好环境可直接使用,运行效果见图像(可找我要演示视频) 项目介绍: 软件:Pycharm+Anaconda 环境:python=3.9 opencv-python PyQt5 torch1.9 文件: 1.完整程序文件(.py等 2.UI界面源文件、图标(.ui、.qrc、.py等) 3.测试图片、视频文件(.jpeg、.mp4、.avi等) 数据集共15类 \"雏菊\", '蒲公英', '玫瑰', '向日葵', '素馨花', '栀子花', '金盏花', '芙蓉花', '金银花', '印度锦葵', '麻风树属', '马拉巴尔木槿', '万寿菊', '香花', '蜘蛛百合' 功能: 系统可用于花卉检测识别; 支持图片、视频及摄像头进行检测: 界面可实时显示目标位置、目标总数、置信度等信息: 支持检测结果保存; ①选择图片进行对于花卉检测识别 ②选择视频进行对于花卉检测识别 ③摄像头进行检测对于花卉检测识别

UI界面是PyQt5做的,看看摄像头检测按钮的响应:
def webcam_detect(self):
self.cap = cv2.VideoCapture(0)
while self.thread_flag:
ret, frame = self.cap.read()
if ret:
results = self.model.predict(frame)
# 把BGR转RGB给QImage吃
rgb_image = cv2.cvtColor(results[0].plot(), cv2.COLOR_BGR2RGB)
h, w, ch = rgb_image.shape
bytes_per_line = ch * w
convert_to_Qt_format = QImage(rgb_image.data, w, h, bytes_per_line, QImage.Format_RGB888)
self.label_display.setPixmap(QPixmap.fromImage(convert_to_Qt_format))
这里有个坑要注意:OpenCV读的是BGR格式,而PyQt的QImage需要RGB格式,不转颜色的话画面会发蓝。那个while循环里的thread_flag是个安全开关,关闭窗口时会自动终止摄像头采集。
实际测试中发现金盏花和万寿菊容易混淆,毕竟都是橘黄色系的花。这时候可以拉高conf到0.7以上,或者加个NMS(非极大抑制):
results = model.predict(source, conf=0.6, iou=0.5) # 调大iou值减少重叠框
想保存检测结果?程序里藏了个彩蛋:
# 在检测函数里加个时间戳保存
if self.save_flag:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
cv2.imwrite(f"results/{timestamp}.jpg", annotated_frame)
记得先在程序根目录建个results文件夹,不然会报错找不到路径。这个保存功能特别适合做花卉普查时批量记录。
最后说个冷知识:数据集里的"蜘蛛百合"其实是石蒜科的,和真正的百合没关系。所以当你在公园检测到这花时,可以掏出这个冷知识惊艳同行的小伙伴~ 整套代码已经打包好,想要体验的朋友私信我拿演示视频,保证你分分钟变身行走的"植物百科全书"!
更多推荐
所有评论(0)