CN109446946A - 一种基于多线程的多摄像头实时检测方法 - Google Patents
一种基于多线程的多摄像头实时检测方法 Download PDFInfo
- Publication number
- CN109446946A CN109446946A CN201811197765.3A CN201811197765A CN109446946A CN 109446946 A CN109446946 A CN 109446946A CN 201811197765 A CN201811197765 A CN 201811197765A CN 109446946 A CN109446946 A CN 109446946A
- Authority
- CN
- China
- Prior art keywords
- face
- pedestrian
- network
- picture
- yolo3
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
基于多线程的多摄像头实时检测方法,首先加载基于ResNet50和三重损失函数的行人重识别网络,构建检测人脸库,采用face_recognition库提取人脸库的特征向量,之后开始构建多线程***,应用multiprocess库中的Queue构建队列,并采用daemon守护进程,之后通过Yolo3将人物定位并用Opencv裁剪出来,之后使用face_recognition库中的识别模块进行识别,若无人脸则采用行人重识别网络进行识别,最后通过多线程并行处理,可以在监控视频中对多个摄像头中的目标进行实时检测。
Description
技术领域
本发明涉及对摄像头拍摄视频进行实时检测的方法。
背景技术
由于安防领域发展迅速,摄像头功能日益强大,现有的摄像头已经普遍具有通讯协议,可以实现有线和无线的远程视频读取。同时,由于安全的需求上升,越来越多的摄像头被安装在建筑物,街道等地方,起到监控的作用。由此警方等可以通过摄像头进行人物的监控,并且实时的处理多个摄像头提高效率。
人脸识别与行人重识别是识别特定行人的关键技术。但是由于目前行之有效的方法多采用深度学习神经网路,它占用内存大,同时计算量也较多,对于实时监控的场景很难进行处理。所以使用多线程技术,对于多个摄像头使用多个线程进行并行处理,这样子可以保证对于多源摄像头的视频不会有先后影响,同时也能保证一个较高的实时性。
发明内容
本发明要克服现有技术的上述缺点,提供一种基于多线程的多摄像头实时检测方法。
为了要实现实时性目的,本发明设计了一种基于多线程的多摄像头实时检测方法,可以有效提高实时性的要求,并不降低人脸识别以及行人重识别的精度。这对于实时目标检测,在效率上是一个非常大的提升,因为同一时间处理摄像头的数量增加,可以利用的信息也同时变多,使用者也能从更多的信息判断检测是否准确。
本发明实现上述发明目的所采用的技术方案为:
一种多线程的多摄像头实时监测方法,包括以下步骤:
步骤1.加载行人重识别网络:采用预训练的ResNet50网络,将ResNet50中全连接层前的输出作为行人特征,并采用三重损失函数构造网络,并通过Market1501数据集训练。
步骤2.建立人脸库,加载人脸识别网络:选用Python的第三方库dlib,和face_recognition进行人脸识别的判断,将检测目标的人脸图片加入到本地库进行特征提取。
步骤3.读取监控摄像头视频:监控摄像头大多采用有线的形式进行配置,通常搭载有Rstp协议,使用Opencv中的VideoCapture函数进行视频读取。
步骤4.人物裁剪步骤:将预下载的Yolo3权重放入指定目录下,加载Yolo3网络,将从摄像头读取的图片放入Yolo3中,得到行人的坐标,并裁剪出行人图片进行识别。
步骤5.构建多线程框架的步骤:选用Python自带的多线程库multiprocess,并设置多个队列用来存放多个摄像头的图片(数量取决于摄像头数量)。并通过主程序中的process.start()函数启动多线程服务。并采用daemon守护进程,保证其在后台运行,是多线程与运行前的环境隔离开来,保证父进程的运行。
步骤6.人物检测步骤:在单个子进程中,使用Yolo3的目标检测网络进行人物的识别,将裁剪下来的图片放入face_recoginition的人脸检测模块中检测是否有清晰人脸,如果有人脸的话可以进行人脸识别,在没有人脸的情况下,如果行人库中有人的话,则进行匹配,如果有匹配到人(欧式距离小于阈值),则识别成功并将人物框出来加上标签,如果没有匹配到的人,则无法判断;如果行人库没有人的话,则无法判断的
与现有技术相比,本发明技术方案的优点有:
(1)本发明充分利用电脑内存空间,使其能尽可能处理多个摄像头,提升工作效率,并降低成本。
(2)采用Python本身自带的第三方库,具有移植方便,易于理解的优点。
附图说明
图1:本发明方法的流程图;
图2:本发明的多线程设置流程图;
图3:人脸特征保存流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图和实施例对本发明作进一步的详细描述。
一种基于多线程的多摄像头实时检测方法,含有一下步骤:
(1)加载训练过的行人重识别网络
步骤11:选择现有行人重识别网络,目前一些开源网站上已有在Market1501数据集上达到了94%的准确度,基本上能满足需求。选择的网络的结构如下所述,ResNet50作为骨干网络,将最后的全连接层除去,并对一下3个block进行处理,res5a,res5b做池化处理,并左右拼接后经过输出为1024维的全连接层得到一个1024维的特征向量,同时对res5c做池化处理,直接展开成2048维的特征向量。将这两个叠加作为最终特征向量。
步骤12:添加三重损失函数,加入hard_triplet损失函数,softmax损失函数和ring损失函数,构建成最后的行人重识别网络。可以将自己的数据集进行微调,已达到更好的效果。
(2)建立人脸库,并加载人脸识别模型
步骤21:每个实例存放2-3张免冠正脸照片,其中照片最好不经过任何处理,否则会影响精度。接着按照命名规则保存在一个文件夹中,如李明对应编号是0003,则照片命名为0003_*.jpg,*为这个实例面部的照片顺序。
步骤22:在环境中安装dlib和face_recognition第三方库,并且可以先将人脸库的人脸图片通过特征向量保存。
(3)读取摄像头监控画面步骤
步骤31:使用Opencv中的VideoCapture类进行摄像头视频的读取。将带有RTSP协议摄像头的用户名,密码以及IP地址分别定义好,并按照指定格式进行填写,每个公司的摄像头都不一样。
步骤32:使用Opencv中的read()函数将VideoCapture类中的图片读取出来,提供我们进行处理。
(4)人物检测步骤
步骤41:将预下载的Yolo3权重放入指定目录下,Yolo3是一种占用空间较少的目标检测神经网络,准确率相比于Faster-Rcnn低,但是足够使用。
步骤42:加载Yolo3网络,将从摄像头读取的图片放入Yolo3中,得到行人的坐标,并裁剪出行人图片进行识别。
(5)构建多线程框架的步骤
步骤51:加载Python自带的Multiprocess库,并设置多个队列,其数目与想要读取摄像头视频的数量相同,容量设置为2。
步骤52:设定两个队列操作,压队操作将摄像头图片读取并压入队列中,出队操作将图片从队列压出,并进行处理。
步骤53:每个子线程将之前加载的行人重识别和Yolo3网络读取并进行独立的分析,以此来并行操作,提升处理速度。
(6)人物检测步骤:
步骤61:首先摄像头的图片通过RSTP协议远程读取之后,在单个子进程中,使用Yolo3的目标检测网络进行人物的识别,并通过Yolo3输出的坐标将人物裁剪下来。
步骤62:将裁剪下来的图片放入face_recoginition的人脸检测模块中检测是否有清晰人脸,如果有人脸的话可以进行人脸识别,如果没有人脸则跳入步骤3。进行人脸识别的时候如果能够十分确定行人的信息(达到阈值下),则将当前的信息记入行人库中。
步骤63:在没有人脸的情况下,首先是看行人库的情况,如果行人库中有人的话,则进行匹配,如果有匹配到人(欧式距离小于阈值),则识别成功并将人物框出来加上标签,如果没有匹配到的人,则无法判断。如果行人库没有人的话,则无法判断。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (1)
1.一种基于多线程的多摄像头实时检测方法,包括以下步骤;
(1)加载训练过的行人重识别网络;
选择现有行人重识别网络,将ResNet50网络最后部分的结构转换成3个分别的block,并分别将其的输出转化为最后的3072维的特征;最后添加3重损失函数作为行人重识别网络的步骤;
(2)建立人脸库,并加载人脸识别模型;
步骤21,每个实例存放2-3张免冠正脸照片,并以编号+排列序号命名图片,保存在指定目录下的步骤;
步骤22,在指定目录下建立图片名与人名相应的文件;
(3)读取摄像头监控画面步骤;
步骤31,使用Opencv中的VideoCapture类进行摄像头视频的读取;
步骤32,使用Opencv中的read()函数将VideoCapture类中的图片图区出来并加入到队列中;
(4)人物裁剪步骤;
步骤41,将预下载的Yolo3权重放入指定目录下,加载Yolo3网络;
步骤42,将从摄像头读取的图片放入Yolo3中,得到行人的坐标,并裁剪出行人图片进行识别的步骤;
(5)构建多线程框架的步骤;
步骤51,加载Python自带的Multiprocess库,设定两个队列操作;
步骤52,每个子线程将之前加载的行人重识别和Yolo3网络读取并进行独立的分析;
(6)人物检测步骤;
步骤61,在单个子进程中,使用Yolo3的目标检测网络进行人物的识别,将裁剪下来的图片放入face_recoginition的人脸检测模块中检测是否有清晰人脸;
步骤62,如果有人脸的话可以进行人脸识别,在没有人脸的情况下,如果行人库中有人的话,则进行匹配,如果有匹配到人(欧式距离小于阈值),则识别成功并将人物框出来加上标签,如果没有匹配到的人,则无法判断;如果行人库没有人的话,则无法判断的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811197765.3A CN109446946B (zh) | 2018-10-15 | 2018-10-15 | 一种基于多线程的多摄像头实时检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811197765.3A CN109446946B (zh) | 2018-10-15 | 2018-10-15 | 一种基于多线程的多摄像头实时检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446946A true CN109446946A (zh) | 2019-03-08 |
CN109446946B CN109446946B (zh) | 2022-03-18 |
Family
ID=65546376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811197765.3A Active CN109446946B (zh) | 2018-10-15 | 2018-10-15 | 一种基于多线程的多摄像头实时检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446946B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948490A (zh) * | 2019-03-11 | 2019-06-28 | 浙江工业大学 | 一种基于行人重识别的员工特定行为记录方法 |
CN110457991A (zh) * | 2019-06-24 | 2019-11-15 | 平安科技(深圳)有限公司 | 图片特征值文件优化方法、装置、终端与存储介质 |
CN111027462A (zh) * | 2019-12-06 | 2020-04-17 | 长沙海格北斗信息技术有限公司 | 跨多摄像头的行人轨迹识别方法 |
CN112818917A (zh) * | 2021-02-24 | 2021-05-18 | 复旦大学 | 一种实时行人检测与重识别方法及装置 |
CN113095199A (zh) * | 2021-04-06 | 2021-07-09 | 复旦大学 | 一种高速行人识别方法及装置 |
CN113591809A (zh) * | 2021-09-28 | 2021-11-02 | 广州思林杰科技股份有限公司 | 一种网点内客户行动轨迹确定方法及装置 |
CN114495011A (zh) * | 2022-02-15 | 2022-05-13 | 辽宁奥普泰通信股份有限公司 | 基于目标检测的非机动车和行人非法闯入识别方法、存储介质和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016341A (zh) * | 2017-03-03 | 2017-08-04 | 西安交通大学 | 一种嵌入式实时人脸识别方法 |
US20180005343A1 (en) * | 2016-07-01 | 2018-01-04 | Digimarc Corporation | Image-based pose determination |
CN108038462A (zh) * | 2017-12-22 | 2018-05-15 | 深圳英飞拓科技股份有限公司 | 一种对实时视频进行人脸检测并识别的方法及装置 |
CN108564052A (zh) * | 2018-04-24 | 2018-09-21 | 南京邮电大学 | 基于mtcnn的多摄像头动态人脸识别***与方法 |
CN108596010A (zh) * | 2017-12-31 | 2018-09-28 | 厦门大学 | 行人重识别***的实现方法 |
-
2018
- 2018-10-15 CN CN201811197765.3A patent/CN109446946B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005343A1 (en) * | 2016-07-01 | 2018-01-04 | Digimarc Corporation | Image-based pose determination |
CN107016341A (zh) * | 2017-03-03 | 2017-08-04 | 西安交通大学 | 一种嵌入式实时人脸识别方法 |
CN108038462A (zh) * | 2017-12-22 | 2018-05-15 | 深圳英飞拓科技股份有限公司 | 一种对实时视频进行人脸检测并识别的方法及装置 |
CN108596010A (zh) * | 2017-12-31 | 2018-09-28 | 厦门大学 | 行人重识别***的实现方法 |
CN108564052A (zh) * | 2018-04-24 | 2018-09-21 | 南京邮电大学 | 基于mtcnn的多摄像头动态人脸识别***与方法 |
Non-Patent Citations (1)
Title |
---|
JUN XIANG 等: "Person Re-identification Based on Feature Fusion and Triplet Loss Function", 《2018 24TH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION (ICPR)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948490A (zh) * | 2019-03-11 | 2019-06-28 | 浙江工业大学 | 一种基于行人重识别的员工特定行为记录方法 |
CN110457991A (zh) * | 2019-06-24 | 2019-11-15 | 平安科技(深圳)有限公司 | 图片特征值文件优化方法、装置、终端与存储介质 |
CN110457991B (zh) * | 2019-06-24 | 2024-05-31 | 平安科技(深圳)有限公司 | 图片特征值文件优化方法、装置、终端与存储介质 |
CN111027462A (zh) * | 2019-12-06 | 2020-04-17 | 长沙海格北斗信息技术有限公司 | 跨多摄像头的行人轨迹识别方法 |
CN112818917A (zh) * | 2021-02-24 | 2021-05-18 | 复旦大学 | 一种实时行人检测与重识别方法及装置 |
CN112818917B (zh) * | 2021-02-24 | 2022-03-22 | 复旦大学 | 一种实时行人检测与重识别方法及装置 |
CN113095199A (zh) * | 2021-04-06 | 2021-07-09 | 复旦大学 | 一种高速行人识别方法及装置 |
CN113095199B (zh) * | 2021-04-06 | 2022-06-14 | 复旦大学 | 一种高速行人识别方法及装置 |
CN113591809A (zh) * | 2021-09-28 | 2021-11-02 | 广州思林杰科技股份有限公司 | 一种网点内客户行动轨迹确定方法及装置 |
CN114495011A (zh) * | 2022-02-15 | 2022-05-13 | 辽宁奥普泰通信股份有限公司 | 基于目标检测的非机动车和行人非法闯入识别方法、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109446946B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446946A (zh) | 一种基于多线程的多摄像头实时检测方法 | |
US10242250B2 (en) | Picture ranking method, and terminal | |
CN107481327B (zh) | 关于增强现实场景的处理方法、装置、终端设备及*** | |
CN103207870B (zh) | 一种照片分类管理方法、服务器、装置及*** | |
CN104331509A (zh) | 照片管理方法及装置 | |
CN102880634B (zh) | 基于云的智能人脸识别检索方法 | |
CN108256439A (zh) | 一种基于循环生成式对抗网络的行人图像生成方法及*** | |
WO2021238826A1 (zh) | 一种实例分割模型的训练方法、装置、实例分割方法 | |
CN113365147B (zh) | 基于音乐卡点的视频剪辑方法、装置、设备及存储介质 | |
CN103617432A (zh) | 一种场景识别方法及装置 | |
WO2015026980A1 (en) | Method, server and system for setting background image | |
CN110163041A (zh) | 视频行人再识别方法、装置及存储介质 | |
CN101300588A (zh) | 确定收集中的特定人的方法 | |
CN113627402B (zh) | 一种图像识别方法及相关装置 | |
WO2016145844A1 (zh) | 一种图片排序方法和相应的图片存储显示设备 | |
CN110765134A (zh) | 档案建立方法、设备及存储介质 | |
CN109670517A (zh) | 目标检测方法、装置、电子设备和目标检测模型 | |
CN105224913A (zh) | 一种物品数量检测方法及装置 | |
CN113963304B (zh) | 基于时序-空间图的跨模态视频时序动作定位方法及*** | |
CN103428537A (zh) | 一种视频处理方法和装置 | |
CN105631404B (zh) | 对照片进行聚类的方法及装置 | |
CN103501410B (zh) | 拍摄的提醒方法、装置及检测模式的生成方法、装置 | |
CN106250396B (zh) | 一种图像标签自动生成***及方法 | |
Presa-Reyes et al. | Deep learning with weak supervision for disaster scene description in low-altitude imagery | |
CN112101387A (zh) | 显著性元素识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |