"码上提分"这个项目名是个双关:对家长来说是"马上提分",对我来说是"写代码提分"。整个想法从起念到跑通,花了大概六周时间。核心就一件事——把手里的 Rokid AR 眼镜,做成一套能陪孩子写作业、讲题目、又不会让孩子分心去刷视频的智能作业辅导系统。
这篇文章不打算讲虚的。我会把整套系统的硬件组合方式、核心数据链路、每个功能模块的实现思路、调试时踩过的坑,以及孩子真实使用一个月后的效果全部摊开说。如果你也动过"拿 AR 设备做点教育场景"的念头,或者家里正好有个卡在作业题上的小学生,这篇文章应该能给你一份足够落地、可以直接照着复现的参考。
1. 从作业辅导崩溃现场到第一版原型
1.1 为什么非得给"辅导作业"做一套专属设备
先说说痛点。我家孩子上四年级,最崩溃的科目是数学应用题和英语完形填空。我辅导过几次之后发现,真正的难点不是题目本身难,而是"讲的方式不对"。家长辅导最容易犯的毛病是直接给答案、急着讲完,孩子表面点头,下次同样的题换个数字又不会。想启发式引导,很多题我自己也得先想半天。初中的几何辅助线、小学的分数应用题,老实说不少题我得现场搜答案。搜出来的答案是有了,但怎么把答案转成孩子能听懂的讲解,搜索引擎帮不上忙。
还有个更现实的问题:手机和平板放在书桌上,写着写着就变成了刷短视频。就算家长坐旁边盯着,孩子拿到手机的瞬间,注意力就散了。所以我想要的是一台"只在卡壳时出现、平时安安静静"的辅导设备——孩子先自己思考,卡住了再抬头求助,系统用语音加画面提示的方式讲解,而不是把整道题的答案一次性甩出来。这个交互形态,天然就是 AR 眼镜的强项:提示可以叠在真实视野旁边,又不占用双手,更不像手机那样容易让人跑偏。
1.2 硬件选型:为什么是 Rokid 而不是其他方案
我对比过四类常见方案,各有各的问题:
- 平板加支架:便宜省事,但平板立在桌上会遮挡视线,孩子低头看题、抬头看屏,眼睛和颈椎来回切换非常累。
- 智能音箱:可以语音提问,但纸质题目里的图形、单位、算式,用语音根本描述不清,音箱也没有视觉能力。
- 手机拍照搜题:识别准、答案全,但使用过程自带娱乐终端属性,家长不在旁边,大概率变成玩游戏的入口。
- AR 眼镜:显示内容悬浮在眼前,纸质题目该怎么看还怎么看,提示以一个小窗形式出现在侧方,不遮挡主要视线。语音交互解放双手,设备里没有社交 App、没有短视频,孩子不容易被带跑。
方向锁定 AR 眼镜之后,我对比了几个品牌。选 Rokid 的核心原因有三条。第一是清晰度,Rokid 的消费级眼镜用的是 Micro-OLED 微显示屏,单眼分辨率达到 1080P,文字边缘锐利,看讲解文本不吃力。第二是价格,光波导方案的眼镜虽然镜片更薄、更适合户外透传,但整套价格高出不少,而 Rokid 主流的 BirdBath 方案在室内固定场景下色彩和亮度反而更好,一整套在两三千元档位,拿来做家用项目预算完全能接受。第三是开发者生态,Rokid 开放平台提供安卓和 Unity 两套 SDK,支持 ADB 调试,对我这种习惯用 Android Studio 写代码的人门槛最低。
这里澄清一个容易混淆的点:很多人以为"AR 眼镜"就必须是光波导。实际上光波导的优势在镜片薄、透光率高,适合整天戴着走;但我们做作业辅导基本都在书桌前,环境光可控,BirdBath 方案的显示亮度和色彩还原反而更适合。选型要跟着使用场景走,别被"最新技术"四个字带偏。
1.3 第一版原型的完整交互闭环
第一版原型跑通之后,交互流程是这样的:孩子卡壳时,按一下手机 App 上的"拍题"按钮;App 调用摄像头拍下题目区域并自动裁剪;OCR 引擎识别出题目文本;文本发送到云端大模型,模型按照我预设的提示词生成"分步提示 + 完整讲解 + 检查方法"三段式内容;讲解文本在手机端渲染成卡片,通过 Rokid 眼镜呈现在孩子视野里;TTS 把关键句子念出来,孩子随时可以喊"再讲一遍"或者"下一步"。
这个闭环看起来简单,真正落地时每一环都有坑。OCR 把"√3"识别成"/3"、大模型把答案直接写在第一步提示里、眼镜里的字太小看不清、从按下按钮到语音开口要等四秒——这些我后面会一节一节展开讲。原型阶段最大的收获不是功能全部跑通,而是验证了一个关键假设:孩子对"对着眼镜问一道题"这件事没有抵触情绪,甚至觉得比问家长轻松。
2. 系统到底长什么样:硬件组合与数据链路设计
2.1 这套系统的硬件组成与各自职责
给系统画个像。整套设备由三部分构成:Rokid 眼镜负责显示,一台安卓手机负责识别和计算,网络环境负责连接大模型接口。第一个版本跑在"手机 + 眼镜直连"模式下,因为这样调试最方便,日志随便打。后来我把整个 App 适配到 Rokid 的独立算力终端上跑,孩子手不用碰手机,直接按终端侧边的拍照键就能触发识别。
各部分的职责拆开看:
| 组成部分 | 具体职责 | 关键参数 |
|---|---|---|
| Rokid AR 眼镜 | 显示讲解卡片、题目摘要、操作提示 | Micro-OLED,1080P,BirdBath 方案 |
| 安卓手机/算力终端 | 摄像头取景、OCR 识别、大模型请求、TTS 合成、UI 渲染 | 需支持 USB-C 视频输出 |
| 大模型云端接口 | 理解题目、生成分步讲解 | 流式输出,首字延迟尽量低 |
| 家庭网络/5G | 传输题目文本和模型返回内容 | 延迟要稳定,带宽要求不高 |
这个架构里,手机是绝对核心。眼镜本身不带重计算能力,它更像一块"高分辨率的外部显示器"。所以整个项目的技术工作,大部分都落在安卓 App 里:怎么把摄像头画面处理成干净的题目文本,怎么把模型返回的 Markdown 渲染成眼镜里能看清的卡片,怎么让语音交互不打断孩子思路。
2.2 核心数据链路:一帧纸面画面的旅程
一条完整的数据链路,从孩子按下按钮开始。摄像头先对着纸面取景,App 要做自动聚焦和边缘检测,把"桌面杂物 + 台灯光斑 + 题目区域"区分开。然后进入 OCR 环节,这里我特意把识别放在本地而不是云端——作业照片涉及孩子隐私,题目图片不应该为了识别多上传一份到服务器;另外本地识别省掉了上传耗时,整个链路更紧凑。
OCR 输出的题目文本,会先做一次"归一化"处理:把全角半角符号统一、把多余空格清掉、把 OCR 常见的识别错误(比如把 0 认成 o)修正一遍。然后文本被组装进一个大模型 Prompt,请求走流式接口。模型开始返回后,App 不等全部内容生成完,立刻把第一段提示文字渲染成卡片并交给 TTS 播放。孩子听到第一句话的时候,模型可能还在生成后面的完整解法。这种"边生成边播报"的模式,是延迟体验的关键。
2.3 关键设计指标与选型理由
我给这套系统定了两个硬指标。第一,从按下按钮到孩子听到第一句话,必须控制在 2 秒内。孩子的耐心窗口比成年人短得多,超过 3 秒没反应,他就开始乱按按钮了。第二,眼镜里一屏显示的讲解文字不超过 80 个字。AR 显示不是手机屏幕,字太多根本看不过来,配合语音引导,一次只给一步提示,效果远好于一次性把所有解法铺满。
围绕这两个指标,选型逻辑很明确。OCR 选本地端侧模型,因为云端 OCR 的一次请求就要多花一到两秒,还会把题目图片传到外部服务器。大模型必须支持流式输出,如果等模型把完整讲解都生成完再显示,耗时至少八秒,孩子早没耐心了。TTS 也要支持流式合成,拿到模型第一段文字就开始发音。这三条一起决定了大框架,后面所有优化都是在这个框架里抠细节。
3. Rokid XR 开发环境搭建中的关键细节
3.1 开发者模式、设备连接与眼镜工作模式
很多首次接触 Rokid 开发的人,倒在前两步:眼镜连上手机只能看到手机桌面镜像,自己的 App 画面出不来;或者 ADB 根本连不上设备。这里有个容易忽略的点:眼镜本身不是调试目标,手机才是。你开发的其实是一个普通安卓 App,眼镜只是它的显示输出。所以第一步是打开手机端的 USB 调试,把 Rokid 眼镜通过 USB-C 线连上手机,确认手机画面能镜像到眼镜里,这时候在电脑上执行adb devices,能看到的是手机设备,而不是眼镜。
Rokid 眼镜实际有两种工作模式,开发时要用手机镜像模式,方便打日志、看渲染状态;做成成品给用户用时切换到AR 空间模式,系统会把手机桌面转成虚拟屏幕,应用内容能够浮动在真实环境里。模式切换可以在配套 App 里完成,也可以在代码里通过 Rokid SDK 的接口动态设置。
另一个我踩过的小坑:第一版我偷懒,直接把手机完整界面投到眼镜里,孩子看到的是整个手机桌面,包含状态栏、通知、别的 App 图标。这完全没有 AR 感,而且很容易误触。正确做法是应用内只渲染自己定义的"讲解卡片"区域,其他部分全部保持透明黑,让真实桌面透过来。这一步需要理解 SDK 的渲染层概念,但一旦做对,体验从一个"手机投屏"变成了真正的"眼前悬浮一张卡片"。
3.2 最小可运行 Demo 的搭建顺序
我建议新人按这个顺序搭,每步做完都能看到一个"能跑"的结果,再进入下一步:
- 手机连眼镜,确认镜像模式能正常显示画面。
- 在 Android Studio 里新建空项目,创建一个自定义 View,画一个纯色矩形,确认画面能输出到眼镜并清晰可见。
- 调用系统摄像头 API 拍一张照片,存到本地相册。
- 引入 OCR 库(我用的是 PaddleOCR 的安卓端侧版本),识别照片里的文字并把结果打印到 Logcat。
- 接大模型接口:把识别文本发过去,Log 里打印模型返回的完整回复。
- 把回复字符串显示到刚才那个自定义 View 上,确认眼镜里能读出文字。
- 接入 TTS,让文字能被念出来。
- 接入语音识别(ASR),支持"下一题""再讲一遍"两个基本命令。
- 最后才是优化排版、调整字号、做防沉迷提示这些成品化工作。
这个顺序的核心思想是:每一步之间依赖最小,每步都能单独验证。很多项目失败不是因为某个技术难,而是因为一口气把十件事全做完,出问题根本不知道怪谁。
3.3 真机调试和模拟器完全不是一回事
Android 模拟器在这个项目里基本只能用来调试业务逻辑,显示效果完全不能当真。原因有三个:模拟器没有 Rokid 眼镜的视场角概念,内容在模拟器里排版完美,上真机之后会被视野边沿裁掉一角;模拟器屏幕是标准手机长宽比,而眼镜中的画面比例更接近 16:9 的超宽比例,左右两侧经常出现"内容消失了"的情况;模拟器亮度恒定,而真实环境下台灯、窗户反光都会影响透光显示效果,深色背景和白色字体的对比度需要真机上反复调。
我前几版在模拟器里把讲解卡片设计得漂漂亮亮,一戴上眼镜,右侧一列文字直接被切掉。后来学乖了,所有显示相关的调试全部真机完成,模拟器只用来跑数据解析和网络请求这类逻辑测试。真机调试加打印日志,配合adb screencap截取眼镜看到的画面,是最高效的组合。
4. 作业辅导核心功能逐块拆解
4.1 第一块:纸面题目的视觉识别链路
视觉识别是整个系统里最容易被低估的部分。刚开始我以为"拍照 + OCR"是很成熟的技术,直接调库就行,结果第一轮测试的识别准确率惨不忍睹。问题出在拍照质量上:孩子手拿不稳,台灯直射纸面产生反光,桌面杂物混进画面,这些都会让 OCR 引擎崩溃。
解决办法是加了一个预处理管线。拍照之后 App 先做四边形边缘检测,找纸面的四个角,把题目区域透视矫正并裁剪出来;然后转成灰度图,做一次对比度增强;最后才交给 OCR 引擎。这一套下来,识别成功率从七八成直接拉到九成五以上。PaddleOCR 的端侧模型中文识别很稳,它还支持自定义词典,我把"厘米""千克""三角形""路程"这些课本高频词加进了词典,识别结果的可靠性又提升了一截。
公式识别是另一个通道。普通 OCR 把"½"认成"1/2"还能用,但遇到"√3""x²""分数线上下的分式结构",纯文字 OCR 基本必错。后来我把包含特殊符号的题目区域单独过一遍公式识别模型,让它输出 LaTeX 格式的文本,后面做渲染和理解都用这份 LaTeX。没有这个独立通道,一道分数加减法题目,大模型拿到的可能是错乱的文本,给出的讲解自然也是错的。
4.2 第二块:让大模型讲题而不是给答案
OCR 拿到题目文本之后,最核心的问题来了:怎么让大模型像一个有耐心的老师,而不是一个急着交答案的答题机器。如果直接把题扔给模型,它十有八九会把完整解法一步到位写出来。孩子看着答案抄一遍,看似学会了,其实一点用没有。
我这里用了一套固定的 Prompt 模板:
你是一位有耐心的小学四年级数学老师。下面这道题来自孩子的作业。 要求: 1. 回答必须分为三段:题目复述、第一步提示、完整讲解。 2. 第一步提示绝不能直接给出答案,只能给出解题思路方向。 3. 完整讲解必须放在第二步,只有当孩子说"继续"时才给出。 4. 用孩子能懂的语言,避免超出四年级水平的术语。 5. 如果题目中有公式或图形,请先描述你理解到的公式结构,再开始讲。 题目:{OCR识别出的题目文本}这里的关键是"分步 + 条件触发"。模型生成的第一段永远只是思路方向,比如"先找出题目里两个未知量之间的关系",而不是具体的算式。完整解法被放到后面,需要孩子语音说"继续"才会展示。我还在流程里加了一个自检环节:模型生成完第一步提示后,App 会再问一次模型"这段提示是否泄露了最终答案",如果模型自己都觉得泄露了,就重新生成。这个"二次确认"听起来很笨,但实测能把泄题率降低一大半。
Prompt 里还有一个容易被忽略的点:要求模型先复述题目。这一步可以校验 OCR 是否正确。如果模型复述出来的题目和纸面明显对不上,App 会提示"重新拍一张",而不是硬着头皮讲一道错题。
4.3 第三块:把讲解"放"到眼镜里
显示层的核心参数,是我在真机上试了大概两周才定下来的。眼镜里画面的等效感受,大约等于坐在三米外看一块六十五寸屏幕上的字。按 Android 的 dp 单位换算,正文字号不能小于 18sp,标题字号用 24sp,一行不要超过 14 个字。行距设成 1.6 倍,段间距额外加大,否则文字在 AR 视野里会糊成一片。
我用的是"仪表盘式"布局:顶部是当前题目的一句话摘要,用副标题颜色;中间是讲解正文,一次最多显示 80 字,超出部分翻页;底部是操作提示,比如"说'继续'查看解法""说'再讲一遍'重听"。整个卡片做成了深色半透明底加白色字,左侧配一条强调色竖条。为什么深色底?AR 是透光显示,白色字直接叠加在浅色桌面上会发虚,深色底能把文字跟背景隔开,室内光照下可读性最好。
语音交互也在显示层里配合。孩子说"再讲一遍"时,App 会从当前段落重新开始播报;说"说慢一点"时,TTS 语速降三成;说"隐藏答案"时,当前页面的解答部分立即换成"再检查一下"的提示语。这些命令不多,但都是在真实使用中孩子和家长用得最多的几个。
4.4 防沉迷与护眼设计
这个必须单独说。AR 眼镜本质上是近眼显示设备,儿童使用一定要有严格的时间限制。我在 App 里做了三件事:单次讲解时长上限 10 分钟,每日累计使用上限 20 分钟,每 15 分钟强制休息一次并弹出"远眺窗外"的提示。家长端可以设置使用时间段,超出时间后设备会直接停止响应讲解请求。技术做得再炫,孩子的眼睛是第一位的,这条底线不能破。
5. 真实调试日志:延迟、字体与公式这三个老大难
5.1 延迟优化:从 4.2 秒到 1.8 秒
第一版实测,从按下按钮到孩子听到第一句话,整整 4.2 秒。这基本不能忍。我把这段耗时拆开:
| 环节 | 耗时 |
|---|---|
| 摄像头拍照 + 预处理 | 0.4s |
| OCR 端侧识别 | 0.8s |
| 大模型首字返回 | 0.9s |
| TTS 合成首句 | 1.5s |
| App 渲染 + 音频播放 | 0.5s |
| 其他损耗 | 0.1s |
最明显的是 TTS 1.5 秒。查了一下原因,我当时是等大模型把完整讲解全部输出完,才交给 TTS 合成一长段语音。改成"边合成边播"之后,模型返回第一句话的同时就把文本丢给 TTS,首句合成时间降到 0.4 秒。大模型侧也做了配合:在 Prompt 里要求"第一步提示尽量简短",让第一段返回内容控制在 20 个字以内。OCR 方面,把模型量化到 8bit 后,识别时间从 0.8 秒降到 0.55 秒。最后整体从按下按钮到开口,稳定在 1.8 秒左右。
5.2 字体、视场角与排版:AR 显示不是手机 UI 缩放
第一次戴上真机,我愣住了——手机 App 里看着正合适的卡片,在眼镜里被裁掉右边一大截。原因前面讲过,模拟器的屏幕比例和眼镜的实际视场角完全不同。这只是第一层问题。第二层问题是字号:手机屏幕的 14sp 正文在 30 厘米外的手机上很清晰,但到了眼镜里等效三米外看屏幕,14sp 的字在视野里就像一个标点一样小,完全不可读。我的显示层后来整体推倒重做,字号、行距、卡片宽度全部按"三米外的 65 寸屏幕"这个等效感受来定,而不是直接沿用手机 UI 的参数。
还有个细节:眼镜里卡片位置不能放在视野正中央。正中央必须留出来给桌面上的纸面题目,提示卡片放在右下方 15 度左右的位置,孩子瞟一眼能看到,低头写题时又不遮挡题目。这个位置可以在设置里调整,因为左右眼主视眼不同,每个人的舒适位置不一样。我最后默认位置是略微靠右,同时允许左右滑动调整。
5.3 数学公式:最大的坑,没有之一
OCR 对公式的识别错误是最难缠的。根号、分数线、上下标,普通 OCR 模型基本无能为力。典型的失败案例:一道"√3"的选择题,OCR 识别成"/3",大模型拿到题目后一本正经地讲"将两边同时除以三",讲得头头是道,实际完全跑偏。孩子戴着眼镜听了一段睁眼说瞎话的讲解,这比识别失败更可怕。
针对这个问题我做了三件事。第一,公式识别走独立通道,用专门的公式模型识别 LaTeX 结构,不等同于文本 OCR。第二,Prompt 里加了一条规则:"如果发现题目中的数学表达式明显不符合常理,请用自然语言描述公式结构,例如'根号三''二分之一',不要强行解读。"第三,眼镜端渲染 LaTeX 计算量大且字小看不清,最后策略是:简单公式一律在语音里慢速朗读,画面上只显示关键数字和变量名。给孩子用的产品,清晰准确比格式好看重要得多。
5.4 发热、续航与环境光:那些不会被写进文档的坑
手机加眼镜高强度跑 OCR 和大模型请求,发热问题非常严重。实测连续用半小时后,手机壳发烫,大模型接口调用明显变慢。后来在应用里加了"连续使用 40 分钟后自动进入休息提示"的逻辑,既解决了发热,也顺带做了护眼。还有一个环境光问题:台灯直射纸面会产生反光,OCR 识别失败率骤升。让孩子把台灯角度调整到从侧面照纸面之后,这个问题基本消失。这些细节在官方文档里永远不会写,但在真实家庭环境中,它们对体验的影响和核心算法同等重要。
6. 孩子真实使用后的效果与后续想法
6.1 一个月的实测数据
系统跑通后,我在自己家里做了一个月的实测。孩子每天用一到两次,每次大约十分钟,主要用于数学应用题和英语完形填空的卡壳求助。记录了几个数字:
| 指标 | 第一周 | 第四周 |
|---|---|---|
| 遇到难题愿意听完讲解的比例 | 62% | 87% |
| 同类型题目二次做对的比例 | 37% | 68% |
| 主动说"这道题我看不懂"的频次 | 每天不到一次 | 每天两到三次 |
| 单次使用时长 | 约6分钟 | 约10分钟 |
这个数据算不上严格的对照实验,但能说明一点:孩子对"AR 老师"这个形式是接纳的,并且使用意愿在稳定上升。最有意思的变化是主动求助的次数增加了——以前他遇到不会的题会先趴着不说,现在会直接抬头喊"这道题帮我看看"。愿意开口问,是所有提分的前提。
6.2 这个系统真正值钱的地方
说实话,一个月下来分数有没有明显提升,我持保留态度。但有一个变化非常明显:孩子对"不会的题"的心理负担降低了。AR 眼镜像一个没有表情、不会叹气、不会说"这题上次不是讲过吗"的辅导工具,孩子问它不需要看脸色、不需要担心被骂。把"我不会"变成"我想学",这个心理层面的帮助,比任何单一题型的讲解都更值钱。另外,因为眼镜里没有短视频、没有游戏,孩子使用它的目的非常纯粹,不存在"拿到设备就分心"的问题。
6.3 当前局限与下一步计划
当前版本还有很多局限。只支持单题问答,不支持连续对话——孩子问"上一题的第二步"就接不上;图形题和手写体文字识别准确率还不够;配方运算、方程变形这类多步骤题型,大模型的推理仍偶尔出错。后续计划里有三件事:把讲解记录按知识点自动归档成错题本;每道题讲完后自动推送三道同类题做巩固;给家长端做一个微信小程序报告,让孩子自己不好意思摸鱼。还有一个我的个人教训:别为了追求技术炫酷而把交互搞复杂。AR 工具类的核心是"少即是多",一屏一句话,一次一个操作,孩子能自己用起来,才算成功。
最后说点个人体会。辅导孩子这件事,技术能解决"不会"的问题,但解决不了"想不想学"的问题。AR 眼镜再酷,也替代不了家长坐下来陪着的二十分钟。但有一点它是独一份的:它让"我不会"这三个字,第一次可以从容地说出口,不怕被笑话,不被当回事地敷衍过去。这大概就是"码上提分"这个项目,最让我满意的地方。