webooru
webooru copied to clipboard
未系安全带智能检测系统与深度学习介绍(四) - 知乎
深度学习在视觉上的应用
计算机视觉中比较成功的深度学习的应用,包括人脸识别,图像问答,物体检测,物体跟踪。
人脸识别:
这里说人脸识别中的人脸比对,即得到一张人脸,与数据库里的人脸进行比对;或同时给两张人脸,判断是不是同一个人。
这方面比较超前的是汤晓鸥教授,他们提出的 DeepID 算法在 LWF 上做得比较好。他们也是用卷积神经网络,但在做比对时,两张人脸分别提取了不同位置特征,然后再进行互相比对,得到最后的比对结果。最新的 DeepID-3 算法,在 LWF 达到了 99.53% 准确度,与肉眼识别结果相差无几。
图片问答问题:
这是 2014 年左右兴起的课题,即给张图片同时问个问题,然后让计算机回答。比如有一个办公室靠海的图片,然后问 “桌子后面有什么”,神经网络输出应该是 “椅子和窗户”。
这一应用引入了 LSTM 网络,这是一个专门设计出来具有一定记忆能力的神经单元。特点是,会把某一个时刻的输出当作下一个时刻的输入。可以认为它比较适合语言等,有时间序列关系的场景。因为我们在读一篇文章和句子的时候,对句子后面的理解是基于前面对词语的记忆。
图像问答问题是基于卷积神经网络和 LSTM 单元的结合,来实现图像问答。LSTM 输出就应该是想要的答案,而输入的就是上一个时刻的输入,以及图像的特征,及问句的每个词语。
物体检测问题:
Region CNN
深度学习在物体检测方面也取得了非常好的成果。2014 年的 Region CNN 算法,基本思想是首先用一个非深度的方法,在图像中提取可能是物体的图形块,然后深度学习算法根据这些图像块,判断属性和一个具体物体的位置。
为什么要用非深度的方法先提取可能的图像块?因为在做物体检测的时候,如果你用扫描窗的方法进行物体监测,要考虑到扫描窗大小的不一样,长宽比和位置不一样,如果每一个图像块都要过一遍深度网络的话,这种时间是你无法接受的。
所以用了一个折中的方法,叫 Selective Search。先把完全不可能是物体的图像块去除,只剩 2000 左右的图像块放到深度网络里面判断。那么取得的成绩是 AP 是 58.5,比以往几乎翻了一倍。有一点不尽如人意的是,region CNN 的速度非常慢,需要 10 到 45 秒处理一张图片。
Faster R-CNN 方法
而且我在去年 NIPS 上,我们看到的有 Faster R-CNN 方法,一个超级加速版 R-CNN 方法。它的速度达到了每秒七帧,即一秒钟可以处理七张图片。技巧在于,不是用图像块来判断是物体还是背景,而把整张图像一起扔进深度网络里,让深度网络自行判断哪里有物体,物体的方块在哪里,种类是什么?
经过深度网络运算的次数从原来的 2000 次降到一次,速度大大提高了。
Faster R-CNN 提出了让深度学习自己生成可能的物体块,再用同样深度网络来判断物体块是否是背景?同时进行分类,还要把边界和给估计出来。
Faster R-CNN 可以做到又快又好,在 VOC2007 上检测 AP 达到 73.2,速度也提高了两三百倍。
YOLO
去年 FACEBOOK 提出来的 YOLO 网络,也是进行物体检测,最快达到每秒钟 155 帧,达到了完全实时。它让一整张图像进入到神经网络,让神经网络自己判断这物体可能在哪里,可能是什么。但它缩减了可能图像块的个数,从原来 Faster R-CNN 的 2000 多个缩减缩减到了 98 个。
同时取消了 Faster R-CNN 里面的 RPN 结构,代替 Selective Search 结构。YOLO 里面没有 RPN 这一步,而是直接预测物体的种类和位置。
YOLO 的代价就是精度下降,在 155 帧的速度下精度只有 52.7,45 帧每秒时的精度是 63.4。
SSD
在 arXiv 上出现的最新算法叫 Single Shot MultiBox Detector,即 SSD。
它是 YOLO 的超级改进版,吸取了 YOLO 的精度下降的教训,同时保留速度快的特点。它能达到 58 帧每秒,精度有 72.1。速度超过 Faster R-CNN 有 8 倍,但达到类似的精度。
物体跟踪
所谓跟踪,就是在视频里面第一帧时锁定感兴趣的物体,让计算机跟着走,不管怎么旋转晃动,甚至躲在树丛后面也要跟踪。
深度学习对跟踪问题有很显著的效果。DeepTrack 算法是我在澳大利亚信息科技研究院时和同事提出的,是第一在线用深度学习进行跟踪的文章,当时超过了其它所有的浅层算法。
今年有越来越多深度学习跟踪算法提出。去年十二月 ICCV 2015 上面,马超提出的 Hierarchical Convolutional Feature 算法,在数据上达到最新的记录。它不是在线更新一个深度学习网络,而是用一个大网络进行预训练,然后让大网络知道什么是物体什么不是物体。
将大网络放在跟踪视频上面,然后再分析网络在视频上产生的不同特征,用比较成熟的浅层跟踪算法来进行跟踪,这样利用了深度学习特征学习比较好的好处,同时又利用了浅层方法速度较快的优点。效果是每秒钟 10 帧,同时精度破了记录。
最新的跟踪成果是基于 Hierarchical Convolutional Feature,由一个韩国的科研组提出的 MDnet。它集合了前面两种深度算法的集大成,首先离线的时候有学习,学习的不是一般的物体检测,也不是 ImageNet,学习的是跟踪视频,然后在学习视频结束后,在真正在使用网络的时候更新网络的一部分。这样既在离线的时候得到了大量的训练,在线的时候又能够很灵活改变自己的网络。