智能驾驶-任务部署-目标检测跟踪融合-网络模型设计优化部署---粗浅之言

本文主要是介绍智能驾驶-任务部署-目标检测跟踪融合-网络模型设计优化部署---粗浅之言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:杂乱无章,感兴趣可看
问题涉及有:硬件平台、软件系统框架、目标检测、目标跟踪、多传感器融合算法、网络模型设计、训练、优化、嵌入式部署等一系列技术体系;根据自己对相关方面的理解,现做一粗浅的小结。
硬件平台,如安霸的CV2,它主要有SOC和MCU;SOC上有一个linux系统,用于某些处理以及调度相关任务,比如调度视觉感知任务等;因为视觉感知处理相对耗时,且摄像头接在SOC上,所以被部署于SOC上,其它处理速度快的模块,被部署于MCU上,如控制模块等,当然从安全性角度考虑,控制模块也应该部署在MCU上,这样实时性控制更高,如果控制模块部署在SOC上,就会多了一步SOC通过UART或SPI总线等向MCU传输控制量的时间,安全性会低一些,当然,MCU上也应该有一个实时系统(如RTOS)做一些处理以及调度任务等;对于某个复杂功能而言,它可能包含多个处理模块,如感知、规划、控制等,这样就可以将感知模块部署于SOC,规划、控制模块部署于MCU,系统上电启动后,两边linux和rtos系统分别调度开启各个任务模块,此时状态机运行,然后SOC和MCU两边各个任务模块就可以通过UART或SPI总线传输任务间的交互数据和信号,彼此协调工作,从而实现整个功能。
目标检测主要包括视觉检测和雷达检测(如毫米波雷达、激光雷达),因为单一传感器检测的目标漏检率较高,安全性较低,且不同的传感器拥有不同的自身优势,如雷达测距较视觉准确,视觉可识别出目标物的类别等,所以多传感器融合是一种大趋势,可有效降低目标检测的漏检率,提高安全性,当然这也只是一定程度的降低漏检率,所以从安全性考虑,感知在自动驾驶还有很长的路要走,可以说是没有尽头,需要一直走下去,逐步提高汽车安全性,减少事故的发生;多传感器融合可降低漏检,另外也可实现各传感器的优势互补,集各传感器优势于一体,从而输出更好的感知结果。
多传感器融合就是将同一帧数据下的同一目标的不同传感器数据关联起来,单一目标的数据融合较简单,因为只有一个目标,而重点需要考虑的是多目标下的多传感器数据融合,因为这种情况下一方面需要考虑摄像头的m个目标和雷达的n个目标他们的同一目标关联问题,有m=n和m!=n的情况,即可能出现目标间的一对一、一对多或多对一问题需要处理;待同一目标关联起来之后,另一方面就是同一目标下不同传感器数据融合问题;
融合之后,就是另一问题——目标跟踪,单一目标的跟踪较简单,因为只有一个目标,是他是他就是他;重点考虑的也是多目标跟踪,因为这种情况下需要考虑不同帧之间同一目标的关联问题,即第t帧的m个目标和第t+1帧的n个目标如何关联,有m=n, m>n(有目标被遮挡或丢了)和m<n(有新目标出现了)的情况;另外,不同帧间同一目标的相似性该如何处理,通过位置、颜色还是什么描述子呢,这样计算相似性,稳定性、可靠性怎么样呢?,即也可能出现目标间的一对一、一对多或多对一问题需要处理;
多传感器融合可以看成是同一目标的一种横向数据关联,多目标跟踪也可看成是同一目标的一种纵向数据关联;
对于不同的任务,设计网络模型时,它的宽度和深度大小多少合适呢?这是一个需要思考的问题,我总觉得任务不同,应该有个与任务相适的网络宽度和深度,就相当于有个合适的表达式来表示输入与输出的关系,如果表达式太简单就无法表达,太复杂,虽说也可以表达,但就太过了,还是找个合适的才是最好的,但是现在合适的她不好找啊,没有方向;目前也只能通过多次实验、不断调整,以良好的精度为目标进行确定;网络其它结构也已参考当前论文中好的设计思想而设计,当然也还需要相应的图像处理、机器学习相关知识;如此,在实验中不断训练、调整、优化自己的网络模型;
根据任务场景的不同,选择合适的摄像头;由于摄像头自身,如鱼眼摄像头,采集的图像是存在一定畸变的,需要进行畸变矫正,然后不同的颜色空间的图像数据也存在不同的特性,所以也需要根据采集的原图像和网络需要的图像进行颜色空间转换,还需要进行一些其它预处理,如缩放、标准化等;另外训练数据集的量需要多大合适呢,目前好像也是越大越好,由于数据集通常是不足的,为了提高网络模型的性能,往往还需要进行数据扩充,如此,送入网络逐步训练、优化自己的网络,朝着越来越好而多次不停实验着;
网络模型训练好了,就需要思考该如何部署到嵌入式端应用了,可以通过将移动端框架,如腾讯的NCNN\TNN,阿里的MNN等移植到SOC的linux上进行编译,生成相应的头文件和库文件在arm-cpu上供调用;但这样对于实时性要求不高的任务而言是可行的;对于驾驶的目标检测等实时性要求高的任务而言就不可行了,这时就需要进行优化,软件优化是一方面,但主要还是需要根据专门的硬件进行相应的代码移植,通过硬件加速处理,提高计算速度;如,对于安霸的CV2芯片,里面貌似集成有NPU,然后安霸工程师根据该NPU开发出相应的SDK,此时,我们训练好自己的网络模型后,然后就可以通过人家提供的cvFlow工具进行模型转换,然后任务移植上去就可以使用人家提供的接口进行相应的调用处理了,此时就在NPU上进行计算了,看起来快了好多,此时你会觉得一切都是那么的美好;

这篇关于智能驾驶-任务部署-目标检测跟踪融合-网络模型设计优化部署---粗浅之言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/790902

相关文章

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