进阶|HDR-ISP支持ROS2以及GPU实时处理啦!
引言
之前我们开源了一份HDR-ISP代码供大家入门学习,但很多后台同学反馈CPU版本是实时性不够、对于相机无法实时处理。没关系,今天Cuda加速、支持ROS2可以实时处理的的HDR-ISP GPU版本来啦!
此次GPU版本开源版本只提供lib供学习测试!加入星球后可以找星主获取资料以及源码,白嫖党、伸手党可以自行走开!
1. 项目描述
1.1 项目特点
一个使用C++编写的、使用GPU加速用于HDR相机的ISP Pipeline
- ISP模块使用C风格编写
- 除仓库文件外,无其它第三方库依赖
- 可以通过json配置自定义你的pipeline
可以在任意支持C++的嵌入式平台上部署- 可以在支持Cuda的PC上运行,同时支持Nvidia Jeston嵌入式设备
- 支持文件离线处理、支持ROS2实时Online运行
- 支持通过配置选择ISP Pipeline是在CPU上运行还是GPU上运行
1.2 默认Pipeline
默认Json配置pipeline:
1.3 当前支持的模块
支持的ISP模块列表(CPU and GPU):
- Raw Domain
- MipiUnPack: Mipi原始数据转RAW16
- DePwl: 解压缩数据
- Dpc: 动态坏点校准
- Lsc: 镜头阴影校准
- Blc: 黑电平校准
- Rns: Raw域降噪
- WbGain: 白平衡增益
- Demoasic: 解马赛克
- RGB Domain
- Ltm: 局部色调映射
- RgbGamma: rgb伽马曲线
- Ccm: 色彩校准矩阵
- Rgb2Yuv: rgb域转yuv域
- YUV Domain
- YGamma: 灰度伽马曲线
- Contrast: 对比度提升
- Sharpen: 锐化边缘增强
- Cns: 颜色滤波
- Saturation: 色度提升
- Yuv2Rgb: yuv域rgb域
2. 如何编译与运行
2.1 Linux系统
开发环境 :
- nvcc
- cmake
- g++
编译
- 不使用ROS2
1 |
|
- 使用ROS2编译
- 克隆仓库
1 |
|
- 编辑 CMakeLists.txt,设置ROS2_ENABLE成true
1 |
|
- 编译
1 |
|
2.2 Windows
开发环境 (x64):
- vs code
- cmake
- nvcc
- vs2019 c++ gen tool
编译
- 不使用 ROS2
1 |
|
- 使用ROS2
- 克隆仓库
1 |
|
- 编辑CMakeLists.txt设置ROS2_ENABLE为true
1 |
|
- 编译
1 |
|
2.3 运行
- 离线模式
1 |
|
- 在线模式
1 |
|
2.4 改变模式以及运行设备
- 使用GPU加速(通过Json进行配置):
1 |
|
- 使用CPU运行(通过Json进行配置):
1 |
|
- ROS2实时处理模式以及修改Topic
1 |
|
- 离线处理RAW图
1 |
|
2.5 如何调试参数
通过修改json配置来配置ISP模块的基本参数
如,修改sensor基本参数:
1 |
|
修改rgb gamma参数如下:
1 |
|
3. GPU性能与ROS2支持
使用ROS以及GPU
- GPU性能(不发布ISP处理结果)
Index | Resolution | GTX1080 | MX550 |
---|---|---|---|
1 | 6080*4044 | 15 | 8 |
2 | 3840*2160 | 40 | 20 |
3 | 1920*1080 | 125 | 60 |
- ROS2 Online mode
4. 后续工作
4.1 TBD工作
- 编写Python或者GUI调试工具
4.2 资料获取
- 如果想学习源码、获取模块说明,请加入星球,我们共同开发!(毕竟开发者也要恰饭)
- 加入星球:
4.3 项目支持
- 感谢您的支持,希望我的项目对您有帮助~
5. 结束语
今天我们给大家介绍了HDR-ISP-GPU,希望对于入门的新人有一定的借鉴作用,同时希望我们的开源对于处于行业里面的你们有所帮助!
如果您对自动驾驶感兴趣,可以关注本公众号,当然有想了解的话题,也可以私信我,我们将对各位看官感兴趣的话题进行技术分享。
项目地址:https://github.com/JokerEyeAdas/HDR-ISP
项目分支:gpu_dev
项目GitHub快速传送门:HDR-ISP
6. 项目预告
哈哈,还没完!后台有老哥想要3D AVM实现方法,没关系,现在已经在准备实现中了,目前3D碗以及车的模型已经导入工作已经完成,状态如下:
想学习的加入知识星球,第一时间获取资料。今天就到这,peace。
如果您对ADAS感兴趣,欢迎关注我的公众号、知乎、CSDN等,同时发表文章中使用源码会在我的GitHub进行开源(网页About Me中有公众号、Github等信息)
进阶|HDR-ISP支持ROS2以及GPU实时处理啦!
https://jokereyeadas.github.io/2023/10/29/12.HDR-ISP支持ROS2以及GPU啦/