万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

未分类2周前发布 tree
9 0 0
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
本项目文章来源:大白AI写作团队-江大白
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
导读
AI项目从方案设计到项目落地,不仅需要算法模型的训练,还需要算法模型的转换以及AI视觉系统的应用。本文从整体架构的角度,进行全面的分析的讲解,并以一个人员在离岗识别的案例,进行了拆解,希望对大家有帮助!
在智慧城市的泛安防场景中,在离岗识别的应用场景,非常多。

比如银行门口一号位的工作人员在离岗分析,保安室的人员分析,工厂场景下某些机器工作时的工作人员状态分析。

可以应用的场景很多,不过AI项目的落地,从算法模型的训练,到算法应用的落地,通常会有多个流程。

本文的在离岗识别,会手把手带着大家,从算法方案,模型训练,模型转换,AI视觉软件应用的角度,尝试项目落地的整个流程。

文章目录
1 项目系统架构:人员在离岗识别系统
1.1 项目系统架构拆解
1.2 项目关键算法拆解 
2 项目资源下载:代码及数据集资源下载
2.1 代码资源:完整代码&数据下载
2.2 人体检测数据集
2.3 人体检测模型训练
3 PC端代码整合:代码推理测试实践
3.1 代码下载及环境安装
3.2 图片/视频推理代码
3.3 人体检测+人体追踪代码
3.4 离岗识别1:人体检测方案
3.5 离岗识别2:人体检测+追踪方案
4 AI模型部署:AI算法模型迁移转换
4.1 多设备模型部署方式
4.2 Pt模型转换ONNX格式
4.3 ONNX格式转换Tflite格式
5 AI应用系统安装:Aidlux及AI视觉中台安装
5.1 Aidlux软件简介
5.2 Aidlux软件下载及安装
5.3 Aidlux手机映射到PC电脑
5.4 Aidlux软件设置后台运行
5.5 AI视觉软件中台简介
5.6 AI视觉软件中台下载及安装
5.7 Aidlux&AI中台问题综述
6 AI视觉软件实战:人员在离岗应用实战
6.1 AI视觉软件登陆及使用
6.2 视频流管理
6.3 算法管理
6.4 任务管理
6.5 视频监控管理
6.6 告警日志
6.7 智能管理
6.8 用户信息
7 AI项目资源库:更多AI实战项目汇总

1 项目系统架构:人员在离岗识别系统

1.1 项目系统架构拆解


从AI视觉项目落地的角度,针对不同的客户需求,通常有2种方式:

(1)服务式Service

针对AI模型的部署服务,客户端可以通过HTTP/REST或GRPC的方式来请求服务。

比如输入一张图片/一段视频,输出图片/视频的分析结果,通常这种服务,按次数收费或者按时间段授权。

比如百度AI市场上提供的各种API服务:
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
这种形式,业务流程相对是单一的,主要需要考虑的是充分利用GPU算力资源,能够提供稳定的高吞吐量的服务。

(2)应用Application

服务式Service的用户,主要是AI项目落地的技术集成商,交付给用户的主要是AI能力。

而应用Application,通常面向的是某个场景的最终用户。

因此交付的产品,是一整套包括交互界面在内的应用软件系统。

比如可以绘制违规提示框的实时画面,视频流分析管理,某个时段或者满足某种条件的数据分析报表等。

这类产品一方面需要提供友好的操作界面供用户查看使用,同时还需要提供对接用户第三方平台的接口,将分析产生的告警结果等信息,推送到用户的业务管理平台。

比如本文最后使用的AI视觉软件平台。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
此外,大白的好友,白夜老师也分享过一篇非常干货的AI落地部署文章,《一文看懂AI项目流程及边缘设备开发》,可点击查看。

当然AI算法项目,最终应用,通常会跑在各类算法设备上。

不过由于不同算法方案的不同,使用的算力也都各不相同,下面会针对人员在离岗识别的不同的方案,做详细的讲解。

1.2 项目关键算法拆解


1.2.1 在离岗识别算法原理拆解


在AI视觉项目中,不同的算法功能,通常可以通过不同的算法逻辑来进行实现。

人员在离岗识别也是一样的,通常会有两套方案。

首先针对在离岗识别,会绘制一个监测区域。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

(1)方案一:人体检测方式

方案一主要以监测区域状判断为主,每隔一段时间,计算人体框的位置,和监测区域的相对位置关系。

当人体检测框的中心点,在监测区域内时,位置状态等于1。

当人体检测框的中心点,在监测区域外时,位置状态等于-1。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

那么方案一中,当监测的目标区域内,持续一段时间,比如10S中,一直没有人体进入时,这时就可以告警提示。

(2)方案二:人体检测+人体追踪方式

