1. 为什么目标检测不直接看原图而要先做卷积先说一句最核心的话原图只是像素堆不能直接等于“语义理解”。比如一张猫的图片在计算机里本质上只是很多数字。神经网络如果想知道哪里有边缘哪里有纹理哪里像耳朵哪里像眼睛哪一片区域更像“猫”它就不能一直停留在原始像素层面而要一步一步把原图变成更“有意义”的表示。这个“逐层提炼信息”的过程CNN 里最核心的工具之一就是卷积2. 卷积到底是在干什么先别急着上公式先用一句人话说卷积就是拿一个小窗口在图像上滑动每到一个位置就做一次局部计算。这个小窗口通常叫卷积核kernelfilter它的作用可以粗糙理解成专门去看某种局部模式比如有的卷积核更容易对水平边缘垂直边缘纹理变化亮度突变产生强响应。所以卷积不是“看整张图”而是先看局部再逐层组合成更复杂的理解3. 一个最简单的卷积公式卷积最基础的表达可以写成现在不用怕这个式子我们拆开看。这个公式里每个字母是什么意思表示输入图像某个局部位置上的像素值。表示卷积核里的权重。表示偏置项。表示输出特征图在位置 ((i,j)) 上的值。这条公式本质在做什么本质上就是把输入图像的一小块区域和卷积核对应位置相乘再全部加起来最后再加一个偏置。也就是局部区域 × 卷积核 → 求和 → 得到一个输出值可以把它理解成一种“局部匹配打分”。如果某一块区域和这个卷积核特别匹配那输出值就可能比较大如果不匹配输出值就可能比较小。4. 为什么卷积能提特征卷积之所以能提特征不是因为它能一下子“看懂整张图”而是因为它会对图像做逐层、逐步的特征提取与组合。最开始输入网络的只是原始图像的像素值。这些像素本身只是一些数字网络并不知道图里是什么物体也不知道哪些部分更重要。卷积层的作用就是从这些原始像素中一步一步提取出更有意义的表示。在浅层网络通常先提取一些比较基础的局部信息比如边缘纹理颜色变化简单的局部形状这些信息通常被称为低层特征Low-level features。它们更接近图像本身的视觉细节能够帮助网络先分辨出“哪里有结构变化、哪里有明显模式”。随着网络继续加深前面得到的低层特征会被进一步组合。这时网络不再只关注单独的边缘或纹理而是开始识别更复杂的局部结构比如某些局部部件、局部区域组合或更完整的小形状。这些通常被称为中层特征Mid-level features。再往后随着卷积层继续堆叠这些中层结构还会进一步组合逐渐形成更抽象、更接近语义层面的表示。这时网络开始不仅仅知道“这里有一条边、那里有一块纹理”而是逐渐能够理解“这一部分像某个物体部件”“这一整块区域可能对应某个完整目标”。这些通常被称为高层特征High-level features。所以从原始像素到最终的高层表示CNN 实际上经历的是一个不断重复的过程提取局部特征 → 组合已有特征 → 形成更高层次的特征这也是为什么我们常说 CNN 是一种层级式特征提取器。它不是直接从像素跳到“识别结果”而是先提取低层特征再形成中层特征最后逐步得到高层语义特征。5. 什么叫特征图 feature map卷积做完后不会直接输出“猫”或者“狗”。它先输出的是特征图特征图你可以理解成某种特征在整张图上各个位置的响应分布图比如有一个卷积核特别擅长看“竖直边缘”那它卷积之后得到的一张特征图就可以理解成这张图里哪里更像竖直边缘哪里不像所以特征图不是原图而是原图经过某种特征提取之后得到的新表示。6. 为什么卷积后会有很多通道原图一般是灰度图1 个通道彩色图3 个通道RGB但卷积之后输出往往会变成很多通道比如16 通道32 通道64 通道128 通道为什么因为一个卷积核只能提一种模式多个卷积核才能提多种模式如果一层里有 64 个卷积核那通常就会输出 64 张特征图。把这些特征图叠起来就形成了一个多通道输出。所以可以把“通道数变多”理解成模型在同时提取越来越多种不同类型的特征7. 多通道卷积怎么理解如果输入不是单通道而是多通道比如 RGB 图像那卷积就不是只看一个二维小块而是看一个“带厚度的小块”。比如输入是 3 通道卷积核可能是这里的意思不是“三个卷积核”而是高 3宽 3深度覆盖 3 个输入通道最后这个卷积核会在三个通道上一起做计算然后合成一个输出值。所以更准确地说卷积核不只是看平面还会同时看所有输入通道8. 输出尺寸怎么变一个最常见公式卷积后特征图大小怎么变这是技术汇报里经常会提到的。最常见公式是这里(N)输入尺寸(K)卷积核大小(P)padding(S)stride(O)输出尺寸它在回答一个问题输入经过卷积后输出特征图还剩多大比如输入宽高是 (640)卷积核大小 (3)stride 是 (1)padding 是 (1)那么输出还是 (640)。因为这就是为什么很多卷积如果配了合适 padding输出尺寸可以不变。9. stride 是什么stride 就是步长你可以理解成卷积核每次滑动时走几步。stride 1表示每次只移动 1 个像素扫得更细。stride 2表示每次移动 2 个像素扫得更快但输出会变小。所以 stride 变大通常意味着输出特征图尺寸减小计算量下降信息会更粗一些这就和下一个概念紧密相关下采样10. 下采样到底在干什么下采样可以先理解成一句话把特征图尺寸缩小比如变成变成这样做的原因主要有两个1. 降低计算量特征图太大后续计算会很慢。2. 扩大感受范围特征图缩小后后面的一个点往往对应原图更大范围的信息。所以在 CNN 里下采样不是“单纯压缩图片”而是在保留主要信息的同时让网络逐步看到更大范围的上下文11. 下采样通常怎么做常见方法有两个方法 1stride 1 的卷积比如 stride2 的卷积。它在做特征提取的同时也把尺寸缩小了。方法 2池化 pooling比如 max pooling。最大池化的意思是在一个小区域里只保留最大的值。一个简单形式可以写成意思是在某个局部窗口内取最大值作为输出。卷积下采样更灵活也能学参数池化下采样更简单参数少现代检测网络里经常更偏向用卷积来完成下采样。12. 感受野 receptive field 是什么感受野可以简单理解成特征图上某个位置能“看到”原图多大范围。比如浅层某个点可能只对应原图一小块区域深层某个点可能对应原图很大一片区域随着网络变深、经过多次卷积和下采样感受野通常会越来越大。这意味着什么意味着深层特征更容易整合全局信息更有机会理解“这个局部到底属于什么目标”。13. 为什么浅层适合小目标深层适合大语义浅层特征分辨率高位置细节保留多更适合小目标、边缘、细节深层特征分辨率低语义更强更适合整体理解、大目标判断所以检测网络不能只用最后一层。因为最后一层虽然语义强但很多细节已经没了。这也是为什么后面会需要FPNPAN多尺度特征融合也就是把浅层和深层的信息结合起来。14. CNN 一层一层到底在干什么第一步从原图提局部基础特征比如边缘、纹理。第二步继续组合成更复杂特征比如轮廓、局部部件。第三步逐渐扩大感受野让每个位置能结合更大范围的信息。第四步得到适合任务使用的高层特征如果是分类就拿去做整图判别如果是检测就拿去做位置和类别预测。所以 CNN 的本质不是“疯狂堆层”而是逐层把像素表示变成任务可用的特征表示15. 对 YOLO 来说这些概念分别对应什么卷积负责提取局部特征是最基础的计算单元。特征图是图像经过卷积后的中间表示供后续检测头使用。下采样让特征图逐步缩小减少计算同时扩大感受野。多通道表示网络在同时提取很多不同类型的特征。感受野决定某个位置能结合多大范围的信息对理解目标整体很重要。“卷积神经网络为什么适合视觉任务”因为卷积通过局部连接和权值共享能够高效提取图像的空间局部特征随着网络加深特征会从低层边缘纹理逐渐过渡到高层语义表示再结合下采样网络既能降低计算量又能扩大感受野因此适合做图像分类、目标检测这类视觉任务。16. 这一篇的几个公式公式 1卷积的基本形式它表达的是卷积核在局部区域上做加权求和得到输出特征图上的一个值公式 2输出尺寸公式它表达的是卷积后特征图尺寸怎么变化公式 3最大池化的基本形式它表达的是在一个局部窗口里取最大响应17. 本篇小结原图不是直接可用的语义信息所以网络需要通过卷积逐层提特征卷积会生成特征图多通道表示多种特征下采样会缩小尺寸、扩大感受野浅层偏细节深层偏语义这正是后面 YOLO 做多尺度检测的基础。