CN115145743A - 视觉学习方法、系统、设备及存储介质 - Google Patents

视觉学习方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN115145743A
CN115145743A CN202210634147.0A CN202210634147A CN115145743A CN 115145743 A CN115145743 A CN 115145743A CN 202210634147 A CN202210634147 A CN 202210634147A CN 115145743 A CN115145743 A CN 115145743A
Authority
CN
China
Prior art keywords
interface
data
layer
adopting
model structure
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.)
Pending
Application number
CN202210634147.0A
Other languages
English (en)
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.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology 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 Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202210634147.0A priority Critical patent/CN115145743A/zh
Publication of CN115145743A publication Critical patent/CN115145743A/zh
Pending legal-status Critical Current

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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例公开了一种视觉学习方法、系统、设备及存储介质,其中,所述方法包括:采用系统资源层提供视觉学习对应的底层数据;采用接口适配层从所述系统资源层调用所述底层数据,并基于所述底层数据为应用层提供接口服务;采用所述应用层基于所述接口适配层提供的接口服务实现所述视觉学习。

Description

视觉学习方法、系统、设备及存储介质
技术领域
本申请涉及但不限于计算机视觉技术领域,尤其涉及一种视觉学习方法、 系统、设备及存储介质。
背景技术
近年来,随着海量数据积累、计算能力提升以及算法创新,人工智能 (ArtificialIntelligence,AI)计算机视觉类技术蓬勃发展。在应用深度学习框 架进行模型训练时,算法与框架、算法与数据集之间需要兼容适配。在相关技 术中,计算机视觉学习框架的应用程序接口(Application Programming Interface, API)多种多样、数据格式参差不齐、接口编写方式各不相同。由于视觉学习 框架的API在不同模式下的接口编写方式不同,使得通过不同的视觉学习框架 训练网络模型时需要重新学习、碎片化严重等,不利于AI产业生态发展。
发明内容
有鉴于此,本申请实施例至少提供一种视觉学习方法、系统、设备及存储 介质。
本申请实施例的技术方案是这样实现的:
一方面,本申请实施例提供一种视觉学习方法,所述方法包括:
采用系统资源层提供视觉学习对应的底层数据;
采用接口适配层从所述系统资源层调用所述底层数据,并基于所述底层数 据为应用层提供接口服务;
采用所述应用层基于所述接口适配层提供的接口服务实现所述视觉学习。
另一方面,本申请实施例提供一种视觉学习系统,所述视觉学习系统包括:
所述系统资源层,用于提供视觉学习对应的底层数据;
所述接口适配层,用于从所述系统资源层调用所述底层数据,并基于所述 底层数据为应用层提供接口服务;
所述应用层,用于基于所述接口适配层提供的接口服务实现所述视觉学习。
再一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所 述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时 实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算 机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序,包括计算机可读代码,当 所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行 用于实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品 包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计 算机读取并执行时,实现上述方法中的部分或全部步骤。
本申请实施例中,首先,通过系统资源层提供视觉学习对应的底层数据, 这样能够为视觉学习的实现过程提供充足的底层数据;然后,通过接口适配层 从所述系统资源层调用所述底层数据,并基于底层数据为应用层提供接口服务; 这样,接口适配层置于系统资源层和应用层之间,既能够从系统资源层调用所 需要的底层数据还能够为作为上层系统的应用层提供接口服务,以使得应用层 能够通过从接口适配层提供的接口服务中调用相应的数据实现视觉学习;如此, 应用层能够通过统一的接口适配层进行不同数据的读入,实现了对应用接口的 统一及规范化使用,从而能够使用不同的深度学习框架作为后端,并且能够在 不同的深度学习框架之间进行切换,进而能够提高视觉学习的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的, 而非限制本公开的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符 合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种视觉学习方法的实现流程示意图;
图2为本申请实施例提供的一种视觉学习方法的另一实现流程示意图;
图3为本申请实施例提供的一种视觉学习方法的又一实现流程示意图;
图4为本申请实施例提供的视觉学习方法的实现框架示意图;
图5为本申请实施例提供的一种视觉学习系统的组成结构示意图;
图6为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例 对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限 制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施 例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集, 但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集, 并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术 领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申 请的目的,不是旨在限制本申请。
在对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的 名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)计算机视觉,是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测 量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送 给仪器检测的图像。本申请实施例中计算机视觉是指一种具备获取、处理和解 释视觉数据能力的功能单元。
2)机器学习,作为人工神经网络可以根据学习过程中的示例数据来独立地 构建(训练)出基本规则。尤其是在机器视觉领域,神经网络通常采用监督式 学习的方法来训练,即通过示例数据和示例数据的预定义结果来进行训练。
3)模型训练(model training),利用训练数据,基于机器学习算法,建立 或改进机器学习模型参数的过程。
4)训练数据(training data),用于训练机器学习模型的输入数据样本子集。
5)推理(inference),从给定的前提进行论证并得出结论。推理既指过程 也指结果,其中,在人工智能领域中,一个前提是一个事实、一个规则、一个 模型、一个特征或原始数据。
6)深度神经网络学习(deep neural network learning),通过训练具有许多 隐层的神经网络来创建丰富层次表示的方法。
本申请实施例提供一种视觉学习方法,该方法可以由计算机设备的处理器 执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计 算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个 人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。 图1为本申请实施例提供的一种视觉学习方法的实现流程示意图,该方法应用 于视觉学习系统中,该视觉学习系统包括系统资源层、应用层以及置于所述系 统资源层和所述应用层之间的接口适配层,如图1所示,该方法包括如下步骤 S101至步骤S103:
步骤S101,采用系统资源层提供视觉学习对应的底层数据。
在一些实施例中,系统资源层可以是该视觉学习系统的底层,包括与接口 适配层进行通信的接口。系统资源层中的底层数据包括硬件数据和软件数据两 部分,能够提供视觉学习系统所需的存储空间、图像数据、计算和推理等功能。
在一些可能的实现方式中,通过该系统资源层提供实现视觉学习的机器学 习框架(比如,深度学习框架)、该机器学习框架进行机器学习时的运行环境、 实现该视觉学习的硬件设备以及硬件设备的计算调度。该计算调度可以是指设 备中线程、进程或数据流的调度情况,比如,线程、进程或数据流被调度到处 理器,网络链接或扩展卡之类的硬件资源上。
步骤S102,采用接口适配层从所述系统资源层调用所述底层数据,并基于 所述底层数据为应用层提供接口服务。
在一些实施例中,接口适配层与系统资源层通过软件的接口进行通信,接 口适配层在视觉学习框架中起到承上启下的作用。该接口适配层从系统资源层 调用底层数据,并为上层系统即应用层提供接口服务;即通过该接口适配层中 的多类接口对底层数据进行处理,以便于应用层能够调用接口适配层中各类接 口对底层数据进行处理的结果。接口适配层为应用层提供的接口服务包括接口 适配层每一类接口对应的服务。
步骤S103,采用所述应用层基于所述接口适配层提供的接口服务实现所述 视觉学习。
在一些实施例中,该应用层为视觉学习框架中的上层系统,能够完成机器 学习模型的训练和推理等过程。在模型的训练过程中,应用层从接口适配层调 用接口适配层中定义的各类接口,即调用接口适配层中各类接口提供的接口服 务,从而实现对机器学习模型的训练,实现视觉学习。
在一些实施例中,应用层在模型训练阶段调用接口适配层中的多类接口, 以完成模型训练,即采用所述应用层通过调用所述接口适配层中的多类接口对 所述视觉学习对应的机器学习模型进行训练,以实现所述视觉学习。这样,在 应用层对视觉学习对应的机器学习模型进行训练的过程中,通过调用接口适配 层中的多类接口即可实现,从而该应用层的后期维护可以采用不同的深度学习 框架,即可以使用不同的深度学习框架作为后端。
本申请实施例中,首先,通过系统资源层提供视觉学习对应的底层数据, 这样能够为视觉学习的实现过程提供充足的底层数据;然后,通过接口适配层 从所述系统资源层调用所述底层数据,并基于底层数据为应用层提供接口服务; 这样,接口适配层置于系统资源层和应用层之间,既能够从系统资源层调用所 需要的底层数据还能够为作为上层系统的应用层提供接口服务,以使得应用层 能够通过从接口适配层提供的接口服务中调用相应的数据实现视觉学习;如此, 应用层能够通过统一的接口适配层进行不同数据的读入,实现了对应用接口的 统一及规范化使用,从而能够使用不同的深度学习框架作为后端,并且能够在 不同的深度学习框架之间进行切换,进而能够提高视觉学习的效率。
在一些实施例中,通过在接口适配层中定义多类接口,以通过该多类接口 实现接口适配层、系统资源层和应用层之间的调用关系,即上述步骤S102可以 通过以下过程实现:
采用所述多类接口从系统资源层调用所述底层数据,并通过所述多类接口 基于所述底层数据为应用层提供接口服务。
这里,该多类接口中各类接口的功能不同,每一类接口从系统资源层调用 底层数据之后,在该类接口中对底层数据进行处理,并通过该类接口为应用层 提供接口服务。这样,通过在接口适配层中定义多类接口,从而采用该多类从 系统资源层调用底层数据,并且为应用层提供接口服务,以便于为应用层提供 统一的接口,进而使得不同的深度学习框架均能与该多类接口进行通信。
在一些实施例中,接口适配层中的多类接口包括以下至少之一:模型定义 类接口、算法训练类接口和应用推理类接口,这样,上述步骤S102可以通过图 2所示的步骤实现:
步骤S201,采用所述模型定义类接口提供所述底层数据对应的模型结构。
在一些实施例中,该模型定义类接口为接口多类接口中必须的接口,模型 定义类接口用于定义底层数据的数据结构,并定义符合该数据结构的模型结构。 其中,底层数据的数据结构包括数据的大小、数据的类型(比如,浮点型、整 数型等),能够支持数据结构直接的计算,比如,对底层数据进行初始化、对底 层数据设置索引或者对底层数据进行切片等。底层数据对应的模型结构可以是 用于定义符合低层数据的数据结构的功能模块,能够支持用户对算法模型的定 义。
在一些可能的实现方式中,通过为模型定义接口设置相应的功能,从而通 过该模型定义类接口定义数据结构和模型结构,即上述步骤S201可以通过以下 步骤S211和S212(图示未示出)实现:
步骤S211,采用所述模型定义类接口定义所述底层数据的数据结构。
这里,模型定义类接口支持定义所述底层数据的数据结构和模型结构,即 该模型定义类接口能够支持用户定义计算机视觉的数据结构和模型结构。该数 据结构可以是用户通过模型定义类接口进行定义的,比如,在视觉学习框架开 发的过程中,开发人员可以通过模型定义类接口定义数据接口,从而使得该框 架中的数据以该数据结构的形式进行传输。
步骤S212,基于所述数据结构,确定所述模型结构。
这里,定义该数据结构之后,设置输入输出均为该数据结构的模型结构, 通过该模型结构能够定义实现视觉学习的功能模块,从而支持用户在该模型定 义类接口进行算法模型的定义。如此,通过在接口适配层中提供模型定义类接 口能够定义计算机视觉的基本的数据结构以及该数据结构对应的模型结构,从 而能够为应用层提供统一的数据结构和模型结构。
步骤S202,采用所述算法训练类接口基于所述底层数据对所述模型结构进 行训练,并基于训练后的模型结构为所述应用层提供所述算法训练类接口对应 的服务。
在一些实施例中,通过在接口适配层中定义算法训练类接口,以通过该算 法训练类接口对底层数据对模型结构进行训练,从而能够为应用层提供训练后 的模型结构,以使应用层通过调用该训练后的模型结构实现推理功能。
在一些实施例中,算法训练类接口至少包括:第一数据处理接口、优化器 接口、量化训练接口、混合精度接口和分布式接口,通过这些接口实现对模型 结构的训练,即上述步骤S202可以通过以下步骤S221至S225(图示未示出) 实现:
步骤S221,采用所述第一数据处理接口将所述底层数据的格式转换成为与 所述模型结构匹配的格式,得到转换后的数据。
这里,在算法训练类接口中定义第一数据处理接口,通过该第一数据处理 接口对从系统资源层调用的底层数据,进行数据格式的转换,以使得转换后的 数据符合模型定义类接口所定义的数据结构。比如,将底层数据转换为表示样 本数据的张量,实现从系统资源层加载用于训练模型结构的样本数据。
步骤S222,采用所述优化器接口基于所述转换后的数据对所述模型结构的 模型参数进行更新,并为所述应用层提供更新后的模型结构。
这里,优化器接口采用转换后的数据作为样本数据对模型结构的模型参数 进行调整,比如,对模型结构的权重进行调整,从而得到更新后的模型结构, 以便于为应用层提供更新后的模型结构。
步骤S223,采用量化训练接口在所述模型结构的训练过程中感知所述模型 结构的损失。
这里,将转换后的数据作为样本数据对模型定义类接口定义的模型结构进 行训练,并通过量化训练接口感知模型量化带来的损失。
步骤S224,采用所述混合精度接口基于所述损失对所述更新后的模型结构 进行混合精度训练,并为所述应用层提供混合精度训练后的模型结构。
这里,混合精度接口能够支持对更新后的模型结构进行混合精度训练,从 而得到混合精度训练后的模型结构,以便于应用层能够从该接口调用混合精度 训练后的模型结构。
步骤S225,采用所述分布式接口将所述模型结构在训练过程中的数据在多 个进程之间进行数据传输,并基于所述多个进程向所述应用层传输数据。
这里,分布式接口通过并行的方式传输模型结构在训练过程中产生的数据, 而且还可以通过该分布式接口中的多个并行的进程向应用层传输数据。
上述步骤S221至步骤S225通过在算法训练类接口中定义第一数据处理接 口、优化器接口、量化训练接口、混合精度接口和分布式接口等接口,从而在 接口适配层能够为应用层提供训练好的模型结构以及为应用层提供训练过程中 各个接口输出的结果。
在其他实施例中,还可以在算法训练类接口中定义可视化接口、蒸馏接口 和图算融合接口,这样,上述步骤S202可以通过以下步骤S226至S228(图示 未示出)实现:
步骤S226,采用所述可视化接口将所述底层数据的格式转换成为与所述模 型结构匹配的格式,并对转换后的数据进行可视化,并为所述应用层提供可视 化的所述转换后的数据。
这里,在算法训练类接口中该可视化接口的输入可以是第一数据处理接口 输出的转换后的数据,还可以是从系统资源层调用的底层数据。可视化接口对 训练过程中产生的数据进行可视化。
步骤S227,采用所述蒸馏接口通过教师网络指导学生网络对所述模型结构 进行训练,并为所述应用层提供训练后的模型结构。
这里,蒸馏接口支持通过教师网络指导学生网络的方式对模型结构进行训 练,可以与优化器接口或混合精度接口进行结合使用,以快速实现对模型结构 的训练过程。
步骤S228,采用所述图算融合接口对所述模型结构对应的计算图逻辑进行 调整,并基于调整后的计算图逻辑同步调整所述模型结构,为所述应用层提供 调整后的模型结构。
这里,图算融合接口能够支持对模型结构的计算图逻辑进行调整,从而应 用层通过调用该图算融合接口可实现对计算图逻辑的调整。如此,通过在算法 训练类接口定义可视化接口、蒸馏接口和图算融合接口,能够采用可视化接口 对训练数据过中产生的数据进行可视化,采用蒸馏接口对模型结构进行蒸馏从 而得到结构更小且性能更优的模型,采用该图算融合接口能够及时对计算图逻 辑进行调整,进而实现了优化该算法训练类接口。
步骤S203,采用所述应用推理类接口对所述底层数据进行处理,并基于已 处理底层数据为所述应用层提供应用推理类接口对应的服务。
在一些实施例中,应用推理类接口可以从系统资源层中调用需要进行推理 的底层数据,并对该底层数据进行处理,比如,对底层数据进行图像预处理。 应用推理类接口即能够支持对底层数据的预处理,还能够支持用户进行插件的 开发和各个接口的使用,从而为应用层提供已处理底层数据。应用推理类接口 对所述底层数据进行处理包括:包括对该底层数据的视觉任务编排、对底层数 据的预处理操作以及对底层数据中的重复目标的过滤等。
在一些可能的实现方式中,该应用推理类接口包括:流程编排接口、分块 检测接口、插件接口和第二数据处理接口,通过该多个应用推理类接口在接口 适配层实现对图像数据的应用,即上述步骤S203可以通过以下步骤S231至 S234(图示未示出)实现:
步骤S231,采用所述第二数据处理接口读取所述底层数据中的图像数据并 对所述图像数据进行预处理,得到预处理后的图像数据,并为所述应用层提供 所述预处理后的图像数据。
这里,第二数据处理接口从底层数据中读取图像数据,并对该图像数据进 行预处理操作,得到预处理后的图像数据。比如,对图像数据的清晰度进行调 整或者对图像数据进行降噪等,得到预处理后的图像数据。第二数据处理接口 能够为应用层提供该第二数据处理接口,即应用层在模型训练过程中可以调用 第二数据处理接口的预处理后的图像数据。
步骤S232,采用所述流程编排接口对所述预处理后的图像数据进行视觉任 务编排,为所述应用层提供编排后的图像数据。
这里,将预处理后的图像数据输入到流程编排接口中,或者流程编排接口 从第二数据处理接口中获取预处理后的图像数据。流程编排接口对预处理后的 图像数据进行视觉任务编排,从而能够为应用层提供编排后的图像数据,即应 用层能够调用流程编排接口的编排后的图像数据。
在一些可能的实现方式中,流程编排接口对所述预处理后的图像数据进行 视觉任务编排包括以下至少之一:
方式一:获取所述预处理后的图像数据;比如,从第二数据处理接口中调 用该预处理后的图像数据。
方式二:对所述预处理后的图像数据进行图像解码;比如,按照模型定义 类接口中定义的模型结构所需的解码方式,对预处理后的图像数据进行图像解 码,以便于应用层能够调用解码后的图像数据。
方式三:对所述预处理后的图像数据进行缩放;比如,按照模型定义类接 口中定义的数据结构中规定的图像数据的标准大小,对预处理后的图像数据进 行缩放,以使得缩放后的图像数据符合模型定义类接口所定义的数据结构。
方式四:对所述预处理后的图像数据进行目标检测;比如,通过调用算法 训练类接口中训练后的模型结构对预处理后的图像数据进行目标检测,以检测 到该预处理后的图像数据中的目标;比如,预处理后的图像数据的画面为交通 场景下的画面,那么目标可以是预处理后的图像数据中的车辆。
方式五:对所述预处理后的图像数据进行裁剪;比如,按照模型定义类接 口中定义的数据结构中规定的图像数据的标准大小,对预处理后的图像数据进 行裁剪,还可以是对预处理后的图像数据中的感兴趣区域进行裁剪等。
方式六:对所述预处理后的图像数据进行图像分类;比如,通过调用算法 训练类接口中训练后的模型结构对预处理后的图像数据进行图像分类,以确定 到该预处理后的图像数据所属的类型。
方式七:对所述预处理后的图像数据进行序列化。这样,将预处理后的图 像转换为可以存储或传输的形式。
如此,通过上述方式一至方式七实现对预处理后的图像数据的视觉任务编 排,从而实现了通过统一的流程编排接口为应用层提供编排后的图像数据。
步骤S233,采用所述分块检测接口对所述预处理后的图像数据中重叠的目 标进行过滤,为所述应用层提供过滤后的图像数据。
在一些实施例中,分块检测接口支持用户定义分块数,即用户能够通过分 块检测接口对图像数据的分块数进行定义。首先,采用分块检测接口基于定义 的分块数对图像数据进行分块;然后,采用分块检测接口对分块后的图像数据 中重叠的目标进行过滤,以得到过滤后的图像数据。
步骤S234,采用所述插件接口中设置的插件对所述预处理后的图像数据进 行处理,得到已处理图像数据,并为所述应用层提供所述已处理图像数据。
在一些实施例中,插件接口支持插件开发、注册和编译,通过所述插件接 口在对所述图像数据进行视觉处理的过程中进行插件开发注册和编译。
上述步骤S231至步骤S234,通过多个应用推理类接口在推理阶段从底层 数据中获取图像数据,并采用每一个应用推理类接口对图像数据进行处理,从 而能够通过该应用推理类接口为应用层提供所需的图像数据,便于应用层通过 调用接口适配层中的该应用推理类接口即可得到该接口中处理后的图像数据。
在一些实施例中,系统资源层既能够提供视觉学习所需的硬件数据以及软 件数据,以便于接口适配层通过多类接口对底层数据进行处理,从而为应用层 提供接口服务,即上述步骤S101可以通过图3所示的步骤实现:
步骤S301,采用所述系统资源层确定所述视觉学习对应的硬件数据和软件 数据。
在一些实施例中,硬件数据包括视觉学习对应的硬件设备标识和所述硬件 设备的计算调度,软件数据包括图像数据、深度学习框架以及深度学习框架的 运行环境等。
在一些可能的实现方式中,可以通过以下步骤实现上述步骤S301:
第一步,采用所述系统资源层确定所述视觉学习对应的硬件设备标识和所 述硬件设备的计算调度。
这里,系统资源层分析视觉学习对应的硬件设备标识,从而确定执行该视 觉学习的硬件设备,该硬件设备标识用于唯一表示硬件设备,可以是机器序列 号。硬件设备的计算调度用于表征该硬件设备中进程的调度情况。
第二步,将所述硬件设备标识和所述计算调度,确定为所述硬件数据。
这样,将硬件设备标识和该硬件设备的计算调度作为硬件数据,从而能够 为接口适配层提供充足的硬件资源,从而基于该硬件资源实现接口适配层中的 各类接口的功能。
步骤S302,将所述硬件数据和所述软件数据确定为所述底层数据。
上述步骤S301和S302,在该底层数据中提供硬件数据和所述软件数据, 从而能够为接口适配层提供充足的底层数据,以使得接口适配层中的各类接口 通过从系统资源层调用底层数据实现各类接口的功能,便于为应用层通过统一 的接口提供各类服务。
在一些可能的实现方式中,在系统资源层中分析视觉学习的机器学习框架、 运行环境,以及视觉学习过程中的图像数据,即上述步骤S302可以通过以下步 骤实现:
第一步,采用系统资源层确定所述视觉学习对应的机器学习框架、所述机 器学习框架的运行环境以及所述视觉学习对应的图像数据。
第二步,将所述深度学习框架、所述深度学习框架的运行环境和所述图像 数据,确定为所述软件数据。
上述第一步和第二步,通过系统资源层确定能够实现视觉学习的机器学习 框架以及该框架的运行环境,同时确定视觉学习过程中的图像数据,将这些数 据作为软件数据提供给接口适配层,从而能够给视觉学习框架提供充足的软件 数据。
在一些实施例中,通过采用搭建好的视觉学习框架能够实现任意的视觉学 习任务,可以通过以下步骤实现:
第一步,基于所述系统资源层、所述应用层以及设置于所述系统资源层和 所述应用层之间的所述接口适配层,搭建所述视觉学习对应的视觉学习框架。
第二步,采用所述视觉学习框架处理所述视觉学习对应的视觉学习任务
通过上述第一步和第二步,将接口适配层设置于系统资源层和应用层之间 搭建视觉学习框架,使得视觉学习框架中应用层能够调用接口适配层中统一的 接口,从而实现接口的统一及规范化使用。
下面说明本申请实施例提供的视觉学习方法在实际场景中的应用,以针对 深度学习的计算机视觉算法为例进行说明。
本申请实施例规定了人工智能计算机视觉算法与深度学习框架、算法与数 据集之间所涉及接口的功能和技术要求。
本申请实施例适用于基于深度学习的计算机视觉算法开发和应用过程中所 涉及应用编程接口的适配和调用。
相关技术中开发的开放神经网络交换格式(Open Neural Network Exchange,ONNX),用于表示深度学习模型的标准方法,可使模型在不同框架之间进行转 移(一般用于中间部署阶段)。相关技术中,将ONNX以开放源代码的方式托 管在软件项目的托管平台上,能够推动更多框架支持ONNX。
不同框架对算法训练的兼容适配能力有限。随着产业的发展,各大厂商已 经认识到框架与算法强耦合带来的诸多问题。相关技术中,计算机视觉学习框 架API多种多样、数据格式参差不齐、接口编写方式各不相同。框架的API在 不同模式下的接口编写特方式不同,比如,用一种框架开发的算法后期升级维 护只能采用同一框架,算法跟框架的关系是紧耦合的,不利于二次开发。
基于此,本申请实施例提供一种视觉学习方法,在系统资源层与算法应用 层之间增加接口适配层,通过增加的接口适配层中的多类接口,实现配置好的 算法能够使用不同的深度学习框架作为后端,并且可进行切换;而且可以通过 统一的数据接口进行不同数据的读入以及在不同的硬件上运行。
本申请实施例提供的视觉学习方法如图4所示,图4为本申请实施例提供 的视觉学习方法的实现框架示意图,从图4可以看出,该框架包括:系统资源 层401、接口适配层402和算法应用层403,系统资源层401作为底层,接口适 配层402作为中间层,算法应用层403作为上层。系统资源层401、接口适配 层402和算法应用层403之间调用和通信的方式是通过软件的具体接口。这里 接口适配层是承上启下的作用,通过定义通用接口(如数据结构、模型结构), 算法训练接口(如优化器、分布式、量化、混合精度、数据处理等),算法推理接口(流程编排、分块检测)等所涉及的功能及参数进行具体实现。其中:
系统资源层401,包括硬件和软件两部分,用于提供计算机视觉系统必须 的存储、计算和推理等功能。系统资源层401在各个厂商中的具体实现方式不 同,对此本申请实施例不做进一步描述和规定。
系统资源层401包括:深度学习框架411、机器学习运行时环境412和硬 件设备及其计算调度413;其中,
深度学习框架411,用于提供一个机器学习平台,可提供各种训练数据库 和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够 轻松地构建和部署由机器学习提供支持的应用。
机器学习运行时环境412,提供进行机器学习模型进行运行的环境。
硬件设备及其计算调度413,提供计算机视觉系统所需的硬件设备和设备 的计算调度。
接口适配层402,为上层系统的实现过程提供数据接口、优化接口、分布 式接口、模型接口等服务接口,确保数据、算法、框架进行模型训练和模型在 不同框架间迁移的高效灵活;
在接口适配层402中,分成了模型定义类接口41、算法训练类接口42和 应用推理类接口43三大类接口,这几类接口都是为了调用系统资源层相关资 源,同时其接口服务于上层应用。其中,模型定义类接口是必不可少的,主要 定义数据结构及模型结构,包括:数据结构421和模型结构422,其中:
数据结构421指的是该数据结构作为计算机视觉的基本数据结构(Tensor), 能够支持基本数据结构直接的计算,例如初始化、索引、切片等。
模型结构422指的是模型结构的输入输出均为该基本数据结构或该基本数 据结构的集,例如通过模型结构定义Module,框架应该能够支持算法模型的定 义。
算法训练42的接口包括:优化器接口423、数据处理接口424、量化训练 接口425、分布式接口426、混合精度接口427,还可包括可视化接口428、蒸 馏接口429、图算融合接口430,其中,
优化器接口423,用于优化被训练的神经网络模型,即根据不同的优化算 法,对神经网络模型的参数进行优化更新。
数据处理接口424,支持将数据转换成模块要求的格式,例如,张量。
量化训练接口425,为算法提供了在神经网络训练过程中感知到模型量化 带来的信息损失。
分布式接口426,用于在多机多卡的分布式训练场景下完成数据在多个进 程之间的数据传输。
混合精度接口427,用于为算法提供了混合精度训练的统一支持,可以减 小显存消耗,并且在显卡支持的情况下提高训练速度。
可视化接口428,用于支持将数据转换成模块要求的格式,例如张量。
蒸馏接口429,用于支持训练过程中采用教师网络指导学生网络进行训练, 从而提升学生模型训练精度。
图算融合接口430,是通过分析和优化网络计算图逻辑,减少算子执行间 隙的开销并且提升设备计算资源利用率,从而实现网络整体执行时间的优化。
应用推理43的接口包括:流程编排接口431、分块检测接口432、插件接 口433和数据处理接口434,其中,
流程编排接口431,用于计算是视觉任务编排,如图像获取、图片解码、 图像缩放、目标检测、图像裁剪、图像缩放、图像分类、序列化等过程。
分块检测接口432,用于用于过滤分块后重叠区域重复目标,及支持用户 定义分块的个数。
插件接口433,用于计算机视觉系统支持视觉处理过程插件开发和使用接 口,支持用户开发插件、注册和编译。
数据处理接口434,用于从图像文件读取数据并进行预处理操作的过程。
算法应用层403,能够通过调用接口适配层中的各类接口进行图像识别 451、图像检测452、图像分割453以及其他等。
本申请实施例提供的接口配置方法可以被计算机视觉算法开发方、使用方、 评测方使用。比如,计算机视觉使用方使用了A厂商的算法,在应用过程中发 现此算法不满足业务需要了,这个时候如果更换算法,要考虑到与算法相关的 软件的依赖性。如果算法采用了上述接口,则不用考虑太多软件及工具链的问 题,比较轻松的对算法进行更换和升级。这样,在本申请实施例中,通过在系 统资源层与应用推理层之间增加接口适配层,以及对算法应用接口的统一及规 范化使用;从而实现计算机视觉算法接口的规范化使用,完成计算机视觉AI 算法与学习框架、数据集解耦合;而且对AI算法、模型进行测试评估,解决了测试平台无法兼容使用不同框架开发的算法无法在统一平台测评的问题;而且 能够指导行业按照接口要求进行算法实现,进而推动不同训练平台间的互联互 通。
在一些实施例中,通过接口适配层中的模型定义类接口进行数据结构的定 义,可以通过以下过程实现:
计算机视觉系统接口要求(要求的必选、可选,应宜可的使用)
在一些实施例中,数据集可以为如图像、视频、二进制数据等格式,数据 集标注文件为json格式,包含该数据集所有样本的标注信息,如果标注结果 包含其他辅助文件,例如掩膜图层信息,则在json文件中存储辅助文件的相 对路径。常见的数据类型表示为:
支持类别标签,例如用整数表示,其中0表示背景,正整数表示前景;支 持矩形框,例如用左上顶点和右下顶点的坐标表示,顺序为(左上顶点x坐标, 左上顶点y坐标,右下顶点x坐标,右下顶点y坐标);支持标注文件经过数据 读取接口之后应当被解析为列表或数组,其每个元素是一个字典或键值对容器, 包含了其中一个样本的所有相关信息,可以被数据集根据索引来访问;支持可 加载特定类型的数据集格式,并支持自定义数据集;支持标注文件支持主流开 源数据集的数据格式。
在一些实施例中,通过接口适配层中的模型定义类接口进行模型结构的定 义,可以通过以下过程实现:
a)应支持基本算子,包括不限于“+”、“-”、“*”、“/”、卷积操作等算子; b)应定义该算子的参数的含义和取值,并且定义在forward时通过输入得到输 出的计算逻辑;c)基本算子应支持通过算子链接和函数嵌套构建计算图;d)计 算图应支持通过链式法则进行反向传播的求导;e)应支持通过条件判断或者循 环来对计算图进行构建;f)应支持编译用户自定义的算子,并且能让算子加入 计算图使用;g)应支持对模型参数进行序列化与反序列化。
在本申请实施例中,优化器接口应支持网络模型优化的功能,根据不同的 优化算法例如SGD、Adam、Momemtum等,对模型参数进行优化更新。具体 来说,应实现梯度计算和回传、参数更新、优化算法、学习率更新等功能。
优化器接口应实现:a)支持实现为一个类,其构造参数为网络模型或者模 型参数列表,以及所需的其他参数,例如学习率等;b)支持实现step()函数 用于进行一次参数优化更新。该函数被调用之后,模型参数应根据累积的梯度 进行更新。
在本申请实施例中,混合精度训练接口为算法提供了混合精度训练的统一 支持,可以减小显存消耗,并且在显卡支持的情况下提高训练速度。该接口应 实现以下功能:
a)支持精度转换功能,将模型参数转换成fp16,特殊层(例如BN层) 除外,同时保留一份fp32的参数拷贝;b)支持输入前传功能,将输入数据转 换成fp16,进行前向传播,计算损失;c)支持损失放大功能,对计算出的损 失进行放大,支持固定因子和动态因子两种放大模式;d)支持梯度计算功能, 在fp16模式下计算梯度并回传,然后转换成fp32,根据c)中的放大因子等 比例缩小回实际尺度;e)支持参数更新功能,根据d)中计算的梯度,在fp32 的参数拷贝中更新参数,然后赋值给fp16的模型。
在本申请实施例中,通过分布式接口,框架能够在多机多卡的分布式训练 场景下完成数据在多个进程之间的数据传输。该接口应具备以下核心功能:
分布式接口要涵盖bcast()、reduce()、scatter()、gather()、allreduce()、allgateher()、sync()等,该组接口应实现:支持将主进程的数据广播到各个进程 中;支持将各个进程的数据规约到主进程;支持将主进程的一组数据散射到各 个进程中;支持将分散在各个进程的数据收集到主进程中,作为一组数据;支 持将各个进程的数据规约,然后广播到各个进程;支持将各个进程中分散的数 据收集成一组,然后广播到各个进程;支持确定之前发出的通信指令都被完成。
在本申请实施例中,量化训练接口为算法提供了在神经网络训练过程中感 知到模型量化带来的信息损失。具体讲,在训练过程中通过浮点权重形式近似 模拟量化权重,从而在前向传播时可以模拟量化模型,计算出浮点类型的误差, 进而将误差进行反向传播更新权重。量化模型有助于模型推理加速及降低存储 需求。该接口应实现以下功能:
支持输入量化,可将输入从32位浮点类型转换为8位或定制位定点类型; 支持卷积、加法算子的量化,反量化;支持伪量化节点,应包括对浮点权重进 行量化及反量化功能;支持误差反向传播,前向传播时计算通过b)计算出误 差,并更新到浮点权重再进行量化;支持量化模型输出,经过量化训练后的模 型可转换成定点模型存储。
在本申请实施例中,通过数据接口,支持将数据转换成模块要求的格式, 例如张量。数据接口应具备外层接口和内层接口。框架应能够以迭代的形式为 算法训练准备持续的训练数据。该接口应具备以下核心功能:
支持实现一个可迭代的数据加载器类型,每次迭代返回值均为一个数据批;
支持根据训练要求从数据集中采样数据;支持根据数据集路径以及数据集 相关的参数构造数据集对象;支持从存储设备或服务上读取数据集的部分或全 部数据,例如标注文件、数据样本等;支持对数据进行预处理操作,例如图像 缩放、翻转、颜色扰动等。
在本申请实施例中,训练可视化接口是为算法训练过程中提供训练过程中 模型结构、参数、梯度、特征等,该接口应具备:宜支持模型结构图可视化; 支持feature map的可视化;支持权重直方图可视化;支持标量变化情况的可视 化;支持卷积核可视化。
在本申请实施例中,蒸馏接口支持训练过程中采用教师网络指导学生网络 进行训练,从而提升学生模型训练精度:宜支持目标蒸馏方法;宜支持特征蒸 馏方法。
在本申请实施例中,图算融合是通过分析和优化现有网络计算图逻辑,减 少算子执行间隙的开销并且提升设备计算资源利用率,从而实现网络整体执行 时间的优化。支持对原有计算逻辑进行拆分、重组、融合等操作;支持在训练 脚本中修改context指定参数从而启用图算融合。
在本申请实施例中,计算机视觉系统支持流程编排,接口符合以下要求:
应能组合图像获取、图片解码、图像缩放、目标检测、图像裁剪、图像缩 放、图像分类、序列化等关键过程;
宜支持关键过程插件化,插件可配置属性;
应支持用户挂载元数据;
应支持基于配置文件的流程编排管理,具有管理组件;
应支持为特定流程的指定加速器;
应支持多请求、多输出流程的编排;
应支持以下模型的编排:YOLOv3,YOLOv3-tiny,ResNet50,Faster Rcnn, YOLOv4,SSD-VGG16,SSD MobileNet v1 FPN,CRNN,YOLOv5, FasterRCNN-FPN/CascadeRCNN-FPN,ResNet-18,DeepLabv3+,CTPN, DeepLabv3,BERT-Base(Uncased),DeepLabv3+,U-Net,MaskR-CNN,FaceNet, SSD MobileNet v1 FPN,OpenPose,Unet++,RetinaNet;
应支持单输入、单输出、多输入、多输出编排。
在本申请实施例中,计算机视觉系统具备数据处理接口,接口符合以下要 求:
应支持从图像文件读取数据,并移入预先配置的缓存;
应支持JPG/JPEG/BMP格式图像解码,分辨率范围(32*32,8192*8192);
应至少支持JPG图像的编码,分辨率范围(32*32,8192*8192);
应支持指定目标宽高的图像缩放,面向步长的图像宽、高缩放对齐;
应支持指定上下左右四个方向的扩边比例,扩大目标框的区域的裁剪;
应支持H264/H265格式的视频解码,分辨率范围(128*128,4096*4096);
应支持面向步长的宽、高缩放对齐;
应支持分辨率范围(128*128,1920*1920),H264 MP和H265 MP;
应支持图像归一化,中心裁剪,仿射变换和旋转;
应支持关键过程间的数据传递,宜支持单个输入的多次分发;
应支持处理器内存与主存之间转移数据;
应支持视频数据跳帧处理;
应支持序列化:
在本申请实施例中,计算机视觉系统支持视觉处理过程插件开发和使用接 口,符合以下要求:宜支持用户开发插件、注册和编译;宜支持插件初始化、 去初始化、执行、属性注册及获取等接口;宜支持插件输入输出的可变及不可 变端口的定义接口;宜支持业务逻辑异常定义及抛出接口;
宜支持串流插件接口,实现以下功能:向不同端口发送指定类别或通道的 数据;多个端口输入数据通过一个端口按顺序输出;应支持同类型插件的多实 例化接口;应支持插件缓存机制和接口,实现插件间业务数据(如解码后的视 频、图像数据)的传递;应支持插件元数据(如分类信息、目标信息)的描述 接口,并依附于插件缓存实现传递;应支持单输入、单输出、多输入、多输出 插件接口;应支持推理插件接口,支持目标分类,检测和基于张量(输入)的 推理;应支持模型后处理插件接口,能与目标检测,分类,语义分割,文本生成,文本框检测,姿态检测等模型对接;
应支持视频分析插件接口,实现以下功能:多目标(包括机非人、人脸) 路径记录;人脸对齐(矫正检测出的人脸图像);视频质量诊断;应支持调试插 件接口,实现数据导出(如json格式)和数据加载还原;宜支持屏幕展示插件 接口,实现在图像上绘制基本单元,如画框、画线、画圆、写字等功能。
在本申请实施例中,计算机视觉系统支持分块检测接口,符合以下要求:
支持过滤分块后重叠区域重复目标;支持用户定义分块的个数/大小、 overlap等参数,自动生成图像分块的目标框;分块推理结果的图像的合并;多 级推理时,支持对后处理结果根据面积最大最小、面积上下限、置信度阈值的 选择过滤。
Module是神经网络中的基本模块,神经网络模块基于该基础类进行图的构 建。
Module提供功能1:模块前向计算:a)接口名称:forward;b)接口功能 描述:模块执行一次前向计算并返回模块的计算结果。如果是训练状态,则在 前向计算过程构造计算图以用于计算模块参数的梯度。
Module提供功能2:获取模块可训练参数:a)接口名称:get_parameters; b)接口功能描述:返回模块的可训练参数。
Module提供功能3:获取模块及其子模块:a)接口名称:get_modules;b) 接口功能描述:可选接口。该接口返回一个迭代器,迭代返回模块本身以及模 块的子模块,重复的模块只返回一次。
Module提供功能4:获取模块状态:a)接口名称:get_state_dict;b)接口 功能描述:以键值对的方式返回模块的状态,包括模块的参数以及缓冲(buffer)。
Module提供功能5:加载模块状态:a)接口名称:load_state_dict;b)接 口功能描述:加载模块的状态,包括模块的参数以及缓冲。
Module提供功能6:模块反向计算:a)接口名称:backward(grad_input, grad_output);b)接口功能描述:模块执行一次反向计算并返回模块的计算结果。 如果是训练状态,则在反向计算过程计算模块参数的梯度。该函数为计算图自 动生成,也可通过后续register_backward_function进行注册。
Module提供功能7:模块前向计算:a)接口名称:register_ backward_function;b)接口功能描述:模块执行一次反向计算并返回模块的计 算结果。如果是训练状态,则在反向计算过程计算模块参数的梯度。
基于前述的实施例,本申请实施例提供一种视觉学习系统,该系统包括所 包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器 来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为 中央处理器(CentralProcessing Unit,CPU)、微处理器(Microprocessor Unit, MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列 (Field Programmable GateArray,FPGA)等。
图5为本申请实施例提供的一种视觉学习系统的组成结构示意 图,如图5所示,视觉学习系统500包括:
所述系统资源层501,用于提供视觉学习对应的底层数据;
所述接口适配层502,用于从所述系统资源层调用所述底层数据,并基于 所述底层数据为应用层提供接口服务;
所述应用层503,用于基于所述接口适配层提供的接口服务实现所述视觉 学习。
在一些实施例中,所述接口适配层包括多类接口,所述接口适配层502, 包括:
所述多类接口,用于从系统资源层调用所述底层数据,并基于所述底层数 据为应用层提供接口服务。
在一些实施例中,所述多类接口包括:模型定义类接口、算法训练类接口 和应用推理类接口。
在一些实施例中,所述接口适配层502,包括:
所述模型定义类接口,用于提供所述底层数据对应的模型结构;
所述算法训练类接口,用于基于所述底层数据对所述模型结构进行训练, 得到训练后的模型结构,并为所述应用层提供所述算法训练类接口对应的服务;
所述应用推理类接口,用于对所述底层数据进行处理,并基于已处理底层 数据为所述应用层提供所述应用推理类接口对应的服务。
在一些实施例中,所述模型定义类接口支持定义所述底层数据的数据结构 和模型结构。
在一些实施例中,所述模型定义类接口,还用于:定义所述底层数据的数 据结构;基于所述数据结构,确定所述模型结构。
在一些实施例中,所述算法训练类接口包括:第一数据处理接口、优化器 接口、量化训练接口、混合精度接口和分布式接口。
在一些实施例中,所述算法训练类接口,包括:
所述第一数据处理接口,用于将所述底层数据的格式转换成为与所述模型 结构匹配的格式,得到转换后的数据;
所述优化器接口,用于基于所述转换后的数据对所述模型结构的模型参数 进行更新,并为所述应用层提供更新后的模型结构;
所述量化训练接口,用于在所述模型结构的训练过程中感知所述模型结构 的损失;
所述混合精度接口,用于基于所述损失对所述更新后的模型结构进行混合 精度训练,并为所述应用层提供混合精度训练后的模型结构;
所述分布式接口,用于将所述模型结构在训练过程中的数据在多个进程之 间进行数据传输,并基于所述多个进程向所述应用层传输数据。
在一些实施例中,所述算法训练类接口还包括:可视化接口、蒸馏接口和 图算融合接口。
在一些实施例中,所述算法训练类接口,包括:
所述可视化接口,用于将所述底层数据的格式转换成为与所述模型结构匹 配的格式,并对转换后的数据进行可视化,并为所述应用层提供可视化的所述 转换后的数据;
所述蒸馏接口,用于通过教师网络指导学生网络对所述模型结构进行训练, 并为所述应用层提供训练后的模型结构;
所述图算融合接口,用于对所述模型结构对应的计算图逻辑进行调整,并 基于调整后的计算图逻辑同步调整所述模型结构,为所述应用层提供调整后的 模型结构。
在一些实施例中,所述应用推理类接口包括:流程编排接口、分块检测接 口、插件接口和第二数据处理接口。
在一些实施例中,所述应用推理类接口,包括:
所述第二数据处理接口,用于读取所述底层数据中的图像数据并对所述图 像数据进行预处理,得到预处理后的图像数据,并为所述应用层提供所述预处 理后的图像数据;
所述流程编排接口,用于对所述预处理后的图像数据进行视觉任务编排, 为所述应用层提供编排后的图像数据;
所述分块检测接口,用于对所述预处理后的图像数据中重叠的目标进行过 滤,为所述应用层提供过滤后的图像数据;
所述插件接口,用于采用设置的插件对所述预处理后的图像数据进行处理, 得到已处理图像数据,并为所述应用层提供所述已处理图像数据。
在一些实施例中,所述流程编排接口,还用于以下至少之一:获取所述预 处理后的图像数据;对所述预处理后的图像数据进行图像解码;对所述预处理 后的图像数据进行缩放;对所述预处理后的图像数据进行目标检测;对所述预 处理后的图像数据进行裁剪;对所述预处理后的图像数据进行图像分类;对所 述预处理后的图像数据进行序列化。
在一些实施例中,所述系统资源层501,还用于:确定所述视觉学习对应 的硬件数据和软件数据;将所述硬件数据和所述软件数据确定为所述底层数据。
在一些实施例中,所述系统资源层501,还用于:采用所述系统资源层确 定所述视觉学习对应的硬件设备标识和所述硬件设备的计算调度;将所述硬件 设备标识和所述计算调度,确定为所述硬件数据。
在一些实施例中,所述系统资源层501,还用于:采用系统资源层确定所 述视觉学习对应的机器学习框架、所述机器学习框架的运行环境以及所述视觉 学习对应的图像数据;将所述深度学习框架、所述深度学习框架的运行环境和 所述图像数据,确定为所述软件数据。
在一些实施例中,所述应用层503,还用于:采用所述应用层通过调用所 述接口适配层中的多类接口对所述视觉学习对应的机器学习模型进行训练,以 实现所述视觉学习。
在一些实施例中,所述系统还包括:
搭建模块,用于基于所述系统资源层、所述应用层以及设置于所述系统资 源层和所述应用层之间的所述接口适配层,搭建所述视觉学习对应的视觉学习 框架;
处理模块,用于采用所述视觉学习框架处理所述视觉学习对应的视觉学习 任务。
以上系统实施例的描述,与上述方法实施例的描述是类似的,具有同方法 实施例相似的有益效果。在一些实施例中,本申请实施例提供的系统具有的功 能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请系统实 施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的 视觉学习方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可 读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对 相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在 一个存储介质中,包括多个指令用以使得一台计算机设备(可以是个人计算机、 服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而 前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、 磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于 任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存 储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方 法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该 计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可 读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机 可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于 实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了 计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并 执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过 硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体 体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件 产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间 的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机 程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具 有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及 计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述 而理解。
需要说明的是,图6为本申请实施例中计算机设备的一种硬件实体示意图, 如图6所示,该计算机设备600的硬件实体包括:处理器601、通信接口602 和存储器603,其中:
处理器601通常控制计算机设备600的总体操作。
通信接口602可以使计算机设备通过网络与其他终端或服务器通信。
存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待 处理器601以及计算机设备600中各模块待处理或已经处理的数据(例如,图 像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH) 或随机访问存储器(Random AccessMemory,RAM)实现。处理器601、通信 接口602和存储器603之间可以通过总线604进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实 施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此, 在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指 相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合 在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程 的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能 和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申 请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意 在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装 置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为 这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由 语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物 品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可 以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所 述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式, 如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽 略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦 合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可 以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为 单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可 以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来 实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中, 也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一 个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软 件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可 以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储 介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介 质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者 光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立 的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样 的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软 件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多个 指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等) 执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动 存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化 或替换,都应涵盖在本申请的保护范围之内。

Claims (21)

1.一种视觉学习方法,其特征在于,所述方法包括:
采用系统资源层提供视觉学习对应的底层数据;
采用接口适配层从所述系统资源层调用所述底层数据,并基于所述底层数据为应用层提供接口服务;
采用所述应用层基于所述接口适配层提供的接口服务实现所述视觉学习。
2.根据权利要求1所述的方法,其特征在于,所述接口适配层包括多类接口,所述采用接口适配层从所述系统资源层调用所述底层数据,并基于所述底层数据为应用层提供接口服务,包括:
采用所述多类接口从系统资源层调用所述底层数据,并通过所述多类接口基于所述底层数据为所述应用层提供接口服务。
3.根据权利要求2所述的方法,其特征在于,所述多类接口包括:模型定义类接口、算法训练类接口和应用推理类接口。
4.根据权利要求3所述的方法,其特征在于,所述采用所述多类接口从系统资源层调用所述底层数据,并通过所述多类接口基于所述底层数据为所述应用层提供接口服务,包括:
采用所述模型定义类接口提供所述底层数据对应的模型结构;
采用所述算法训练类接口基于所述底层数据对所述模型结构进行训练,得到训练后的模型结构,并为所述应用层提供所述算法训练类接口对应的服务;
采用所述应用推理类接口对所述底层数据进行处理,并基于已处理底层数据为所述应用层提供所述应用推理类接口对应的服务。
5.根据权利要求4所述的方法,其特征在于,所述模型定义类接口支持定义所述底层数据的数据结构和模型结构。
6.根据权利要求4所述的方法,其特征在于,所述采用所述模型定义类接口提供所述底层数据对应的模型结构,包括:
采用所述模型定义类接口定义所述底层数据的数据结构;
基于所述数据结构,确定所述模型结构。
7.根据权利要求3所述的方法,其特征在于,所述算法训练类接口包括:第一数据处理接口、优化器接口、量化训练接口、混合精度接口和分布式接口。
8.根据权利要求7所述的方法,其特征在于,所述采用所述算法训练类接口基于所述底层数据对所述模型结构进行训练,得到训练后的模型结构,并为所述应用层提供所述算法训练类接口对应的服务,包括:
采用所述第一数据处理接口将所述底层数据的格式转换成为与所述模型结构匹配的格式,得到转换后的数据;
采用所述优化器接口基于所述转换后的数据对所述模型结构的模型参数进行更新,并为所述应用层提供更新后的模型结构;
采用所述量化训练接口在所述模型结构的训练过程中感知所述模型结构的损失;
采用所述混合精度接口基于所述损失对所述更新后的模型结构进行混合精度训练,并为所述应用层提供混合精度训练后的模型结构;
采用所述分布式接口将所述模型结构在训练过程中的数据在多个进程之间进行数据传输,并基于所述多个进程向所述应用层传输数据。
9.根据权利要求3所述的方法,其特征在于,所述算法训练类接口还包括:可视化接口、蒸馏接口和图算融合接口。
10.根据权利要求9所述的方法,其特征在于,所述采用所述算法训练类接口基于所述底层数据对所述模型结构进行训练,得到训练后的模型结构,并为所述应用层提供所述算法训练类接口对应的服务,包括:
采用所述可视化接口将所述底层数据的格式转换成为与所述模型结构匹配的格式,并对转换后的数据进行可视化,并为所述应用层提供可视化的所述转换后的数据;
采用所述蒸馏接口通过教师网络指导学生网络对所述模型结构进行训练,并为所述应用层提供训练后的模型结构;
采用所述图算融合接口对所述模型结构对应的计算图逻辑进行调整,并基于调整后的计算图逻辑同步调整所述模型结构,为所述应用层提供调整后的模型结构。
11.根据权利要求3所述的方法,其特征在于,所述应用推理类接口包括:流程编排接口、分块检测接口、插件接口和第二数据处理接口。
12.根据权利要求11所述的方法,其特征在于,所述采用所述应用推理类接口对所述底层数据进行处理,并基于已处理底层数据为所述应用层提供所述应用推理类接口对应的服务,包括:
采用所述第二数据处理接口读取所述底层数据中的图像数据并对所述图像数据进行预处理,得到预处理后的图像数据,并为所述应用层提供所述预处理后的图像数据;
采用所述流程编排接口对所述预处理后的图像数据进行视觉任务编排,为所述应用层提供编排后的图像数据;
采用所述分块检测接口对所述预处理后的图像数据中重叠的目标进行过滤,为所述应用层提供过滤后的图像数据;
采用所述插件接口中设置的插件对所述预处理后的图像数据进行处理,得到已处理图像数据,并为所述应用层提供所述已处理图像数据。
13.根据权利要求12所述的方法,其特征在于,所述采用所述流程编排接口对所述预处理后的图像数据进行视觉任务编排,包括以下至少之一:
获取所述预处理后的图像数据;
对所述预处理后的图像数据进行图像解码;
对所述预处理后的图像数据进行缩放;
对所述预处理后的图像数据进行目标检测;
对所述预处理后的图像数据进行裁剪;
对所述预处理后的图像数据进行图像分类;
对所述预处理后的图像数据进行序列化。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述采用系统资源层提供视觉学习对应的底层数据,包括:
采用所述系统资源层确定所述视觉学习对应的硬件数据和软件数据;
将所述硬件数据和所述软件数据确定为所述底层数据。
15.根据权利要求14所述的方法,其特征在于,所述采用所述系统资源层确定所述视觉学习对应的硬件数据,包括:
采用所述系统资源层确定所述视觉学习对应的硬件设备标识和所述硬件设备的计算调度;
将所述硬件设备标识和所述计算调度,确定为所述硬件数据。
16.根据权利要求14所述的方法,其特征在于,采用所述系统资源层确定所述视觉学习对应的软件数据,包括:
采用系统资源层确定所述视觉学习对应的机器学习框架、所述机器学习框架的运行环境以及所述视觉学习对应的图像数据;
将所述深度学习框架、所述深度学习框架的运行环境和所述图像数据,确定为所述软件数据。
17.根据权利要求1至16任一项所述的方法,其特征在于,所述采用所述应用层基于所述接口适配层提供的接口服务实现所述视觉学习,包括:
采用所述应用层通过调用所述接口适配层中的多类接口对所述视觉学习对应的机器学习模型进行训练,以实现所述视觉学习。
18.根据权利要求1至17任一项所述的方法,其特征在于,所述方法还包括:
基于所述系统资源层、所述应用层以及设置于所述系统资源层和所述应用层之间的所述接口适配层,搭建所述视觉学习对应的视觉学习框架;
采用所述视觉学习框架处理所述视觉学习对应的视觉学习任务。
19.一种视觉学习系统,其特征在于,所述视觉学习系统包括系统资源层、应用层以及置于所述系统资源层和所述应用层之间的接口适配层,所述视觉学习系统包括:
所述系统资源层,用于提供视觉学习对应的底层数据;
所述接口适配层,用于从所述系统资源层调用所述底层数据,并基于所述底层数据为应用层提供接口服务;
所述应用层,用于基于所述接口适配层提供的接口服务实现所述视觉学习。
20.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至18任一项所述方法中的步骤。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至18任一项所述方法中的步骤。
CN202210634147.0A 2022-06-06 2022-06-06 视觉学习方法、系统、设备及存储介质 Pending CN115145743A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210634147.0A CN115145743A (zh) 2022-06-06 2022-06-06 视觉学习方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210634147.0A CN115145743A (zh) 2022-06-06 2022-06-06 视觉学习方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115145743A true CN115145743A (zh) 2022-10-04

Family

ID=83406701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210634147.0A Pending CN115145743A (zh) 2022-06-06 2022-06-06 视觉学习方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115145743A (zh)

Similar Documents

Publication Publication Date Title
JP7185039B2 (ja) 画像分類モデルの訓練方法、画像処理方法及びその装置、並びにコンピュータプログラム
US20210256320A1 (en) Machine learning artificialintelligence system for identifying vehicles
Ghazvinian Zanjani et al. Impact of JPEG 2000 compression on deep convolutional neural networks for metastatic cancer detection in histopathological images
CN112215171B (zh) 目标检测方法、装置、设备及计算机可读存储介质
CN111666416B (zh) 用于生成语义匹配模型的方法和装置
KR20200068050A (ko) 인공지능 수행을 위한 학습 데이터 생성장치 및 방법
CN114170482B (zh) 一种文档预训练模型训练方法、装置、设备及介质
CN102929646B (zh) 应用程序生成方法及装置
US11417096B2 (en) Video format classification and metadata injection using machine learning
CN112990440B (zh) 用于神经网络模型的数据量化方法、可读介质和电子设备
US20240161474A1 (en) Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium
CN113505848A (zh) 模型训练方法和装置
WO2019128735A1 (zh) 图像处理方法及装置
CN108257081B (zh) 用于生成图片的方法和装置
US11516538B1 (en) Techniques for detecting low image quality
CN115145743A (zh) 视觉学习方法、系统、设备及存储介质
CN116468970A (zh) 模型训练方法、图像处理方法、装置、设备及介质
CN115049059A (zh) 数据处理方法、装置、设备及存储介质
CN115018072A (zh) 模型训练方法、装置、设备及存储介质
CN115700607A (zh) 模型训练方法、装置、设备、存储介质及程序产品
Kaplun et al. Development of a mobile-based intelligent module for identification and tracking of household appliances
US20230154075A1 (en) Vector Object Generation from Raster Objects using Semantic Vectorization
CN116824308B (zh) 图像分割模型训练方法与相关方法、装置、介质及设备
CN116402090B (zh) 神经网络计算图的处理方法、装置和设备
CN115688912A (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