Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 

文章代表作者个人观点,少数派仅对标题和排版略作修改。


1 起因

之前在用的经纬名片通停止服务了,所以又开始找新的好用的名片识别方案。

对于安卓/鸿蒙用户来说,拍照识别名片已经是系统必备的功能了,而且由手机系统提供,隐私性也能得到一定的保证。我的老备用机 P30 都有相应的功能。

但是,对于主力机 iPhone 来说,就不得不求助于第三方应用了。名片识别最主要希望不用动手修改和能保证隐私,通常普通识别可以在本地完成,精确识别或者高级识别往往需要上传到服务器用更好的模型,所以难免担心数据隐私的问题。各位浏览一下应用商店就能发现,知名厂商的软件都价格不菲,比如国内很出名的名片全能王和 OCR 领域无人不知的 ABBYY,都价格不菲,前者甚至只有订阅方案。

名片全能王和名片扫描的定价

有没有更便宜甚至免费的方法呢?我就尝试用 iPhone 上的快捷指令来实现拍照识别并保存为联系人,让名片能统一储存。

2 思路与步骤

为了实现这个功能,其实需要实现的点就是识别名片里的数据信息,让大模型处理返回格式化的数据。我的基本思路是:拍摄名片-提取文本-信息提取-大模型处理-保存为联系人。

2.1 前两步:拍照与文本识别

现在 iOS 已经有了系统级的 OCR 快捷指令,所以前两步很简单就实现了。这里我增加了保存到相册这一步,作为一个备份,可以用于校对或避免快捷指令执行错误。如果更喜欢整理的朋友可以新建一个相册专门用于保存名片照片,后期可以统一处理。请注意,这一步骤需要避免拍到名片以外其他的干扰文字,提高识别的准确率。

名片拍照与文本提取

2.2 第三步:格式化数据

这一步需要能够让大模型返回 iOS 系统能识别的格式化数据。因为 iOS 的联系人格式和标准的 Vcard 格式略有区别,所以我在手机里新建了一个测试联系人,填写了大部分重要的信息,然后导出 CSV 文件,来获得 iOS 的联系人数据格式。然后就是给大模型写一个能跑起来的提示词(只能说能用,供参考):

## 来自 OCR 的文本如下

【图像中的文本】

## 文本处理说明

上面的文本是名片的OCR识别信息,请分析其中的各项内容,并按照iPhone VCard3.0的格式替换、填写下面的内容,其中item1开头的为同一个地址,item2开头的是另一个地址;
如果识别为中文人名和国内地址,则优先中文;
如果部分信息缺失,则删除相应的项,最终输出替换、填写后的文本,只输出主体内容,删除表示代码块的引号:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iPhone OS 18.0//EN
N:[姓];[名];;;
FN:[名 姓]
X-PHONETIC-LAST-NAME:[姓的拼音]
ORG:[公司名称];[部门]
TITLE:[职称]
EMAIL;type=INTERNET;type=WORK;type=pref:[邮箱]
TEL;type=WORK;type=VOICE;type=pref:[手机号码]
TEL;type=WORK;type=VOICE:[固定电话号码]
item1.ADR;type=WORK;type=pref:[地址]
item1.X-ABADR:
item1.X-APPLE-SUBLOCALITY:[区名]
item2.ADR;type=WORK:[地址]
item2.X-ABADR:
item2.X-APPLE-SUBLOCALITY:[区名]
item3.URL;type=pref:[公司网址]
item3.X-ABLabel:_$!<HomePage>!$_
END:VCARD

只返回纯文本内容,不要包含表示 markdown 代码块格式的引号
大模型对文本进行格式化处理

这里使用的是 ChatGPT 应用自带的快捷指令接口来举例实现,如果各位用自备的 API,可以参考 B 站的视频 完成 Azure OpenAI 的设置,或用「快捷指令 大模型名称」自行搜索其他大模型的调用方法。

我个人在使用 Azure OpenAI 的 GPT-4o-mini,因为按照企业协议执行,所以所有的数据都声明不会用于大模型的训练,信息不至于出现在未来某个未知的回答当中。在我动笔的时候,Azure OpenAI 个人还是可以通过企业邮箱申请使用的,不过从 10 月 21 日开始,不通过企业渠道,无法新建新的 OAI 资源。其他的大模型就需要看各家的用户协议,这部分超过了笔者的知识范畴。

2.3 最后一步:生成联系人 Vcard 并保存

拿到 VCard 的文本信息之后,系统会默认缓存为文本文件,用 set name 动作来把文本命名为 contact.vcf,再使用联系人应用打开这个 vcard 文件,然后点击保存新联系人即可。

将返回数据更改为 Vcard 格式文件

如果不出意外,你现在应该也大工告成了,我中间多次卡在返回的数据上,大模型会自行添加 markdown 格式表示代码块的引号,导致 vcf 文件无法正确打开,所以我提示词中强调了两遍。

模拟名片和识别效果

3 总结

整个快捷指令的链接在这里:名片拍照生成二维码

这其实就是一个调用大模型来返回格式化数据的应用而已,我还做了在 12306 里运行,可以把详细行程添加到日历项中的动作,就是把格式化的文本修改为 .ics 文件,和官方应用加入的日历项区别在于可以按照自己想要的结构和详细程度添加。对于部分支持 URLscheme 的软件,比如图图记账,编写合适的提示词后,可以用同样的流程实现截图或语音输入-大模型识别财务变动-格式化填写 URLscheme-跳转自动记账(会比图图自带的截图记账要准确,后续就看张导 4.0 大版本更新的情况啦)。

最后,这个快捷指令只做了单次识别,没有加入连续识别的判断,相信大家可以举一反三想到更好的用途。祝大家用得愉快!

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