CN110414401B - 一种基于pynq的智能监控***及监控方法 - Google Patents
一种基于pynq的智能监控***及监控方法 Download PDFInfo
- Publication number
- CN110414401B CN110414401B CN201910661356.2A CN201910661356A CN110414401B CN 110414401 B CN110414401 B CN 110414401B CN 201910661356 A CN201910661356 A CN 201910661356A CN 110414401 B CN110414401 B CN 110414401B
- Authority
- CN
- China
- Prior art keywords
- pynq
- module
- calculation
- neural network
- convolutional neural
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种基于PYNQ的智能监控***及监控方法,通过软硬件协同实现目多目标检测分类。主要包括多目标检测模块,进行算法的移植与优化,通用卷积神经网络加速器IP,基于python的API接口。所述PYNQ集成了arm处理器***和FPGA可编程逻辑,软件部分移植了caffe框架,适用于主流人工智能算法,改进了faster‑RCNN算法移植到PYNQ平台实现目标检测功能。FPGA部分使用卷积神经网络加速IP来进行算法推导部分的计算。基于Python的API提供方便的调用接口。本发明具有图像处理速度快,硬件资源需求少,方便移植与开发的优点。
Description
技术领域
本发明涉及基于嵌入式平台的目标检测技术,具体涉及一种基于PYNQ的智能监控***及监控方法。
背景技术
视频监控是安防行业的一个子行业,2010-2017年期间,我国视频监控市场规模从242亿元增长到1124亿元,年均复合率达24.53%。随着我国道路交通基础设施的兴建,以及“平安城市”的建设加速,预计到2020年我国视频监控市场规模有望达到1558亿元,到2023年有望突破1900亿元。而智能化将是视频监控未来长期的一个发展方向。因此人工智能将在监控***中扮演越来越重要的角色。目标检测是计算机视觉和数字图像处理的一个热门方向,也是智能监控***的核心部分,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。由于深度学习的广泛运用,目标检测算法得到了较为快速的发展。
PYNQ开发板,在原有Zynq架构的基础上,添加了对python的支持。使嵌入式编程人员能够在无需设计可编程逻辑电路的情况下即可充分发挥Xilinx Zynq AllProgrammable SoC(APSoC)的功能。PYNQ集成了ARM处理器和FPGA可编程逻辑器件,与常规方式不同的是,通过PYNQ,用户可以使用Python进行APSoC编程,并且代码可直接在PYNQ上进行开发和测试。通过PYNQ,可编程逻辑电路将作为硬件库导入并通过其API进行编程,其方式与导入和编程软件库基本相同。Python作为一种优雅简单的脚本语言,被广泛应用于各个领域,基于Python开发的控制***将有很高的可移植性。
传统的监控***往往需要人工的干预,比如交通事故、盗窃往往需要时候来回放监控错过了最佳时机,具有很大的延时性,而且往往人力资源成本比较高。只要能自动检测出需要的信息,就能及时给出反馈,而且机器代替人工也能降低成本。
发明内容
针对现有技术存在的技术问题,本发明提供了一种基于PYNQ的智能监控***及监控方法。
一种基于PYNQ的智能监控***,包括通过USB连接的摄像头和PYNQ处理***,所述PYNQ处理***包括arm处理器和FPGA,其特征在于所述PYNQ处理***包括多目标检测模块、通用卷积神经网络加速器IP和Python的API接口,所述多目标检测模块移植与优化faster-RCNN多目标检测算法,优化AlexNet网络的结构做为前馈网络,并对检测结果kmeans聚类;所述faster-RCNN多目标检测算法包括建议框的提取模块、SVM分类模块、线性回归修正模块、卷积模块、池化模块、全连接层模块。
进一步的,所述的卷积模块、池化模块、全连接层模块使用FPGA中通用卷积神经网络加速器IP计算。
进一步的,所述的Python的API接口包括通用卷积神经网络加速器IP的配置参数、搬运数据、执行计算、获取状态。
进一步的,所述的建议框的提取模块、SVM分类模块、线性回归修正模块和kmeans聚类模块在arm处理器中计算。
进一步的,所述的arm处理器预处理得特征图存储在DDR,按行输入,采用AXI-lite总线控制,DMA传输图像数据。
进一步的,所述的通用卷积神经网络加速器IP包括计算单元,所述计算单元内部采用行列复用、6级流水,所述通用卷积神经网络加速器IP可选择实现卷积、池化、激活函数的功能,可以自定义核的大小、步长、补0。
一种基于所述的基于PYNQ的智能监控***的监控方法,包括如下步骤:
(1)把训练好的网络权重导入PYNQ的SD卡中,再从SD读取权重到DDR中;
(2)图像采集,控制USB摄像头采集图像,并通过USB接口传输一帧图片到PYNQ上;arm处理器把图像预处理为AlexNet网络的输入格式的特征图写入到DDR中;
(3)调用API配置网络参数,通过AXI_lite控制对应的寄存器,根据每层的网络结构不同,配置核大小、步长、是否补0,以及该层为卷积层还是池化层,是否需要激活函数等信息;
(4)启动通用卷积神经网络加速器IP进行计算,FPGA自动通过DMA从DDR按行搬运特征图数据,计算后把结果写回DDR,循环执行每一层,完成卷积和池化层的正向推导计算;
(5)arm处理器干预,检测标志位判断是否完成计算;
(6)根据锚点盒进行建议框的选取,根据建议框裁剪出可能为目标的部分特征图进行ROI池化,再次调用通用卷积神经网络加速器IP进行全连接层的计算,全连接层的实现是转换成长宽为1的卷积计算;
(7)对全连接层计算结果用支持向量机进行分类,用回归模型修正得到目标的边界框坐标,并用kmeans聚类筛选重复识别的目标。
进一步的,所述的建议框可以配置三种面积、三种尺度,共9种形式的建议框。
本发明适用于主流人工智能算法,具有图像处理速度快,硬件资源需求少,方便移植与开发的优点。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合说明书附图,如图1所示,对本发明的技术方案作进一步说明,具体技术方案如下:
本发明提供了一种基于PYNQ开发平台的智能监控***,包括摄像头和PYNQ处理***,摄像头和PYNQ处理***通过USB连接。所述PYNQ处理***包括arm处理器和FPGA。摄像头采集图像信息,通过USB传输给arm处理器预处理,处理结果再输入FPGA进行正向推导,快速检测多目标,并作出对应的控制。通过软硬件协同模块,提高检测实时性。
PYNQ在原有Zynq架构的基础上,添加了对python的支持。集成了ARM处理器和FPGA可编程逻辑器件,可编程逻辑电路将作为硬件库导入并通过其API进行编程。方便软硬件协同实施,计算重复度高的正向推导部分放在FPGA中处理,计算复杂度大的部分用软件处理。
所述PYNQ处理***主要包括多目标检测模块、通用卷积神经网络加速IP和基于python的API接口。所述多目标检测模块通过算法的移植与优化进行多目标的检测,首先选用多目标检测算法faster-RCNN,针对该平台的硬件资源,改进了AlexNet网络的结构做为前馈网络;然后对检测结果进行kmeans聚类,提高准确度。为了便于多目标检测算法faster-RCNN的实现,移植caffe到PYNQ。
所述多目标检测算法faster-RCNN包括建议框的提取模块、SVM分类模块、线性回归修正模块、卷积模块、池化模块、全连接层模块,所述软硬件协同模块、建议框的提取模块、 SVM分类模块、线性回归修正模块及kmean聚类模块等部分使用arm处理器计算;计算并行度大重复率高的正向推导部分使用FPGA中通用卷积神经网络加速器IP计算。所述通用卷积神经网络加速器IP,采用AXI-lite总线控制,DMA传输图像数据,可选择实现卷积、池化、激活函数的功能,可以自定义核的大小、步长、补0等,适用于各种卷积神经网络。
通用卷积神经网络加速器IP包括计算单元,计算单元内部采用行列复用、6级流水,加速效果好。循环配置和调用通用卷积神经网络加速器IP实现faster-RCNN中的卷积模块、池化模块、全连接层模块。所述基于Python的API,把通用卷积神经网络加速器IP的配置参数、搬运数据、执行计算、获取状态都封装成了Python的接口,在算法实现过程中方便的嵌入调用,方便调用和移植。
一种基于PYNQ的智能监控方法,包括如下步骤:
把训练好的网络权重导入PYNQ的SD卡中,再从SD读取权重到DDR中。
图像采集,控制USB摄像头采集图像,并通过USB接口传输一帧图片到PYNQ上。arm处理器把图像预处理为AlexNet网络的输入格式,8位三通道224*224像素,写入到DDR中。因为特征图的数据量很大,FPGA中资源比较少,无法存下,因此保存在相对大很多的DDR,之后根据通用卷积神经网络加速器IP按行写入FPGA进行计算。
调用API配置网络参数,通过AXI_lite控制对应的寄存器,根据每层的网络结构不同,配置核大小、步长、是否补0,以及该层为卷积层还是池化层,是否需要激活函数等信息,可以方便表示各种网络结构。启动通用卷积神经网络加速器IP进行计算,FPGA端会自动通过DMA从DDR按行搬运特征图数据,计算后把结果写回DDR,期间不需要arm处理器干预,只需要检测标志位判断是否完成计算。循环执行每一层,完成卷积和池化层的正向推导计算。
根据锚点盒进行建议框的选取,可以配置三种面积、三种尺度,共9种形式的建议框。根据建议框裁剪出可能为目标的部分特征图进行ROI池化,再次调用通用卷积神经网络加速器IP进行全连接层的计算,全连接层的实现是转换成长宽为1的卷积计算。
对全连接层计算结果用支持向量机进行分类,用回归模型修正得到目标的边界框坐标,并用kmeans聚类筛选重复识别的目标,提高准确度。
根据识别的结果进行对应的控制。
一种基于PYNQ的智能监控***的游乐园的无人检票***,用于区分成人票、小孩票、家庭票。
步骤一,家长带小孩检票,在入口处提供门票信息,控制摄像头开始采集图像。并通过USB接口传输一帧图片到基于PYNQ的智能监控***上。Arm处理器对采集到的图像信息做预处理,转换成8位三通道224*224像素的特征图,并写入到DDR中。
步骤二,调用API配置每层参数,构建网络。然后启动通用卷积神经网络加速器IP开始计算前馈网络,FPGA通过DMA自动按行搬运特征图数据,计算出结果写回DDR中。当计算完毕会改变标志位,通知arm处理器。
步骤三,根据锚点盒进行建议框的选取,在计算结果中裁剪出可能为目标的部分特征图进行ROI池化,再次调用通用卷积神经网络加速器IP进行全连接层的计算。对全连接层计算结果用支持向量机进行分类,用回归模型修正得到目标的边界框坐标,并用kmeans聚类筛选重复识别的目标。
步骤四,最后得到检测结果多目标的类别和边界框,判断入口区域内,是两个大人,一个小孩,与家庭票信息对应,控制电机开门放行。
Claims (7)
1.一种基于PYNQ的智能监控方法,其特征在于:该方法采用的监控***包括通过USB连接的摄像头和PYNQ处理***,所述PYNQ处理***包括arm处理器和FPGA,其特征在于所述PYNQ***包括多目标检测模块、通用卷积神经网络加速器IP和Python的API接口,所述多目标检测模块移植与优化faster-RCNN多目标检测算法,优化AlexNet网络的结构做为前馈网络,并对检测结果kmeans聚类;所述faster-RCNN多目标检测算法包括建议框的提取模块、SVM分类模块、线性回归修正模块、卷积模块、池化模块、全连接层模块;监控方法包括如下步骤:
(1)把训练好的网络权重导入PYNQ的SD卡中,再从SD读取权重到DDR中;
(2)图像采集,控制USB摄像头采集图像,并通过USB接口传输一帧图片到PYNQ上;arm处理器把图像预处理为AlexNet网络的输入格式的特征图写入到DDR中;
(3)调用API配置网络参数,通过AXI_lite控制对应的寄存器,根据每层的网络结构不同,配置核大小、步长、是否补0,以及该层为卷积层还是池化层,是否需要激活函数信息;
(4)启动通用卷积神经网络加速器IP进行计算,FPGA自动通过DMA从DDR按行搬运特征图数据,计算后把结果写回DDR,循环执行每一层,完成卷积和池化层的正向推导计算;
(5)arm处理器干预,检测标志位判断是否完成计算;
(6)根据锚点盒进行建议框的选取,根据建议框裁剪出可能为目标的部分特征图进行ROI池化,再次调用通用卷积神经网络加速器IP进行全连接层的计算,全连接层的实现是转换成长宽为1的卷积计算;
(7)对全连接层计算结果用支持向量机进行分类,用回归模型修正得到目标的边界框坐标,并用kmeans聚类筛选重复识别的目标。
2.根据权利要求1所述的一种基于PYNQ的智能监控方法,其特征在于所述的卷积模块、池化模块、全连接层模块使用FPGA中通用卷积神经网络加速器IP计算。
3.根据权利要求1所述的一种基于PYNQ的智能监控方法,其特征在于所述的Python的API接口包括通用卷积神经网络加速器IP的配置参数、搬运数据、执行计算、获取状态。
4.根据权利要求1所述的一种基于PYNQ的智能监控方法,其特征在于所述的建议框的提取模块、SVM分类模块、线性回归修正模块和kmeans聚类模块在arm处理器中计算。
5.根据权利要求2所述的一种基于PYNQ的智能监控方法,其特征在于所述arm处理器预处理得特征图存储在DDR,按行输入,采用AXI-lite总线控制,DMA传输图像数据。
6.根据权利要求1所述的一种基于PYNQ的智能监控方法,其特征在于所述的通用卷积神经网络加速器IP包括计算单元,所述计算单元内部采用行列复用、6级流水,所述通用卷积神经网络加速器IP可选择实现卷积、池化、激活函数的功能,可以自定义核的大小、步长、补0。
7.根据权利要求1所述的一种基于PYNQ的智能监控方法,其特征在于所属的建议框可以配置三种面积、三种尺度,共9种形式的建议框。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661356.2A CN110414401B (zh) | 2019-07-22 | 2019-07-22 | 一种基于pynq的智能监控***及监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661356.2A CN110414401B (zh) | 2019-07-22 | 2019-07-22 | 一种基于pynq的智能监控***及监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414401A CN110414401A (zh) | 2019-11-05 |
CN110414401B true CN110414401B (zh) | 2022-02-15 |
Family
ID=68362350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910661356.2A Active CN110414401B (zh) | 2019-07-22 | 2019-07-22 | 一种基于pynq的智能监控***及监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414401B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991382B (zh) * | 2019-12-02 | 2024-04-09 | 中国科学院国家空间科学中心 | 一种基于pynq框架的异构视觉目标跟踪***及方法 |
WO2021237608A1 (zh) * | 2020-05-28 | 2021-12-02 | 京东方科技集团股份有限公司 | 基于异构平台的目标检测方法、终端设备和存储介质 |
CN112616043A (zh) * | 2020-12-22 | 2021-04-06 | 杭州电子科技大学 | 基于pynq的神经网络的识别视频监控报警***及方法 |
CN112580751A (zh) * | 2020-12-31 | 2021-03-30 | 杭州电子科技大学 | 一种基于zynq与深度学习的鼾声辨识装置 |
CN113126767A (zh) * | 2021-04-25 | 2021-07-16 | 合肥工业大学 | 基于pynq和多模态脑机接口的飞行器控制***及方法 |
CN114819120B (zh) * | 2022-02-25 | 2024-07-12 | 西安电子科技大学 | 一种基于pynq平台的神经网络通用加速处理方法 |
CN116630709B (zh) * | 2023-05-25 | 2024-01-09 | 中国科学院空天信息创新研究院 | 可配置混合卷积神经网络的高光谱图像分类装置及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103158620B (zh) * | 2013-03-25 | 2015-09-16 | 中国电子科技集团公司第三十八研究所 | 一种车辆行人检测跟踪预警*** |
CN105975931B (zh) * | 2016-05-04 | 2019-06-14 | 浙江大学 | 一种基于多尺度池化的卷积神经网络人脸识别方法 |
CN108256636A (zh) * | 2018-03-16 | 2018-07-06 | 成都理工大学 | 一种基于异构计算的卷积神经网络算法设计实现方法 |
CN109167966A (zh) * | 2018-09-29 | 2019-01-08 | 南京邮电大学南通研究院有限公司 | 基于fpga+arm的图像动态检测***及方法 |
-
2019
- 2019-07-22 CN CN201910661356.2A patent/CN110414401B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110414401A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414401B (zh) | 一种基于pynq的智能监控***及监控方法 | |
CN106599773B (zh) | 用于智能驾驶的深度学习图像识别方法、***及终端设备 | |
Hu et al. | Small object detection with multiscale features | |
CN107851195B (zh) | 利用神经网络进行目标检测 | |
WO2021129181A1 (en) | Portrait segmentation method, model training method and electronic device | |
CN105956626A (zh) | 基于深度学习的对车牌位置不敏感的车牌识别方法 | |
CN106648078B (zh) | 应用于智能机器人的多模态交互方法及*** | |
CN108647665A (zh) | 基于深度学习的航拍车辆实时检测方法 | |
CN107704797B (zh) | 基于安防视频中行人和车辆的实时检测方法和***及设备 | |
US20230137337A1 (en) | Enhanced machine learning model for joint detection and multi person pose estimation | |
CN112949578B (zh) | 车灯状态识别方法、装置、设备及存储介质 | |
CN112668492A (zh) | 一种自监督学习与骨骼信息的行为识别方法 | |
CN111860259A (zh) | 驾驶检测模型的训练、使用方法、装置、设备及介质 | |
CN116524183A (zh) | 一种基于多任务适配器微调的伪装目标检测方法 | |
CN114359892A (zh) | 三维目标检测方法、装置及计算机可读存储介质 | |
CN110533688A (zh) | 改进型的目标跟踪方法、装置及计算机可读存储介质 | |
CN109785386A (zh) | 物体识别定位方法和装置 | |
CN116823884A (zh) | 多目标跟踪方法、***、计算机设备及存储介质 | |
CN114092746A (zh) | 一种多属性识别方法、装置、存储介质及电子设备 | |
CN113642353B (zh) | 一种人脸检测模型的训练方法、存储介质及终端设备 | |
CN114529719A (zh) | 一种地面地图要素语义分割方法、***、介质及设备 | |
CN114185430A (zh) | 人机交互***、方法及智能机器人 | |
CN113792807A (zh) | 皮肤病分类模型训练方法、***、介质和电子设备 | |
Ye et al. | LLOD: a object detection method under low-light condition by feature enhancement and fusion | |
KR102678174B1 (ko) | 컨볼루션 장단기 메모리를 이용한 사용자 행동 인식 및 분류 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 |
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 |