智能驾驶计算平台应用技术 课件 课件 5-3基于ADSF框架完成视觉目标检测算法的开发_第1页
智能驾驶计算平台应用技术 课件 课件 5-3基于ADSF框架完成视觉目标检测算法的开发_第2页
智能驾驶计算平台应用技术 课件 课件 5-3基于ADSF框架完成视觉目标检测算法的开发_第3页
智能驾驶计算平台应用技术 课件 课件 5-3基于ADSF框架完成视觉目标检测算法的开发_第4页
智能驾驶计算平台应用技术 课件 课件 5-3基于ADSF框架完成视觉目标检测算法的开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《智能驾驶计算平台应用技术》任务三

基于ADSF框架完成视觉目标检测算法的开发能力模块五

掌握视觉目标检测算法的开发方法《智能驾驶计算平台应用技术》情景导入Situationintroduction公司在研究了市面上的车载计算平台后,最终选择了华为MDC安装于新上市车型,你作为视觉算法工程师,接到了基于ADSF框架开发目标检测算法的任务。知识目标1.了解视觉感知的功能2.了解目标检测任务的分类3.了解目标检测算法的分类1.掌握基于ADSF框架完成目标检测算法的开发能力技能目标1.从实践中加深职业技能的能力素养目标Learningobjective学习目标视觉感知任务认知01.目标检测任务认知02.基于框架开发AI/NN类算法应用流程03.基于ADSF框架完成视觉目标检测算法的开发04.《智能驾驶计算平台应用技术》视觉感知系统主要以摄像头作为传感器输入,经过一系列的计算和处理,对自车周围的环境信息做精确感知。目的在于为融合模块提供准确丰富的信息,包括被检测物体的类别、距离信息、速度信息、朝向信息,同时也能够给出抽象层面的语义信息。视觉感知任务认知目标检测任务主要包含检测是否存在感兴趣目标,目标语义分类,定位目标位置,以及确定目标所占空间范围等。目标检测任务认知目标检测是计算机视觉中的经典任务,最常见的是二维RGB图像中的目标检测,而无人驾驶车载传感器多样,基于激光雷达、毫米波雷达或者超声波雷达的目标检测也是必不可少的。目标检测任务按检测物体类别可分为道路参与者检测(包括车辆、行人、非机动车等),交通标志检测(包括道路边界线、车道线、交通指示牌和锥桶等),以及通用障碍物检测。目标检测任务认知目标检测任务认知两步法一步法神经网络(NeuralNetwork,NN)一般也称为人工神经网络(ArtificialNeuralNetwork,ANN)。人工神经网络的基本结构模仿人脑,具有并行处理特征,可以大大提高计算机的工作速度。基于框架开发AI/NN类算法应用流程开发流程:Camera目标检测Demo接收图像数据,经过NN算法检测出目标物的2D轮廓,将轮廓发送给下个节点。基于ADSF框架完成视觉目标检测算法的开发1、开发前准备工作①接通Camera传感器:完成摄像头的接入,保证Camera抽象有图像输出。②选定ADSF框架:选择算法插件框架:③选择接收与发送端口:基于ADSF框架完成视觉目标检测算法的开发选择的框架框架输入数据框架输入instanceid框架输出数据框架输出instanceidCameraDetBaseImageFrame10~14(Mini0)20~24(Mini1)30~34(Mini2)40~44(Mini3)Haf3dDetectionOutArray1001~1003(Mini0)1004~1006(Mini1)1007~1009(Mini2)1010~1012(Mini3)(一)详细实现过程①框架初始化②NN初始化③获取输入图像④图像预处理⑤模型推理⑥解析结果并发送基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程2、整体流程基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤1:框架初始化CameraDetDemoApp::Initialize1. Adsfi::CameraDetBasecamDetBase{"Config.yaml"}; //实例化CameraDet框架2. camDetBase.Init();

//框架初始化,主要是读取配置文件,启动接收与发送服务3. Haflnitialize(context,contextParam); //初始化NN硬件加速基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤2:NN初始化ImageDetInference::Initialize1. HafCreatContext(context);

//创建每个推理线程中所要使用的context2. HafDNNModelInitialize(dnnHandle,modelFile);

//通过模型文件名加载NN模型3. HafDNNModelCreateInput(dnnHandle);

//创建模型的输入空间,保存在dnnHandle中4. HapfDNNModelCreateOutput(dnnHandle);