方案一以监测区域为判断标准,而方案二则以人员监测为主。

通过人体检测+人体追踪的方式,获取每个人员多帧的track_id,以及每个人体的检测框位置信息。

通过对每个人体的检测框和监测区域的位置关系,在监测区域内,位置状态等于1,不在监测区域,位置状态等于-1。

从而可以判断得到,每个人体连续的位置状态信息。此外也可以得到不同的人体,在监测区域内停留的时长。

而当所有人体,都不在监测区域内时,比如持续一段时间(10S),自动系统告警提示。

(3)方案一 OR 方案二?

当然有的同学,可能会想哪种方案更好?

其实同一个AI算法功能,实现的方案都有很多种方式,所以还是要结合自己场景的需求来进行选择。

比如方案一,优点在于简单粗暴,可以跳帧的间隔也比较大,比如可以每秒采集一帧,判断监测区域内,是否存在人体。

当10秒采集10帧,都没有检测到人体时,则判定人员已离岗。

但缺点在于,没有追踪机制,没办法跟踪连续帧是否是某一个人离开的。

而方案二,因为增加了人体追踪的机制,所以更加精细化,因为可以追踪某一个人,是否离开监测区域。

比如当监测区域中的一个人,从监测区域马上要离开时,正好有另一个人进入监测区域了,这时采用方案二,就可以监测告警出来,但是方案一,就无法监测出来。

当然也存在一定的缺点,因为采用了目标追踪,所以视频跳帧不能太大,比如一秒钟采集5帧,相对第一种而言,算力消耗会更大。

1.2.2 目标检测算法


当然我们也发现,前面的两种方案,人体检测是必备的算法模型。

不过目标检测的算法有很多种,Yolo系列,PaddleDetection系列,mmdetection系列,大家可以结合自己的需求来进行选择。

之前大白写过关于Yolo系列的一些内容,有想深入了解的小伙伴,可以进行查看。
(1)Yolov3的视频

视频:《30天入门人工智能》第五章第二三节

链接:https://ke.qq.com/course/3454999?tuin=16348fd5

(2)Yolov4的视频

文章:《深入浅出Yolo系列之Yolov4核心基础知识完整讲解》

链接https://zhuanlan.zhihu.com/p/143747206

视频:《30天入门人工智能》第五章第四五节

链接:https://ke.qq.com/course/3454999?tuin=16348fd5

(3)Yolov5的文章

文章:《深入浅出Yolo系列之Yolov5核心基础知识完整讲解》

链接https://zhuanlan.zhihu.com/p/172121380

(4)Yolox的文章

文章:《深入浅出Yolo之Yolox核心基础完整讲解》

链接https://zhuanlan.zhihu.com/p/397993315
随着目标检测的深入发展,目前市面上Yolo的各种创新算法也越来越多,大家都可以结合自身的项目需求,来进行选择。

不过后续代码中,大白实战的主要是Yolov5-6.2的版本。

一是Yolov5的代码生态比较好,更新也很频繁。

此外在AI视觉中台上,还增加了模型迭代替换的功能,所以在后面大家也可以训练替换自己的模型,而这里的算法版本,需要和AI视觉中台上的算法版本一致。

这样后期大家有新的场景,泛化性不好的时候,也可以自行迭代,从而体验完整的项目落地过程。

1.2.3  Bytetrack目标追踪


在很多的AI项目中,目标检测和目标追踪,都是相辅相成的算法。

这里的目标追踪,通常指的多目标跟踪,原理涉及很多,比较复杂,我们这里以简短的方式,让大家了解其中的一些原理。

多目标跟踪,即MOT(Multi-Object Tracking),顾名思义,就是在一段视频中同时跟踪多个目标。

MOT主要应用场景是安防监控和自动驾驶等,这些场景中我们往往需要对众多目标同时进行追踪。

这是仅用目标检测算法或单目标跟踪无法做到的,人们就自然就开始了对多目标跟踪算法的研究。

在业内多目标跟踪算法,应用的比较广的发展路径是:sort->deepsort->bytetrack

(1)Sort多目标追踪算法

在视频中,每个人体都是在往不同的方向移动的,因此会产生两个方面的信息。

比如在10帧连续的图像中,有很多个人体,其中有两个小朋友,一个路人甲和路人乙。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

在10帧的图像中,比如前三帧的图像,多目标追踪算法会初始化两个track_id。

比如路人甲是track_id=1,路人乙是track_id=2。

那么在第四帧以后,我们想从图片上的多个人体中,还把路人甲和路人乙两个人找出来。

但这时,我们只有之前的3帧两人的轨迹信息,怎么办呢?

这时会采用卡尔曼预测的方法,判断两人的运动轨迹,在第四帧图像中可能在哪个位置,预测出可能是两人的预测框。

而在第四帧图像中,通过目标检测已经得出很多的人体检测框,这时再采用匈牙利算法,从多个人体的检测框中,匹配找到路人甲和路人乙的框,并赋予两个track_id的值。

这就是Sort算法的大致思路,但是其中也会存在一个问题,即两个人遮挡交错的时候,卡尔曼预测就会有问题。

因为后续的匹配,都是通过位置信息来构建的,交错的时候,不同人体的位置信息就会有错乱了。

(2)Deepsort多目标追踪算法

因此在Sort的基础上,为了区分出不同的行人,增加人体的外观信息Appearance Information,变成了Deepsort。

比如在前面第四帧的图像上,想找到之前track_id人体的信息,就可以通过两个方面来综合匹配:一个是距离,另一个是人体的reid外观特征信息,两者进行加权来匹配,更准一些。

(3)Bytetrack多目标追踪算法

但在实际应用中会发现,在遮挡交错比较多的时候,还是会出现track_id交错比较多的情况。

不过研究者也发现,在遮挡的时候,人体的检测框信息预测分数会相对较低。

例如下方图中,第一张图中的0.8,由于遮挡变成了0.4->0.1。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
比如下方的红色框,在正常的追踪过程,可能很容易丢失。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
因此作者将deepsort中的外观特征舍弃掉,通过bytetrack的方式进行多目标追踪。

不过这时设置高分和低分框,当预测运动轨迹的框,分数降低时,说明可能产生了遮挡的现象,这时就再多匹配一些。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
以上就是对于多目标追踪的简单描述,当然其中涉及了大量的逻辑方式,大家感兴趣也可以好好研究下。

ByteTrack源论文地址:https://arxiv.org/pdf/2110.06864.pdf

ByteTrack开源代码地址:https://github.com/ifzhang/ByteTrack

当然为了便于大家快速实战尝试,人体检测+人体追踪(Bytetrack)的代码,大白在后续资源中已经准备好,供大家快速下载体验。

2 算法原理及下载:代码及数据集资源下载


2.1 项目代码资源:完整代码&数据下载


为了便于大家动手实战,大白将文章中所包含的相关训练及推理代码,相关的脚本及数据集,都进行了梳理。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
本文人员在离岗识别的相关资源,可以关注下方公众号,回复“在离岗识别”,按照提示进行下载。

2.2 人体检测数据集


前面的方案一,和方案二,我们会发现,都会用到人体检测算法。

而这也是由人体检测数据集,训练而成的。目前人体相关的数据集有很多,包含各种公开数据集,以及自有数据集。

这里用到的人体数据集,大白放了常用的3000张人体数据集,并且都标注好了相应的xml信息,放在上面2.1的资源中。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
此外,业内还有一个非常不错的公开数据集Crowdhuman,包含25000张图片,不过标注信息会有一些差异,主要是odgt格式,所以训练时还需要将odbt转换成xml格式。
大白之前的训练营中,正好也和大家一起下载训练过,大家感兴趣也可以查看下载转换,点击查看。

2.3 人体检测模型训练


有了数据集后,就可以训练人体检测算法模型了。

关于Yolo训练的详细过程,大白之前写过一篇文章,《深入浅出Yolov5之自有数据集训练超详细教程》。

里面包含大白使用Yolov5,训练自有数据集的过程,一步步的整合写出来,通过在实战中学习实践,可以理解的更快。

文章链接:https://zhuanlan.zhihu.com/p/463176500

大家也可以尝试,下载2.2的人体检测数据集,训练人体检测的Yolov5模型。

当然为了便于大家使用,大白在整套代码的privated_models文件夹中,放置了训练好的Yolov5检测模型,大家也可以直接使用。

3 PC端代码整合:代码推理测试实践


3.1 代码下载及安装环境


参照上面2.1中,下载完代码后即可进行测试验证。

大白代码运行的时候,主要采用Pycharm软件+Conda的方式,如果是比较熟悉的同学,可以直接尝试,如果不太熟悉的同学,可以参考大白另一篇家庭安防告警的文章,点击查看。

当然,代码的运行环境,需要相应的库函数,都放在代码文件夹中的requirements.txt。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
如果已经安装过算法运行环境,则可以从3.2开始。

如果没有安装过,可以打开终端页面,进入代码路径下,输入

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple,即可下载相应的库函数。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

3.2  图片/视频推理代码


Github上Yolov5的源代码中,图片/视频推理的代码,是汇总在一起的。不过大白觉得不是特别直观,因此也增加了两个代码文件。

(1)针对图片的推理

图片推理的代码,放在代码文件夹中的detect_image.py中。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
针对图片文件夹中的多张图片,可以进行连续推理显示,快速看到检测效果。

(2)针对视频的推理

视频推理的代码,放在代码文件夹中的detect_video.py中。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
针对source中的视频文件,可以进行实时推理,后续检测+追踪的代码,也是在此基础上延展开来的。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

3.4 人体检测+人体追踪代码


前面整个流程跑通后,就知道目标检测的整个流程。

不过前面也说过,目标检测通常是项目应用中的前置算法,通常还会和目标追踪结合在一起使用。

人体检测+目标追踪的代码,大白也整合好,放在文件夹中的detect_bytetrack_video.py中。

为了直观的看到多目标追踪的效果,大白这里将视频修改成另外一个人员比较多的视频,可以看到每个人运动的过程中,都会有一个track_id的信息。

3.5 离岗识别1:人体检测方案


前面1.2.1中讲解了人体检测的方案,大白也编写了相应的代码逻辑,放在detect_leave_video.py中。

方案一代码的业务逻辑是,视频流每秒采集一帧,针对监测区域分析是否有人体在其中。

当人体的位置在监测区域内,位置状态为1,在外面则为-1。
当持续10秒钟,没有人体在监测区域时,则自动告警提示。

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
由于每秒取一帧,所以实现的视频效果会感觉有一些卡顿。
3.6 离岗识别2:人体检测+追踪方案
方案二的代码,即detect_bytetrack_leave_video.py文件,通过人体检测+人体追踪的方式,获取每个人员多帧的track_id,以及每个人体的检测框位置信息。

人员的检测框在监测区域内,位置状态等于1,不在监测区域,位置状态等于-1。

从而可以判断得到,每个人体连续的位置状态信息,当持续一段时间(比如10秒),所有人体的位置信息都是-1时,则自动告警。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
由于在目标检测的基础上,增加了目标追踪的算法。所以跳帧设置为5,由于每秒原始视频流有25帧,所以每秒还能处理5帧。
和上面方案一相比,因为帧率更多,所以效果视频看起来更连续平滑一些。

以上是两套方案的验证,不过在AI项目中,PC端验证完之后,最终一般还会通过AI视觉软件的形式来进行应用。
下面再从AI项目落地的角度,针对人员在离岗识别的角度,进行落地实践。

4 AI模型部署:AI算法模型迁移转换


4.1 多设备模型部署方式


不过AI视觉项目最终落地,通常会采用相应的算力设备,比如英伟达、算能、高通、瑞芯微等。

不同的算力设备,通常都有相应格式的算法模型格式,比如英伟达是Tensorrt,算能是bmodel格式。

而算法模型训练,通常也会采用多种训练框架,比如Pytorch、Tensorflow、OpenMMLab等。

因此在第四章,大白会带着大家将训练的Yolov5算法模型,转换成相应格式的模型文件。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
由于本文最终AI算法会跑在手机的AidLux上,从而调用不同手机芯片的算力,而AidLux主要支持的格式有tflite、dlc等。

所以我们先将Yolov5的pt模型转换成Onnx格式,然后再从Onnx格式转换成tflite格式。

4.2 Pt格式转换成ONNX格式


Yolov5的Pt格式的转换,可以采用代码文件中的export.py,进行转换。

修改相应weights,include等信息,直接运行即可,在pt文件相应的文件夹中,可以看到多了一个tflite文件。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
不过运行的时候,如果没安装onnx的同学,可能报onnx安装的错误。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

解决方式,直接conda install onnx 或者pip install onnx。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

再次运行export.py后,在private_models文件夹中,可以看到转换后的onnx文件。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

4.3 ONNX格式转换Tflite格式


4.2利用export.py的代码,将pt格式转换成onnx格式。

而将onnx文件转换成后面用到的tflite格式,我们可以使用阿加犀的一款基于Web端的可交互的AI模型部署优化平台(AI Model Optimizer (简称AIMO) )。

AIMO能够将其他主流框架模型格式转换成tflite、ONNX、DLC等多种模型格式。

旨在帮助用户能够在边缘端芯片上快速迁移、部署和运行各种机器学习模型。

目前AIMO已经集成了各种模型转换工具,简化了转换流程,方便用户零代码、低成本的完成模型转换。
目前AIMO软件,针对模型转换过程,提供了网页版服务,可以用开源模型体验一下。

AIMO网站链接:https://aimo.aidlux.com/

测试账号:AIMOTCLM

测试密码:123456

首先打开AIMO的网站页面,可以看到主要由四步组成。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

将刚刚生成的人体检测onnx文件,进行上传。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
选择下方的TensorflowLite,将Onnx转换成tflite格式,再点击下一步。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
开启网络简化,点击下一步。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
等待模型转换结果,成功后可以直接下载模型。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
下载的是一个压缩文件夹,再进行解压缩后,可以得到PersonOD_Yolov5s_74K_fp32.tflite的文件。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

5 AI应用系统安装:AidLux及AI视觉中台下载安装


AI项目落地过程中,通常会针对不同的场景,采用不同的算力设备。

一般来说,算力设备通常有三种形态:端侧嵌入式设备、边缘设备、GPU服务器。

① 端侧嵌入式设备:主要特点是算力偏小。

比如手机、人脸识别闸机等,内部都有一个AI算力芯片,可以进行一些简单轻量级的AI算法模型处理。

可以处理人脸识别、OCR识别等算法应用,不过处理的视频流路数,一般只针对设备上的一路视频流,进行智能分析。

② AI边缘设备:而当分析的视频流路数变多,比如针对10路摄像头采用各类算法进行分析,这时通常会采用边缘设备的方式。

不过因为AI边缘设备的芯片算力有限,所以一般一个边缘设备,只能处理十几路,或者几十路路视频流任务,当然这里处理的数量不同,和使用的不同算法有关系。

有的算法功能,消耗的算力比较小,比如安全帽检测,一秒检测处理一帧就可以了。

当然有的算法功能,消耗的算力比较多,比如越界识别,因为涉及到单位时间内的动作,需要一秒至少处理3帧,所以算力需求量更大。这里我们需要特别注意。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

③ GPU服务器:这里所说的GPU服务器主要分成两种,一种是我们常用的GPU训练服务器。另一种是专门用于推理的GPU服务器。

两者的底层架构不同,在项目推理应用时,我们主要用的还是推理GPU服务器。

比如智慧交通场景常常有数千路摄像头,园区场景常常有数百路摄像头。

这时如果再用每几十路视频,用一个边缘设备的方式,现场机房里面,可能需要采用几十台、甚至上百台边缘设备。

因此这种情况下,通常采用GPU服务器的方案。让每台服务器可以负责上百路摄像头的分析。

本文为了让大家体验完整的AI项目落地过程,在安卓手机的基础上,借用手机的算力,从而体验AI系统以及AI视觉中台的下载安装。

而其中会用到两款软件,Aidlux软件,以及华勤AI视觉中台软件。

5.1 Aidlux软件简介


AIdlux是由阿加犀公司开发,基于ARM架构的跨生态(Android/鸿蒙+Linux)一站式AIOT应用开发平台。

用比较简单的方式理解,我们平时编写训练模型,测试模型的时候,常用的是Linux/window系统。

而实际应用到现场的时候,通常会以几种形态:GPU服务器、嵌入式设备(比如Android手机、人脸识别闸机等)、边缘设备。

GPU服务器我们好理解,而Android嵌入式设备的底层芯片,通常是ARM架构。

而Linux底层也是ARM架构,并且Android又是基于Linux内核开发的操作系统,两者可以共享Linux内核。

因此就产生了从底层开发一套应用系统的方式,在此基础上同时带来原生Android和原生Linux使用体验。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

因此基于ARM芯片,阿加犀开发了Aidlux平台,可以在安卓手机上直接下载Aidlux使用。

而后面用到的华勤AI视觉软件中台是在Linux的系统下开发的,但是在初期体验AI视觉软件的时候,可以在手机算力的基础上,快速运行体验测试。

所以大家需要先准备一台安卓手机,开始下载相应的Aidlux软件。


5.2  Aidlux软件下载&安装


先下载一下手机Aidlux的APP软件。

打开安卓手机的应用商城,搜索Aidlux即可下载安装。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

打开手机版本的Aidlux软件APP,第一次进入的时候,APP自带的系统会进行初始化。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
初始化好后,进入系统登录页面,这一步最好可以用手机注册一下,当然也可以直接点击“我已阅读并同意”,然后点击跳过登录。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
进入主页面后,可以点击左上角的红色叉号,将说明页面关闭。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

5.3 Aidlux手机映射到PC电脑

当然如果后面在手机上编程操作,还是有点麻烦,因此可以通过IP的方式,直接映射到电脑上操作。

首先将手机和电脑的ip放置在同一个网段内,比如连接同一个wifi信号,或者手机开设热点,电脑连接到手机的热点上。

再点击手机页面最上方的Cloud_ip,可以看到会显示相应的ip数字信息。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

比如这里大白是192.168.0.13:8000,打开电脑浏览器地址,输入相应的ip。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
密码默认是aidlux,输入后即可进入主页面,可以看到其中的内容和手机端是一样的。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

5.4  Aidlux软件设置后台运行


