CN114494087A - 无监督的多尺度视差/光流融合 - Google Patents

无监督的多尺度视差/光流融合 Download PDF

Info

Publication number
CN114494087A
CN114494087A CN202011259710.8A CN202011259710A CN114494087A CN 114494087 A CN114494087 A CN 114494087A CN 202011259710 A CN202011259710 A CN 202011259710A CN 114494087 A CN114494087 A CN 114494087A
Authority
CN
China
Prior art keywords
images
image
neural network
subset
circuit
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
CN202011259710.8A
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.)
Anba International LP
Original Assignee
Anba International LP
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 Anba International LP filed Critical Anba International LP
Priority to CN202011259710.8A priority Critical patent/CN114494087A/zh
Priority to US16/951,257 priority patent/US11526702B2/en
Publication of CN114494087A publication Critical patent/CN114494087A/zh
Priority to US17/954,903 priority patent/US11775614B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • 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/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2193Validation; Performance evaluation; Active pattern learning techniques based on specific statistical tests
    • 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/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • 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/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • 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/88Image or video recognition using optical means, e.g. reference filters, holographic masks, frequency domain filters or spatial domain filters
    • 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/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Abstract

一种用于实现无监督的多尺度视差/光流融合的装置包括接口和处理器。接口可以被配置为从捕获设备接收图像。处理器可以被配置为:(i)从图像中提取特征;(ii)响应于所提取的特征来生成融合的视差图;(iii)通过基于(a)融合的视差图以及(b)第一参数对图像的第一子集执行扭曲来生成再生图像;(iv)执行对样本图像与图像的第一子集中的一个图像的比较;(v)基于第二参数来执行对样本图像的分类;以及(vi)响应于分类是否正确来更新第一参数和第二参数,其中,(a)分类包括指示样本图像是图像的第二子集中的一个图像还是再生图像中的一个再生图像;并且(b)再生图像被用作训练数据集。

Description

无监督的多尺度视差/光流融合
技术领域
本发明总体上涉及传感器融合,并且更具体地涉及用于实现无监督的多尺度视差(disparity)/光流融合的方法和/或装置。
背景技术
在双相机立体重建中,视差/光流图的准确度和密度对于高级算法而言至关重要。仅在高分辨率图像中计算视差时,该计算可能会受到噪声的影响,并且无法获得密集的视差/光流图。仅在低分辨率图像中计算视差时,获得较为密集但准确度较低的视差。典型地,在高分辨率图像和低分辨率图像两者中计算视差,并将结果合并在一起。然而,手动设计合适的融合算法具有挑战性。常规卷积神经网络(CNN)要求地面真值视差来训练网络。然而,用于训练数据集的这样的地面真值视差并不容易收集。
期望实现无监督的多尺度视差/光流融合。
发明内容
本发明涵盖涉及一种包括接口和处理器的装置的方面。接口可以被配置为从捕获设备接收图像。处理器可以被配置为:(i)从图像中提取特征;(ii)响应于所提取的特征来生成融合的视差图;(iii)通过基于(a)融合的视差图以及(b)第一参数对图像的第一子集执行扭曲(warp)来生成再生图像;(iv)执行对样本图像与图像的第一子集中的一个图像的比较;(v)基于第二参数来执行对样本图像的分类;以及(vi)响应于分类是否正确来更新第一参数和第二参数,其中,(a)分类包括指示样本图像是图像的第二子集中的一个图像还是再生图像中的一个再生图像;并且(b)再生图像被用作训练数据集。
在上面描述的装置方面的一些实施例中,(i)捕获设备包括被配置作为立体相机的第一相机和第二相机;(ii)图像的第一子集可以由第一相机捕获;以及(iii)图像的第二子集可以由第二相机捕获。在实现立体相机的实施例中,(i)图像的第一子集包括左图像;(ii)图像的第二子集包括右图像;以及(iii)训练数据集包括用于视差计算的数据。
在上面描述的装置方面的一些实施例中,(i)图像的第一子集包括在图像的序列中的在较早时间被捕获的图像;(ii)图像的第二子集包括在图像的序列中的、在与图像的第一子集相比较晚的时间被捕获的图像;以及(iii)训练数据集包括光流信息。
在上面描述的装置方面的一些实施例中,样本图像是从图像的第二子集或再生图像中被随机选择的。在其中样本图像被随机选择的一些实施例中,(a)更新第一参数以调整再生图像,从而降低样本图像的分类为正确的概率;以及(b)更新第二参数以增加样本图像的分类为正确的概率。在其中样本图像被随机选择的一些实施例中,当概率大于阈值量时,再生图像被用作训练数据集。在其中在概率大于阈值量时再生图像被用作训练数据集的一些实施例中,阈值量可以是大约50%。
在上面描述的装置方面的一些实施例中,处理器被配置为实现:(i)第一神经网络,以基于第一参数来实现第一模型;以及(ii)第二神经网络,以基于第二参数来实现第二模型。在实现第一神经网络和第二神经网络的实施例中,(i)第一神经网络可以被配置为:(a)从图像的第一子集和图像的第二子集中提取特征;(b)响应于所提取的特征来生成融合的视差图;以及(c)生成再生图像;以及(ii)第二神经网络可以被配置为执行:(a)对样本图像与图像的第一子集中的一个图像的比较;以及(b)基于第二参数对样本图像的分类。在实现第一神经网络和第二神经网络的一些实施例中,(i)第一神经网络通常实现生成神经网络模型;并且(ii)第二神经网络通常实现判别神经网络模型。在实现生成神经网络模型和判别神经网络模型的实施例中,生成神经网络模型和判别神经网络模型可以被配置作为无监督的生成对抗网络。在实现生成神经网络模型和判别神经网络模型的一些实施例中,处理器可以被配置为在操作的训练模式下使用生成神经网络模型和判别神经网络模型进行操作以生成训练数据集。在一些实施例中,处理器还被配置为在操作的数据生成模式下使用生成神经网络模型进行操作,并且禁用判别神经网络模型。在操作的数据生成模式下使用生成神经网络模型并且禁用判别神经网络模型一些实施例中,在操作的训练模式期间已经充分训练生成神经网络模型之后,处理器在操作的数据生成模式下进行操作。
附图说明
根据下面的详细描述以及所附权利要求书和附图,本发明的实施例将变得显而易见。
图1是示出根据本发明的示例实施例的在立体相机应用的上下文中的处理器的图。
图2是示出根据本发明的示例实施例的在时间图像序列应用的上下文中的处理器的图。
图3是示出根据本发明的示例实施例的在训练配置中的处理器的图。
图4是示出生成多尺度视差图的过程的图。
图5是示出生成融合的视差图的过程的图。
图6是示出使用融合的视差图生成再生图像的过程的图。
图7是示出根据本发明的示例实施例的过程的图。
图8是示出根据本发明的示例实施例的另一过程的图。
图9是示出生成多尺度光流图的过程的图。
图10是示出生成融合的光流图的过程的图。
图11是示出使用融合的光流图生成再生图像的过程的图。
图12是示出根据本发明的示例实施例的过程的图。
图13是示出根据本发明的示例实施例的另一过程的图。
图14是示出其中可以实现根据本发明的示例实施例的无监督的训练过程的计算机系统的示例的图。
图15是示出计算机视觉系统的示例实现方式的相机系统的图,在该计算机视觉系统中可以实现根据本发明的示例实施例的多尺度视差/光流融合算法。
图16是示出其中可以实现根据本发明的示例实施例的视差/光流融合网络的上下文的图。
图17是示出图16的硬件引擎的一般实现方式的图。
具体实施方式
本发明的实施例包括提供无监督的多尺度视差/光流融合,其可以(i)利用新的基于生成对抗网络(GAN)的算法;(ii)根据单个图像创建图像的立体对;(iii)预测对象在图像中的运动;(iv)避免对地面真值数据集的需要;(v)改进视差图和光流图计算的密度和准确度和/或(vi)被实现为一个或多个集成电路。
在各种实施例中,可以实现新的基于生成对抗网络(GAN)的算法以执行无监督的多尺度视差/光流融合。光流和立体视差是在计算机视觉系统中分析图像的两种基本且相关的方式。光流测量在两个图像之间的点的表观运动(apparent motion),而立体视差测量对象相对于两个相机的深度。通常,光流测量随时间推移的运动,而立体视差测量一个时间点处的位移。光流和立体视差通常用于计算机视觉任务,包括但不限于汽车和机器人导航以及视频分析。
参考图1,示出了说明根据本发明的示例实施例的在立体相机应用的上下文中的处理器的图。在示例中,电路100可以实现根据本发明的示例实施例的处理器。在示例中,电路100可以被配置为从相机组装件90接收图像。在示例中,电路100可以从相机组装件90接收第一信号(例如,R_IMAGES)和第二信号(例如,L_IMAGES)。信号R_IMAGES可以将图像的第一子集从相机组装件90传送到电路100。信号L_IMAGES可以将图像的第二子集从相机组装件90传送到电路100。在其中相机90被配置作为立体相机的示例中,信号R_IMAGES和L_IMAGES可以分别包括由相机组装件90捕获的对应的右图像和左图像。
在示例中,相机组装件90可以包括第一相机92和第二相机94。在示例实施例中,第一相机92和第二相机94可以被配置作为立体相机对。例如,第一相机92和第二相机94可以被安装为使得第一相机92的光轴和第二相机94的光轴彼此成预定角度。
在各种实施例中,电路100可以被配置为计算在信号R_IMAGES和信号L_IMAGES的对应的图像之间的视差值。在示例中,可以利用视差值以进行对象检测和/或重建。在另一示例中,可以利用视差值以进行对象跟踪、深度测量、对象速度和/或运动确定等。通常,视差包括可以在需要三维(3D)信息的任何应用(例如,3D重建)中利用的深度信息。
在示例实施例中,电路100可以包括块(或电路)102、块(或电路)104、块(或电路)106以及块(或电路)108。可以使用人工神经网络(ANN)来实现块102和块104。在示例实施例中,块102和块104可以被实现为卷积神经网络(CNN)或深度卷积神经网络(DCNN)。在示例中,可以使用有向非循环图(DAG)和对应的加权的集合102a和104a来实现块102和块104的神经网络中的每一个。在示例实施例中,可以使用处理器100的硬件引擎来执行DAG。在示例中,可以使用下面结合图3描述的无监督的训练过程来确定对应的加权的集合102a和104a。
在示例实施例中,电路106可以被实现为视差引擎。可以使用计算视差的任何硬件、软件和/或硬件和软件的组合(包括但不限于常规的视差计算电路)来实现电路106。在示例中,电路106的硬件实现方式可以包括但不限于现场可编程门阵列(FPGA)和专用集成电路(ASIC)。在示例实施例中,电路108可以被实现为对象检测/重建电路。可以使用检测和/或重建图像内的对象的任何硬件、软件和/或硬件和软件的组合(包括但不限于用于检测和/或重建对象的常规技术)来实现电路108。在示例中,电路108的硬件实现方式可以包括但不限于现场可编程门阵列(FPGA)和专用集成电路(ASIC)。
在示例实施例中,块102可以被实现为生成神经网络模型,并且块104可以被实现为判别神经网络模型。在各种实施例中,可以在电路100的训练和推断(部署)阶段期间利用块102,而可以仅在训练阶段期间利用块104。在一些实施例中,块104可以存在,但是块104在部署之后是不活动的(例如,虚线所示)。在一些实施例中,可以从正在部署的电路100的实例中省略块104。在各种实施例中,块102可以具有可以接收多个缩放的视差图(例如,针对视差图金字塔的每个尺度的视差图)的输入以及可以呈现融合的视差图的输出。块102可以基于加权102a根据多个缩放的视差图来生成融合的视差图。
在示例实施例中,电路106可以具有可以接收信号R_IMAGES的第一输入、可以接收信号L_IMAGES的第二输入以及可以将多个缩放的视差图传送到块102的输出。块102的输出可以耦合到电路108的输入。在示例实施例中,可以使用一个或多个存储器或缓冲器(未示出)将信号R_IMAGES和L_IMAGES传送到电路106。在另一示例中,也可以将信号R_IMAGES和L_IMAGES传送到块102,以进一步改进由块102生成的融合的视差值。
参考图2,示出了说明根据本发明的示例实施例的在时间图像序列应用的上下文中的处理器的图。在示例中,电路100’可以实现根据本发明的另一示例实施例的处理器。在示例中,电路100’可以被配置为从相机组装件96接收图像。在示例中,电路100’可以从相机组装件96接收信号(例如,IMAGES)。信号IMAGES可以将图像的序列从相机组装件96传送到电路100’。
在各种实施例中,电路100’可以被配置为计算在信号IMAGES的图像对之间的光流值。在示例中,可以利用光流值以进行对象检测和/或重建。在另一示例中,可以利用光流值以进行对象跟踪、深度测量计算、对象速度和/或运动确定等。通常,光流包括可以在需要三维(3D)信息的任何应用(例如,3D重建)中利用的深度信息。
在示例实施例中,电路100’可以包括块(或电路)102、块(或电路)104、块(或电路)110以及块(或电路)112。在示例实施例中,电路110可以被实现为光流引擎。可以使用计算光流的任何硬件、软件和/或硬件和软件的组合(包括常规的光流计算电路)来实现电路110。在示例中,电路110的硬件实现方式可以包括但不限于现场可编程门阵列(FPGA)和专用集成电路(ASIC)。在示例实施例中,电路112可以被实现为对象检测/重建电路。在各种实施例中,电路112通常以与电路108不同的方式实现。在示例中,电路108可以被配置为接收一维(1D)视差值,而电路112可以被配置为接收二维(2D)光流值。在各种实施例中,电路112的输入数据通常包含水平移位信息和垂直移位信息。
在示例中,可以使用有向非循环图(DAG)和对应的加权的集合102a和104a来实现块102和块104的神经网络中的每一个。可以使用下面结合图3描述的无监督的训练过程来确定对应的加权的集合。在示例实施例中,块102可以被实现为生成神经网络模型,并且块104可以被实现为判别神经网络模型。在各种实施例中,可以在电路100’的训练和部署阶段期间利用块102,而可以仅在训练阶段期间利用块104。在一些实施例中,块104可以存在,但是块104在部署之后是不活动的(例如,虚线所示)。在一些实施例中,可以从正在部署的电路100’的实例中省略块104。在各种实施例中,块102可以具有可以接收多个缩放的光流图(例如,针对光流图金字塔的每个尺度的光流图)的输入以及可以呈现融合的光流图的输出。块102可以基于加权102a根据多个缩放的光流图来生成融合的光流图。
在示例实施例中,电路110可以具有可以接收信号IMAGES的第一输入以及可以将多个缩放的光流图的计算出的光流值传送到块102的输出。块102的输出可以耦合到电路112的输入。块102可以被配置为将二维(2D)融合的光流值传送到电路112。在示例实施例中,可以使用一个或多个存储器或缓冲器(未示出)将信号IMAGES传送到电路110。在另一示例中,也可以将信号IMAGES传送到块102,以进一步改进由块102生成的融合的光流值。
参考图3,示出了说明根据本发明的实施例的训练数据流配置的框图。在各种实施例中,可以实现两个神经网络。神经网络102可以被配置作为生成器网络,并且神经网络104可以被配置作为判别器网络。在各种实施例中,第一神经网络和第二神经网络通常利用类似的架构来实现。在示例中,第一神经网络和第二神经网络可以被实现为卷积神经网络(CNN)或深度卷积神经网络(DCNN)。然而,可以实现其他网络架构以满足特定应用的设计标准。
在各种实施例中,神经网络102和104可以在电路100和100’的操作的训练阶段期间连接以形成生成对抗网络(GAN)。网络102可以在第一输入处接收图像,并且在第二输入处接收多个缩放的视差(或光流)图的值。网络102可以被配置为从作为对网络102的输入被接收到的图像中提取特征,并且根据也作为输入被接收到的多个缩放的视差(或光流)图的值来生成融合的视差(或光流)图。由网络102生成的融合的视差(或光流)图可以用于使用扭曲模块120来生成再生图像。在各种实施例中,通过基于融合的视差(或光流)图对第一(例如,左侧的或时间上较早的)图像执行扭曲操作来生成第二(例如,右侧的或时间上较晚的)图像,扭曲模块120可以生成再生图像。在一些实施例中,通过基于融合的视差(或光流)图对第一(例如,右侧的或时间上较晚的)图像执行扭曲操作来生成第二(例如,左侧的或时间上较早的)图像,扭曲模块120可以生成再生图像。
神经网络104可以具有可以从扭曲模块120接收再生图像的第一输入、可以接收原始图像的第二输入、可以接收多个缩放的视差(或光流)图的值的第三输入以及可以提供用于修改在神经网络102的层中利用的加权102a的信息的输出。在训练阶段期间,神经网络104可以被配置为指示输入图像是由扭曲模块120创建的再生(例如,右侧的或时间上较晚的)图像还是原始捕获的图像的概率。在训练阶段期间,网络104可以取来自训练数据集的图像(例如,原始捕获的图像)以及来自扭曲模块120的生成的图像。当网络104成功标识真实图像和生成的图像时,网络104的参数通常保持不变,但网络102的参数通常被更新以改进生成的图像。当网络102欺骗网络104时,网络102的参数通常保持不变,但网络104的参数(例如,加权104a)通常被更新以改进输入图像的分类。当满足预定阈值时,网络102每次生成原始捕获的图像的副本,并且网络104无法分辨出差异并预测在每种情况下的不确定。在示例中,对于原始捕获的图像和生成的图像的阈值可以是50%。然而,可以实现其他阈值以满足特定应用的标准。当满足预定阈值时,可以部署网络102(例如,在没有网络104的情况下利用网络102以进行推断操作)。
参考图4-8,示出了说明根据本发明的示例实施例的用于多尺度视差融合的数据流的框图。在各种实施例中,用于实现多尺度视差融合的过程通常利用一维(1D)扭曲引擎来生成再生图像。
参考图4,示出了说明生成多尺度视差图的过程200的图。在示例实施例中,视差计算器202可以接收左图像204和右图像206。视差计算器202可以被配置为比较图像以生成多尺度视差图208。在示例中,视差计算器202可以使用金字塔方法来计算以多个分辨率(或尺度)的视差值208a-208n。在示例中,当过程200进行到较低分辨率时,可以忽略小的改变,并且可以将大的改变约简为小的改变。视差值可以与尺度一起计算。
参考图5,示出了说明生成融合的视差图的过程210的图。在示例实施例中,视差融合生成器212可以被配置为接收左图像204、右图像206和多尺度视差图208。基于左图像204、右图像206和多尺度视差图208,视差融合生成器212可以生成融合的视差图214。在示例中,视差融合生成器212可以被实现为取来自多尺度视差图208中的每一个的视差值以及左/右图像作为输入并输出融合的视差图的人工神经网络。在各种实施例中,视差融合生成器212将来自多尺度视差图208中的每一个的视差值组合在一起,并生成带来更好质量的视差图的输出。输出通常会提供更好质量的视差图,因为(i)仅在高分辨率图像中计算视差会由于噪声而导致不能生成密集的视差图;以及(ii)仅在低分辨率图像中计算视差允许获得较密集的视差图,但视差准确度较低。在各种实施例中,使用网络102来实现视差融合生成器212。
参考图6,示出了说明使用融合的视差图214来生成再生图像的过程220的图。在示例实施例中,扭曲操作222可以被配置为接收左图像204和融合的视差图214。基于融合的视差图214,扭曲操作222通常使左图像204扭曲以生成再生的右图像224。在示例中,扭曲操作222通常实现1D扭曲方案,该1D扭曲方案取来自左图像204和融合的视差图214的数据作为输入并生成对应的右图像数据,该右图像数据被呈现为扭曲操作222的输出。通常,融合的视差图214被用作提供水平方向上的像素移位。在另一示例中,扭曲操作222可以被配置为接收右图像206和融合的视差图214,并且基于融合的视差图214,使右图像206扭曲以生成再生的左图像(未示出)。
参考图7,示出了说明根据本发明的示例实施例的分类过程230的图。在训练阶段期间,判别器232(例如,网络104)可以接收捕获的左图像204、捕获的右图像206和多尺度视差图208。判别器232可以被配置为使用从输入图像(例如,图像204和206)中提取的特征以及多尺度视差图208来确定图像是否是实际捕获的图像。可以训练判别器232以响应于捕获的右图像206的输入来使TRUE状态234有效。
参考图8,示出了说明根据本发明的示例实施例的分类过程230的另一示例的图。在训练阶段期间,判别器232(例如,网络104)还可以接收捕获的左图像204、再生的右图像224和多尺度视差图208。判别器232可以被配置为使用从输入图像(例如,图像204和224)中提取的特征以及多尺度视差图208来确定图像中的一个是否是再生图像。可以训练判别器232以响应于再生的右图像224而不是捕获的右图像206的输入来使FALSE状态236有效。
参考图9-13,示出了说明根据本发明的实施例的用于多尺度光流融合的数据流的框图。在各种实施例中,多尺度光流融合利用二维(2D)扭曲引擎来代替在视差融合中使用的1D扭曲引擎。
参考图9,示出了说明生成多尺度光流图的过程300的图。在示例实施例中,光流计算器302可以接收第一图像帧304和第二图像帧306。第一图像帧304可以来自时间T,并且第二图像帧可以来自时间T+1。光流计算器302可以被配置为比较图像以生成多尺度光流图308。在示例中,光流计算器302可以使用金字塔方法来计算以多个分辨率(或尺度)的光流值308a-308n。在示例中,当过程300进行到较低分辨率时,可以忽略小的运动,并且可以将大的运动约简为小的运动。过程300可以计算光流以及尺度。
参考图10,示出了说明生成融合的光流图的过程310的图。在示例实施例中,光流图融合生成器312可以被配置为接收第一图像帧304、第二(较晚的)图像帧306和多尺度光流图308。在各种实施例中,光流图融合生成器312是使用网络102来实现的。基于从第一图像帧304和第二(较晚的)图像帧306中提取的特征以及多尺度光流图308,光流图融合生成器312可以生成融合的光流图314。
在各种实施例中,光流图融合生成器312通常被实现为取每个尺度的光流图和两个连续图像作为输入并输出融合的光流图314的人工神经网络。由于光流图融合生成器312将每个尺度的光流图组合在一起,因此由光流图融合生成器312生成的融合的光流图314通常比使用常规技术产生的光流图的质量更好。
参考图11,示出了说明使用融合的光流图314来生成再生图像的过程320的图。在示例实施例中,2D扭曲操作322可以被配置为接收第一图像帧304和融合的光流图314。基于融合的光流图314,2D扭曲操作322通常使第一(较早的)图像帧304扭曲以生成再生的较晚的图像帧324(例如,帧T+1)。在各种实施例中,2D扭曲操作322取先前图像和融合的光流图314作为输入,并输出(生成)对应的下一帧图像。在示例中,融合的光流图314可以用于指定水平方向和垂直方向上的像素移位。
参考图12,示出了说明根据本发明的示例实施例的分类过程330的图。在训练阶段期间,判别器332(例如,网络104)可以接收时间上较早的图像帧304、时间上较晚的图像帧306和多尺度光流图308。判别器332可以被配置为使用从输入图像(例如,图像304和306)中提取的特征以及多尺度视差图308来确定图像中的一个是否是时间上较晚的图像帧。可以训练判别器332以响应于时间上较晚的图像帧306的输入来使TRUE状态334有效。
参考图13,示出了说明根据本发明的示例实施例的分类过程330的另一示例的图。在训练阶段期间,判别器332(例如,网络104)可以接收时间上较早的图像帧304、再生的时间上较晚的图像帧324和多尺度光流图308。可以训练判别器332以响应于输入图像是再生的时间上较晚的图像帧324而不是捕获的时间上较晚的图像帧306来使FALSE状态336有效。
参考图14,示出了说明其中可以实现根据本发明的示例实施例的无监督的训练过程的上下文的图。在示例中,根据上面结合图3描述的本发明的示例实施例,系统600可以(例如,通过软件)被配置为执行无监督的训练过程。在示例中,系统600可以包括计算机602和计算机可读存储介质604。在示例中,计算机602可以被实现为通用计算机系统。在示例中,计算机可读存储介质604可以包括非易失性介质,包括但不限于磁存储介质(例如,硬盘驱动器或HDD)、光存储介质(例如,压缩盘(CD)、数字视频盘(DVD)、蓝光盘(BD))、固态驱动器(SSD)、闪速存储器和/或与网络相关联的存储系统(NAS)。在示例中,计算机602和计算机可读存储介质604可以耦合在一起以交换程序和数据。在示例中,实现图3中示出的无监督的训练过程的程序(或多个程序)606可以存储在计算机可读存储介质604上或存储在基于云的资源608中。在示例中,计算机602还可以被配置为根据本发明的示例实施例利用云资源608来执行无监督的训练过程。在示例中,计算机602可以被配置为经由一个或多个应用程序接口(API)执行根据本发明的示例实施例的实现无监督的训练过程的程序(或多个程序)606。
在示例中,计算机602可以包括但不限于处理器610、存储器612、显示器614和用户接口616。在各种实施例中,处理器610可以包括但不限于中央处理单元(CPU)、图形处理单元(GPU)和视频处理单元(VPU)。在各种实施例中,存储器612可以包括但不限于随机存取存储器(例如,SRAM、DRAM、FLASH等)、只读存储器(ROM)和高速缓冲存储器。显示器614和用户接口616通常允许用户在训练和/或量化阶段期间启动并监视计算机602执行根据本发明的示例实施例的实现无监督的训练过程的程序(或多个程序)606。
参考图15,示出了相机系统900的图,该图说明了其中可以实现根据本发明的示例实施例的多尺度视差/光流融合算法的计算机视觉系统的示例实现方式。在一个示例中,相机系统900的电子设备可以被实现为一个或多个集成电路。在示例中,相机系统900可以围绕处理器/相机芯片(或电路)902构建。在示例中,处理器/相机芯片902可以被实现为专用集成电路(ASIC)或片上系统(SOC)。处理器/相机电路902通常结合硬件和/或软件/固件,该硬件和/或软件/固件可以被配置为实现上面结合图1至图14描述的电路和过程。
在示例中,处理器/相机电路902可以连接到透镜和传感器组装件904。在一些实施例中,透镜和传感器组装件904可以是处理器/相机电路902的组件(例如,SoC组件)。在一些实施例中,透镜和传感器组装件904可以是与处理器/相机电路902分离的组件(例如,透镜和传感器组装件可以是与处理器/相机电路902兼容的可互换组件)。在一些实施例中,透镜和传感器组装件904可以是(例如,经由视频电缆、高清晰度媒体接口(HDMI)电缆、通用串行总线(USB)电缆、以太网电缆或无线链路)连接到处理器/相机电路902的单独相机的一部分。
透镜和传感器组装件904可以包括块(或电路)906和/或块(或电路)908。电路906可以与透镜组装件相关联。电路908可以被实现为一个或多个图像传感器。在一个示例中,电路908可以被实现为单个传感器。在另一示例中,电路908可以被实现为传感器的立体对。透镜和传感器组装件904可以包括其他组件(未示出)。透镜和传感器组装件904的组件的数量、类型和/或功能可以根据特定实现方式的设计标准而变化。
透镜组装件906可以捕获和/或聚焦从相机系统900周围的环境接收到的光输入。透镜组装件906可以捕获和/或聚焦用于(多个)图像传感器908的光。透镜组装件906可以实现一个或多个光学透镜。透镜组装件906可以提供缩放特征和/或聚焦特征。可以利用附加电路(例如,电动机)来实现透镜组装件906,以调整透镜组装件906的方向、缩放和/或光圈。可以定向、倾斜、平移、缩放和/或旋转透镜组装件906以提供相机系统900周围的环境的目标视图。
(多个)图像传感器908可以从透镜组装件906接收光。(多个)图像传感器908可以被配置为将接收到的聚焦光转换为数字数据(例如,位流)。在一些实施例中,(多个)图像传感器908可以执行模数转换。例如,(多个)图像传感器908可以对从透镜组装件906接收到的聚焦光执行光电转换。(多个)图像传感器908可以将转换后的图像数据呈现为颜色滤波器阵列(CFA)格式的位流。处理器/相机电路902可以将位流转换为视频数据、视频文件和/或视频帧(例如,人类可读的内容)。
处理器/相机电路902还可以连接到:(i)包括音频编解码器910、麦克风912和扬声器914的可选的音频输入/输出电路;(ii)存储器916,其可以包括动态随机存取存储器(DRAM);(iii)非易失性存储器(例如,NAND闪速存储器)918、可移除介质(例如,SD、SDXC等)920、一个或多个串行(例如,RS-485、RS-232等)设备922、一个或多个通用串行总线(USB)设备(例如,USB主机)924和无线通信设备926。
在各种实施例中,处理器/相机电路902可以包括多个块(或电路)930a-930n、多个块(或电路)932a-932n、块(或电路)934、块(或电路)936、块(或电路)938、块(或电路)940、块(或电路)942、块(或电路)944、块(或电路)946、块(或电路)948、块(或电路)950、块(或电路)952和/或块(或电路)954。多个电路930a-930n可以是处理器电路。在各种实施例中,电路930a-930n可以包括一个或多个嵌入式处理器(例如,ARM等)。电路932a-932n可以实现多个与计算机视觉相关的处理器电路。在示例中,电路932a-932n中的一个或多个可以实现各种与计算机视觉相关的应用。电路934可以是数字信号处理(DSP)模块。在一些实施例中,电路934可以实现分离的图像DSP模块和视频DSP模块。
电路936可以是存储接口。电路936可以使处理器/相机电路902与DRAM 916、非易失性存储器918和可移除介质920接合。DRAM 916、非易失性存储器918和/或可移除介质920中的一个或多个可以存储计算机可读指令。可以由处理器930a-930n读取并执行计算机可读指令。响应于计算机可读指令,处理器930a-930n可以是可操作的以用作用于处理器932a-932n的控制器。例如,处理器932a-932n的资源可以被配置为高效地执行硬件中的各种特定操作,并且处理器930a-930n可以被配置为做出关于如何处理去往/来自处理器932的各种资源的输入/输出的决定。
电路938可以实现本地存储器系统。在一些实施例中,本地存储器系统938可以包括但不限于高速缓冲存储器(例如,L2CACHE)、直接存储器访问(DMA)引擎、图形直接存储器访问(GDMA)引擎和快速随机访问存储器。在示例中,DAG存储器968可以在本地存储器系统938中实现。电路940可以实现传感器输入(或接口)。电路942可以实现一个或多个控制接口,包括但不限于设备间通信(IDC)接口、集成电路间(I2C)接口、串行外围设备接口(SPI)和脉冲宽度调制(PWM)接口。电路944可以实现音频接口(例如,I2S接口等)。电路946可以实现时钟电路,包括但不限于实时时钟(RTC)、看门狗定时器(WDT)和/或一个或多个可编程定时器。电路948可以实现输入/输出(I/O)接口。电路950可以是视频输出模块。电路952可以是通信模块。电路954可以是安全模块。电路930至954可以使用一条或多条总线、接口、迹线、协议等彼此连接。
电路918可以被实现为非易失性存储器(例如,NAND闪速存储器、NOR闪速存储器等)。电路920可以包括一个或多个可移除介质卡(例如,安全数字介质(SD)、安全数字扩展容量介质(SDXC)等)。电路922可以包括一个或多个串行接口(例如,RS-485、RS-232等)。电路924可以是用于连接到通用串行总线(USB)主机或用作USB主机的接口。电路926可以是用于与用户设备(例如,智能电话、计算机、平板计算设备、云资源等)进行通信的无线接口。在各种实施例中,电路904-926可以被实现为处理器/相机电路902外部的组件。在一些实施例中,电路904-926可以是处理器/相机电路902的板上组件。
控制接口942可以被配置为生成用于控制透镜和传感器组装件904的信号(例如,IDC/I2C、STEPPER、IRIS、AF/ZOOM/TILT/PAN等)。信号IRIS可以被配置为调整透镜组装件906的光圈。接口942可以使得处理器/相机电路902能够控制透镜和传感器组装件904。
存储接口936可以被配置为管理一种或多种类型的存储和/或数据访问。在一个示例中,存储接口936可以实现直接存储器访问(DMA)引擎和/或图形直接存储器访问(GDMA)。在另一示例中,存储接口936可以实现安全数字(SD)卡接口(例如,以连接到可移除介质920)。在各种实施例中,可以将编程代码(例如,用于控制处理器/相机电路902的各种处理器和编码器的可执行指令)存储在存储器(例如,DRAM 916、NAND 918等)中的一个或多个中。编程代码当由处理器930中的一个或多个执行时,通常使得处理器/相机电路902中的一个或多个组件配置视频同步操作并开始视频帧处理操作。可以将所得到的压缩视频信号呈现给存储接口936、视频输出950和/或通信接口952。存储接口936可以在外部介质(例如,DRAM 916、NAND 918、可移除介质920等)与本地(内部)存储器系统938之间传输程序代码和/或数据。
传感器输入940可以被配置为向图像传感器908发送数据/从图像传感器908接收数据。在一个示例中,传感器输入940可以包括图像传感器输入接口。传感器输入940可以被配置为将捕获的图像(例如,图片元素、像素、数据)从图像传感器908发送到DSP模块934、处理器930中的一个或多个和/或处理器932中的一个或多个。由传感器输入940接收到的数据可以由DSP 934使用来确定来自图像传感器908的亮度(Y)和色度(U和V)值。传感器输入940可以提供到透镜和传感器组装件904的接口。传感器输入接口940可以使得处理器/相机电路902能够捕获来自透镜和传感器组装件904的图像数据。
音频接口944可以被配置为发送/接收音频数据。在一个示例中,音频接口944可以实现音频IC间声音(I2S)接口。音频接口944可以被配置为以由音频编解码器910实现的格式发送/接收数据。
DSP模块934可以被配置为处理数字信号。DSP模块934可以包括图像数字信号处理器(IDSP)、视频数字信号处理器DSP(VDSP)和/或音频数字信号处理器(ADSP)。DSP模块934可以被配置为从传感器输入940接收信息(例如,图像传感器908捕获的像素数据值)。DSP模块934可以被配置为根据从传感器输入940接收到的信息来确定像素值(例如,RGB、YUV、亮度、色度等)。DSP模块934可以进一步被配置为支持或提供传感器RGB到YUV原始图像流水线,以改进图像质量、进行不良像素检测和校正、去马赛克、白平衡、颜色和色调校正、伽玛校正、色相调整、饱和度、亮度和对比度调整、色度和亮度噪声过滤。
I/O接口948可以被配置为发送/接收数据。由I/O接口948发送/接收的数据可以是杂项信息和/或控制数据。在一个示例中,I/O接口948可以实现通用输入/输出(GPIO)接口、模数转换器(ADC)模块、数模转换器(DAC)模块、红外(IR)远程接口、脉冲宽度调制(PWM)模块、通用异步接收器发送器(UART)、红外(IR)远程接口和/或一个或多个同步数据通信接口(IDC SPI/SSI)中的一个或多个。
视频输出模块950可以被配置为发送视频数据。例如,处理器/相机电路902可以连接到外部设备(例如,电视、监视器、膝上型计算机、平板计算设备等)。视频输出模块950可以实现高清晰度多媒体接口(HDMI)、PAL/NTSC接口、LCD/电视/并行接口和/或DisplayPort接口。
通信模块952可以被配置为发送/接收数据。通信模块952发送/接收的数据可以根据特定协议(例如,
Figure BDA0002774229870000161
USB、Wi-Fi、UART等)进行格式化。在一个示例中,通信模块952可以实现安全数字输入输出(SDIO)接口。通信模块952可以包括对通过一种或多种无线协议(例如,
Figure BDA0002774229870000162
Z-Wave、LoRa、电气与电子工程师协会(IEEE)802.11a/b/g/n/ac(WiFi)、IEEE 802.15、IEEE 802.15.1、IEEE 802.15.2、IEEE802.15.3、IEEE 802.15.4、IEEE 802.15.5和/或IEEE 802.20、GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、5G、LTE_M、NB-IoT、SMS等)进行的无线通信的支持。通信模块952还可以包括对使用通用串行总线协议(例如,USB 1.0、2.0、3.0等)中的一种或多种进行的通信的支持。处理器/相机电路902还可以被配置为经由USB连接供电。然而,可以相应地实现其他通信和/或电源接口,以满足特定应用的设计标准。
安全模块954可以包括一套高级安全功能,以实现高级的设备上物理安全,包括OTP、安全启动、
Figure BDA0002774229870000171
以及I/O可视化和DRAM加扰。在示例中,安全模块958可以包括真随机数生成器。在示例中,安全模块954可以用于处理器/相机电路902上的DRAM通信加密。
处理器/相机电路902可以被配置(例如,编程)为控制一个或多个透镜组装件906以及一个或多个图像传感器908。处理器/相机电路902可以从(多个)图像传感器908接收原始图像数据。处理器/相机电路902可以同时(并行地)将原始图像数据编码为多个编码的视频流。多个视频流可以具有各种分辨率(例如,VGA、WVGA、QVGA、SD、HD、超HD、4K等)。处理器/相机电路902可以在音频接口944处接收编码的和/或未编码的(例如,原始)音频数据。处理器/相机电路902还可以从通信接口952(例如,USB和/或SDIO)接收编码的音频数据。处理器/相机电路902可以(例如,使用USB主机接口)将编码的视频数据提供给无线接口926。无线接口926可以包括对通过一种或多种无线和/或蜂窝协议(例如,
Figure BDA0002774229870000172
Z-Wave、LoRa、Wi-Fi IEEE 802.11a/b/g/n/ac、IEEE 802.15、IEEE 802.15.1、IEEE 802.15.2、IEEE 802.15.3、IEEE 802.15.4、IEEE 802.15.5、IEEE802.20、GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、5G、SMS、LTE_M、NB-IoT等)进行的无线通信的支持。处理器/相机电路902还可以包括对使用通用串行总线协议(例如,USB 1.0、2.0、3.0等)中的一种或多种进行的通信的支持。
参考图16,示出了说明其中可以实现根据本发明的示例实施例的视差/光流图融合网络的上下文的处理电路902的图。在各种实施例中,处理电路902可以被实现为计算机视觉系统的一部分。在各种实施例中,处理电路902可以被实现为相机、计算机、服务器(例如,云服务器)、智能电话(例如,蜂窝电话)、个人数字助理等的一部分。在示例中,处理电路902可以被配置用于包括但不限于自动驾驶和半自动驾驶车辆(例如,汽车、卡车、摩托车、农用机械、无人机、飞机等)、制造和/或安全和监视系统的应用。与通用计算机相反,处理电路902通常包括硬件电路,该硬件电路被优化以在最小的面积中且在最小的功耗的情况下提供高性能的图像处理和计算机视觉流水线。在示例中,可以使用被设计为减少计算复杂度并高效使用资源的硬件模块来实现用于执行用于计算机(或机器)视觉的图像处理、特征检测/提取和/或对象检测/分类的各种操作。
在示例实施例中,处理电路902可以包括块(或电路)930i、块(或电路)932i、块(或电路)916和/或存储器总线917。电路930i可以实现第一处理器。电路932i可以实现第二处理器。在示例中,电路932i可以实现计算机视觉处理器。在示例中,处理器932i可以是智能视觉处理器。电路916可以实现外部存储器(例如,电路930i和932i外部的存储器)。在示例中,电路916可以被实现为动态随机存取存储器(DRAM)电路。处理电路902可以包括其他组件(未示出)。处理电路902的组件的数量、类型和/或布置可以根据特定实现方式的设计标准而变化。
电路930i可以实现处理器电路。在一些实施例中,可以使用通用处理器电路来实现处理器电路930i。处理器930i可以是可操作的以与电路932i和电路916交互来执行各种处理任务。在示例中,处理器930i可以被配置作为用于电路932i的控制器。处理器930i可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可以由电路916存储。在一些实施例中,计算机可读指令可以包括控制器操作。处理器930i可以被配置为与电路932i进行通信和/或访问由电路932i的组件生成的结果。在示例中,处理器930i可以被配置为利用电路932i来执行与一个或多个神经网络模型相关联的操作。
在示例中,处理器930i可以被配置为利用一个或多个预训练的人工神经网络模型(ANN)对电路932i进行编程,该ANN包括区域提议网络(RPN)100、基于区域的卷积神经网络(RCNN)102以及与RPN 100和RCNN 102相关的对应的加权/内核(WGTS)104。在各种实施例中,RPN 100和RCNN 102可以被配置(训练和/或量化)用于在边缘设备中的操作。在示例中,处理电路902可以耦合到被配置为生成数据输入的传感器(例如,视频相机等)。处理电路902可以被配置为基于通过利用对应的加权/内核(WGTS)104执行RPN 100和RCNN 102做出的一个或多个推断,响应于来自传感器的数据输入来生成一个或多个输出。由处理器930i执行的操作可以根据特定实现方式的设计标准而变化。
在各种实施例中,电路916可以实现动态随机存取存储器(DRAM)电路。电路916通常是可操作的以存储输入数据元素的多维阵列和各种形式的输出数据元素。电路916可以与处理器930i和处理器932i交换输入数据元素和输出数据元素。
处理器932i可以实现计算机视觉处理器电路。在示例中,处理器932i可以被配置为实现用于计算机视觉的各种功能。处理器932i通常是可操作的以执行由处理器930i安排的特定的处理任务。在各种实施例中,处理器932i的全部或部分可以仅以硬件来实现。处理器932i可以直接执行针对多尺度视差/光流融合并由指定处理(例如,计算机视觉)任务的软件(例如,有向非循环图等)生成的数据流。在一些实施例中,处理器932i可以是由处理电路902实现并且被配置为一起操作的若干计算机视觉处理器的代表示例。
在示例实施例中,处理器932i通常包括块(或电路)960、一个或多个块(或电路)962a-962n、块(或电路)960、路径966和块(或电路)968。块960可以实现调度器电路。块962a-962n可以实现硬件资源(或引擎)。块964可以实现共享存储器电路。块968可以实现有向非循环图(DAG)存储器。在示例实施例中,电路962a-962n中的一个或多个可以包括块(或电路)970a-970n。在所示的示例中,实现了电路970a和970b。
在示例实施例中,电路970a可以实现卷积操作。在另一示例中,电路970b可以被配置为提供池化操作。可以利用电路970a和970b来提供根据本发明的示例实施例的多尺度视差/光流融合。卷积操作和池化操作可以用于执行计算机(或机器)视觉任务(例如,作为对象检测过程的一部分等)。在又一示例中,电路962c-962n中的一个或多个可以包括块(或电路)970c-970n(未示出)以提供多维的卷积计算。
在示例中,电路932i可以被配置为从处理器930i接收有向非循环图(DAG)。从处理器930i接收到的DAG可以被存储在DAG存储器968中。电路932i可以被配置为使用电路960、962a-962n和964执行用于生成器神经网络102和/或判别器神经网络104的DAG。
可以在电路960与相应的电路962a-962n之间交换多个信号(例如,OP_A至OP_N)。每个信号OP_A至OP_N可以传达执行操作信息和/或产生操作信息。可以在相应的电路962a-962n与电路964之间交换多个信号(例如,MEM_A至MEM_N)。信号MEM_A至MEM_N可以携带数据。信号(例如,DRAM)可以在电路916与电路964之间交换。信号DRAM可以在电路916与960之间(例如,在存储器总线966上)传输数据。
电路960可以实现调度器电路。调度器电路960通常是可操作的以在电路962a-962n之间调度任务,以执行由处理器930i定义的各种与计算机视觉相关的任务。调度器电路960可以将各个任务分配给电路962a-962n。调度器电路960可以响应于解析由处理器930i提供的有向非循环图(DAG)而分配各个任务。调度器电路960可以基于电路962a-962n执行工作的可用性将任务时间复用到电路962a-962n。
每个电路962a-962n可以实现处理资源(或硬件引擎)。硬件引擎962a-962n通常是可操作的以执行特定的处理任务。硬件引擎962a-962n可以被实现为包括专用硬件电路,该专用硬件电路被优化以在执行特定的处理任务时具有高性能和低功耗。在一些配置中,硬件引擎962a-962n可以并行且彼此独立地操作。在其他配置中,硬件引擎962a-962n可以彼此共同操作以执行分配的任务。
硬件引擎962a-962n可以是同质处理资源(例如,所有电路962a-962n可以具有相同的能力)或异质处理资源(例如,两个或更多个电路962a-962n可以具有不同的能力)。硬件引擎962a-962n通常被配置为执行运算符,该运算符可以包括但不限于重采样运算符、扭曲运算符、操纵组件列表的组件运算符(例如,组件可以是向量的共享共同属性的区域并且可以与边界框组合在一起)、矩阵逆运算符、点积运算符、卷积运算符、条件运算符(例如,复用和解复用)、重映射运算符、最小-最大-约简运算符、池化运算符、非最小非最大抑制运算符、聚集运算符、散射运算符、统计运算符、分类器运算符、积分图像运算符、上采样运算符和二的幂的下采样运算符等。
在各种实施例中,硬件引擎962a-962n可以仅被实现为硬件电路。在一些实施例中,硬件引擎962a-962n可以被实现为通用引擎,这些通用引擎可以通过电路定制和/或软件/固件被配置为作为专用机器(或引擎)来操作。在一些实施例中,硬件引擎962a-962n可以被替代地实现为在处理器930i和/或一个或多个处理器932i(包括但不限于向量处理器、中央处理单元(CPU)、数字信号处理器(DSP)或图形处理单元(GPU))上执行的程序代码的一个或多个实例或线程。在一些实施例中,调度器960可以针对特定过程和/或线程选择硬件引擎962a-962n中的一个或多个。调度器960可以被配置为响应于解析存储在DAG存储器968中的有向非循环图而将硬件引擎962a-962n指派给特定任务。
电路964可以实现共享存储器电路。共享存储器964可以被配置为响应于输入请求而存储数据和/或响应于输出请求(例如,来自处理器930i、DRAM 916、调度器电路960和/或硬件引擎962a-962n的请求)而呈现数据。在示例中,共享存储器电路964可以针对计算机视觉处理器932i实现片上存储器。共享存储器964通常是可操作的以存储由硬件引擎962a-962n生成和/或利用的输入数据元素和输出数据元素的多维阵列(或向量)的全部或部分。输入数据元素可以经由存储器总线917从DRAM电路916传输到共享存储器964。输出数据元素可以经由存储器总线917从共享存储器964发送到DRAM电路916。
路径966可以实现处理器932i内部的传输路径。传输路径966通常是可操作的以将数据从调度器电路960移动到共享存储器964。传输路径966还可以是可操作的以将数据从共享存储器964移动到调度器电路960。
处理器930i被示为与计算机视觉处理器932i进行通信。处理器930i可以被配置作为用于计算机视觉处理器932i的控制器。在一些实施例中,处理器930i可以被配置为将指令传输到调度器960。例如,处理器930i可以经由DAG存储器968将一个或多个有向非循环图提供给调度器960。调度器960可以响应于解析有向非循环图而初始化和/或配置硬件引擎962a-962n。在一些实施例中,处理器930i可以从调度器960接收状态信息。例如,调度器960可以将状态信息和/或输出的准备度从硬件引擎962a-962n提供给处理器930i,以使得处理器930i能够确定要执行的一个或多个下一条指令和/或要做出的决定。在一些实施例中,处理器930i可以被配置为与共享存储器964进行通信(例如,直接地或通过调度器960进行通信,该调度器960经由路径966从共享存储器964接收数据)。处理器930i可以被配置为从共享存储器964取回信息以做出决定。处理器930i响应于来自计算机视觉处理器932i的信息而执行的指令可以根据特定实现方式的设计标准而变化。
电路970a可以实现卷积电路。卷积电路970a可以与存储器964进行通信以接收输入数据并呈现输出数据。卷积电路970a通常是可操作的以从共享存储器电路964抓取多个数据向量。每个数据向量可以包括多个数据值。卷积电路970a还可以是可操作的以从共享存储器964抓取内核。该内核通常包括多个内核值。卷积电路970a还可以是可操作的以将块从共享存储器964抓取到内部(或本地)缓冲器。该块通常包括多个输入分片(tile)。每个输入分片可以包括多个维度上的多个输入值。卷积电路970a还可以是可操作的以通过将内部缓冲器中的每个输入分片与内核值中的对应的一个相乘来并行地计算多个中间值,并且基于该中间值来计算包括多个输出值的输出分片。在各种实施例中,卷积电路970a可以仅以硬件来实现。可以用于实现电路970a的卷积计算方案的示例可以在美国专利第10,210,768号中找到,该专利以其整体通过引用并入本文。电路970b可以实现池化过程。在各种实施例中,可以根据本文提供的实现方式描述来执行根据本发明的实施例的多尺度视差/光流融合方案。
参考图17,示出了说明图16的通用硬件引擎962x的示例实现方式的图。硬件引擎962x可以代表硬件引擎962a-962n。硬件引擎962x通常包括块(或电路)980、块(或电路)982、块(或电路)984和多个块(或电路)986a-986n。电路980可以被实现为存储器(或缓冲器)对980a和980b。电路982可以实现控制器电路。在示例中,电路982可以包括一个或多个有限状态机(FSM),该FSM被配置为控制由硬件引擎962x实现的各种运算符。电路984可以实现硬件引擎962x的处理流水线。电路986a-986n可以实现先进先出(FIFO)存储器。电路986a-986n可以被配置作为用于处理流水线984的输入缓冲器。共享存储器964可以(例如,通过来自电路982的信号)被配置作为多个共享输入缓冲器988a-988n和一个或多个输出缓冲器990。
信号(例如,ADDR/CONFIG)可以由调度器电路960生成并由硬件引擎962x接收。信号ADDR/CONFIG可以携带地址信息和配置数据。信号(例如,BUSY_LEVEL)可以由电路982生成并且被传输到调度器电路960。信号BUSY_LEVEL可以传达硬件引擎962x的忙碌水平。信号(例如,STATUS/TARGETS)可以由电路982生成并且被传输到调度器电路960。信号STATUS/TARGETS可以提供关于硬件引擎962x的状态信息和针对操作数的目标信息。
在示例实施例中,缓冲器980a和980b可以被配置作为双存储体配置缓冲器。双存储体缓冲器可以是可操作的以将用于当前正在运行的操作的配置信息存储在一个缓冲器(例如,缓冲器980b)中,而将用于下一操作的配置信息移动到另一缓冲器(例如,缓冲器980a)中。调度器960通常将运算符配置信息(包括在已经在先前的运算符组块中对运算符进行了部分处理的情况下的状态字)加载到双存储体缓冲器中。一旦电路982完成了正在运行的操作的配置信息并且已经接收到用于下一操作的配置信息,就可以交换缓冲器980a和980b。
电路982通常实现硬件引擎962x的控制电路。电路982确定何时从当前正在运行的运算符切换到新的运算符。控制器982通常是可操作的以控制信息向硬件引擎982x的进出的移动以及在硬件引擎982x内部的移动。通常,硬件引擎962x的操作是流水线化的。在运算符切换期间,流水线984的前端可能已经正在处理针对新的运算符的数据,而流水线984的尾端仍在完成与旧的运算符相关联的处理。
电路984可以实现流水线电路。流水线电路984通常是可操作的以使用被设计在硬件引擎962x中的功能来处理从共享存储器964接收到的操作数。电路984可以将由执行的功能产生的数据传送到一个或多个共享缓冲器990。
缓冲器986a-986n可以实现FIFO缓冲器。FIFO缓冲器986a-986n可以是可操作的以存储从共享缓冲器988a-988n接收到的操作数以在流水线984中进行处理。通常,FIFO缓冲器的数量和实现的共享缓冲器的数量可以是变化的以满足特定应用的设计标准。
如相关领域技术人员将认识到的,可以使用根据本说明书的教导编程的常规通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器、CISC(复杂指令集计算机)处理器、SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算术逻辑单元(ALU)、视频数字信号处理器(VDSP)、分布式计算机资源和/或类似的计算机器中的一个或多个来设计、建模、仿真和/或模拟由图1-17的图执行的功能和示出的结构。如将对相关领域技术人员显而易见的,熟练的程序员可以基于本公开的教导容易地准备适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块。软件通常体现在一种或多种介质(例如,非暂时性存储介质)中,并且可以由处理器中的一个或多个顺序或并行执行。
本发明的实施例还可以在ASIC(专用集成电路)、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、门海、ASSP(专用标准产品)和集成电路中的一个或多个中实现。该电路可以基于一种或多种硬件描述语言来实现。可以结合闪速存储器、非易失性存储器、随机存取存储器、只读存储器、磁盘、软盘、诸如DVD和DVD RAM之类的光盘、磁光盘和/或分布式存储系统来利用本发明的实施例。
当在本文中与“是”和动词结合使用时,术语“可以”和“通常”意在传达这样的意图:该描述是示例性的,并且被认为足够宽泛以涵盖本公开中提出的具体示例以及可以基于本公开得出的替代示例两者。如本文所使用的术语“可以”和“通常”不应被解释为必然暗示省略对应的元件的可取性或可能性。
尽管已经参考本发明的实施例具体地示出并描述了本发明,但是本领域技术人员将理解,在不脱离本发明的范围的情况下,可以对形式和细节进行各种改变。

Claims (15)

1.一种装置,包括:
接口,其被配置为从捕获设备接收图像;以及
处理器,其被配置为:(i)从所述图像中提取特征;(ii)响应于所提取的所述特征来生成融合的视差图;(iii)通过基于(a)所述融合的视差图以及(b)第一参数对所述图像的第一子集执行扭曲来生成再生图像;(iv)执行对样本图像与所述图像的所述第一子集中的一个图像的比较;(v)基于第二参数来执行对所述样本图像的分类;以及(vi)响应于所述分类是否正确来更新所述第一参数和所述第二参数,其中,(a)所述分类包括指示所述样本图像是所述图像的第二子集中的一个图像还是所述再生图像中的一个再生图像;并且(b)所述再生图像被用作训练数据集。
2.根据权利要求1所述的装置,其中,(i)所述捕获设备包括被配置作为立体相机的第一相机和第二相机;(ii)所述图像的所述第一子集由所述第一相机捕获;以及(iii)所述图像的所述第二子集由所述第二相机捕获。
3.根据权利要求2所述的装置,其中,(i)所述图像的所述第一子集包括左图像;(ii)所述图像的所述第二子集包括右图像;以及(iii)所述训练数据集包括用于视差计算的数据。
4.根据权利要求1所述的装置,其中,(i)所述图像的所述第一子集包括在所述图像的序列中的在较早时间被捕获的所述图像;(ii)所述图像的所述第二子集包括在所述图像的所述序列中的、在与所述图像的所述第一子集相比较晚的时间被捕获的所述图像;以及(iii)所述训练数据集包括光流信息。
5.根据权利要求1所述的装置,其中,所述样本图像是从所述图像的所述第二子集或所述再生图像中被随机选择的。
6.根据权利要求5所述的装置,其中,(a)更新所述第一参数以调整所述再生图像,从而降低所述样本图像的所述分类为正确的概率;以及(b)更新所述第二参数以增加所述样本图像的所述分类为正确的所述概率。
7.根据权利要求6所述的装置,其中,当所述概率大于阈值量时,所述再生图像被用作所述训练数据集。
8.根据权利要求7所述的装置,其中,所述阈值量是大约50%。
9.根据权利要求1所述的装置,其中,所述处理器被配置为实现:(i)第一神经网络,以基于所述第一参数来实现第一模型;以及(ii)第二神经网络,以基于所述第二参数来实现第二模型。
10.根据权利要求9所述的装置,其中:
所述第一神经网络被配置为:(a)从所述图像的所述第一子集和所述图像的所述第二子集中提取所述特征;(b)响应于所提取的所述特征来生成所述融合的视差图;以及(c)生成所述再生图像;以及
所述第二神经网络被配置为执行:(a)对所述样本图像与所述图像的所述第一子集中的一个图像的所述比较;以及(b)基于所述第二参数对所述样本图像的所述分类。
11.根据权利要求9所述的装置,其中,(i)所述第一神经网络实现生成神经网络模型;并且(ii)所述第二神经网络实现判别神经网络模型。
12.根据权利要求11所述的装置,其中,所述生成神经网络模型和所述判别神经网络模型被配置作为无监督的生成对抗网络。
13.根据权利要求11所述的装置,其中,所述处理器被配置为在操作的训练模式下使用所述生成神经网络模型和所述判别神经网络模型进行操作以生成所述训练数据集。
14.根据权利要求13所述的装置,其中,所述处理器还被配置为在操作的数据生成模式下使用所述生成神经网络模型进行操作,并且禁用所述判别神经网络模型。
15.根据权利要求14所述的装置,其中,在所述操作的训练模式期间已经充分训练所述生成神经网络模型之后,所述处理器在所述操作的数据生成模式下进行操作。
CN202011259710.8A 2020-11-12 2020-11-12 无监督的多尺度视差/光流融合 Pending CN114494087A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011259710.8A CN114494087A (zh) 2020-11-12 2020-11-12 无监督的多尺度视差/光流融合
US16/951,257 US11526702B2 (en) 2020-11-12 2020-11-18 Unsupervised multi-scale disparity/optical flow fusion
US17/954,903 US11775614B2 (en) 2020-11-12 2022-09-28 Unsupervised multi-scale disparity/optical flow fusion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011259710.8A CN114494087A (zh) 2020-11-12 2020-11-12 无监督的多尺度视差/光流融合

Publications (1)

Publication Number Publication Date
CN114494087A true CN114494087A (zh) 2022-05-13

Family

ID=81455336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011259710.8A Pending CN114494087A (zh) 2020-11-12 2020-11-12 无监督的多尺度视差/光流融合

Country Status (2)

Country Link
US (2) US11526702B2 (zh)
CN (1) CN114494087A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115272423A (zh) * 2022-09-19 2022-11-01 深圳比特微电子科技有限公司 一种训练光流估计模型的方法、装置和可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI784482B (zh) * 2020-04-16 2022-11-21 鈺立微電子股份有限公司 多深度資訊之處理方法與處理系統
CN114494087A (zh) * 2020-11-12 2022-05-13 安霸国际有限合伙企业 无监督的多尺度视差/光流融合
CN117292193A (zh) * 2023-10-08 2023-12-26 无锡科维智能物流装备有限公司 多工位智能物流输送系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801968B1 (ko) * 2007-02-06 2008-02-12 광주과학기술원 변위를 측정하는 방법, 중간화면 합성방법과 이를 이용한다시점 비디오 인코딩 방법, 디코딩 방법, 및 인코더와디코더
US8600166B2 (en) * 2009-11-06 2013-12-03 Sony Corporation Real time hand tracking, pose classification and interface control
US8625902B2 (en) * 2010-07-30 2014-01-07 Qualcomm Incorporated Object recognition using incremental feature extraction
US8688716B1 (en) * 2012-06-15 2014-04-01 Google Inc. Recommending pairwise video comparisons to improve ranking
KR102224716B1 (ko) * 2014-05-13 2021-03-08 삼성전자주식회사 스테레오 소스 영상 보정 방법 및 장치
CN104408743A (zh) * 2014-11-05 2015-03-11 百度在线网络技术(北京)有限公司 图像分割方法和装置
US10395118B2 (en) * 2015-10-29 2019-08-27 Baidu Usa Llc Systems and methods for video paragraph captioning using hierarchical recurrent neural networks
DE102017217733A1 (de) * 2017-10-05 2019-04-11 Conti Temic Microelectronic Gmbh Prüfen eines neuronalen Netzes
CN109670380B (zh) * 2017-10-13 2022-12-27 华为技术有限公司 动作识别、姿势估计的方法及装置
CN110049303B (zh) * 2018-01-15 2021-08-13 微软技术许可有限责任公司 立体图像的视觉风格化
WO2019182974A2 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Stereo depth estimation using deep neural networks
US10380753B1 (en) * 2018-05-30 2019-08-13 Aimotive Kft. Method and apparatus for generating a displacement map of an input dataset pair
US10986325B2 (en) * 2018-09-12 2021-04-20 Nvidia Corporation Scene flow estimation using shared features
US10547823B2 (en) * 2018-09-25 2020-01-28 Intel Corporation View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning
US11093886B2 (en) * 2018-11-27 2021-08-17 Fujifilm Business Innovation Corp. Methods for real-time skill assessment of multi-step tasks performed by hand movements using a video camera
CN109740670B (zh) * 2019-01-02 2022-01-11 京东方科技集团股份有限公司 视频分类的方法及装置
US11430134B2 (en) * 2019-09-03 2022-08-30 Nvidia Corporation Hardware-based optical flow acceleration
CN112991254A (zh) * 2019-12-13 2021-06-18 上海肇观电子科技有限公司 视差估计系统、方法、电子设备及计算机可读存储介质
US11210523B2 (en) * 2020-02-06 2021-12-28 Mitsubishi Electric Research Laboratories, Inc. Scene-aware video dialog
US11062471B1 (en) * 2020-05-06 2021-07-13 Nvidia Corporation Neural network system for stereo image matching
CN114494087A (zh) * 2020-11-12 2022-05-13 安霸国际有限合伙企业 无监督的多尺度视差/光流融合
BR102021001287A2 (pt) * 2021-01-22 2022-08-02 Samsung Eletrônica da Amazônia Ltda. Método para comprimir dados de light-field

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115272423A (zh) * 2022-09-19 2022-11-01 深圳比特微电子科技有限公司 一种训练光流估计模型的方法、装置和可读存储介质
CN115272423B (zh) * 2022-09-19 2022-12-16 深圳比特微电子科技有限公司 一种训练光流估计模型的方法、装置和可读存储介质

