机器学习1(高清重制版)
Posted rtxux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习1(高清重制版)相关的知识,希望对你有一定的参考价值。
人工智能领域的前沿技术介绍、展望、应用(关于目标检测)
目标检测介绍
目标检测的主要任务是检测输入图像是否存在给定目标。如存在则返回目标的类别和位置信息。根据检测任务的不同可分为目标实例检测和通用目标检测。
每一类目标都有属于它的特殊的特征,以便人们能够分辨它们,例如,圆被认为是在几何形态上到一个点具有特定距离的目标,这些特征也被用于机器学习算法来识别目标的类别。典型的就是人脸识别中,人脸被认为是具有眼睛、鼻子和嘴唇并且具有肤色和合理瞳距的目标。
目标检测任务一般使用可见光视频作为主要的输入来源,这也是最低成本的方式。然而在可见光条件不好或提供辨识度不足的情况下,通常结合使用其他输入来源来替代或辅助,以取得更好的效果,如夜间使用红外光谱摄像机;执行特殊任务时可使用热成像传感器、激光测距传感器甚至雷达来提供辅助特征。这些辅助特征的加入可以在一定程度上解决使用单一传感器来源易受干扰的问题,提高检测效果。
发展和现状
当前的目标检测器基本可以划分为两类:两阶段检测器和一阶段检测器。两阶段检测器一般是基于区域提取(Region Proposal, a.k.a 候选窗口)的方法。一阶段检测器一般是基于回归的方法,这类检测器也是目前使用得较多的检测器,具有代表性。一般来说,两阶段检测器效果好,跑得慢;一阶段检测器效果较差但跑得快。
基于区域提取的检测器
基于候选窗口的目标检测框架需要在检测图像上生成大量候选窗口,然后判别这些候选窗口的类别,最终包含感兴趣目标的候选框就是目标窗口。典型代表有:R-CNN系列、R-FCN系列和Mask R-CNN系列。
R-CNN系列
R-CNN基本框架将检测任务分为3个步骤:获取候选区域并进行特征处理,利用CNN提取固定长度特征,通过线性分类器进行分类。这类方法在候选区域数量较大时存在运行速度缓慢的问题,对计算性能需求较大。针对这些问题,Faster R-CNN提出了区域推荐网络(Region Proposal Network, RPN)进行候选区域推荐,提高了检测速度。
R-FCN系列
针对Faster R-CNN框架ROI Pooling后特征不能共享的问题,R-FCN在卷积层使用了包含目标空间位置信息的位置敏感分布图,结合残差网络后,检测精度和速度都有了提升。另一个改进是Light Head RCNN, 使用了更轻量的R-CNN子网络,虽然检测精度有所下降,但速度大幅提升。
Mask R-CNN系列
针对Faster R-CNN 中RoI Pooling 采用最近邻插值导致等比例缩放时空间量化粗糙影响准确定位的问题,Mask R-CNN框架提出了ROI Align 算法,用双线性插值替代最近邻插值,并增加一个分支,为每个ROI输出二进制掩码(Mask),提升了检测准确度。
基于回归的检测器
基于回归的目标检测框架从一幅图像中直接预测类概率和边界框偏移量,没有推荐预选框和特征重组的步骤。典型的有YOLO和SSD。
YOLO
YOLO(You Look only Once),是一种一阶段检测器。YOLO 将物体检测看成回归问题,不同于R-CNN基于局部候选框进行预测的方式。,YOLO利用整张图片的特征,将图像划分成S × S 个方格,每个方格只负责检测中心落在该方格的目标,每个方格分别计算目标类别的概率值、边缘框位置和边缘框的置信度。一步实现了所有区域内含有目类别概率、边界框、置信度的预测。其检测速度可以满足实时要求,但
其检测精度相对于Faster R-CNN下降了很多。
YOLO v2改进了YOLO原有的特征提取网络,提出了计算复杂度更小、准确率更高的Darknet-19。引入Anchor 机制,利用K-Means 聚类方法在训练集中聚类计算出更好的Anchor 模板,提高了框架召回率。
YOLO v3在YOLO v2基础上,设计出了比ResNet152综合性能更好的分类网络darknet-53。针对YOLO 和YOLO v2 小目标漏检率高的问题,YOLO v3 借鉴了多层特征融合思想,将深层特征图进行上采样,与浅层特征图堆叠在一起进行特征融合,并且每个候选框可以预测多个分类,同时利用Logistic loss代替Softmax loss,有效地提升了小目标的检测精度。
SSD
SSD(Single Shot Detector)主要针对YOLO漏检率高的问题,在YOLO 回归思想的基础上,提出了和Faster R-CNN 中的Anchor box 机制相似的Prior box 选框机制。同时为提升小目标的检测率设计了特征金字塔(Pyramidal Feature Hierarchy)结构,其可以通过不同深度的特征图预测目标,提升了框架的多尺度目标的检测能力。SSD在确保了检测速度的前提下,提升了检测精度。
应用
目标检测的应用领域非常广泛,这里提几个典型应用:
- 在安全领域,目标检测可用于人脸检测和识别,自动异常检测
- 在军事领域,可用于远程感知目标检测和武器制导
- 在交通领域,最典型的应用就是自动驾驶,自动驾驶需要目标检测来确保行进路线安全,还有检测交通信号标志等;另外行人和车流检测可用于交通调度。
- 在医疗领域,目标检测主要用于计算机辅助诊断(Computer Aided Diagnose),用于帮助医生更好地识别病症和病症类别等。
挑战和展望
虽然目标检测技术已经取得了很大的进步,但基于深度学习的目标检测框架还面临很多挑战:
计算量问题
随着浏览器、手机端、嵌入式设备对检测技术的需求,如何在简化、复用计算的同时又能保证准确率,将是未来的重要创新方向。早期主要通过更多的计算共享。从R-CNN 到YOLO,都是更多地共享ROI 之间的计算量。目前常用的方法是使用压缩特征提取网络。对框架整体上的压缩设计也可能是一种有效的途径。YOLO-LITE 在这方面进行了尝试,可以实现无GPU 设备上的实时目标检测,但检测精度还有待提高。
小数据集训练
小规模数据训练是实际工程应用中尤其是工业化场景中需要关注的问题。在很多应用领域中,训练样本量远小于PASCAL VOC、MS COCO等通用数据集。目前,针对小数据样本的情况主要采用迁移学习来初始化参数。但对于医疗、军事等特殊领域,现有大型数据集中没有目标数据,迁移学习效果会受到影响。
特殊目标检测
在实际应用中,很多情况下待检测的目标是特殊目标,如不规则形状物体、物体遮挡等情况。其检测难度要远大于常规目标的检测。如何有效解决这些问题是未来重要的研究方向。
大图检测
目前的大部分框架都是针对512×512 或1 000×600 左右分辨率的图像。但随着图像分辨率的提升,未来4k 图像将成为主流。从技术的发展趋势看,针对大尺度图像的检测也是目标检测领域未来的发展方向。
以上是关于机器学习1(高清重制版)的主要内容,如果未能解决你的问题,请参考以下文章
学习《Python机器学习—预测分析核心算法》高清中文版PDF+高清英文版PDF+源代码
分享 《Python机器学习经典实例》(高清中文版PDF+高清英文版PDF+源代码)
《Python机器学习基础教程》高清中文版PDF+高清英文版PDF+源代码