当然,有的小伙伴在运行Aidlux的时候,免不了要缩小,切换到其他的APP上。

但当将手机版本的Aidlux缩小时,你会发现PC端Aidlux桌面上的操作就被终止了。

这时主要的原因在于,手机上默认Aidlux软件缩小时,终止一切连接,为了便于后面的编程操作,我们将Aidlux设置成后台可运行的操作。

这里列举了多款手机设置的方式,大家可以参照相应的设置教程:

(1)小米手机和平板设置教程:

https://community.aidlux.com/postDetail/832

(2)OPPO手机与平板设置教程:

https://community.aidlux.com/postDetail/834

(3)vivo手机与平板设置教程:

https://community.aidlux.com/postDetail/835

(4)华为鸿蒙/HarmonyOS 2.0设置教程:

https://community.aidlux.com/postDetail/828

(5)华为鸿蒙/HarmonyOS 3.0设置教程:

https://community.aidlux.com/postDetail/827

大家可以针对每个人的手机可以进行尝试,如果遇到AIdlux相关的任何问题,也可以
在公众号后台,回复“在离岗识别”,加入AidLux适配交流群,一起沟通讨论。

5.5 AI视觉软件中台简介


华勤AI视觉软件,是由华勤技术,大白这边的AI视觉团队开发的。

定位AI开发应用全流程工具软件平台,集算法模型训练训练、算法功能开发、算法功能应用为主的一站式AI应用解决方案平台。

本次AI项目应用,为了让大家快速体验AI视觉项目的应用落地,大白也将AI算法功能应用平台,在Aidlux的基础上,内置到手机中,让大家可以快速体验整套的AI项目落地流程。

当然实际项目应用的时候,可以采用边缘设备和GPU服务器。

5.6 AI视觉软件中台下载及安装


下载完Aidlux软件,我们再下载一下AI视觉软件中台。

首先点击Aidlux桌面下方的应用商城。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
应用列表拉到最下方,可以看到aid-IVS的应用图标,如果没有的话,点击上方刷新的图标,进行刷新,点击下载安装。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
由于AI视觉软件比较大,大家可以稍等10分钟左右,当出现下方的“Installed Successfully”时,即表示下载成功。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
点击Aidlux下方的终端图标,打开终端界面。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
进入zhongtai文件夹下,输入“./start.sh”,启动AI视觉软件。

不过有的手机品牌输入时,会出现“Permission denied”,这时可以给start.sh加上超级权限。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
输入“sudo chmod +777 start.sh”之后,再输入“./start.sh”,即可正常启动。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
Aidlux桌面版的ip地址为192.168.0.13:8000。

而AI视觉中台的ip地址,修改下端口号即可。

在新的页面上,输入192.168.0.13:8088,即可打开相应的AI技术中台系统的页面。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

5.7 Aidlux问题综述


(1)手机APP版本一直闪退重启

可能在安装过程中,有些库没有安装完整。
可以先通过Aidlux的终端,针对aid-IVS卸载掉,然后再在应用商城重新安装aid-IVS。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
使用过程中,更多问题的解决方案汇总,可以扫码查看腾讯文档,也可参照上方公众号的方式,加入微信群进行沟通。

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6 AI视觉软件实战:人员在离岗应用实战


6.1 AI视觉软件登录及使用


AI视觉中台系统,进入页面后,首先要扫码激活。

大家使用过程上,如果想要时间延期的话,或者有相关的问题,都可以回复“在离岗识别”,查看加入华勤AI视觉软件交流群,一起沟通讨论。
点击“扫码激活”,使用微信进行扫码,填写相关的信息后,即可显示相应的账号和密码。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
一般来说,账号是“TestAdmin”,再点击下页面中的“查看激活状态”,即可正式激活。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
进入页面后,可以看到AI视觉中台相关的功能:
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
(1)设备管理:其中包含视频流管理,包含前后摄像头的使用,和rtsp推流。
另外由于会将告警事件上报,和业务平台导通,所以还有数据上报的页面。

(2)算法管理:这里主要是算法模型的管理,支持用户上传特定版本的算法模型,便于不同场景的算法模型,迭代优化更新。

(3)任务管理:主要包含算法功能的设置,和其他厂商固定的算法功能不同,华勤AI算法功能应用平台定位算法管理应用软件,所以在这个模块可以进行算法功能的修改配置。

(4)视频监控管理:可以看到设置的功能,通过实时流得到的效果。

(5)告警日志:针对告警的信息,进行展示。

(6)智能管理:主要是工服识别和人脸识别的图片入库。

此外,当前体验的AI算法功能应用中台是V1.0版本,新版本的算法功能开发平台,算法功能应用中台2.0版本,也即将上线。

下面再以本文的人员在离岗识别为例,尝试项目落地。

6.2 视频流管理


点击“设备管理”,选择视频源,再点击“新建”。

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.2.1 前/后摄像头视频流


由于本文的AI视觉应用中台,是内置到手机里面的。

所以在流类型中,也内置了手机的前后摄像头。

如果没有视频源的情况下,也可以直接选择手机的摄像头作为输入。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
比如新建了“后摄像头”,如果想查看新建的是否成功,可以点击“实时流”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
正常情况下,可以看到后置摄像头的画面。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.2.2 RTSP视频流


除了手机的前后摄像头,AI视觉中台也可以接入rtsp视频流。

当然除了实际的摄像头视频流,还可以将视频文件进行推流的方式,来生成rtsp视频流。

大白的电脑是window系统,所以主要分成三步:

(1)运行EasyDarwin

进入代码文件stream/EasyDarwin-windows-10文件夹中,双击运行EasyDarwin.exe。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
跳出一个终端弹窗,可以看到EasyDarwin开始启动。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
(2)本机IP地址查询
在后面生成rtsp流时,需要推成和本机同一个ip地址下的视频流,因此还要查看一下本机的ip地址。

比如大白的window电脑,点击电脑的“开始”菜单,并选择“运行”选项;

然后在“运行”框内输入命令“cmd”,在打开的“cmd”命令操作框中,输入命令“ipconfig”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
可以看到本机的ip地址是10.104.73.28,大家也需要记录自己的地址。

(3)ffmpeg推流

进入代码文件下stream/ffmpeg/ffmpeg/bin下面,输入命令

ffmpeg.exe -re -stream_loop -1 -i ./videos/离位识别.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb -rtsp_transport tcp -f rtsp rtsp://10.104.73.28:554/test
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
运行后,在最下方可以看到frame的相关信息,说明已经推流成功。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
(4)VLC查看rtsp流

推流成功后,再进入stream/VLC文件夹中,双击运行vlc.exe文件夹。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
即可打开VLC播放器。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
点击左上角媒体->打开网络串流,输入刚刚推流的rtsp流 rtsp://
10.104.73.28:554/test。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
即可看到刚刚推流成功的视频文件。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
(5)AI视觉中台rtsp推流

回到AI视觉中台,在“视频源”中再点击“新建”,填入相应的参数。

注意:分辨率需要和视频的大小保持一致。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
再点击“实时流”,再点击“播放”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
即可看到推流成功的视频流。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.3 算法管理


6.3.1 模型管理&算法模型更新


在模型模块中,针对已有的算法模型进行了汇总管理,有相应的名称、路径、类型、Batch、类别标签信息,支持对算法模型进行新增、查看、编辑、删除操作。

目前平台默认添加了facemask、cigarette、pose、person、phone、helmet、headshoulder、head、person等9类算法模型,在后面搭建算法模型时,可以组合使用:
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
考虑到不同场景下,为了模型的准确性,用户通常也会采集数据,训练相应的算法模型。

因此在中台上也有模型上传迭代更新的方式。

比如点击最下方的person,点击右面的“查看”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
可以看到,这是一个人体检测的模型文件,标签是“person”,再点击“修改”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
因为本文的项目,就是离岗识别的功能,采用的检测模型,主要是人体检测模型,比如前面第四章我们转换好的人体检测算法模型。

在展开的内容中可以看到相应的关键信息:

(1)模型名称:person,在平台中即人体检测模型。

(2)标签:person

(3)支持能力:这里选择了四个功能,即通过人体模型,可以实现的功能数。

(4)模型上传:当针对泛场景的检测效果,需要优化迭代更新yolov5检测模型时,可以点击”选择文件“,比如选择前面第四章转换后的算法模型。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.3.2 算法能力


AI视觉中台的算法可应用在智慧城市、安全生产、智慧交通、智慧零售、智慧工厂、智慧园区、智慧水利等多行业场景。

其中算法能力页面选取并展示 智慧园区、安全生产、智慧社区、智慧楼宇这四个场景所涉及的算法功能。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.4 任务管理


因为很多的算法功能,通常都是由不同的算法模型,组合搭建,同时搭配算法业务逻辑,就可以实现不同的算法功能。

比如AI视觉中台上的功能,也梳理了一个功能清单,可供参考:
【腾讯文档】https://docs.qq.com/sheet/DWHFiV0V2cGd6cUVM
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

所以可以通过不同的算法模型组合,开发各类算法功能,点击平台上的“新建”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
因为本文主要是“离岗识别”,可以在“任务名称”里面手动输入。

在视频源里面,选择相应的视频流。

