• 999查看
  • 0回复

[环境感知] ADAS-360环视拼接原理分析与C++实现(二)

[复制链接]


该用户从未签到

发表于 3-3-2024 13:50:26 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


" 在上篇文章《360环视拼接原理分析与C++实现(一)》中:

开源360全景拼接原理分析与实现
JokerEye,公众号:ADAS之眼ADAS-开源环视360全景拼接代码原理分析与实现(一)

我们讲解了360全景影像实现的原理,今天笔者应后台同学私信需求,即使白天工作很忙,但在笔者连续‘肝’了几天之后,还是将C++代码初版Demo实现了出来,并且在GitHub进行了开源。“
(感兴趣的小伙伴可在文末获取GitHub链接)???
ADAS-360环视拼接原理分析与C++实现(二)w1.jpg

01—仓库说明
仓库整体结构如下所示:

ADAS-360环视拼接原理分析与C++实现(二)w2.jpg
工程文件结构说明如下:

    doc:存放工程说明文件,如公众号图片等;images:存放的是四个环视图像以及汽车模型图象;srcs:存放工程公共源码、参数以及头文件等信息;CMakeLists:用于对工程进行编译路径、依赖管理;avm_cali_demo:透视变换校准APP源码;avm_app_demo:四张原始环视图像转变为一张环视拼接图像APP源码;readme:工程编译、运行以及TODO项说明等。
02—环视拼接APP流程

环视360全景拼接APP流程如下所示:
ADAS-360环视拼接原理分析与C++实现(二)w3.jpg

上述流程其实比较简单,主要是透视变换、图像拼接、灰度世界awb算法以及亮度均衡在图像处理的应用,算法详细可以参考代码仓库。在实际应用中需要注意:

    标定的yaml参数为出厂时环视标定的内外参数,包括了透视变换参数、相机内参等;权重图像也是要提前标定好,只需要标定一次即可,为四个角落两两图像合并使用的权重系数;输入则是四个环视实时输出给ECU的图像,输出为拼接好的汽车360环视图像,如果输入是视频流则循环执行拼接算法;
*需要注意,透视变换参数可以通过我们提供的avm_cali_app进行标定
03—编译与运行编译:笔者编译环境是在Windows下进行,使用CMake or Vs Code选择合适编译器进行编译即可,笔者使用参数如下所示:
ADAS-360环视拼接原理分析与C++实现(二)w4.jpg
编译依赖项:1. VS 2019(可选VS15-22,主要需要安装CI编译器)
2. CMake(编译管理器)
3. VS Code(可选项,IDE)
    笔者代码中文件路径给的相对路径,images(../../images)以及yaml(../../ymal)文件夹位于相对于编译好的app前两级才可以正常运行,开发者可以自行修改。运行:以笔者为例,编译后在./build/Release目录下会产生avm_app以及avm_cali两个app,运行avm_app则会在当前文件夹下输出合并好的拼接图像(ADAS_EYES_360_VIEW.png)。另外,初版demo开启以及关闭awb与亮度均衡对比效果如下:
awb与亮度均衡关闭
awb与亮度均衡使能

ADAS-360环视拼接原理分析与C++实现(二)w5.jpg


ADAS-360环视拼接原理分析与C++实现(二)w6.jpg

仓库在文末已经开源,感兴趣的同学可以自行下载、点个star以及follow。
04—结束语


该用户从未签到

发表于 14-3-2025 10:48:00 | 显示全部楼层
好的,针对上述帖子关于ADAS-360环视拼接原理分析与C++实现,我可以为您提供专业的回复:

该仓库针对ADAS-360环视拼接的实现进行了详尽的讲解与C++代码Demo的开源。从仓库结构来看,整体布局清晰,工程文件组织有序。文章对360全景影像的实现原理进行了阐述,并且作者通过不懈努力,完成了C++初版Demo并在GitHub上进行开源,为公众提供了一个学习和研究的好平台。

关于C++实现部分,主要会涉及到图像拼接的核心算法,如特征点提取、匹配、变换矩阵计算等。在实现过程中,可能会用到OpenCV等图像处理库。对于感兴趣的小伙伴,可以通过GitHub链接获取相关代码,进行深入学习和研究。

以上为对帖子的专业回复,希望对您有所帮助。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 14-3-2025 10:48:00 | 显示全部楼层
好的,针对上述帖子,我作为汽车工程师的回复如下:

关于ADAS-360环视拼接原理分析与C++实现(二):

在上篇文章中,已经详细讲解了360全景影像实现的原理。本次,开发者实现了C++代码初版Demo,并在GitHub进行了开源,为公众提供了极大的便利。

仓库整体结构清晰,工程文件组织有序。对于代码实现部分,其核心在于环绕车辆四周的摄像头采集的图像进行预处理、特征提取、图像配准与拼接。具体实现过程中,涉及到图像变换、图像融合、畸变校正等技术。

C++语言在实现过程中发挥了其运行效率高、代码控制能力强等优势。对于感兴趣的小伙伴,可以通过文末提供的GitHub链接获取相关代码,结合上文原理分析进行深入学习与探讨。

希望以上内容能为您提供有价值的参考。如有更多问题,欢迎继续交流。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-9-2025 13:33 , Processed in 0.437564 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.