Intelligent Multi-camera Video Surveillance

Intelligent Multi-camera Video Surveillance
复制标题

DOI:
--
复制
发表时间:
2012-07
期刊:
--
影响因子:
--
通讯作者:
S.L.J. Leysen;T. A. V. D. Laan;P. Hameete
S.L.J. Leysen;T. A. V. D. Laan;P. Hameete
中科院分区:
其他
文献类型:
--
作者:
S.L.J. Leysen;T. A. V. D. Laan;P. Hameete

文献摘要

被引文献

相似文献

视频监控在不同的领域,如公共建筑,地铁站和军事领域。这些系统已经变得越来越具有成本效益,也允许更大的系统。传统上,多个安全摄像头被放置在整个区域,并连接到监视器屏幕。这些屏幕由保安人员监视。不幸的是,人类在监控方面存在某些缺陷。例如,当很长一段时间没有发生任何事情时,人类可能会失去注意力。虽然计算机可能不像人类操作员那样擅长计算机视觉和推理,但它们提供了不同的优势。例如,计算机能够一天工作24小时,一周工作7小时。通过使用自动化智能多摄像头视频监控系统,可以支持安全人员的工作,从而减少监控区域的安全漏洞。对于这个本科项目,项目组开发了这样一个自动化智能多摄像头视频监控系统。特别是,该系统是为监测“海军研究所”(KIM)的“荷兰国防学院”(NLDA)区域而开发的。为了开发该系统,科学的方法与增量,敏捷的开发技术相结合,称为Scrum。每周与小组、主管和领域专家举行会议。该系统由两个应用程序组成:一个用C++和OpenCV编写的客户端和一个用Java编写的服务器应用程序。客户端应用程序连接到安全摄像头,然后将检测移动对象,将其分类为人类或非人类,并确定其相对于摄像头的位置。对于每个检测到的对象,它将把此信息发送到服务器应用程序。此服务器应用程序收集来自客户端的信息,并将这些信息组合成监视区域中的实际对象。然后,它通过使用这些对象的GPS位置历史来检测是否发生可疑情况。这些情况的例子包括有人进入禁区,有人突然开始奔跑,或有人一直跟随另一人或跟随另一人一段时间。在可疑情况下,安全人员会收到警报,并显示相关信息,以便在需要时采取行动。确保系统的代码质量、可维护性和可扩展性是该项目的一个重要方面。我们使用一组不同的工具,确保在整个项目中保持系统的这些属性。在客户端更改图像处理模块或在服务器端添加新的推理规则非常简单。这导致了软件改进小组非常赞赏的5颗星星评级。该系统的另一个重要方面是测试。使用Google Test for C++和JUnit for Java,自动测试了具有简单输入和输出行为的代码部分。更复杂的代码部分使用录制的视频或专门开发的应用程序生成的模拟文件进行手动测试。完整系统的工作测试版实施已经交付,作为概念验证,并且满足了所有最初设定的要求。
Video surveillance is found in different areas, such as public buildings, metro stations and miliary areas. These systems have become increasingly cost efficient, allowing for larger systems as well. Traditionally multiple security cameras are positioned throughout the area, and linked to monitor screens. These screens are monitored by security pesonnel. Unfortunately humans suffer from certain flaws when it comes to surveillance. For example, humans may lose focus when nothing happens for a long period of time. Though computers may no be as good at computer vision and reasoning as human operators, they provide different advantages. For instance, computers are capable of working 24 hours a day, 7 hours a week. By using an automated intelligent multi-camera video surveillance system the security personnel could be supported in their work, allowing for less security flaws in monitoring the area. For this Bachelor project the project group has developed such an automated intelligent multi-camera video surveillance system. In particular, the system was developed for monitoring the 'Netherlands Defence Academy' (NLDA) area of the 'Koninklijk Instituut voor de Marine' (KIM). In order to develop the system, a scientific approach was used in combination with an incremental, agile development technique called Scrum. Weekly meetings were held with the goup, the supervisors and the domain experts. The system consists of two applications: a Client written in C++ with OpenCV and a Server application written in Java. The Client application is attached to a security camera, and will then detect moving objects, classify them as either human or non-human, and determine their location relative to the camera. For each detected object it will then transmit this information to the Server application. This Server application gathers the information from the Clients and combines the information into actual objects in the monitored area. It then reasons about these objects by using their history of GPS locations to detect whether suspicious situations are occurring. Examples of such situations are when a person enters a restricted area, when a person suddenly starts running or when a person has been following another person or a period of time. In case of a suspicious situation the security personnel is alarmed, and relevant information is displayed to allow the personnel to take action if required. Ensuring code quality, maintainability and extendability of the system was an important aspect of the project. Using a diverse set of tools we ensured that these properties of the system were maintained throughout the project. It is simple to change image processing modules in the Client, or add new reasoning rules to the Server. This resulted in a much appreciated 5 star rating from the Software Improvement Group. Another important aspect of the system was testing. Using Google Test for C++ and JUnit for Java the parts of the code with simple in- and output behavior were automatically tested. The more complex code parts were tested manually using recorded video, or simulation files generated with a specially developed application. A working beta implementation of the complete system has been delivered as a proof of concept and all initially set requirements were fulfilled.