//创建模型输出空间,保存在dnnHandle中5. HafStreamCreate(stream);

//创建stream6. HafCreateChannel(channelId);

//创建图像预处理要使用的channelid基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤3:获取输入图像CameraDetDemoApp::ObjectDetectionThread1. while(!camDetBase.IsStop()){2. autoimg=camDetBase.GetImage(instanceld);

//获取传感器发送过来的图像...}基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤4:图像预处理1. CameraDetDemoApp::PrepareDvppMemory2. ImageDetInference::PrepareDvppMemory(input,output)3. HafImageMallocAligned(dvppInput)//提前申请dvpp上的内存,用于图像预处理的输入4. HafImageMallocAligned(dvppOutput)//提前申请dvpp上的内存,用于图像预处理的输出5. CameraDetDemoApp::PrepareImage4Model6. ImageDetInference.ImageResize(image.data,resizeOutImage)7. HafMemcpyToDvpp(inputImage,dvppInput)//将普通内存上的图像拷贝到DVPP内存上8. HafImageResize(channelId,dvppInput,dvppOutput,type)//图像resize基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤5:模型推理CameraDetDemoApp::ModelAddInput1. ImageNnInference::DNNModelAddInput(image.rawData,dataSize,index)2. HafDNNModelAddInput(dnnHandle,buffer,bufferSize,index));∥将图像添加到输入3. index++;4. ImageNnlnference::DNNModelAddInput(imglnfo.data(),imgInfoSizesizeof(float32_t),index)5. CHafDNNModelAddInput(dnnHandle,buffer,,bufferSize,index);∥将图像信息添加到输入6. ImageNnlnference::DNNModelProcess()7. HafDNNModelProcess(dnnHandle); ∥执行模型推理基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程3、详细过程步骤6:解析结果并发送1. ImageNnInference::DNNModelGetOutputBuffer(index,&outBuffer,bufferSize)//传入index=1,获取bbox数量值的内存地址2. HafDNNModelGetOutputBuffer(dnnHandle,index,buffer,bufferSize);3. ImageNnInference::DNNModelGetOutputBuffer(index,&outBuffer1,bufferSize)//传入index=0,获取bbox内存地址4. HafDNNModelGetOutputBuffer(dnnHandle,index,buffer,bufferSize);5. CameraDetDemoApp::PostProcess(boxNum,oriHeight,oriWidth,static_cast<float32_t*>(outBuffer1),out); //解析bbox6. camDetBase.SendObject(data,camDetBase.GetResultObjInsldx());

//将解析的结果发送出去基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程4、配置文件每个框架都有一个需要配置的Config.yaml文件,配置文件中定义了日志模式,日志级别,框架输入输出instanceid等重要信息,用户需要根据业务需求自行修改。1. %YAML:1.02. appName:CamD #节点名称,日志打印的关键字3. description:Camera2Ddetectionmodule4. priority:0#{0…12}当前未使用5. scheduleFrequency:30#当前末使用6. isDetermineSchedule:false#{true,false}当前未使用7. logFile:./#日志路径,当1ogMode配置有指定文件存储时,使用本路径存储日志,日志文件名为

$TappName.log基于ADSF框架完成视觉目标检测算法的开发(一)详细实现过程4、配置文件每个框架都有一个需要配置的Config.yaml文件,配置文件中定义了日志模式,日志级别,框架输入输出instanceid等重要信息,用户需要根据业务需求自行修改。8. logMode:6#{0,1,2,3,45,6}0:remote日志1:console日志2:本地日志3:remote日志+console日志4:remote日志+本地日志5:console日志+本地日志6:remote日志+console日志+本地日志9. logLevel:0#{0,1,2,3,4,5,6},0:verbose,1:debug,2:info,3:warn,4:error,5:fatal,6:off10. recvQueueSize:2#当前未使用11. recvInstanceID:12. cameralnstanceID:[11,12,13]#接收多个camera图像数据的instanceid13. sendInstancelD:14. detectionOutInstanceID:1001 #发送结果的instanceid基于ADSF框架完成视觉目标检测算法的开发(二)算法编译、运行1、Demo编译使用MDS工具导入整个ADSF_Sample工程。基于ADSF框架完成视觉目标检测算法的开发(二)算法编译、运行1、Demo编译使用MDS工具导入整个ADSF_Sample工程。基于ADSF框架完成视觉目标检测算法的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论