深度学习在计算机视觉中的应用,使得传统的图像处理无法解决的问题成为可能,并因此衍生出更多的学术和工程需求。面对不断发展的工程需要,计算机视觉技术也在逐渐完善,本篇博客介绍计算机视觉的技术进阶。
图像识别解决的是日常生活中,‘ 这是什么?’ 的问题,对于该种问题,其实就是要求设计模型能准确分类出具体事物的label标签,像下面这张图一样。 模型需要说出来的是:‘这是猫’
对于这种分类问题,是简单地神经网络,或者说简单几层多层感知机就能解决。这就引申出来CNN的鼻祖 Lenet。基础版的卷积神经网络DIY 设计很简单,你可以使用很多的框架几行代码就可以写出来,基本遵循 卷积–激活函数–池化 – 卷积 – …… – Flatten层 – 全连接层。 如果你有个纯净的数据集,都可以获得一个比较不错的分类结果。总结: 图像识别问题可以解决大部分的简单分类问题。图像识别问题,对训练数据有个严苛的要求,就是图片纯净,也就是图片中需要只存在一种label的物体,这其实在现实应用中很难获得,也有很多的局限性。在日常接触到的图像数据中,更多的是这样的图片。 因此,图像检测需要结局的是 ‘ **这是什么,它在哪?**的问题。
这延伸出来需要准确把目标物体的大致位置找出来。在图片中也可以看出来,目标检测就是在大的图片中找到物体区域,再给每个区域进行物体的分类。定位涉及到位置回归的问题,在这方面的介绍我会另开一个系列的博客,包括 R-CNN 系列, SSD 系列, YOLO系列。目标检测基本是工业场景中应用最广泛的基础技术,是重点问题。用过PS的同学应该都好理解,简称就是让模型自动去抠图,但图像分割并不是让模型去抠图,而是为了能够更准确获得目标的准确位置,这个位置不是图像检测中简单地一个框,而是目标地轮廓。
准确的位置,在很多场景中有很高的要求,如自动驾驶中的车道线保持,物体避让,这些不能仅仅靠目标检测的一个框,而且随着更多的场景开发,图像分割会有越来越多地应用场景。图像分割也有一个专业领域,会单开一个系列去具体介绍。图像分割能解决地问题是’ 这是什么,找到它的轮廓‘自然界的图片数据集太多了,不可能给每一张图片都打上label, 而且label也不可能特别细化。 如淘宝网中庞大的衣服图片,有时我们喜欢一款衣服,我们想去淘宝买同款,但不可能淘宝把每件相似的衣服都打上一个标签。这就需要用到聚类技术了。
其实不难发现以图搜图其实是在比较和图片相似的图片,这个相似比较的内容不是简单的像素值,更多的用的是经CNN提取的特征,这个CNN是经过训练后的,不然这个特征也没什么参考性。这个应该是了解分类网络的人都应该知道。聚类技术同样会开一个单独系列。聚类的应用范围同样很广,主要是两个方面: 标签数据的粗清洗 和 类似以图搜图的应用。其实工业场景中,前四阶已经可以大有可为。往后的内容更多地应用在娱乐化或学术性的内容。今天先写到这里,有时间再回来补