Skip to content

2025-2-13终于把欠的代码账还清了,可以干自己的事情了

>

2024年,吹了个大牛。

当时,一位老朋友找到我,说手头有个无人机巡检项目,想问问我该怎么实现。我想都没想就说:“这有啥难的?现在 AI 图像识别算法这么成熟,获取无人机拍摄的图片,识别一下,再上报结果,不就搞定了嘛。”

朋友一听,便说:“那行啊,能不能先做个 demo 给客户演示演示?要是合同签下来了,咱们一起分钱。” 我琢磨着,人生不能只靠死工资,有机会拓展拓展其他赚钱渠道也挺好,就答应了下来。

于是,我们一边和客户沟通交流,深入了解他们的需求,一边利用业余时间研究如何读取无人机拍摄的视频,以及怎样训练模型等一系列功能。

很多事情想起来好像很简单,但真正深入后才发觉坑有点深。

本来以为一周就能搞定的事,结果浪费了我一整个月。(好在当时正值过年放假,时间相对充裕些。)

简单说说其中的波折吧:

先说视频编解码,需要用到ffmpeg库。

我头一回接触这个库,上手难度着实不小,它的接口设计不太友好。印象特别深刻的是,我在找官方例程的时候,发现官方推荐了一个中国人写的文档:

https://leixiaohua1020.github.io/#ffmpeg-development-examples

我点进这个国人的 github 一看,大部分内容都是 9 年前写的,使用的 API 都有些陈旧了。我就很纳闷,为啥作者不更新呢?后来一查才知道,原来作者因工作过度劳累,已经去世了。那一刻我才深刻意识到,搞视频编解码研究的人,真的太不容易了。

从这个故事 ,你可以感受到调试和集成ffmpeg这个库,得耗费多少脑细胞了吧?

再讲讲 AI 图像识别这一块。当下最热门的特征识别算法当属 yolo 了,我几年前用的时候还是 yolo5,如今都已经发展到 yolo11 了,能一直保持热度,肯定有它的过人之处。一开始,我以为只需要识别一个分类就行,跟客户深入沟通后才知道,他们要求识别近 100 个分类,而且可用的素材还严重不足。更麻烦的是,很多分类的特征并不明显,人眼都难以分辨,更何况是机器呢。但既然已经答应了人家,只能硬着头皮上,怎么着也得先展示一下自己的实力。图片不够,我就到网上去找,先挑最简单的几个分类进行训练,能演示个大概就行。

训练这关好不容易过了,又遇到了部署这个难题。客户要求把程序放在搭载 rk3588 芯片的 AI 盒子里运行。这就意味着得把模型从 torch 格式转成 onnx 格式,再转成 rknn 格式,整个过程别提多折腾了。

好在,经过近一个月的艰苦折腾,今天程序总算基本成型了。虽说距离成为成熟的产品还有很大一段距离,但好歹没有半途而废,该实现的功能都实现了。

这件事也算是暂时告一段落,我可以先把它放下,去忙其他事儿了。毕竟今年还有一大堆事等着我去做,还有好多计划等着我去实现呢。