2026/2/21 2:45:35
网站建设
项目流程
网上做平面设计兼职不错的网站,wordpress新建404页面,做网站外包价格,做网站用新域名还是老域名一、整体流程比喻#xff1a;工厂流水线
想象一个智能玩具工厂的生产流水线#xff1a;
原始材料#xff08;像素#xff09; → 初级加工#xff08;骨干网络#xff09; → 精细组装#xff08;颈部网络#xff09; → 质量检测#xff08;检测头#xff09;
二…一、整体流程比喻工厂流水线想象一个智能玩具工厂的生产流水线原始材料像素 → 初级加工骨干网络 → 精细组装颈部网络 → 质量检测检测头二、从数据读取开始原材料入库2.1 输入图片工厂的原材料输入一张640×640的彩色图片 比喻640×640个小彩色积木像素 每个像素3个值红、绿、蓝 总数据量640 × 640 × 3 1,228,800个数字2.2 数据预处理原材料整理# 就像整理积木 预处理步骤 1. 统一大小所有图片都变成640×640 2. 归一化把像素值从0-255变成0-1 3. 转成张量变成PyTorch能处理的格式 输入形状[1, 3, 640, 640] 解释 - 1批次大小1张图片 - 3通道数RGB三色 - 640高度 - 640宽度三、骨干网络Backbone初级加工车间3.1 层0Conv(3, 64, 3, 2)-第一道加工参数详解Conv(3, 64, 3, 2) ↑ ↑ ↑ ↑ 输入通道 输出通道 卷积核大小 步长 翻译 用64个3×3的过滤器每次移动2步把3通道变成64通道工作过程输入[1, 3, 640, 640] # 1张图3颜色640×640大小 加工步骤 1. 拿3×3的小窗口在图片上滑动 2. 每次移动2个像素stride2 3. 用64种不同的方式看这个小窗口 4. 输出64张特征图 输出[1, 64, 320, 320] # 尺寸减半640÷2320形象比喻原始一张彩色照片 经过层0变成64张黑白轮廓图 每张图关注不同的特征边缘、颜色、纹理等 图片大小从640×640变成320×320看粗一点3.2 层1Conv(64, 128, 3, 2)-再次加工输入[1, 64, 320, 320] # 64张轮廓图 加工用128个3×3过滤器步长2 输出[1, 128, 160, 160] # 尺寸再减半 比喻从64张轮廓图提取128张更抽象的特征图3.3 P1/2、P2/4的含义下采样标记P1/2第一次下采样原始尺寸的1/2 P2/4第二次下采样原始尺寸的1/4 P3/8第三次下采样原始尺寸的1/8 以此类推... 为什么要下采样 就像先看整体轮廓再看细节 太大看不全太小看不清需要不同尺度四、C2f模块特征提取的核心车间4.1 层2C2f(128, 128, n3)-特征精加工参数详解C2f(128, 128, n3) ↑ ↑ ↑ 输入通道 输出通道 重复3次 特点输入输出通道一样128→128不会改变通道数工作原理C2f 更聪明的特征提取器 工作流程 1. 把输入分成两部分 2. 一部分直接通过捷径连接 3. 另一部分经过n个Bottleneck模块处理 4. 两部分合并输出 比喻一条主路 一条辅路最后汇合 主路保留原始信息防止信息丢失 辅路提取更高级特征Bottleneck模块n3重复3次每个Bottleneck 输入 → 1×1卷积压缩 → 3×3卷积提取 → 1×1卷积恢复 比喻 1×1卷积整理书包把杂乱的书整理好 3×3卷积认真学习提取特征 1×1卷积整理笔记把学到的整理好4.2 不同层的C2f对比# 层4C2f(256, 256, n6) # 通道更多256重复更多次6次 # 比喻更复杂的加工需要更多步骤 # 层6C2f(512, 512, n6) # 通道更多512同样重复6次 # 层8C2f(1024, 1024, n3) # 通道最多1024但重复较少3次 # 比喻到了很深层信息已经很抽象不需要太多次加工五、下采样过程逐步抽象化5.1 下采样流程总结层0640×640×3 → 320×320×64 (P1/2) 层1320×320×64 → 160×160×128 (P2/4) 层3160×160×128 → 80×80×256 (P3/8) 层580×80×256 → 40×40×512 (P4/16) 层740×40×512 → 20×20×1024 (P5/32)5.2 不同分辨率的特点分辨率对比 { 高分辨率160×160: { 特点: 细节丰富能看到小东西, 适合: 检测小目标蚂蚁、文字, 比喻: 用放大镜看细节, }, 中分辨率40×40: { 特点: 平衡细节和整体, 适合: 检测中目标猫、狗, 比喻: 正常距离观看, }, 低分辨率20×20: { 特点: 语义信息强感受野大, 适合: 检测大目标汽车、房子, 比喻: 远距离看整体, }, }六、SPPF模块多尺度特征融合6.1 层9SPPF(1024, 1024, k5)-多角度观察参数详解SPPF(1024, 1024, k5) ↑ ↑ ↑ 输入通道 输出通道 池化核大小5 SPPF Spatial Pyramid Pooling Fast空间金字塔快速池化工作原理输入特征图 → 分别用5×5池化3次 → 结果拼接 → 输出 比喻用三个不同大小的窗户看同一个场景 1. 第一个窗户正常看 2. 第二个窗户离远点看感受野变大 3. 第三个窗户再离远点看感受野更大 然后把三个视角的信息结合起来为什么需要SPPF单一尺度只能看到局部或整体 多尺度既能看细节又能看整体 对于检测很重要不同大小的目标需要不同尺度七、颈部网络Neck精细组装车间7.1 上采样nn.Upsample(...)-放大特征图层10、13作用把特征图放大2倍 输入[1, 1024, 20, 20] → 输出[1, 1024, 40, 40] 比喻把小照片放大看清楚细节 技术最近邻插值复制最近的像素7.2 特征拼接Concat([-1, 6])-信息融合参数详解Concat([-1, 6], dim1) [-1, 6]拼接当前层-1和第6层 dim1在通道维度拼接 例子层11 当前层1040×40×1024 第6层40×40×512 拼接后40×40×15361024512为什么拼接深层特征语义信息强知道是什么 浅层特征细节信息强知道在哪里 拼接既知道是什么又知道在哪里 比喻 - 深层这是一个人语义 - 浅层人的轮廓很清晰细节 - 拼接知道这是一个清晰的人7.3 颈部网络的完整流程第一轮融合层10-151. 层10把深层特征放大20×20→40×40 2. 层11和中等层特征拼接融合语义和细节 3. 层12C2f处理融合后的特征 4. 层13再次放大40×40→80×80 5. 层14和浅层特征拼接 6. 层15C2f处理 → 输出P3特征第二轮融合层16-181. 层16把P3特征下采样80×80→40×40 2. 层17和中间特征拼接 3. 层18C2f处理 → 输出P4特征第三轮融合层19-211. 层19把P4特征下采样40×40→20×20 2. 层20和深层特征拼接 3. 层21C2f处理 → 输出P5特征7.4 特征金字塔FPNPAN结构YOLOv8使用双向特征金字塔 自上而下FPN 深层特征 → 上采样 → 与浅层融合 作用把语义信息传到浅层 自下而上PAN 浅层特征 → 下采样 → 与深层融合 作用把细节信息传到深层 结果每个尺度都有丰富的语义和细节信息八、检测头最终的质量检测8.1 三尺度输出最终输出三个尺度的特征图 P380×80×256 → 检测小目标 P440×40×512 → 检测中目标 P520×20×1024 → 检测大目标 每个位置预测 1. 边界框x, y, w, h 2. 置信度有没有目标 3. 类别概率是什么目标8.2 为什么需要三个尺度小目标检测P3 - 分辨率高80×80能看清细节 - 但感受野小只能看局部 大目标检测P5 - 分辨率低20×20看不清细节 - 但感受野大能看到整体 中目标检测P4 - 平衡既有一定细节又有一定感受野九、参数数量计算工厂的工人数量9.1 卷积层参数计算公式参数数 (输入通道×卷积核宽×卷积核高 1)×输出通道 1偏置参数 例子Conv(3, 64, 3, 2) 计算(3×3×3 1)×64 (27 1)×64 1792个参数 解释 - 每个3×3滤波器看3×3×327个输入3通道 - 每个滤波器有1个偏置 - 有64个这样的滤波器9.2 各层参数估算参数估算 { 层0 Conv: 约1.8K参数, 层1 Conv: 约73.9K参数, # (64×3×31)×128 层2 C2f: 约数十K参数, 层3 Conv: 约295K参数, 层4 C2f: 约数M参数, 层5 Conv: 约1.18M参数, 层6 C2f: 约数M参数, 层7 Conv: 约4.72M参数, 层8 C2f: 约数M参数, 总计: 约3-30M参数取决于模型大小, }十、完整数据流动示例10.1 数据形状变化全过程假设输入1张640×640的RGB图片 [1, 3, 640, 640] 骨干网络 层0 Conv: [1, 3, 640, 640] → [1, 64, 320, 320] (P1/2) 层1 Conv: [1, 64, 320, 320] → [1, 128, 160, 160] (P2/4) 层2 C2f: [1, 128, 160, 160] → [1, 128, 160, 160] 层3 Conv: [1, 128, 160, 160] → [1, 256, 80, 80] (P3/8) 层4 C2f: [1, 256, 80, 80] → [1, 256, 80, 80] 层5 Conv: [1, 256, 80, 80] → [1, 512, 40, 40] (P4/16) 层6 C2f: [1, 512, 40, 40] → [1, 512, 40, 40] 层7 Conv: [1, 512, 40, 40] → [1, 1024, 20, 20] (P5/32) 层8 C2f: [1, 1024, 20, 20] → [1, 1024, 20, 20] 层9 SPPF: [1, 1024, 20, 20] → [1, 1024, 20, 20] 颈部网络 层10 Upsample: [1, 1024, 20, 20] → [1, 1024, 40, 40] 层11 Concat: [1, 1024, 40, 40] [1, 512, 40, 40] → [1, 1536, 40, 40] 层12 C2f: [1, 1536, 40, 40] → [1, 512, 40, 40] 层13 Upsample: [1, 512, 40, 40] → [1, 512, 80, 80] 层14 Concat: [1, 512, 80, 80] [1, 256, 80, 80] → [1, 768, 80, 80] 层15 C2f: [1, 768, 80, 80] → [1, 256, 80, 80] ← P3输出 层16 Conv: [1, 256, 80, 80] → [1, 256, 40, 40] 层17 Concat: [1, 256, 40, 40] [1, 512, 40, 40] → [1, 768, 40, 40] 层18 C2f: [1, 768, 40, 40] → [1, 512, 40, 40] ← P4输出 层19 Conv: [1, 512, 40, 40] → [1, 512, 20, 20] 层20 Concat: [1, 512, 20, 20] [1, 1024, 20, 20] → [1, 1536, 20, 20] 层21 C2f: [1, 1536, 20, 20] → [1, 1024, 20, 20] ← P5输出10.2 可视化流程输入图片 ↓ [骨干网络逐步抽象] 640×640×3 → 320×320×64 → 160×160×128 → 80×80×256 → 40×40×512 → 20×20×1024 ↓ [颈部网络多尺度融合] ↗ 上采样拼接 → 80×80×256 (P3小目标) 20×20×1024 → 40×40×512 (P4中目标) ↘ 下采样拼接 → 20×20×1024 (P5大目标) ↓ [检测头] 同时用P3、P4、P5检测不同大小的目标十一、为什么要这样设计11.1 设计哲学1. 逐步抽象从像素到语义 - 浅层边缘、颜色、纹理 - 中层部件、形状 - 深层物体、场景 2. 多尺度适应不同大小目标 - 小目标需要高分辨率 - 大目标需要大感受野 - 中目标需要平衡 3. 特征融合细节语义 - 浅层细节好但不知道是什么 - 深层知道是什么但细节模糊 - 融合既知道是什么又知道在哪里11.2 为什么有效生物学启发人眼视觉系统也是多尺度 - 视网膜中心高分辨率看细节 - 视网膜周边低分辨率看整体 - 大脑融合形成完整感知 工程需求 - 现实世界目标大小不一 - 需要平衡速度和精度 - 需要鲁棒性适应不同场景十二、总结记住这些关键点12.1 核心参数含义Conv(输入通道, 输出通道, 卷积核大小, 步长) C2f(输入通道, 输出通道, n重复次数) P数字/数字下采样倍数原始尺寸的几分之几12.2 数据流动规律1. 通道数一般越深越多提取更多特征 2. 分辨率一般越深越小看更宏观 3. 骨干网络只下采样提取特征 4. 颈部网络上下采样结合融合特征12.3 形象记忆法把神经网络想象成 1. 骨干网络望远镜越看越远越看越整体 2. C2f模块显微镜仔细分析特征 3. 颈部网络拼图游戏把不同尺度的信息拼起来 4. 检测头质检员检查每个位置有没有目标12.4 给初学者的一句话神经网络就像智能的图片处理工厂先粗加工再精细组装最后多尺度质检