一个热成像图像识别的计划
smith 2020-8-2原创 电子技术仪表与测量
关键词
热成像人工智能

最近又看了终结者系列的电影,里面的机器人识别人类,物体的视觉效果让人印象深刻,一个大胆的想法在我脑中产生,希望能做类似这样高科技感的东西

timg.jpg

在目前,已经有一些人工智能识别解决方案,K210是一款低成本的risc-v芯片,带有人工智能的模块。开源的MaixPY项目支持此芯片,有一些简单的测试用例。可以用来做一些简单的分类应用。如下图

v2-f5660691557536a62335cc22828aca82_720w.jpg

市面上卖的开发板通常配套的是一颗OV2640的摄像头,只能拍摄可见光图像

timg.jpg

这显然是不满足我对高大上的需求的,最好做到红外波段的,这样可以在夜晚也拥有灵敏的视觉。而且最好能够叠加


计划整个系统如下:

k210-nvg.png

两路摄像头通路,一路是接热成像摄像头,一路接星光级低照度CMOS摄像头,K210采集两路图像,可以用按键进行切换。


K210的重要作用是,还可以对热成像图像进行识别打上标签。这一点是目前市面上所有的热成像搜索仪做不到的。


热成像摄像头是CVBS输入模式的,暂时先使用FLIR-HS324来调试,目前大部分热成像摄像头都是CVBS-NTSC输出的。接口通用,后期也可换成其他型号的热成像摄像头

u=3514115110,2781326437&fm=26&gp=0.jpg

拍摄的热成像图像效

DSC000047.jpg

目前K210的M5Stack社区已经有K210接入热成像的实例了,问我为什么不用那个,原因很简单

m5stack.jpg

这一款使用的FLIR Lepton 3.0 分辨率只有160x120,帧率只有可怜的9Hz,镜头也只有针尖小,无法拍摄超过10m远的物体,只能用于近距离测温等场景,无法用于远距离观察。更重要的是,接口是特殊的,无法用其他模组替换升级。


整个项目工程量非常的大,只能一步一步做起,首先,K210没有CVBS输入接口,只能用外部的芯片转换了,我选了TI的TVP5150,可以把CVBS转成成YUV422,BT656输出,附件是PDF

attachment icon tvp5150.pdf 1.26MB PDF 50次下载 预览

再买了一块K210的板子,摄像头接口是OV2640的,因此得想办法把TV5150的数据送到K210的CSI接口。没办法,只好自己做转接板。

工程地址

https://oshwhub.com/KiwiPCB/k210_cvbs_in

原理图

5150.png

PCB

pcb5150.png

打样回来后,焊接起来,CVBS输入的系统如下

IMG_20200802_161942.jpg

TVP5150的I2C地址是0xB9,0x80和0x81寄存器放的是ID,先编译一个固件读一下试试

cam.png


结果是沮丧的,读到的不正确。

i2c.png

用示波器测了一下TV5150的晶振,我勒个去,又不起振,之前做msisdr项目的时候,已经被无源晶振弄怕了。


查了一下网上,也没有人做过TVP5150对接K210,又是第一个吃螃蟹,只有自己慢慢折腾了。


计划项目里程碑如下:

  1. TVP5150 I2c通路调通

  2. TVP5150 视频通路调通,出图像

  3. 工程迁移到MaixPY,编写tvp5150的驱动,可以使用maixpy的分类用例

  4. 调通K210 CSI双路输入

  5. 打样做板,支持双路CVBS,一路热成像,一路星光摄像头

  6. 显示LCD替换为铁电体取景器(可选)

  7. 3D打印外壳

看上去整个项目工程量非常大,现在还在1阶段,后面会分享调试的经验,论坛的大佬也不少,大家指点一下也对研发有利,


不知不觉就写了那么多啦





[修改于 3 个月前 - 2020-08-02 16:47:07]

来自:电子信息 / 电子技术电子信息 / 仪表与测量
10
2020-08-02 20:38:24
smith(作者)
1楼

折腾了一天了,还没有解决TVP5150晶振不起振的问题,奇怪了,我的电路是按照官方原理图画的,PDN、RESET几个重要引脚测量电平也是正常的。


实在不行,只好买一个现成的模块来研究一下了,这种模块与我需要的接口和电平又对不上 火狐截图_2020-08-02T12-37-09.748Z.png

折叠评论
加载评论中,请稍候...
折叠评论
2020-08-02 20:59:26
2楼

不知道楼主有没有了解过。。。flir boson上自带一个intel movidius 2, 由于某些原因sdk虽然不完全,也基本不能用,但是也有点识别的demo。。。

Thermal_pedestrian_counting.0.0.jpeg

如果一定要用上古cvbs输出的热成像,99%其实都带了lvds之类的14/16bit并口,要用串口发指令启用。

折叠评论
加载评论中,请稍候...
折叠评论
smith(作者)
3楼
引用RodTech发表于2楼的内容
不知道楼主有没有了解过。。。flir boson上自带一个intel movidius 2, 由于某...

我有下载过FLIR的4GB大小的ADAS数据,图像是用 FLIR Tau2 拍的,有打标前和打标后以及可见光的图像,但文档没有介绍Flir Tau2有打标的能力。以为是后期处理的。

FLIR_00764.jpeg

不过最主要的,CVBS接口的所见到即为所得,目前CVBS还算是热成像摄像头主流输出模式,毕竟这玩意分辨率和码率不高。后期可以复用一堆机芯

折叠评论
加载评论中,请稍候...
折叠评论
smith(作者)
4楼

最新发现TVP5150不支持IO电压1.8V,要TVP5151才行,巨坑 sticker sticker ,但这个应该不是不起振的原因

火狐截图_2020-08-02T14-26-32.970Z.png

https://e2e.ti.com/support/data-converters/f/73/t/262513?Replacement-of-TVP5150-by-TVP5151-issues




折叠评论
加载评论中,请稍候...
折叠评论
2020-08-03 03:09:46
5楼
引用smith发表于3楼的内容
我有下载过FLIR的4GB大小的ADAS数据,图像是用 FLIR Tau2 拍的,有打标前和打标后以...

tau2实在太老了,的确没有能力跑classifier,

4年前的boson就带了,好像是类似yolo的算法。

折叠评论
加载评论中,请稍候...
折叠评论
6楼

要不。。。直接上个小的x86平台来开发 sticker

折叠评论
1
加载评论中,请稍候...
折叠评论
7楼

热成像识别的训练数据比较麻烦,开源的数据集少,而不同的设备差异较大迁移也麻烦


折叠评论
加载评论中,请稍候...
折叠评论
smith(作者)
8楼
引用phpskycn发表于7楼的内容
热成像识别的训练数据比较麻烦,开源的数据集少,而不同的设备差异较大迁移也麻烦

其实如果只是作分类,不考虑测温的话,图像完全可以当灰度图像处理,FLIR有开放一些ADAS图像数据集,不过确实比较少

折叠评论
1
加载评论中,请稍候...
折叠评论
2020-08-10 00:11:32
9楼

2018年的时候做过TVP5150接K210的实验,但是出来的东西对不齐的画出来的图会有锯齿,需要动用CPU二次处理比较不爽。可能你接一个安路或者高云的FPGA来干这个会更好一些=P

[修改于 2 个月前 - 2020-08-10 00:13:48]

折叠评论
加载评论中,请稍候...
折叠评论
smith(作者)
10楼
引用Vowstar发表于9楼的内容
2018年的时候做过TVP5150接K210的实验,但是出来的东西对不齐的画出来的图会有锯齿,需要动...

层主用的是TVP5150还是TVP5151,需要软件作BT656转RGB吗,稳定的话可以做到多少帧

折叠评论
加载评论中,请稍候...
折叠评论
11楼

非常好的资料,感谢分享

折叠评论
加载评论中,请稍候...
折叠评论
12楼
引用smith发表于1楼的内容
折腾了一天了,还没有解决TVP5150晶振不起振的问题,奇怪了,我的电路是按照官方原理图画的,PDN...

说句实话,楼主的layout实在太差。 

可能的几个原因:

1、layout: 晶体走线过长,而且没有就近打地孔到GND。

2、负载电容: jlc的14.31818MHz晶体都是贴片的,你这个插裝的不知道负载电容是多少。 举例:晶体负载电容20pF,实际贴的电容器Cload = (20pF-2pF)*2  = 36pF。 

3、100k电阻太小了,直接拆掉,或者换1M的。

4、焊接问题,阻焊剂要用酒精清洗干净。



折叠评论
1
加载评论中,请稍候...
折叠评论
13楼

XTAL1 对外提供时钟也是很奇葩



折叠评论
加载评论中,请稍候...
折叠评论
2020-08-11 08:12:24
smith(作者)
14楼
引用feiban发表于13楼的内容
XTAL1 对外提供时钟也是很奇葩

这个不是对外提供时钟,而是大部分摄像头模组都有的输入时钟XCLK,可以使用控制器的时钟保留的兼容设计,不过现在没有用上

折叠评论
加载评论中,请稍候...
折叠评论
smith(作者)
15楼
引用feiban发表于12楼的内容
说句实话,楼主的layout实在太差。 可能的几个原因:1、layout: 晶体走线过长,而且没有就...

感谢分析,100k的电阻是参考国外的一个原理图画的,拿掉发现还是不起振,目前最大的怀疑点是使用1.8V供电,而TVP5150的VDD_IO必须要3.3V,需要换城TVP5151才行,现在也在等TVP5151到货测试

折叠评论
加载评论中,请稍候...
折叠评论
2020-08-25 09:21:19
smith(作者)
16楼

更新一下进展,改板后,电源改为3.3V,TVP5150起振了,不过I2C读取到的数据不对,疑为时钟配置导致的

折叠评论
加载评论中,请稍候...
折叠评论
2020-08-26 10:00:27
17楼

低照度摄像头在微光下成像也不理想,可以试试增像管

折叠评论
加载评论中,请稍候...
折叠评论
2020-09-06 21:43:58
smith(作者)
18楼

淦、调试了接近一个月了,重新改版了一下,自己做的硬件终于通了,晶振起振了,PCLK有输出,但是I2C一直没调通。用K210的I2C读取不到数据,用ESP32的Wire库读取也有问题

IMG_20200906_212542.jpg

换成用买的模块调I2C,不得不说,TVP5150这颗芯片的I2C真的做得太特么烂了,


最后,我居然是用CH552 8051单片机的GPIO模拟I2C,可以正常访问的地址,读取的数据依然有问题,但是写下去的正常,把参数设置下去,最后示波器上终于有信号了,CVBS信号已经转化成了数字信号

IMG_20200906_211237.jpg

评论(1)折叠评论
1
加载评论中,请稍候...
折叠评论
smith(作者)
19楼


下一步,抓取BT656数据,传输到电脑显示出来

折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

%7B%22isDisplay%22%3Atrue%7D

仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png
插入公式
下载资料
{{fileName}}
大小:{{size}}
下载当前附件将花费 {{costMessage}}
你当前剩余 {{holdMessage}}
{{fileName}}
大小:{{size}}
{{settingNoNeed? '':'你已下载过此附件,'}}下载当前附件不需要花费积分
加载中...
{{errorInfo}}
当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}