人工智能可以做点什么?唐山事件的视频AI识别检测项目 <附代码与动图> | 万物AI

本文主要是介绍人工智能可以做点什么?唐山事件的视频AI识别检测项目 <附代码与动图> | 万物AI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 作者:韩信子@ShowMeAI
  • 声明:版权所有,转载请联系平台与作者并注明出处

在公众号 ShowMeAI研究中心 回复「唐山」,获取 项目代码 & 用于训练的视频 & 运行结果视频/动图。项目涉及知识点见文末推荐阅读

6月10日凌晨,河北唐山一烧烤店,发生多名男子殴打他人的刑事案件。唐山事件及后续网络实名举报案件,引发了全网的关注与热议,相关话题登上各大网站热搜榜。据报道,唐山市开展为期半个月的夏季社会治安整治「雷霆风暴」专项行动,全面整治社会治安领域突出问题。

安全感来自于对一个个具体案件的处置。希望当地司法机构持续发力,让敢于以身试法者受到严惩,让包括女性在内的广大群众感受到公平正义,对社会安全度有着更强的信赖感。我们也借这个机会讨论下,在推进社会安全的过程中,人工智能技术有哪些应用场景,可以做出怎样的贡献

社区安全与智能化管理

社区是城市的关键组成部分,社区治理是围绕社区场景下的人、地、物、情、事的管理与服务。社区安全与智慧城市是大家一直在提的主题。让我们回到技术层面,AI能否在其中发挥作用?形如「唐山事件」的危害行为,是否可以第一时间被AI识别到并进行响应呢?

可以。使用摄像头记录下来的信息,AI与计算机视觉自动化可以快速响应并发挥作用

事实上,随着城市化的快速推进及人口流动的快速增加,传统社区治理在人员出入管控、安防巡逻、车辆停放管理等典型场景下都面临着人力不足、效率低下、响应不及时等诸多难题。而人工智能技术代替人力,实现人、车、事的精准治理,大幅降低人力、物质、时间等成本,以最低成本发挥最强大的管理效能,有效推动城市治理向更「数字化、自动化、智慧化」的方向演进。

我们下面借助于百度 paddlepaddle 针对智慧社区的实时行人分析工具 PP-Human 做一个介绍,底层的深度学习算法,基于行人检测与跟踪技术,实现26种人体属性分析以及摔倒等异常行为识别,可以在未来这样的类似场景下发挥作用,提供多一份保障。

部分社区智能化应用效果

1)社区人员信息识别

传统社区视频监控80%都依靠人工实现,随着摄像头在社区中的大规模普及,日超千兆的视频图像数据、人员信息的日渐繁杂已远超人工的负荷。

深度学习算法中的人体跟踪和属性识别功能可以实现社区视频监控的结构化理解,实时识别进出小区的人员的性别、年龄、衣着打扮等多种属性并记录其运动轨迹,应用AI 算法代替人力进行社区管理,具备更高的效率、及时性和更好的准确度,针对出入口管理、快速寻人、轨迹分析等都可以快速响应。

下图为上海天覆科技的街道人员属性识别应用案例:

2)行为及异常行为检测

社区的安全防护是重中之重,我们希望AI可以高效保障社区居民人身安全。传统的方法主要依靠人工视频监控,配以人力巡逻,有时会有异常情况响应不及时的问题,对人力消耗也非常大,比如这次的「唐山事件」。

如果应用 关键点+时空图卷积网络 ****的技术,可以很快地对伤者摔倒及打架暴力事件进行检测,加快报警与救援,提升社区安防系统智能化。

如下为办公区域摔倒检测的示例:

手把手AI代码:社区智能化组件应用于「唐山事件」

下面应用jupyter notebook对本次「唐山事件」的视频进行AI识别检测。

1)环境配置

我们借助于百度paddlepaddle针智慧社区的实时行人分析工具 PP-Human完成后续检测功能,如下为 PP-Human 的技术全景图。

本次应用依赖百度 PaddleDetection 工具库,要求版本 >= release/2.4,我们在 jupyter notebook 中新建一个cell,并克隆 PaddleDetection 仓库到本地。

 # 克隆PaddleDetection仓库到本地
!git clone https://github.com/PaddlePaddle/PaddleDetection.git

下面我们切换到 PaddleDetection 目录下(注意在 jupyter notebook 中通过%cd魔法命令完成路径切换),并根据 requirements.txt 中的要求去安装依赖的工具库,具体的操作代码如下:

 # 安装其他依赖
%cd PaddleDetection
!pip install -r requirements.txt

依赖安装完成后我们编译安装 PaddleDetection,命令如下

# 编译安装paddledet
!python setup.py install

2)预训练模型下载

我们在社区智能化场景下,不同的任务其实由不同的计算机视觉底层应用支撑,比如社区人员信息留存涉及「目标检测」和「属性识别」等视觉任务应用;摔倒及异常(暴力打架等)识别涉及「目标检测」、「关键点检测」、「行为识别」等视觉任务应用。

这些任务应用已经有成型的预训练模型可以直接下载和加载应用(当然我们也可以在自己的社区场景下采集更匹配的真实数据,标注后对预训练模型进行调优),我们在这里直接下载可用的预训练模型。

其中,模型能进行的属性分析包含26种不同属性,具体如下:

- 性别:男、女
- 年龄:小于1818-60、大于60
- 朝向:朝前、朝后、侧面
- 配饰:眼镜、帽子、无
- 正面持物:是、否
- 包:双肩包、单肩包、手提包
- 上衣风格:带条纹、带logo、带格子、拼接风格
- 下装风格:带条纹、带图案
- 短袖上衣:是、否
- 长袖上衣:是、否
- 长外套:是、否
- 长裤:是、否
- 短裤:是、否
- 短裙&裙子:是、否
- 穿靴:是、否

行为识别主要支持摔倒检测,也对打架、抽烟、玩手机、睡觉等行为进行了检测。

下载预训练模型的代码如下(注意请在 jupyter notebook 的 cell 中运行):

 #下载目标检测模型
!wget https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_pipeline.zip
#下载属性识别模型
!wget https://bj.bcebos.com/v1/paddledet/models/pipeline/strongbaseline_r50_30e_pa100k.zip
#下载关键点识别模型
!wget https://bj.bcebos.com/v1/paddledet/models/pipeline/dark_hrnet_w32_256x192.zip
#下载行为识别模型
!wget https://bj.bcebos.com/v1/paddledet/models/pipeline/STGCN.zip

接着我们把下载好的模型压缩包文件解压缩到 output_inference文件夹

 #解压至./output_inference文件夹
!unzip -d output_inference mot_ppyoloe_l_36e_pipeline.zip
!unzip -d output_inference strongbaseline_r50_30e_pa100k.zip
!unzip -d output_inference dark_hrnet_w32_256x192.zip
!unzip -d output_inference STGCN.zip

3)配置文件说明

此次应用的paddle应用,相关配置位于deploy/pphuman/config/infer_cfg.yml文件中。

对应的任务类型和功能如下表所示:

输入类型功能任务类型配置项
图片属性识别目标检测 属性识别DET ATTR
单镜头视频属性识别多目标跟踪 属性识别MOT ATTR
单镜头视频行为识别多目标跟踪 关键点检测 行为识别MOT KPT ACTION

我们本次应用,主要包含下述功能:

  • 社区人员信息留存:单镜头视频的属性识别
  • 摔倒及异常动作检测:单镜头视频输入的摔倒/动作识别

大家可以根据视频长短调整部分参数,比如动作识别中可以将 deploy/pphuman/config/infer_cfg.yml 文件中的 max_frames 和 display_frames 修改如下:

ACTION:model_dir: output_inference/STGCNbatch_size: 1max_frames: 2500display_frames: 2500coord_size: [384, 512]

4)模型运行与预测

模型预测参数选择分为两部分:

  • 功能选择:将对应参数设置为 True
    • 属性识别:enable_attr
    • 行为识别:enable_action
  • 模型路径修改:设置对应任务 (DET, MOT, ATTR, KPT, ACTION) 的模型路径
    • 例如 图片输入的属性识别:
--model_dir det=output_inference/mot_ppyoloe_l_36e_pipeline/ attr=output_inference/strongbaseline_r50_30e_pa100k/
社区人员信息识别

如下运行代码,其中「唐山.mp4」为事件片段视频,可以在公众号 ShowMeAI研究中心 回复「唐山」获取 网盘地址

 #视频行人属性识别
!python deploy/pphuman/pipeline.py \--config deploy/pphuman/config/infer_cfg.yml \--model_dir mot=output_inference/mot_ppyoloe_l_36e_pipeline/ attr=output_inference/strongbaseline_r50_30e_pa100k/ \--video_file=../唐山.mp4 \--enable_attr=True \--device=gpu

截取的识别结果可视化如下所示:


摔倒与异常行为检测

如下运行代码,其中「tangshan.mp4」为事件片段视频,可以在公众号 ShowMeAI研究中心 回复「唐山」获取 网盘地址

#摔倒与异常行为检测识别
!python deploy/pphuman/pipeline.py \--config deploy/pphuman/config/infer_cfg.yml \--model_dir mot=output_inference/mot_ppyoloe_l_36e_pipeline/ kpt=output_inference/dark_hrnet_w32_256x192/ action=output_inference/STGCN \--video_file=/home/aistudio/tangshan.mp4 \--enable_action=True \--device=cpu

推荐阅读

关于社区安全检测涉及的视觉模型算法知识,请关注ShowMeAI的后续文章,我们将展开讲解。也推荐大家学习ShowMeAI精心创作的系列教程。

图解机器学习算法:从入门到精通系列教程

链接:http://www.showmeai.tech/tutorials/34

机器学习实战:手把手教你玩转机器学习系列

链接:http://www.showmeai.tech/tutorials/41

深度学习教程:吴恩达专项课程 · 全套笔记解读

链接:http://www.showmeai.tech/tutorials/35

自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读

链接:http://www.showmeai.tech/tutorials/36

深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读

链接:http://www.showmeai.tech/tutorials/37

在公众号 ShowMeAI研究中心 回复「唐山」,获取 项目代码 & 用于训练的视频 & 运行结果视频/动图。项目涉及知识点见文末推荐阅读

这篇关于人工智能可以做点什么?唐山事件的视频AI识别检测项目 <附代码与动图> | 万物AI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252813

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni