一块小小的免费PCB万博在线登录入口,就能让手机秒变热成像仪!
照旧贼拉高清的那种!
总设备资本也就100元掌握!

这不得围不雅一下!
一、开源描绘
抛开了传统的热成像仪制作形状,使用可见光camera和热成像制作了一个双目手机热成像仪。像素:640x480。


现在,状貌已全开源。
——这个热成像仪的筹谋旨趣是什么?电路如何筹谋?软件如何筹谋?使用了什么算法和妙技?
底下逐一进行分析!
二、状貌功能已毕旨趣
了解功能旨趣前应知:
热成像仪,为什么要筹谋成“双目”的?
可见光相机具有分辨率高、帧率高的性格。热成像传感器不错测量温度漫衍,然而分辨率低、帧率低。
使用可见光图像来赔偿热成像图像,就不错达到热成像图——质地高、分辨率高的成果。
那具体的功能已毕是怎样的?底下就分析一下!
本状貌举座功能框架图如下。

最初MCU通过I2C接口读取热成像传感器数据,通过USB接口授向USB Hub。
Camera通用免驱USB录像头,也接到USB Hub上头。
然后将Usb Hub和Android手机连合。
接着,Android手机的诈欺层就会获得到两个传感器的数据。
火博体育App官网通过一定算法进行会通,就能得到——分辨率较高、质地较好的热成像图!
这是滚水壶热量漫衍图:
这是白日公园的热量漫衍图:
这是夜间街谈的热量漫衍图:
想已毕这么的成果,软硬件该如何筹谋呢?
三、硬件筹谋旨趣
www.crownsportsbookexperts.com
旨趣图

PCB图
本章会将旨趣图拆分为5部分,逐一说明一下。
1.MCU
MCU使用的是STM32F411CEU6,带USB FS,其带浮点运算单位可对热成像数据进行解算。

2.USB Hub
USB Hub使用的是SL2.1A,撑抓USB HS,不错用于传输录像头数据。此处接了晶振,可不焊合。
Camera则通过焊合形状连合到CAM_DM/CAM_DP。
皇冠赌场网站推荐2019USB1是一个USB TypeC公头,用于连合办机。
人活一辈子,有些话,最好永远不要说出口,不管对谁!
最近,皇冠体育博彩平台邀请了多位知名体育明星代言,包括姚明、刘翔等,为平台注入了更多的魅力和活力。我们提供最专业的博彩攻略和技巧分享
3.热成像传感器
热成像传感器使用的是MLX90640。
分辨率:32x24像素;I2C接口最高速度:1MHz。

4.电源
电源这里平直使用了一块LDO进行稳压,型号是ME6211。
这不错平直用低ESR的陶瓷电容进行输入输出的稳压。

5.其他
电源灯和测试LED电路:

调试SWD接口:
电竞游戏
测试点,固件使用UART2算作Debug串口:

完成了硬件部分的筹谋,我们再深刻见识一下,软件部分的核默算法是什么!
四、软件筹谋旨趣
软件部分,将要点分析——软件筹谋念念路、Android APP筹谋、数据会通算法,这三个部分。
1.软件筹谋念念路
设备环境使用STM32CubeIDE。
软件举座筹谋框架图如下:

通过I2C从mlx90640读取数据,进行打包,再使用USB发送读取到的数据。
通盘过程使用一个轮回即可。
其中mlx90640的温度测量限度是-40到300摄氏度。
值得选藏的是:
温度测量限度需要保留两位少许,诊疗为整型为-4000到30000,也不错用16位整型粉饰,使用一个0x8000为肇始码,后续跟768个温度数据。
mlx90640官方依然提供驱动,只需要已毕对应I2C的读写操作,即可通过API来读取传感器数据。
USB库由CubeIDE自动生成,平直调用USBCDC发送数据即可。
2.Android APP
Android端主要崇拜——数据读取、会通和浮现功能的已毕。
这里有两个USB设备:
网上聊天赌博挣钱一个是USB串口,用于传输热成像数据;一个是USB录像头,用于传输图像数据。
①软件框架
皇冠体育世界杯Camera和热成像传感器的数据读取皆有对应的库撑抓。
由于两个库对数据的读取皆是用的异步回调的形状,因此这里罗致双buffer缓存的机制
就以Camera为例,默契一下数据读取的逻辑:
启动化一个长度为2的部队。回调发生时,就新苦求一块buffer,然后将YUV数据拷贝到这块buffer中,再将这块buffer放入部队。
再起一个线程,不停从部队中读取数据,用于数据会通。
要是线程读取太慢,回调发现部队依然满,则从部队中取出一块buffer丢弃,然后再将新的buffer放入部队。
皇冠博彩要是回调一直不来,线程部队为空,则跳过下一次再读取。因为每一次回调皆会新苦求一块buffer,因此buffer不存在并提问题。
部队添加和删除侦查的皆是销亡个数据结构,存在并提问题,操作时需要选藏上锁。
如上所述,Camera有两个部队:
一个存放YUV数据;一个存放热成像数据。
只通过一个线程来侦查两个部队。两个部队皆稀有据时才取出,并进行数据会通。
由此我们得出,软件总体运行进程如下:

②Camera数据读取和预览
Android对录像头的撑抓使用UVCAndroid。
该库基于saki4510t/UVCCamera设备,提供了更为松懈的接口。
③热成像数据读取和预览
热成像数据通过USBCDC传输,在Android端看到的是一个造谣串口。
Android设备环境中,主要使用felHR85/UsbSerial提供造谣串口的操作撑抓,并在回调中将热成像数据放入部队中。
皇冠客服飞机:@seo36873.数据会通
上头提到过屡次“数据会通”。
那么,要如何获得数据,并进行会通呢?
①获得数据
使用一个线程即可获得数据。
这里瞻望可见光相机的帧率会比热成像帧率更高。
因此在恭候mYUVQueue部队稀有据时才会进行数据会通。
当 mThermalQueue 没稀有据时,则默许使用上一帧的数据。
②会通算法
这里录像头蚁集的是可见光的图像,分辨率是640x480;
热成像蚁集的是温度漫衍,分辨率是32x24。
会通算法的研究是——通过参考可见光的图像,让热成像蚁集的温度图像分辨率更高,领有更多的细节。
该算法基于一个假定:神采附近的像素,简略率来自销亡个物体,对应的温度也应该附近。
该算法的进程如下:
将热成像温度的漫衍,通过线性插值扩大到640x480像素。
以刻下像素点为中心,采纳一个长宽为REF_LEN的方形区域。
假定刻下camera像素的亮度值为v;方形区域中每个camera像素的亮度值为v_i;每个thermal像素的亮度值为t_i。计较刻下像素和参考区域每个像素的差值delta_v_i。
计较扫数矩阵,扫数示意每个像素的权重。
当delta_v_i >= 0时,k_i = 1 - delta_v_i / 255;当delta_v_i < 0时,k_i = 1 + delta_v_i / 255。
计较臆度值矩阵,示意每个像素联系于刻下像素温度的臆度值,t_hat_i = k_i * t_i。

计较臆度值矩阵的平均值,即刻下像素的温度臆度值。
由以上算法可知,在参考值矩阵中,与刻下像素值色度差值越小,对应的扫数k_i也就越大,对应温度的臆度值也就越大,对应的臆度的温度也就越接近。
举个栗子。
桥牌使用如下两个图片进行土产货仿真。
皇冠体育hg86a
第一张是camera拍的图片,第二张是热成像获得的经过插值放大后的温度漫衍图片。分辨率均为640x480。


当REF_LEN = 4时,会通截止如下:

当REF_LEN = 7时,会通截止如下:

可见,加入会通算法之后,原来插值放大的低频信息中,多出了一些高频细节。
颜色映射
完成一个热成像仪的终末一步,便是将会通明的图像转为伪彩色,再按照YUV的形状映射到camera图像中。
最终成果如下:

因为颜色映射的原因,原来热成像会通出的高频细节被销亡在海量的camera图像细节中,因此图像会通算法的成果并不显着,后续可能会分为两种模式分手进行输出。
参考良友:
[1]https://oshwhub.com/colourfate/binocular_thermal_imager
— 完 —
嘉立创EDA·头条号
关怀我,看一手优质开源状貌