第一节:再谈单步法和两步法
前面我们说图像识别领域通常有两类方法:一类是单步法,另一类是基于候选区的两步法,常用的单步法多数是基于DNN的方式,能解决更为复杂的问题,但是对设备要求较高,也需要更多的样本,在很多自然场景下对单个类别的样本数据要求可能达到数千张,比较典型的算法是YOLO。基于候选区典型算法比如faster rcnn,目前也是比较成功的,但是目前相对而言YOLO优势更大,速度快,应用广,应用起来也比较简单。
上面提到的两类常用算法,都是基于深度神经网络的实现,这样做很多好处,比如更加准确,泛化能力更强等等。但是一旦用上了深度学习就意味着,你的程序会更加复杂,对硬件设备要求更高,否则在某些实时应用场合没有太大的意义,所以深度学习框架一般都是要支持GPU运算来提升速度的。然而在嵌入式设备上通常是没有GPU来加速的,在本例中也是一样,我们还是运用传统的算法来解决这个比较简单而实际的问题,而并不是通过构建神经网络来解决这个问题。
这样做由很多优势:一、针对这种单一环境下的图像识别处理,本身就只需要用传统算法解决问题,不必要复杂化,二、这种环境下我么得到的样本质量较高,只需要少量样本就可以解决问题,不需要太强的泛化能力也能搞定识别,三、简单的算法和处理过程能提高帧率,使用起来更流畅。事实证明这样做是非常明智的,尤其是在嵌入式设备上,效果是极好的。
到底用不用深度学习网络,我是这样看的:如果能用传统的算法解决问题就不用DNN的方式,优缺点前面已经提到过了,有些场合必须要用DNN的实现这无可厚非(使用DNN进行图像识别绝