AI最后一公里:理论到实践的跨越式探索

发表时间: 2024-09-01 12:05

我是一名AI工程师,目前自谋生路(不敢说创业)。最近接了一个AI项目感慨颇多,与大家分享一下。本文讲故事捎带点技术,纯粹闲聊。

倘若我是一名普通的码农(Java、Vue),没资源、没背景可能很难自谋生路。但是AI码农稍微好一点,因为现在AI需求多,信息差很大。信息差大到这边50万搞不定,那边三千元就能拿下。因此,很多人拿着需求到处打探实现方案。其中,以老板以及行政人员居多(他们的技术通过说难实现逃避干活)。

有一天,A哥联系到我。A哥很敞亮,先是给我文章赞赏了50块钱,然后加我好友。

A哥问我:“OCR你能做吗?”

我反问道:“哪方面的OCR?”

A哥说就是计算器屏幕的OCR。

不知道A哥为什么要识别这玩意,问他也不说,只是言道保密。

我说……能做,只是……估计费用得5000元!

A哥一听很激动,他说:“我给你8千,后面免不了会有调整,你随意支持一下就行。”

当天下午A哥就给我微信转账4000元,约定干完之后再给剩下的4000。

我向A哥要了一些素材,一周之后,开发完了。我理解的就是一个服务接口:接收一张图片,然后分析处理,最后返回计算器上的读数。为了对得起这8000块钱,我还专门写了一个可视化的Web页面,基本上就是下面这么一个东西。

A哥试了试,反馈说效果好。A哥说,他是某集团的总经理助理。因为领导想要实现某个功能,技术部一众专家说短期内实现不了。于是,领导就让他去外面找。A哥先是找了阿里、百度等一线平台。他们虽然都有OCR开放能力,不过,要么是没法专门识别计算器的屏幕(按键也给识别出来了),要么就是识别效果差,说是得定制开发。一谈到要源码,要本地部署内网可用,他们又报出了百万天价。

不过A哥没想到通过头条阅读文章的途径,找到了我这个偏方。几千块钱就让我给轻松实现了。

我很感谢A哥,我告诉他这是赏饭给我吃,让我一个星期赚8000块钱。我说但凡你让我做一个通用的OCR识别,我都搞不了。还就是这些个计算器、水表、电表仪器类的识别我能做。而且我敢保证比大厂做得更好。我的优势就是轻量灵活,因为这是精细化的垂直领域。

这类活它有个特点,那就是同一个场景下的结构简单。比如水表识别,因为有行业标准的规范,所以它们的产物结构相同,样式类似,而且数据可穷举。你看,水表总共就4位数,每一位数肯定是0到9其中一个。这样它就非常好做。如果每个位置会是某一个中文字符,那就是大了。中文有10万多汉字,10个字和10万字,这是一万倍的差距。没有数据,没有算力,没有团队,这个我搞不定。

本来我们双赢,各取所需,马上就要完美收尾了。A哥突然说:“哦,忘了说了,我们的程序要在App上跑,你写的程序能运行到App上吗?”

我说可以的,甚至可以给他写个Demo。于是,我将PyTorch环境部署在服务端,用fastapi暴露出api接口。然后用Android和iOS写了原生代码,先从摄像头采集照片,然后将照片文件通过网络传给服务端的识别API,服务端识别后返回结果给App展示。

A哥收到文件后,给我发了个大拇指。一周无话。

后来,A哥跟我说,这种方式没法做到断网可用,并不是本地化部署。我跟他解释说,将服务端部署到内网,App也接入内网,就可以使用了。A哥说他已经听不明白了,他让他们的技术总监Z工跟我说。

后来,Z工给我打来电话。Z工说我们要的本地化,是可以纯客户端的本地化,就是客户端断网也可以识别。

“咔嚓”一个晴天霹雳打在我的肩膀上:“PyTorch运行的程序,放到手机上运行?”

AI是一项功耗大的技术,很多库像PyTorch、opencv都不小,一般是运行在大型服务器上,有的项目甚至还需要GPU支持。它能运行在手机上吗?因为触及到知识盲区,我并没有反驳Z工。我说好的,我试试。

后来我一查询发现,原来PyTorch提供了PyTorch Mobile版本,专门用于在移动设备上运行,也支持iOS和Android。也就是说,你在手机上训练AI模型不行,但是训练好了之后,挪到手机上运行可以。

同样,我从OpenCV的官方网站上也找到了OpenCV for Android SDK。我原本以为只能在电脑端运行的OpenCV,居然也能在手机上运行。于是,经过改造,我将计算器屏幕识别迁移到了手机端。

啊!原来写好一个AI程序,抛离服务端,是可以在手机上运行呀!

随后,我把客户端识别Demo发给了Z工。一周无话。

后来,Z工说,你发的是源码项目。我们不关心源码,只关心如何简单使用。我说,那我把Demo封装成SDK吧,你们简单调用SDK就行啦。我又开始研究如何打包SDK。

我把SDK以及SDK的调用Demo发给了Z工。一周无话。

某天,Z工回复说,他也是刚刚才知道,他们的客户端用的不是原生代码,而是用uniapp开发的。我发的Demo是原生方式调用的SDK,他们没法参照。

于是,我又要把AI放到uniapp中。最终查询资料,发现了uts方式。

其实一点也不难,不过出奇的是效果居然比原生更快。

最后,两周无话。我也不愿意问,估计他们已经成功集成了。

整体下来,我对AI又有了新的认识。

在各类大模型、超模型(文生图、图生视频)的浪潮中,这类精细化的小AI需求也是有的。尤其是传统行业会遇到。他们的需求比较精细化,而现有的通用AI模型无法解决他们的问题。就比如BAT都有OCR识别,但实际场景太多,通用版覆盖不全需要定制,例如碑刻、雕版也属于OCR。

还有,AI的生态已经变得非常完善。它不再是超级计算机的专属。我们完全可以在训练阶段,短期租用昂贵的服务器。等到推理使用阶段放到普通PC、智能设备上,以各种形式展示和使用。现在它已经没有那么局限,因为我们看到它甚至在uniapp上运行。

最后,A哥他们识别计算器究竟干什么,我不再关心。即便他们拿这8000的活转手卖8万,我内心也毫无波澜。他们用不上,我也不过问。因为,我的机会成本已经覆盖过了。

我是IT男的一人企业,十二年IT编码经验,目前自谋生路。干不了大事,只解决AI落地。钱没多挣,不过比打工看到更多的事情。