本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。

一、项目描述

基于深度学习的植物图像识别系统

基于 ONNX 深度学习模型的植物图像识别系统,可通过用户上传的植物图片自动识别其物种、属、科分类,并给出置信度。支持 4066 种植物的高精度识别(Top-1 准确率 84.8%,Top-5 准确率 95.9%)。

二、项目功能

– 植物图像识别 :基于预训练 ONNX 模型,对输入的植物图片进行物种、属、科三级分类识别,返回 Top-K 结果及概率
– 交互式 GUI 选图 :通过文件选择对话框支持用户多选任意本地图片(jpg/png/bmp/webp/tiff)
– 识别结果可视化 :在图片上叠加中文识别结果标注(物种 Top3、属/科 Top1),并弹出窗口显示
– 识别结果记录 :将每次识别的时间戳、图片路径、识别耗时、Top-5 物种结果等自动保存到 JSON 文件,支持历史记录加载
– 批量处理 :支持一次性选择多张图片依次识别,可按 ESC 跳过当前批次
– 无 GUI 模式 :提供纯控制台输出版本,适合无图形界面的服务器环境

三、运行环境

运行环境开发工具:Trae CN

运行环境:
– 操作系统:Windows 10 Pro
– Python:3.13.5 (Anaconda)
– 依赖包:opencv-python 4.13.0.92、pillow 10.4.0、khandy 0.1.28、onnxruntime 1.29.0、numpy 2.1.3
– 模型文件:quarrying_plantid_model.onnx (29.5 MB)(此配置为本人调试所用,仅供参考)

四、项目技术

服务端技术:- Python 3.13
– onnxruntime (ONNX 模型推理引擎)
– OpenCV (图像读取、缩放裁剪、窗口显示)
– khandy (图像预处理工具库,含 resize/center_crop/softmax 等)
– Pillow / PIL (中文文字绘制)
– tkinter (文件选择对话框、消息弹窗)
– NumPy (张量运算)
前端技术:- OpenCV HighGUI (cv2.imshow / namedWindow / waitKey) 图片显示窗口
– PIL ImageDraw (在图片上绘制中文识别结果标注)
– tkinter filedialog (本地图片文件选择对话框)

以上系统源码经过技术整理与调试,确保能正常运行

五、项目截图

更多推荐