提到机器视觉,就绕不开 CNN;在人脸识别,图片分类,目标检测也都离不开CNN。那么CNN到底是什么呢,为什么CNN那么重要呢?机器又是怎么“看懂”图片的呢?今天我用三点给你讲明白。
首先,CNN到底是什么呢?CNN中文名叫做卷积神经网络(像Token叫词元,VS Code叫做微软大战代码一样!),是一种擅长处理图片的神经网络。人类看到一只喵的图片很快就可以认出这是一只喵,但机器看到的不是一张图片而是一组数字,CNN就是从这一组数字里面找出特征,先提取喵的边缘,颜色和纹理等简单特征,再逐层把它们组合成更加复杂的特征,然后输出多张特征图,最后判断图片是什么。简单来说,CNN 就是从图片中提取特征,生成特征图,再根据这些特征判断图片中有什么。
其次,CNN为什么那么重要呢,关键就在“卷积”这两个字。我们可以把卷积想象成一个放大镜,它会在图片上面不断移动每次观察一小块区域然后寻找图片的特征。一般情况下一张图片会使用多个卷积核,有的负责寻找横向边缘,有的负责寻找竖向边缘,还有的可能对某种纹理更加敏感,一个卷积核会计算特征值,特征值多了,特征图就出来啦!并且每个卷积核会重复使用,所以无论喵的耳朵在哪里,CNN都有机会发现它。
最后,每一层卷积层会连接起来,每一层会算出一个特征图,前面的网络层通常提取喵的边缘、颜色和纹理,后面的网络层逐渐把它们组合成更加复杂的特征。然后在输出层用特征图计算是哪个东西,识别出这个图片是什么(是一只喵还是一只汪?),比如它认为这张图片有 95%的可能是喵,5%的可能是汪,就会把喵作为最终答案。
好啦喵,现在你知道CNN是啥了吧!快去复习吧!