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

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

注意:杂乱无章,感兴趣可看
问题涉及有:硬件平台、软件系统框架、目标检测、目标跟踪、多传感器融合算法、网络模型设计、训练、优化、嵌入式部署等一系列技术体系;根据自己对相关方面的理解,现做一粗浅的小结。
硬件平台,如安霸的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

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis