我在面试时得到了这个问题,并认为我真的搞砸了。我想知道别人会怎么做,所以我可以从这次经历中学习。
您在机场的监控视频中有一张图片,其中包括等待办理登机手续的人员。您必须评估线路是否很大/拥挤,因此需要额外的职员。你可以假设任何可以帮助你回答的事情。你会怎么做? 我告诉他们我会尝试
答案 0 :(得分:2)
你没有提到一个可以轻松识别站在队列中的人的事情 - 事实上他们不会去任何地方(至少,不是很快)。我会这样做(警告:包含糟糕的Blender图形):
你说我可以承担任何事情,所以我会假设机场的地板是一个漂亮的均匀绿色。让我们每隔10秒拍摄一次队列快照:
我们可以使用颜色范围过滤器来识别每个图像中空白的地板区域:
然后通过计算每个图像中的最大像素值,我们可以消除只是在周围而不是队列的一部分的人。从这张图片计算队列长度应该非常简单:
有几种改进方法。例如,在圣帕特里克节,都柏林机场的绿色可能不是一个好的选择。方格瓷砖与前景对象分离会更加困难,但结果会更加可靠。使用红外热像仪检测热量模式是另一种选择。
但是一般方法应该相当稳健。绝对没有必要尝试识别个人的轮廓 - 当人们站在一起时,这真的非常困难。
答案 1 :(得分:0)
我只会使用人物检测器,例如OpenCV的HOG人物检测: http://docs.opencv.org/modules/gpu/doc/object_detection.html
或潜在的svm与人模型: http://docs.opencv.org/modules/objdetect/doc/latent_svm.html
我会计算队列中的人数......
答案 2 :(得分:0)
我估计空地板的颜色,然后转到标准化颜色空间(如{R /(R + G + B),G /(R + G + B)})。同样对要检查的图像执行此操作,并比较这两个。
我的假设:差异大于阈值T,这是由一个人造成的。
当这种情况发生在太多的空间时,它会很拥挤,你需要更多的职员办理登机手续。
此处理方式比尝试识别和计算个人更加强大,并且可以使用相当于行的分辨率/每人的低像素数。