我正在设计一个信息亭,其中包含隐藏在信息亭内的手机。我想知道是否可以使用手机的 VGA 摄像头作为传感器来检测何时有人站在信息亭前。
使用 VGA 摄像头进行运动检测的代码需要哪些软件组件(例如 Java、API、蓝牙堆栈等)?
我正在设计一个信息亭,其中包含隐藏在信息亭内的手机。我想知道是否可以使用手机的 VGA 摄像头作为传感器来检测何时有人站在信息亭前。
使用 VGA 摄像头进行运动检测的代码需要哪些软件组件(例如 Java、API、蓝牙堆栈等)?
显而易见的选择是使用人脸检测。但是您必须对此进行校准,以确保检测到的人脸距离信息亭足够近。可能是使用图片中人脸的相对大小。这可以使用广泛使用的opencv lib 来完成。但是,由于此信息亭将部署在您几乎无法控制照明的地方,因此很有可能出现误报和误报。可能您还想考虑将接近传感器与人脸检测结合使用。
根据平台是什么,使用选项的信息亭会有所不同……但假设下面有 linux,你应该看看OpenCV library。如果它有任何用处 - 这是我有趣的实验的链接,以获得用于阅读长网页的“点头控制界面”。
说到误报——甚至更糟——误报——在光线不好或不寻常的角度的情况下,机会是相当高的。因此,您需要通过一些后备机制来补充它,例如默认情况下存在的屏幕按钮“按此处开始”,然后使用不活动超时和面部检测来避免只有一个信息输入向量。
另一个想法(取决于光线条件)可能是测量图片中的总光量 - 自然光应该只引起缓慢的变化,而靠近信息亭的人会导致快速的光线变化。
在j2me(手机java)中,可以使用mmapi(移动媒体api)来截取摄像头画面。
大多数手机都支持这一点。
@Andrew 对 OpenCV 的建议很好。有很多运动检测项目。但是,我建议添加一个便宜的 CMOS 相机而不是手机相机。