项目在Pytho 3.6.8版本, ubantu下运行。
店铺内往往不止一个摄像头,多摄像头的布置有利于多角度监控店内客流情况,但这为实时在店人数的统计带来不便,因为摄像头覆盖的区域往往有所重叠,而且重叠区域可能由于货架遮挡而存在人数不匹配的情况,如何统计重叠区域的人数成为一个问题。本项目通过计算透视变换矩阵,将摄像头1画面中的人头/人脚坐标映射到摄像头2,通过计算映射点和摄像头2实际点的距离,可以知道哪些点是位于重合区域的点,从而便于后续的人头统计工作。
- 需要安装的库见
./requirements.txt
- 对人头进行映射,全局变量设置见
./config_head.py
- 对人脚进行映射,全局变量设置见
./config_foot.py
find_matrix.py
根据预先选定的摄像头1的标定点和摄像头2的匹配点坐标,计算透视变换矩阵point_mapping.py
根据透视变换矩阵,将摄像头1的人头/人脚坐标映射到摄像头2的画面中,并生成包含映射点的视频。
example.py
支持两种模式(人头映射/人脚映射),可以通过导入不同的全局变量设置来进行选择。- 值得注意的是,对于人头的映射仅限于
./assets_head/area_1.jpg
和./assets_head/area_2.jpg
标出来的多边形的范围,该区域是两个摄像头均可见的重叠范围。
- 可以选取更多合适的标定点和匹配点来训练透视变换矩阵,只需要将相应的xml文件放入对应的文件路径即可。