而离岗识别中,由于用到了目标追踪算法,所以跳帧输入跳帧数,这里填写“3”,也可相应修改。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
模型列表中,可以选择模型,这里离岗识别,主要用人体来监测,所以先选择“person”人体检测模型。追踪选择“启用”,追踪阈值可以填写“0.45”,再点击“保存”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
可以看到离岗识别功能,已经新建完成。下面还要针对视频流,设置相应的监测区域。

点击中台页面上的“算法配置”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
进入到任务配置里面,点击“添加功能”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

针对摄像头中的位置,设置监测区域,点击“刷新截图”,从而获取摄像头画面。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

因为前面选择了“person”人体检测算法,而在平台中也内置了,由人体组成的一些算法功能。

所以在右上角的算法功能中,先选择“在/离岗检测”。

在离岗告警的时候,我们想看到告警图片,所以保存图片,我们也设置成“是”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

点击图片中绘制的工具,进行绘制。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

绘制好区域后,会跳出相关的设置参数,进行设置。

最下面的持续时间,这里大白设置了2,也可以相应调整,表示当离岗2秒钟的时候,会自动告警提示,最后点击“确定”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

设置完成后,在功能页面,可以看到相应的“在离岗检测”功能。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

点击返回“任务管理”,可以看到目前的状态时“关闭”,点击“查看”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
选择弹窗下面的“修改”,将状态调整成“启用”,再点击“确定”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

可以看到功能开始自动启动,点击“线上状态”,可以看到算法功能启动中。即会视频流加载,算法模型加载等,最终变成“运行中”,即表示已经正常运行。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
注意:

不过需要注意的是,不同的手机由于芯片的不同,算法模型加载也可能会有问题,那么当运行状态出现”模型加载失败“的时候,就需要修改模型运行的方式了,是用DSP,还是GPU或者CPU等。

首先打开Aidlux中的终端,进入zhongtai/hq_service/config,修改其中的“config.ini”。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
在“#设备推理形式”中,系统默认是DSP,即2,其他还有多种模式:

-1(在CPU上推理)、0(在GPU上推理)、1(混合模式推理)

可以修改成1,0,-1,都一个个进行尝试,看最后哪一个在手机上运行成功。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

进入终端后,按“i”,进入修改模型,将2修改成1,再按Esc键,按shift+“:”,输入“wq!”节课保存修改的内容。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.4  视频监控管理


运行成功后,进入“视频监控管理”,就可以看到加载成功后的视频画面,其中包含了监测区域以及人体对的框。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
当人体离开监测区域2秒以上,既可以开始告警。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.5 告警日志


再点开告警日志,可以看到刚刚告警的一些历史图片,即可实时查看。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.6 智能管理


当然在实际项目中,还会用到比如人脸识别、工服识别的项目需求,而在这类项目中,就要提前录入服装的图片,人脸的图片。

所以在“智能管理”里面,可以进行工服、人脸的图片录入,后面再通过项目的方式,教大家设置。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

6.7 用户信息


当然在“用户信息”中,可以看到当前设备的激活时间。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
如果需要在AI边缘设备上,延长激活时间或者购买永久权限,都可以联系我们。
当然在“联系我们”板块,也可以快速找到相应的工作人员。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

7 AI项目资源库:更多AI实战项目汇总

以上就是本文在离岗识别的相关内容,主要包含PC端的代码验证,算法模型的转换,AI视觉中台的功能使用。

当然本文的项目,只是展示了”在离岗识别“的项目功能,还有更多的项目算法功能,大白团队也在编写中,大家可以关注下方公众号,回复“在离岗识别”,获取相关的资源链接。


万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

推荐阅读

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

AIHIA | AI人才创新发展联盟2023年盟友招募

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

AI融资 | 智能物联网公司阿加犀获得高通5000W融资

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

Yolov5应用 | 家庭安防告警系统全流程及代码讲解

万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

江大白 | 这些年从0转行AI行业的一些感悟

注意:人工智能行业,从算法研究、算法适配到项目落地,有很多流程。
为了便于大家学习交流,大白创建了一些不同方向的行业交流群
目前主要开设:AI视觉软件应用群、AI训练营开发者群企业级模型适配群,AI交流群
大家可以根据自己的兴趣爱好,加入对应的微信群,一起交流学习!
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
此外大白和数十名志同道合的AI小伙伴,一起筹备创建了AIHIA人才联盟。联盟网站:www.aihiamgc.com
目前已有200+名盟友,已举办30多场技术主题分享及行业圆桌论坛,以及300多场线上会议,也欢迎大家加入。
万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别
© THE END 
大家一起加油! 万字长文,深入浅出,手把手教你AI项目实战之人员在离岗识别

© 版权声明

相关文章

暂无评论

暂无评论...