版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向无人驾驶的目标检测YOLOv8·KITTI数据集·实时感知目录CONTENTS01问题导入02总体设计03YOLOv8原理04数据预处理05模型训练06测试展示与总结01问题导入人工智能程序设计面向无人驾驶的目标检测课程路线:按项目开发流程学习以真实无人驾驶目标检测链路重构课程内容:贯通原理认知、核心代码实现与结果验证01问题导入场景痛点检测输出任务边界02总体设计三条主线模块接口环境资源03YOLOv8原理网络结构特征融合损失函数04数据预处理KITTI标签格式转换数据划分05模型训练配置文件训练命令权重产物06测试总结模型推理结果诊断迭代方向◎从道路场景到模型推理,学生按项目开发规范完成目标检测全流程构建01问题导入人工智能程序设计面向无人驾驶的目标检测为什么无人驾驶必须先“看懂道路”从真实交通场景出发,看清目标检测要解决的三类感知问题痛点一目标多且变化快车辆、行人、骑行者同时出现,系统需要实时锁定关键目标。多痛点二环境复杂易漏检遮挡、阴影、雨雾和远距离小目标都会降低检测稳定性。难痛点三错误传导到决策漏检、误检或框偏移,会继续影响规划与控制判断。错普通视觉:只知道图中有什么图像结果:车辆、道路、行人问题:缺少目标位置和可执行结构旧方式项目要解决的事目标检测:返回结构化感知结果类别:Car/Pedestrian/Cyclist位置:bbox边界框置信度:confidencescore新方式◎目标检测不是只看见画面,而是把画面转成可供决策使用的结构化信息01问题导入人工智能程序设计面向无人驾驶的目标检测复杂道路场景让检测任务变难小目标、遮挡和恶劣环境会带来漏检、误检和定位偏移小目标远处行人/车辆占像素少风险:漏检遮挡目标只露出局部轮廓风险:框偏移车流密集相邻框容易重叠风险:误检阴影边界和纹理被削弱风险:漏检夜间光照不足导致特征弱风险:框偏移雨雾目标对比度下降风险:误检复杂背景交通设施易被误检风险:漏检远距离定位框容易偏移风险:框偏移◎检测质量决定感知结果是否可靠,错误会继续传导到决策与控制01问题导入人工智能程序设计面向无人驾驶的目标检测检测结果由类别、位置和置信度组成以KITTI道路图像为例,目标检测同时回答“是什么、在哪里、有多确定”class_id是什么车辆、行人、骑行者等目标类别bbox在哪里边界框定位目标的空间范围confidence有多确定表示模型对检测结果的置信程度◎检测输出越结构化,后续规划和控制模块越容易使用01问题导入人工智能程序设计面向无人驾驶的目标检测视觉任务逐级接近无人驾驶感知分类只回答“有什么”,检测进一步给出目标位置,跟踪再关注目标随时间的变化1图像分类判断图中是否有车辆、行人等类别有什么2目标检测输出每个目标的类别、位置和置信度在哪里3分割/跟踪理解目标轮廓和连续运动轨迹怎么动4驾驶决策把感知结果转成规划与控制依据怎么开◎本章聚焦目标检测,因为它是无人驾驶视觉感知的关键入口人工智能程序设计面向无人驾驶的目标检测一张道路图像如何变成检测结果先看最终效果:输入KITTI测试图像,模型输出带类别和边界框的目标结果原始道路图像YOLOv8检测结果YOLOv8输出:车辆/行人/骑行者+边界框+置信度◎后续所有数据处理、训练配置和测试展示,都是为了稳定得到这类检测结果01问题导入02总体设计人工智能程序设计面向无人驾驶的目标检测总体架构由数据、模型和推理三条主线组成数据预处理产出YOLO格式数据,模型训练产出best.pt,推理展示产出检测结果图KITTI原始数据image_2图像label_2标签原始txt数据预处理清洗DontCare转换YOLO格式划分train/valdatasets模型训练读取yaml配置训练YOLOv8保存权重文件best.pt推理展示加载best.pt预测测试图像输出检测结果result.jpg◎目标检测项目不是只有模型,数据质量和推理验收同样决定最终效果人工智能程序设计面向无人驾驶的目标检测运行环境要支撑深度学习训练与推理GPU、CUDA、Cudnn、Python环境和Ultralytics框架需要兼容,才能稳定训练YOLOv8应用层YOLOv8训练脚本/推理命令框架层Ultralytics+PyTorch语言层Python3.8+Anaconda环境加速层CUDA11.3+Cudnn硬件层NVIDIAGPU为什么要关注环境训练速度、显存占用、包版本兼容、模型是否能调用GPU,都会影响项目能否复现。呈现方式左侧讲解环境栈作用,右侧放创建环境、激活环境和安装依赖三条核心命令。◎环境配置不是附属步骤,而是模型训练效率和可复现性的基础02总体设计人工智能程序设计面向无人驾驶的目标检测先搭全局地图,再进入YOLOv8原理需求、架构、数据形态、模块接口和环境资源构成后续算法学习的项目坐标系1需求2架构3数据形态4模块接口5环境资源6YOLOv8原理接下来进入算法层:模型如何从道路图像中提取特征、融合多尺度信息,并输出检测结果。◎总体设计提供项目地图,YOLOv8原理解释模型为什么能完成检测02总体设计03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测目标检测同时完成识别与定位分类告诉系统“是什么”,定位告诉系统“在哪里”,两者合并后才形成可用检测结果输入道路图像识别任务判断目标类别定位任务确定边界框位置检测结果类别+位置+置信度◎目标检测不是单一分类任务,而是分类与定位协同完成的视觉感知任务人工智能程序设计面向无人驾驶的目标检测目标检测从人工特征走向深度学习方法演进的主线,是让模型更准确、更实时、更适合复杂交通场景1传统方法HOG/SVM依赖人工特征2两阶段检测器R-CNN系列精度高但流程重3单阶段检测器YOLO/SSD一次预测,速度快4端到端检测器DETR全局建模,结构新本章选择YOLOv8:实时检测与工程易用性的平衡点◎无人驾驶更看重实时性,因此YOLO系列成为目标检测课程项目的合适入口03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测三类检测器的处理流程不同两阶段先找候选区域,单阶段直接预测,端到端检测器强调全局建模两阶段检测器生成候选区域分类与框回归精度高,流程较重单阶段检测器直接网格/特征预测一次输出结果速度快,适合实时端到端检测器全局特征建模直接匹配目标结构简洁,训练要求高◎YOLOv8属于单阶段检测器,优势是把检测流程压缩成高效的一次预测03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测YOLOv8在速度、精度和易用性之间取得平衡它适合无人驾驶实时检测,也适合课堂项目快速复现和扩展YOLOv8速度单阶段检测,适合实时感知精度多尺度特征融合提升检测效果易用性Ultralytics框架便于训练与推理◎模型选择来自项目需求:实时、准确、可复现,缺一项都会影响教学项目落地03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测YOLOv8网络由Backbone、Neck和Head组成Backbone提取特征,Neck融合特征,Head输出类别与边界框输入图像Backbone提取边缘、纹理、形状和语义特征Neck融合浅层细节与深层语义Head输出类别、边界框和置信度检测结果◎先记住三段分工:提特征、融特征、出结果,后续模块都围绕这条主线展开03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测Backbone把原始图像逐层变成特征图空间尺寸逐步变小,通道语义逐步增强:浅层看轮廓,深层看目标语义640×640P1/2320×320边缘/颜色P2/4160×160纹理/局部形状P3/880×80车辆轮廓P4/1640×40目标部件P5/3220×20高级语义◎Backbone的核心价值,是把像素级画面加工成可供检测头使用的多层视觉特征03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测CBS是YOLOv8提取基础特征的常用单元Conv提取局部特征,BN稳定特征分布,SiLU增强非线性表达输入特征图道路图像中的局部信息Conv提取边缘、纹理和局部形状BatchNorm让特征分布更稳定SiLU突出有效特征,弱化噪声输出特征图更有判别性的视觉表达一个CBS模块很小,但大量堆叠后,就能逐步形成对交通目标的稳定视觉表达◎理解CBS,就是理解YOLOv8如何从最基础的视觉线索开始建模03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测卷积用局部窗口提取道路图像特征模型先从小区域中捕捉边缘、纹理和轮廓,再逐层组合成车辆与行人语义局部窗口扫描响应特征图卷积关注什么?车辆边缘行人轮廓车道线纹理交通标志边界◎卷积不是一次理解整张图,而是先从局部视觉线索开始建立特征03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测BatchNorm让训练过程更稳定它把卷积输出的特征分布校准到更稳定的范围,帮助模型更容易收敛归一化前特征分布波动大训练更难稳定BatchNorm校准归一化后特征分布更稳定优化过程更容易收敛◎在光照和场景变化明显的道路图像中,稳定的特征分布有助于模型训练03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测SiLU激活让特征表达具备非线性激活函数会突出有效响应、弱化无关区域,让网络能表达复杂交通场景SiLU的直观含义让重要特征保留下来让弱响应区域逐渐淡化为后续模块提供更有区分度的表达目标轮廓更突出负响应被压低正响应平滑保留◎SiLU不是单独完成检测,而是让卷积提取到的特征更适合继续传递03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测C2f通过分叉和融合增强特征连接它保留浅层信息,同时通过Bottleneck堆叠提取更深层语义,减少信息断裂输入特征分割主路径保留BottleneckBottleneckConcat跨层融合输出特征◎C2f的关键不是堆更多层,而是让浅层信息和深层语义一起参与输出03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测Bottleneck用残差通路提取深层特征主分支加工特征,旁路保留输入信息,最终合并,减少深层网络中的信息损失输入卷积加工特征压缩+输出旁路保留输入信息从边缘纹理进一步学习车辆形状、行人姿态等高级特征◎残差通路让深层特征提取更稳定,也让信息更容易向后传递03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测SPPF用连续池化快速获得多尺度上下文不同尺度的上下文信息被拼接到一起,让模型同时关注近处大目标和远处小目标输入特征MaxPool1MaxPool2MaxPool3Concat输出局部信息:近处车辆边缘、行人轮廓上下文信息:远处车辆、道路结构和场景范围◎SPPF帮助模型以较低成本看到更大范围,从而提升多尺度目标感知能力03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测Neck负责融合浅层细节与深层语义小目标需要浅层定位细节,大目标需要深层语义理解,Neck把这些信息重新组织浅层细节强适合小目标定位中层语义与定位折中深层语义强适合理解大目标Neck多尺度融合桥小目标检测特征中目标检测特征大目标检测特征◎Neck的核心任务,是让不同尺度的目标都能获得合适的特征表达03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测FPN与PAN让特征在上下方向双向流动FPN把高层语义传给浅层,PAN把浅层定位信息再传回深层高分辨率高分辨率中等分辨率中等分辨率低分辨率低分辨率FPN自顶向下:补语义PAN自底向上:补定位双向融合多尺度检测◎FPN和PAN配合,让小目标获得语义支持,也让大目标保留定位细节03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测Head把融合特征转成类别与边界框多尺度特征进入检测头后,分别完成目标分类和边界框回归特征1特征2特征3DetectHead多尺度预测类别分支Car/Pedestrian/Cyclist边界框分支中心点+宽高最终检测结果类别+bbox+置信度◎Head是最终输出层,把融合后的视觉特征翻译成可使用的检测结果03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测无锚框设计直接回归目标位置相较预设大量锚框,无锚框方式更简洁,直接预测目标中心和边界信息锚框机制:预设许多候选框无锚框:直接预测中心和边界设计更简洁推理更高效◎YOLOv8的无锚框设计,让检测头更直接地回归目标位置03YOLOv8原理人工智能程序设计面向无人驾驶的目标检测损失函数告诉模型错在哪里分类损失关注类别是否正确,边界框回归损失关注预测框是否贴近真实目标绿色:真实框红色:预测框分类损失类别是否预测正确把Car误判为Truck,就需要修正类别分支框回归损失位置是否足够贴合预测框偏移或尺寸不准,会影响目标定位分布定位损失边界位置是否更精细让模型更快聚焦到真实边界附近◎训练不是让模型记住图片,而是用损失不断校正类别和位置预测03YOLOv8原理04数据预处理人工智能程序设计面向无人驾驶的目标检测KITTI提供真实无人驾驶场景数据本项目重点使用image_2道路图像和label_2二维目标标签,训练YOLOv8目标检测模型道路图像样例image_2高分辨率道路图像本项目使用label_2二维边界框标签本项目使用Velodyne激光雷达点云了解即可GPS/IMU定位与姿态传感器了解即可数据预处理的目标:把KITTI原始标签整理成YOLOv8可以直接读取的训练数据人工智能程序设计面向无人驾驶的目标检测类别体系:八类交通目标与DontCare类别体系决定模型输出维度,也决定后续数据清洗和yaml配置的类别顺序Car小汽车训练目标Van厢式车训练目标Truck卡车训练目标Pedestrian行人训练目标Cyclist骑行者训练目标Tram有轨车训练目标Misc其他交通目标训练目标Person_sitting坐姿行人训练目标DontCare无效/忽略区域过滤◎DontCare通常不作为有效目标参与训练,先明确类别体系才能稳定进入后续转换04数据预处理人工智能程序设计面向无人驾驶的目标检测数据清洗原理:为什么要过滤DontCareDontCare常表示无效区域、背景干扰、遮挡物或图像边缘区域,保留它会增加噪声清洗前标签CarPedestrianDontCareDontCareCyclist过滤无效训练信号清洗后标签CarPedestrianCyclist减少噪声避免模型学习到混乱目标提高稳定性训练信号更聚焦有效类别方便评估预测结果与有效标签更一致◎数据清洗的目标不是删得越多越好,而是让模型只从有效目标中学习04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:读取所有标签文件并统计类别先统计再清洗,避免在不了解原始类别分布的情况下盲目处理数据批量定位glob获取label目录下所有txt标签文件逐行解析每行标签的第一列就是类别名称集合去重用set查看清洗前实际出现过哪些类别importglobtxt_list=glob.glob(label_path+'/*.txt')category_list=[]defshow_category(txt_list):fortxt_pathintxt_list:withopen(txt_path,'r')asf:forlineinf.readlines():labeldata=line.strip().split('')category_list.append(labeldata[0])print(set(category_list))◎类别统计是数据质量诊断的第一步,可以先发现DontCare和异常类别04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:过滤DontCare并写回标签文件控制流按“读取、判断、过滤、重组、写回、复查”的顺序展开读文件读取每个txt标签判断类别判断是否DontCare写回只保留有效标签行fortxt_pathintxt_list:new_txt=[]withopen(txt_path,'r')asf:forlineinf.readlines():labeldata=line.strip().split('')iflabeldata[0]=='DontCare':continuenew_txt.append(merge(labeldata))withopen(txt_path,'w')asw_tdf:fortempinnew_txt:w_tdf.write(temp)◎覆盖写入前要先确认备份,数据清洗代码一旦执行会改变原始标签文件04数据预处理人工智能程序设计面向无人驾驶的目标检测清洗结果展示:000005.txt前后变化用真实样例说明:清洗不是抽象动作,而是标签文件内容确实发生变化清洗前000005.txtPedestrian0.000-0.20...DontCare-1-1-10...DontCare-1-1-10...DontCare-1-1-10...清洗后000005.txtPedestrian0.000-0.20...噪声减少有效目标保留,忽略区域移除◎清洗后的标签更短、更干净,也更适合直接进入训练流程04数据预处理人工智能程序设计面向无人驾驶的目标检测标注格式转换原理:KITTI坐标到YOLO坐标KITTI使用像素绝对坐标,YOLO使用0到1之间的归一化中心点与宽高KITTI:x1,y1,x2,y2中心点cx=(x1+x2)/2/图像宽cy=(y1+y2)/2/图像高宽高w=(x2-x1)/图像宽h=(y2-y1)/图像高输出范围所有坐标都归一化到0-1之间◎格式转换的本质,是把像素框转换成YOLO可以统一读取的相对坐标04数据预处理人工智能程序设计面向无人驾驶的目标检测YOLO标签格式:一行就是一个目标每行包含class_id、x_center、y_center、width、height,坐标均为相对图像尺寸的比例class_id类别编号x_center中心点xy_center中心点ywidth框宽height框高10.4582030.6024510.0835940.224510◎YOLO标签极简但信息完整,模型按一行一个目标读取训练样本04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:类别映射字典dic类别名到class_id的映射,是数据转换和模型配置之间的契约讲解重点1KITTI类别名不能直接作为YOLO标签输出2需要先转成从0开始的数字class_id3dic顺序必须与data.yaml中的names一致4顺序错位会导致训练和预测标签错位dic={'Car':0,'Pedestrian':1,'Van':2,'Cyclist':3,'Truck':4,'Misc':5,'Tram':6,'Person_sitting':7}◎类别映射不是随便编号,它必须和后续yaml配置保持完全一致04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:遍历图像并找到对应标签图像和标签必须一一对应,这是目标检测数据集最容易出错的环节之一图像名从image_2目录取得图片文件名标签名替换扩展名找到同名txt存在性检查标签文件是否真实存在尺寸读取图像宽高用于坐标归一化defchangeformat(img_list,label_dir):forimg_nameinimg_list:image_name=os.path.basename(img_name)label_file=os.path.join(label_dir,image_name.replace('.png','.txt'))ifnotos.path.exists(label_file):continueimg=cv2.imread(img_name)h,w,_=img.shape◎文件名配对和尺寸读取,是后续边界框归一化计算的前置条件04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:边界框归一化与写入新标签把KITTI的x1,y1,x2,y2转换成YOLO的中心点、宽高,并保留6位小数写入文件x1,y1,x2,y2KITTI原始像素框dw,dh图像宽高的倒数bx,by归一化中心点bw,bh归一化宽高x1=float(label[4])y1=float(label[5])x2=float(label[6])y2=float(label[7])dw=1.0/wdh=1.0/hbx=(x1+x2)/2.0*dwby=(y1+y2)/2.0*dhbw=(x2-x1)*dwbh=(y2-y1)*dhnew_line=f'{dic[label[0]]}{bx:.6f}{by:.6f}{bw:.6f}{bh:.6f}\n'out_file.write(new_line)◎这一页是格式转换核心:类别编号加四个归一化坐标,组成YOLO训练标签04数据预处理人工智能程序设计面向无人驾驶的目标检测数据集划分原理:训练集和验证集为什么分开训练集用于更新参数,验证集用于观察模型在未见样本上的泛化表现KITTI训练数据7481张图像80%train:参与训练,持续更新模型参数20%val:不参与更新,用来观察泛化表现学习验收如果只看训练集效果,模型可能只是记住样本,而不是学会检测规律◎训练集负责学习,验证集负责验收,二者分开才能判断模型是否真正泛化04数据预处理人工智能程序设计面向无人驾驶的目标检测核心代码:复制图像和标签到标准目录YOLOv8读取数据依赖标准目录结构,目录错了训练就会找不到数据创建目录生成四个标准目录随机打乱random.shuffle保证样本分布更均匀复制配对图片和同名标签一起进入目标目录缺失警告标签不存在时提醒检查数据完整性defsplit_dataset(images,labels,out_dir):os.makedirs(out_dir+'/train/images',exist_ok=True)os.makedirs(out_dir+'/train/labels',exist_ok=True)os.makedirs(out_dir+'/val/images',exist_ok=True)os.makedirs(out_dir+'/val/labels',exist_ok=True)random.shuffle(images)split=int(len(images)*0.8)train_imgs=images[:split]val_imgs=images[split:]shutil.copy(img_path,target_img_dir)ifos.path.exists(label_path):shutil.copy(label_path,target_label_dir)else:print('warning:labelmissing')◎标准目录是训练入口:图片、标签和train/val层级必须同时正确04数据预处理人工智能程序设计面向无人驾驶的目标检测本模块小结:数据预处理产出什么模型能不能训练,首先取决于数据目录和标签格式是否正确干净标签去除DontCare等无效区域给训练模块直接引用YOLO格式class_id+中心点+宽高给训练模块直接引用训练/验证目录train与val标准文件夹给训练模块直接引用类别映射dic、nc、names保持一致给训练模块直接引用下一步:环境部署与模型训练◎数据预处理把原始KITTI样本整理成YOLOv8可以直接读取的训练资产04数据预处理05模型训练人工智能程序设计面向无人驾驶的目标检测训练环境部署:创建并激活yolov8环境环境隔离可以减少包版本冲突,让项目更容易复现创建环境指定Python3.8,避免版本不兼容激活环境让后续命令进入yolov8依赖空间安装依赖安装ultralytics训练与推理工具包condacreate-nyolov8python=3.8condaactivateyolov8pipinstallultralyticsPython+Ultralytics+GPU/CPU运行环境◎先把环境独立出来,后续训练、预测和复现实验才不容易被依赖问题打断人工智能程序设计面向无人驾驶的目标检测环境验证:先跑官方预测案例训练前先验证推理链路,可以快速发现安装、模型下载和设备选择问题命令输入模型加载图片推理保存结果yolotask=detectmode=predictmodel=yolov8n.ptsource=bus.jpegdevice=cpusave=True生成runs目录输出预测图片图中出现检测框◎能成功预测,说明YOLOv8基础环境和推理链路已经打通05模型训练人工智能程序设计面向无人驾驶的目标检测训练配置总览:模型yaml与数据yaml配置文件是训练脚本和数据集之间的合同,路径、类别数、类别名必须互相一致模型yaml控制模型结构重点配置:•nc类别数量•网络深度与宽度•Backbone/Head结构数据yaml控制数据入口重点配置:•train路径•val路径•names类别列表nc=names数量◎模型yaml回答“输出多少类”,数据yaml回答“数据在哪里、类别叫什么”05模型训练人工智能程序设计面向无人驾驶的目标检测核心配置:nc类别数与names列表训练配置中的类别体系要与前面数据转换dic保持一致dic类别名->class_idnc类别总数=8namesclass_id->类别名nc:8names:0:Car1:Pedestrian2:Van3:Cyclist4:Truck5:Misc6:Tram7:Person_sitting类别重复或顺序错误,会导致预测标签显示混乱◎dic、nc、names三者数量和顺序一致,训练结果才不会错位05模型训练人工智能程序设计面向无人驾驶的目标检测Python训练方式:用UltralyticsAPI启动训练Python方式适合集成到项目脚本中,便于记录日志或开展参数实验1加载模型结构2加载预训练权重3读取数据yaml4设置训练参数5启动训练fromultralyticsimportYOLOmodel=YOLO('yolov8n.yaml').load('yolov8n.pt')model.train(data='yolov8n-kitti.yaml',epochs=100,imgsz=640,device=0)◎PythonAPI训练更适合写入项目脚本,方便后续扩展日志、实验和自动化流程05模型训练人工智能程序设计面向无人驾驶的目标检测命令行训练方式:一条命令跑完整实验命令行更短,适合快速复现实验和课堂演示;Python方式更适合集成yolotrainmodel=yolov8n.ptdata=/yourpath/yolov8n-kitti.yamlepochs=100imgsz=640device=0model预训练权重或模型结构data数据yaml配置路径epochs训练轮数imgsz输入图像尺寸deviceCPU或GPU编号◎命令行训练把模型、数据、轮数、尺寸和设备全部压缩进一条可复现实验命令05模型训练人工智能程序设计面向无人驾驶的目标检测训练过程观察:loss下降说明什么训练不是黑盒,要观察曲线是否下降、是否震荡、是否出现过拟合loss整体下降boxloss边界框位置是否更准classloss类别识别是否更准DFLloss边界定位分布是否更精细◎loss下降通常说明模型在类别识别和边界框定位上持续优化05模型训练人工智能程序设计面向无人驾驶的目标检测训练产物:runs目录、last.pt与best.pt训练完成后,权重文件、训练日志、结果曲线和评估图都会保存在runs目录中runs/detect/trainweights/last.ptbest.ptresults.pngconfusion_matrix.pngargs.yaml输出目录树last.pt最后一轮训练权重保留训练结束状态best.pt验证集表现最佳权重测试与推理首选results.pngloss与指标曲线观察训练过程◎后续测试通常优先使用best.pt,因为它代表验证集上表现最好的模型状态05模型训练人工智能程序设计面向无人驾驶的目标检测核心代码:YOLOv8网络结构如何构建把前面算法原理落回代码结构:Backbone、Neck、Head对应三段成员模块backbone提取多层视觉特征neck融合多尺度特征head输出类别与边界框forward串联完整前向传播classYOLOv8(nn.Module):def__init__(self,nc):super().__init__()self.backbone=Backbone()self.neck=Neck()self.head=Detect(nc=nc)defforward(self,x):feats=self.backbone(x)fused=self.neck(feats)preds=self.head(fused)returnpreds◎YOLOv8类把特征提取、特征融合和检测输出组织成一条清晰的前向链路05模型训练人工智能程序设计面向无人驾驶的目标检测核心代码:Detect检测头的双分支检测头把多尺度特征转成两类预测:框的位置和目标类别多尺度特征bbox分支位置回归class分支类别预测通道维拼接classDetect(nn.Module):defforward(self,feats):outputs=[]forxinfeats:bbox_pred=self.bbox_layers(x)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烹饪职业前景展望
- 消防安全日班级群文案
- 背部疼痛宣教
- 兽医局消防安全培训手册
- 锁具修理工改进竞赛考核试卷含答案
- 安全生产与和平讲解
- 棉花保管员安全生产意识强化考核试卷含答案
- 焦炉炉前工成果转化评优考核试卷含答案
- 纯碱盐水工岗位基础评估考核试卷含答案
- 多晶硅制取工复试知识考核试卷含答案
- 2026南充市中考英语真题(附答案)
- ISO9000-2026 质量管理基础与术语(中文版)
- 福建省百校2026届高三5月联考语文试卷(含答案)
- 安装工程项目成本管控字典
- 博帕尔案例分析
- 医院高值耗材管控制度及实施方案
- 连接器培训课件
- 矿山安全教育培训课直播课件
- 外贸采购 业务培训课件
- GB/T 14233.2-2025医用输液、输血、注射器具检验方法第2部分:生物学试验方法
- 2025年基本公共卫生服务项目(慢阻肺健康管理)培训试题(附答案)
评论
0/150
提交评论