ReceiptCropper · Vision
票据裁切:自动识别不是只要裁出来就行
ReceiptCropper 的目标很简单:从相册导入一张票据或文件照片,自动裁切、摆正、增强,然后保存干净结果。
但最近我遇到一个很典型的问题:有些照片里背景很复杂,比如彩色广告牌、包装、桌面图案。自动检测确实会给出一个矩形,但那个矩形不一定是票据。
自动裁切的错觉
视觉检测 API 很擅长找边缘,但它不知道用户真正想保存什么。只要照片里有高对比、规则边缘的东西,它就可能被当成文档。
所以 v1.0.4 做的不是「让算法永远正确」。这不现实。它做的是识别风险:当结果里出现大面积高饱和背景,或者裁切区域明显不像一张朴素票据时,提示用户检查四角。
为什么不是直接报错
自动裁切工具如果太自信,会保存错图;如果太保守,又会一直打断用户。这里更合适的方式是给出轻量提醒。
所以 UI 上我没有用红色错误,而是把操作按钮文案变成「检查四角」。用户确认后,这次手动调整会被视为可信结果,后续保存和分享都走这个结果。
v1.0.3 先解决了操作路径
在处理复杂背景之前,v1.0.3 先把结果页的操作收紧了:微调四角、分享/导出、保存到照片放到同一行,减少滚动。
这件事看起来是 UI 小改,但对票据处理很重要。用户处理完照片后,下一步应该非常明确:调整、导出、保存。按钮分散会让整个流程显得犹豫。
这次用到的思路
- 用系统视觉能力做文档边缘检测和透视校正
- 保留高分辨率输出,避免预览图质量影响保存结果
- 给自动结果增加轻量质量判断,而不是盲目信任检测框
- 手动调整后把结果标记为可信,避免反复提示
- 原图不覆盖,处理结果另存,降低用户试错成本
这类工具的体验关键不是「一次成功率 100%」,而是失败时用户知道该怎么修。自动化要做,但把控制权还给用户也同样重要。