基于深度学习的锦鲤智能分选与品相判别 Streamlit 演示系统
项目背景
锦鲤是一类具有较高经济价值的观赏鱼,其商业价值在很大程度上取决于品种、体型、颜色、斑纹和整体外观品相。在锦鲤养殖过程中,鱼苗期需要根据外观特征进行优质苗种分选,成鱼期则需要对锦鲤品种和品相进行判别。
传统锦鲤鱼苗分选主要依赖人工完成,存在工作量大、效率低和人力成本高等问题;成鱼品相评价则容易受到评价人员经验和主观判断影响,缺乏统一、客观的量化标准,难以满足锦鲤规模化养殖和市场交易中对高品质个体精准评价的需求。
针对鱼苗个体高度聚集、细粒度特征难以提取,以及成鱼品种外观相似、颜色和斑纹特征复杂等问题,项目基于深度学习和图像处理技术,构建锦鲤鱼苗分选与成鱼品相判别方法。在此基础上,将训练完成的识别模型封装为 Streamlit Web 演示系统,实现图片上传、模型推理、结果展示和容器化部署,便于开展模型验证、成果展示和跨设备应用。
我的工作
- 参与锦鲤鱼苗分选与成鱼品相判别项目的系统开发和成果展示
- 整理锦鲤识别模型、推理代码、类别配置和模型权重
- 将锦鲤鱼苗分选、品种识别和品相评价模型接入应用系统
- 使用 Streamlit 构建交互式 Web 演示界面
- 实现图片上传、模型选择、模型加载、推理执行和结果展示
- 解析模型输出,绘制旋转检测框、类别信息和置信度
- 展示锦鲤品种识别结果及相关品相评价信息
- 完成镜像构建、容器启动、运行测试和离线打包
核心功能
- 支持锦鲤鱼苗目标检测与分类分选
- 支持成鱼锦鲤品种识别
- 支持颜色、斑纹和体型等品相特征分析
- 支持锦鲤品相评分结果展示
- 展示目标类别、检测位置和模型置信度
- 支持原始图像与识别结果对比展示
技术方案
项目整体采用“鱼苗分选—品种识别—品相评价—Web 展示—容器部署”的技术路线。
在鱼苗分选阶段,针对鱼苗个体聚集导致普通水平检测框相互重叠的问题,采用旋转目标检测方法,使检测框能够更贴合鱼苗的实际轮廓,减少背景信息和目标重叠带来的干扰。在 YOLOv8-OBB 基础上引入置换注意力机制,增强空间特征与通道特征之间的信息交互,提高模型对锦鲤鱼苗细粒度外观差异的辨别能力。
同时,设计轻量化 P-C2f 模块替代原有 C2f 结构,通过部分卷积降低模型参数量和计算开销,在保持特征提取能力的同时压缩模型规模,最终形成锦鲤鱼苗旋转目标检测模型 Koi-YOLOv8-OBB。
在成鱼品相判别阶段,以 MobileViT 为基础构建多特征融合网络,加强局部纹理特征和全局外观特征的联合表达。针对不同锦鲤品种样本数量不均衡的问题,引入标签平滑损失函数优化训练过程,降低类别不均衡对模型分类结果的影响。
在品相量化方面,结合图像处理技术提取锦鲤颜色、斑纹和体型比例等关键特征,建立锦鲤品相评价公式,将传统依赖人工经验的品相判断转化为可计算、可比较的量化评分。
在应用展示阶段,使用 Streamlit 构建 Web 交互界面,将模型推理流程封装为浏览器应用。用户上传图像后,系统完成图像预处理、模型推理和结果解析,并展示检测框、类别、置信度及品相评价结果。
部署阶段使用 Docker 对 Python 环境、依赖库、应用代码和模型权重进行统一封装,通过 Docker Compose 管理应用端口、模型目录和容器启动配置,提高系统在展会展示、服务器部署及不同设备之间迁移的便利性。
项目成果
- 构建锦鲤鱼苗旋转目标检测模型 Koi-YOLOv8-OBB
- 鱼苗分选数据集识别准确率达到 97.5%
- 模型大小压缩 29.2%,最终模型大小为 4.6 MB
- 模型性能优于 GWD、RepPoints 和 YOLOv11-OBB 等对比方法
- 构建基于多特征融合的锦鲤成鱼品种识别模型
- 锦鲤品种识别准确率达到 97.3%
- 模型识别性能优于 ResNet、MobileNetV2 和 T2T 等分类模型
- 构建结合颜色、斑纹和体型比例的锦鲤品相评价方法
- 在测试样本中,9 条优质锦鲤平均得分为 3.45,9 条劣等锦鲤平均得分为 2.18,评分结果与实际品相一致
- 完成锦鲤鱼苗分选、品种识别和品相评价功能的系统集成
- 构建可通过浏览器访问的 Streamlit 演示系统
- 完成模型权重、运行环境和应用代码的 Docker 容器化封装
- 完成项目镜像构建、运行测试和离线打包,提高模型成果展示与迁移部署效率
技术栈
Python、PyTorch、YOLOv8-OBB、Koi-YOLOv8-OBB、MobileViT、Streamlit、Docker、Docker Compose、OpenCV、Pillow、图像处理、旋转目标检测、多特征融合