为了解决有人在某养殖场的仓库或易燃物周围违规燃放烟花爆竹时,保安无法及时发现劝阻,出现事故追责难的问题,2021年初刘航邑协助了由其女友吴月主导以及李浩、吴仇、王鹏杰、王明喆等几名同学参加的《Monitor-智能监控录像分析报警系统》开发,通过在厂区布设摄像头,并开发了一套包括视频抽帧、图像储存、web管理后台和云边结合的软件,利用百度云AI技术,通过训练对燃放烟花爆竹事件进行识别的模型,自动分析出风险或用户感兴趣的行为进行储存和报警。该项目实际应用后产生了很好的效果,降低了春节期间库房的消防安全风险。该项目的开展后也得到了吴月所就读的高校的帮助和支持。本项目于2021年12月年获得《2021年第二届辽宁省“中软国际-卓越杯”AI挑战赛》一等奖,吴月于2022年成功将本项目立项为《2022年度国家级大学生创新创业训练计划项目》。
项目简介
本项目涉及一种人工智能实时监控录像分析与报警系统,由现场若干监控摄像头、本地边缘节点服务器或服务器集群,储存服务器,数据库服务器和远程云服务组成。系统可对摄像头传回的图像进行AI识别,自动分析出风险或用户感兴趣的行为进行储存和上报。
该项目改变了传统监控录像系统只能存录像,却不能根据其中的事件进行有针对性的记录和判断,导致出现突发情况时,需耗费时间回放大量无意义录像的问题。
该系统拓展能力强,可定制空间大,在造价和使用成本方面也有着很大的优势。其可在绝大多数使用场景下,根据用户需求训练出能识别特定行为的模型,并对监控视频内特定行为进行实时审计,把分析出的结果存入数据库,通过web检索直接生成信息报表,减少了回看录像耗费的无意义时间,以达到节省人力的目的。
其拥有独特的抽帧算法,采用软件部署的方式,可兼容用户已有的各类安防设备,并在多种环境下弹性的安装与运行,而无需购置过多新设备,显著降低用户部署和使用成本。
同时该系统可附加企业微信、钉钉、手机短信等报警功能,让用户关心的事件在发生时及时被发现,使安防更有主动性。
中大型系统
小型项目方案
系统特点
该项目改变了传统监控录像系统只能存录像,却不能根据其中的事件进行有针对性的记录和判断,导致出现突发情况时,需耗费时间回放大量无意义录像的问题。
该系统拓展能力强,可定制空间大,在造价和使用成本方面也有着很大的优势。其可在绝大多数使用场景下,根据用户需求训练出能识别特定行为的模型,并对监控视频内特定行为进行实时审计,把分析出的结果存入数据库,通过web检索直接生成信息报表,减少了回看录像耗费的无意义时间,以达到节省人力的目的。
其拥有独特的抽帧算法,采用软件部署的方式,可兼容用户已有的各类安防设备,并在多种环境下弹性的安装与运行,而无需购置过多新设备,显著降低用户部署和使用成本。
同时该系统可附加企业微信、钉钉、手机短信等报警功能,让用户关心的事件在发生时及时被发现,使安防更有主动性。
项目目标概述
本系统实现对摄像头传回的图像信息进行AI识别,自动分析出风险或感兴趣的行为进行上报,用户可通过 web 服务进行检索,快速的发现问题。改变了传统的监控录像系统只能存得下,很难“看得懂”的问题,节省了安保人力,让问题发现的更及时,减少录像回放所耗费的时间,根据画面包含的信息进行结构检索,能够提升用户应急指挥能力,系统能够实现数据统计综合分析,提高整体管理水平,促进安防智能化建设。采用成熟的AI识别技术,实现对不同场景物体和人员流动的监控,融合便捷高效、智能安全的理念,通过智能“监控分析”数字化管理新模式,实现网络化、信息化、智能化管理。
关键技术研究
《违规燃放行为识别》项目主要设备的选用
为了能够实现AI识别自动报警并实时报警信息发送给用户;我们主要采用重点地区安装高清监控+边缘计算服务器+百度智能云计算+手机短信报警。外部采集编码设备采用 TL-IPC5220E-DC 单目星光 20 倍变焦球机。视频储存服务采用 TL-NVR6116K-L 网络硬盘录像机,用于储存实时录像,方便核对。本地 AI 计算节点采用 TS80X,因为只在春节期间使用该系统,无需长时间工作,所以我们将对象储存、数据库、边缘 ai 计算程序、web 服务,全部架设到本服务器中。监控室配有显示器,全程实现无人值守,如有燃放烟花爆竹行为就会通过手机短信实时发送报警信息到执勤保安手机上。监控管理员可以访问 web 界面实现对全部识别结果进行检索。
对系统可拓展能力的加强
为了加强系统的普遍适用性,我们开发软件时考虑到:不能局限于使用单个品牌的设备,不局限于一个云服务商,不只有一种识别功能,后期我们还实现了烟火检测,雨量器故障检测,人车分类等更多功能,系统完全可以根据用户需求定制AI模型,可以在任何场合,包括但不限于小区、校园、商场、公园等部署。
对边缘计算节点的深入研究
提高抽帧和检测效率,不卡顿,可靠性强,一直是本项目所追求的目标,本地计算节点是本系统的关键设备,负责对前端编码设备进行解码、抽帧(逐帧处理),图像优化、帧分析以及帧价值判断,帧的重编码,还可以对视频帧在本地进行简单的计算,对于边缘设备无法完成的复杂任务,本地节点将快速地将视频帧上传至私有AI集群或云服务,并对计算的返回结果做出响应,
同时,边缘节点的任务还包括:将报警信息保存至数据库,报警图片储存至对象储存,调用微信、钉钉、或其他短信服务的推送接口,实现及时报警。本地ai计算节点采用多物理节点部署,保证可用性,同时加入了守护进程、日志收集、节点性能监测等功能,应用程序采用了多线程设计,充分利用了多线程CPU的性能,通过线程管理技术,实现软件的可靠稳定高性能运行。
对于抽帧算法优化的探索
抽帧比例和抽帧时机都是需要考虑的因素,如何避免抽取过多无意义的视频帧也是我们需要重点考虑的问题,云服务计算是需要消耗算力并且产生费用的。我们通过python现有的生态,利用较为优秀框架,如:PyTorch、OpenCV、TensorFlow、YOLOv3、YOLOv4,开发了移动侦测识别算法,人形识别功能,帧优选方法,并不断优化检测精确度,使得边缘计算节点可以更好的优化需要识别的视频帧,减少了储存和计算成本,降低了系统资源占用。
同时,我们也尝试利用onvif,GB28181等安防协议,获取前端编码设备的报警信息,来实现“设备触发”识别,但在准确性要求较高的项目中,容易产生漏报。而利用强大的识别算法、利用高性能的GPU和云服务,我们进行了大量的实验,对于危险行为的识别,人形侦测分类和移动侦测的识别结果很少出现失误。
云服务和AI训练
本项目现在已实现和百度云API进行对接,如有需求也可接入其他厂商的云服务。
现在云计算的图像识别模型训练界面设计都非常人性化,我们只需要通过现场摄像头采集足够多的样本图片,通过标记图片,训练ai模型,在一般情况下都能达到较好的效果。
例如,烟花爆竹违规燃放识别模型的创建和优化过程为:
- 准备“演员”和“道具”,寻找若干名工作人员,手持各种鞭炮,摆出各种放鞭炮的动作,模拟放鞭炮的过程,分别在白天和夜间利用前端机抓拍200组图像。
- 将图片导入百度云数据集,并对每张图片中的放鞭炮行为框选标注。
- 让百度云自动学习已经标注的数据,并查看生成的模型准确度是否符合要求。
- 符合要求的模型进行实地测试,寻找若干名工作人员,手持各种鞭炮,摆出各种放鞭炮的动作,模拟放鞭炮的过程,并通过百度云反馈的识别结果,确认模型准确率是否在99%以上,如果有漏报,需要将误报的图片加入数据库中,进行下一轮迭代学习,不断重复以上过程,直到漏报和误报率符合要求,模型大体上训练完成。
- 在实际使用过程中发现问题继续迭代,模型将逐渐趋于完善。
系统的硬件无关性
我们使用独特的抽帧算法,采用软件部署的方式,具有H264、H265码流即可接入,可兼容用户已有的大多数安防设备,并在多种硬件环境下弹性的安装与运行,而无需购置过多新设备,显著降低用户部署和使用成本。极大提高了经济效益。
报警系统和管理后台
一个好用的系统,用户管理后台必须强大,考虑到系统需要具备报警功能,能够及时发出警报和通知,以便保安人员能够及时采取行动。同时,系统还需要提供一个管理后台,用于监控和管理摄像头、数据存储、报警设置等,我们在后期通过go和vue对系统管理后台进行了改进,包括以下方面:
- 报警功能:系统可以实时监测摄像头拍摄的视频,并对燃放烟花爆竹等风险行为进行识别和分析。一旦系统检测到异常或危险行为,例如违规燃放烟花爆竹,将触发报警机制。报警可以通过声音警报、短信通知、邮件提醒等形式实现,以便保安人员能够及时采取行动。
- 报警设置:管理后台提供了灵活的报警设置功能,允许管理员根据需求进行配置。管理员可以设置触发报警的条件和阈值,如燃放烟花爆竹的持续时间、特定区域的人员聚集等。此外,管理员还可以设置报警通知的方式和接收人员,以确保报警信息能够及时传达给相关人员。
- 摄像头管理:管理后台提供了对摄像头的管理功能。管理员可以添加、删除和配置摄像头,包括摄像头的位置、拍摄角度和监测范围等。通过管理后台,管理员可以对摄像头进行统一的管理和控制,以确保监控范围的完整性和效果。
- 数据存储和检索:管理后台负责管理视频和图像数据的存储和检索。系统会将监控摄像头拍摄的视频和抽帧图像进行储存,并提供便捷的检索功能,以便管理员可以根据时间、地点或特定事件进行快速检索和查看。
- 用户权限管理:管理后台支持用户权限管理,允许管理员为不同的用户分配不同的权限。这样可以确保只有授权的人员才能访问和操作管理后台,保障系统的安全性和数据的保密性。
- 实时监控和统计:管理后台提供了对实时监控视频的查看和回放功能,以便管理员可以随时监控厂区的情况。同时,管理后台还可以生成统计报告和分析结果,提供数据分析和决策支持。
对本地部署和识别的探索
以烟花爆竹违规燃放检测为例,为了降低云计算调用成本,或出于隐私安全等特殊考虑,可以在本地利用YOLO、SSD、Faster R-CNN等搭建AI计算集群,通过训使模型在本地也能够对燃放烟花爆竹等目标进行准确的检测和识别。
训练YOLOv3检测模型基本步骤
在这里我们以YOLOv3为例: 要使用YOLOv3训练一个违规燃放烟花爆竹检测模型,可以按照以下步骤进行:
- 数据收集与标注:收集包含违规燃放烟花爆竹的图像和视频数据集,并进行标注。标注的过程包括标记燃放烟花爆竹的边界框和类别标签。
- 数据预处理:对数据进行预处理,包括图像尺寸的调整、数据增强操作(如随机裁剪、旋转、缩放等)以及数据集划分为训练集和验证集。
- 模型选择和配置:选择适合的YOLOv3模型,并根据任务需求进行相应的配置。YOLOv3通常有不同尺度的特征层,可以根据目标的大小和数量进行调整。
- 模型训练:使用标注好的数据集对YOLOv3模型进行训练。训练的过程包括前向传播、损失计算和反向传播等。可以使用预训练的权重来加速训练过程,并在后续的迭代中逐渐调整权重。
- 参数调优:通过调整模型的超参数(如学习率、批大小、迭代次数等)来优化模型性能。可以使用验证集来评估模型的准确率、召回率等指标,并根据结果进行调整。
- 模型评估:使用测试集对训练好的YOLOv3模型进行评估。评估指标可以包括平均精度均值(mAP)、准确率、召回率等。
- 模型部署:将训练好的YOLOv3模型部署到实际应用中,用于违规燃放烟花爆竹的实时检测和监控。
训练环境搭建
训练YOLOv3模型需要一定的人力和好用的标注和强大管理系统,也需要较大的计算资源和时间,还需要在适当的硬件环境下进行训练,我们在尝试用k8s搭建了YOLOv3训练集群:
1.配置Kubernetes集群:安装和配置一个具有多个节点的Kubernetes集群。确保所有节点都可以互相通信,并且具备足够的计算和存储资源来支持训练任务。
2.创建镜像:为YOLOv3训练任务创建Docker镜像。在镜像中包含YOLOv3的训练代码、依赖项和数据集等。
3.创建训练任务描述文件:编写一个描述训练任务的Kubernetes配置文件,通常使用YAML格式。配置文件中需要指定要使用的镜像、训练任务的参数和资源要求等。
4.部署训练任务:最开始我们使用kubectl命令或Kubernetes管理界面(如Kubernetes Dashboard)来部署训练任务。后来我们又开发了训练管理系统,便利程度大大提高。
5.监控训练任务:使用Kubernetes的监控工具来查看训练任务的状态和日志。可以使用kubectl命令或web管理系统来查看任务的状态
6.水平扩展训练任务:如果需要增加训练任务的并行性或加速训练速度,可以通过水平扩展来增加训练任务的副本数。例如以下命令进行水平扩展
kubectl scale deployment <训练任务名称> --replicas=<副本数>
7.训练任务完成和结果获取:等待训练任务完成后,可以投入测试或运行,检测模型是否符合要求
项目荣誉获得情况
“中软国际-卓越杯”AI挑战赛
本项目在2021年12月年获得《2021年第二届辽宁省“中软国际-卓越杯”AI挑战赛》一等奖
吴月在得知获得一等奖后说到:“非常感谢老师的悉心指导和同学们的支持与帮助。一分耕耘,一分收获。从参赛初期紧张担心的状态,到取得省级一等奖,这是探索的过程,更是成长的过程。认真思考、沉着应战、全力以赴是我们取得可喜成绩的基石。我相信积极进取一定可以创造新的奇迹。”
国家级大学生创业实践项目
吴月于2022年成功将本项目立项为《2022年度国家级大学生创新创业训练计划项目》
以下是参与人名单:
姓名 | 是否主持人 |
---|---|
吴月 | 第一主持人 |
吴仇 | 否 |
李浩 | 否 |
王明喆 | 否 |
王鹏杰 | 否 |
在项目成果结项时,吴月和同组成员表示:通过参加这次国家大学生创新实践项目,我们都有了很多收获。首先是对这种实践项目的进一步认识。大学生创新性实验强调的是自主性、探索性、实践性和协作性,实施过程讲究长远效益,强调项目实施过程中在创新思维和创新实践方面的收获,不为得到成果而设计,重在实施过程中充分发挥主观能动性,运用所学的知识,使自己得到锻炼和提高。回想一年来自己参加创新实验的经历,从开始对实验项目内容的理解认识到项目计划的讨论和确定,从对项目的整体把握到实验创新点的寻找,并制定详细的项目方案和进程,以及项目当中重要的实践环节,整个实验过程中我不仅学到了许多我所感兴趣的、觉得有用的东西,更重要的是自己的思维能力、团队协作能力、实践能力都得到了锻炼,而且也学到了坚持不懈、善于思考、积极总结的可贵精神。
在研究方面,最深的体会就是要勤于思考,主动进行实践环节。创新性试验不同于传统意义上的基础实验,可以按照已有的实验步骤在老师的指导下完成实验。很多实验方法要去查找文献资料,去领会理解实验的内容,确定试验需要进行创新的方向。弄清楚自己要干什么,接下来要做的就是按照计划一步步的努力实施,而且每一个环节都需要独立的思考。 在创新方面,首先要明确创新的方向和目标。创新点不一定必须是很高深很前沿的东西,只要不是照搬照抄,在自己力所能及的范围内就好。所有的实践和工作都要围绕创新点来展开,不能偏离主题,当然,本着“不纯粹为了得到成果而实验”的想法,所以更不能凭着个人的主观臆想来猜测实验的结果,而是参照创新点有根据有目的的做出合理的预测,也就是要实事求是,完全尊重实验的科学性,然后再一点点地实践去论证自己的猜测。
在这次创新性实验当中,我们学会了理论联系实际,既加深了对自己专业知识的理解,又学会了如何在实践当中运用自己的专业知识解决遇到的问题,同时还有敢于迎接挑战的创新精神和坚持不懈的务实态度,以及小组成员团队协作的工作方法,还有,通过实验也让我进一步认识到自己的不足之处,明白了自己今后的努力方向。这样一个的创新实验同时也成为了我们成长过程中的宝贵经验和财富。
刘航邑对该项目的评价
本项目的开发团队通过在养殖场布设摄像头,并利用百度云AI技术开发了一套软件系统,能够通过视频抽帧、图像储存、web管理后台和云边结合等功能,对燃放烟花爆竹事件进行识别和监控,以降低消防安全风险。
这个项目的成果在实际应用中取得了很好的效果,有效解决了保安无法及时发现劝阻违规燃放烟花爆竹的问题。通过自动分析和报警系统,可以及时储存和报警风险行为或用户感兴趣的事件,提高了安全管理的效率和准确性。
此外,该项目的成功还受到了吴月所就读高校的支持和帮助,并获得了《2021年第二届辽宁省“中软国际-卓越杯”AI挑战赛》的一等奖,并于2022年获得了《2022年度国家级大学生创新创业训练计划项目》的立项。
这样的项目展示了人工智能技术在解决实际问题和提升安全管理方面的潜力。希望这个项目能够继续发展和推广,为更多领域的安全管理提供有效的解决方案。