图片智能审核服务开发记录
日期:2026年5月16日
任务:Sprint 1 - 图片智能审核服务
一、任务概述
在设备管理子系统中实现图片自动审核功能,包括模糊检测、照片数量校验、角度多样性检查。目的是减少人工核验成本。
二、技术方案
模糊检测采用拉普拉斯方差算法,阈值100。角度去重采用感知哈希算法,计算图片相似度。全部用Java原生实现,不依赖OpenCV。
三、开发过程
环境配置遇到了问题。项目路径包含中文导致Maven无法识别,将项目从F:\数据库\railway-device-management移到F:\device-management后解决。Spring Boot 3.x的包路径有变化,javax.validation需要改成jakarta.validation,但javax.imageio保持不变。
核心代码包括四个类:BlurDetector负责模糊检测,PerceptualHash负责计算图片哈希,AngleDiversityChecker负责角度分组统计,ImageReviewService整合以上功能。
测试方面编写了单元测试和集成测试,覆盖模糊检测、哈希计算、并发场景。因测试图片目录为空,部分测试跳过,核心算法验证通过。
四、运行结果
服务启动成功,接口可正常访问。
五、明日任务
客服设备台账模块开发。
这是application文件的部分代码
Spring Boot 配置文件
spring:
application:
name: device-management-system
文件上传配置(如需接收前端直接上传文件)
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 50MB
服务器配置
server:
port: 8080
servlet:
context-path: /
请求超时配置
tomcat:
connection-timeout: 30000
max-connections: 200
threads:
max: 200
min-spare: 10
日志配置
logging:
level:
com.railway.device: DEBUG
org.springframework.web: INFO
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
图片审核服务配置
image:
review:
# 模糊检测阈值(低于此值判定为模糊,文档要求100)
blur-threshold: 100
角度相似度阈值(汉明距离小于此值视为同一角度)
angle-similarity-threshold: 10
保养场景最少角度数(文档要求≥3)
maintenance-min-angles: 3
图片处理时最大尺寸(像素,超过则缩放)
max-image-size: 1920
单次请求最大图片数量
max-photos-per-request: 20
业务场景配置
scene:
types:
- code: FAULT_REPAIR
name: 故障维修
min-photos: 1
check-angle: false
- code: INSPECTION
name: 巡检
min-photos: 1
check-angle: false
- code: MAINTENANCE
name: 保养
min-photos: 3
check-angle: true
- code: DETECTION
name: 检测
min-photos: 1
check-angle: false
浙公网安备 33010602011771号