在信息爆炸的当下,我们每天都要处理海量的文件与图片,最令人困扰的场景莫过于“明明记得有,却怎么也找不到”。HarmonyOS 所搭载的 AI 通用文字识别技术,恰好能帮助用户轻松解决这一难题。

所谓基于 AI 的通用文字识别,本质上是将 OCR 技术与 AI 分词能力深度融合。该技术能够对图像信息进行文字检测、识别与关键信息提取,并依据分析结果提供翻译、搜索等后续服务。整个流程行云流水,仿佛为应用装上了一双“智能之眼”。
这项技术的核心在于 OCR(Optical Character Recognition,光学字符识别)。简而言之,OCR 通过拍照或扫描等光学方式,将各类票据、卡证、表格、报刊、书籍上的印刷文字转化为图像信息,再借助文字识别技术,将这些图像信息转换为计算机可处理的字符数据。而 AI 分词则负责对输入文本自动进行分词,并提供不同粒度的结果——例如“有奖征文”会被拆分为“有奖”与“征文”。
接下来,我们将通过一个“AI 文字识别”Demo,快速了解如何三步完成 AI 应用的开发。HarmonyOS 应用开发在线体验地址如下:https://playground.harmonyos.com/#/cn/onlineDemo
在 Demo 中,点击在线体验链接进入“AI 文字识别”示例后,可以看到图片列表中已收录多张不同图片。在输入框中输入关键词,点击“识别搜索”,会弹出提示框,点击“下一步”,搜索结果列表便会展示与关键词相关的图片。只需输入关键词,即可精准匹配到目标图片——从此无需在浩瀚图库中反复翻找。
这样方便高效的 AI 应用,其实三步即可完成。下面就来揭秘具体实现方法。
第一步,图片文字识别
如图 1 所示,通过调用 API:ITextDetector.detect(),对图片中的文字进行识别。具体实现位于代码第 21 行的 textDetector,此处传入了需要识别的图片(例如“有奖征文”图)和一个 text 组件,text 组件负责保存图片识别的结果,然后通过第 22 行的 sendResult 将文字识别结果发送至主线程。更多 API 详情可参考官网链接:ITextDetector.detect()官网介绍
第二步,智能分词
如图 2 所示,通过调用 API:NluClient.getWordSegment(),将输入的内容按不同词语粒度自动分割为多个关键词。例如在搜索框中输入“有奖征文”,系统会将其拆分为“有奖”和“征文”两个部分。具体实现位于代码第 13 行的 getWordSegment,参数 requestData 为输入的关键词,然后通过第 14 行的 sendResult 发送分词结果。更多 API 详情可参考官网链接:NluClient.getWordSegment()官网介绍
第三步,匹配图片
如图 3 所示,最后一步逻辑十分清晰:将分词后的结果(如“有奖征文”)与第一步获得的图片文字识别结果进行匹配。具体实现是将代码第 4 行的 list(关键词集合)与第 5 行的 imageInfos(图片文字识别结果集合)进行比对,若满足条件,则获取匹配的图片并展示在搜索结果中。仅需三个简单步骤,一个基于 AI 能力的图片搜索应用便宣告完成。
AI能力概述
了解完通用文字识别和分词这两项 AI 能力后,是否会觉得 AI 其实离我们并不遥远?使用起来也没有想象中复杂。实际上,除了这两项能力,HarmonyOS 还支持文档检测校正、文字图像超分、IM 类意图识别、语音识别、语音播报等 13 类 AI 能力。这些能力开箱即用,开发者可以灵活、便捷地选用,让应用变得更加智能。
