早上好,我是まさきん。
孩子从学校带回来的联络簿是手写的。而且字迹很有个性,有时候要花不少时间才能看懂。
于是我做了一个机制,让AI帮忙分担「读懂内容、告诉家人」这一部分工作。这次把从图片预处理到显示更新的实际操作步骤,都介绍一下。
起因是「回看的时机总是错位」
联络簿这东西,孩子不主动从书包里拿出来,家长根本不会意识到它的存在。等注意到的时候,往往已经是傍晚了。
我希望家里随时有人能看到联络簿的内容,于是做了一个机制,把内容显示在客厅放置的屏幕上。
机制的流程
做的事情分为以下4个步骤。
- 用智能手机拍下联络簿的页面
- 校正图片的方向,因为竖排文字的照片有时候不是正立的
- 请AI转录文字
- 把结果写入数据,更新屏幕的显示内容
从拍照到显示更新,需要人手参与的只有「拍」这一步,之后的流程都是自动运行的。
把拍好的图片整理成可以读取的形式
用iPhone拍的照片,直接拿去用的话,AI有时候会误判方向。尤其是HEIC格式,虽然标准的图片浏览器能打开,但AI的图片读取工具有时并不支持。
所以我先转换成JPEG,同时校正方向。如果是Mac,用系统自带的sips命令就能完成。
# 把HEIC转换成JPEG
sips -s format jpeg IMG_xxxx.HEIC --out notice.jpg
# 如果竖排文字看起来变成了横向,就顺时针旋转90度
sips -r 90 notice.jpg --out notice_rot.jpg
转换一次之后确认方向,如果不对,就再加90度,或者用180度翻转。试几次找到规律之后,剩下的只需要把同样的转换写成脚本就够了。
另外,如果直接用整张图片,文字会显得太小不好辨认,所以我先用PIL,也就是Pillow,把文字集中的区域裁切出来,再交给AI读取。
from PIL import Image
im = Image.open("notice_rot.jpg")
# 裁切出中央的文字区域(需要根据实际讲义的尺寸感调整)
im.crop((1300, 500, 3100, 2800)).save("zoom_main.jpg", quality=95)
与直接交出整张图片相比,只放大交出文字集中的范围,AI读取的精度明显更高。
面对手写文字的态度
这是我最留意的部分。孩子的字比大人的更有个性,即使交给AI读取,也不代表百分百能读准。
所以我在给AI的指示里,一定会加上这一句。
这是孩子手写的联络簿。即使有些字不容易辨认,
也请不要靠猜测来填补。只转录有把握读懂的部分,
无法辨认的地方请标注为"无法辨认",并说明具体位置。
如果靠猜测填补,就有把错误信息传达给家人的风险。让AI老实说出「不知道」,结果反而是一个更值得信赖的机制。无法辨认的部分,最终由人来确认补齐。
仔细想想,这个机制是从用手机拍照开始的,而显示更新最后也要靠网络通信来完成。入口和出口,说到底都得靠通信。这么一想,自己的手机合约,好像也有点想重新审视一下了。
显示数据的保存方式
读取出来的内容,我用简单的JSON格式保存。屏幕那一端的程序,读取这份文件后生成HTML显示。
{
"updated": "2026-09-01T07:30:00+09:00",
"valid_for": "2026-09-01",
"schedule": ["9月1日(星期二)", "1 国语", "2 数学", "3 体育", "4 音乐"],
"homework": ["汉字练习"],
"items": ["图工用的工具箱"],
"notice": []
}
数组的第一个元素是标题,之后依次按「节次 科目」的格式排列。没有联络内容的日子,会把这个schedule整个变成空数组,homework和items也做同样处理。忘记拍照的日子,会把整个结构重置为null,屏幕那一端会显示「请确认联络簿」这样的提示。
「今天的课表里有几节被填上了」这个数字,我也一并记录了下来。这个数字有一点小用处。
从「被填满的节数」能发现什么
如果课表的栏位全部填满,就说明是平常的一天。但也有只填到一半的日子。
这种日子可能是提前放学,或者是特殊课程安排。如果被填满的节数比预期少,我不会无条件直接反映,而是先标注「可能是提前放学或半天课程」,插入一道确认的环节。
不只是读取联络簿上的文字,我还设计了从「信息量本身」也能发现问题的机制。这跟转录精度是两件不同的事,但意外地实用。
显示更新是怎么自动化的
JSON更新之后,通过以下2个步骤反映到显示画面上。
- 执行一个脚本,读取JSON重新生成HTML
- 向屏幕那一端的浏览器发送重新加载的指令
重新加载的指令,不只是单纯刷新页面,而是按「清除缓存→清除保存数据→重新加载URL」这样的顺序执行。因为如果浏览器那边的缓存还留着,即使脚本重新执行了,画面也可能还是旧的。
反映是否成功,我用以下方式确认。
- 重新加载的每个步骤,是否都返回了正常响应,也就是HTTP状态码200
- 生成的HTML里嵌入的「生成时间」元信息,是否符合预期的时间
如果其中任何一项失败,我还准备了一个备用方案,不走网络重新加载,而是直接重启屏幕那一端的应用本身。因为画面会瞬间变黑,这个方案只在确认有必要时才使用。
显示端的一些小设计
屏幕上只显示当天联络簿的摘要。如果直接显示原始文字,信息量太大,就没人会去看了。
- 今天要做的事,比如要带的东西、明天的准备
- 是否有无法辨认的部分
- 如果有可能提前放学等情况,会注明
通过精简信息,即使只是路过时瞄一眼,也足够看懂内容。
尝试后的感受
最好的一点,是不再需要「等谁来发现」了。只要拍了照,家里任何人都能看到同样的信息。
不过,我也没有完全交给AI放手不管。一旦出现无法辨认的提示,最终一定会由人来确认。这一步如果省略,错误信息就会直接传达给家人,所以这一点我坚持不动摇。
适合这样的人
- 孩子的联络簿或通知,家人之间共享的时机总是错位的人
- 对让AI读取手写文字这件事感兴趣的人
- 有精力写一个读取JSON生成HTML这种程度的简单脚本的人
总结
我做了一个机制,让AI读取手写联络簿,并同步显示到家里的屏幕上。关键在于不让AI靠猜测判断、精简显示的信息量,以及在重新加载之前一定先彻底清除缓存。
从技术角度看,做的事情并不难。但我觉得,这类不起眼的机制化积累起来,能让家人之间日常的信息共享变得轻松一些。
用手机拍下来,再通过网络送达。这就是这个机制的根本。把通信环境整理好,感觉也在悄悄发挥作用。
本文包含联盟营销广告。如果您通过本站链接申请相关商品或服务,我们可能会从合作企业获得报酬。此外,运营者是乐天集团的员工,也可能通过员工推荐计划获得报酬。文章内容与评价均基于运营者的真实体验与调查完成,与是否存在广告无关,但请您在阅读前了解上述关系。详情请参阅免责声明与联盟营销说明。 免责声明与联盟营销说明
本文包含机器翻译内容。正式条件请以乐天移动官方网站的多语言页面为准。
如果您对乐天移动的通信区域·信号状况有疑问,可以通过官方的 电波改善调查申请表 进行咨询。