1. 项目概述:当YOLO遇上SpringBoot的船舶识别革命
在港口调度室亲眼目睹操作员盯着十几块监控屏幕手动记录船舶信息时,我就意识到这个行业需要一场技术变革。传统的人工识别方式不仅效率低下,在夜间或恶劣天气下的准确率更是惨不忍睹。这就是为什么我们团队决定开发这套基于YOLO系列算法与SpringBoot的智能船舶检测系统——用AI的眼睛重新定义海事监管。
这个系统最核心的价值在于:它首次将YOLOv8到v12四个世代的目标检测算法集成到统一的Web平台中,支持对集装箱船、邮轮等五类船舶的实时识别。不同于实验室里的demo,我们实现了从算法训练到工程落地的完整闭环:
- 后端采用SpringBoot构建微服务,处理峰值QPS可达1200+
- 前端使用Vue3+Element Plus实现交互式可视化
- 数据库选用MySQL 8.0存储超过50个维度的检测数据
- 模型训练采用3721张专业标注的船舶图像
实测在1080P分辨率下,系统对移动船舶的识别延迟仅380ms,准确率达到91.7%。更关键的是,管理员可以随时在Web界面切换不同版本的YOLO模型,直观比较它们在相同场景下的性能差异——这个功能在船舶识别领域尚属首创。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计:如何让AI模型跑在Web服务里
2.1 技术选型的底层逻辑
选择YOLO系列算法主要基于三个考量:
- 单阶段检测器的特性使其推理速度比Faster R-CNN快3-5倍
- v8到v12的渐进式改进覆盖了从精度到速度的不同需求
- Ultralytics生态提供了完善的Python接口和预训练模型
而SpringBoot的入选则是因为:
- 内置Tomcat容器简化部署
- Spring Security天然支持JWT鉴权
- MyBatis-Plus极大简化数据库操作
2.2 前后端分离架构详解
系统采用经典的B/S架构:
code复制[浏览器] ←HTTP→ [Nginx] ←RESTful API→ [SpringBoot] ←gRPC→ [Python服务]
↑
↓
[MySQL]
关键设计点:
- 使用gRPC而非HTTP进行AI服务通信,降低序列化开销
- 采用Redis缓存高频访问的模型参数
- MinIO对象存储处理视频片段的分块上传
2.3 数据库ER图设计
主要包含6张核心表:
users:用户基础信息model_versions:存储不同YOLO模型的权重文件路径detection_records:所有检测记录的父表img_records/video_records/camera_records:继承自
