CN117561540A - 使用帧序列执行计算机视觉任务的系统和方法 - Google Patents
使用帧序列执行计算机视觉任务的系统和方法 Download PDFInfo
- Publication number
- CN117561540A CN117561540A CN202280042058.5A CN202280042058A CN117561540A CN 117561540 A CN117561540 A CN 117561540A CN 202280042058 A CN202280042058 A CN 202280042058A CN 117561540 A CN117561540 A CN 117561540A
- Authority
- CN
- China
- Prior art keywords
- frame
- differential image
- neural network
- computing system
- noise threshold
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000013528 artificial neural network Methods 0.000 claims abstract description 124
- 230000000644 propagated effect Effects 0.000 claims abstract description 10
- 238000001514 detection method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 39
- 230000004927 fusion Effects 0.000 claims description 34
- 238000001914 filtration Methods 0.000 claims description 11
- 230000000007 visual effect Effects 0.000 claims description 11
- 230000003068 static effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 24
- 238000007781 pre-processing Methods 0.000 description 18
- 238000012549 training Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001274237 Caranx latus Species 0.000 description 1
- 238000004566 IR spectroscopy Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/254—Analysis of motion involving subtraction of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/97—Determining parameters from multiple pictures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/62—Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/16—Image acquisition using multiple overlapping images; Image stitching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明描述了用于在帧序列上执行计算机视觉任务的系统和方法。获取帧序列中的分别与第一时间点和第二时间点对应的第一帧和第二帧。在所述第一帧和所述第二帧之间计算差分图像。通过神经网络前向传播所述差分图像,生成预测输出,其中,所述神经网络被训练用于执行计算机视觉任务。
Description
技术领域
本发明涉及使用帧序列执行物体跟踪等计算机视觉任务的系统和方法,包括使用从帧序列中计算出的差分图像执行计算机视觉任务的系统和方法。
背景技术
物体跟踪是一项常见的计算机视觉任务。物体跟踪任务可以被定义为一项在视频中的连续帧之间建立物体对应关系的任务。物体跟踪可以指在线物体跟踪或离线物体跟踪。在在线物体跟踪中,物体跟踪在当前帧上执行,而不会访问任何未来帧(例如,在线物体跟踪可以在实时(live/real-time)视频帧上执行)。在离线物体跟踪中,在当前帧上执行的物体跟踪既可以既访问过去帧又可以访问未来帧。使用神经网络执行物体跟踪一直备受关注,而且比传统(即,基于非神经网络的)技术有所改进。
一些现有的基于神经网络的物体跟踪技术依赖于在每个单独帧中执行物体检测,并且生成与每个检测到的物体相关联的轨迹。这种基于检测的技术通常需要单独的神经网络来执行检测和跟踪,这可能导致高昂的计算成本。
其他现有的基于神经网络的物体跟踪技术依赖于每个帧的特征提取和帧间特征匹配,从而跟踪物体的位置。然而,这些技术仍然需要神经网络来处理每个帧。
因此,人们希望为物体跟踪和其他计算机视觉任务提供一种更加高效的基于神经网络的技术方案。
发明内容
在各种示例中,本发明描述了使用视频中的帧(例如,连续帧或时域相关帧)之间的时域信息作为神经网络的输入来执行物体跟踪等机器视觉任务的系统和方法。在一些示例中,本发明描述了一种在视频中的第一帧(例如,当前时间点处的帧)和第二帧(例如,前一时间点处的帧,其中,第一帧和第二帧可以是连续帧)之间计算差分图像的方法。这个差分图像用作神经网络的输入,而不是视频中的原始帧用作神经网络的输入。
本文中描述的示例提供了以下技术优势:(例如,与单独处理每个帧的现有技术相比)提高了效率,这是因为输入到神经网络的差分图像提供了帧之间的显式时域信息(即,在帧之间发生变化的信息),这使得神经网络能够更加高效地使用时域信息。本发明中示例提供的另一个技术优势是,与计算单帧中包括的所有信息相比,计算帧之间的差分信息(即,信息变化)的计算效率通常更高。此外,神经网络可以使用这种差分信息高效地执行需要时域信息的机器视觉任务,例如,物体跟踪、视频字幕或视觉问答,等等。
在一些示例中,描述了预处理技术,以帮助提高差分图像的信噪比(signal tonoise ratio,SNR)。图像对齐、低通滤波、动态噪声阈值和/或信号检测等技术可以组合使用。在一些示例中,预处理技术可以提供如下技术优势:只有包括有用信息(例如,信息量大于噪声阈值)的差分图像才由神经网络处理。这样能够有效地选择哪些差分图像应该输入到神经网络来执行机器视觉任务(例如,物体跟踪)以及哪些差分图像不需要由神经网络处理。
本发明描述了差分图像和非差分图像(例如,原始帧或从原始帧中裁剪出的图像)都由神经网络处理的示例。本发明描述了执行差分图像和非差分图像(例如,对应于单个捕获帧)的特征融合的各种示例。特征融合可以在不同的阶段中执行,因此,上述公开的系统和方法的框架可以支持所有这些阶段。这提供了如下技术优势:也可以使用原始帧中包括的信息。
在一个示例性方面,本发明描述了一种方法。所述方法包括:获取帧序列中的与第一时间点对应的第一帧和所述帧序列中的与第二时间点对应的第二帧;计算所述第一帧和所述第二帧之间的差分图像;通过神经网络前向传播所述差分图像,生成预测输出,其中,所述神经网络被训练用于执行计算机视觉任务。
在所述方法的上述示例性方面中,所述训练神经网络可以被训练用于执行物体跟踪任务,所述预测输出可以包括所述第一帧中包括的被跟踪物体的预测边界框。
在所述方法的上述示例性方面中,所述方法可以包括:获取为所述第二帧预测的已存边界框。所述差分图像可以在所述第一帧和所述第二帧中的设定的感兴趣区域(region of interest,ROI)上计算,所述设定的ROI根据所述已存边界框而设定。
在所述方法的任一上述示例性方面中,所述方法可以包括:对所述差分图像执行信号检测,以确定表示所述差分图像中携带的有用信息量的信号是否超过噪声阈值;响应于超过所述噪声阈值,通过所述神经网络前向传播所述差分图像。
在所述方法的上述示例性方面中,所述噪声阈值可以是静态预设定噪声阈值。
在所述方法的上述示例性方面中,所述噪声阈值可以是动态时空噪声阈值。
在所述方法的上述任一示例性方面中,所述信号可以是使用从所述差分图像中采样的像素的子集计算的。
在所述方法的上述任一示例性方面中,所述第一帧和所述差分图像都可以通过所述神经网络前向传播,所述神经网络可以被训练用于执行特征融合以将所述第一帧或所述第二帧的特征与所述差分图像的特征组合,从而生成所述预测输出。
在所述方法的上述任一示例性方面中,所述方法可以包括:在所述第一帧和所述第二帧之间执行图像对齐,其中,所述差分图像在所述对齐的第一帧和所述第二帧之间计算;对所述差分图像执行低通滤波,其中,所述经低通滤波的差分图像通过所述神经网络前向传播。
在所述方法的上述任一示例性方面中,所述神经网络可以被训练用于执行视频字幕任务或视觉问答任务。
在一个示例性方面中,本发明描述了一种计算系统。所述计算系统包括:处理单元,用于执行指令以使得所述计算系统执行所述方法的上述任一示例性方面。
在一个示例性方面中,本发明描述了一种计算机可读介质。所述计算机可读介质包括编码在所述计算机可读介质中的指令,当所述指令由计算系统中的处理单元执行时,使得所述计算系统执行所述方法的上述任一示例性方面。
在一个示例性方面中,本发明描述了一种计算机程序。所述计算机程序包括指令,当所述程序由计算系统执行时,所述指令使得所述计算系统执行所述方法的上述任一示例性方面。
附图说明
下面通过示例参考示出本申请中示例性实施例的附图,其中:
图1是可以用于实现本发明中示例的示例性计算系统中的一些组件的框图;
图2是可以用于实现本发明中示例的示例性计算机视觉模块的框图;
图3A至图3C示出了可以在图2的示例性计算机视觉模块中实现的执行差分图像的示例;
图4示出了可以在图2的示例性计算机视觉模块中实现的示例性神经网络;
图5是包括用于提高信噪比的组件并且可以用于实现本发明中示例的另一个示例性计算机视觉模块的框图;
图6是差分图像和第一帧都提供给神经网络并且可以用于实现本发明中示例的另一个示例性计算机视觉模块的框图;
图7A至图7C示出了特征融合如何在神经网络中实现的示例,该神经网络可以用于图6的示例性计算机视觉模块中;
图8是本发明中示例提供的用于生成预测输出的示例性方法的流程图。
在不同的附图中可以使用相似的附图标记来表示相似的组件。
具体实施方式
本发明描述了神经网络被训练用于执行物体跟踪等机器视觉任务的示例。虽然在一些示例中描述了物体跟踪,但应当理解,本发明并不限于物体跟踪这个应用。例如,本发明可以适用于执行其他机器视觉任务,包括需要时域信息的机器视觉任务(例如,视频字幕、视觉问答或其他视频处理任务)。本发明参考视频中的帧(例如,在视频中,每个帧包括RGB数据),然而,应当理解,本发明不限于视频数据,而且可以适用于捕获为帧序列的任何数据,包括红外(infrared,IR)帧序列或深度帧序列。此外,虽然本发明描述了在线处理帧序列(即,不使用未来时间点中的帧)的示例,但应当理解,本发明也可以适用于离线处理帧序列。
为了帮助理解本发明,首先论述了一些现有的物体跟踪技术。基于神经网络的物体跟踪技术通常可以分类为基于物体检测的跟踪和基于前一帧中物体位置的跟踪。
在使用基于检测的跟踪的现有方法中,物体检测通常在每个帧上单独执行,因此在处理帧序列时,轨迹关联到每个检测到的物体(例如,如Wojke等人于2017年发表在ICIP上的“使用深度关联指标的简单在线实时跟踪(Simple Online and Realtime Trackingwith a Deep Associated Metric)”所述)。由于物体检测是在每个帧上单独执行的,因此提取和使用时域相关信息(包括在两个或两个以上帧中)的效率比较低。此外,这种方法通常需要使用单独的神经网络来执行物体检测和跟踪任务,这可能会导致两个神经网络之间的特征信息的使用效率较低。需要两个单独的神经网络也可能会导致高昂的计算成本(例如,需要大量的处理能力和/或内存资源),这对于资源有限的计算系统来说可能是难以承受的。一些现有的技术方案提议将物理检测和跟踪任务组合为单个组合任务,这通过单个神经网络执行(例如,如Li等人于2020年发表在电子预印本资料库:2010.16031中的“SMOT:单样本多物体跟踪(SMOT:Single-Shot Multi Object Tracking)”),然而,这种方法仍然单独处理帧,因此不能高效使用帧之间的时域相关信息。
在根据前一个或多个帧中的物体位置执行跟踪的现有方法中,最新技术通常基于Siamese网络(也称为孪生(twin)网络)。物体跟踪视为模板匹配问题,其中,从前一帧中检测到的物体的特征与当前帧中的候选区域匹配,当前帧中的物体位置根据最佳匹配确定(例如,如Bertinetto等人于2016年发表在Hua G.、Jégou H.(编者)的《计算机视觉—ECCV2016研讨会》中的“用于物体跟踪的全卷积Siamese网络(Fully-Convolutional SiameseNetworks for Object Tracking)”以及Li等人于2019年发表在《IEEE/CVF计算机视觉和模式识别(CVPR)会议会刊》的第4282至4291页上的“SiamRPN++:基于极深网络的Siamese视觉跟踪的发展(Evolution of Siamese Visual Tracking With Very Deep Networks)”所述)。特征提取是在每个帧上单独执行的,由于连续帧中的大部分信息是共享的,因此可能无法高效使用时域信息。
一些运动检测和物体跟踪方法使用传统(即,基于非机器学习的)计算机视觉方法。一种现有方法包括滤出帧序列中的背景,并且使用传统计算机视觉技术在经滤波的帧中执行物体跟踪。然而,传统计算机视觉物体跟踪技术的性能可能比使用神经网络的计算机视觉物体跟踪技术的性能差。
一些现有方法使用事件相机等额外硬件组件来检测空间中发生变化的位置(例如,如Gallego等人于2020年发表在《IEEE模式分析与机器智能会报》上的“基于事件的视觉:一项调查(Event-based Vision:ASurvey)”所述)。然而,事件相机无法捕获有关变化强度的信息。此外,需要额外硬件限制了这种方法的实际应用。
本发明描述了有助于解决上述至少一些缺点的系统和方法。具体地,本发明描述了计算差分图像并将差分图像用作神经网络的输入的系统和方法。
图1是可以用于实现本发明中示例性实施例的计算系统100中的一些示例性组件的框图;虽然下文示出和论述了计算系统100的一个示例性实施例,但其他实施例可以用于实现本文中公开的示例,这可以包括与所示的组件不同的组件。虽然图1示出了每个组件的单个实例,但示出的每个组件可能存在多个实例。
计算系统100包括至少一个处理单元102,例如,处理器、微处理器、数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、专用逻辑电路、专用人工智能处理器单元、图形处理单元(graphics processing unit,GPU)、张量处理单元(tensor processing unit,TPU)、神经处理单元(neural processing unit,NPU)、硬件加速器或其组合。
计算系统100可以包括可选的输入/输出(input/output,I/O)接口104,I/O接口104与相机112等可选的输入设备和/或显示器114等可选的输出设备连接。可选的输入和/或输出设备可以与计算系统100集成(如图1所示),还可以是耦合到计算系统100的外部设备。计算系统100可以包括(或可以耦合到)其他输入设备(例如,机械按钮、麦克风、触摸屏、键盘、红外传感器等)和/或其他输出设备(例如,扬声器、振动单元等)。相机112(或其他输入设备)可以具有捕获实时视频(即,实时或近实时)作为视频帧序列的能力。捕获到的视频数据帧可以由I/O接口104缓冲,然后提供给处理单元102进行实时或近实时(例如,在10ms内)处理。捕获到的视频数据帧也可以由显示器114实时或近实时输出。在一些示例中,除了或代替相机112,计算系统100可以包括捕获不同模式的帧序列的另一个传感器(例如,捕获IR帧序列的IR传感器或捕获深度帧序列的深度传感器)。
计算系统100可以包括用于与其他计算系统和/或网络(例如,内网、互联网、P2P网络、WAN和/或LAN)进行有线通信或无线通信的可选网络接口106。网络接口106可以包括用于网络内通信和/或网络间通信的有线链路(例如,以太网电缆)和/或无线链路(例如,一个或多个天线)。网络接口106可以使计算系统100能够与其他计算系统(例如,基于云的计算平台)进行通信,以访问由其他计算系统提供的服务。
计算系统100包括至少一个存储器108,至少一个存储器108可以包括易失性或非易失性存储器(例如,闪存、随机存取存储器(random access memory,RAM)和/或只读存储器(read-only memory,ROM))。在一些示例中,计算系统100还可以包括电子存储单元(未示出),例如,固态驱动器、硬盘驱动器、磁盘驱动器和/或光盘驱动器。
非瞬时性存储器108可以存储供处理单元102执行的指令,以执行本发明中描述的示例性实施例,等等。例如,存储器108可以包括用于执行计算机视觉模块200的指令。计算机视觉模块200可以用于执行任何合适的计算机视觉任务,例如,物体跟踪。存储器108可以包括其它软件指令,以实现操作系统和其他应用/功能,等等。存储器108还可以包括数据110,例如,计算机视觉模块200的神经网络的学习到的参数。存储器108还可以存储临时数据(例如,存储在缓冲区或短期高速缓存中),例如,第二帧或预测边界框。
计算系统100可以另外或替代地执行外部存储器(例如,与计算系统100进行有线通信或无线通信的外部驱动器)中的指令,或者可以由瞬时性或非瞬时性计算机可读介质提供。非瞬时性计算机可读介质的示例包括RAM、ROM、可擦除可编程ROM(erasableprogrammable ROM,EPROM)、电可擦除可编程ROM(electrically erasable programmableROM,EEPROM)、闪存、CD-ROM或其他便携式存储器。
图2是可以在本发明中示例性实施例中使用的示例性计算机视觉模块200的详细内容的框图。计算机视觉模块200可以用于执行物体跟踪任务。在其他示例中,计算机视觉模块200可以用于执行其他计算机视觉任务,包括需要时域信息的计算机视觉任务,例如,视频字幕或视觉问答任务。
本示例中的计算机视觉模块200包括本地存储器202(可以是临时存储器,例如,缓冲区或高速缓存)、差分图像计算子模块204、可选的预处理子模块208和神经网络210。虽然图2示出了计算机视觉模块200中的某些子模块(或功能块),但是应当理解,这并不旨在限制。例如,差分图像计算子模块204和/或可选的预处理子模块208的操作可以由单个子模块(或功能块)执行,或者可以是整个计算机视觉模块200的功能。此外,计算机视觉模块200可以代替本地存储器202访问计算系统100中的存储器108的缓冲区、高速缓存或其他存储单元。
计算机视觉模块200获取第一时间点处的第一帧(例如,从计算系统100中的相机112获取的实时捕获到的视频中的实时当前帧,或者从存储器108获取的先前捕获到的视频中的存储帧),并且输出与计算机视觉任务相关的预测输出。例如,如果计算机视觉任务是物体跟踪,则预测输出可以是第一帧中被跟踪物体的边界框。
第一帧存储在本地存储器202中(以在处理下一帧时使用),并且还提供为差分图像计算子模块204的输入。差分图像计算子模块204还从本地存储器202获取第二帧。如果第一帧对应于表示为t的第一时间点,则第二帧对应于表示为t–Δt的第二时间点,其中,Δt是任何非零整数。如果Δt是非零正整数,则第二帧可以是帧序列中的前一帧;如果Δt是非零负整数,则第二帧可以是帧序列中的未来帧(例如,在帧序列是先前捕获和存储的帧序列的情况下)。如果Δt是+/–1,则第二帧和第一帧是帧序列中的连续帧。如下详述,Δt可以是可变整数,表示第二帧和第一帧之间的时间点间隔可以是可变的。
差分图像计算子模块204计算第二帧和第一帧之间的差分图像。差分图像包括在第二帧和第一帧之间改变的信息(可以称为时域信息)。如果第一帧是计算机视觉模块200要处理的帧序列中的初始帧,则可以不计算差分图像。
可选地,差分图像计算子模块204可以只为第一帧内的ROI计算差分图像,而不为整个帧计算差分图像。例如,差分图像计算子模块204可以包括图像裁剪功能块206,图像裁剪功能块206将第二帧和第一帧裁剪为ROI。然后,可以只为裁剪出的ROI计算差分图像。这可能有助于减少需要由神经网络210处理的数据量,并且可能有助于减少计算机资源(例如,处理能力和/或存储资源)的使用。
用于裁剪第二帧和第一帧的ROI可以根据先前为第二帧中的感兴趣物体(例如,被跟踪的物体)预测的已存边界框而设定。如果第一帧是计算机视觉模块200要处理的帧序列中的初始帧,则可以在第一帧上执行物体检测,以确定感兴趣物体的边界框。该边界框可以存储在本地存储器202中(以用作处理下一帧的已存边界框)。
图像裁剪功能块206根据以下假设等使用已存边界框来设定ROI:帧以足够高的速率捕获,感兴趣物体移动的速度使得物体在任何方向上移动的最大距离是物体大小的一半。根据这个假设,ROI可以被设定为尺寸是已存边界框的两倍且以已存边界框为中心的区域。应当理解,ROI可以根据应用以其他方式设定(例如,如果帧以较低的帧率捕获或预计感兴趣物体以较高的速度移动,则可以将ROI设定为比较大;相反,如果帧以较高的帧率捕获或预计感兴趣物体以较低的速度移动,则可以将ROI设定为比较小)。图像裁剪功能块206将第二帧和第一帧裁剪为相同的ROI(即,相同的像素集)。
差分图像计算子模块204可以使用任何合适的技术来计算差分图像,无论是否裁剪为ROI。
图3A至图3C是计算机视觉模块200中的差分图像计算子模块204的一些示例性实现方式的框图。应当理解,差分图像计算子模块204的实现方式不一定限于图3A至图3C的示例。
图3A示出了差分图像计算子模块204使用差分操作302来计算差分图像的一种示例性实现方式。具体地,差分操作302执行第二帧和第一帧之间的强度差值的逐像素计算。如果使用图像裁剪功能块206裁剪为ROI,则第二帧和第一帧可以分别裁剪为ROI,差分操作302可以具体在相应帧中的ROI之间执行逐像素差分计算。在本示例中,差分图像可以使用以下等式表示:
ΔIt(i,j)=Ft(i,j)-Ft-Δt(i,j)
其中,ΔIt是在时间点处计算的差分图像t,(i,j)表示像素位置,Ft表示第一帧,Ft-Δt表示第二帧(在时间点t–Δt处)。如果执行了图像裁剪,则像素位置(i,j)对应于设定的ROI中的像素集;如果未执行图像裁剪,则像素位置(i,j)对应于第二帧和第一帧中的所有像素。图3A中的示例可以是用于实现差分图像计算子模块204的最简单、计算效率最高的方法,而且可以适用于许多应用。
图3B示出了差分图像计算子模块204使用背景模型306的另一种示例性实现方式。背景模型306是先前处理过的帧的统计模型,通过第一帧更新。例如,背景模型306可以使用以下等式表示:
Bt(i,j)=(1-α)Bt-Δt(i,j)+αFt(i,j)
其中,Bt是背景模型306(在时间点t处更新),Bt-Δt是背景模型306的前一版本,α是设定更新背景模型306的速率的预设定常数。常数α可以手动调整,以控制通过第一帧更新背景模型306的程度,等等。在特殊情况下,背景模型306可以被设计用于计算移动平均值(即,在设定的帧数的滑动窗口之上计算),或者可以是累积平均值(即,在所有先前处理过的帧之上计算),等等。应当理解,其他统计方法可以用于计算背景模型306。可选地,图像裁剪功能块206可以将背景模型306和第一帧都裁剪为ROI(根据已存边界块而设定)。差分操作302执行背景模型306和第一帧之间(如果执行了图像裁剪,具体是背景模型306的ROI和第一帧的ROI之间)的强度差值的逐像素计算,以生成差分图像。图3B的示例性实现方式可以有助于对帧中可能存在的随机噪声进行平均,等等。
图3C示出了差分图像计算子模块204包括图像处理功能块308的另一种示例性实现方式。图像处理功能块308可以执行任何图像处理操作,该操作可以有助于将第二帧和第一帧修正或减小为感兴趣特征。图像处理功能块308可以执行保存第二帧和第一帧中的空间信息(例如,不交换像素位置)的任何图像处理操作。例如,图像处理功能块308可以使用低通滤波器来实现,或者可以使用强度阈值来实现,等等。可选地,图像裁剪功能块206可以将处理后的第二帧和处理后的第一帧都裁剪为ROI(根据已存边界块而设定)。差分操作302执行处理后的第二帧和处理后的第一帧之间(如果执行了图像裁剪,具体是相应处理后的帧的ROI之间)的强度差值的逐像素计算,以生成差分图像。
应当理解,差分图像计算子模块204可以使用其他方式来实现,无论是否存在图像裁剪。
再次参考图2。差分图像计算子模块204的输出是差分图像。可选地,差分图像可以在预处理子模块208处进行预处理。例如,预处理子模块208可以处理差分图像以提高差分图像的SNR,然后将差分图像输入到神经网络210。例如,预处理子模块208可以执行类似于下文详述的图像对齐或低通滤波。需要说明的是,在预处理子模块208处执行的预处理不一定限于与SNR相关的预处理,而是可以依赖于应用和/或依赖于神经网络210处的预期输入(例如,差分图像的大小调整或强度值的归一化)。在一些示例中,可能不需要预处理(例如,神经网络210对噪声不敏感,或者预计捕获到的帧具有高质量),因此可以省略预处理子模块208。
将差分图像输入到神经网络210。神经网络210前向传播不同的图像,以从差分图像中提取特征(即,计算嵌入(embedding))。神经网络210使用这些特征来执行计算机视觉任务并生成预测输出。例如,如果计算机视觉任务是物体跟踪,则神经网络210定位感兴趣物体,并且输出第一时间点对应的边界框(即,预测边界框)的预测坐标。在一些示例中,预测边界框可以存储在本地存储器202中,以用作已存边界框,从而设定用于下一帧图像裁剪的ROI。
应当理解,神经网络210可以根据计算机视觉任务采用任何需要的架构。如果计算视觉任务需要时域信息(例如,物体跟踪、视频字幕等),则神经网络210可以包括记忆状态根据每个时间点处计算出的嵌入进行更新的存储模块。在一些示例中,存储模块(如果使用)的记忆状态可以,例如,在预设定数量的时间点之后被重置。
神经网络210可以在训练阶段中使用注释的训练数据提前训练。例如,如果神经网络210要被训练用于执行物体跟踪任务,则训练数据可以是注释的视频帧,其中,注释包括分配给视频帧中包括的每个被跟踪物体的物体标签和轨迹标识符。训练数据可以使用上述方式通过计算机视觉模块200的子模块处理,使得进入神经网络210的训练输入是从训练数据计算出的差分图像。神经网络210的训练可以使用任何合适的训练方法进行。例如,可以在训练数据中的地面真值注释和神经网络210的预测输出之间计算损失,并且可以反向传播损失的梯度以学习神经网络210的权重的值。训练后的神经网络210可以在应用阶段中执行,以生成预测输出。
图4是计算机视觉模块200中的神经网络210的一种示例性实现方式的框图。应当理解,神经网络210的实现方式不一定限于图4的示例。
在这个示例中,神经网络210包括卷积神经网络(convolutional neuralnetwork,CNN)402、全连接层404和长短期记忆(long-short term memory,LSTM)406。将差分图像输入到CNN 402中,CNN 402将差分图像编码为特征表示(即,嵌入)。嵌入通过全连接层404前向传播,全连接层404进一步将嵌入处理成适合输入到LSTM 406的格式(例如,将嵌入转换为线性嵌入)。嵌入进一步通过LSTM 406传播。根据嵌入更新LSTM 406的记忆状态。LSTM 406用于随时间跟踪特征信息。最后,LSTM 406的输出是预测输出(例如,如果神经网络210被设计用于执行物体跟踪任务,则是感兴趣物体的预测边界框)。
应当理解,神经网络210可以采用其他架构。此外,神经网络210可以被设计用于执行除物体跟踪之外的其他计算机视觉任务。例如,CNN 402和全连接层404可以由任何合适的特征提取网络替换,该特征提取网络可以包括卷积层、全连接层等。LSTM 406可以是任何存储单元,例如,循环神经网络(recurrent neural network,RNN)或门控循环单元(gatedrecurrent unit,GRU),等等。
图5是计算机视觉模块200的另一个示例性实施例的详细内容的框图。在本示例中,计算机视觉模块200包括如上所述的本地存储器202、差分图像计算子模块204(包括可选的图像裁剪功能块206)、可选的预处理子模块208和神经网络210。此外,在本示例中,计算机视觉模块200可以包括可选的图像对齐子模块502以及可选的低通滤波器子模块504和/或可选的信号检测子模块506。实现可选的子模块502、504和/或506可以有助于提高输入到神经网络210的差分图像的SNR和/或可以有助于排除不包括大量时域信息的差分图像。
可选的图像对齐子模块502执行操作以将第一帧与第二帧(例如,可以从本地存储器202获取)对齐。可以使用各种图像对齐技术,例如,基于像素的技术或基于特征的技术(例如,如Szeliski于2006年发表在《计算机图形学与视觉的基础和趋势》上的“图像对齐和拼接:教程(Image Alignment and Stitching:A Tutorial)”所述)。图像对齐通常包括扭曲第一帧(或既扭曲第一帧又扭曲第二帧),以便对齐两个帧中的对应特征。图像对齐可以有助于减少由于相机抖动而引起的噪声,等等。
可选的低通滤波器子模块504对差分图像计算子模块204计算出的差分图像执行低通滤波(例如,使用高斯滤波器)。低通滤波可以有助于抑制差分图像中的高频噪声,等等。例如,差分图像中的时域信息可以表示被跟踪物体的运动(例如,平移运动)。这种运动在差分图像中表示为通常在低频域中的区域高光(例如,强度增加)。低通滤波器子模块504可以滤出高频噪声,但保留了需要的时域信息。因此,低通滤波提高了SNR。
可选的信号检测子模块506执行操作以确定差分图像中是否包括大量信息(例如,超过噪声阈值),并且只在有大量信息时将差分图像传递给神经网络210。差分图像中包括的信息可以根据差分图像中像素的强度进行评估,等等。如果具有至少一定强度水平(例如,大于噪声阈值)的差分图像中的像素数大于阈值像素数,则可以确定差分图像中包括大量信息(因此,差分图像应该由神经网络210处理)。
信号检测子模块506可以包括动态噪声阈值计算功能块508,动态噪声阈值计算功能块508执行操作以计算动态噪声阈值。例如,动态噪声阈值计算功能块508可以使用噪声方差来计算噪声阈值分布图,该噪声阈值分布图可能在几个时间点上发生变化(例如,由于帧序列中捕获到的变化,例如,环境、背景、环境光等的变化)。这样的噪声阈值可以称为时空噪声阈值,指示噪声阈值在空间上(即,在不同像素上)和时间上(即,在不同时间点上)都发生变化。动态噪声阈值的计算可以基于背景估计技术(例如,如Manzanera等人于2007年发表在《模式识别快报》的第320至328页上的“一种基于Σ–Δ背景估计的新运动检测算法(A new motion detection algorithm based onΣ–Δbackground estimation)”所述)。
例如,时空噪声阈值可以通过以下伪代码计算如下:
其中,Tt是时间点t处的噪声阈值;I(i,j)是像素位置(i,j)上的像素强度;ΔIt(i,j)是像素位置(i,j)上的像素强度的差值(也就是说,ΔIt表示时间点t处的差分图像);wt是时间点t处的池化系数(wt可以是0.5等固定系数,或者可以是softmax函数的值,等等);Tt(i,j)是归一化之后,时间点t处和像素位置(i,j)上的噪声阈值。空间池化是在位置(i,j)上的每个像素周围的局部区域(由常数S设定)中计算ΔIt(i,j)的平均值的操作。需要说明的是,在动态噪声阈值计算功能块508接收差分图像的示例中,可以从动态噪声阈值计算中省略差值ΔIt(i,j)的计算(相反,差值ΔIt(i,j)可以直接从差分图像中确定,差分图像在动态噪声阈值计算之前计算)。
在计算动态噪声阈值时,像素位置(i,j)对应于差分图像中的像素。如果只为设定的ROI计算差分图像(例如,如果使用了图像裁剪功能块206),则用于计算动态噪声阈值的像素也对应于设定的ROI(例如,伪代码中的a.i行和b.i行可以用于ROI中的每个像素(i,j))。如果在整个帧上计算差分图像,则用于计算动态噪声阈值的像素也对应于整个帧。在一些示例中,只能使用差分图像中的像素的样本来计算动态噪声阈值。例如,像素可以在差分图像中均匀采样(例如,每n个像素,其中,n是大于1的正整数),或者像素可以随机采样。其他采样技术可以用于采样差分图像中的像素的子集,以计算动态噪声阈值。
动态噪声阈值可以是传感器噪声、背景运动噪声和相机(或其他传感器)抖动噪声之和的定量表示。在一些示例中,该动态噪声阈值可以在数量设定的时间点(例如,10个时间点)上进行平均,平均值可以用作动态噪声阈值。应当理解,可以使用其他计算动态噪声阈值的方法。例如,可以使用在移动时域窗口上计算空域噪声阈值(例如,使用任何合适的统计方法)的其他技术。示例性统计方法可以是假设给定像素的强度分布的正态分布。然后,(例如,凭经验)可以计算该给定像素的强度的均值和方差。接着,空间噪声阈值可以通过每个像素的均值和方差设置(即,需要的时域信息将是噪声分布的离群值(outlier))。
在一些示例中,信号检测子模块506可以省略动态噪声阈值计算功能块508,而是使用静态噪声阈值代替。例如,静态噪声阈值可以根据已知的相机(或其他传感器)特性(例如,已知的传感器噪声特性)预设定。
信号检测子模块506执行操作以将差分图像中的信号强度与噪声阈值(无论是动态噪声阈值还是静态噪声阈值)进行比较。术语“信号”是指表示差分图像中携带的有用信息(具体是有用时域信息)量的量化器。在一些示例中,信号可以简单地是差分图像中的每个像素的强度。预计差分图像中的大量时域信息(例如,物体运动信息)会产生超过噪声阈值的信号,如果没有超过噪声阈值,则预计差分图像包括少量时域信息(因此可以丢弃差分图像)。
例如,信号检测子模块506可以执行如下伪代码所示的操作:
其中,Tt(i,j)是像素位置(i,j)上、时间点t处的噪声阈值(需要说明的是,如果噪声阈值是静态噪声阈值,则噪声阈值可以在所有时间点和/或所有像素上保持恒定);I(i,j)是像素位置(i,j)上的像素强度;ΔIt(i,j)是像素位置(i,j)上的像素强度的差值(也就是说,ΔIt表示时间点t处的差分图像);Signal(ΔIt)是ΔIt(i,j)的可选信号处理函数。表示为Signal(ΔIt)的信号处理可以包括应用一个或多个滤波器和/或降维,等等。如果未执行信号处理Signal(ΔIt),则信号(表示为St)可以等于ΔIt。CCP表示改变后的像素的累积数量(即,信号大于噪声阈值的像素的数目),CCI表示改变后的强度的累积值(即,大于噪声阈值的所有像素强度的累积值)。NCP表示改变后的像素的归一化数量,NCI表示改变后的强度的归一化值,其中,NCP和NCI都是通过差分图像的大小(例如,像素数)进行归一化。ThresholdNCP和ThresholdNCI分别是NCP和NCI的第一预设定截止阈值和第二预设定截止阈值。
需要说明的是,在信号检测子模块506接收差分图像的示例中,可以从动态噪声阈值计算中省略差值ΔIt(i,j)的计算(相反,差值ΔIt(i,j)可以直接从差分图像中确定,差分图像在动态噪声阈值计算之前计算)。
还需要说明的是,在上述伪代码中,像素位置(i,j)对应于差分图像中的像素。如果只为设定的ROI计算差分图像(例如,如果使用了图像裁剪功能块206),则用于计算信号检测的像素也对应于设定的ROI(例如,伪代码中的a.i.1行和b.ii.1行可以用于ROI中的每个像素(i,j))。如果在整个帧上计算差分图像,则用于计算信号检测的像素也对应于整个帧。在一些示例中,只能使用差分图像中的像素的样本来计算信号检测。例如,像素可以在差分图像中均匀采样(例如,每n个像素,其中,n是大于1的正整数),或者像素可以随机采样。其他采样技术可以用于采样差分图像中的像素的子集,以计算信号检测。
上述伪代码包括第一检测以确定差分图像是否包括足够多的信号大于噪声阈值的像素(即,检测NCP是否超过第一阈值ThresholdNCP),还另外包括第二检测以确定像素的信号值是否足够大于噪声阈值(即,检测NCI是否超过第二阈值ThresholdNCI)。这表示,即使存在信号大于噪声阈值(即,超过第一阈值)的足够多的像素,但如果这些像素的信号值只是略大于噪声阈值(即,不超过第二阈值),仍然会认为差分图像中包括少量信号。类似地,如果存在信号值远大于噪声阈值(即,超过第二阈值)的像素,但如果不存在信号大于噪声阈值(即,不超过第一阈值)的足够多的像素,仍然会认为差分图像中包括少量信号。应当理解,这只是一个示例,并不旨在限制。例如,信号检测子模块506可以只检测NCP是否超过第一阈值ThresholdNCP(而不检测第二阈值),或者只检测NCI是否超过第二阈值ThresholdNCI(而不检测第一阈值)。又如,信号检测子模块506可以只检测是否存在信号大于噪声阈值的至少一个像素。可以使用其他对照噪声阈值检测信号强度的技术。
通常,信号检测子模块506可以执行操作以检测差分图像是否包括强度足够高的信号,期望强度足够高的信号的差分图像会包括用于执行计算机视觉任务(例如,物体跟踪)的有用时域信息。如果差分图像具有强度足够高的信号(即,通过信号检测),则信号检测子模块506可以将差分图像传递给神经网络210(通过预处理子模块208进行可选预处理)。如果差分图像没有强度足够高的信号(即,未通过信号检测),则可以丢弃差分图像。这可以减少神经网络210的不必要执行,从而减少计算机资源的使用(例如,减少处理能力和/或内存资源的使用),并且提高计算机视觉模块200的效率。
信号检测子模块506还可以确定第一帧(可选地确定第一帧的预测边界框)是否应该存储在本地存储器202中。例如,如果差分图像未通过信号检测,则信号检测子模块506可以生成控制信号,该控制信号使得第一帧(可选地使得预测边界框)不存储在本地存储器202中(但保存已经存储在本地存储器202中的第二帧)。因此,存储在本地存储器202中的第二帧可以是包括大量时域信息的最新帧,该帧可以是也可以不是紧接的前一帧。也就是说,如果第一帧对应于时间点t,则第二帧可以对应于时间点t–Δt,其中,Δt是可变的非零整数,其可以根据信号检测子模块506的控制信号而变化。
子模块502、504、506可以单独使用,也可以任意地组合使用。使用子模块502、504、506中的任一个或多个可以有助于通过减少噪声和/或节省计算机资源来改进计算机视觉模块200的操作。误报(可能是由捕获到的帧中的噪声引起的)的可能性也会减少。
在一些示例中,除了差分图像,神经网络210的输入还可以是第一帧或第二帧(或第一帧或第二帧的裁剪ROI)。包括第一帧或第二帧(或第一帧或第二帧的裁剪ROI)作为神经网络210的输入可以有助于提高执行计算机视觉任务的鲁棒性(例如,准确性)。例如,第一帧或第二帧可以包括在差分图像中没有捕获(或没有完全捕获)到的信息(例如,第一帧或第二帧中的颜色信息可以在差分图像中没有完全捕获到)。因此,除了差分图像,还提供第一帧或第二帧作为神经网络210的输入可以有助于提高执行一些计算机视觉任务(例如,视频字幕或视频问答)的计算机视觉模块200的性能。
图6是计算机视觉模块200的另一个示例性实施例的详细内容的框图。在本示例中,计算机视觉模块200包括如上所述的本地存储器202、差分图像计算子模块204(包括可选的图像裁剪功能块206)、可选的预处理子模块208和神经网络210。为了简单起见,图6中未示出图像对齐子模块502、低通滤波器子模块504和信号检测子模块506(包括可选的动态噪声阈值计算功能块508),然而,应当理解,图6中可以包括子模块502、504、506中的任一个或多个。
在一些示例中,如果实现图像对齐子模块502和/或低通滤波器子模块504以提高差分图像的SNR,则相同的图像对齐子模块502和/或低通滤波器子模块504也可以用于处理第一帧或第二帧,然后将第一帧或第二帧输入到神经网络210。在其它示例中,第一帧或第二帧可能不需要由相同的图像对齐子模块502和/或低通滤波器子模块504进行处理(例如,取决于神经网络210是如何训练的)。
在图6中,也提供第一帧或第二帧作为神经网络210的输入。可选地,如果在设定的ROI上计算差分图像,则可以将第一帧或第二帧可以裁剪位设定的ROI(例如,使用图像裁剪功能块206),然后输入到神经网络210。在神经网络210处,可以执行特征融合以使神经网络210能够使用从差分图像和第一帧或第二帧中提取的特征。
融合差分图像中的特征和第一帧或第二帧中的特征可以在神经网络210处执行。神经网络210的架构可以用于在神经网络210的任何合适阶段中执行这两种模态(即差分图像和第一帧或第二帧)的融合。
图7A至图7C示出了神经网络210的示例性架构,示出了如何实现特征融合的不同示例。在这些示例中,神经网络210可以基于如上所述的CNN 402、全连接层404和LSTM 406的构建块。应当理解,这并不旨在限制,因此特征融合可以在任何其他合适的架构中实现(例如,另一个特征提取网络可以取代CNN 402和全连接层404,和/或另一个存储单元可以取代LSTM 406)。
图7A示出了神经网络210在神经网络210的早期阶段中实现特征融合单元702的一个示例。具体地,在本示例中,特征融合单元702执行差分图像与第一帧或第二帧之间的特征融合,然后提供特征融合单元702的输出作为CNN 402的输入。
图7B示出了神经网络210在神经网络210的中间阶段中实现特征融合单元702的一个示例。具体地,差分图像和第一帧或第二帧分别由相应的CNN 402处理成相应的嵌入。将相应的嵌入输入到特征融合单元702,特征融合单元702执行相应嵌入之间的特征融合,然后提供特征融合单元702的输出作为全连接层404的输入。
图7C示出了神经网络210在神经网络210的后期阶段中实现特征融合单元702的一个示例。具体地,差分图像和第一帧或第二帧分别由神经网络210中的相应分支处理(其中,每个分支包括相应的CNN 402、相应的全连接层404和相应的LSTM 406),以生成相应的中间预测(即,一个分支通过只处理差分图像而产生的一个中间预测和第二分支通过只处理第一帧或第二帧而产生的另一个中间预测)。将相应的中间预测输入到特征融合单元702,特征融合单元702在相应的中间预测之间执行特征融合,特征融合单元702的输出是神经网络210的预测输出。
图7A示出的示例性架构可以更容易实现和/或要求较少的计算机资源;另一方面,图7C示出的示例性架构可以使神经网络210的每个分支更加专业化(例如,一个分支可以被训练用于只从差分图像中生成预测,第二分支可以被训练用于只从第一帧或第二帧中生成预测)。应当理解,神经网络210的架构可以根据各种性能目标进行选择。
在上述任何示例中,特征融合单元702可以实现任何合适的特征融合操作。例如,特征融合单元702可以执行基于注意力的融合(例如,如Sato等人于2021年发表在深圳:IEEE举办的2021年IEEE口语技术研讨会(SLT)上的“用于目标说话人提取的多模态注意力融合(Multimodal Attention Fusion for Target Speaker Extraction)”所述)。例如,在基于注意力的融合中,每个模态中的特征可以根据以下公式进行加权和融合:
其中,(也就是说,/>表示模态:差分图像ΔI或第一帧或第二帧F);/>表示每个模态的嵌入;w、W、V、b是在训练神经网络210的过程中学习到的参数(例如,权重);ε是可选择的锐化因子。zM可以表示zΔI或zF中的任一个或两者的混合。需要说明的是,计算可以使用除以下提出的方式之外的其它方式执行。包括特征融合单元702的神经网络210可以使用上述注释的训练数据进行端到端训练。通过学习特征融合单元702的参数,神经网络210可以被训练用于选择哪个模态(即,差分图像或第一帧或第二帧)来强调相应特征。这可能使得计算机视觉模块200能够为某些计算机视觉任务(例如,视频字幕或视觉问答任务)生成更稳健的预测输出。
图8是用于执行计算机视觉任务的示例性方法800的流程图。方法800可以由使用计算机视觉模块200等的任何合适的计算系统(例如,计算系统100)执行。计算机视觉模块200可以是图2、图5或图6中示出的示例,等等。
在802中,获取与帧序列中的与第一时间点对应的第一帧和帧序列中的与第二时间点对应的第二帧。第一帧可以是实时帧序列(例如,实时视频)中的实时当前帧,等等。在其他示例中,第一帧可以是存储帧序列(例如,先前捕获到的视频)中的帧。第二帧可以对应于在第一时间点之前或在第一时间点之后的第二时间点(如果先前已经捕获到和存储所有时间点对应的帧序列,则第二时间点可以在第一时间点之后)。第一帧和第二帧可以是视频帧、带深度数据帧或IR数据帧,等等。
可选地,在804中,可以执行图像对齐以将第一帧与第二帧对齐。例如,如上所述,可以使用计算视觉模块200中的图像对齐子模块502执行图像对齐。
可选地,在806中,可以将第一帧和第二帧都裁剪为设定的ROI。例如,ROI可以根据先前的预测边界框设定,并且使用如上所述的图像裁剪功能块206进行裁剪。
在808中,计算第一帧和第二帧之间的差分图像。差分图像可以使用如上所述的任何合适的技术(例如,如图3A至图3D所示)进行计算(例如,使用差分图像计算子模块204)。
可选地,在810中,可以对差分图像执行低通滤波(例如,使用低通滤波子模块504)。
可选地,在812中,可以执行信号检测以确定差分图像是否包括大量时域信息(由计算信号的强度表示)。例如,如上所述的信号检测子模块506可以用于根据差分图像是否超过噪声阈值(可以是动态噪声阈值或静态噪声阈值)来确定差分图像是否包括大量时域信息。可选地,动态噪声阈值可以如上所述计算。如果差分图像包括大量时域信息,则方法800可以进行到步骤814。如果差分图像不包括大量时域信息,则可以丢弃差分图像,然后方法800可以返回到步骤802以处理帧序列中的下一帧。
在814中,通过神经网络210前向传播差分图像,生成预测输出。在一些示例中,第一帧或第二帧也可以通过神经网络210前向传播,而且神经网络210可以使用特征融合,如上所述。在一些示例中,差分图像(可选的第一帧或第二帧)的预处理可以在通过神经网络210进行前向传播之前执行(例如,使用预处理子模块208)。神经网络210可以是训练后的神经网络,其执行目标计算机视觉任务,例如,物体跟踪、视频字幕或视觉问答,等等。预测输出可以由计算系统100中的其他模块使用。例如,如果计算机视觉任务是物体跟踪,则预测输出可以是第一帧中的被跟踪物体的预测边界框。又如,如果计算机视觉任务是视频字幕,则预测输出可以是视频中的场景的预测描述,该预测描述可以用于为视频生成文本覆盖(overlay)并由计算系统100显示。
可选地,在816中,存储第一帧(例如,存储在计算机视觉模块200的本地存储器202中,或者存储在计算系统100的通用存储器108中),以用于处理下一帧。如果方法800离线执行(即,在先前捕获到和存储的帧序列上执行),则可能已经存储第一帧,因此可以省略步骤816。
可选地,在818中,如果预测边界框由神经网络210生成(例如,用于物体跟踪任务),则也可以存储预测边界框(例如,用于设定可选步骤806中的设定的ROI)。
方法800可以返回到步骤802以处理帧序列中的下一帧。
在各种示例中,本发明描述的系统和方法可以通过明确关注于帧序列中的时域信息来改进计算机视觉。这可以有助于降低执行计算机视觉任务(例如,物体跟踪)需要的算法的复杂性和/或有助于降低计算复杂性。此外,对时域信息的关注可以有助于减少由背景信息(即,非时域信息)引起的错误预测。本发明可以提高计算机视觉任务的性能和/或可靠性。
此外,由于神经网络210可以只处理差分图像而不处理帧,因此可以按照单位帧减少神经网络210处理且保存在神经网络210的记忆状态下的信息量。这表示,可以增加神经网络210在记忆状态下保存信息的帧数或历史记录长度,而不必增加计算机资源的使用。因此,更多历史帧可以存储在神经网络210的记忆状态下,这样能够提高预测输出的准确性和/或精度(例如,在视频字幕或视觉问答的情况下,更多帧可以保存在神经网络210的记忆状态下,以便能够生成对视频有更好理解的预测输出)。
在一些示例中,神经网络210可以在与捕获帧序列的系统分开的计算系统中实现(例如,视频可以在消费型设备上捕获并上载到执行神经网络210的外部基于云的计算平台)。在这些示例中,可能只需要传输差分图像,而不是将帧序列传输到外部系统。这可以有助于保护用户隐私,因为差分图像只包括时域信息,其敏感度可能比实际帧中包括的信息的敏感度低。
需要说明的是,本文中公开的示例可以用于在线(例如,在捕获到帧时实时或近实时)或离线(例如,先前已经捕获到和存储帧序列)处理帧序列。在一些示例中,神经网络210可以用于处理一个以上差分图像。例如,可以存在两个差分图像输入到神经网络210以生成预测输出,其中,在第一时间点t处的第一帧和第二时间点t–Δt1处的第二帧之间计算第一差分图像,在第三时间点t-Δt2处的第一帧和第三帧之间计算第二差分图像,其中,Δt1和Δt1是不同的非零整数。其他这类变化在本发明的范围内。
虽然本发明通过按照一定顺序执行的步骤描述方法和过程,但是可以适当地省略或改变方法和过程中的一个或多个步骤。在适当情况下,一个或多个步骤可以按照所描述的顺序以外的顺序执行。
虽然本发明在方法方面至少部分地进行了描述,但本领域普通技术人员将理解,本发明也针对用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件还是其任意组合。相应地,本发明的技术方案可以通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,包括DVD、CD-ROM、USB闪存盘、可移动硬盘或其它存储介质等。软件产品包括有形地存储在其上的指令,所述指令使得处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中公开的方法的示例。
在不脱离权利要求书的主题的前提下,本发明可以通过其它特定形式实施。描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。可以组合从一个或多个上述实施例中选择的特征,以创建非显式描述的可选实施例,在本发明的范围内可以理解适合于此类组合的特征。
还公开了所公开范围内的所有值和子范围。此外,虽然本文所公开和显示的系统、设备和流程可以包括特定数量的单元/组件,但可以修改所述系统、设备和组件,以包括更多或更少此类单元/组件。例如,虽然所公开的任何单元/组件可以引用为单个数量,但是可以修改本文中公开的实施例以包括多个此类单元/组件。本文中描述的主题旨在覆盖和涵盖所有适当的技术变更。
Claims (20)
1.一种方法,其特征在于,所述方法包括:
获取帧序列中的与第一时间点对应的第一帧和所述帧序列中的与第二时间点对应的第二帧;
计算所述第一帧和所述第二帧之间的差分图像;
通过神经网络前向传播所述差分图像,生成预测输出,其中,所述神经网络被训练用于执行计算机视觉任务。
2.根据权利要求1所述的方法,其特征在于,所述神经网络被训练用于执行物体跟踪任务,所述预测输出包括所述第一帧中包括的被跟踪物体的预测边界框。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取为所述第二帧预测的已存边界框,其中,
所述差分图像在所述第一帧和所述第二帧中的设定的感兴趣区域(region ofinterest,ROI)上计算,所述设定的ROI根据所述已存边界框而设定。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述差分图像执行信号检测,以确定表示所述差分图像中携带的有用信息量的信号是否超过噪声阈值;
响应于超过所述噪声阈值,通过所述神经网络前向传播所述差分图像。
5.根据权利要求4所述的方法,其特征在于,所述噪声阈值是静态预设定噪声阈值。
6.根据权利要求4所述的方法,其特征在于,所述噪声阈值是动态时空噪声阈值。
7.根据权利要求4所述的方法,其特征在于,所述信号是使用从所述差分图像中采样的像素的子集计算的。
8.根据权利要求1所述的方法,其特征在于,所述第一帧和所述差分图像都通过所述神经网络前向传播,所述神经网络被训练用于执行特征融合以将所述第一帧或所述第二帧的特征与所述差分图像的特征组合,从而生成所述预测输出。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一帧和所述第二帧之间执行图像对齐,其中,所述差分图像在所述对齐的第一帧和所述第二帧之间计算;
对所述差分图像执行低通滤波,其中,所述经低通滤波的差分图像通过所述神经网络前向传播。
10.根据权利要求1所述的方法,其特征在于,所述神经网络被训练用于执行视频字幕任务或视觉问答任务。
11.一种计算系统,其特征在于,所述计算系统包括:
处理单元,用于执行指令以使得所述计算系统执行以下操作:
获取帧序列中的与第一时间点对应的第一帧和所述帧序列中的与第二时间点对应的第二帧;
计算所述第一帧和所述第二帧之间的差分图像;
通过神经网络前向传播所述差分图像,生成预测输出,其中,所述神经网络被训练用于执行计算机视觉任务。
12.根据权利要求11所述的计算系统,其特征在于,所述神经网络被训练用于执行物体跟踪任务,所述预测输出包括所述第一帧中包括的被跟踪物体的预测边界框。
13.根据权利要求12所述的计算系统,其特征在于,所述处理单元用于执行指令以进一步使得所述计算系统执行以下操作:
获取为所述第二帧预测的已存边界框,其中,
所述差分图像在所述第一帧和所述第二帧中的设定的感兴趣区域(region ofinterest,ROI)上计算,所述设定的ROI根据所述已存边界框而设定。
14.根据权利要求11所述的计算系统,其特征在于,所述处理单元用于执行指令以进一步使得所述计算系统执行以下操作:
对所述差分图像执行信号检测,以确定表示所述差分图像中携带的有用信息量的信号是否超过噪声阈值;
响应于超过所述噪声阈值,通过所述神经网络前向传播所述差分图像。
15.根据权利要求14所述的计算系统,其特征在于,所述噪声阈值是静态预设定噪声阈值。
16.根据权利要求14所述的计算系统,其特征在于,所述噪声阈值是动态时空噪声阈值。
17.根据权利要求14所述的计算系统,其特征在于,所述信号是使用从所述差分图像中采样的像素的子集计算的。
18.根据权利要求11所述的计算系统,其特征在于,所述第一帧和所述差分图像都通过所述神经网络前向传播,所述神经网络被训练用于执行特征融合以将所述第一帧或所述第二帧的特征与所述差分图像的特征组合,从而生成所述预测输出。
19.根据权利要求11所述的计算系统,其特征在于,所述处理单元用于执行指令以进一步使得所述计算系统执行以下操作:
在所述第一帧和所述第二帧之间执行图像对齐,其中,所述差分图像在所述对齐的第一帧和所述第二帧之间计算;
对所述差分图像执行低通滤波,其中,所述经低通滤波的差分图像通过所述神经网络前向传播。
20.一种计算机可读介质,其特征在于,所述计算机可读介质包括在所述计算机可读介质中编码的指令,当所述指令由计算系统中的处理单元执行时,使得所述计算系统执行以下操作:
获取帧序列中的与第一时间点对应的第一帧和所述帧序列中的与第二时间点对应的第二帧;
计算所述第一帧和所述第二帧之间的差分图像;
通过神经网络前向传播所述差分图像,生成预测输出,其中,所述神经网络被训练用于执行计算机视觉任务。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163225787P | 2021-07-26 | 2021-07-26 | |
US63/225,787 | 2021-07-26 | ||
US17/507,489 | 2021-10-21 | ||
US17/507,489 US20230033548A1 (en) | 2021-07-26 | 2021-10-21 | Systems and methods for performing computer vision task using a sequence of frames |
PCT/CN2022/106749 WO2023005760A1 (en) | 2021-07-26 | 2022-07-20 | Systems and methods for performing computer vision task using sequence of frames |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117561540A true CN117561540A (zh) | 2024-02-13 |
Family
ID=85038415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280042058.5A Pending CN117561540A (zh) | 2021-07-26 | 2022-07-20 | 使用帧序列执行计算机视觉任务的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230033548A1 (zh) |
EP (1) | EP4348564A1 (zh) |
CN (1) | CN117561540A (zh) |
WO (1) | WO2023005760A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116402858B (zh) * | 2023-04-11 | 2023-11-21 | 合肥工业大学 | 基于transformer的时空信息融合的红外目标跟踪方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493944A (zh) * | 2009-03-06 | 2009-07-29 | 北京中星微电子有限公司 | 一种运动目标检测与跟踪的方法和系统 |
US11144761B2 (en) * | 2016-04-04 | 2021-10-12 | Xerox Corporation | Deep data association for online multi-class multi-object tracking |
CN106204646A (zh) * | 2016-07-01 | 2016-12-07 | 湖南源信光电科技有限公司 | 基于bp神经网络的多运动目标跟踪方法 |
CN106650593A (zh) * | 2016-09-30 | 2017-05-10 | 王玲 | 客流统计方法和装置 |
US10776665B2 (en) * | 2018-04-26 | 2020-09-15 | Qualcomm Incorporated | Systems and methods for object detection |
CN109446978B (zh) * | 2018-10-25 | 2022-01-07 | 哈尔滨工程大学 | 基于凝视卫星复杂场景的飞机动目标跟踪方法 |
US20210133483A1 (en) * | 2019-11-01 | 2021-05-06 | XNOR.ai, Inc. | Object detection based on pixel differences |
CN112529941B (zh) * | 2020-12-17 | 2021-08-31 | 深圳市普汇智联科技有限公司 | 一种基于深度轨迹预测的多目标跟踪方法及系统 |
-
2021
- 2021-10-21 US US17/507,489 patent/US20230033548A1/en active Pending
-
2022
- 2022-07-20 WO PCT/CN2022/106749 patent/WO2023005760A1/en active Application Filing
- 2022-07-20 EP EP22848365.7A patent/EP4348564A1/en active Pending
- 2022-07-20 CN CN202280042058.5A patent/CN117561540A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230033548A1 (en) | 2023-02-02 |
EP4348564A1 (en) | 2024-04-10 |
WO2023005760A1 (en) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167554A1 (en) | Gesture Recognition Method, Apparatus, And Device | |
US10636164B2 (en) | Object detection method and apparatus based on dynamic vision sensor | |
CN108256562B (zh) | 基于弱监督时空级联神经网络的显著目标检测方法及系统 | |
KR102153607B1 (ko) | 영상에서의 전경 검출 장치 및 방법 | |
TW202101371A (zh) | 視訊流的處理方法和裝置 | |
CN110232330B (zh) | 一种基于视频检测的行人重识别方法 | |
CN110163887B (zh) | 基于运动插值估计与前景分割相结合的视频目标跟踪方法 | |
WO2019136591A1 (zh) | 基于弱监督时空级联神经网络的显著目标检测方法及系统 | |
CN113065645A (zh) | 孪生注意力网络、图像处理方法和装置 | |
CN112085768A (zh) | 光流信息预测方法、装置、电子设备和存储介质 | |
CN114022823A (zh) | 一种遮挡驱动的行人再识别方法、系统及可存储介质 | |
JP2011053951A (ja) | 画像処理装置 | |
Angelo | A novel approach on object detection and tracking using adaptive background subtraction method | |
CN117561540A (zh) | 使用帧序列执行计算机视觉任务的系统和方法 | |
Roy et al. | A comprehensive survey on computer vision based approaches for moving object detection | |
Liu et al. | Scene background estimation based on temporal median filter with Gaussian filtering | |
CN113657200A (zh) | 一种基于掩码r-cnn的视频行为动作识别方法及系统 | |
JP5539565B2 (ja) | 撮像装置及び被写体追跡方法 | |
Shahbaz et al. | Probabilistic foreground detector with camouflage detection for sterile zone monitoring | |
JP5241687B2 (ja) | 物体検出装置及び物体検出プログラム | |
Sehairi et al. | Real time implementation on FPGA of moving objects detection and classification | |
JP5247419B2 (ja) | 撮像装置および被写体追跡方法 | |
JP2020181268A (ja) | 物体対応付け装置、物体対応付けシステム、物体対応付け方法及びコンピュータプログラム | |
Sharma et al. | Efficient object detection with its enhancement | |
Hsia et al. | Improved directional lifting-based discrete wavelet transform for low resolution moving object detection |
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 |