一种基于目标检测的人员状态分析方法
文献发布时间:2023-06-19 11:11:32
技术领域
本发明涉及一种人员状态分析方法,具体涉及一种基于目标检测的人员状态分析方法。
背景技术
计算机视觉领域中,目标检测是最重要的研究领域之一,其广泛应用于智能监控安防领域中。基于目标检测技术进行人员状态识别对于安防监控有着重要作用。人员状态分析检测中,传统的方法大多使用传感器或人为监管实现对人员工作状态的检测,以此来判断人员是在认真工作还是在偷懒睡觉等工作状态,上述方法人工成本高且效率低,性能较差且实时性不强。
现有相关技术针对这一不足提供了一些解决方案,但这些解决方案在实践中由于条件限制往往缺乏可行性。例如:公开号为CN110909684A的中国专利申请公开了一种基于人体检测的工作状态检查系统,包括:视频图像获取模块,用于实时获取工作人员在工作场景下的视频图像;图像分析模块,用于对每一帧输入的所述视频图像进行图像检测分析,并根据所检测到的所述工作人员的人体姿态信息,得出所述工作人员在所述工作场景下的工作状态;工作状态记录模块,用于对所述工作人员的所述工作状态进行数据记录,并将记录的所述数据存储于一数据库中,该发明通过实时采集工作人员在工作场景下的视频图像,并通过对每一帧视频图像进行人体姿态检测,然后依据预设的考评规则对人体姿态是否符合规定要求进行评价分析,所作出的检查结果更加客观、真实。但是该方法只适合应用于对单个目标的单一监测,不适合工厂、公司等人员较多的场所使用,无法实时检测工作人员在特定区域内的数量以及判断人员工作状态,因此需要一种通用性更广,实时性更强,兼具准确的识别分析效果的人员状态分析方法。
发明内容
针对现有技术的不足,本发明提出了一种基于目标检测的人员状态分析方法,通过实时检测视频中的行人,并对检测出的结果结合运动检测以及状态分析作进一步判断,能够很好地统计人员在特定区域内数量以及判断人员工作状态,实时性强,准确度高。
为实现上述技术方案,本发明提供了一种基于目标检测的人员状态分析方法,具体包括如下步骤:
S1、行人检测:对视频中的行人进行检测,获取行人的检测坐标、分数和数量;
S2、运动检测:在当前视频画面中,使用背景差分法提取运动块;
S3、目标完整性判断:判断行人目标是否完整在感兴趣区域ROI中,具体包括完整检测或者不完整检测,其中完整检测的步骤为:首先通过前端界面控制开关设置ROI区域,根据ROI区域坐标同时调用Opencv接口得到ROI区域的二值图像,每设置一个ROI区域就得到一个二值图像,最多不超过四个;然后遍历步骤S1中检测到的行人目标,判断第一个目标检测框的四个顶点坐标在调用Opencv接口得到的ROI区域的二值图像中的第一个ROI二值图像的像素值是否都等于255,若是,则说明此目标在ROI中是完整目标,保存此目标,接着对第二目标进行判断;若不是,则将第一个目标检测框的四个顶点坐标放置到第二个ROI二值图像中判断目标顶点的像素值,以此类推,最后得到在所有ROI中的完整行人目标CompleteObj;不完整检测的步骤为:首先同完整检测中获取ROI区域二值图像步骤一致来获取多个ROI二值图像;然后遍历步骤S1中检测到的行人目标,若第一个目标框的四个顶点坐标在调用Opencv接口得到的第一个ROI二值图像中对应的像素值只要有一个为0且与此ROI区域的相交面积不为0,则说明此目标在ROI中是不完整的,保存此目标,接着对第二个目标进行判断;反之,则将第一个目标框的四个顶点坐标放置到第二个ROI二值图像中判断目标顶点的像素值以及与第二个ROI二值图像的相交面积,以此类推,最后得到在ROI中的不完整行人目标NoCompleteObj;;
S4、获取行人运动块:根据步骤S2中得到的运动块以及步骤S3中通过完整检测得到的完整行人目标CompleteObj或者不完整检测得到的不完整行人目标NoCompleteObj,首先遍历运动块目标,计算第一个运动块目标与每个行人目标的IOU,若IOU大于设定的阈值,表示这个行人目标处于运动状态,并保留此时的运动块,且对剩余的行人目标不进行遍历,接着对第二个运动块做同样的判断,最后获取到属于行人的运动块目标;
S5、计算ROI中的运动面积:在每个ROI中,遍历步骤S4中获取到的所有运动块,分别计算每个运动块与ROI的相交面积,并相加得到这个ROI中的运动面积motion_area;
S6、判断是否达到阈值条件并计数:根据前端界面设置的判断状态和阈值,只要出现motion_area满足阈值条件的,则停止循环,记cnt_meet_thre加1,表示这一帧ROI中的运动面积满足条件;反之记cnt_nomeet_thre加1,表示在这一帧中全部ROI中的运动面积均没达到阈值条件;
S7、统计间隔时间内运动强度达到设定阈值的次数占比:设置统计的间隔时间T,实时统计在T时间间隔内cnt_meet_thre与cnt_nomeet_thre值,并计算运动强度达到设定阈值的次数占总识别次数的比重,公式为ratio_corr=cnt_meet_thre/(cnt_meet_thre+cnt_nomeet_thre);
S8、发出告警:当步骤S7中计算出的占比ratio_corr大于设定的阈值,发出告警。
优选的,所述步骤S8中占比ratio_corr大于设定的阈值发出告警包括如下三种情形:(1)若界面设置的状态为大于,ratio_corr表示在固定时间间隔内ROI中的运动面积motion_area大于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都很大,有人员闯入监控区域长时间作案,此时发出告警;(2)若界面设置的状态为小于,ratio_corr表示在固定时间间隔内motion_area小于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都很小,有人在偷懒睡觉或不在工作状态,此时发出告警;(3)若界面设置的状态为等于,ratio_corr表示在固定时间间隔内motion_area等于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都维持在固定值,也可看作人员工作强度小或大,这要根据界面设置的运动强度阈值来分析,此时发出告警。
优选的,所述步骤S11中具体通过如下步骤进行行人检测:
S11、使用训练好的行人检测模型,对视频中的行人检测,获取行人的检测坐标和分数;
S12、设置ROI区域:根据前端界面设置需要检测报警的区域,可设置多个区域,最多不超过四个,同时可以获取到ROI区域的坐标;
S13、计算检测目标与ROI区域的IOU:遍历步骤S11中检测到的行人目标,首先计算第一个目标分别与每个ROI区域的IOU,若目标与某个ROI的IOU值大于设定的阈值,则记在ROI内识别到的目标个数加1,且对剩余的ROI不进行遍历,接着对第二个目标进行同样的判断,最后得到在所有ROI内的行人总个数percnt;
S14、设定时间:若步骤S13中得到的ROI内行人个数percnt在前端界面设定的状态state下满足阈值条件,则开始计时;反之不计时;
S15、发出告警:以步骤S14中的开始计时时间为起始时间,统计percnt满足条件的连续时长process_t,若process_t大于设定时间阈值,则发出告警;若percnt只要有一帧不满足阈值条件,则对计时时间清零,当percnt再次满足条件时,再重新开始计时。
优选的,所述步骤S11中行人检测模型的训练具体包括如下步骤:
S111、模型训练:首先对采集到的行人数据集进行标注;然后基于Yolov5框架,将网络的FOCUS层修改为普通卷积层和DW层;然后设置训练配置文件,将训练样本导入网络进行训练迭代,来获得网络层参数,获得网络模型;
S112、模型预测:基于步骤S111中训练好的网络模型,导入视频帧图片进行测试,获得网络输出层;然后对网络输出层特征进行NMS及分数过滤来获得行人的检测坐标框和分数。
优选的,所述步骤S14中前端界面设定的状态state下满足阈值条件包括ROI内行人个数percnt小于或者等于或者大于设定的阈值。
优选的,所述步骤S15中,process_t大于设定时间阈值则发出告警包括如下三种情况:(1)若界面设定状态为大于,则process_t表示percnt大于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间超出预设值,有闲杂人员进入了监控区域,此时发出告警;(2)若界面设定状态为小于,则process_t表示percnt小于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间小于预设值,有人员没有进入工作区域,此时发出告警;(3)若界面设定状态为等于,则process_t表示percnt等于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间等于预设值,人员长期在监控区域内停留,此时发出告警。
优选的,所述步骤S111中除了对采集到的行人数据集进行标注,还可以额外选取一部分非行人的类别图片做为负样本来参与训练。
优选的,所述步骤S6中前端界面设置的判断状态为运动面积motion_area大于或者小于或者等于阈值。
本发明提供的一种基于目标检测的人员状态分析方法的有益效果在于:
1)本基于目标检测的人员状态分析方法通过实时检测视频中的行人,计算在ROI区域中的人员个数,计算ROI区域中的运动面积,统计固定时间间隔内检测达到阈值条件的次数占比,并对检测出的结果结合运动检测以及状态分析作进一步判断,能够很好地统计人员在特定区域内数量以及判断人员工作状态,实时性强,准确度高;
2)本基于目标检测的人员状态分析方法将深度学习检测与运动前景检测进行结合,可以减少因为非目标物体运动而导致的误报,同时也利用运动前景信息用来去除一直被深度学习目标检测所检测到而不动的目标,大幅提高运动目标信息的准确性;
3)本基于目标检测的人员状态分析方法通过统计间隔时间内运动强度达到设定阈值的次数占比,可以实时反应特定区域内人员的活动情况,进而准确判断人员工作状态,并实现自动告警,可以达到全天候监管效果,极大地缩减了人工成本;
4)本基于目标检测的人员状态分析方法通过计算运动块目标与每个行人目标的IOU,可以更加精准的获取到属于行人的运动块目标,消除非行人运动块可能造成的干扰,提高人员状态分析的准确性。
5)本基于目标检测的人员状态分析方法能够对人员数量检测和人员活动强度分析检测同时或者独立判断,以满足不同客户在不同场景下的应用需求。
附图说明
图1为本方法运行的流程图。
图2为本发明中获取行人的检测坐标、分数和数量的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明的保护范围。
实施例:一种基于目标检测的人员状态分析方法。
参照图1和图2所示,一种基于目标检测的人员状态分析方法,具体包括如下步骤:
S1、行人检测:对视频中的行人进行检测,获取行人的检测坐标、分数和数量;具体包括如下步骤:
S11、模型训练:首先对采集到的行人数据集进行标注,并额外选取一部分非行人的其它类别图片做为负样本来参与训练,以减少误报;然后基于Yolov5框架,将网络的FOCUS层修改为普通卷积层与DW层(DW层表示深度可分离卷积层),以此加快网络运行速度同时能够让硬件支持层计算;最后设置训练配置文件,将训练样本导入网络进行训练迭代,来获得网络层参数,即为网络模型;
S12、模型预测:训练结束后,基于S11中训练好的网络模型,导入视频帧图片进行测试,获得网络输出层;然后对网络输出层特征进行NMS(非极大值抑制)及分数过滤来获得最终的检测坐标框和分数;
S13、设置ROI(ROI表示感兴趣区域):根据前端界面设置需要检测报警的区域,可设置多个区域,最多不超过四个,同时可以获取到ROI区域的坐标;
S14、计算检测目标与ROI区域的IOU(IOU表示为检测目标矩形区域与ROI矩形区域的交集与其中最小矩形面积的比值):遍历S12中检测到的行人目标,首先计算第一个目标分别与每个ROI区域的IOU,若目标与某个ROI的IOU值大于设定的阈值,则记在ROI内识别到的目标个数加1,且对剩余的ROI不进行遍历,接着对第二个目标进行同样的判断,最后得到在所有ROI内的行人总个数percnt;
S15、设定时间:若S14中得到的ROI内行人个数percnt在前端界面设定的某种状态state下满足阈值条件,则开始计时;反之不计时,这里的前端界面设定的状态state下满足阈值条件是指:ROI内行人个数percnt小于或者等于或者大于设定的阈值,可以根据实际情况在前端界面进行设定;
S16、发出告警:以S15中的开始计时时间为起始时间,统计percnt满足条件的连续时长process_t,这里process_t表示的含义为:(1)若界面设定状态为大于,则process_t表示percnt大于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间超出预设值,有闲杂人员进入了监控区域,此时发出告警;(2)若界面设定状态为小于,则process_t表示percnt小于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间小于预设值,有人员没有进入工作区域,此时发出告警;(3)若界面设定状态为等于,则process_t表示percnt等于设定阈值的持续时长,若process_t又大于设定的时间阈值,表示在ROI区域中的人数长时间等于预设值,人员长期在监控区域内停留,此时发出告警。若percnt只要有一帧不满足阈值条件,表示人员数量在正常范围,则对计时时间清零,当percnt再次满足条件时,再重新开始计时。
S2、运动检测:在当前视频画面中,使用背景差分法提取运动块。
S3、目标完整性判断:判断行人目标是否完整在ROI中,完整检测或者不完整检测由前端界面控制开关决定,操作前可以根据实际情况在前端界面进行设定;
完整检测的步骤为:首先通过前端界面控制开关设置ROI区域,根据ROI区域坐标同时调用Opencv接口得到ROI区域的二值图像,每设置一个ROI区域就得到一个二值图像,最多不超过四个;然后遍历步骤S1中检测到的行人目标,判断第一个目标检测框的四个顶点坐标在调用Opencv接口得到的ROI区域的二值图像中的第一个ROI二值图像的像素值是否都等于255,若是,则说明此目标在ROI中是完整目标,保存此目标,接着对第二目标进行判断;若不是,则将第一个目标检测框的四个顶点坐标放置到第二个ROI二值图像中判断目标顶点的像素值,以此类推,最后得到在所有ROI中的完整行人目标CompleteObj;
不完整检测的步骤为:首先同完整检测中获取ROI区域二值图像步骤一致来获取多个ROI二值图像;然后遍历步骤S1中检测到的行人目标,若第一个目标框的四个顶点坐标在调用Opencv接口得到的第一个ROI二值图像中对应的像素值只要有一个为0且与此ROI区域的相交面积不为0,则说明此目标在ROI中是不完整的,保存此目标,接着对第二个目标进行判断;反之,则将第一个目标框的四个顶点坐标放置到第二个ROI二值图像中判断目标顶点的像素值以及与第二个ROI二值图像的相交面积,以此类推,最后得到在ROI中的不完整行人目标NoCompleteObj;
实际操作过程中,在需要严格侦测人员活动区域时选择完整检测;在不需要严格侦测人员活动区域时选择不完整检测,此时只要人员和ROI区域有接触就算人员已经进入了监控范围,操作人员可以根据实际情况进行设定,提高本应用的适应性。
S4、获取行人运动块:根据步骤S2中得到的运动块以及步骤S3中通过完整检测得到的完整行人目标CompleteObj或者不完整检测得到的不完整行人目标NoCompleteObj,首先遍历运动块目标,计算第一个运动块目标与每个行人目标的IOU,若IOU大于设定的阈值,表示这个行人目标处于运动状态,并保留此时的运动块,且对剩余的行人目标不进行遍历,接着对第二个运动块做同样的判断,最后获取到属于行人的运动块目标,通过计算运动块目标与每个行人目标的IOU,可以更加精准的获取到属于行人的运动块目标,消除非行人运动块可能造成的干扰,提高人员状态分析的准确性。
S5、计算ROI中的运动面积:在每个ROI中,遍历步骤S4中获取到的所有运动块,分别计算每个运动块与ROI的相交面积,并相加得到这个ROI中的运动面积motion_area;
S6、判断是否达到阈值条件并计数:根据前端界面设置的判断状态(运动面积大于或者小于或者等于阈值,可以根据实际要求进行设定)和阈值,只要出现motion_area满足阈值条件的,则停止循环,记cnt_meet_thre加1,表示这一帧ROI中的运动面积满足条件;反之记cnt_nomeet_thre加1,表示在这一帧中全部ROI中的运动面积均没达到阈值条件;
S7、统计间隔时间内运动强度达到设定阈值的次数占比:设置统计的间隔时间T,实时统计在T时间间隔内cnt_meet_thre与cnt_nomeet_thre值,并计算运动强度达到设定阈值的次数占总识别次数的比重,公式为ratio_corr=cnt_meet_thre/(cnt_meet_thre+cnt_nomeet_thre);
S8、发出告警:当步骤S7中计算出的占比ratio_corr大于设定的阈值,这里表示的含义有三种,分别是:(1)若界面设置的状态为大于,ratio_corr表示在固定时间间隔内ROI中的运动面积motion_area大于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都很大,有人员闯入监控区域长时间作案,此时发出告警;(2)若界面设置的状态为小于,ratio_corr表示在固定时间间隔内motion_area小于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都很小,有人在偷懒睡觉或不在工作状态,此时发出告警;(3)若界面设置的状态为等于,ratio_corr表示在固定时间间隔内motion_area等于阈值的检测次数占总检测次数的比值,若ratio_corr大于预设比值,表示人员工作强度在一定时间之内都维持在固定值,也可看作人员工作强度小或大,这要根据界面设置的运动强度阈值来分析,此时发出告警。
本基于目标检测的人员状态分析方法通过实时检测视频中的行人,并对检测出的结果结合运动检测以及状态分析作进一步判断,能够很好地统计人员在特定区域内数量以及判断人员工作状态,实时性强,准确度高;并将深度学习检测与运动前景检测进行结合,可以减少因为非目标物体运动而导致的误报,同时也利用运动前景信息用来去除一直被深度学习目标检测所检测到而不动的目标,大幅提高运动目标信息的准确性;同时通过统计间隔时间内运动强度达到设定阈值的次数占比,可以实时反应特定区域内人员的活动情况,进而准确判断人员工作状态,并实现自动告警,可以达到全天候监管效果,极大地缩减了人工成本;本基于目标检测的人员状态分析方法还通过计算运动块目标与每个行人目标的IOU,可以更加精准的获取到属于行人的运动块目标,消除非行人运动块可能造成的干扰,提高人员状态分析的准确性。本基于目标检测的人员状态分析方法能够对人员数量检测和人员活动强度分析检测同时或者独立判断,以满足不同客户在不同场景下的应用需求。
以上所述为本发明的较佳实施例而已,但本发明不应局限于该实施例和附图所公开的内容,所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
- 一种基于目标检测的人员状态分析方法
- 一种手术人员实时工作状态的预警分析方法及系统