李毅和秦刚都两眼通红发涩,看录像是现代刑侦的一门必需技术手段,但也是一项体能和意志煎熬的工作。
一整夜努力,找出了三个适合的人选。
李毅跟小卫要了眼药水,俩人都躺平在椅子上滴眼睛。
“你说我们会不会漏掉监控没有拷贝,一晚上就整了这么三个人出来,感觉跟昨天我们的分类产品一样,木有啥期望啊。”秦刚道。
“要不然了,我们拷贝的只是其中六分之一不到的摄像头录像,全拷贝回来,这一周都耗这上面,也不见得能多几个人出来,这是几条必经路线,如果没有我估计是真的没有,完美避开,现在我心里就一上一下的有点慌。”
李毅所言不假,如果这三个人都排除掉,昨天这场大范围大规模的行动,大概率是雷声大雨点小了。
“假如现代人工智能的技术突飞猛进,是不是能让计算机代替我们完成这事儿?就是说,有这么一套软件系统,我给出目标画像,不光是人还有车牌等等,再给出视频源文件,然后由计算机自动给我们作对比,我们就喝着茶吃着瓜,然后叮一声结果就出来了。”
秦刚眨巴眨巴眼睛,刺眼的灯光让他不得不又闭上。
“理论上是可以的,其实这个我是真的思考过,需要建模型。视频是由一帧一帧的图像构成,精度越高,每秒的帧数越多。普通的监控一秒25帧,也就是一秒拍了25张像,一个小时9万张。其实我们肉眼扫描跟计算机扫描本质是不一样的,肉眼是凭借对几何图形的直观感觉,计算机则不一样。”
李毅起身在白板上写下几点:
1.图像缩放到一定大小
2.转化为灰阶
3.计算所有像素平均值
4.比较像素的灰度:将每个像素的灰度,与平均值进行比较,大于或等于平均值记为1,小于平均值记为0;
5.计算哈希值:将上一步的比较结果,组合在一起,就构成了一个64位的整数。
“就是说每一张图片都有大小转换后像素化再取值的一个过程,这是一个很大的运算量。比如,我们给定条件:背包、帽子背影或侧面,这是一个很模糊的概念。计算机做对比,首先需要一张底图,那这张底图应该是什么样子呢,我和你背包、戴帽背影应该差不多,小安跟我们有区别,前天晚上见到的老邱跟我们有区别。包的形状帽子的形状,几个因素的综合,需要建一个底图模型库。比较范围也不是整个人全部,是从头部到腰以上,因为背包长度正常不会过腰。然后才是视频里的每一帧图片,每获取一帧就与底图库做一次比较,大约是这么一种模式。如果我们的底图库是100张,一个小时的视频,需要比对900万次,我们拷贝的录像时长10个小时,自己算,这还是一个摄像头。”
秦刚吐了吐舌头,“听着有点吓人。”
小安也来了兴趣,“现在的人脸识别技术不是已经很成熟了吗?一些办公大厦、高铁站,刷脸就能通行。”
“没错,但本质概念还是一样的。高铁站刷脸,是用你真实的人脸和身份证上的人脸作对比,一共就两张图,以身份证照片作为底图。而且有效的人脸范围只需要双眼到下巴这个区间,眼睛以上和下巴以下都是无用数据,用证件照去和抓拍的人脸进行比对,这个对比数据量其实很小,结果都是秒出。”
“是啊,坐高铁进站的都是脸对着摄像头一刷就行,最多一秒。”秦刚道。
“那只是整个过程,实际不需要一秒,对比结果还要通知传感器,传感器发出开闸指令,整体过程大概一秒。”
“那我们现在的难度在哪里。”小安道。
“第一我们没有原型,不过原型库容易建,就是背包和帽子,找一些体型身高不同的人穿戴起来,拍下正面和侧面,这个量不会大,效率高人齐两小时就弄完,难点是第二。”
不知不觉间,好几个事同事都竖起耳朵听着李毅讲解。
“继续继续,别停下来。”小安显得尤为感兴趣。
“我们做的不是静态分析,而是一种动态的行为分析。”
李毅索性站到白板边,写下:行为分析,从校外进入往另一边的围墙走。
“假定一段录像从头开始播,先要对比到进入画面的某个人背包戴帽的特征,这一帧图像的数据算是符合,确定一个原型,这个原型不是底图库的原型,动态的用完就删除。然后要分析是男还是女,一个人的正脸照,在计算机算法里可以识别性别,但侧脸就不清楚,估计不行,但女性需要过滤掉,然后一直到这个原型消失,这算一次行为。”
“懂了,出现和消失,这算一次行为。”秦刚道。
“别打岔。”小安拍拍秦刚。
“对的,出现和消失。那什么叫做消失,我们肉眼看是这个人走进了摄像头的死角或者是走出了拍摄范围,不再出现就算消失。但对计算机数据来讲就有点模糊,电脑只认0和1,看得见存在看不见消失,按这个逻辑就会产生很多误判。”
“为什么了。”小安比较急切。
“如果一个人蹲下来绑鞋带,刚好被植物挡住,算不算消失了?按照0和1的逻辑,肯定算消失,但肯定不对。人可以通过快进往前继续看一段,计算机不能这么做,必须一帧一帧的对比,否则就没有意义对吧。”
周围的同事都点头同意。
“可这个人只是蹲下绑鞋带,实际上没有消失,这与我们设定的行为分析不一致。我们选定的摄像头是在路线上有连续性的,往一个方向过去,A处消失理论上应该在b处出现,如果他没出现,肯定是往其他方向走了。其他方向也一样,只要是向校区后面围墙走,都有连续摄像头,还是应该在我们设定的行为范围内。不过作为一个急于去现场作案的人来讲,不会这样遛弯,他选择这种方式去案发现场,就是为了避开人,尽量少见到人。”
“那应该怎么处理了。”小安道。
“可以做一个意外消失的阈值作为补缺,这个阈值是一个时间,可以延时5秒、10秒、20秒,时长可以自己定。也就是在一个人消失后,计算机自动往后读取阈值范围内的图像帧,如果阈值范围内人还没有出现才算消失。”
“那这样其实可以解决这个问题。”秦刚道。
“看似可以,其实还是存在问题。每个人的行为不一样,就像我说的刚才绑鞋带,这没有一个ISo标准,有人快5秒绑好,有人慢20秒才绑好。再或者,这个人他不是绑鞋带,他刚好有个电话进来,他就蹲在路上听电话,这个场景我们前晚从校园出来时见过。”
李毅看看秦刚,秦刚点点头。
“怎么还有这种嗜好,蹲着舒服吗?”小安又插了一句。
“个人习惯吧,但这里产生的问题是:这个阈值应该设多大才合适。设小了,可能会漏掉了捕捉疑犯的机会,设大了,那非常浪费计算机的计算资源和时间。”
秦刚举起手表示要发言,“如果这个人接电话的时候,不是蹲着,就站着不动,但是打电话时的姿态跟他背包行走的姿态完全不一样了,还能判定是同一个人吗?”
“这一点倒没任何问题,之前讲过,从头部到腰部这个范围,不包括双手,他就是拿着大刀也不影响计算机的逻辑分析。”
“电脑就是个死物,浪费就浪费呗,只要保证结果正确率就行。”小安道。
“系统设计可不是这么考虑的,尤其商业应用系统,时间和计算资源都是成本。即使加大阈值,确定了这个人行为,那他一定是我们要找的人吗?可不一定,这只是一个摄像头的资料,我们的行为设定是要走到墙边,他可以在中途走进教学楼,也可以走进图书馆,还可以走进教工宿舍区等等,所以必须一直比对到最后一个摄像头。”
李毅喝口水继续,“首先,这个数据量和计算量相较普通的人脸识别不可同日而语,一个天量一个地量。其次,原则上来讲,我们从行为确定了一个人,虽然只是背影,但我们想不想看到他的正脸了,一定想。怎么看到,不是用我们的眼睛,是计算机自动为我们找出来,通过背包形状,帽子的形状,人的侧脸,背影,这又是一个模糊算法。而且光从第一份录像数据中人的背影,是很难分析他从哪个方向进入,如果只是华山一条路那当然好办,但真实场景是不可能的,因为他很可能不是走大门进入,而是翻墙。所以必需把每个方向都考虑到,数据量和计算量立即成几何级数的增加。再次,一个晚上怕不会只有一个人背包走过,所以N乘以N真的是海量计算。当然,我不是算法工程师,专业的工程师可能会有更优的思路和算法逻辑,但数据量是摆在这儿的,因为我们是根据模糊的条件去确定一个模糊的人。不过如果真有这样技术对我们帮助一定很大,电脑又不知道累也不会饥饿,撑死宕机,人可是会挂掉的。”
李毅的话音刚落,全办公室的人热烈地鼓起掌来。