我一直喜欢读纸书,也习惯在书上划线、圈重点、写批注。但一本书读完之后,这些认真留下的痕迹往往也就停在了纸页里。微信读书、Apple Books、Reeden 这类阅读软件可以很轻松地把划线笔记导入 Obsidian 或 Notion,而纸上的笔墨,却难以无缝连接数字笔记。
作为一个 Obsidian 爱好者,我一直在找一款能补上这一环的应用:拍下书页,它就能识别我划过线、高亮过或圈画过的文字。iOS 自带的 Live Text 识别印刷文本已经很准,但它不知道我具体划了哪里,一两页还能手动整理,真要认真处理一本书就不现实了。我也试过 Highlighted、白描、vFlat Scan、ShelfMe 等应用,它们各有特点,却都没有解决我最在意的问题。

大模型开始普及之后,我又尝试把书页照片丢给豆包、DeepSeek、ChatGPT、Gemini,试了一轮,发现结果时好时坏:有时漏掉划线,有时又把没划的内容一起摘出来。

试了一圈之后,我还是有点不甘心。这个需求并不难解释,我只想拍下书页,然后拿到自己划过的那几句话。既然找不到合适的工具,我决定自己做一个试试。
我给它起名叫 Inkive,读作 /ˈɪŋkɪv/。
一张书页照片,怎样变成划线笔记
Inkive 要回答的问题是:读者划线时,真正想留下来的内容是什么? Inkive 要完成三步:先找到书页上的划线,再读出划线附近的文字,最后根据划线和文字判断读者想留下哪句话。
第一步,是找到书页上的划线。
一张书页照片里,可能同时有下划线、马克笔高亮、圈画,也可能有纸张纹理、阴影、背面透过来的字迹。要让应用先看见这些标记,通常需要训练一个图像分割模型。简单说,就是让模型从整张照片里把「读者留下的痕迹」单独分出来。
我没有算法背景,但之前体验「寻隐」时,发现 Core ML 已经可以在手机本地运行相当复杂的模型。于是我决定试试:能不能用它识别书页上的划线。
模型训练对我来说完全是陌生领域,我借助 AI 把整个过程一步步跑通:准备数据、完成标注和训练,再判断结果有没有变好。我的标注数据大多来自读书博主分享的照片——纸张材质、光线、拍摄角度、划线习惯各不相同,一度塞满了我的手机相册。

在完成标注之后,我开始一轮轮训练模型。每一轮结束后,我都会让 AI 帮我看准确率、召回率和损失值这些指标和趋势,也会逐个检查失败样本:是浅色高亮漏掉了,还是把背面透出来的划线误识别成了正面标记。我会根据这些失败样本判断下一批该补什么数据、训练参数又该怎么调。
最终,这个本地模型在测试集上的准确率达到 0.94,召回率达到 0.88。它还不完美,但已经足以证明:在手机上识别书页划线,这条路可以走通。
第二步,是读取划线附近的文字。
找到划线之后,Inkive 还要读出它附近的文字。OCR,也就是图片文字识别,已经相当成熟。iOS 系统 Vision 框架在识别印刷文本时表现不错,但纸书照片比截图和扫描件更复杂:书页会弯,照片会歪,光线会不均匀,单双页一起拍时版面也更复杂。中文纸书的密集文字和复杂版面又增加了识别难度。
我一开始把很多精力花在透视校正上。照片歪了、书页弯了,直觉上当然会想先把页面拉平。我尝试过传统文档处理方法,也接入过不同的 dewarp 算法,但效果始终不够理想,不如 vFlat Scan。为此纠结了很久。
后来我发现,自己其实搞错了目标。Inkive 不是文档扫描应用,不需要生成一张完美的书页照片。重要的是处理之后,划线附近的文字能不能被准确读出来。 我还走过不少弯路,比如识别文字行的中线、拟合下划线的像素轨迹。这些传统 CV 尝试花了不少时间,也帮我排除了几条不适合 Inkive 的技术路线。
直到 6 月看到 PPOCR v6 发布,我发现它对中文纸书照片的识别比系统 Vision 框架更稳定。原本我已经准备了云端 OCR 预案:如果本地识别效果不够好,就把图片上传到服务器,用云端模型识别。PPOCR 让我可以继续坚持本地处理,把书页照片、划线结果和识别过程都留在设备上。
PPOCR 让我可以继续采用本地处理,这对 Inkive 很重要:书页照片、划线结果和 OCR 过程都留在设备上。用户不用上传照片,我也不必为每次识别支付云端费用。
第三步,是判断读者真正想留下哪句话。
这一步直接决定了最终结果是否可用。前面的划线识别和文字识别,都有相对明确的模型可以依赖;但一条划线到底对应哪句话,模型最终还得推测读者当时想留下什么。人在纸书上划线时,并不会像机器标注一样精确。可能多划了一个字,少划了半句话,也可能一条线跨过两行;马克笔高亮会涂出去一点,圈画也可能盖住旁边的字。Inkive 不需要让结果与笔迹像素级重合。只要读者看到结果时觉得“对,我划的就是这句话”,它就是可以接受的。
所以,这一步花掉了我最多的时间和精力。到了这一步,文字识别准确率已经不够用了。我开始关注另一个指标:可接纳率。边界偶尔差一点没关系,只要结果符合人的阅读判断,就仍然可以接受。最终,在测试集中,95% 的结果无需修改或只需轻微校对。这个表现已经达到我愿意日常使用的水平。
Inkive,读完,拍完,带走
想把一本书笔记带回 Obsidian,不需要改变原本的阅读方式。你还是像以前一样读纸书,用自己习惯的笔划线、圈重点、写批注。读完以后,打开 Inkive,把相关书页一页页连续拍下来。识别完成后,你可以逐条校对书摘,也可以直接预览整本书的结果。确认无误后,再导出为 Markdown 文件。对我来说,Inkive 的价值就在这里:把停留在纸页上的划线带回 Obsidian,和过去的阅读、写作、思考连接起来。

最后放一段完整录屏,看看 Inkive 怎样处理一本书的划线。
后记
在 Inkive 接近完成的时候,我注意到一个海外创业团队也推出了一款智能书签硬件 Mark II,类似国内的词典笔,用户需要用专门的设备在纸书上「划线」,内容再通过云端大模型识别,并同步到 Notion 和 Readwise。售价 159 美元,预计 2026 年 Q3 发布。

刚看到 Mark II 时,第一个念头是:原来不只我在寻找连接纸书划线和数字笔记的方法。不过,它选择了专用硬件和云端模型,而 Inkive 走的是手机应用加本地模型的路线。它不要求读者改变原本的阅读习惯:你还是捧起纸书阅读,用自己的笔划线、做笔记;Inkive 只在读完之后用手机处理书页。两种产品解决的是相似需求,但路径很不一样。
Inkive 只想把一件事做好:连接纸书和数字笔记,把阅读时留在纸页上的划线送回你的笔记系统。
Inkive 刚刚上架 App Store,现阶段先把 iOS 上的效果和体验做好。Android、Web 和小程序版本仍在计划中。