Also Published As

Publication number Publication date
US20230016086A1 (en) 2023-01-19
US11775614B2 (en) 2023-10-03
US20220147776A1 (en) 2022-05-12
US11526702B2 (en) 2022-12-13

Similar Documents

Publication Publication Date Title
US11526702B2 (en) Unsupervised multi-scale disparity/optical flow fusion
US11676023B2 (en) Systems and methods for performing direct conversion of image sensor data to image analytics
US9940724B2 (en) Method and system for detecting multiple moving objects from real-time aerial images
US10445402B1 (en) Fast and energy-efficient region of interest pooling for object detection with convolutional neural network
US20200005074A1 (en) Semantic image segmentation using gated dense pyramid blocks
CN110856035B (zh) 处理图像数据以执行对象检测
US10621464B1 (en) Block based non-maximum suppression
US20230206587A1 (en) Method to improve accuracy of quantized multi-stage object detection network
US11587259B2 (en) Fixed pattern calibration for multi-view stitching
KR20170056860A (ko) 이미지 생성 방법 및 장치
Werner et al. Hardware implementation of a full HD real-time disparity estimation algorithm
WO2024002211A1 (zh) 一种图像处理方法及相关装置
US20220207750A1 (en) Object detection with image background subtracted
CN113721631A (zh) 传感器数据处理方法、系统及可读存储介质
US11423644B1 (en) Hardware efficient RoI align
CN112385225A (zh) 用于改进图像编码的方法和系统
US11521300B2 (en) Edge preserving noise reduction algorithm using inverse exponential function optimization
US11574484B1 (en) High resolution infrared image generation using image data from an RGB-IR sensor and visible light interpolation
US11696039B2 (en) Smart IP camera with color night mode
US11615304B1 (en) Quantization aware training by constraining input
US10671883B1 (en) Approximate cross-check for real-time feature matching
US20220108456A1 (en) Methods and Systems for Filtering Portions of an Image
KR20220145791A (ko) 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치
KR20240039394A (ko) 영상 처리 장치, 그것을 갖는 전자 장치, 그것의 동작 방법
CN114549851A (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