行为识别是一个计算机领域的研究方向。这个方向研究让计算机理解人的动作。人的动作包括走路、跑步、挥手。这些动作发生在视频里。计算机需要看视频然后说出人在做什么。这项技术很有用。它可以用在很多地方。商店可以用它看顾客在做什么。医院可以用它看老人是不是跌倒了。学校可以用它看学生是不是在认真上课。工厂可以用它看工人操作对不对。所以很多人研究行为识别。
研究行为识别需要很多知识。需要知道计算机怎么看见东西。计算机看东西和人的眼睛不一样。计算机看到的是数字。视频是一张一张图片组成的。每一张图片有很多小点。每一个小点有颜色。计算机记录这些颜色的数字。计算机要处理这些数字。它要从数字里找到规律。这个规律能告诉计算机人的动作是什么。找规律需要方法。这个方法就是算法。研究者设计了很多算法来做行为识别。
早期的算法比较简单。研究者先让人站在视频里。计算机找到人的位置。计算机跟踪人的身体。它看人的手怎么动。它看人的脚怎么动。计算机记下这些动的方向。计算机把这些动的方向和之前记下的动作比较。如果方向和某个动作一样,计算机就说人在做这个动作。这个方法有时候有用。但是这个方法有问题。视频里背景很乱。人多了就不好找。人的衣服颜色变了也不好找。光线暗了也不好找。所以研究者想更好的办法。
后来研究者用深度学习。深度学习是新的方法。它模仿人脑的工作方式。人脑有很多神经元。神经元连接在一起。深度学习也有类似的结构。这个结构叫神经网络。神经网络有很多层。每一层处理信息。第一层看视频的简单东西。比如第一层看边边角角。第二层看简单形状。比如圆形方形。第三层看复杂形状。比如眼睛鼻子。一层一层往上,看到的东西越来越复杂。最后几层就能看懂人的动作。深度学习需要很多数据。数据就是很多视频。视频上标了人在做什么。比如一个视频里人在跑步,就标上“跑步”。计算机看很多这样的视频。计算机自己学习规律。看的数据越多,计算机学得越好。
深度学习用的网络有很多种。有一种网络叫三维卷积网络。普通卷积网络看图片。三维卷积网络看视频。视频比图片多一个时间维度。三维卷积网络同时看很多张图片。它看图片怎么变化。它从变化里知道动作。比如挥手这个动作。一张图片里手在左边。下一张图片里手在右边。再下一张图片手又回到左边。这个变化就是挥手。三维卷积网络能学会这个。另一种网络叫双流网络。双流网络有两个部分。一个部分看单张图片的样子。它看人的姿势。比如人是站着还是坐着。另一个部分看图片之间的光流。光流表示物体怎么运动。光流是计算出来的。它表示像素点怎么移动。把两个部分的结果合起来,就知道动作是什么。还有网络叫时序网络。时序网络专门处理时间顺序。它认为动作的顺序很重要。比如“坐下”和“站起来”顺序相反。时序网络能记住之前看到的东西。它用记忆来判断现在的动作。
研究者不断改进这些网络。他们让网络变得更准。他们让网络跑得更快。他们让网络用更少的数据。他们让网络在手机上也能用。这些改进很难。研究者要做实验。他们写代码实现网络。他们找很多数据训练网络。他们测试网络的效果。测试的时候用新的视频。这些视频网络没看过。看网络能不能说对动作。如果说对的多,网络就好。说对的少,网络就不好。不好的时候就改。改网络的结构。改学习的方法。改训练的数据。一直改到网络表现好为止。
行为识别现在还有很多问题。一个问题是视角变化。摄像头从上面拍和从侧面拍不一样。同一个动作看起来不同。计算机可能认不出来。另一个问题是遮挡。有时候人会被挡住。比如一个人走到树后面。计算机看不到整个人。只看到一部分身体。这样很难判断动作。还有一个问题是动作的区分。有些动作很像。比如“走路”和“慢跑”差不多。计算机容易搞混。还有一个问题是实时性。很多地方需要马上知道动作。比如监控系统发现打架要立刻报警。如果计算机想很久就晚了。所以网络要又快又准。
为了解决这些问题,研究者想了很多办法。对于视角变化,他们用多个摄像头。或者训练网络看不同角度的视频。对于遮挡问题,他们让网络关注身体的关键点。关键点比如肩膀、手肘、膝盖。即使身体被挡住一部分,关键点可能还能看到。网络根据关键点猜动作。对于动作区分,他们用更细的标签。不是只标“走路”,而是标“快速走路”、“散步”。数据更细,网络学得更细。对于实时性,他们设计更小的网络。小网络计算快。他们也用更好的硬件。比如专门的图形处理器。
行为识别和别的技术结合会更好。它可以和人脸识别结合。先知道是谁,再看他在做什么。它可以和语音识别结合。既看动作,又听声音。这样更明白人在干什么。它可以和机器人结合。机器人看懂人的动作,就能和人一起工作。比如人指一个东西,机器人就去拿。这些都是未来的方向。
做毕业论文需要选一个具体问题。不能研究整个行为识别。要研究里面的一个小点。比如研究怎么处理遮挡情况。比如研究怎么用很少的数据训练网络。选好问题后,要读很多论文。知道别人已经做了什么。别人有什么方法。这些方法有什么优点。有什么缺点。然后在别人的基础上想新办法。新办法要有一点不同。要比别人的办法好一点。好一点就可以。接着实现新办法。写代码做实验。收集结果。把结果和别人的方法比。用数字证明新方法更好。最后写下整个过程。为什么要研究这个问题。别人做了什么。自己的方法是什么。实验怎么做。结果是什么。这些就是毕业论文的内容。
写毕业论文要认真。格式要符合学校要求。文字要通顺。图片要清楚。数据要真实。不能抄袭别人的东西。用自己的话写。做研究很花时间。可能失败很多次。不要着急。一点一点做。最后一定能完成。行为识别是一个有用的技术。研究它很有意义。能让计算机更聪明。能让生活更方便。