CN109325494B - 图片处理方法、任务数据处理方法和装置 - Google Patents

图片处理方法、任务数据处理方法和装置 Download PDF

Info

Publication number
CN109325494B
CN109325494B CN201810980841.1A CN201810980841A CN109325494B CN 109325494 B CN109325494 B CN 109325494B CN 201810980841 A CN201810980841 A CN 201810980841A CN 109325494 B CN109325494 B CN 109325494B
Authority
CN
China
Prior art keywords
substructure
task data
processing
text
task
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
Application number
CN201810980841.1A
Other languages
English (en)
Other versions
CN109325494A (zh
Inventor
辛遥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810980841.1A priority Critical patent/CN109325494B/zh
Publication of CN109325494A publication Critical patent/CN109325494A/zh
Priority to EP19854472.8A priority patent/EP3846079A4/en
Priority to PCT/CN2019/102587 priority patent/WO2020043057A1/zh
Priority to US17/010,812 priority patent/US20200401829A1/en
Application granted granted Critical
Publication of CN109325494B publication Critical patent/CN109325494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/242Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • G06V10/422Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation for representing the structure of the pattern or shape of an object therefor
    • G06V10/426Graphical representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/63Scene text, e.g. street names
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19153Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种图片处理方法、任务数据处理方法和装置,所述方法包括:通过机器学习模型中各子结构所对应的处理单元执行相应的子任务来实现,至少部分所述处理单元包括FPGA单元;获取待处理图片;提取所述待处理图片中的文本特征;根据所述文本特征确定所述待处理图片中任意角度的候选文本框;对各所述候选文本框进行旋转感兴趣区域的池化处理,并将各所述候选文本框投影到固定大小的特征图,得到各所述候选文本框对应的文本框特征图;识别所述文本框特征图中文本,得到文本识别结果。本申请通过FPGA架构,可并行处理数据以实现上述图片处理方法,能够在降低成本和功耗的同时,提高待处理图片中文本识别准确率和效率。

Description

图片处理方法、任务数据处理方法和装置
技术领域
本发明涉及数据处理领域,特别是涉及一种图片处理方法、任务数据处理方法和装置。
背景技术
随着计算技术的飞速发展,越来越多的数据都需要计算机来处理。尤其随着数据量的迅猛增长,导致对数据处理效率的要求越来越高。例如在场景文本识别领域,文本检测是场景文本识别的前提条件,要解决的问题是如何在杂乱无序、千奇百怪的复杂场景图片中准确地定位出文字的位置并识别出文字。由于背景的复杂性、光照的多变性以及字体的不可预测性等原因,文本检测面临着极大的挑战。
例如,在硬件方面,通常是通过CPU或GPU处理图片数据并进行文本检测等。CPU采用串行处理,即在处理过程中需要等待对前一任务数据处理完毕,得到前一任务数据对应的执行结果后,才能继续执行下一个任务数据,这样相较于大量的任务数据量,任务数据处理的效率较低。而通过GPU处理的成本较高,且具有超大的功耗。
又例如,在软件方面,现有技术没有针对OCR(Optical Character Recognition,光学字符识别)完整的主流算法进行FPGA加速设计,大多数只是集中在CNN(卷积神经网络)提取图像特征部分,而且只支持固定图像大小,并不能适应实际的应用场景。
发明内容
基于此,有必要针对传统方法存在的问题,提供一种图片处理方法、任务数据处理方法和装置。
一种图片处理方法,通过机器学习模型中各子结构所对应的处理单元执行相应的子任务来实现,至少部分所述处理单元包括FPGA单元;所述方法包括:
获取待处理图片;
提取所述待处理图片中的文本特征;
根据所述文本特征确定所述待处理图片中任意角度的候选文本框;
对各所述候选文本框进行旋转感兴趣区域的池化处理,并将各所述候选文本框投影到固定大小的特征图,得到各所述候选文本框对应的文本框特征图;
识别所述文本框特征图中文本,得到文本识别结果。
上述图片处理方法,根据待处理图片的文本特征,确定待处理图片中各任意角度的候选文本框,可以识别不同角度的候选文本框。对各候选文本框进行池化处理,并将不同大小的各候选文本框投影到固定大小的特征图,得到各候选文本框的文本框特征图,提高了处理候选文本框的适应性,可以处理不同尺寸和不同角度的候选文本框,通过识别文本框特征图中文本,得到各候选文本框的文本识别结果。同时,通过FPGA架构,可并行处理数据以实现上述图片处理方法,能够在降低成本和功耗的同时,提高待处理图片中文本识别准确率和效率。
一种任务数据处理方法,所述方法包括:
获取多个任务数据;
对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括FPGA单元;
在每个所述处理单元的处理过程中,当处理单元处于空闲状态时,并行执行下一个任务数据对应的子任务。
一种任务数据处理方法,应用于分布式服务器主机,所述方法包括:
接收终端发送的任务数据;
确定为所述任务数据分配的分布式服务器从机地址;
根据所述分配的分布式服务器从机地址将所述任务数据发送至分布式服务器从机;
所述分布式服务器从机将所述任务数据放入线程池,从所述线程池获取多个任务数据;对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括FPGA单元;在每个所述处理单元的处理过程中,当处理单元处于空闲状态时,并行执行下一个任务数据对应的子任务。
一种任务数据处理装置,所述装置包括:任务调度单元和FPGA单元,所述任务调度单元与所述FPGA单元相连接;
所述任务调度单元,用于获取多个任务数据;对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括FPGA单元;在每个所述处理单元的处理过程中,当处理单元处于空闲状态时,并行执行下一个任务数据对应的子任务。
上述任务数据处理方法和装置,通过部分FPGA单元执行机器学习模型中子结构对应的子任务,且在获取多个任务数据时,各FPGA单元并行执行各任务数据对应的子任务,从而使得各任务数据对应的子任务可以被并行处理,从而提高了多个任务数据的处理效率。
附图说明
图1为一个实施例中任务数据处理方法的应用场景图;
图2为一个实施例中计算机设备的内部结构示意图;
图3为一个实施例中任务数据处理装置的框图;
图4为一个实施例中任务数据处理装置的内部结构示意图;
图5为一个实施例中任务数据处理方法的流程示意图;
图6为一个实施例中任务数据的封装示意图;
图7为一个实施例中多线程任务并行执行的示意图;
图8为一个实施例中多线程任务并行执行的时序图;
图9为一个实施例中多线程任务并行执行的时序图;
图10为一个实施例中CPU和FPGA单元并行处理任务的示意图;
图11为另一个实施例中任务数据处理方法的应用环境图;
图12为一个实施例中分布式服务器从机的内部环境图;
图13一个实施例中任务数据处理方法的软件架构图;
图14为一个实施例中各子结构处理图像处理任务数据的步骤的流程示意图;
图15为一实施例中获得分类结果的步骤的流程示意图;
图16为一个实施例中获得图像处理结果的流程示意图;
图17为一个实施例中图片处理方法的流程示意图;
图18为一个实施例中文本识别的流程示意图;
图19a-19e为多个应用场景对应的文本识别结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中任务数据处理方法的应用场景图。参照图1,该应用场景中包括CPU(中央处理器,Central Processing Unit/Processor)110、板卡接口120和任务数据处理装置130。CPU 110通过板卡接口120与任务数据处理装置130进行通信。板卡接口120和CPU 110集成在计算机设备的主板上,板卡接口120可以是主板上的板卡插槽,任务数据处理装置130插入板卡插槽即可与CPU进行通信。任务数据板卡中集成有至少一个FPGA(现场可编程门阵列,Field-Programmable Gate Array)单元。
图2为集成有图1中的CPU 110和板卡接口120的计算机设备的内部结构示意图。参照图2,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和板卡接口120,板卡接口120连接任务数据处理装置130。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行上述任务数据处理方法。该任务数据处理装置130和计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备和任务数据处理装置130的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行所述任务数据处理方法。计算机设备的网络接口用于进行网络通信。计算机设备可以是分布式服务器从机。
本领域技术人员可以理解,图2示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图2中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供一种任务数据处理装置130,该装置具体包括:任务数据获取模块132、任务数据处理模块134和执行结果获取模块136。
任务数据获取模块132,用于获取多个任务数据。
任务数据处理模块134,用于对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务;至少部分处理单元包括FPGA单元;当处理单元处于空闲状态时,执行下一个任务数据对应的子任务。
执行结果获取模块136,用于当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果。
在一个实施例中,本申请提供的任务数据处理装置130可以实现为一种计算机程序的形式,计算机程序可在如图2所示的计算机设备上运行。计算机设备的存储器中可存储组成该任务数据处理装置的各个程序模块,比如,图3所示的任务数据获取模块132、任务数据处理模块134和执行结果获取模块136。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的任务数据处理方法中的步骤。
例如,图2所示的计算机设备可以通过如图3所示的任务数据处理装置130中的任务数据获取模块132获取多个任务数据。计算机设备可通过任务数据处理模块134对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务;至少部分处理单元包括FPGA单元;在每个处理单元的处理过程中,当处理单元处于空闲状态时,执行下一个任务数据对应的子任务。计算机设备可通过执行结果获取模块136当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果。
如图4所示,在另一个实施例中,所述任务数据处理装置130包括任务调度单元和一个或多个FPGA单元,任务调度单元与FPGA单元相连接。
所述任务调度单元用于获取多个任务数据;对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次调度机器学习模型中各子结构所对应的处理单元执行相应子结构的子任务;至少部分处理单元包括所述一个或多个FPGA单元。
所述FPGA单元用于在每个处理单元的处理过程中,当处理单元处于空闲状态时,执行下一个任务数据对应的子任务;当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果并输出。
在一个实施例中,任务数据处理装置130还包括:寄存器和存储器;存储器与FPGA单元相连接;寄存器与任务调度单元相连接。
所述任务调度单元还用于从寄存器中读取单元调度数据,以根据单元调度数据对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次调度机器学习模型中各子结构所对应的处理单元执行相应子结构的子任务。
所述FPGA单元还用于从存储器中读取由CPU写入的任务数据,在每个处理单元的处理过程中,当处理单元处于空闲状态时,执行下一个任务数据对应的子任务;当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果;将任务执行结果存储到存储器。
在一个实施例中,任务数据处理装置130还包括:总线控制器;总线控制器分别与存储器和FPGA单元相连接。FPGA单元通过总线控制器将任务执行结果存储到存储器中。
在一个实施例中,任务数据处理装置130通过板卡接口120与CPU110相连接;处理单元还包括所述CPU。
如图5所示,在一个实施例中,提供一种任务数据处理方法。任务数据处理方法可以应用于上述图1中的任务数据处理装置130中。本实施例主要以该方法应用于上述图1中的任务数据处理装置130来举例说明。参照图2,该任务数据处理方法,具体包括以下步骤:
S502,获取多个任务数据。
其中,任务数据为待处理任务所对应的数据。
具体地,CPU 110将任务数据发送至任务数据处理装置130,任务数据处理装置130将接收到的任务数据进行存储。任务数据处理装置130从存储的任务数据中读取多个任务数据。
在一个实施例中,CPU 110从计算机设备的存储器中读取任务数据,将读取到的任务数据发送至任务数据处理装置130。任务数据处理装置130接收CPU发送的任务数据,将任务数据存储在存储器中。任务数据处理装置接收CPU发送的任务执行指令,根据任务执行指令从存储器中读取多个任务数据。
以下以图6举例说明,图6为一个实施例中任务数据的封装示意图。CPU获取到任务数据后,将任务数据封装成FPGA线程任务。FPGA线程任务中包括任务数据和FPGA执行指令,处理单元执行指令包括写指令、读指令和开始指令。FPGA执行指令用于调用FPGA单元对任务数据进行处理的指令。CPU将封装后的线程任务放入到线程池中,任务数据处理装置130从线程池中获取线程任务,从线程任务中读取任务数据。
S504,对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务;其中,至少部分所述处理单元包括FPGA单元;当处理单元监测到自身处于空闲状态时,通过线程提取下一个任务数据,并在线程对应的处理单元中执行下一个任务数据对应的子任务。
需要说明的是,任务数据处理装置130中包括多个所述处理单元。本实施例中,所述处理单元包括FPGA单元以及CPU单元。机器学习模型为预先训练好的任务数据处理的数据模型。对于机器学习模型中每个子结构,都存在对应的处理单元。处理单元用于执行所对应机器学习模型中子结构所对应的子任务。
具体地,任务数据处理装置130将多个任务数据输入到机器学习模型对应的处理单元,通过机器学习模型的处理单元对任务数据进行处理。
在一个实施例中,对于每个任务数据,任务数据处理装置130通过处理单元按照机器学习模型中子结构的顺序,执行任务数据所对应的子任务;且在每个处理单元的处理过程中,检测前一任务数据在当前子结构的子任务是否执行完毕,并检测当前的任务数据在前一子结构的子任务是否执行完毕;在检测到前一个任务数据在当前子结构的子任务执行完毕,同时检测到当前的任务数据在前一子结构的子任务执行完毕后,即当前子结构对应的处理单元处于空闲状态时,开始执行当前的任务数据在当前子结构的子任务。
在一个实施例中,对于每个任务数据,任务数据处理装置130将任务数据输入机器学习模型中第一个子结构对应的处理单元,通过第一个子结构对应的处理单元,并根据任务数据执行第一个子结构对应的子任务,得到第一子任务数据。任务数据处理装置130又将第一子任务数据输入机器学习模型中第二个子结构对应的处理单元,通过第二个子结构对应的处理单元,并根据第一子任务数据执行第二子结构对应的子任务,得到第二子任务数据。任务数据处理装置又将第二子任务数据输入机器学习模型中第三个子结构,直至获得机器学习模型中最后一个子结构输出的任务执行结果。
在一个实施例中,在每个处理单元的处理过程中,任务数据处理装置130将前一任务数据输入机器学习模型中第一个子结构对应的处理单元,通过第一个子结构对应的处理单元,并根据前一任务数据执行第一个子结构对应的子任务,得到前一任务数据对应的第一子任务数据。
在第一个子结构对应的处理单元,根据前一任务数据执行完毕第一个子结构的子任务后,任务数据处理装置130将当前任务数据输入机器学习模型中第一个子结构对应的处理单元,通过第一个子结构对应的处理单元,并根据当前任务数据执行第一个子结构对应的子任务,同时任务数据处理装置将前一任务数据对应的第一子任务数据,输入到机器学习模型中第二个子结构对应的处理单元,通过第二个子结构对应的处理单元,并根据前一任务数据对应的第一子任务数据,执行第二个子结构对应的子任务,得到前一任务数据对应的第二子任务数据。
在第一个子结构对应的处理单元,根据当前任务数据执行完毕第一个子结构的字任务,获得当前任务数据对应的第一子任务数据后,且在得到前一任务数据对应的第二子任务数据后,任务数据处理装置130将当前任务数据对应的第一子任务数据,输入到机器学习模型中第二个子结构对应的处理单元,通过第二个子结构对应的处理单元,并根据当前任务数据对应的第一子任务数据,执行第二个子结构对应的子任务,得到当前任务数据对应的第二子任务数据,同时任务数据处理装置130将前一任务数据对应的第二子任务数据,输入到机器学习模型中第三个子结构对应的处理单元,直至获取机器学习模型中的最后子机构输出前一任务数据对应的任务执行结果和当前任务数据对应的任务执行结果。
在一个实施例中,S504具体包括:对于每个任务数据,从寄存器中读取处理单元调用数据;处理单元调用数据由CPU写入到寄存器中;根据处理单元调用数据,按照机器学习模型中子结构的顺序,依次调用各子结构所对应的处理单元执行相应子结构的子任务。
其中,处理单元调用数据为任务数据处理装置130调用处理单元所需要的数据。处理单元调用数据可以包括处理单元标识,还可以包括调用处理单元所用的指令。调用处理单元所用的指令可以包括单元写指令、单元读指令和单元执行指令中的至少一种。
具体地,通过CPU将每个任务数据对应的处理单元调用数据写入到寄存器中。任务数据处理装置130从寄存器中读取每个任务数据对应的处理单元调用数据,提取处理单元调用数据中的处理单元标识,根据提取到的处理单元标识对应的处理单元,按照机器学习模型中子结构的顺序,依次调用各子结构所对应的处理单元执行相应子结构的子任务。
在一个实施例中,S504具体还包括:当处理单元均未处于空闲状态时,等待当前子结构的子任务所对应的处理单元被释放。例如,在每个处理单元的处理过程中,在前一任务数据在当前子结构的子任务未执行完毕,且当前的任务数据在前一子结构的子任务执行完毕时,等待当前子结构的子任务所对应的处理单元被释放。在当前子结构的子任务所对应的处理单元被释放后,调用当前子结构的子任务所对应的处理单元,执行当前的任务数据在当前子结构的子任务。
请参照图7,图7为一个实施例中多线程任务并行执行的示意图。任务数据处理装置130从线程池读取线程任务1、线程任务2和线程任务3,线程任务1、线程任务2和线程任务3按顺序连接。在通过FPGA单元处理线程任务1、线程任务2和线程任务3时,FPGA单元1的输出作为FPGA单元2的输入,FPGA单元2的输出作为FPGA单元3的输入,即FPGA单元1、FPGA单元2和FPGA单元3成流水线式处理,且各FPGA单元执行的子任务不同。线程任务调用各线程任务可以单独调用每个FPGA单元。
图8和图9为一个实施例中多线程任务并行执行的时序图。任务数据对应的线程任务需要依次通过FPGA单元1、FPGA单元2和FPGA单元3执行相应的子任务,才能得到该任务数据的任务执行结果。请参照图8和图9,当FPGA单元1、FPGA单元2和FPGA单元3处于空闲状态时,线程任务1获取任务数据1,调用FPGA单元1执行任务数据1的子任务1。当FPGA单元1执行完毕线程任务1的子任务1时,线程任务1调用FPGA单元2执行子任务2,同时线程任务2获取任务数据2,调用FPGA单元1执行线程任务2的子任务1。当FPGA单元2执行完毕线程任务1的子任务2,且FPGA单元1执行完毕线程任务2的子任务1时,线程任务1调用FPGA单元3执行子任务3,同时线程任务2调用FPGA单元2执行子任务2,同时线程任务3获取任务数据3,调用FPGA单元1执行子任务1。当FPGA单元3执行完毕线程任务1的子任务3,且FPGA单元2执行完毕线程任务2的子任务2时,线程任务2调用FPGA单元3执行子任务3,同时当FPGA单元1执行完毕线程任务3的子任务1时,线程任务3调用FPGA单元2执行子任务2,且线程任务1又可以获取任务数据4,调用FPGA单元1执行线子任务1,直至通过线程任务调用FPGA单元获取的各任务数据对应的任务执行结果。其中,线程任务的数量可以设置为n个,n为正整数。
在一个实施例中,处理单元可以包括CPU和FPGA单元。图10为一个实施例中CPU和FPGA单元并行处理任务的示意图。如图10所示,线程任务1、线程任务2和线程任务3调用处理单元的顺序都一样,线程任务1调用FPGA单元1,在线程任务1释放FPGA单元1后,线程任务1调用CPU,线程任务2调用FPGA单元1;当线程任务1释放CPU后,线程任务1调用FPGA单元2;当线程任务1释放CPU,且线程任务2释放FPGA单元1后,线程任务2调用CPU,线程任务3调用FPGA单元1;当线程任务1释放FPGA单元2后,线程任务1调用FPGA单元3;当线程任务1释放FPGA单元2,且线程任务2释放CPU后,线程任务2调用FPGA单元2;当线程任务2释放CPU,线程任务3释放FPGA单元1后,线程任务3调用CPU;当线程任务1释放FPGA单元3后,等待FPAG单元1被线程任务3释放,当FPGA单元1被释放后,线程任务3再次调用FPGA单元1,从而保证各线程任务的并行处理,直至各并行处理的线程任务得到相应的任务执行结果。
S506,当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果。
具体地,对于每个任务数据,任务数据处理装置130检测到机器学习模型中各子结构的子任务执行完毕后,获取机器学习模型中最后子结构对应的处理单元输出的任务执行结果,从而得到每个任务数据对应的任务执行结果。
本实施例中,在获取多个任务数据后,对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务,每个处理单元对应一个机器学习模型的子结构,且处理单元包括FPGA单元。在每个处理单元的处理过程中,在前一个任务数据在当前子结构的子任务执行完毕,且当前的任务数据在前一子结构的子任务执行完毕后,开始执行当前的任务数据在当前子结构的子任务,各处理单元并行处理多个任务数据的子任务,使得机器学习模型可以在低成本和低功耗的结构中并行处理多个任务数据,从而提高了任务数据的处理效率。
图11为一个实施例中任务数据处理方法的应用环境图。图11中包括终端、分布式服务器主机和分布式服务器从机,终端通过网络与分布式服务器主机相连接,分布式服务器主机通过网络与分布式服务器从机相连接,分布式服务器从机可以是多个。分布式服务器从机中设置有线程池和处理单元调度程序,分布式服务器从机的板卡接口连接有任务数据处理装置,任务数据处理装置中设置有FPGA单元。分布式服务器从机通过执行处理单元调度程序实时任务数据处理方法,分布式服务器从机执行处理调度程序时,从线程池中的线程任务中读取任务数据,并根据任务数据执行线程任务。
图12为一个实施例中分布式服务器从机的内部环境图。分布式服务器从机中设置有线程池和处理单元调度程序。分布式服务器从机通过执行处理单元调度程序实时任务数据处理方法,在执行处理单元调度程序时,从线程池的线程任务中获取任务数据,根据任务数据按照单元调度程序中子任务的顺序调度FPGA单元和CPU执行相应的子任务,且处理单元调度程序可以并行处理多个线程任务,经过处理单元调度程序处理得到多个线程任务的任务执行结果,将任务执行结果返回至相应的线程任务,通过分布式服务器从机返回至分布式服务器主机。其中,处理单元调度程序中包括n个子任务,n为正整数。
在一个实施例中,提供一种任务数据处理方法,应用于分布式服务器主机,所述方法包括以下内容:
分布式服务器主机接收终端发送的任务数据;确定为任务数据分配的分布式服务器从机地址;根据分配的分布式服务器从机地址将任务数据发送至分布式服务器从机。
分布式服务器从机将任务数据放入线程池,从线程池获取多个任务数据;对于每个任务数据,分别按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务;至少部分处理单元包括FPGA单元;在每个处理单元的处理过程,当处理单元处于空闲状态时,执行下一个任务数据对应的子任务;当每个任务数据在各子结构的子任务执行完毕后,获得相应的任务执行结果;将获取到任务执行结果返回至分布式服务器主机;分布式服务器主机接收分布式服务器从机返回的任务执行结果,将返回的任务执行结果发送至终端。
在又一个实施例中,任务数据为图像处理任务数据;机器学习模型为图像处理模型;任务执行结果为图像处理结果;S504具体包括以下内容:对于每个图像处理任务数据,分别按照图像处理模型中子结构的顺序,依次通过各子结构对应的处理单元,执行相应子结构的图像处理子任务。
具体地,任务数据处理装置130获取多个图像处理任务数据,对于每个图像处理任务数据,分别按照图像处理模型中子结构的顺序,依次通过各子结构对应的处理单元,执行相应子结构的图像处理子任务;在每个处理单元的处理过程中,在前一个图像处理任务数据在当前子结构的图像处理子任务执行完毕,且当前的图像处理任务数据在前一子结构的图像处理子任务执行完毕后,开始执行当前的图像处理任务数据在当前子结构的图像处理子任务。在每个处理单元的处理过程中,各处理单元并行处理多个图像处理任务数据的图像处理子任务,使得通过图像处理模型可以在低成本和低功耗的结构中并行处理多个图像处理任务数据,从而提高了图像处理任务数据的处理效率。
具体的,如图13所示,在又一个实施例中,任务数据为图像处理任务数据;机器学习模型为图像处理模型;任务执行结果为图像处理结果。其中,图像处理结果可以是图像识别结果。处理所述图像数据的系统包括与终端连接的接入层、分布式服务器主机、一个或多个分布式服务器从机以及算法层。所述分布式服务器从机通过接口(如API接口)与所述算法层连接。所述线程池设置在所述分布式服务器从机中。所述算法层设置有所述机器学习模型。所述处理单元包括CPU和FPGA单元。终端通过接入层接入到分布式服务器主机。分布式服务器主机与系统层的分布式服务器从机进行数据交互。分布式服务器从机通过API接口(板卡接口)调用算法层的caffe-FPGA.so文件中的算法,根据caffe-FPGA.so文件中的算法调用FPGA单元与CPU配置对任务数据进行处理。分布式服务器从机的线程池中包括多个线程任务,每个线程任务根据caffe-FPGA.so调用FPGA和CPU对线程任务进行并行处理。
在本实施例中,机器学习模型包括卷积层、候选区域生成网络(RPN)、池化层、全连接层、分类层等。RPN进一步包括RPN卷积层、分类层、候选区域确定层(Proposals)以及非极大值抑制层(NMS,non maximum suppression)。除了RPN中的候选区域确定层和最后的识别结果输出部分采用CPU处理外,其他所有部分都基于FPGA单元实现,从而能够将数据处理量较大的部分通过FPGA单元并行处理,而数据处理量较低的部分则仍然保持CPU处理,由此,提高了数据处理效率,同时降低成本。
如图14所示,更具体来说,在本实施例中,对于每个图像处理任务数据,分别按照图像处理模型中子结构的顺序,依次通过各子结构对应的处理单元,执行相应子结构的图像处理子任务包括各子结构处理图像处理任务数据的步骤,该步骤具体包括内容:
S1402,将图像处理任务数据输入图像处理模型中卷积层子结构对应的FPGA单元,获得卷积结果。
其中,图像处理模型为根据图像数据预先训练好的处理图像处理任务数据的数据模型。图像处理模型中包括卷积层子结构。按照图像处理模型中子结构的顺序,卷积层子结构可以是图像处理模型中第一个子结构。卷积层子结构对应的处理单元为FPGA单元。
具体地,任务数据处理装置130从寄存器中读取处理单元调用数据,提取处理单元调用数据中处理单元标识,根据处理单元标识确定图像处理模型中卷积层子结构对应的FPGA单元,向卷积层子结构对应的FPGA单元发送任务执行通知。卷积层子结构对应的FPGA单元接收到任务执行通知后,从存储器读取图像处理任务数据,对图像处理任务数据进行卷积层子结构对应的卷积处理,得到图像处理任务数据的卷积结果。
在一个实施例中,卷积层子结构对应的FPGA单元从存储器中读取图像处理模型的模型参数,根据读取到的模型参数进行配置,使得卷积层子结构对应的FPGA单元根据模型参数对图像处理任务数据进行卷积处理,得到图像处理任务数据的卷积结果。
在一个实施例中,卷积层子结构对应的FPGA单元将卷积结果存储到存储器中。
S1404,将卷积结果发送至CPU,通过CPU执行图像处理模型中候选网络子结构对应候选区域选取任务,得到区域选取结果。
其中,图像处理模型中包括卷积层子结构。按照图像处理模型中子结构的顺序,候选网络子结构可以是图像处理模型中第二个子结构。候选网络子结构对应的处理单元为CPU单元。候选网络子结构对应的子任务为候选区域选取任务,候选区域选取任务用于在图像处理任务数据对应的图像中选取待处理的候选区域。
具体地,任务数据处理装置检测到卷积层子结构对应的FPGA单元将卷积结果存储到存储器后,向CPU发送候选区域选取任务执行通知。CPU在接收到候选区域选取任务执行通知后,从存储器中读取卷积结果,根据卷积结果执行候选网络子结构对应的候选区域选取任务,得到区域选取结果,将区域选取结果存储到存储器中。
在一个实施例中,CPU从存储器中读取图像处理模型的模型参数,根据模型参数配置候选网络子结构,通过配置的候选网络子结构,并根据卷积结果执行候选区域选取任务,得到区域选取结果。
S1406,通过图像处理模型中分类子结构对应的FPGA单元,对区域选取结果进行分类处理,得到分类结果。
其中,图像数据处理模型包括分类子结构,按照图像数据处理模型中子结构的顺序,分类子结构可以是图像处理模型中第三个子结构。
具体地,任务数据处理装置检测到CPU将区域选取结果存储到存储器后,向分类子结构对应的FPGA单元发送任务执行通知。分类子结构对应的FPGA单元接收到任务执行通知后,从存储器中读取区域选取结果,对读取到的区域选取结果进行分类处理,得到分类结果,将分类结果存储到存储器中。
在一个实施例中,分类子结构对应的FPGA单元从存储器中读取图像处理模型的模型参数,根据模型参数配置分类子结构,通过分类子结构对区域选取结构进行分类处理,得到分类结果。
S1408,通过CPU并根据分类结果,确定图像处理任务数据对应的任务执行结果。
具体地,任务数据处理装置在检测到分类子结构对应的FPGA单元将分类结果存储到存储器后,向CPU发送任务结果确定通知。CPU接收到任务结果确定通知后,从存储器中读取分类结果,根据分类结果中提取图像处理任务数据对应的任务执行结果。举例说明,图像处理任务数据对应的任务执行结果可以对图像识别结果。
如图15所示,在一个实施例中,S1406具体还包括获得分类结果的步骤,该步骤具体包括以下内容:
S1502,调用图像处理模型中非极大值抑制子结构对应的FPGA单元,对区域选取结果进行非极大值抑制处理,得到非极大值抑制结果。
其中,图像处理模型中还包括非极大值抑制子结构。非极大值抑制子结构对应的处理单元为FPGA单元。非极大值抑制子结构对应的子任务为非极大值抑制处理任务,非极大值抑制结果为非极大值抑制处理任务对应的处理结果。
具体地,任务数据处理装置检测到CPU将区域选取结果存储到存储器后,向非极大值抑制子结构对应的FPGA单元发送任务执行通知。非极大值抑制子结构对应的FPGA单元接收到任务执行通知后,从存储器中读取区域选取结果,对读取到的区域选取结果进行非极大值抑制处理,得到非极大值抑制结果,将非极大值抑制结果存储到存储器中。
在一个实施例中,非极大值抑制子结构对应的FPGA单元从存储器中读取图像处理模型的模型参数,根据模型参数配置非极大值抑制子结构,通过非极大值抑制子结构对区域选取结果进行非极大值抑制处理,得到非极大值抑制结果。
S1504,通过图像处理模型中池化层子结构对应的FPGA单元,对非极大值抑制结果进行池化层处理,得到池化结果。
其中,图像数据处理模型中还包括池化层子结构,池化层子结构对应的处理单元为FPGA单元。池化层子结构对应的子任务为池化层子任务,池化层子任务对应的处理结果为池化结果。
具体地,任务数据处理装置检测到非极大值抑制子结构对应的FPGA单元将非极大值抑制结果存储到存储器后,向池化层子结构对应的FPGA单元发送任务执行通知。池化层子结构对应的FPGA单元接收到任务执行通知后,从存储器中读取非极大值抑制结果,根据非极大值抑制结果执行池化层子任务,即对非极大值抑制结果进行池化处理,得到池化结果,将池化结果存储到存储器中。
在一个实施例中,池化层子结构对应的FPGA单元从存储器中读取图像处理模型的模型参数,根据模型参数配置池化层子结构,通过池化层子结构对非极大值抑制结果进行池化处理,得到池化结果。
S1506,将池化结果输入图像处理模型中全连接层子结构对应的FPGA单元,获得分类结果。
其中,图像处理模型中还包括全连接层子结构,全连接层子结构对应的处理单元为FPGA单元。全连接层子结构对应的子任务为全连接处理任务,全连接处理任务对应的处理结果为分类结果。
具体地,任务数据处理装置检测到池化层子结构对应的FPGA单元将池化结果存储到存储器后,向全连接层子结构对应的FPGA单元发送任务执行通知。全连接层子结构对应的FPGA单元接收到任务执行通知后,从存储器读取池化结果,根据池化结果执行全连接处理任务,得到分类结果,将分类结果存储到存储器中。
在一个实施例中,全连接层子结构对应的FPGA单元从存储器中读取图像处理模型的模型参数,根据读取到的模型参数配置全连接层子结构,通过全连接层子结构对池化结果进行全连接处理,得到分类结果。
在一个实施例中,图像处理结果可以是图像识别结果。图像识别结果可以是OCR(Optical Character Recognition,光学字符识别)识别结果,也可以是图像目标识别结果。
请参照图16,当需要进行文本识别,例如是OCR识别时,分布式服务器从机获取待处理图片,将待处理图片封装为线程任务。线程任务调用基础卷积层应的FPGA单元,对待处理图片进行卷积处理,得到文本特征。在得到文本特征后,线程任务将文本特征输入候选区域生成网络(RPN),在候选区域生成网络中,线程任务调用RPN卷积对应的FPGA单元,对文本特征进行RPN卷积处理,得到文本特征对应的卷积结果,线程任务调用分类对应的FPGA单元,对文本特征对应的卷积结果进行分类处理得到分类结果线程任务调用CPU根据分类结果确定候选文本框,调用CPU对确定的候选文本框进行回归调整,得到各任意角度的候选文本框,调用非极大值抑制对应的FPGA单元,对候选文本框中重叠的候选文本框进行处理,得到不重叠的各任意角度的候选文本框。线程任务调用旋转感兴趣区域池化对应的FPGA单元,对候选区域生成网络输出的各任意角度的候选文本框进行池化处理,对各任意角度的候选文本框进行旋转调整,并将旋转调整后的候选文本框投射到固定大小的特征图,得到各候选文本框对应的文本框特征图。线程任务调用识别结果输出对应的FPGA单元对文本框特征图中的文本进行识别,输出文本识别结果。
在本实施例中,除了RPN中的Proposal(候选区域确定层)和最后的识别结果输出部分,其他所有部分都基于FPGA实现。由此,能够将数据处理量较大的部分通过成本较低的FPGA并行实现,以及数据处理量较大的部分则由CPU处理,从而在保持处理效率的同时降低了成本。
更具体的,如图17所示,在一个实施例中,提供一种图片处理方法以实现上述OCR识别。该方法具体包括以下内容:
S1702,获取待处理图片。
其中,待处理图片为待进行文本识别处理的图片。文本识别可以是通过OCR(Optical Character Recognition,光学字符识别)技术对图片中的文本进行识别。
具体地,CPU接收文本识别请求,根据文本识别请求获取待处理图片。
在一个实施例中,CPU接收文本识别请求,对文本识别请求进行解析,通过解析提取文本识别请求中的图片标识,根据图片标识从存储器中读取待处理图片。图片标识可以是图片的存储地址。
S1704,提取待处理图片中的文本特征。
其中,文本特征为表示待处理图片中文本的特征。
具体地,CPU获取到待处理图片后,对待处理图片进行卷积处理,通过卷积处理提取待处理图片中的文本特征。
在一个实施例中,S1704具体包括以下内容:将待处理图片输入卷积层;根据卷积层的卷积核对待处理图片进行卷积处理,得到待处理图片的文本特征。
具体地,CPU将待处理图片输入机器学习模型的卷积层,通过卷积层的卷积核对待处理图片进行卷积处理,经过卷积处理得到待处理图片的文本特征。其中机器学习模型可以是用于对待处理图片进行文本识别处理的图片处理模型。
S1706,根据文本特征确定待处理图片中任意角度的候选文本框。
其中,候选文本框为待处理图片中包括文本的区域框。
具体地,CPU在提取到待处理图片的文本特征后,根据文本特征在待处理图片中确定包括文本的候选文本框。候选文本框可以是任意角度的候选文本框,任意角度的候选文本框,可以是水平角度、垂直角度和倾斜角度中任意一种角度的候选文本框。
在一个实施例中,CPU将从待处理图片中提取到文本特征后,输入到机器学习模型的候选区域生成网络(RPN,Region Proposal Network),通过候选区域生成网络根据文本特征,确定待处理图片中各任意角度的候选文本框。候选区域生成网络可以是旋转候选区域生成网络(RRPN,Rotation RPN)
S1708,对各候选文本框进行池化处理,并将各候选文本框投影到固定大小的特征图,得到各候选文本框对应的文本框特征图。
具体地,CPU对各任意角度的候选文本框池化处理,通过池化处理将各任意角度的候选文本框进行投影到固定大小的特征图,得到各候选文本框对应的大小相同的文本框特征图。
在一个实施例中,CPU将各任意角度的候选文本框输入机器学习模型的池化层,经过池化层将各候选文本框投影到固定大小的特征图,得到各候选文本框对应的固定大小的文本框特征图。池化层可以是旋转感兴趣区(RROI,Rotation ROI)池化层。
在一个实施例中,S1708具体还包括:将各候选文本框输入池化层;根据预设特征图的固定大小确定各候选文本框的投影参数;根据投影参数将各候选文本框投影为固定大小的特征图,得到各候选文本框对应的文本框特征图。
S1710,识别文本框特征图中文本,得到文本识别结果。
具体地,CPU对每个文本框特征图中的文本进行识别,通过识别的得到每个文本框特征图对应的文本识别结果。
在一个实施例中,CPU将每个文本框特征图输入机器学习模型的输出层,通过输出层对文本框特征图进行OCR识别,得到每个文本框特征图对应的文本识别结果。
本实施例中,根据待处理图片的文本特征,确定待处理图片中各任意角度的候选文本框,可以识别不同角度的候选文本框。对各候选文本框进行池化处理,并将各候选文本框投影到固定大小的特征图,得到各候选文本框的文本框特征图,提高了处理候选文本框的适应性,可以处理不同尺寸和不同角度的候选文本框,通过识别文本框特征图中文本,得到各候选文本框的文本识别结果,提高了待处理图片中文本识别准确率和效率。
在一个实施例中,图片处理方法还包括以下内容:通过至少一个线程将待处理图片输入到机器学习模型中,并按照机器学习模型中子结构的顺序,依次通过各子结构所对应的处理单元执行相应子结构的子任务;至少部分处理单元包括FPGA单元。
其中,在执行每个子任务时,执行下述步骤中的一个步骤:提取待处理图片中的文本特征;根据文本特征确定待处理图片中任意角度的候选文本框;对各候选文本框进行池化处理,并将各候选文本框投影到固定大小的特征图,得到各候选文本框对应的文本框特征图;识别文本框特征图中文本,得到文本识别结果。
本实施例中,通过各处理单元实施图片处理方法的子任务,可以使得多待处理图片的子任务并行处理,且部分子任务通过处理单元中的FPGA单元实施,提高了待处理图片中文本识别的效率。
在一个实施例中,S1706具体包括以下内容:将文本特征输入到候选区域生成网络;通过候选区域生成网络中候选区域卷积层,对文本特征进行卷积处理,得到文本特征卷积结果;根据文本特征卷积结果,确定待处理图片中各候选文本框的位置信息;对各候选文本框的位置信息进行非极大值抑制处理,得到各任意角度的候选文本框。
具体地,CPU将文本特征输入到候选区域生成网络,通过候选区域生成网络中候选区域卷积层对文本特征进行卷积处理,通过卷积处理得到文本特征卷积结果,根据文本特征卷积结果,在待处理图片中确定各候选文本框,获取确定的各候选文本框的位置信息,CPU对各候选文本框的位置信息进行非极大值抑制处理,得到各任意角度的候选文本框。
在一个实施例中,对各候选文本框的位置信息进行非极大值抑制处理,得到各任意角度的候选文本框包括:根据候选文本框的位置信息,确定待处理图片中各任意角度的候选文本框;确定重叠的候选文本框;对重叠的候选文本框进行非极大值抑制处理,以得到不重叠的各任意角度的候选文本框。
具体地,CPU根据候选文本框的位置信息,确定待处理图片中各任意角度的候选文本框,从各候选文本框中筛选存在重叠的候选文本框,对重叠的候选文本框进行非极大值抑制处理,得到不重叠的各任意角度的候选文本框。
本实施例中,通过候选区域生成网络可以确定待处理图片中各任意角度的候选文本框,通过对任意角度的候选文本框进行非极大值抑制处理,得到不重叠的各任意角度的候选文本框,提高了确定候选文本框的准确性。
在一个实施例中,机器学习模型包括与池化层连接的全连接层;S1610具体包括以下内容:将文本框特征图输入全连接层;通过文本特征图确定各文本分类对应的概率值;选取最大概率值对应的文本分类作为文本特征图的文本识别结果。
具体地,CPU得到各候选文本框分别对应的文本框特征图后,将文本框特征图输入到机器学习模型的全连接层,通过全连接层对各文本框特征图进行处理,得到文本特征图对应的各文本分类对应的概率值,在各概率值中确定最大概率值,选取最大概率值对应的文本分类作为文本特征图的文本识别结果。
在一个实施例中,处理单元包括FPGA单元和CPU;待处理图片为多个待处理图片;将当前的待处理图片输入卷积层对应的FPGA单元进行处理,得到待处理图片的文本特征;将文本特征输入候选区域生成网络对应的CPU进行处理,确定任意角度的候选文本框;通过池化层对应的FPGA单元,根据任意角度的候选文本框,确定各候选文本框对应的文本框特征图;根据识别结果层对应的FPGA单元,对文本框特征图中文本进行识别,得到文本识别结果;其中,在每个处理单元的处理过程中,当处理单元处于空闲状态时,并行执行下一个待处理图片对应的子任务。
本实施例中,通过部分FPGA单元和CPU执行机器学习模型中子结构对应的子任务,且在获取多个待处理图片时,各FPGA单元和CPU并行执行各待处理图片对应的子任务,从而使得各待处理图片对应的子任务可以被并行处理,从而提高了多个待处理图片的处理效率。
图18为一个实施例中文本识别的流程示意图。对待处理图片1802通过基础卷积处理得到待处理图片1802的文本特征,通过候选区域生成网络(RPN)对待处理图片1802的文本特征进行处理,得到待处理图片1802中任意角度的候选文本框,通过旋转感兴趣区域池化层对任意角度的候选文本框进行调整,得到各候选文本框对应的固定大小的文本框特征图,通过识别结果输出对文本框特征图进行识别,输出文本识别结果1804。文本识别结果1804中的白色框中为识别到的文本。
图19a-19e为各应用场景对应的文本识别结果示意图。其中,图19a为对广告图片中的文本进行识别得到的文本识别结果,黑色框中为识别到的文本。图19b对自然场景图片中的文本进行识别得到的文本识别结果,白色框中为识别到的文本。图19c和19d为对游戏图片中的文本进行识别得到的文本识别结果,黑色框中为识别到的文本。图19e为对银行卡图片中文本进行识别得到的文本识别结果,灰色框中的数字为识别到的文本。
本实施例中,通过部分FPGA单元执行机器学习模型中子结构对应的子任务,且在获取多个任务数据时,各FPGA单元并行执行各任务数据对应的子任务,从而使得各任务数据对应的子任务可以被并行处理,从而提高了多个任务数据的处理效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (17)

1.一种图片处理方法,其特征在于,按照机器学习模型中各子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应图片处理的任务数据的子任务来实现,至少部分所述处理单元包括FPGA单元;在每个所述处理单元的处理过程中,在前一个任务数据在当前子结构的子任务执行完毕,且当前的任务数据在前一子结构的子任务执行完毕后,执行当前的任务数据在当前子结构的子任务;所述方法包括:
获取多个待处理图片;
提取所述待处理图片中的文本特征;
根据所述文本特征确定所述待处理图片中任意角度的候选文本框;
对各所述候选文本框进行旋转感兴趣区域的池化处理,并将各所述候选文本框投影到固定大小的特征图,得到各所述候选文本框对应的文本框特征图;
识别所述文本框特征图中文本,得到文本识别结果。
2.根据权利要求1所述的方法,其特征在于,所述机器学习模型包括卷积层;所述提取所述待处理图片中的文本特征包括:
将所述待处理图片输入卷积层;
根据所述卷积层的卷积核对所述待处理图片进行卷积处理,得到所述待处理图片的文本特征。
3.根据权利要求2所述的方法,其特征在于,所述机器学习模型包括与所述卷积层连接的候选区域生成网络;所述根据所述文本特征确定所述待处理图片中任意角度的候选文本框包括:
将所述文本特征输入到候选区域生成网络;
通过所述候选区域生成网络中的候选区域卷积层,对所述文本特征进行卷积处理,得到文本特征卷积结果;
根据文本特征卷积结果,确定所述待处理图片中各候选文本框的位置信息;
对各候选文本框的位置信息进行非极大值抑制处理,得到各任意角度的候选文本框。
4.根据权利要求3所述的方法,其特征在于,所述对各候选文本框的位置信息进行非极大值抑制处理,得到各任意角度的候选文本框包括:
根据候选文本框的位置信息,确定所述待处理图片中各任意角度的候选文本框;
确定重叠的候选文本框;
对重叠的候选文本框进行非极大值抑制处理,以得到不重叠的各任意角度的候选文本框。
5.根据权利要求3所述的方法,其特征在于,所述机器学习模型包括与所述候选区域生成网络依次连接的池化层;所述对各所述候选文本框进行旋转感兴趣区域的池化处理,并将各所述候选文本框投影到固定大小的特征图,得到各所述候选文本框对应的文本框特征图包括:
将各所述候选文本框输入所述池化层;
根据预设特征图的固定大小确定各所述候选文本框的投影参数;根据所述投影参数将各所述候选文本框投影为固定大小的特征图,得到各所述候选文本框对应的文本框特征图。
6.根据权利要求5所述的方法,其特征在于,所述机器学习模型包括与池化层连接的全连接层;所述识别所述文本框特征图中文本,得到文本识别结果包括:
将所述文本框特征图输入所述全连接层;
通过所述文本特征图确定各文本分类对应的概率值;
选取最大概率值对应的文本分类作为所述文本特征图的文本识别结果。
7.根据权利要求1所述的方法,所述方法包括:所述处理单元包括FPGA单元和CPU;
将当前的待处理图片输入卷积层对应的FPGA单元进行处理,得到待处理图片的文本特征;
将所述文本特征输入候选区域生成网络对应的CPU进行处理,确定任意角度的候选文本框;
通过池化层对应的FPGA单元,根据所述任意角度的候选文本框,确定各候选文本框对应的文本框特征图;
根据识别结果层对应的FPGA单元,对所述文本框特征图中文本进行识别,得到文本识别结果。
8.一种任务数据处理方法,其特征在于,所述方法包括:
获取多个任务数据;
对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括FPGA单元;
在每个所述处理单元的处理过程中,在前一个任务数据在当前子结构的子任务执行完毕,且当前的任务数据在前一子结构的子任务执行完毕后,执行当前的任务数据在当前子结构的子任务;
当每个所述任务数据在各所述子结构的子任务执行完毕后,获得相应的任务执行结果。
9.根据权利要求8所述的方法,其特征在于,所述对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务包括:
对于每个所述任务数据,从寄存器中读取处理单元调用数据;所述处理单元调用数据由CPU写入到所述寄存器中;
根据所述处理单元调用数据,按照机器学习模型中子结构的顺序,依次调用各所述子结构所对应的处理单元执行相应子结构的子任务。
10.根据权利要求8所述的方法,其特征在于,所述任务数据为图像处理任务数据;所述机器学习模型为图像处理模型;所述任务执行结果为图像处理结果;
所述对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务包括:
对于每个所述图像处理任务数据,分别按照图像处理模型中子结构的顺序,依次通过各所述子结构对应的处理单元,执行相应子结构的图像处理子任务。
11.根据权利要求10所述的方法,其特征在于,所述处理单元还包括CPU,所述对于每个所述图像处理任务数据,分别按照图像处理模型中子结构的顺序,依次通过各所述子结构对应的处理单元,执行相应子结构的图像处理子任务包括:
将所述图像处理任务数据输入所述图像处理模型中卷积层子结构对应的FPGA单元,获得卷积结果;
将所述卷积结果发送至CPU,通过CPU执行所述图像处理模型中候选网络子结构对应候选区域选取任务,得到区域选取结果;
通过所述图像处理模型中分类子结构对应的FPGA单元,对所述区域选取结果进行分类处理,得到分类结果;
根据所述分类结果,通过所述CPU确定所述图像处理任务数据对应的任务执行结果。
12.根据权利要求11所述的方法,其特征在于,所述通过所述图像处理模型中分类子结构对应的FPGA单元,对所述区域选取结果进行分类处理,得到分类结果包括:
调用所述图像处理模型中非极大值抑制子结构对应的FPGA单元,对所述区域选取结果进行非极大值抑制处理,得到非极大值抑制结果;
通过所述图像处理模型中池化层子结构对应的FPGA单元,对所述非极大值抑制结果进行池化层处理,得到池化结果;
将所述池化结果输入所述图像处理模型中全连接层子结构对应的FPGA单元,获得分类结果。
13.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在每个所述处理单元的处理过程中,在前一任务数据在当前子结构的子任务未执行完毕,且当前的任务数据在前一子结构的子任务执行完毕时,等待所述当前子结构的子任务所对应的处理单元被释放;
当所述当前子结构的子任务所对应的处理单元被释放后,调用所述当前子结构的子任务所对应的处理单元,执行当前的任务数据在当前子结构的子任务。
14.一种任务数据处理方法,其特征在于,应用于分布式服务器,所述方法包括:
接收终端发送的任务数据;
确定为所述任务数据分配的分布式服务器地址,并将所述任务数据发送至对应的分布式服务器;
所述分布式服务器将所述任务数据放入线程池,从所述线程池获取多个任务数据;对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括FPGA单元;在每个所述处理单元的处理过程中,在前一个任务数据在当前子结构的子任务执行完毕,且当前的任务数据在前一子结构的子任务执行完毕后,执行当前的任务数据在当前子结构的子任务;
当每个所述任务数据在各所述子结构的子任务执行完毕后,获得相应的任务执行结果。
15.一种任务数据处理装置,其特征在于,所述装置至少包括相互连接的任务调度单元和FPGA单元;所述任务调度单元,用于获取多个任务数据;对于每个所述任务数据,分别按照机器学习模型中子结构的顺序,依次通过各所述子结构所对应的处理单元执行相应子结构的子任务;至少部分所述处理单元包括所述FPGA单元;在每个所述处理单元的处理过程中,在前一个任务数据在当前子结构的子任务执行完毕,且当前的任务数据在前一子结构的子任务执行完毕后,执行当前的任务数据在当前子结构的子任务;当每个所述任务数据在各所述子结构的子任务执行完毕后,获得相应的任务执行结果。
16.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述的方法的步骤。
17.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
CN201810980841.1A 2018-08-27 2018-08-27 图片处理方法、任务数据处理方法和装置 Active CN109325494B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810980841.1A CN109325494B (zh) 2018-08-27 2018-08-27 图片处理方法、任务数据处理方法和装置
EP19854472.8A EP3846079A4 (en) 2018-08-27 2019-08-26 IMAGE PROCESSING METHOD, AND TASK DATA PROCESSING METHOD AND DEVICE
PCT/CN2019/102587 WO2020043057A1 (zh) 2018-08-27 2019-08-26 图片处理方法、任务数据处理方法和装置
US17/010,812 US20200401829A1 (en) 2018-08-27 2020-09-02 Picture processing method, and task data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810980841.1A CN109325494B (zh) 2018-08-27 2018-08-27 图片处理方法、任务数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN109325494A CN109325494A (zh) 2019-02-12
CN109325494B true CN109325494B (zh) 2021-09-17

Family

ID=65264635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810980841.1A Active CN109325494B (zh) 2018-08-27 2018-08-27 图片处理方法、任务数据处理方法和装置

Country Status (4)

Country Link
US (1) US20200401829A1 (zh)
EP (1) EP3846079A4 (zh)
CN (1) CN109325494B (zh)
WO (1) WO2020043057A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325494B (zh) * 2018-08-27 2021-09-17 腾讯科技(深圳)有限公司 图片处理方法、任务数据处理方法和装置
CN110084240A (zh) * 2019-04-24 2019-08-02 网易(杭州)网络有限公司 一种文字提取系统、方法、介质和计算设备
CN110458164A (zh) * 2019-08-07 2019-11-15 深圳市商汤科技有限公司 图像处理方法、装置、设备及计算机可读存储介质
CN110689475A (zh) * 2019-09-10 2020-01-14 浪潮电子信息产业股份有限公司 一种图像数据处理方法、系统、电子设备及存储介质
CN111881778B (zh) * 2020-07-08 2023-12-05 泰康保险集团股份有限公司 文本检测的方法、装置、设备和计算机可读介质
CN111860506B (zh) * 2020-07-24 2024-03-29 北京百度网讯科技有限公司 识别文字的方法和装置
CN111985465A (zh) * 2020-08-17 2020-11-24 中移(杭州)信息技术有限公司 文本识别方法、装置、设备及存储介质
CN112819684B (zh) * 2021-03-02 2022-07-26 成都视海芯图微电子有限公司 一种面向图像文本识别的加速装置
CN113010469B (zh) * 2021-03-18 2023-05-26 恒睿(重庆)人工智能技术研究院有限公司 图像特征提取方法、装置以及计算机可读存储介质
CN112990182B (zh) * 2021-05-10 2021-09-21 北京轻松筹信息技术有限公司 筹款信息审核方法、系统及电子设备
US11961317B2 (en) * 2021-11-24 2024-04-16 Oracle Financial Services Software Limited Extracting textual information from image documents

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122964B (zh) * 2011-03-31 2014-07-02 西安电子科技大学 一种基于fpga的高速rs编译码器实现方法
CN102497411B (zh) * 2011-12-08 2014-01-15 南京大学 面向密集运算的层次化异构多核片上网络架构
CN102594891A (zh) * 2012-02-17 2012-07-18 中国科学院计算技术研究所 用于处理远程过程调用请求的方法及系统
CN103279390B (zh) * 2012-08-21 2016-09-28 中国科学院信息工程研究所 一种面向小作业优化的并行处理系统
CN102903115B (zh) * 2012-10-12 2016-01-20 中国科学院深圳先进技术研究院 一种管状物体中心线的提取方法
CN103593323A (zh) * 2013-11-07 2014-02-19 浪潮电子信息产业股份有限公司 一种MapReduce任务资源配置参数的机器学习方法
CN103996186B (zh) * 2014-04-29 2017-03-15 小米科技有限责任公司 图像裁剪方法及装置
CN104299168B (zh) * 2014-09-16 2019-04-02 华北电力大学 一种架空输电线路巡检飞行机器人的视点优选方法
CN104866460B (zh) * 2015-06-04 2017-10-10 电子科技大学 一种基于SoC的容错自适应可重构系统与方法
CN106326909A (zh) * 2015-07-01 2017-01-11 株式会社日立制作所 图像识别方法和图像识别装置
CN105956608A (zh) * 2016-04-21 2016-09-21 恩泊泰(天津)科技有限公司 一种基于深度学习的目标定位、分类算法
US11687345B2 (en) * 2016-04-28 2023-06-27 Microsoft Technology Licensing, Llc Out-of-order block-based processors and instruction schedulers using ready state data indexed by instruction position identifiers
US10032072B1 (en) * 2016-06-21 2018-07-24 A9.Com, Inc. Text recognition and localization with deep learning
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN106845530B (zh) * 2016-12-30 2018-09-11 百度在线网络技术(北京)有限公司 字符检测方法和装置
US11853244B2 (en) * 2017-01-26 2023-12-26 Wisconsin Alumni Research Foundation Reconfigurable computer accelerator providing stream processor and dataflow processor
CN107133616B (zh) * 2017-04-02 2020-08-28 南京汇川图像视觉技术有限公司 一种基于深度学习的无分割字符定位与识别方法
EP3607492A4 (en) * 2017-04-07 2021-01-06 INTEL Corporation ADVANCED AND AUGMENTED TRAINING PROCESSES AND SYSTEMS OF DEEP NEURAL NETWORKS USING SYNTHETIC DATA AND INNOVATIVE GENERATIVE NETWORKS
CN107832123A (zh) * 2017-07-13 2018-03-23 华中科技大学 基于人工智能的技术预见方法
CN107391429A (zh) * 2017-08-07 2017-11-24 胡明建 一种cpu+gpu+fpga的设计方法
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
CN108229299B (zh) * 2017-10-31 2021-02-26 北京市商汤科技开发有限公司 证件的识别方法和装置、电子设备、计算机存储介质
CN108229303B (zh) * 2017-11-14 2021-05-04 北京市商汤科技开发有限公司 检测识别和检测识别网络的训练方法及装置、设备、介质
CN109325494B (zh) * 2018-08-27 2021-09-17 腾讯科技(深圳)有限公司 图片处理方法、任务数据处理方法和装置
JP7287823B2 (ja) * 2018-09-07 2023-06-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法及び情報処理システム
US10970599B2 (en) * 2018-11-15 2021-04-06 Adobe Inc. Learning copy space using regression and segmentation neural networks
US11501477B2 (en) * 2021-03-22 2022-11-15 Adobe Inc. Customizing font bounding boxes for variable fonts
KR20240038109A (ko) * 2021-08-12 2024-03-22 아세니움 인코포레이티드 분산 레지스터 파일을 사용한 병렬 처리 아키텍처

Also Published As

Publication number Publication date
US20200401829A1 (en) 2020-12-24
EP3846079A1 (en) 2021-07-07
WO2020043057A1 (zh) 2020-03-05
EP3846079A4 (en) 2021-10-27
CN109325494A (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
CN109325494B (zh) 图片处理方法、任务数据处理方法和装置
US10936911B2 (en) Logo detection
US9235769B2 (en) Parallel object detection method for heterogeneous multithreaded microarchitectures
US11538244B2 (en) Extraction of spatial-temporal feature representation
CN110546611A (zh) 通过跳过处理操作来减少神经网络处理器中的功耗
CN110209472B (zh) 任务数据处理方法和板卡
CN111178517B (zh) 模型部署方法、系统、芯片、电子设备及介质
CN108520489B (zh) Gpu中一种实现命令解析和顶点获取并行的装置和方法
CN109241890B (zh) 面部图像校正方法、装置及存储介质
CN110765288B (zh) 一种图像信息同步方法、装置、系统及存储介质
US11175919B1 (en) Synchronization of concurrent computation engines
US10438088B2 (en) Visual-saliency driven scene description
US20210232921A1 (en) Methods and systems for managing processing of neural network across heterogeneous processors
JP7268063B2 (ja) 低電力のリアルタイムオブジェクト検出用のシステム及び方法
CN109271897A (zh) 人脸动作单元检测方法、装置、计算机设备及存储介质
CN115423936A (zh) Ai虚拟人物和影像处理方法、系统、电子设备及存储介质
US11562554B1 (en) Workload reduction for non-maximum suppression operation
CN112416301A (zh) 深度学习模型开发方法及装置、计算机可读存储介质
US10922146B1 (en) Synchronization of concurrent computation engines
WO2023124361A1 (zh) 芯片、加速卡、电子设备和数据处理方法
CN115391066B (zh) 用于芯片的数据交互方法、装置和人工智能芯片
US11954569B2 (en) Techniques for parallel model training
US20240071066A1 (en) Object recognition method and apparatus, and device and medium
Campeanu et al. Developing CPU-GPU embedded systems using platform-agnostic components
US11762721B2 (en) Method for realizing nGraph framework supporting FPGA rear-end device

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