计算机视觉 课件 第四章 目标检测_第1页
计算机视觉 课件 第四章 目标检测_第2页
计算机视觉 课件 第四章 目标检测_第3页
计算机视觉 课件 第四章 目标检测_第4页
计算机视觉 课件 第四章 目标检测_第5页
已阅读5页,还剩56页未读, 继续免费阅读

下载本文档

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

文档简介

计算机视觉第四章目标检测CONTENTS·学习路径本章学习路径01目标检测概述任务定义·技术发展脉络·评价指标02传统CV方法瓶口缺陷检测·车牌识别(LPR)03机器学习方法手写数字识别·滑动窗口检测框架04深度学习方法YOLOv8原理·行人检测实战05方法对比与技术选型三类方法横向对比·选型建议·学习路径总结01·目标检测概述目标检测需同时回答"在哪里"和"是什么"任务定义给定输入图像,输出一组检测结果:边界框b=(x,y,w,h)定位目标位置类别标签c识别目标是什么置信度s∈[0,1]衡量检测可信度与图像分类的区别:分类只回答"是什么",检测还需回答"在哪里"。一张图中可能有多个目标,每个目标都需要独立的边界框和类别。技术发展脉络阶段一传统CV手工特征+规则→阶段二机器学习特征+分类器→阶段三深度学习端到端学习传统CV:边缘/颜色/形状等手工特征+硬编码规则机器学习:HOG/LBP手工特征+SVM/RF分类器深度学习:CNN自动学习特征+端到端推理核心判断:三类方法并非简单替代,而是各有适用边界——理解原理才能做出正确选型01·目标检测概述如何衡量一个检测器的好坏?IoU交并比预测框与真实框的交集面积÷并集面积取值范围[0,1],通常阈值取0.5IoU≥阈值判定为正确检测(TP)Precision/Recall精确率=TP/(TP+FP):检测中有多少是对的召回率=TP/(TP+FN):真实目标有多少被找到二者通常此消彼长,需按场景权衡mAP平均精度均值各类别AP(PR曲线下面积)的平均值目标检测的核心指标,mAP@0.5最常用FPS每秒帧数衡量检测速度,实时检测通常要求≥25FPS精度与速度是检测器的核心权衡工程实践:监控场景偏重召回率(不漏检),自动驾驶偏重精确率(不误检),实时系统必须同时满足FPS要求01·目标检测概述/混淆矩阵混淆矩阵:TP/FP/FN/TN详解二分类混淆矩阵预测为正预测为负真实为正TP真正例FN假反例真实为负FP假正例TN真负例绿色:预测正确(TP+TN)红色:预测错误(FP+FN)对角线元素越多,模型性能越好TP真正例检测正确:预测框与真实框IoU≥阈值,且类别标签一致。是检测器"找对了"的样本。FP假正例误检:检测器输出了检测框,但实际不存在目标,或IoU<阈值/类别错误。是"多检了"的样本。FN假反例漏检:真实存在目标,但检测器没有输出对应检测框。是"没找到"的样本,小目标常见。TN真负例正确排除:背景区域没有被误检为目标。目标检测中背景区域巨大,TN通常不直接统计。目标检测中判定TP的条件:①预测框与某真实框的IoU≥设定阈值(常用0.5);②预测类别与真实类别一致。每个真实框最多匹配一个预测框。01·目标检测概述/评价公式检测评价指标:核心数学公式IoU交并比IoU=|A∩B|/|A∪B|A:预测框,B:真实框,取值[0,1]Precision精确率P=TP/(TP+FP)检测结果中真正例的比例Recall召回率R=TP/(TP+FN)真实目标中被成功检测的比例F1分数F1=2·P·R/(P+R)精确率与召回率的调和平均AP平均精度AP=∫₀¹P(R)dRP-R曲线下的面积,单类别指标mAP平均精度均值mAP=(1/N)·ΣᵢAPᵢN个类别的AP取平均,核心综合指标FPS帧率FPS=N_frames/T_secondsTP:真正例(IoU≥阈值且类别正确),FP:假正例(误检),FN:假反例(漏检)常用阈值:IoU=0.5(PASCALVOC),IoU=0.5:0.95(COCO)精度与速度权衡:mAP衡量检测质量,FPS衡量推理速度,实际部署需按场景需求折中01·目标检测概述/公式变量释义F1/AP/FPS:公式变量逐一拆解F1分数F1=2·P·R/(P+R)P:Precision精确率=TP/(TP+FP),检测结果中真正例的比例R:Recall召回率=TP/(TP+FN),真实目标中被检出的比例F1:P与R的调和平均,取值[0,1],兼顾精确率与召回率,越接近1越好AP平均精度AP=∫₀¹P(R)dRP(R):Precision-Recall曲线函数,以召回率R为自变量R:Recall召回率,积分下限0、上限1,覆盖所有可能的召回率dR:对召回率积分;AP即P-R曲线下方面积,衡量单类别综合性能FPS帧率FPS=N_frames/T_secondsN_frames:处理的图像帧总数(Numberofframes)T_seconds:处理这些帧所消耗的总时间,单位为秒(Timeinseconds)FPS:每秒处理帧数(FramesPerSecond),衡量模型推理速度,数值越大越快精度指标(F1/AP)与速度指标(FPS)通常此消彼长:模型越大精度越高但FPS越低,需按部署场景折中01·目标检测概述/AP详解AP平均精度:定义、计算与物理意义AP是什么?AP(AveragePrecision)即平均精度,是Precision-Recall曲线下方面积的近似值。取值范围[0,1],越接近1表示该类别的检测性能越好。AP是单类别指标。为什么需要AP?Precision和Recall随置信度阈值变化而此消彼长,单一阈值下的P/R无法全面评价检测器。AP通过积分所有阈值下的P-R表现,给出一个与阈值无关的综合分数。两种主流计算方法11点插值法(VOC2007)在Recall={0,0.1,0.2,...,1.0}共11个固定点上,取每个点及右侧的最大Precision。AP=(1/11)·ΣP_interp(rᵢ)计算简单,但精度较粗。所有点插值法(VOC2010+/COCO)对P-R曲线上所有Recall点做插值(取右侧最大Precision),然后精确积分。AP=∫₀¹P_interp(R)dR更精确,是当前主流标准。AP与mAP的关系:AP衡量单个类别,mAP=(1/N)·ΣAPᵢ是所有类别AP的平均值。COCO还报告AP@0.5、AP@0.75、AP@[0.5:0.95](10个IoU阈值的平均)。物理意义:AP综合了检测器在所有置信度阈值下的精确率与召回率,是目标检测最核心的单类别评价指标PART02·传统计算机视觉没有学习能力的算法,如何在图像中找到目标?传统CV方法不依赖数据训练,而是通过手工设计的特征算子和基于规则的后处理完成检测。核心思想是:利用目标在颜色、形状、纹理上的先验知识,设计确定性的图像处理流水线。本章两个案例瓶口缺陷检测霍夫圆定位+极坐标展开+阈值分割车牌识别LPRHSV颜色定位+垂直投影分割+模板匹配02·传统CV/瓶口缺陷检测瓶口检测:圆形几何如何定位缺陷?检测原理圆形拟合:正常瓶口为标准圆环,通过霍夫圆变换确定圆心和半径极坐标展开:环形区域转矩形,圆周缺陷变为水平异常,大幅降低检测难度灰度异常检测:缺口/破损表现为局部亮度突变,自适应阈值分割定位对称性校验:正常瓶口旋转对称,缺陷破坏对称性,径向剖面方差量化技术方案(六步流水线)01图像采集背光/同轴光,居中构图02预处理去噪+CLAHE增强03瓶口定位霍夫圆检测圆心半径04ROI提取极坐标展开环转矩形05缺陷检测阈值分割+轮廓筛选06结果判定面积阈值输出OK/NG实例:霍夫圆检测效果(左:原图,右:红色圆标注瓶口外边缘+绿色点标注圆心)关键技巧:极坐标展开将圆周缺陷转化为矩形水平异常,使检测从二维环形搜索降维为一维行扫描02·传统CV/玻璃瓶瑕疵类型与方案玻璃瓶九类瑕疵:类型识别与检测方案实例:玻璃瓶九类瑕疵检测样本(3×3九宫格)01瓶胚侧面划痕Canny边缘检测+霍夫直线提取,检测瓶胚侧面异常长划痕02胚侧面杂质自适应阈值分割+连通域分析,检测侧面暗斑/异物03瓶口破损霍夫圆拟合+圆周轮廓差,检测瓶口边缘不连续/凹陷04支撑环破损环形ROI提取+轮廓匹配,检测支撑环缺口/变形05瓶口椭圆瓶椭圆拟合+圆度计算(长短轴比),检测非正圆变形06胚侧面杂质灰度异常检测+面积/圆度筛选,检测侧面黑点异物07瓶口飞边边缘轮廓分析+毛刺突起检测,检测瓶口边缘异常突出08瓶口拉空底部ROI+形状/灰度分析,检测瓶口底部凹陷/空洞09瓶身气泡局部对比度检测+圆形斑点检测,检测瓶身透明气泡共性方案:ROI定位→特征提取(边缘/灰度/形状)→阈值/模板判定→输出OK/NG;不同瑕疵选择对应特征通道02·传统CV/瓶口缺陷检测瓶口检测:核心代码实现bottle_inspection.pyclassBottleMouthInspector:defpreprocess(self,img):gray=cv2.cvtColor(img,BGR2GRAY)gray=cv2.GaussianBlur(gray,(5,5),0)returnclahe.apply(gray)#对比度增强deflocate(self,gray):circles=cv2.HoughCircles(gray,HOUGH_GRADIENT,dp=1.2,minDist=100,param1=80,param2=30,minR=50,maxR=300)returnmax(circles[0],key=lambdac:c[2])defpolar_unwrap(self,gray,cx,cy,r):returncv2.warpPolar(gray,(720,r*0.25),(cx,cy),r,WARP_POLAR_LINEAR)defdetect_defects(self,unwrapped):binary=cv2.adaptiveThreshold(unwrapped,255,ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY_INV,15,5)contours=findContours(binary,RETR_EXTERNAL)return[cforcincontoursifcontourArea(c)>30]关键函数解析preprocess灰度化+高斯去噪+CLAHE自适应直方图均衡locate霍夫圆变换,取最大圆作为瓶口外圆polar_unwrapwarpPolar极坐标展开,环形转矩形(核心)detect_defects自适应阈值+形态学开运算+面积筛选工程要点:极坐标展开是降维关键;背光照明突出轮廓,同轴光适合划痕检测;param2越小越敏感但误检越多02·传统CV/车牌识别基础车牌识别:视觉特征、类型与应用场景车牌视觉特征颜色:蓝底白字/黄底黑字/绿底黑字,颜色与背景高对比纹理:字符密集,水平边缘丰富,垂直投影呈周期性峰值几何:标准440×140mm,宽高比约3.14:1字符:7位(省简称+字母+5位),新能源8位车牌类型蓝牌:小型汽车、非营运车辆(最常见)黄牌:大型汽车、教练车、摩托车绿牌:新能源汽车(渐变绿/黄绿双拼)白牌/黑牌:军警使馆/港澳出入境应用场景停车场:出入口自动识别、无感支付、车位引导交通执法:闯红灯/超速/违停抓拍、电子警察高速公路:ETC辅助、区间测速、逃费稽查智慧城市:流量统计、车辆追踪、园区门禁算法性能需求准确率:理想≥99%,复杂条件≥95%速度:单张<100ms,实时视频≥25FPS鲁棒性:光照/倾斜/污损/夜间/低分辨率多类型:蓝/黄/绿/白牌,单/双行,新能源8位核心判断:车牌具有稳定的颜色、纹理和几何先验,这是传统CV方法能够有效定位和识别的基础02·传统CV/车牌类型实例车牌类型实例:多场景实拍样本实拍样本:蓝牌×3·黄牌×1·红外灰度×1·新能源绿牌×1蓝牌(小型汽车)蓝底白字,最常见类型,HSV蓝色区间定位黄牌(大型车/教练车)黄底黑字,尺寸更大,需单独黄色阈值新能源绿牌(渐变绿)8位字符,小型车渐变绿,大型车黄绿双拼红外/灰度图像夜间或特殊场景,颜色失效,依赖边缘+纹理检测难点:·不同类型颜色差异大,需多阈值融合·光照/角度/污损导致颜色偏移·新能源8位字符增加分割难度·红外图像无颜色信息,需纹理兜底02·传统CV/车牌规格全览国内车牌规格全览:16种类型与特征民用常规(4种)普通蓝牌·普通黄牌·双层黄牌·2002个性车牌最常见,颜色定位为主新能源(2种)小客车渐变绿·大型车黄绿双拼8位字符,渐变底色增加分割难度特种车辆(4种)警用·教练·军车·武警含汉字/特殊字符,白底红字/黑字特殊用途(6种)港澳出入境·拖挂·民航·使馆·领馆·农用黑底/绿底,格式差异大,需专项适配国内车牌规格汇总:民用4+新能源2+特种4+特殊6=16种02·传统CV/车牌识别算法车牌识别算法:流程与参考伪代码算法流程图①图像采集/视频帧获取↓②预处理:去噪+灰度化+对比度增强↓③车牌定位:颜色分割+轮廓筛选↓④倾斜校正:最小外接矩形+仿射变换↓⑤字符分割:二值化+垂直投影+连通域↓⑥字符识别:模板匹配/结构特征分类↓⑦输出:车牌字符串+置信度参考伪代码defrecognize_plate(image):#①预处理gray=cvtColor(image,BGR2GRAY)enhanced=CLAHE(gray,clipLimit=2.0)#②车牌定位(颜色+轮廓)hsv=cvtColor(image,BGR2HSV)mask=inRange(hsv,blue_low,blue_high)mask=morphologyEx(mask,MORPH_CLOSE,kernel)contours=findContours(mask,RETR_EXTERNAL)candidates=[cforcincontoursif2.5<aspect_ratio(c)<4.0]plate=max(candidates,key=contourArea)#③倾斜校正angle=minAreaRect(plate).anglecorrected=warpAffine(plate,rot_mat(angle))#④字符分割binary=threshold(corrected,0,255,OTSU)proj=sum(binary,axis=0)#垂直投影chars=split_by_projection(proj,binary)#⑤字符识别(模板匹配)result=""forchar_imginchars:char_img=resize(char_img,(20,40))best_label,best_score=None,-1forlabel,tplintemplate_lib:score=matchTemplate(char_img,tpl,TM_CCOEFF_NORMED)ifscore>best_score:best_score,best_label=score,labelresult+=best_labelreturnresult注:传统CV用模板匹配做字符识别,需先归一化字符尺寸;工程中可替换为CNN(LeNet/ResNet18)提升精度,定位可替换为YOLO/SSD02·传统CV/模板匹配算法模板匹配:字符识别的具体算法五种相似度度量方法方法公式判定SADΣ|I-T|越小越相似SSDΣ(I-T)²越小越相似NCCΣ(I·T)/√(ΣI²·ΣT²)越大越相似CCOEFFΣ((I-μI)(T-μT))越大越相似CCOEFF_NORMED归一化相关系数推荐,[-1,1]字符识别匹配流程①预处理:二值化→归一化尺寸(20×40)→细化骨架②模板库:0-9/A-Z/省份汉字,每类5-10个标准模板③逐类匹配:待识别字符与每个模板计算CCOEFF_NORMED④多模板融合:同一字符多模板取最大相似度⑤决策输出:取最高相似度类别;低于阈值(如0.6)标记为未知加速优化方法FFT加速:相关运算转频域乘法,O(n²)→O(nlogn)图像金字塔:低分辨率粗筛候选→高分辨率精匹配提前终止:SAD/SSD累加中超过当前最优即跳过模板聚类:相似字符(0/O,1/I)先粗分再细辨优缺点分析优点:简单直观、无需训练、单字符匹配速度快、可解释缺点:对字体/大小/旋转敏感、依赖高质量模板库局限:相似字符(0/O,8/B,2/Z)易混淆,需结构特征辅助适用:标准字体、固定尺寸、光照可控的工业场景核心:模板匹配通过度量待识别字符与标准模板的相似度实现分类,CCOEFF_NORMED对光照变化最鲁棒,是字符识别首选02·传统CV/SSD字符识别实例以SSD为例:字符识别的完整实现SSD数学定义(SumofSquaredDifferences)SSD(I,T)=Σ₍ₓ,ᵧ₎[I(x,y)−T(x,y)]²I(Input):待识别的输入字符图像,经二值化+归一化到20×40尺寸的单字符图T(Template):模板库中的标准字符模板,与I同尺寸同格式的二值化图像两者逐像素(x,y)对应计算差值平方和,SSD越小→I与T越相似五步实现流程①预处理:二值化→归一化尺寸(20×40)→去噪,保证与模板同尺寸②模板库:0-9/A-Z/省份汉字,每类5-10个标准模板,统一尺寸③逐模板计算SSD:待识别字符与每个模板逐像素求差、平方、累加④最小SSD决策:遍历所有模板,取SSD值最小的模板类别⑤阈值校验:最小SSD>阈值(如5000)→标记为未知/拒绝,避免误识参考伪代码defrecognize_char_ssd(char_img,template_lib):#①预处理:归一化到模板尺寸char_img=resize(char_img,(20,40))char_img=threshold(char_img,0,255,OTSU)best_label,best_ssd=None,float("inf")forlabel,templatesintemplate_lib:fortplintemplates:#②逐像素差平方和diff=char_img.astype(int)-tplssd=np.sum(diff**2)ifssd<best_ssd:best_ssd,best_label=ssd,label#③阈值校验,拒绝低置信度ifbest_ssd>5000:return

"?"

#未知returnbest_label,best_ssd优点:计算极简单(仅减法+平方+累加)、无需训练、速度快、可解释适用:标准字体、固定尺寸、光照可控的工业OCR场景缺点:对光照/亮度变化敏感(无归一化)、对旋转/缩放敏感改进:先减均值再算SSD→等价CCOEFF;或用NCC/CCOEFF_NORMED替代核心:SSD通过逐像素差平方和度量字符与模板的差异,最小SSD对应最相似模板;计算简单但需预处理保证尺寸和光照一致02·传统CV/结构特征分类结构特征分类:字符识别的具体算法六类常用结构特征特征类型描述区分能力孔洞数背景连通域数-18/B=2,0/4/6/9=1端点数骨架中度数=1的像素1/7/L=2,T/Y=3,X=4交叉点数骨架中度数≥3的像素X/+=1,8有交叉投影分布水平/垂直像素累加曲线E=3横峰,H=2竖峰几何矩Hu不变矩(7维)平移/旋转/缩放不变宽高比字符外接框宽/高1窄,W宽,O近方特征提取关键算法①骨架提取:Zhang-Suen细化算法,迭代删除边界像素至单像素宽,便于统计端点/交叉点②连通域分析:floodFill统计背景连通域数量,孔洞数=背景连通域数-1③投影分析:水平投影=每行像素和,垂直投影=每列像素和,统计峰值位置与数量④几何矩计算:Hu矩=归一化中心矩的组合,7个不变量对平移/旋转/缩放不变⑤特征向量:拼接[孔洞,端点,交叉,投影峰值,Hu矩×7,宽高比]→约15维特征三种分类方法规则树:if-else层次判断(孔洞=2→8/B,再判宽高比),可解释性最强KNN最近邻:计算特征向量欧氏距离,取K=3最近样本投票,无需训练决策树:基于信息增益自动构建特征层次分类,CART算法组合策略:规则树粗分大类→KNN细辨相似字符(0/O,8/B)优缺点与适用场景优点:对字体/大小变化鲁棒、可解释性强、特征维度低(约15维)、无需大量样本缺点:特征设计依赖经验、对严重变形/污损敏感、骨架提取质量影响大最佳实践:与模板匹配融合——模板匹配初筛+结构特征复核相似字符适用:多字体混合、字符变形较大、需要可解释性的场景核心:结构特征提取字符的拓扑与几何属性(孔洞/端点/投影/矩),用规则树或KNN分类,对字体变化比模板匹配更鲁棒02·传统CV/车牌识别车牌识别:颜色+纹理如何定位车牌?定位三大先验特征颜色特征蓝牌:HSV空间H:100~124,S:120~255;黄牌/绿牌同理纹理特征字符密集,水平边缘丰富,垂直投影呈周期性峰值几何特征标准车牌宽高比约3.14:1(440mm×140mm)识别流程(五阶段)01颜色定位HSV蓝色掩膜+形态学闭运算连接字符02轮廓筛选宽高比2.5~4.0+面积阈值过滤03倾斜校正最小外接矩形计算角度+仿射变换转正04字符分割二值化+垂直投影分割7个字符05字符识别模板匹配或HOG+SVM分类(工程中常用CNN)实例:车辆检测→车牌定位→车牌放大识别(冀MD711)局限性:颜色定位对光照敏感;模板匹配识别率有限;无法处理大角度倾斜和严重污损——现代LPR已采用深度学习端到端方案02·传统CV/车牌识别车牌识别:核心代码实现plate_recognition.pyclassLicensePlateRecognizer:deflocate_plate(self,img):hsv=cv2.cvtColor(img,BGR2HSV)mask=cv2.inRange(hsv,blue_lower,blue_upper)mask=morphologyEx(mask,MORPH_CLOSE,k(15,5))forcntinfindContours(mask):x,y,w,h=boundingRect(cnt)if2.5<=w/h<=4.0andarea>2000:returnimg[y:y+h,x:x+w]defsegment_chars(self,plate):_,binary=threshold(gray,0,255,THRESH_BINARY_INV+THRESH_OTSU)projection=np.sum(binary>0,axis=0)#垂直投影forcolinrange(w):ifprojection[col]>threshold:#记录字符起止列,分割7个字符defrecognize(self,img):plate=self.locate_plate(img)#定位plate=self.deskew(plate)#校正chars=self.segment_chars(plate)#分割returnmatch_template(chars)#识别核心技术点HSV颜色分割inRange提取蓝色掩膜,闭运算连接字符宽高比筛选2.5~4.0过滤非车牌候选区域垂直投影分割按列统计像素,字符区高、间隙低Otsu二值化自动阈值,蓝底白字反色后字符为白完整代码包含deskew倾斜校正、区域合并/分裂、模板匹配等模块,详见配套学习文档PART03·机器学习方法手工特征+数据驱动分类器,如何超越硬编码规则?机器学习方法仍需手工设计特征(HOG、LBP、投影),但目标识别由训练好的分类器完成,而非硬编码规则。数据驱动的决策范式使算法对变化的鲁棒性显著提升。通用范式数据采集标注→手工特征提取(HOG/LBP/投影)→特征向量化→分类器训练(SVM/RF/Adaboost)→滑动窗口候选→分类器判别→NMS后处理03·机器学习/HOG特征原理HOG方向梯度直方图:特征提取原理8×8Cell内:梯度方向(左上)+梯度幅值(右上)→9个方向bin直方图(下)六步计算流程①预处理:灰度化+Gamma校正,归一化光照②计算梯度:Sobel算子求每个像素的梯度幅值g与方向θ③划分Cell:8×8像素为一个Cell,共64个像素④方向直方图:0-180°分9个bin(每20°),按幅值加权投票⑤Block归一化:2×2Cell组成Block(16×16),L2归一化消除光照⑥特征拼接:所有Block直方图拼接为最终HOG特征向量关键参数:Cell=8×8,Block=16×16,Block步长=8,9个方向bin特点:对光照/阴影鲁棒,保留边缘与形状信息,64维→9维大幅降维64×128行人:共7×15×4×9=3780维特征核心思想:物体的局部形状和边缘可以由梯度方向的分布(直方图)来描述,而非依赖具体像素值03·机器学习/滑动窗口HOG取值滑动窗口HOG特征取值详解图1:滑动窗口在图像上的位置图2:窗口内梯度幅值矩阵+梯度方向矩阵图3:单个Cell的9-bin方向梯度直方图HOG特征取值的七步计算①滑动窗口:64×128像素窗口在图像上以8像素步长滑动,蓝框为当前窗口②Cell划分:窗口划分为8×8像素的Cell,共8×16=128个Cell(绿格)③梯度计算:Sobel算子求每个像素梯度幅值g与方向θ∈[0°,180°),见图2矩阵④方向直方图:每个Cell内9个bin(每20°),按梯度幅值加权投票,得9维特征,见图3⑤Block归一化:2×2Cell组成Block(16×16),L2归一化消除光照影响,步长8像素⑥特征维度:每窗口7×15个Block×4Cell×9bin=3780维HOG特征向量⑦SVM分类:3780维特征输入线性SVM,输出窗口内是否为行人的置信度分数核心:HOG特征取值=每个Cell的9个方向bin梯度幅值加权统计值,经Block归一化后拼接为高维向量,描述窗口内边缘方向分布03·机器学习/图像统计特征图像统计图:原理、作用与OpenCV调用①灰度直方图原理:统计0-255每个灰度级的像素数量,横轴灰度级,纵轴像素数作用:直方图均衡化增强、阈值分割、亮度/对比度分析OpenCV:cv2.calcHist([img],[0],None,[256],[0,256])②梯度幅值/方向图Gx=Sobel(img,x)Gy=Sobel(img,y)mag=√(Gx²+Gy²)ang=atan2(Gy,Gx)梯度幅值图梯度方向图原理:Sobel算子求x/y方向梯度,幅值=√(Gx²+Gy²),方向=atan2(Gy,Gx)作用:边缘检测(Canny)、HOG特征基础、纹理/形状分析OpenCV:cv2.Sobel(img,-1,1,0)cv2.magnitude(Gx,Gy)③HOG方向梯度直方图原理:8×8Cell内9个方向bin统计梯度幅值加权直方图,Block归一化作用:行人检测、物体识别、形状描述子,对光照鲁棒OpenCV:hog=cv2.HOGDescriptor()feat=pute(img)④LBP局部二值模式原理:3×3邻域以中心像素为阈值,周围8像素二值化,组成8位二进制数(0-255)作用:纹理分类、人脸识别、表面缺陷检测,灰度不变性OpenCV:无直接函数skimage.feature.local_binary_pattern()03·机器学习/SVM原理SVM支持向量机:最大间隔分类原理左:多个可能分隔超平面;右:最大间隔超平面(间隔最大,泛化能力最强)核心概念超平面:w·x+b=0,分隔两类样本的决策边界间隔:超平面到最近样本的距离,间隔=2/||w||支持向量:距离超平面最近的样本点,决定边界位置最大间隔:最大化间隔⟺最小化||w||²,凸优化问题决策函数:f(x)=sign(w·φ(x)+b)核函数(处理非线性可分)线性核:K(x,y)=x·y多项式核:K(x,y)=(γx·y+r)^dRBF高斯核:K(x,y)=exp(-γ||x-y||²)将低维线性不可分映射到高维可分软间隔与参数软间隔:允许部分样本违反间隔约束,引入松弛变量ξᵢC参数:惩罚系数,C大→间隔小→过拟合风险;C小→间隔大→欠拟合风险多分类:OVO(一对一)或OVR(一对多)策略扩展特点:小样本泛化能力强,高维数据有效,凸优化有全局最优解;训练复杂度O(n²),大数据集较慢03·机器学习/二分类到多分类从二分类到多分类:SVM的扩展策略①二分类SVM(基础)一条超平面w·x+b=0分隔两类间隔=2/||w||,支持向量决定边界②OVO一对一(K=3类)训练3个分类器(蓝-红/蓝-绿/红-绿)预测时投票,得票最多的类别胜出③OVR一对多(K=3类)训练3个分类器(蓝vs其余/红vs其余/绿vs其余)取决策函数值最大的类别三种策略对比与选择策略分类器数量预测方式优点缺点/适用场景OVO一对一K(K-1)/2个投票表决每个分类器只处理两类,训练快类别多时分类器数量爆炸;OpenCV默认OVR一对多K个取最大决策值分类器数量少,可输出置信度训练集不平衡(一类vs其余);类别多首选直接多类1个(K类联合)直接输出类别单一目标函数,理论更优雅求解复杂,训练慢;学术研究常用核心:SVM本质是二分类器,多分类通过组合多个二分类器实现;OVO投票、OVR取最大、直接多类联合优化03·机器学习/SVM多分类实现SVM多分类策略与OpenCV实现多分类策略(SVM本质是二分类器)策略原理分类器数量OVO一对一每两类训练一个分类器,预测时投票K(K-1)/2个OVR一对多每类vs其余训练一个,取置信度最高K个直接多类Weston-Watkins,单一目标函数联合优化1个(K类)算法实现步骤①数据准备:特征向量矩阵X(N×D)+标签y(N×1),特征归一化到[0,1]或标准化②参数选择:核函数(线性/RBF)、惩罚系数C、核参数gamma,交叉验证调参③求解QP:SMO算法求解二次规划,得到拉格朗日乘子α,非零α对应支持向量④决策函数:f(x)=ΣαᵢyᵢK(xᵢ,x)+b,K为核函数,b由支持向量计算⑤多分类预测:OVO投票/OVR取最大决策值,输出最终类别OpenCV实现(手写数字10分类)importcv2importnumpyasnp#1.创建SVM分类器svm=cv2.ml.SVM_create()svm.setType(cv2.ml.SVM_C_SVC)#C-SVC多分类svm.setKernel(cv2.ml.SVM_RBF)#RBF核svm.setC(1.0)#惩罚系数svm.setGamma(0.001)#RBF核参数#2.准备训练数据(N×Dfloat32)trainData=X_train.astype(np.float32)labels=y_train.astype(32)#3.训练(自动处理多分类)svm.train(trainData,cv2.ml.ROW_SAMPLE,labels)#4.预测testData=X_test.astype(np.float32)_,pred=svm.predict(testData)pred=pred.flatten().astype(int)#5.评估准确率acc=np.mean(pred==y_test)print(f"Accuracy:{acc:.4f}")#可选:自动调参#svm.trainAuto(trainData,...)核心:OpenCV的SVM_C_SVC类型内置多分类支持,训练时自动采用OVO策略,predict直接输出类别标签03·机器学习/SVM数学原理SVM数学原理:从最大间隔到核函数①最大间隔超平面(硬间隔)超平面:w·x+b=0,分类决策:sign(w·x+b)间隔=2/||w||,最大化间隔⟺最小化½||w||²约束:yᵢ(w·xᵢ+b)≥1(所有样本正确分类且在间隔外)②对偶问题(拉格朗日乘子法)引入拉格朗日乘子αᵢ≥0,对w,b求偏导令其为0:w=Σαᵢyᵢxᵢ,Σαᵢyᵢ=0对偶目标:maxΣαᵢ-½ΣΣαᵢαⱼyᵢyⱼ(xᵢ·xⱼ)决策函数:f(x)=sign(Σαᵢyᵢ(xᵢ·x)+b)③KKT条件(支持向量的判定)αᵢ=0→样本在间隔外,不影响决策边界0<αᵢ<C→样本在间隔边界上,支持向量αᵢ=C→样本在间隔内或被误分类(软间隔)只有支持向量(αᵢ>0)参与决策函数计算,非支持向量可丢弃④软间隔(处理线性不可分)引入松弛变量ξᵢ≥0,允许部分样本违反间隔约束:目标:min½||w||²+C·Σξᵢ约束:yᵢ(w·xᵢ+b)≥1-ξᵢC越大→越不能容忍误分类→可能过拟合;C越小→间隔越宽→可能欠拟合⑤核函数(映射到高维空间)核心技巧:不显式计算映射φ(x),用核函数K(xᵢ,xⱼ)=φ(xᵢ)·φ(xⱼ)线性核:K(x,z)=x·z(线性可分时首选)多项式核:K(x,z)=(γx·z+r)ᵈ(d阶多项式特征)RBF高斯核:K(x,z)=exp(-γ||x-z||²)(最常用,映射到无穷维)Mercer定理:核函数必须是半正定矩阵,才能对应某个特征空间的内积⑥核技巧后的决策函数f(x)=sign(ΣαᵢyᵢK(xᵢ,x)+b)只需计算核函数值,无需知道φ(x)的具体形式,计算高效支持向量数量通常远小于训练样本数,预测速度快核心:SVM=最大间隔+对偶求解+核技巧,支持向量决定决策边界,核函数实现非线性分类03·机器学习/SVM训练与调参SVM训练算法:SMO与参数调优①SMO算法原理(SequentialMinimalOptimization)核心思想:将大QP问题分解为最小子问题,每次只优化两个α(αᵢ,αⱼ),其余固定为什么选两个:约束Σαᵢyᵢ=0要求至少同时改变两个变量才能保持等式选择启发式:第一个选违反KKT条件的,第二个选|Eᵢ-Eⱼ|最大的(最大化步长)解析求解:两变量子问题有闭式解,无需迭代QP求解器收敛条件:所有α满足KKT条件(容差ε内),或达到最大迭代次数②SMO算法伪代码#初始化α=0,b=0while未收敛:#1.选择违反KKT的αᵢi=select_first_sample(α,X,y,b,eps)if无违反:break#2.选择|Eᵢ-Eⱼ|最大的αⱼj=select_second_sample(i,E)#3.计算上下界L,HL,H=compute_bounds(α[i],α[j],y[i],y[j],C)#4.解析更新αⱼ,αᵢα[j]-=y[j]*(E[i]-E[j])/etaα[j]=clip(α[j],L,H)α[i]+=y[i]*y[j]*(old_aj-α[j])#5.更新阈值b和误差Eb=update_b(α,X,y,b,i,j)③核函数选择指南核函数适用场景参数线性核特征维度高、样本线性可分仅CRBF核非线性、默认首选C,gamma多项式图像特征、已知阶数C,degree,gamma④C与gamma的影响C(惩罚系数):控制误分类惩罚C大→间隔窄→训练误差小→易过拟合C小→间隔宽→容忍误分→易欠拟合gamma(RBF核参数):控制单个样本影响范围gamma大→影响范围小→决策边界复杂→过拟合gamma小→影响范围大→决策边界平滑→欠拟合⑤调参方法:网格搜索+交叉验证步骤:C∈{0.1,1,10,100}×gamma∈{0.0001,0.001,0.01,0.1}每组参数做5折交叉验证,取验证集准确率最高的组合OpenCV:svm.trainAuto()内置网格搜索经验:先粗搜大范围,再细搜最优区域附近核心:SMO每次优化两个α实现高效训练;RBF核默认首选;C和gamma通过网格搜索+交叉验证联合调优03·机器学习/手写数字识别手写数字识别:HOG特征+SVM分类器特征提取(三种方式)原始像素:28×28=784维展平,简单但维度高、对平移敏感HOG特征:方向梯度直方图,捕捉边缘方向分布,对光照和小位移鲁棒投影特征:水平/垂直投影统计每行每列像素数,捕捉整体结构分类器对比分类器MNIST准确率特点SVM(RBF)97.5%~98.2%小样本最优RandomForest~96%训练快k-NN96%~97%无需训练实例:MNIST数据集0-9手写数字样本(28×28灰度)技术方案(五步)01数据加载:MNIST60k训练/10k测试,28×28灰度02预处理:归一化[0,1]+去噪+居中校正03特征提取:HOG+投影特征拼接,PCA降维04分类器训练:SVM(RBF核)+网格搜索调参05评估:准确率+混淆矩阵+交叉验证性能参考:HOG+SVM可达98.2%,CNN可达99.7%+核心判断:SVM在小样本高维数据上表现最优,但大规模数据训练慢于深度学习;特征工程质量决定上限03·机器学习/检测框架从分类到检测:滑动窗口框架分类器只能判断"这张图是什么",要在大图中定位目标,需要滑动窗口+图像金字塔+NMS三件套配合。图像金字塔对原图进行多尺度缩放每层缩放比例约0.8大目标在小尺度图中检测小目标在大尺度图中检测解决目标大小不一的问题滑动窗口固定尺寸窗口按步长滑动每个窗口送入分类器判别步长越小召回越高但越慢典型步长4~8像素计算量大是主要瓶颈NMS非极大值抑制同一目标会产生多个重叠框按置信度排序,保留最高删除IoU大于阈值的重叠框典型IoU阈值0.3~0.5去重后输出最终检测结果局限性:滑动窗口穷举所有位置和尺度,计算效率极低。这正是深度学习检测框架(如YOLO)要解决的核心问题——通过网络直接预测候选框,避免暴力搜索。PART04·深度学习方法端到端特征学习,如何实现通用目标检测?深度学习通过卷积神经网络端到端学习特征,无需手工设计。网络同时完成特征提取、候选框生成和分类回归,在精度和泛化能力上远超传统方法。两大流派两阶段检测器FasterR-CNN系列·先生成候选框再分类单阶段检测器YOLO/SSD系列·直接回归边界框和类别04·深度学习/原理基础深度学习原理:神经网络与反向传播①神经元与神经网络结构输入层隐藏层输出层y=f(Σwᵢxᵢ+b),f为激活函数②激活函数Sigmoid:f(x)=1/(1+e⁻ˣ),输出(0,1),易梯度消失,用于输出层概率Tanh:f(x)=(eˣ-e⁻ˣ)/(eˣ+e⁻ˣ),输出(-1,1),零中心化,仍有梯度消失ReLU:f(x)=max(0,x),计算快、缓解梯度消失,默认首选,但有DeadReLU问题③反向传播算法(Backpropagation)核心思想:利用链式法则,从输出层向输入层逐层计算梯度前向传播:输入→逐层计算→得到预测值ŷ计算损失:L=Loss(ŷ,y),如交叉熵、MSE反向传播:∂L/∂w=∂L/∂a·∂a/∂z·∂z/∂w参数更新:w←w-η·∂L/∂w(η为学习率)④损失函数与优化器分类损失:交叉熵CrossEntropy=-Σyᵢlog(ŷᵢ),多分类首选回归损失:均方误差MSE=(1/n)Σ(ŷᵢ-yᵢ)²优化器:SGD(基础)→Momentum(加速)→Adam(自适应学习率,默认首选)深度学习的本质:通过多层非线性变换,将原始输入映射到可分的特征空间,用反向传播自动学习每层的权重参数。与传统CV的区别:传统CV人工设计特征(HOG/SIFT),深度学习端到端自动学习特征,数据量越大效果越好。训练三要素:大数据集+强算力(GPU)+好的网络结构,三者共同推动深度学习突破。核心:深度学习=多层神经网络+反向传播+梯度下降,端到端自动学习特征表示04·深度学习/经典模型经典CNN代表模型:从LeNet到ResNet模型年份层数Top-5核心创新历史地位LeNet-519987层—卷积+池化+全连接,首个实用CNN架构CNN开山之作,手写数字识别,奠定基础AlexNet20128层15.3%ReLU激活、Dropout、GPU训练、数据增强深度学习引爆点,ImageNet冠军,开启AI时代VGGNet201416/197.3%全部用3×3小卷积核堆叠,证明深度重要性结构简洁规整,常用作特征提取骨干网络GoogLeNet201422层6.7%Inception模块:1×1/3×3/5×5多尺度并行卷积多尺度特征融合,1×1卷积降维,参数量少ResNet201550/1523.6%残差连接:y=F(x)+x,解决梯度消失里程碑,可训练超深网络,至今仍是主流骨干模型演进的核心趋势越来越深7层→8层→19层→22层→152层,深度带来更强表达能力越来越高效小卷积核、1×1降维、深度可分离卷积,参数量和计算量优化越来越通用从分类骨干→检测/分割多任务,预训练+微调成为标准范式04·深度学习/CNN原理卷积神经网络CNN:层次化特征提取①CNN整体架构:输入→卷积+池化(重复)→全连接→输出输入图像H×W×C卷积层Conv+ReLU提取特征池化层MaxPool降维压缩卷积+池化×N次深层特征全连接层FC特征整合输出层Softmax②卷积层:局部感受野+权值共享卷积操作:卷积核(如3×3)在输入图上滑动,逐元素相乘求和,输出特征图局部感受野:每个神经元只连接局部区域,模拟视觉皮层细胞权值共享:同一个卷积核在全图共享参数,大幅减少参数量多通道:多个卷积核提取不同特征(边缘、纹理、形状),输出多通道特征图输出尺寸:O=(W-K+2P)/S+1(K核大小,P填充,S步长)③池化层:降维+平移不变性最大池化MaxPool:取窗口内最大值,保留最强特征响应,最常用平均池化AvgPool:取窗口内平均值,保留整体背景信息作用:降低特征图尺寸(通常2×2步长2,尺寸减半)、减少计算量平移不变性:小范围平移不影响池化结果,增强鲁棒性全局池化GAP:整个特征图取均值,替代全连接层,减少过拟合④层次化特征提取(CNN的核心优势)浅层(第1-2层):学习低级特征——边缘、角点、颜色、纹理中层(第3-5层):组合低级特征——部件、形状、局部结构(如眼睛、车轮)深层(第6层+):组合中级特征——高级语义概念(如人脸、车辆、动物)这种从低级到高级的层次化特征自动学习,是CNN超越传统人工特征的关键。核心:CNN通过卷积(局部感受野+权值共享)和池化(降维+不变性),自动学习从边缘到语义的层次化特征04·深度学习/损失与优化详解损失函数与优化器:从误差到参数更新①交叉熵损失(分类任务首选)二分类:L=-[y·log(ŷ)+(1-y)·log(1-ŷ)]y=1时:L=-log(ŷ),ŷ越接近1损失越小y=0时:L=-log(1-ŷ),ŷ越接近0损失越小多分类(C类):L=-Σᵢ₌₁ᶜyᵢ·log(ŷᵢ)只有真实类别yᵢ=1的项贡献损失,惩罚预测概率低优点:梯度大(-1/ŷ),收敛快,概率解释清晰②均方误差MSE(回归任务)公式:MSE=(1/n)Σᵢ(yᵢ-ŷᵢ)²预测值与真实值差的平方的均值梯度:∂MSE/∂ŷ=(2/n)(ŷ-y)误差越大梯度越大,自动调节更新步长适用:回归任务(预测连续值如价格、温度)不适用:分类任务(配合Sigmoid时梯度消失)③优化器:如何沿梯度方向更新参数优化器更新公式核心思想特点SGDw←w-η·∂L/∂w沿负梯度方向直接更新基础,易震荡,收敛慢Momentumv←βv+(1-β)g;w←w-ηv累积历史梯度,惯性加速加速收敛,减少震荡Adamm←β₁m+(1-β₁)g;v←β₂v+(1-β₂)g²;w←w-η·m̂/√(v̂+ε)动量+自适应学习率,每个参数独立学习率默认首选,收敛快且稳定核心:损失函数衡量预测与真实的差距(分类用交叉熵、回归用MSE),优化器沿梯度方向更新参数(Adam是默认首选)04·深度学习/反向传播详解反向传播:链式法则与梯度计算①链式法则(ChainRule)若y=f(g(x)),则导数:dy/dx=(dy/dg)·(dg/dx)多层复合:y=fₙ(fₙ₋₁(...f₁(x)))dy/dx=Π(dfᵢ/dxᵢ₋₁)核心思想:复杂函数的导数=各层导数的乘积从输出层向输入层逐层计算,故称"反向"传播②关键梯度公式推导定义误差项δ⁽ˡ⁾=∂L/∂z⁽ˡ⁾输出层(L为最后一层):δ⁽ᴸ⁾=(a⁽ᴸ⁾-y)⊙f'(z⁽ᴸ⁾)隐藏层(反向递推):δ⁽ˡ⁾=((W⁽ˡ⁺¹⁾)ᵀδ⁽ˡ⁺¹⁾)⊙f'(z⁽ˡ⁾)参数梯度:∂L/∂W⁽ˡ⁾=δ⁽ˡ⁾(a⁽ˡ⁻¹⁾)ᵀ,∂L/∂b⁽ˡ⁾=δ⁽ˡ⁾③完整反向传播算法流程步骤阶段计算内容方向1前向传播输入x,逐层计算z⁽ˡ⁾=W⁽ˡ⁾a⁽ˡ⁻¹⁾+b⁽ˡ⁾,a⁽ˡ⁾=f(z⁽ˡ⁾),保存所有中间值输入层→输出层2计算损失L=Loss(a⁽ᴸ⁾,y),如交叉熵L=-Σyᵢlog(ŷᵢ)输出层3输出层误差δ⁽ᴸ⁾=(a⁽ᴸ⁾-y)⊙f'(z⁽ᴸ⁾),计算输出层梯度∂L/∂W⁽ᴸ⁾,∂L/∂b⁽ᴸ⁾输出层开始4反向递推对l=L-1,...,1:δ⁽ˡ⁾=((W⁽ˡ⁺¹⁾)ᵀδ⁽ˡ⁺¹⁾)⊙f'(z⁽ˡ⁾),计算该层梯度输出层→输入层5参数更新W⁽ˡ⁾←W⁽ˡ⁾-η·∂L/∂W⁽ˡ⁾,b⁽ˡ⁾←b⁽ˡ⁾-η·∂L/∂b⁽ˡ⁾(η学习率)所有层同时更新核心:反向传播=链式法则逐层求梯度,从输出层δ⁽ᴸ⁾开始反向递推δ⁽ˡ⁾,最后用梯度下降更新所有参数04·深度学习/激活函数详解激活函数:引入非线性的关键组件为什么需要激活函数?——没有激活函数,多层网络退化为单层线性变换函数公式导数优点缺点Sigmoidσ(z)=1/(1+e⁻ᶻ)σ(1-σ)输出(0,1),可解释为概率,适合输出层梯度消失(|z|大时导数→0),非零中心Tanh(eᶻ-e⁻ᶻ)/(eᶻ+e⁻ᶻ)1-tanh²输出(-1,1),零中心化,梯度比Sigmoid大仍有梯度消失问题,计算量大(指数运算)ReLUmax(0,z)z>0时1,z≤0时0计算极快,正区间梯度恒为1,缓解梯度消失,默认首选DeadReLU:负区间梯度为0,神经元可能永久失活LeakyReLUmax(αz,z),α≈0.01z>0时1,z≤0时α解决DeadReLU,负区间保留小梯度αα需手动设定,效果不一定稳定优于ReLU①梯度消失问题分析Sigmoid导数最大值=0.25(在z=0处)多层链式相乘:0.25ⁿ→层数越多梯度越小5层后:0.25⁵≈0.001,梯度几乎消失结果:浅层网络参数几乎不更新,训练失败ReLU解决:正区间导数恒为1,链式相乘不衰减②激活函数选择原则隐藏层:默认用ReLU,简单高效输出层-二分类:Sigmoid,输出(0,1)概率输出层-多分类:Softmax,输出各类概率和为1输出层-回归:不用激活,直接输出连续值进阶:GELU(Transformer常用)、Swish、Mish核心:激活函数引入非线性使多层网络有意义;ReLU是隐藏层默认首选,Sigmoid/Softmax用于输出层概率输出04·深度学习/神经元详解神经元模型:加权求和与激活变换①单个神经元的计算过程x₁x₂x₃w₁w₂w₃Σfyz=w₁x₁+w₂x₂+w₃x₃+by=f(z)=f(Σwᵢxᵢ+b)②前向传播:逐层计算第l层的计算:z⁽ˡ⁾=W⁽ˡ⁾·a⁽ˡ⁻¹⁾+b⁽ˡ⁾(线性变换)a⁽ˡ⁾=f(z⁽ˡ⁾)(激活函数,非线性)其中W⁽ˡ⁾是第l层权重矩阵,b⁽ˡ⁾是偏置向量完整前向传播(L层网络):x=a⁽⁰⁾→a⁽¹⁾→a⁽²⁾→...→a⁽ᴸ⁾=ŷ输入从第0层开始,逐层计算直到输出层得到预测值矩阵化优势:整层计算用矩阵乘法,GPU可并行加速③数值示例:2输入1输出神经元#已知:输入x=(0.5,0.3),权重w=(0.8,-0.6),偏置b=0.1,激活f=Sigmoid#Step1:线性变换(加权求和)z=w₁x₁+w₂x₂+b=0.8×0.5+(-0.6)×0.3+0.1=0.4-0.18+0.1=0.32#Step2:激活函数变换y=Sigmoid(z)=1/(1+e^(-0.32))=1/(1+0.726)=0.579#结果:神经元输出0.579,表示正类概率约57.9%#训练目标:通过调整w和b,让y接近真实标签y_true(如1.0)核心:神经元=线性变换(加权求和+偏置)→非线性激活,前向传播逐层计算得到预测值04·深度学习/发展历程深度学习发展历程:从感知机到Transformer1958感知机Rosenblatt提出最早的神经网络线性分类器无法解决XOR1986反向传播Hinton等提出BP算法训练多层网络深度学习的基石但受限于算力1998LeNet-5YannLeCun首个实用CNN手写数字识别卷积+池化架构2012AlexNet深度学习爆发ImageNet冠军8层CNN,GPU训练ReLU+Dropout2014VGG/GoogLeNetVGG:3×3小卷积堆叠GoogLeNet:Inception多尺度卷积1×1卷积降维2015ResNet残差连接解决梯度消失152层超深网络至今仍是骨干2017+Transformer自注意力机制NLP→CV(ViT)DETR目标检测大模型时代关键突破与驱动力阶段核心突破外部驱动力1958-2006感知机→BP算法→LeNet,理论基础建立,但网络浅、训练慢算力不足、数据量小、梯度消失问题,AI寒冬2006-2012Hinton深度学习复兴、ReLU激活、预训练策略,AlexNet引爆GPU普及、ImageNet大数据集、互联网数据爆发2012-2018VGG/GoogLeNet/ResNet,网络越来越深,残差连接突破深度限制深度学习框架成熟(TensorFlow/PyTorch)、工业界大规模投入2018-至今Transformer/ViT/DETR,注意力机制替代卷积,大模型+多模态大算力集群、海量标注数据、自监督学习、GPT引爆AGI核心:深度学习发展=算法创新(BP/ReLU/残差/注意力)+算力提升(GPU/TPU)+数据规模(ImageNet/互联网)三者共振04·深度学习/经典模型LeNet-5:卷积神经网络的开山之作①模型概述提出者:YannLeCun等,1998年任务:手写数字识别(MNIST数据集)成绩:错误率仅0.9%,远超传统方法地位:第一个成功应用的CNN,奠定现代CNN基础②网络架构各层参数层类型参数输出尺寸输入灰度图1通道32×32×1C1卷积6×5×528×28×6S2平均池化2×2,s=214×14×6C3卷积16×5×510×10×16S4平均池化2×2,s=25×5×16C5卷积/全连接120×5×51×1×120F6全连接120→8484输出RBF/全连接84→1010类数字③LeNet-5网络架构图④核心创新与历史贡献局部感受野:卷积核只关注局部区域权值共享:同一卷积核全图共享,减参数下采样:平均池化降分辨率,增强平移不变端到端:原始像素直接到分类,无需手工特征⑤PyTorch实现class

LeNet5(nn.Module):def

__init__(self):self.conv1=nn.Conv2d(1,6,5)#C1self.conv2=nn.Conv2d(6,16,5)#C3self.fc1=nn.Linear(16*5*5,120)#C5self.fc2=nn.Linear(120,84)#F6self.fc3=nn.Linear(84,10)#输出核心:LeNet-5=2卷积+2池化+3全连接,首次验证局部感受野/权值共享/下采样三大思想,奠定现代CNN基础04·深度学习/经典模型详解AlexNet:深度学习的ImageNet突破①网络架构:5卷积层+3全连接层,8层深度层类型卷积核步长输出尺寸说明1卷积+池化11×11×96455×55×96大卷积核快速降维,ReLU激活,LRN归一化2卷积+池化5×5×256127×27×256中卷积核提取中层特征,最大池化降维3卷积3×3×384113×13×384小卷积核提取深层特征,无池化4卷积3×3×384113×13×384连续卷积加深网络5卷积+池化3×3×25616×6×256最后卷积+最大池化,输出6×6×256=9216维6-8全连接4096→4096→1000-1000类Dropout(0.5)防过拟合,Softmax输出1000类概率网络结构流程图输入227×227×3Conv111×11×96s4+PoolConv25×5×256+PoolConv33×3×384Conv43×3×384Conv53×3×256+PoolFC4096→FC4096→FC1000Softmax1000类输出②核心创新与优势ReLU激活函数:替代Sigmoid,正区间梯度恒为1,解决梯度消失,训练速度快6倍Dropout:全连接层随机失活50%神经元,有效防止过拟合GPU并行训练:双GTX580GPU训练5-6天,证明GPU可加速深度学习数据增强:随机裁剪、翻转、颜色抖动,扩充训练集防过拟合③历史贡献与意义ImageNet2012冠军:Top-5错误率15.3%,远超第二名26.2%,震惊学术界深度学习引爆点:证明CNN在大规模图像分类上的绝对优势,开启深度学习热潮奠定基础架构:卷积+池化+全连接+Softmax成为后续CNN的标准范式工业界转向:Google、Facebook等大厂全面投入深度学习研究和应用核心:AlexNet=5卷积+3全连接,ReLU+Dropout+GPU训练,2012ImageNet冠军,开启深度学习时代04·深度学习/经典模型详解VGG:统一小卷积核的深度探索①网络架构:VGG-16(13卷积+3全连接),统一3×3小卷积核阶段层配置输出尺寸通道数说明阶段1conv3-64×2224→112642个3×3卷积+最大池化,提取浅层边缘特征阶段2conv3-128×2112→561282个3×3卷积+池化,通道翻倍阶段3conv3-256×356→282563个3×3卷积+池化,提取中层部件特征阶段4conv3-512×328→145123个3×3卷积+池化,提取深层语义特征阶段5conv3-512×314→75123个3×3卷积+池化,输出7×7×512=25088维全连接FC4096×2+FC10001000类-3个全连接层,Dropout防过拟合,Softmax分类网络结构流程图输入224×224×3阶段1:Conv3-64×2+Pool→112²阶段2:Conv3-128×2+Pool→56²阶段3:Conv3-256×3+Pool→28²阶段4:Conv3-512×3+Pool→14²阶段5:Conv3-512×3+Pool→7²FC4096→4096→1000Softmax1000类输出②核心设计:为什么用3×3小卷积核?等效感受野:2个3×3卷积=1个5×5感受野,3个3×3=1个7×7参数更少:3个3×3参数=27C²,1个7×7参数=49C²,减少45%非线性更多:每层卷积后接ReLU,3个3×3有3次非线性变换结构统一:全部用3×3卷积+2×2池化,架构简洁规整③优势贡献与历史地位ImageNet2014亚军:Top-5错误率7.3%,仅比GoogLeNet高0.3%深度可迁移:VGG特征泛化能力强,广泛用于迁移学习和特征提取规范化设计:证明小卷积核堆叠是加深网络的有效方式,影响后续所有CNN局限:全连接层参数占比大(约90%),计算量大,推理速度慢核心:VGG=13卷积+3全连接,统一3×3小卷积核堆叠,参数更少非线性更多,特征泛化能力强适合迁移学习04·深度学习/经典模型详解ResNet:残差连接突破深度极限①核心问题:网络越深,性能越差?退化问题(Degradation):网络层数增加时,训练误差反而上升20层→56层:准确率下降,不是过拟合原因:梯度消失/爆炸,深层网络难以优化单纯堆叠层会让信息在传播中丢失ResNet解决:跳连接让梯度直接回传,突破深度限制②残差块(ResidualBlock)结构基本残差块(ResNet-18/34):x→conv3×3→BN→ReLU→conv3×3→BN输出=F(x)+x(跳连接Shortcut)瓶颈残差块(ResNet-50/101/152):1×1降维→3×3卷积→1×1升维,减少参数学习目标从H(x)改为F(x)=H(x)-x,更容易优化③ResNet-50网络架构层名输出尺寸通道数块数说明conv1112×1126417×7卷积步长2+BN+ReLU,快速降维maxpool56×566413×3最大池化步长2,进一步降维conv2_x56×5625633个瓶颈残差块,1×1→3×3→1×1conv3_x28×2851244个瓶颈残差块,首个块步长2降维conv4_x14×14102466个瓶颈残差块,提取深层语义特征conv5_x7×72048

温馨提示

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

评论

0/150

提交评论