在施工场景中,一些违规操作总是会造成潜在的安全事故等。目前的违规防范主要采用人盯人的方式,这种传统方式主观性强,还造成严重的人力资源浪费。得益于计算机视觉和人工自能的发展,目前正在探索基于人工智能的异常行为识别模型研究,希望研究成果能切实的应用于真实的场景,解放人力成本。说到行为识别模型,在深度学习之前,iDT是最为经典的一种方法,利用光流场获取视频序列的一些轨迹,再沿着轨迹去提取类似HoF和HoG特征并进一步通过Fisher Vector编码,最后送入SVM进行分类。目前深度学习是主流方法,解决思路有两大类:抽取时空特征进行识别,主要有3个流派:CNN-LSTM、双流法和C3D,如下图所示;另一种是抽取骨架信息再训练的姿态估计方法。
双流法的效果较好,但光流等步骤使得速度很受限;C3D 网络总体来说在准确率上比双流法低几个百分点,但由于采用更加简洁的网络结构且提供端到端的训练,时间效率上更快。现有的行为识别方法还未能在分类的准确性和运行速度都达到比较好的效果,所以在保证分类效果的前提下,提高网络的运行速度是当前一个很重要的研究课题。而真正的实用化,时间效率是一个非常重要的度量指标。目前本人认为最佳平衡的是ECCV2018上的一篇文章, "ECO: Efficient Convolutional Network for Online Video Understanding " 。ECO在快且好的前提下,网络结构设计得益于双流法和C3D,摒弃了光流场支流并采用了端到端的训练方式。ECO网络的输入为稀疏采样的视频帧,经过共享的2D CNN网络获得这些帧的堆叠的feature map,再经过一个3D CNN网络得到视频级别的特征表示,最后经过分类器得到分类结果。
ECO网络与双流法的TSN(Temporal Segment Networks)网络类似,输入数据不是单帧图像,而是从视频序列中稀疏采样得到一个序列(即一个时序邻域内仅使用单帧图像),以此避免相邻帧间的冗余信息,这样的随机采样策略可以在训练中引入更多的多样性并提高泛化能力;但为了获得长距离的时间结构信息,ECO采用了堆叠feature map 和3D 卷积进行融合,而不是TSN中的时空分数融合。具体的网络结构如下图:
一个视频对应一个标签。考虑GPU的批量操作,输入batch段视频和对应的标签。首先每一个视频被均匀分为N个片段(segment),从每个segment中随机采样一帧RGB图像,得到每一个视频的通道为 N ∗ 3 N*3 N∗3,则ECO网络的输入为 b a t c h ∗ ( N ∗ 3 ) ∗ W ∗ H batch*(N*3)*W*H batch∗(N∗