不用采集规则就可以采集(机器学习里的获取数据样本数据样本从哪里来?(上))
优采云 发布时间: 2021-10-19 20:05不用采集规则就可以采集(机器学习里的获取数据样本数据样本从哪里来?(上))
一、背景
当前,工业互联网蓬勃发展,企业也在进行数字化、智能化转型。在智能化方面,安防视频监控是最重要的智能化内容。要想实现智能化,需要计算机视觉能力的加持。现阶段,人脸、人体、车辆等相关算法在受限场景(如*敏*感*词*)下可以达到商用标准。但是,在智慧社区、智慧园区、工业生产等领域,存在很多碎片化的场景,比如垃圾识别、钓鱼等。检测、广场舞识别、垃圾识别等,这些碎片化场景智能化遇到的最大挑战就是训练数据集的获取。与人脸、人体、车辆首先是政府和*敏*感*词*部门需要的。早年的天网和雪亮项目也积累了大量的视频监控数据,也可以作为AI算法的原材料。但是,在前面提到的碎片化场景中,并没有很好的积累,也没有更好的方法来采集这些数据样本。
二、 数据样本从何而来
机器学习的前提还是需要大量的样本数据。样本数据的获取和标记或多或少需要人工参与。所以,在视觉算法圈里,有句话叫:“人多,智者多”,虽然是个玩笑,但也体现了人工在机器学习中的重要性。下面列出了一些获取数据样本的方法,仅供参考。
1. 手动站点采集
当完全没有数据样本时,可以利用人力资源在真实环境中拍照采集。比如我要识别电动车,那我可以拍遍大街小巷的电动车;想鉴定各种花,也可以去公园拍各种花。手工采集的优点是可以获得比较真实的样本,缺点是劳动强度大,有一定的适用范围。比如一些不正常的识别(火、持刀)不适合这种手动采集的方法。另外,手动字段采集的数据也有限,训练出来的模型泛化能力不强。
2.网上获取的公开数据
互联网上获取的公开数据分为两部分,一是机器学习的公开数据集,二是搜索引擎检索到的结果。更不用说公开的数据集了,大家拿到的都是一样的,没有区别。虽然从搜索引擎找到的图片与真实场景存在一定差距,但仍然可以作为重要的数据源,对模型的训练有积极的帮助。搜索引擎通常会搜索成百上千个样本数据。完成模型训练的初始冷启动并不难。
3.人造场景
对于一些不方便去网站采集的低频或者异常情况,我们可以人为的创建一些场景,然后拍照或者录像记录下来作为数据样本进行标注。比如,要识别不戴安全帽、不穿工作服、打架的行为,就可以人为地“行动”。虽然表现不是那么真实,但总比没有数据要好得多。对于一些成堆的材料和垃圾的识别,手动创建场景非常方便。和上面手工站点采集的缺点一样,人工制造的场景数据也非常有限,训练出来的模型泛化能力不足。
4.现场视频提取
对于一些有现场监控视频的情况,可以从视频中提取数据样本进行后续的标注和训练。这里可能存在一个问题,即当要检测的目标物体或事件只占整个视频的很小一部分时,从中提取有效部分仍然是一项繁重的任务。
5.甲方客户提供数据
在某些情况下,虽然发生异常事件的概率不高,但由于这些异常事件的影响比较大,甲方的客户端已经积累了过去的历史视频数据。这种情况在技术上当然是理想的,但客户通常希望保护他们的数据。通常的处理方式是通过私有化部署,在客户的私有网络中训练,训练出来的模型也是客户自己的产权。乙方通常无权将这些模型用于其他目的(除非有其他合作。条款)。
6.购买第三方数据集
如果其他方法无法获得足够的有效样本,或者获得的样本不能保证训练模型的准确性,那么你也可以找第三方购买特定场景的数据集。这种方法的缺点是要花钱,而且在碎片化方面没有太多的数据积累。
三、机器辅助采样和标记
在实际的ToB/ToG项目中,最常见的场景之一:用户现场部署*敏*感*词*,监控视频数据全部可用,需要新的AI模型检测一些异常行为和事件。但是,这种“异常”并不是普遍存在的,与客户自身的业务场景密切相关。例如,城管注重道路占用作业;业主注意抛物线高空和电动车进入电梯;在校园场景中,他们关注校园欺凌和早恋。互联网上没有这些场景的公开数据集,也没有公开的成熟模型。显然,您需要自己重新训练数据。然而,在现有的视频监控视频中,
在正常情况下,监控视频在画面静止时会是静态的,当它处于活动状态时也是如此。静止时只保留选中帧的一张截图,有活动时可以保留选中帧的所有截图。典型的做法是使用运动检测算法进行初步筛选,剔除无用信息。比如要提取垃圾桶是否满的样本数据,只能关注静止图片的瞬间(垃圾桶站不会一直活跃,长期静止图片只需要一张图片);如果要关注投掷垃圾的行为,那么只要有活动时关注屏幕,并通过运动检测的初步筛选,
除了运动检测,还有没有其他方法可以通过机器辅助的方法高效提取这些数据样本?一种思路是手动选择一个小样本集,比如几百个,生成一个小模型,然后通过这个小模型过滤海量的监控视频数据,然后利用选择的样本对模型进行优化,制作模型越来越精确。更精准的模型反过来更高效地提取数据样本,形成增强循环,可以形成手动冷启动加机器辅助的滚雪球模式,如下图所示。
在这里你可能会有一个疑问:如果你用几张图片训练一个小模型,然后用小模型过滤掉的数据训练它,如果不添加其他数据集,结果是不是不可能超越这个小模型?(数据集都是小模型检测出来的)。我们需要在这里做一些小技巧。我们知道,对于一个算法模型,通常有召回率和准确率两个指标来评估。在小模型筛选阶段,我们其实需要比较高的召回率,所以我们会把置信度阈值设置的比较低。这样,即使有很多误报(准确率低),也没有关系。当样本被标记时,将手动纠正错误以消除误报。然而,小模型的漏报确实会影响未来训练模型的召回率。这时候就需要其他来源的数据集来补充。
四、总结
本文针对碎片化场景下智能算法应用的数据样本采集问题,提出了一种通过运动检测和小模型过滤历史监控视频的方法。这里的机器辅助方法不仅适用于数据集的采集,也适用于数据的标注,利用一些小样本训练小模型进行预标注。智慧社区、智慧园区、智慧门店、智慧家庭等一系列智慧应用已逐渐渗透到我们的生活中。碎片化的智能场景将成为未来的主流,数据作为智能原材料将成为未来最有价值的东西。越早积累,越能赢得比赛。