监控摄像头如何学习并监测你的驾驶行为?四通搬家公司百科
当前“人工智能”最重要的特性的就是具有一定的学习能力。摄像头对司机的行为检测正在变得常见,这种行为检测在以往的传统算法中是难以做到的,但是现在得益于人工神经网络技术,计算机使探头具备了学习人类行为的能力。这也让从车内自检到车外抓拍驾驶员危险行为(打电话、手脱离方向盘、疲劳驾驶等等)成为可能。
北京市新增针对驾驶行为检测的道路视频监控设备
在之前的文章《自动驾驶能否取代人类司机》中,我们向你展示了属于人工智能的计算机神经网络是如何“学习”道路知识的,并且在《监控探头如何识别你的车牌?》一文中我们还提到了“监督学习”一词。
所谓“监督学习”就是人为将标记好目标学习内容的图像样本喂给计算机去学习。比如,我们想让监控探头在一张新拍到的汽车前脸图中自动找到汽车牌照的位置,就需要提前把大量类似的图片人工标记好牌照的位置作为样本和教材去让人工神经网络学习。这样人工标记样本的过程被称为“打标签”。
绿色框是人工标记的车牌位置
既然有“监督学习”,那有没有非监督学习呢?
01
—
非监督学习
想象一下之前识别车牌的例子,想要获得一个强大的人工神经网络车牌检测器,就需要“喂给”计算机人工标记好车牌位置的类似图片作为教材。但是如果这个神经网络需要成千上万甚至数十万的样本图片呢?
事实上,当前需求数万个甚至十几万个学习样本的深度神经网络并不少见,样本数量不足或者样本覆盖的情景不全则会在实际应用中导致识别不准。
这就带来一个问题,面对这动辄十几万个样本图的需求,难道我们真的要每一张图片都用人工去打标签吗?要知道,给车牌的样本图像打标签还是简单的任务,如果是医学CT的自动识别就需要专业的医生亲自上阵去给每张样本图像打标签!这种人工工时费用和时间成本都是极其高昂的,而且几乎都是重复性劳动。
如果让领着机器视觉领域工资的从业人员去给车牌或驾驶员样本图一张一张打标签的话,可以说这家公司无疑是人傻钱多了。不仅如此,如果是医生去给CT样本图片打标签,经过计算,单张医学图像的标注时间就需要15到20分钟,单张图像标注的成本是70元人民币;以需要8万张样本图计算,仅仅是打标签这一项就要花掉560万元和超过两年的时间,这还是每天24小时不停工作的结果!
我们能否去掉打标签这个行为从而节省大量成本呢?如果打标签这一步无法删除,能不能尽可能减少打标签的数量需求呢?换句话说,能不能让计算机先自己学着,遇到实在困难的情况再求助于人类老师标注的样本图?
这样一来,非监督学习就诞生了。
非监督学习的思想其实很简单,就是自动归类。例如,给你几个不同的茶杯,让你从中找出一些关联并按特征分类。那么你肯定可以这样分析:圆形的杯子、方形的杯子、带盖的杯子,不带盖的杯子,透明的、不透明的、材质粗糙的、材质精致的、有花纹的……等等。这就是非监督学习的思想。
非监督学习没有明确的学习目的,也就是说并不要求你从这堆茶杯里找出某一个特定的杯子,仅仅是按特征把它们归类而已。因此若仅就非监督学习来说,其效果也不太容易评估。
非监督学习是一种机器学习的训练方式,它本质上是一个统计手段,可以在没有标签的数据里发现潜在的一些共性结构特征。
聚类分析就是一种无监督学习的方法,它能够从研究对象的特征数据中发现关联规则,可将样本数据分成一个个组(即簇)。同一簇中的对象是相似的,不同簇中的对象则明显不同。这是一种强有力的信息处理方法。
聚类法进行图像分割就是从整图中自动将具有共性特征的物体分别标出来。用术语说,就是将图像空间中的像素点用对应的特征向量表示,根据它们在特征空间的特征相似性,对特征空间进行分割,然后将其映射回原图像空间,得到分割结果。其中,K均值和模糊C均值聚类算法是最常用的方法。
这里简单介绍一下K均值算法步骤:
1、首先从样本数据中选取K个点作为初始聚类中心;
2、其次计算各个样本到聚类的距离,把样本归到离它最近的那个聚类中心所在的类;
3、然后计算新形成的每个聚类的数据对象的平均值来得到新的聚类中心;
4、最后重复以上步骤,直到相邻两次的聚类中心没有任何变化,说明样本分类结束,聚类准则达到最优。
简单地说,就是先选一个最明显的特征,按照这个特征把所有样本分类。然后每一子类选择一个更细节的特征再次按此分类,以此类推,直到不能分了为止。
比如高速公路探头拍摄的大量图片,先分出汽车和树这两大类;然后再看哪些汽车能看到驾驶员,把能看到驾驶员的归为一类;然后再看驾驶员,把驾驶员头部旁边能看到手的归为一类,其他的归为一类。这时非监督学习的分类任务就完成了,接下来就是把所有驾驶员头部旁边能看到手的照片进行人工标记,用监督学习的方法输入另一个深度神经网络进行细节检测,最后交警就能得到这样一个结果:
检测到危险驾驶行为:开车接听手机
当然,这只是一个简单的示例。但是无论如何,非监督学习都将繁琐的人工打标签任务进行了大量简化。面对数以万计的探头抓拍图,不再需要人类对每一张图片都进行标注,可以先让计算机对所有样本图通过聚类算法各自分类,最后选取我们需要的具体一类再人工标记并输入神经网络进行监督学习的训练。
其他典型案例
1、医学CT扫描
在实际应用中,一个典型的案例就是对CT照片的自动筛查。借助非监督学习,大量未经人工标注的颅脑CT扫描图片可以直接作为样本输入聚类网络,通过有针对性的改进聚类算法,具有颅内出血特征的CT扫描图就可以被自动分类标注并筛查出来!
另外,结合监督学习与非监督学习,再配合针对CT的3D建模技术,人工智能系统甚至能够比人类肿瘤专家更好的预测出哪些患者的肺癌会复发。
当下,医学影像AI已经开始“击穿”我国一些医院辅助科室的人类饭碗了。
2、洗钱
洗钱行为跟普通用户的行为是不一样的,到底哪里不一样?
如果通过人为去分析海量的银行储蓄信息是一件成本很高很复杂的事情。但我们可以通过这些行为的特征对用户进行自动分类,就更容易找到那些行为异常的用户,然后再人工介入并深入分析他们的行为到底哪里不一样,是否属于违法洗钱的范畴。
通过无监督学习,我们可以快速把行为进行分类,虽然我们不知道这些分类意味着什么,但是通过人工筛查这种自动分类的结果,可以快速排除正常的用户,更有针对性的对异常行为进行深入分析。
3、推荐系统
想必你一定清楚,当你在购物平台搜索过一种商品以后,和这种商品相关的各种其他产品就开始在平台首页被推荐给你。部分这些商品就是无监督学习通过聚类推荐出来的。系统会发现一些购买行为相似的用户,推荐这类用户最“喜欢”的商品。
比如很多用户在购买过啤酒之后还购买过零食,这一特点就会被非监督学习的聚类算法自动归为一类,当你购买或者频繁浏览啤酒的时候,系统判定你可能也属于这类人,于是薯片、开心果之类的零食就会被推荐给你。
02
—
3D骨架动作识别
非监督学习的聚类算法的效果并不总是令人满意,尤其是最后分类的结果如果没有我们需要的类别就相当于分类工作白做了。
因此,尤其是在一些具备驾驶辅助功能的车辆上,针对驾驶室内的危险驾驶行为提醒功能来说,仍然需要更精细的学习和训练方法以便识别人类驾驶员一些精细的小动作。
于是基于3D骨骼动作分析的方法就应运而生了。这种技术类似于微软之前推出的Xbox Kinect体感设备,Kinect是所有游戏体感设备中最先进的,它完全不需要玩家手持任何设备,仅仅通过机器视觉就能捕捉并识别玩家的动作。
其中的IR就是多个红外立体传感器
无需玩家手持设备即可感知动作
而驾驶室内的行为检测就类似于Kinect的摄像头,这种摄像头能够通过多个红外线传感器捕捉驾驶员的3D躯体轮廓,然后通过机器视觉技术提取驾驶员的动作骨骼,也就是躯体的核心运动轨迹,然后在虚拟的三维空间中重建这个动作,最后对驾驶员的三维姿态行为进行识别分类,也就是分析并推断这个动作符合具体哪种人类行为特征。同时,根据驾驶员行为规范,驾驶员的一些身体部位必须约束在特定的画面区域,一旦脱离区域则告警提示;例如,双手离开方向盘。
左侧是该动作的骨骼提取
骨架图对手部区域的关注
3D骨架关节点数据是在深度图像学习的基础之上通过估测技术得到的,具有光照变化不敏感的特性。同时,估测技术能够依据人体骨骼结构估算出被遮挡住的人体关节点的空间位置。这样,依赖普通平面图像的动作识别存在的自遮挡问题在一定程度上得到了缓解。由于上述的一些优势,众多学者投入到基于3D骨架动作识别的研究中。在最近的几年中,经过研究者们的努力,许多基于3D骨架节点的动作识别方法被提出来。其中大部分方法使用的是描述姿态的帧级特征。
检测到危险驾驶行为:单手离开方向盘,玩手机
但是,这种方法仍然需要大量的人工标注样本。
03
—
主动学习
既然最后我们仍然需要监督学习来训练能够精细分类并识别动作的目标检测器,那能不能通过结合监督学习与非监督学来克服各自方法的缺陷,又能融合二者的优势呢?
于是主动学习就登场了,作为机器学习的一个子领域,主动学习同样旨在以尽可能少的人工标注样本达到我们需要的目标识别性能。
在人类的学习过程中,通常利用已有的经验来学习新的知识,又依靠获得的知识来总结和积累经验,经验与知识不断交互。同样,机器学习模拟人类学习的过程,利用已有的知识训练出模型去获取新的知识,并通过不断积累的信息去修正模型,以得到更加准确有用的新模型。不同于被动学习被动的接受知识,主动学习能够选择性地获取知识。
通过具有一定基础知识的初始模型以及一个合理的筛选策略,主动学习能够在大量未经标注的样本中挑选出少数最具有价值、和学习目标最相关的未标注样本交给人类专家去打标签,然后通过这些已经打上标签的最有价值的样本再去更好的学习。不断迭代这个过程就能在获得最佳结果的同时,将人工成本降到最低。
一般的主动学习步骤是:
每轮开始的时候都有一个当前的模型(可以是预训练的或者根据已有模型训练的)
确定一个询问选择策略(query selection strategies)
找出最有信息量的样本
通过专家对数据进行标注
将新标注的数据加入到训练数据集中
基于当前的数据再训练模型
重复以上迭代,直到模型的性能达到目标条件或者已经没有条件再去标注数据了
简而言之,就是计算机先用已有的知识自己学,把最典型最困难的题标出来请教人类老师,得到解答后就能更高效的学习这个领域的新知识了。
这个不断迭代优化的过程用领袖的话说,就是“在战争中学习战争”,而不是一直在军事学院听教授讲课。
主动学习作为一种在成本和效果之间的良好平衡,近几年受到了商业公司和专家们越来越多的关注,市场需求旺盛。
当然了,和人类这样具备无比强大的“元学习”能力(也就是高速的万能学习能力)的智慧生命来说,目前的计算机学习能力依然是非常羸弱的,但是胜在耐力,不怕重复性劳动。
随着由语义学习“跨界”而来的新型Transformer神经网络模型进入图像识别领域,以往的机器视觉研究被注入了新的思路与洞见,借助新型神经网络模型的小样本学习开始蓬勃发展;用不了多久,对人类各个领域的各种行为动作的高效识别与分类将变得无处不在。