鑫都中学 · 潘栎霖

猫咪粪便照片观察系统

技术文档 · 千问视觉版

← 返回检测页面

一、系统流程图

浏览器选择照片
    ↓
服务器校验格式、限制体积、按 EXIF 校正方向并缩小尺寸
    ↓
千问视觉模型读取照片,返回结构化 JSON
    ↓
服务端校验字段与状态 → 页面展示可见特征和注意事项
    ↓
用户可查看同一次视觉分析生成的文字说明

图片仅用于本次请求,不再由固定棕色阈值过滤,也不保存到原有上传目录。

二、软件基础信息

后端使用 Python、Flask 和 Pillow,前端使用 HTML、CSS、JavaScript。视觉分析调用阿里云百炼兼容接口的 qwen-vl-plus,以 Base64 Data URL 传入经缩放的 JPEG,并要求返回 JSON 对象。密钥由服务器环境配置读取,不写入网页或项目源码。

接口 POST /cat-poop/api/detect 接收图片,返回存在状态、可见形态、颜色、Purina 参考等级(无法判断时为空)、疑似血色/黏液/异物的可见状态及观察建议。

三、软件系统设计

系统分为图片接入、视觉推理、结果校验、页面展示四层。服务端只接受有效图片,最大请求体积 16 MB、最大 4000 万像素,推理前最长边缩至 1600 像素。模型返回 present、absent 或 uncertain;模糊、遮挡或猫砂团块难辨时,页面显示“无法确认”,不把它当作确定的阴性结果。

千问服务超时或返回异常时,接口返回可见的错误提示,不回退到旧的颜色阈值路线,也不伪造健康评分。

四、软件设计

提示词要求模型依据实际可见内容描述颜色、成形程度、可能的异物,并在可以判断时给出 Purina 1–7 级参考分级。输出经过字段白名单和枚举校验;无明确粪便或图像不清时不显示分级。页面对模型文字进行 HTML 转义,避免把返回文本当作网页代码执行。

“照片中未见血色/黏液”只代表照片中没有清楚看到,不等于临床排除。单张照片无法确认粪便是否属于猫,也不能诊断疾病;持续腹泻、血便、黑便或精神食欲异常应咨询兽医。

版本:千问视觉版。识别效果仍受拍摄清晰度、遮挡、光照和模型误判影响。