Jetson边缘计算实现 红外测温+可见光AI识别系统

在电力巡检、工业安防或施工现场监测中,单纯的可见光视觉(RGB)往往只能告诉我们"有什么",却无法告诉我们"状态如何",设备是否过热?

为了解决这个问题,设计并实现了一套基于Jetson边缘计算平台的红外测温+可见光AI识别系统。这套系统不仅能通过YOLO模型精准识别目标,还能利用双光融合技术,将AI识别的类别与红外温度数据实时对齐,实现基于温度阈值的智能告警。

本文将复盘从双光标定、模型加速到Web可视化部署的全流程。

可见光与红外的"双光标定"

系统的基石是空间对齐。可见光相机和红外热成像仪通常拥有不同的分辨率、视场角(FOV)和物理位置。如果不对齐,AI识别出的"绝缘子"坐标映射到红外图上,可能测到的是背景天空的温度,导致数据完全失效。

因此,首先进行严格的双光标定:

数据采集:使用特制的标定板,同时采集可见光和红外图像对。

坐标映射:通过计算单应性矩阵(Homography Matrix),将可见光图像中的像素坐标 (x_rgb, y_rgb) 映射到红外图像的坐标系 (x_ir, y_ir) 中。

效果验证:确保可见光画面中的目标中心点,能精准落在红外热图的对应高温/低温区域上。

视觉感知:YOLO模型与ONNX加速

在可见光端,部署YOLO模型进行目标检测。考虑到Jetson板子的算力限制,直接运行PyTorch模型效率较低,因此采用ONNX Runtime进行推理加速。

模型导出:将训练好的YOLO模型(针对绝缘子单片、施工积水等场景优化)导出为 .onnx 格式。

TensorRT加速:在Jetson上,利用 trtexec 将ONNX模型进一步转换为TensorRT引擎(.engine),充分利用GPU的FP16算力。

逻辑融合:基于类别的温度阈值告警

这是系统的"大脑"部分。不同的目标,其安全温度阈值是完全不同的。例如,电力金具的过热阈值可能高达80℃,而人体体温超过37.5℃即为异常,或者施工现场的积水区域需要监测是否结冰。

因此,设计了如下处理逻辑:

ROI提取:根据YOLO输出的检测框,结合标定好的映射矩阵,在红外热图中截取对应的ROI区域。

温度解算:读取ROI区域内的原始辐射数据,转换为实际温度值(取最大值或平均值)。

动态阈值判定:

python 复制代码
  # 伪代码逻辑
if category == "insulator":
    threshold = 80.0
elif category == "human":
    threshold = 37.5
elif category == "water_area":
    threshold = 0.0  # 监测结冰
if current_temp > threshold:
    trigger_alarm()

交互呈现:基于Web的可视化界面

为了方便远程监控,开发了一套基于Web的可视化界面(使用Flask/FastAPI + Vue/HTML5)。

视频流传输:后端将处理后的视频帧(包含检测框、实时温度数值、告警高亮)编码为MJPEG或WebRTC流,推送到前端。

数据看板:界面右侧实时显示当前画面的最高温、各类别的统计数量以及告警日志。

优势:用户只需通过浏览器访问Jetson的IP地址,即可随时随地查看监控画面,无需安装任何客户端软件。

边缘部署:Jetson上的工程化落地

最后,将整个系统打包部署在NVIDIA Jetson平台上。

环境构建:配置JetPack、CUDA、cuDNN以及ONNX Runtime-GPU环境。

性能优化:

使用 jetson-stats (jtop) 实时监控CPU/GPU负载和温度。

通过多线程异步处理:视频采集、AI推理、Web推流分别在不同线程运行,确保界面流畅不卡顿。

最终效果:系统实现了实时的双光融合显示,当识别到目标且温度超标时,Web界面会立即弹出红色告警框,并记录日志。

Jetson的架构与window和linux不同,需要安装专用的onxx依赖

最终部署效果:实测平均推理可达25帧/秒以上,红外帧率11帧/秒,可见光帧率26帧/秒

相关推荐
明王明王1 小时前
从零搭建一个 AI Infra 实验室㉑:llm-d——从单个 vLLM 走向分布式推理
人工智能·ai infra
武子康1 小时前
图片删了,为什么旧链接还能打开、后台还能生成回来?
人工智能·agent
yuanyuan3341 小时前
2026枣庄带检测报告伸缩门品牌测评|本地服务
大数据·数据库·人工智能·伸缩门
无所畏俱的老尹2 小时前
Agent 落地为什么需要影子对照:同输入只读双跑、写动作变提案、差异报警,比直接切全量更安全
人工智能·机器学习·云计算·aigc·devops
神鹰手哥_起飞版3 小时前
深度研判任务里,开思考、换更强的模型、套方法论,哪个更有用?
人工智能
ObserverX213 小时前
我是如何用 13KB 纯 Python,发现本地 RAG 的“隐式递归记忆”的
人工智能
Jason_gao9993 小时前
Github Copilot 新手极速上手指南
人工智能·github·copilot
用户360055579003 小时前
Kestrel_VLLM - 35 · 把 m 循环搬进内核:一次「先量发射、再合并发射」的完整回合
人工智能
Linye3 小时前
为什么让 AI 修个小 Bug 却把底层全重写了?聊聊 Coding Agent 的最小修改边界
人工智能·架构