图像处理监控摄像头

时间:2013-11-23 15:02:06

标签: image-processing

我在面试时得到了这个问题,并认为我真的搞砸了。我想知道别人会怎么做,所以我可以从这次经历中学习。

您在机场的监控视频中有一张图片,其中包括等待办理登机手续的人员。您必须评估线路是否很大/拥挤,因此需要额外的职员。你可以假设任何可以帮助你回答的事情。你会怎么做? 我告诉他们我会尝试

  • 通过边缘检测对包含其他人的区域进行分段
  • 对身体轮廓使用假设,例如相对高度/宽度,以去除不需要的边缘
  • 使用颜色知识;但后来他们问怎么做,我不知道

3 个答案:

答案 0 :(得分:2)

你没有提到一个可以轻松识别站在队列中的人的事情 - 事实上他们不会去任何地方(至少,不是很快)。我会这样做(警告:包含糟糕的Blender图形):

你说我可以承担任何事情,所以我会假设机场的地板是一个漂亮的均匀绿色。让我们每隔10秒拍摄一次队列快照:

queue at time t=0

queue at time t=10s

queue at time t=20s

我们可以使用颜色范围过滤器来识别每个图像中空白的地板区域:

empty floor area at time t=0s

empty floor area at time t=10s

empty floor area at time t=20s

然后通过计算每个图像中的最大像素值,我们可以消除只是在周围而不是队列的一部分的人。从这张图片计算队列长度应该非常简单:

combined floor space images, showing queue length

有几种改进方法。例如,在圣帕特里克节,都柏林机场的绿色可能不是一个好的选择。方格瓷砖与前景对象分离会更加困难,但结果会更加可靠。使用红外热像仪检测热量模式是另一种选择。

但是一般方法应该相当稳健。绝对没有必要尝试识别个人的轮廓 - 当人们站在一起时,这真的非常困难。

答案 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,这是由一个人造成的。

当这种情况发生在太多的空间时,它会很拥挤,你需要更多的职员办理登机手续。

此处理方式比尝试识别和计算个人更加强大,并且可以使用相当于行的分辨率/每人的低像素数。