在现实很多场景里面诸如:车站、地铁、商超等人群较为密集的场所容易出现踩踏等危险事件,对于管理层面来说,及时分析计算人流密度,对于潜在的危险及时预警能够最大程度上防患于未然,这里主要就是基于这样的想法开发构建基于卷积神经网络模型的密集人群估计分析系统,首先看下效果图:
简单看下数据集:
标注文件如下:
标签解析构建实现如下:
def parseLabel(labelData="train_label.csv", save_path="labelMap.json"):
"""
解析构建标签数据
"""
df = pd.read_csv(labelData)
data = df.values.tolist()
data_dict = {}
for one_list in data:
one_path, one_label = one_list
data_dict[one_path] = one_label
with open(save_path, "w") as f:
f.write(json.dumps(data_dict))
模型参数截图如下:
最开始的时候我训练了500次迭代,loss变化如下:
整体已经趋于平稳了,但是最终的loss值还是比较大的,就像加大训练周期,这里构建了3000轮迭代计算,如下:
这时候可以看到效果已经是很不错的了,日志如下:
接下来加载训练好的模型,进行测试分析如下:
从评估指标来看效果还是非常出色的。
为了方便使用模型,这里开发了可视化界面,如下:
为了直观分析模型的计算依据,这里基于GradCAM计算了热力图如下: