图上的文字也要能搜:OCR 功能详解
什么是图内文字搜索
这是 Rays 一个经常被低估的功能:不仅能搜标签和标题,还能搜图片本身包含的文字内容。
举个例子——你有一张表情包,图上写着"好的收到"。你可能忘了给它打标签、也没给它起标题,但只要图上有这四个字,在搜索框里输入"好的收到"就能搜到它。
这就是 OCR(光学字符识别)——让应用"读"懂图片上的文字。
OCR 是怎么工作的
Rays 的 OCR 能力基于 ML Kit(Google 的移动端机器学习工具集)的文本识别模型:
- 处理时机:图片导入时自动执行(首次导入花几秒,之后有缓存)
- 运行位置:设备本地,不上传任何图片内容到服务器
- 语言支持:默认支持中文简体、英文等主流语言
- 识别范围:整张图上的所有文字区域(不区分正文/图注/水印)
OCR 能识别什么
能识别的
- 清晰的印刷体文字(表情包上最常见的形式)
- 电脑字体、手机系统字体、截图中的文字
- 横排、竖排文字
识别不好的
- 手写体(模型对非标准手写的识别率有限)
- 艺术字、扭曲变形的文字
- 极小字号(分辨率不够的图)
- 颜色接近背景的文字(对比度低)
- 动图 GIF(目前只识别首帧)
如何验证 OCR 效果
收完一批图后:
- 打开某张图的详情页
- 应该能看到一个OCR 识别结果或类似区域
- 确认识别出的文字是否准确
如果发现某些图的 OCR 结果为空或不准确,可以手动触发重新识别(具体入口随版本变化,以实际界面为准)。
OCR 和搜索域的关系
OCR 识别出的文字会进入一个独立的搜索字段。在搜索域设置里,你可以选择要不要把这个字段纳入搜索范围:
- 开启:搜索时会同时匹配标签、标题、图内文字(默认,推荐)
- 关闭:只搜标签和标题(如果你嫌 OCR 结果太杂)
详情见 搜索域概念:指定搜哪些字段。
OCR 的性能影响
- 首次导入:每张图多花 1-3 秒(取决于图片分辨率和设备算力)
- 之后使用:缓存已做好,不影响搜索速度
- 批量导入 50 张:整体约多花 1-2 分钟(可以接受的一次性投入)
如果你特别在意首次导入速度,可以在某些版本里关闭自动 OCR(以实际界面为准),之后手动批量触发。
为什么这个功能很重要
你在聊天中收到的绝大多数表情包上都有文字——要么是一句梗、要么是一个情绪词、要么是一个口头禅。标签需要你手动打、标题需要你手动设,但图上的文字是现成的,Rays 自动帮你收进索引。
"好的收到"、"在忙"、"无语"、"加油"、"社死现场"——这些词你可能不会特意去打标签,但以后搜的时候,OCR 让你直接命中。