CN115880349A - 使用卷积技术将自适应偏移项添加到局部自适应二值化表达式 - Google Patents
使用卷积技术将自适应偏移项添加到局部自适应二值化表达式 Download PDFInfo
- Publication number
- CN115880349A CN115880349A CN202110943775.2A CN202110943775A CN115880349A CN 115880349 A CN115880349 A CN 115880349A CN 202110943775 A CN202110943775 A CN 202110943775A CN 115880349 A CN115880349 A CN 115880349A
- Authority
- CN
- China
- Prior art keywords
- processor
- result
- video
- binarization
- video frame
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/514—Depth or shape recovery from specularities
-
- 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/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/273—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion removing elements interfering with the pattern to be recognised
-
- 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/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- 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/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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
-
- 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/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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/20004—Adaptive image processing
- G06T2207/20012—Locally adaptive
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30168—Image quality inspection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Optics & Photonics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
Abstract
一种装置,其包括接口、结构光投射器以及处理器。接口可以接收像素数据。结构光投射器可以生成结构光图案。所述处理器可以对布置为视频帧的所述像素数据进行处理,使用卷积神经网络执行操作以确定二值化结果和偏移值,以及响应于所述视频帧、所述结构光图案、所述二值化结果、所述偏移值和误差点的去除来生成视差图和深度图。所述卷积神经网络可以执行部分块求和以生成卷积结果,将所述卷积结果与散斑值进行比较以确定所述偏移值,响应于执行卷积操作来生成自适应结果,将所述视频帧与所述自适应结果进行比较以生成所述视频帧的所述二值化结果,并从所述二值化结果中去除所述误差点。
Description
技术领域
概括地说,本发明涉及计算机视觉,并且更具体地说,本发明涉及一种使用卷积技术将自适应偏移项添加到局部自适应二值化表达式的方法和/或装置。
背景技术
机器视觉、光学技术和人工智能得到了快速发展。三维(3D)重建已经成为机器视觉的一个重要分支。传统的3D重构技术在实时应用方面存在问题。3D重构的速度不够快,并且3D重构的准确度不够准确。
一种3D重构的方法使用单目散斑结构光***执行。使用单目散斑结构光进行3D重构的结果受多种因素的影响,所述因素例如散斑投射器功率、时间噪声、空间噪声、被检测对象的反射率等。由于3D重构的速度和准确度不足,应用一般仅限于不要求高准确度的场景,例如三维面部识别、面部实时检测等。
使用单目散斑结构光***的3D重构技术的性能主要受限于后端计算方法的匹配速度和匹配准确度。针对由前端散斑结构光得到的单通道图像的预处理对于针对后端计算准确度和速度的研究并不完善。用于执行二值化操作的传统后端计算主要基于简单的全局二值化、局部二值化、局部自适应二值化等。然后使用其他方法来执行局部或全局二值化求和。
需要使用卷积技术来实现将自适应偏移项添加到局部自适应二值化表达式中。
发明内容
本发明涉及一种装置,该装置包括接口、结构光投射器以及处理器。接口可以接收像素数据。结构光投射器可以生成结构光图案。所述处理器可以对布置为视频帧的所述像素数据进行处理,使用卷积神经网络执行操作以确定二值化结果和偏移值,以及响应于所述视频帧、所述结构光图案、所述二值化结果、所述偏移值和误差点的去除来生成视差图和深度图。所述卷积神经网络可以对所述视频帧执行部分块求和以及求平均以生成卷积结果,将所述卷积结果与理想散斑值进行比较以确定所述偏移值,响应于执行卷积操作以向所述视频帧添加所述偏移值来生成自适应结果,将所述视频帧与所述自适应结果进行比较以生成针对所述视频帧的所述二值化结果,并从所述二值化结果中去除所述误差点。
附图说明
通过下面的详细描述以及所附的权利要求书和附图,本发明的实施例将变得显而易见。
图1是示出根据本发明的示例实施例的可以利用被配置为实现卷积神经网络的处理器的边缘设备的示例的图。
图2是示出实现本发明的示例实施例的示例摄像头的图。
图3是示出摄像头***的框图的图。
图4是示出了实现被配置为执行3D重构的卷积神经网络的摄像头***的处理电路的图。
图5是示出了使用由处理器实现的神经网络执行的部分块求和的视频帧的预处理的图。
图6是示出了由处理器实现的神经网络执行的确定偏移值的图。
图7是示出了通过由处理器实现的神经网络执行的将视频帧与偏移值进行组合来确定自适应偏移结果的图。
图8是示出了使用由处理器实现的神经网络执行的四重域方法去除的误差点的图。
图9是示出了示例散斑图像的图。
图10是示出了在没有添加自适应偏移值的情况下在二值化之后从散斑图像生成的视差图的图。
图11是示出了在没有添加自适应偏移值的情况下在二值化之后从散斑图像生成的深度图的图。
图12是示出了响应于添加自适应偏移值和去除误差点而从散斑图像生成的二值化结果的图。
图13是示出了响应于添加自适应偏移值和去除误差点而在二值化之后从散斑图像生成的视差图的图。
图14是示出了响应于添加自适应偏移值和去除误差点而在二值化之后从散斑图像生成的深度图的图。
图15是示出了用于通过使用卷积技术将自适应偏移项添加到局部自适应二值化表达式来对视频帧进行预处理的方法的流程图。
图16是示出了用于使用卷积神经网络来执行部分块求和以及平均的方法的流程图。
图17是示出了用于确定偏移值的方法的流程图。
图18是示出了用于通过将偏移值相加并生成二值化结果来生成自适应结果的方法的流程图。
图19是示出了用于去除误差点以生成二进制数据的方法的流程图。
具体实施方式
本发明的实施例包括提供使用卷积技术将自适应偏移项添加到局部自适应二值化表达式,其可以(i)由边缘设备上的处理器执行,(ii)利用在处理器上实现的卷积神经网络,(iii)减少误差点的产生,(iv)从背景图像中分离散斑图案,(v)使用卷积操作执行面积求和以及添加偏移操作以加速执行,(vi)在二值化后的消除误差点,(vii)降低错误匹配的概率,(viii)通过添加自适应偏置来减少针对像素的比例误差视差,(ix)提高Z准确度,(x)用卷积来代替平均求平均操作和/或(xi)实现为一个或多个集成电路。
本发明的实施例可以使用视频处理器来实现。视频处理器可以包括专用于实现卷积神经网络的硬件。用于实现卷积神经网络的专用硬件可以被配置为:为卷积操作提供加速处理。由用于实现卷积神经网络的专用硬件提供的硬件加速处理可以使边缘设备能够使用卷积技术计算局部二值化表达式以添加自适应偏移项。在没有硬件加速处理的情况下,卷积技术可能无法实现(例如,对于实时应用来说性能可能太慢)。
用于实现卷积神经网络的专用硬件可以被配置为:加速散斑结构光的预处理以用于单目3D重构。本发明的实施例可以被配置为:生成具有自适应偏移项的局部自适应二进制表达式。用于实现卷积神经网络的专用硬件可以被配置为:生成具有自适应偏移项的局部自适应二进制表达式。与用于单目结构光匹配预处理的传统方法相比,生成具有自适应偏移项的局部自适应二进制表达式可以减少执行的计算次数和/或提高所执行的后端匹配的准确度。
可以使用针对单目结构光匹配技术实现的预处理方法以进行求和。可以添加自适应偏移项,以便在执行二值化之后向二值图像的特征表达提供准确度和/或丰富度。可以使用在用于卷积神经网络的专用硬件中实现的普通卷积方法来执行局部求和。可以添加偏移项以提高求和以及随后添加偏移项的过程的速度。可以执行使用卷积的预处理以基于添加自适应偏移项为生成局部自适应二值化表达式提供有益的(例如,最佳的)条件。
确定自适应偏移项可以实现散斑图案与背景图像的分离。自适应偏移项可以限制在四重场中误差点的产生。二值化后剩余的误差点可以通过实现四重域方法来消除。可以实施四重域方法,以便降低后续阶段中错误匹配的概率。
使用卷积操作来执行二值化操作可以加速针对计算的执行(例如,减少处理时间)。可以充分利用卷积操作来执行面积求和和/或添加偏移量操作。
参考图1,示出了说明根据本发明的示例实施例的可以利用卷积神经网络的边缘设备的示例的图。示出了区域50的俯视图。在所示示例中,区域50可以是室外位置。显示了街道、车辆和建筑物。
在区域50中的不同位置处示出了设备100a-100n。设备100a-100n中的每个可以各自实现边缘设备。边缘设备100a-100n可以包括智能IP摄像头(例如,摄像头***)。边缘设备100a-100n可以包括被设计为部署在网络边缘处的嵌入式平台中的低功率技术(例如,在传感器、摄像头或其他电池供电设备上运行的微处理器),其中功耗是关键问题。在示例中,边缘设备100a-100n可以包括各种交通摄像头和智能交通***(ITS)解决方案。
边缘设备100a-100n可以被实现用于各种应用。在所示示例中,边缘设备100a-100n可以包括自动车牌识别(ANPR)摄像头100a、交通摄像头100b、车辆摄像头100c、访问控制摄像头100d、自动柜员机(ATM)摄像头100e、子弹头摄像头100f、圆顶摄像头100n等。在示例中,边缘设备100a-100n可以实现为交通摄像头和智能交通***(ITS)解决方案,旨在利用人员和车辆检测、车辆品牌/型号识别以及自动车牌识别(ANPR)功能的组合来增强道路安全。
在所示示例中,区域50可以是室外位置。在一些实施例中,可以在各种室内位置处实现边缘设备100a-100n。在示例中,边缘设备100a-100n可以结合卷积神经网络以便在安全(监视)应用和/或访问控制应用中被使用。在示例中,实现为安全摄像头和访问控制应用的边缘设备100a-100n可以包括电池供电的摄像头、门铃摄像头、室外摄像头、室内摄像头等。根据本发明的实施例,安全摄像头和访问控制应用可以从卷积神经网络的应用中实现性能优势。在示例中,利用根据本发明实施例的卷积神经网络的边缘设备可以获取大量图像数据并进行设备上推断以获得有用信息(例如,每个网络执行的多个图像时间实例),从而减少带宽和/或减少功耗。由边缘设备100a-100n执行的设计、类型和/或应用可以根据特定实现的设计标准而变化。
参考图2,示出了说明实现本发明的示例实施例的示例边缘设备摄像头的图。示出了摄像头***100a-100n。每个摄像头设备100a-100n可以具有不同的风格和/或用例。例如,摄像头100a可以是运动摄像头,摄像头100b可以是安装在天花板上的安全摄像头,摄像头100n可以是网络摄像头等。可以实现其他类型的摄像头(例如,家庭安全摄像头、电池供电摄像头、门铃摄像头、立体摄像头等)。摄像头100a-100n的设计/风格可以根据特定实现的设计标准而变化。
摄像头***100a-100n中的每一个可以包括块(或电路)102、块(或电路)104和/或块(或电路)106。电路102可以实现处理器。电路104可以实现捕获设备。电路106可以实现结构光投射器。摄像头***100a-100n可以包括其他组件(未示出)。可以与图3相关联地来描述摄像头100a-100n的组件的细节。
处理器102可以被配置为实现人工神经网络(ANN)。在示例中,ANN可以包括卷积神经网络(CNN)。处理器102可以被配置为实现视频编码器。处理器102可以被配置为对布置为视频帧的像素数据进行处理。捕获设备104可被配置为:捕获可由处理器102使用以生成视频帧的像素数据。结构光投射器106可以被配置为:生成结构光图案(例如,散斑图案)。结构光图案可以投影到背景(例如,环境)上。捕获设备104可以捕获包括具有散斑图案的背景图像(例如,环境)的像素数据。
摄像头100a-100n可以是边缘设备。由摄像头100a-100n中的每一个摄像头实现的处理器102可以使摄像头100a-100n能够在内部(例如,在本地级别)实现各种功能。例如,处理器102可以被配置为:在设备上执行对象/事件检测(例如,计算机视觉操作)、3D重构、视频编码和/或视频转码。例如,处理器102甚至可以执行诸如计算机视觉和3D重构之类的高级过程,而无需将视频数据上传到云服务以卸载计算量大的功能(例如,计算机视觉、视频编码、视频转码等)。
在一些实施例中,可以实现多个摄像头***(例如,摄像头***100a-100n可以彼此独立地操作)。例如,摄像头100a-100n中的每一个可以单独地对捕获的像素数据进行分析并且在本地执行事件/对象检测。在一些实施例中,摄像头100a-100n可以被配置为摄像头网络(例如,安全摄像头,其将视频数据发送到诸如网络附加存储和/或云服务之类的中央源)。摄像头100a-100n的位置和/或配置可以根据特定实现的设计标准而变化。
摄像头***100a-100n中的每一个的捕获设备104可以包括单个镜头(例如,单目摄像头)。处理器102可以被配置为:加速用于单眼3D重构的散斑结构光的预处理。可以在不使用立体摄像头的情况下执行单目3D重构以生成深度图像和/或视差图像。
参考图3,示出了说明示例实现的摄像头***100的框图。在示例中,摄像头***100可以包括处理器/SoC 102、捕获设备104以及结构光投射器106,如与图2相关联所示。摄像头***100还可以包括块(或电路)150、块(或电路)152、块(或电路)154、块(或电路)156、块(或电路)158、块(或电路)160、块(或电路)162、块(或电路)164和/或块(或电路)166。电路150可以实现存储器。电路152可以实现电池。电路154可以实现通信设备。电路156可以实现无线接口。电路158可以实现通用处理器。块160可以实现光学镜头。块162可以实现结构光图案镜头。电路164可以实现一个或多个传感器。电路166可以实现人机接口设备(HID)。在一些实施例中,摄像头***100可以包括处理器/SoC 102、捕获设备104、IR结构光投射器106、存储器150、镜头160、IR结构光投射器106、结构光图案镜头162、传感器164、电池152、通信模块154、无线接口156和处理器158。在另一示例中,摄像头***100可以包括处理器/SoC 102、捕获设备104、结构光投射器106、处理器158、镜头160、结构光图案镜头162以及传感器164作为一个设备,并且存储器150、电池152、通信模块154和无线接口156可以是单独设备的组件。摄像头***100可以包括其他组件(未示出)。摄像头***100的组件的数量、类型和/或布置可以根据特定实现的设计标准而变化。
处理器102可以实现为视频处理器。在示例中,处理器102可以被配置为:利用高速SLVS/MIPI-CSI/LVCMOS接口接收三传感器视频输入。在一些实施例中,处理器102可以被配置为:除了生成视频帧之外还执行深度感测。在示例中,可以响应于在视频帧中捕获的深度信息和/或向量光数据来执行深度感测。
存储器150可以存储数据。存储器150可以实现各种类型的存储器,包括但不限于高速缓存、闪存、存储卡、随机存取存储器(RAM)、动态RAM(DRAM)存储器等。存储器150的类型和/或大小可以根据特定实现的设计标准而变化。存储在存储器150中的数据可以对应于视频文件、运动信息(例如,来自传感器164的读数)、视频融合参数、图像稳定参数、用户输入、计算机视觉模型、特征集和/或元数据信息。在一些实施例中,存储器150可以存储参考图像。参考图像可用于计算机视觉操作、3D重构等。
处理器/SoC 102可以被配置为:执行计算机可读代码和/或处理信息。在各种实施例中,计算机可读代码可以存储在处理器/SoC 102内(例如,微代码等)和/或存储器150中。在示例中,处理器/SoC 102可以被配置为:执行存储在存储器150中的一个或多个人工神经网络模型(例如,面部识别CNN、对象检测CNN、对象分类CNN、3D重构CNN等)。在示例中,存储器150可以存储一个或多个有向无环图(DAG)以及定义一个或多个人工神经网络模型的一组或多组权重和偏置。处理器/SoC 102可以被配置为:从存储器150接收输入和/或向存储器150呈现输出。处理器/SoC 102可以被配置为:呈现和/或接收其他信号(未示出)。处理器/SoC 102的输入和/或输出的数量和/或类型可以根据特定实现的设计标准而变化。处理器/SoC 102可以被配置用于低功率(例如,电池)操作。
电池152可以被配置为:为摄像头***100的组件存储和/或供电。用于卷帘式快门传感器的动态驱动器机制可以被配置为节省功耗。降低功耗可以使摄像头***100能够使用电池152在延长的时间段内操作而无需再充电。电池152可以是可充电的。电池152可以是内置的(例如,不可更换的)或可更换的。电池152可以具有用于连接到外部电源(例如,用于充电)的输入。在一些实施例中,装置100可由外部电源供电(例如,电池152可以被不实现或者实现为备用电源)。可以使用各种电池技术和/或化学物质来实现电池152。所实现的电池152的类型可以根据特定实现的设计标准而变化。
通信模块154可以被配置为实现一种或多种通信协议。例如,通信模块154和无线接口156可以被配置为实现以下中的一个或多个:IEEE102.11、IEEE102.15、IEEE102.15.1、IEEE102.15.2、IEEE102.15.3、IEEE102.15.4、IEEE102.15.5、IEEE102.20、和/或/>在一些实施例中,通信模块154可以是硬连线数据端口(例如,USB端口、迷你USB端口、USB-C连接器、HDMI端口、以太网端口、显示端口接口、闪电端口等等)。在一些实施例中,无线接口156还可以实现与蜂窝通信网络相关联的一种或多种协议(例如,GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、SMS等)。在其中摄像头***100被实现为无线摄像头的实施例中,由通信模块154和无线接口156实现的协议可以是无线通信协议。由通信模块154实现的通信协议的类型可以根据特定实现的设计标准而变化。
通信模块154和/或无线接口156可以被配置为生成广播信号作为来自摄像头***100的输出。广播信号可以向外部设备发送视频数据、视差数据和/或控制信号。例如,可以将广播信号发送到云存储服务(例如,能够按需扩展的存储服务)。在一些实施例中,通信模块154可以不发送数据,直到处理器/SoC 102已经执行了视频分析以确定对象在摄像头***100的视场中。
在一些实施例中,通信模块154可以被配置为生成手动控制信号。手动控制信号可以响应于由通信模块154接收到的来自用户的信号而生成。手动控制信号可以被配置为激活处理器/SoC 102。无论摄像头***100的电源状态如何,处理器/SoC 102都可以响应于手动控制信号而被激活。
在一些实施例中,通信模块154和/或无线接口156可以被配置为接收特征集。接收到的特征集可用于检测事件和/或对象。例如,特征集可用于执行计算机视觉操作。特征集信息可以包括用于处理器102的指令以用于确定哪些类型的对象对应于感兴趣的对象和/或事件。
可以使用通用处理器电路来实现处理器158。处理器158可操作用于与视频处理电路102和存储器150交互以执行各种处理任务。处理器158可以被配置为执行计算机可读指令。在示例中,计算机可读指令可由存储器150存储。在一些实施例中,计算机可读指令可以包括控制器操作。通常,来自传感器164和/或人机接口设备166的输入被示为由处理器102接收。在一些实施例中,通用处理器158可以被配置为:接收和/或分析来自传感器164和/或HID 166的数据并且响应于输入做出决定。在一些实施例中,处理器158可以向摄像头***100的其他组件(例如,电池152、通信模块154和/或无线接口156)发送数据和/或从其接收数据。处理器102和通用处理器158执行摄像头***100的哪个功能可以根据特定实现的设计标准而变化。
镜头160可以附接到捕获设备104。捕获设备104可以被配置为经由镜头160接收输入信号(例如,LIN)。信号LIN可以是光输入(例如,模拟图像)。镜头160可以实现为光学镜头。镜头160可以提供变焦特征和/或聚焦特征。在示例中,捕获设备104和/或镜头160可以实现为单个镜头组件。在另一个示例中,镜头160可以是与捕获设备104分开的实现。
捕获设备104可以被配置为将输入光LIN转换成计算机可读数据。捕获设备104可以捕获通过镜头160接收的数据以生成原始像素数据。在一些实施例中,捕获设备104可以捕获通过镜头160接收的数据以生成比特流(例如,生成视频帧)。例如,捕获设备104可以接收来自镜头160的聚焦光。镜头160可以被定向、倾斜、平移、缩放和/或旋转以提供来自摄像头***100的目标视图(例如,视频帧的视图、使用多个摄像头***100a-100n捕获的全景视频帧的视图、针对立体视觉的目标图像和参考图像视图,等等)。捕获设备104可以生成信号(例如,视频)。信号VIDEO可以是像素数据(例如,可用于生成视频帧的像素序列)。在一些实施例中,信号VIDEO可以是视频数据(例如,视频帧序列)。信号VIDEO可以被呈现给处理器102的输入中的一个。在一些实施例中,由捕获设备104生成的像素数据可以是未压缩的和/或响应于来自镜头160的聚焦光而生成的原始数据。在一些实施例中,捕获设备104的输出可以是数字视频信号。
在示例中,捕获设备104可以包括块(或电路)180、块(或电路)182以及块(或电路)184。电路180可以是图像传感器。电路182可以是处理器和/或逻辑单元。电路184可以是存储器电路(例如,帧缓冲器)。镜头160(例如,摄像头镜头)可以被引导以提供摄像头***100周围环境的视图。镜头160可以旨在捕获环境数据(例如,光输入LIN)。镜头160可以是广角镜头和/或鱼眼镜头(例如,能够捕获宽视场的镜头)。镜头160可以被配置为捕获和/或聚焦用于捕获设备104的光。通常,图像传感器180位于镜头160的后面。基于从镜头160捕获的光,捕获设备104可以生成比特流和/或视频数据(例如,信号VIDEO)。
捕获设备104可以被配置为捕获视频图像数据(例如,由镜头160收集和聚焦的光)。捕获设备104可以捕获通过镜头160接收的数据以生成视频比特流(例如,视频帧序列的像素数据)。在各个实施例中,镜头160可以被实现为定焦镜头。定焦镜头通常有利于较小尺寸和较低功率。在示例中,定焦镜头可用于电池供电、门铃和其他低功率摄像头应用。在一些实施例中,镜头160可以被定向、倾斜、平移、缩放和/或旋转以捕获摄像头***100周围的环境(例如,从视场捕获数据)。在示例中,专业摄像头型号可以使用有源镜头***来实现,以用于增强功能、远程控制等。
捕获设备104可以将接收到的光转换成数字数据流。在一些实施例中,捕获设备104可以执行模数转换。例如,图像传感器180可以对由镜头160接收的光执行光电转换。处理器/逻辑单元182可以将数字数据流转换成视频数据流(或比特流)、视频文件和/或多个视频帧。在示例中,捕获设备104可以将视频数据呈现为数字视频信号(例如,VIDEO)。数字视频信号可以包括视频帧(例如,连续数字图像和/或音频)。在一些实施例中,捕获设备104可以包括用于捕获音频的麦克风。在一些实施例中,麦克风可以实现为单独的组件(例如,传感器164之一)。
由捕获设备104捕获的视频数据可以表示为信号/比特流/数据VIDEO(例如,数字视频信号)。捕获设备104可以向处理器/SoC 102呈现信号VIDEO。信号VIDEO可以表示视频帧/视频数据。信号VIDEO可以是由捕获设备104捕获的视频流。在一些实施例中,信号VIDEO可以包括可由处理器102(例如,视频处理管线、图像信号处理器(ISP)等)操作的像素数据。处理器102可以响应于信号VIDEO中的像素数据来生成视频帧。
信号VIDEO可以包括布置为视频帧的像素数据。信号VIDEO可以是包括背景(例如,捕获的对象和/或环境)以及由结构光投射器106生成的散斑图案的图像。信号VIDEO可以包括单通道源图像。可以响应于使用单目镜头160捕获像素数据来生成单通道源图像。
图像传感器180可以从镜头160接收输入光LIN并将光LIN转换成数字数据(例如,比特流)。例如,图像传感器180可以对来自镜头160的光执行光电转换。在一些实施例中,图像传感器180可以具有不用作图像输出的一部分的额外边距。在一些实施例中,图像传感器180可能没有额外的余量。在各种实施例中,图像传感器180可以被配置为生成RGB-IR视频信号。在仅红外光照射的视场中,图像传感器180可以生成单色(B/W)视频信号。在由IR光和可见光二者照射的视场中,图像传感器180可以被配置为:除了生成单***信号之外还生成颜色信息。在各种实施例中,图像传感器180可以被配置为:响应于可见光和/或红外(IR)光而生成视频信号。
在一些实施例中,摄像头传感器180可以包括卷帘式快门传感器或全局快门传感器。在示例中,卷帘式快门传感器180可以实现RGB-IR传感器。在一些实施例中,捕获设备104可以包括卷帘式快门IR传感器和RGB传感器(例如,实现为单独的组件)。在示例中,卷帘式快门传感器180可以被实现为RGB-IR卷帘式快门互补金属氧化物半导体(CMOS)图像传感器。在一个示例中,卷帘式快门传感器180可以被配置为:断言指示第一行曝光时间的信号。在一个示例中,卷帘式快门传感器180可以将掩模施加到单色传感器。在示例中,掩模可以包括多个单元,该单元包含一个红色像素、一个绿色像素、一个蓝色像素和一个IR像素。IR像素可以包含红色、绿色和蓝色滤波器材料,这些滤波器材料可以高效地吸收可见频谱中的所有光,同时允许更长的红外波长从而以最小的损失通过。在卷帘式快门的情况下,随着传感器的每一排(或每一行)开始曝光,该排(或行)中的所有像素可以同时开始曝光。
处理器/逻辑单元182可以将比特流转换成人类可见的内容(例如,无论图像质量如何,普通人都可以理解的视频数据,例如视频帧和/或可由处理器102转换为视频帧的像素数据)。例如,处理器/逻辑单元182可以从图像传感器180接收纯(例如,原始)数据并且基于原始数据生成(例如,编码)视频数据(例如,比特流)。捕获设备104可以具有存储器184以存储原始数据和/或经处理的比特流。例如,捕获设备104可以实现帧存储器和/或缓冲器184以存储(例如,提供临时存储和/或高速缓存)一个或多个视频帧(例如,数字视频信号)。在一些实施例中,处理器/逻辑单元182可以对存储在捕获设备104的存储器/缓冲器184中的视频帧执行分析和/或校正。处理器/逻辑单元182可以提供关于捕获的视频帧的状态信息。
结构光投射器106可以包括块(或电路)186。电路186可以实现结构光源。结构光源186可以被配置为:生成信号(例如,SLP)。信号SLP可以是结构光图案(例如,散斑图案)。信号SLP可以被投影到摄像头***100附近的环境上。结构光图案SLP可以由捕获设备104捕获作为光输入LIN的一部分。
结构光图案镜头162可以是用于结构光投射器106的镜头。结构光图案镜头162可以被配置为使得由结构光投射器106的结构光源186产生的结构光SLP能够被发射,同时保护结构光源186。结构光图案镜头162可以被配置为:将由结构光源186产生的激光图案分解成图案阵列(例如,用于散斑图案的密集点图案阵列)。
在示例中,结构光源186可以被实现为垂直腔体表面发射激光器(VCSEL)的阵列和镜头。然而,可以实现其他类型的结构光源以满足特定应用的设计标准。在示例中,VCSEL的阵列通常被配置为生成激光图案(例如,信号SLP)。镜头通常被配置为将激光图案分解为密集点图案阵列。在示例中,结构光源186可以实现近红外(NIR)光源。在各种实施例中,结构光源186的光源可以被配置为发射波长大约为940纳米(nm)的光,该光对于人眼是不可见的。然而,可以利用其他波长。在示例中,可以利用在大约为800nm-1000nm的范围内的波长。
传感器164可以实现多个传感器,包括但不限于运动传感器、环境光传感器、接近传感器(例如,超声波、雷达、激光雷达等)、音频传感器(例如,麦克风)等。在实现运动传感器的实施例中,传感器164可以被配置为:检测由摄像头***100监测的视场中的任何地方(或视场外的一些位置)的运动。在各种实施例中,运动的检测可以用作用于激活捕获设备104的一个阈值。传感器164可以被实现为摄像头***100的内部组件和/或摄像头***100外部的组件。在示例中,传感器164可以被实现为被动红外(PIR)传感器。在另一个示例中,传感器164可以被实现为智能运动传感器。在又一示例中,传感器164可以被实现为麦克风。在实现智能运动传感器的实施例中,传感器164可以包括被配置为检测运动和/或人的低分辨率图像传感器。
在各种实施例中,传感器164可以生成信号(例如,SENS)。信号SENS可以包括由传感器164收集的各种数据(或信息)。在示例中,信号SENS可以包括响应于在被监测的视场中检测到的运动、被监测视场中的环境光水平和/或在被监测视场中拾取的声音而收集的数据。然而,可以基于特定应用的设计标准来收集和/或生成其他类型的数据。信号SENS可以呈现给处理器/SoC 102。在示例中,当在由摄像头***100监测的视场中检测到运动时,传感器164可以生成(断言)信号SENS。在另一示例中,当由摄像头***100监测的视场中的音频触发时,传感器164可以生成(断言)信号SENS。在又一个示例中,传感器164可以被配置为:提供关于在视场中检测到的运动和/或声音的方向信息。方向信息也可以经由信号SENS传送到处理器/SoC 102。
HID 166可以实现输入设备。例如,HID 166可以被配置为:接收人类输入。在一个示例中,HID 166可以被配置为:接收来自用户的密码输入。在一些实施例中,摄像头***100可以包括键盘、触摸板(或屏幕)、门铃开关和/或其他人机接口设备(HID)166。在示例中,传感器164可以被配置为:确定对象何时接近HID 166。在摄像头***100被实现为访问控制应用的一部分的示例中,可以开启捕获设备104以提供图像以用于识别尝试访问的人,并且可以打开锁定区域和/或针对访问触摸板166的照明。例如,来自HID 166的输入(例如,密码或PIN码)的组合可以与由处理器102执行的活性判断和/或深度分析相结合以实现双因素认证。
处理器/SoC 102可以接收信号VIDEO和信号SENS。处理器/SoC 102可以基于信号VIDEO、信号SENS和/或其他输入来生成一个或多个视频输出信号(例如,VIDOUT)、一个或多个控制信号(例如,CTRL)和/或一个或多个深度数据信号(例如,DIMAGES)。在一些实施例中,信号VIDOUT、DIMAGES和CTRL可以基于对信号VIDEO和/或在信号VIDEO中检测到的对象的分析来生成。
在各种实施例中,处理器/SoC 102可以被配置为执行以下各项中的一项或多项:特征提取、对象检测、对象跟踪、3D重构以及对象识别。例如,处理器/SoC 102可以通过分析来自信号VIDEO的帧并且将该帧与先前的帧进行比较来确定运动信息和/或深度信息。比较可以用于执行数字运动估计。在一些实施例中,处理器/SoC 102可以被配置为:从信号VIDEO生成包括视频数据的视频输出信号VIDOUT和/或包括视差图和深度图的深度数据信号DIMAGES。视频输出信号VIDOUT和/或深度数据信号DIMAGES可以呈现给存储器150、通信模块154和/或无线接口156。在一些实施例中,视频信号VIDOUT和/或深度数据信号DIMAGES可以由处理器102内部使用(例如,不呈现为输出)。
信号VIDOUT可以被呈现给通信设备156。在一些实施例中,信号VIDOUT可以包括由处理器102生成的编码的视频帧。在一些实施例中,编码的视频帧可以包括完整的视频流(例如,表示由捕获设备104捕获的所有视频的编码的视频帧)。编码的视频帧可以是从信号VIDEO接收的像素数据的编码、裁剪、拼接和/或增强版本。在示例中,编码的视频帧可以是信号VIDEO的高分辨率、数字、编码、去扭曲、稳定、裁剪、混合、拼接和/或滚动快门效果校正版本。
在一些实施例中,信号VIDOUT可以基于由处理器102对生成的视频帧执行的视频分析(例如,计算机视觉操作)来生成。处理器102可以被配置为:执行计算机视觉操作以检测视频帧中的对象和/或事件,然后将检测到的对象和/或事件转换为统计数据和/或参数。在一个示例中,由计算机视觉操作确定的数据可以由处理器102转换为人类可读格式。来自计算机视觉操作的数据可用于检测对象和/或事件。计算机视觉操作可由处理器102本地执行(例如,无需与外部设备通信以卸载计算操作)。例如,本地执行的计算机视觉操作可以使计算机视觉操作能够由处理器102执行并且避免在后端服务器上运行的繁重的视频处理。避免在后端(例如,远程定位)服务器上运行视频处理可以保护隐私。
在一些实施例中,信号VIDOUT可以是由处理器102生成的数据(例如,视频分析结果、音频/语音分析结果等),该数据可以传送到云计算服务以便聚合信息和/或为机器学习提供训练数据(例如,以改进对象检测、改进音频检测等)。在一些实施例中,信号VIDOUT可以被提供给用于大容量存储的云服务(例如,以使用户能够使用智能电话和/或桌面式计算机取回编码的视频)。在一些实施例中,信号VIDOUT可以包括从视频帧中提取的数据(例如,计算机视觉的结果),并且可以将结果传送到另一个设备(例如,远程服务器、云计算***等)以将结果的分析卸载到另一个设备(例如,将对结果的分析卸载到云计算服务,而不是在本地执行所有分析)。由信号VIDOUT传送的信息类型可以根据特定实现的设计标准而变化。
信号CTRL可以被配置为:提供控制信号。信号CTRL可以响应于由处理器102做出的决定而产生。在示例中,可以响应于检测到的对象和/或从视频帧中提取的特征来生成信号CTRL。信号CTRL可以被配置为启用、禁用、改变另一设备的操作模式。在一个示例中,可以响应于信号CTRL来锁定/解锁由电子锁控制的门。在另一示例中,设备可以响应于信号CTRL而被设置为睡眠模式(例如,低功率模式)和/或从睡眠模式被激活。在又一示例中,可以响应于信号CTRL而产生警报和/或通知。由信号CTRL控制的设备的类型和/或由设备响应于信号CTRL而执行的反应可以根据特定实现的设计标准而变化。
信号CTRL可以基于由传感器164接收的数据(例如,温度读数、运动传感器读数等)而生成。信号CTRL可以基于来自HID 166的输入而产生。信号CTRL可以基于由处理器102在视频帧中检测到的人的行为来生成。信号CTRL可以基于检测到的对象的类型(例如,人、动物、车辆等)生成。可以响应于在特定位置检测到特定类型的对象来生成信号CTRL。处理器102可以被配置为:响应于传感器融合操作(例如,对从不同源接收的信息进行聚合)来生成信号CTRL。用于生成信号CTRL的条件可以根据特定实现的设计标准而变化。
信号DIMAGES可以包括由处理器102生成的深度图和/或视差图中的一个或多个。可以响应于对单目单通道图像执行的3D重构来生成信号DIMAGES。可以响应于对捕获的视频数据和结构光图案SLP的分析来生成信号DIMAGES。
可以实现用于基于运动传感器164的输出和/或摄像头***100的任何其他功耗特征来激活和/或禁用捕获设备104的多步骤方式以降低摄像头***100的功耗并延长电池152的使用寿命。传感器164中的运动传感器可以在电池152上具有低消耗(例如,小于10W)。在示例中,传感器164的运动传感器可以被配置为:保持开启(例如,始终活动),除非响应于来自处理器/SoC 102的反馈被禁用。由处理器/SoC 102执行的视频分析可能对电池152具有相对较大的消耗(例如,大于运动传感器164)。在示例中,处理器/SoC 102可以处于低功率状态(或断电),直到由传感器164的运动传感器检测到一些运动。
摄像头***100可以被配置为:使用各种电源状态来进行操作。例如,在断电状态(例如,睡眠状态、低功率状态)中,传感器164和处理器/SoC 102的运动传感器可以开启,并且摄像头***100的其他组件(例如,图像捕获设备104、存储器150、通信模块154等)可以关闭。在另一示例中,摄像头***100可以在中间状态下操作。在中间状态下,图像捕获设备104可以开启,并且存储器150和/或通信模块154可以关闭。在又一示例中,摄像头***100可以在通电(或高功率)状态下操作。在通电状态下,传感器164、处理器/SoC 102、捕获设备104、存储器150和/或通信模块154可以开启。摄像头***100可以在断电状态下消耗来自电池152的一些电力(例如,相对小的和/或最小量的电力)。在通电状态下,摄像头***100可以消耗来自电池152的更多电力。电源状态的数量和/或摄像头***100的在摄像头***100在每个电源状态中操作时开启的组件的数量可以根据特定实现的设计标准而变化。
在一些实施例中,摄像头***100可以被实现为片上***(SoC)。例如,摄像头***100可以被实现为包括一个或多个组件的印刷电路板。摄像头***100可以被配置为:对视频的视频帧执行智能视频分析。摄像头***100可以被配置为:对视频进行裁剪和/或增强。
在一些实施例中,视频帧可以是由捕获设备104捕获的某个视图(或某个视图的派生)。像素数据信号可由处理器102增强(例如,颜色转换、噪声过滤、自动曝光、自动白平衡、自动对焦等)。在一些实施例中,视频帧可以提供一系列经裁剪和/或增强的视频帧,这些视频帧改进了从摄像头***100的角度来看的视图(例如,提供夜视、提供高动态范围(HDR)成像、提供更多查看区域、突出显示检测到的对象、提供附加数据(例如到检测到的对象的数字距离)等等),以使处理器102能够比人用人类视觉所能看到的更好地看到位置。
编码的视频帧可以在本地进行处理。在一个示例中,经编码的视频可以由存储器150本地存储以使处理器102能够在内部促进计算机视觉分析(例如,无需首先将视频帧上传到云服务)。处理器102可以被配置为:选择视频帧以被封装为可以通过网络(例如,带宽受限网络)发送的视频流。
在一些实施例中,处理器102可以被配置为执行传感器融合操作。由处理器102执行的传感器融合操作可以被配置为:对来自多个源(例如,捕获设备104、传感器164和HID166)的信息进行分析。通过对来自不同来源的各种数据进行分析,传感器融合操作可能能够做出关于数据的推断,而这可能无法仅从数据源之一进行推断。例如,由处理器102实现的传感器融合操作可以对视频数据(例如,人的嘴部运动)以及来自定向音频的语音模式进行分析。不同的来源可用于开发场景模型以支持决策制定。例如,处理器102可以被配置为:将检测到的语音模式的同步与视频帧中的嘴部运动进行比较以确定视频帧中的哪个人正在说话。传感器融合操作还可以提供正在接收的数据当中的时间相关性、空间相关性和/或可靠性。
在一些实施例中,处理器102可以实现卷积神经网络能力。卷积神经网络功能力可以使用深度学习技术来实现计算机视觉。卷积神经网络能力可以被配置为:使用通过多层特征检测的训练过程来实现模式和/或图像识别。计算机视觉和/或卷积神经网络能力可由处理器102在本地执行。在一些实施例中,处理器102可以从外部源接收训练数据和/或特征集信息。例如,外部设备(例如,云服务)可以访问各种数据源以用作摄像头***100可能无法获得的训练数据。然而,使用特征集执行的计算机视觉操作可以使用摄像头***100内的处理器102的计算资源来执行。
处理器102的视频管线可以被配置为:在本地执行去扭曲、裁剪、增强、卷帘式快门校正、稳定、缩小、打包、压缩、转换、混合、同步和/或其他视频操作。处理器102的视频管线可以启用多流支持(例如,并行生成多个比特流,每个比特流包括不同的比特率)。在示例中,处理器102的视频管线可以实现具有320M像素/秒输入像素速率的图像信号处理器(ISP)。处理器102的视频管线的架构可以使得能够实时和/或接近实时地对高分辨率视频和/或高比特率视频数据执行视频操作。处理器102的视频管线可以实现对4K分辨率视频数据的计算机视觉处理、立体视觉处理、对象检测、3D降噪、鱼眼镜头校正(例如,实时360度去扭曲和镜头畸变校正)、过采样和/或高动态范围处理。在一个示例中,视频管线的架构可以实现具有以双实时速度(例如,60fps)的H.264编码的4K超高分辨率、具有以30fps的H.265/HEVC和/或4K AVC编码(例如,支持多流的4KP30 AVC和HEVC编码)的4K超高分辨率。视频操作的类型和/或由处理器102对其操作的视频数据的类型可以根据特定实现的设计标准而变化。
摄像头传感器180可以实现高分辨率传感器。使用高分辨率传感器180,处理器102可以将图像传感器180的过采样与经裁剪区域内的数字缩放相结合。过采样和数字缩放中的每个均可以是由处理器102执行的视频操作之一。可以实现过采样和数字缩放以在经裁剪区域的总尺寸限制内提供更高分辨率的图像。
在一些实施例中,镜头160可以实现鱼眼镜头。由处理器102实现的视频操作之一可以是去扭曲操作。处理器102可以被配置为:对生成的视频帧进行去扭曲。去扭曲可以被配置为:减少和/或去除由鱼眼镜头和/或其他镜头特性引起的严重失真。例如,去扭曲可以减少和/或消除凸出效应以提供直线式图像。
处理器102可以被配置为:从完整视频帧中裁剪(例如,修剪为)感兴趣区域(例如,生成感兴趣区域视频帧)。处理器102可以生成视频帧并选择区域。在示例中,对感兴趣区域进行裁剪可以生成第二图像。经裁剪的图像(例如,感兴趣区域视频帧)可以小于原始视频帧(例如,经裁剪图像可以是所捕获视频的一部分)。
可以基于音频源的位置动态地调整感兴趣区域。例如,检测到的音频源可能正在移动,并且检测到的音频源的位置可能随着视频帧的捕获而移动。处理器102可以更新所选择的感兴趣区域坐标并且动态地更新经裁剪的部分(例如,实现为传感器164中的一个或多个传感器的定向麦克风可以基于捕获的定向音频动态地更新位置)。经裁剪部分可以对应于所选择的感兴趣区域。随着感兴趣区域的变化,经裁剪部分可能会发生变化。例如,感兴趣区域的所选择的坐标可以逐帧改变,并且处理器102可以被配置为在每一帧中对所选择区域进行裁剪。
处理器102可以被配置为:对图像传感器180进行过采样。图像传感器180的过采样可以产生更高分辨率的图像。处理器102可以被配置为:以数字方式放大视频帧的区域。例如,处理器102可以以数字方式放大感兴趣的经裁剪区域。例如,处理器102可以基于定向音频来建立感兴趣区域、对感兴趣区域进行裁剪,并且然后以数字方式放大经裁剪的感兴趣区域视频帧。
由处理器102执行的去扭曲操作可以调整视频数据的视觉内容。由处理器102执行的调整可以使视觉内容看起来自然(例如,看起来就像由观看与捕获设备104的视场相对应的位置的人所看到的那样)。在示例中,去扭曲可以改变视频数据以生成直线式视频帧(例如,校正由镜头160的镜头特性引起的伪影)。可以实现去扭曲操作以校正由镜头160引起的失真。可以生成经调整的视觉内容以实现更准确和/或可靠的对象检测。
各种特征(例如,去扭曲、数字缩放、裁剪等)可以在处理器102中实现为硬件模块。实现硬件模块可以增加处理器102的视频处理速度(例如,比软件实现更快)。硬件实现可以使视频能够被处理同时减少延迟量。所使用的硬件组件可以根据特定实现的设计标准而变化。
处理器102被示为包括多个块(或电路)190a-190n。块190a-190n可以实现由处理器102实现的各种硬件模块。硬件模块190a-190n可以被配置为:提供各种硬件组件来实现视频处理管线。电路190a-190n可以被配置为:接收像素数据VIDEO,从像素数据生成视频帧,对视频帧执行各种操作(例如,去扭曲、卷帘式快门校正、裁剪、放大、图像稳定、3D重构等),准备视频帧以用于与外部硬件通信(例如,编码、封装、色彩校正等),对特征集进行解析,实现针对计算机视觉的各种操作(例如,对象检测、分割、分类等)等。硬件模块190a-190n可以被配置为:实现各种安全特征(例如,安全引导、I/O虚拟化等)。处理器102的各种实现可能不一定利用硬件模块190a-190n的所有特征。硬件模块190a-190n的特征和/或功能可以根据特定实现的设计标准而变化。硬件模块190a-190n的细节可以结合于2020年4月16日递交的美国专利申请No.16/831,549、于2019年2月28日递交的美国专利申请No.16/288,922、于2017年5月12日递交的美国专利申请15/593,493(现为美国专利No.10,437,600)、于2020年5月14日递交的美国专利申请No.15/931,942、于2020年8月12日递交的美国专利申请No.16/991,344来描述,上述各申请的适当部分通过引用的方式整体并入本文。
硬件模块190a-190n可以实现为专用硬件模块。与软件实现相比,使用专用硬件模块190a-190n实现处理器102的各种功能可以使处理器102能够被高度优化和/或定制以限制功耗、减少热量产生和/或提高处理速度。硬件模块190a-190n可以是可定制的和/或可编程的以实现多种类型的操作。实现专用硬件模块190a-190n可以使用于执行每种类型计算的硬件能够针对速度和/或效率进行优化。例如,硬件模块190a-190n可以实现在计算机视觉操作中经常使用的多个相对简单的操作,这些操作一起可以使得计算机视觉操作能够被实时执行。视频管线可以被配置为:识别对象。可以通过对数字和/或符号信息进行解释以确定视觉数据代表特定类型的对象和/或特征来识别对象。例如,视频数据的像素数量和/或像素颜色可用于将视频数据的一些部分识别为对象。硬件模块190a-190n可使计算密集型操作(例如,计算机视觉操作、视频编码、视频转码、3D重构等)能够由摄像头***100在本地执行。
硬件模块190a-190n中的一个(例如,190a)可以实现调度器电路。调度器电路190a可以被配置为:存储有向无环图(DAG)。在示例中,调度器电路190a可以被配置为:响应于接收到(例如,加载)的特征集信息来生成和存储有向无环图。有向无环图可以定义要执行以用于从视频帧中提取数据的视频操作。例如,有向无环图可以定义各种数学加权(例如,神经网络权重和/或偏置)以便在执行计算机视觉操作时应用以将各种像素组分类为特定对象。
调度器电路190a可以被配置为:对无环图进行解析以生成各种操作符。操作符可以由其他硬件模块190a-190n中的一个或多个硬件模块中的调度器电路190a调度。例如,硬件模块190a-190n中的一个或多个硬件模块可以实现被配置为执行特定任务的硬件引擎(例如,被设计为执行重复用于执行计算机视觉操作的特定数学操作的硬件引擎)。调度器电路190a可以基于操作符何时准备好被硬件引擎190a-190n处理来调度操作符。
调度器电路190a可以基于硬件模块190a-190n执行工作的可用性将任务时间复用到硬件模块190a-190n。调度器电路190a可将有向无环图解析为一个或多个数据流。每个数据流可以包括一个或多个操作符。一旦有向无环图被解析,调度器电路190a就可以将数据流/操作符分配给硬件引擎190a-190n,并发送相关操作符配置信息以启动操作符。
每个有向无环图二进制表示可以是有向无环图的有序遍历,其中描述符和操作符基于数据相关***织。描述符通常提供寄存器,该寄存器将数据缓冲器链接到相关操作符中的特定操作数。在各种实施例中,操作符可能不会出现在有向无环图表示中,直到针对操作数声明所有相关描述符之后。
硬件模块190a-190n(例如,190b)中的一个硬件模块可以实现卷积神经网络(CNN)模块。CNN模块190b可以被配置为:对视频帧执行计算机视觉操作。CNN模块190b可以被配置为:通过多层特征检测来实现对对象的识别。CNN模块190b可以被配置为:基于执行的特征检测来计算描述符。描述符可以使处理器102能够确定视频帧的像素对应于特定对象(例如,车辆的特定品牌/型号/年份、将人识别为特定个体、检测动物类型等)的可能性。
CNN模块190b可以被配置为:实现卷积神经网络能力。CNN模块190b可以被配置为:使用深度学习技术来实现计算机视觉。CNN模块190b可以被配置为:使用通过多层特征检测的训练过程来实现模式和/或图像识别。CNN模块190b可以被配置为:针对机器学习模型进行推断。
CNN模块190b可以被配置为:仅在硬件中执行特征提取和/或匹配。特征点通常代表视频帧中感兴趣的区域(例如,角、边等)。通过在时间上跟踪特征点,可以生成捕获平台的自我运动的估计或场景中观察对象的运动模型。为了跟踪特征点,匹配操作通常由硬件合并在CNN模块190b中,以找到参考视频帧和目标视频帧中的特征点之间最可能的对应关系。在匹配参考特征点和目标特征点对的过程中,每个特征点可以由描述符(例如,图像补丁、SIFT、BRIEF、ORB、FREAK等)表示。使用专用硬件电路实现CNN模块190b可以实现实时计算描述符匹配距离。
CNN模块190b可以被配置为执行面部检测、面部识别和/或活体判断。例如,面部检测、面部识别和/或活体判断可以基于由CNN模块190b实现的经训练的神经网络来执行。在一些实施例中,CNN模块190b可以被配置为:从结构光图案生成深度图像。CNN模块190b可以被配置为:执行各种检测和/或识别操作和/或执行3D识别操作。
CNN模块190b可以是被配置为执行视频帧的特征检测的专用硬件模块。由CNN模块190b检测到的特征可用于计算描述符。CNN模块190b可以响应于描述符来确定视频帧中的像素属于特定对象和/或一些对象的可能性。例如,使用描述符,CNN模块190b可以确定像素与特定对象(例如,人、一件家具、宠物、车辆等)和/或对象的特性(例如,眼睛的形状、面部特征之间的距离、车辆引擎盖、身体部位、车辆牌照、面部、人穿的衣服等)相对应的概率。将CNN模块190b实现为处理器102的专用硬件模块可以使装置100能够在本地(例如,片上)执行计算机视觉操作,而无需依赖远程设备的处理能力(例如,将数据传送到云计算服务)。
由CNN模块190b执行的计算机视觉操作可以被配置为:对视频帧执行特征检测以生成描述符。CNN模块190b可以执行对象检测以确定视频帧中的具有匹配特定对象的高可能性的区域。在一个示例中,要进行匹配的对象的类型(例如,参考对象)可以使用开放操作数栈来定制(使处理器102的可编程性能够实现由有向无环图定义的各种人工神经网络,每个有向无环图提供用于执行各种类型的对象检测的指令)。CNN模块190b可以被配置为:对具有匹配特定对象的高可能性的区域执行局部掩蔽以检测对象。
在一些实施例中,CNN模块190b可以确定检测到的对象的各种特征(例如,特性)的位置(例如,3D坐标和/或位置坐标)。在一个示例中,可以使用3D坐标来确定人的手臂、腿、胸部和/或眼睛的位置。可以存储身体部位在3D空间中的垂直位置的第一轴上的一个位置坐标以及身体部位在3D空间中的水平位置的第二轴上的另一个坐标。在一些实施例中,距镜头160的距离可以表示3D空间中身体部位的深度位置的一个坐标(例如,第三轴上的位置坐标)。使用各种身体部位在3D空间中的位置,处理器102可以确定检测到的人的身***置和/或身体特性。
可以对CNN模块190b进行预训练(例如,被配置为基于被接收以训练CNN模块190b的训练数据来执行计算机视觉以检测对象)。例如,训练数据的结果(例如,机器学习模型)可以被预编程和/或加载到处理器102中。CNN模块190b可以对机器学习模型进行推断(例如,以执行对象检测)。训练可以包括确定神经网络模型的每一层的权重值。例如,可以针对特征提取(例如卷积层)和/或针对分类(例如全连接层)的每个层确定权重值。由CNN模块190b所学习到的权重值可以根据特定实现的设计标准而变化。
CNN模块190b可以通过执行卷积操作来实现特征提取和/或对象检测。卷积操作可以是硬件加速的,以用于可以在消耗低功率的同时执行的快速(例如,实时)计算。在一些实施例中,由CNN模块190b执行的卷积操作可被用于执行计算机视觉操作。在一些实施例中,由CNN模块190b执行的卷积操作可被用于由处理器102执行的可能涉及计算卷积操作的任何功能(例如,3D重构)。
卷积操作可以包括:在执行计算(例如,矩阵操作)的同时沿层滑动特征检测窗口。特征检测窗口可以对像素应用滤波器和/或提取与每一层相关联的特征。特征检测窗口可以被应用于一个像素和多个周围像素。在示例中,这些层可以被表示为:表示这些层中的一个层的像素和/或特征的值的矩阵,并且由特征检测窗口应用的滤波器可以被表示为矩阵。卷积操作可以在由特征检测窗口覆盖的当前层的区域之间应用矩阵乘法。卷积操作可以沿层的区域滑动特征检测窗口以生成表示每个区域的结果。区域的大小、应用滤波器的操作类型和/或层数可以根据特定实现的设计标准而变化。
使用卷积操作,CNN模块190b可以在每个提取步骤中计算输入图像的像素的多个特征。例如,每一层都可以从位于前一层(例如,局部接收域)的小邻域(例如,区域)中的一组特征接收输入。卷积操作可以提取基本的视觉特征(例如,定向边缘、端点、角等),然后由更高层对这些基本的视觉特征进行组合。由于特征提取窗口对像素及其附近的像素(或子像素)进行操作,因此操作的结果可能具有位置不变性。这些层可以包括卷积层、池化层、非线性层和/或全连接层。在示例中,卷积操作可以学习从原始像素(例如,第一层)检测边缘,然后使用来自前一层的特征(例如,检测到的边缘)来检测下一层中的形状,并且然后使用这些形状来检测更高层中的更高级别特征(例如,面部特征、宠物、车辆、车辆部件、家具等),并且最后一层可能是使用更高级别特征的分类器。
CNN模块190b可以执行针对特征提取和匹配的数据流,包括两阶段检测,变形操作符,操纵分量列表的分量操作符(例如,分量可以是共享公共属性的向量的区域并且可以与边界框组合在一起),矩阵求逆操作符,点积操作符,卷积操作符,条件操作符(例如,复用和解复用),重映射操作符,最小-最大-约简操作符,池化操作符,非最小、非最大抑制操作符,基于扫描窗口的非最大抑制操作符,聚集操作符,分散操作符,统计操作符,分类操作符,积分图像操作符,比较操作符,索引操作符,模式匹配操作符,特征提取操作符,特征检测操作符,两阶段对象检测操作符,得分生成操作符,块减少操作符,以及上采样操作符。由CNN模块190b执行的用于从训练数据提取特征的操作类型可以根据特定实现的设计标准而变化。
硬件模块190a-190n中的每一个可以实现处理资源(或硬件资源或硬件引擎)。硬件引擎190a-190n可以用于执行特定的处理任务。在一些配置中,硬件引擎190a-190n可以并行并且彼此独立地操作。在其他配置中,硬件引擎190a-190n可以在彼此之间共同操作以执行分配的任务。硬件引擎190a-190n中的一个或多个硬件引擎可以是同构处理资源(所有电路190a-190n可以具有相同能力)或异构处理资源(两个或更多个电路190a-190n可以具有不同能力)。
参考图4,示出了说明实现被配置为执行3D重构的卷积神经网络的摄像头***的处理电路的图。在示例中,摄像头***100的处理电路可以被配置用于各种应用,这些应用包括但不限于:自主和半自主车辆(例如,汽车、卡车、摩托车、农业机械、无人机、飞机等)、制造、和/或安全和监视***。与通用计算机相比,摄像头***100的处理电路通常包括硬件电路,该硬件电路被优化以在最小面积并利用最小功耗来提供高性能图像处理和计算机视觉管线。在示例中,用于执行针对计算机(或机器)视觉的图像处理、特征检测/提取、3D重构和/或对象检测/分类的各种操作可以使用被设计成降低计算复杂度和有效使用资源的硬件模块来实现。
在示例实施例中,处理电路100可以包括处理器102、存储器150、通用处理器158和/或存储器总线200。通用处理器158可以实现第一处理器。处理器102可以实现第二处理器。在示例中,电路102可以实现计算机视觉处理器。在示例中,处理器102可以是智能视觉处理器。存储器150可以实现外部存储器(例如,电路158和102外部的存储器)。在示例中,电路150可以被实现为动态随机存取存储器(DRAM)电路。摄像头***100的处理电路可以包括其他组件(未示出)。摄像头***100的处理电路的组件的数量、类型和/或布置可以根据特定实现的设计标准而变化。
通用处理器158可以操作用于与电路102和电路150交互以执行各种处理任务。在示例中,处理器158可以被配置为电路102的控制器。处理器158可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可由电路150存储。在一些实施例中,计算机可读指令可以包括控制器操作。处理器158可以被配置为与电路102通信和/或访问由电路102的组件产生的结果。在示例中,处理器158可以被配置为:利用电路102来执行与一个或多个神经网络模型相关联的操作。
在示例中,处理器102通常包括调度器电路190a、块(或电路)202、一个或多个块(或电路)204a-204n、块(或电路)206以及路径208。块202可以实现有向无环图(DAG)存储器。DAG存储器202可以包括CNN模块190b和/或权重/偏置值210。块204a-204n可以实现硬件资源(或引擎)。块206可以实现共享存储器电路。在示例实施例中,电路204a-204n中的一个或多个电路可以包括块(或电路)212a-212n。在所示示例中,电路212a和电路212b被实现为相应硬件引擎204a-204b中的代表性示例。电路202、电路204a-204n和/或电路206中的一个或多个电路可以是与图3相关联地示出的硬件模块190a-190n的示例实现。
在示例中,处理器158可以被配置为:利用一个或多个经预训练的人工神经网络模型(ANN)对电路102进行编程,人工神经网络模型包括具有根据本发明的实施例的多个输出帧的卷积神经网络(CNN)190b以及由CNN模块190b使用的权重/内核(WGTS)210。在各种实施例中,CNN模块190b可以被配置(训练)用于在边缘设备中操作。在示例中,摄像头***100的处理电路可以耦合至被配置为生成数据输入的传感器(例如,视频摄像头等)。摄像头***100的处理电路可以被配置为:基于通过使用权重/内核(WGTS)210执行经预训练的CNN模块190b做出的一个或多个推断,响应于来自传感器的数据输入生成一个或多个输出。由处理器158执行的操作可以根据特定实现的设计标准而变化。
在各种实施例中,电路150可以实现动态随机存取存储器(DRAM)电路。电路150通常可操作用于存储输入数据元素和各种形式的输出数据元素的多维阵列。电路150可以与处理器158和处理器102交换输入数据元素和输出数据元素。
处理器102可以实现计算机视觉处理器电路。在示例中,处理器102可以被配置为:实现用于计算机视觉的各种功能。处理器102通常可操作用于执行由处理器158布置的特定处理任务。在各种实施例中,处理器102的全部或部分可以单独以硬件实现。处理器102可以直接执行涉及CNN模块190b的执行并且由指定处理(例如,计算机视觉、3D重构等)任务的软件(例如,有向无环图等)生成的数据流。在一些实施例中,处理器102可以是由摄像头***100的处理电路实现并被配置为一起操作的众多计算机视觉处理器的代表性示例。
在示例中,电路212a可以实现卷积操作。在另一个示例中,电路212b可以被配置为提供点积操作。卷积和点积操作可用于执行计算机(或机器)视觉任务(例如,作为对象检测过程的一部分等)。在又一示例中,电路204c-204n中的一个或多个电路可以包括用于提供多维的卷积计算的块(或电路)212c-212n(未示出)。在又一示例中,电路204a-204n中的一个或多个电路可以被配置为执行3D重构任务。
在示例中,电路102可以被配置为从处理器158接收有向无环图(DAG)。从处理器158接收的DAG可以存储在DAG存储器202中。电路102可以被配置为:使用电路190a、204a-204n和206执行针对CNN模块190b的DAG。
可以在电路190a和相应的电路204a-204n之间交换多个信号(例如,OP_A-OP_N)。信号OP_A-OP_N中的每个信号可以传达执行操作信息和/或让步操作信息。多个信号(例如,MEM_A-MEM_N)可以在各个电路204a-204n和电路206之间交换。信号MEM_A-MEM_N可以携带数据。信号(例如,DRAM)可以在电路150和电路206之间交换。信号DRAM可以在电路150和190a之间(例如,在传输路径208上)传输数据。
电路190a可以实现调度器电路。调度器电路190a通常可操作用于在电路204a-204n当中调度任务以执行由处理器158定义的各种计算机视觉相关任务。单独的任务可以由调度器电路190a分配给电路204a-204n。调度器电路190a可以响应于对由处理器158提供的有向无环图(DAG)进行解析来分配各个任务。调度器电路190a可以基于电路204a-204n用于执行工作的可用性将任务时间复用到电路204a-204n。
每个电路204a-204n可以实现处理资源(或硬件引擎)。硬件引擎204a-204n通常可操作用于执行特定处理任务。硬件引擎204a-204n可以被实现为包括专用硬件电路,该硬件电路在执行特定处理任务的同时针对高性能和低功耗进行优化。在一些配置中,硬件引擎204a-204n可以并行并且彼此独立地操作。在其他配置中,硬件引擎204a-204n可以在彼此之间共同操作以执行分配的任务。
硬件引擎204a-204n可以是同构处理资源(例如,所有电路204a-204n可以具有相同的能力)或异构处理资源(例如,两个或更多个电路204a-204n可以具有不同的能力)。硬件引擎204a-204n通常被配置为执行操作符,这些操作符可以包括但不限于重采样操作符,变形操作符,操纵分量列表的分量操作符(例如,分量可以是共享公共属性的向量区域并且可以与边界框被分组在一起),矩阵求逆操作符,点积操作符,卷积操作符,条件操作符(例如,复用和解复用),重映射操作符,最小-最大-约简操作符,池化操作符,非最小、非最大抑制操作符,聚集操作符,分散操作符,统计操作符,分类操作符,积分图像操作符,上采样操作符,以及两个下采样操作符的幂,等等。
在各个实施例中,硬件引擎204a-204n可以单独实现为硬件电路。在一些实施例中,硬件引擎204a-204n可以被实现为通用引擎,其可以通过电路定制和/或软件/固件被配置为作为专用机器(或引擎)操作。在一些实施例中,硬件引擎204a-204n可以替代地被实现为在处理器158和/或一个或多个处理器102上执行的程序代码的一个或多个实例或线程,这些处理器包括但不限于向量处理器、中央处理单元(CPU)、数字信号处理器(DSP)或图形处理单元(GPU)。在一些实施例中,可以由调度器190a为特定进程和/或线程选择硬件引擎204a-204n中的一个或多个。调度器190a可以被配置为:响应于对存储在DAG存储器202中的有向无环图进行解析,将硬件引擎204a-204n分配给特定任务。
电路206可以实现共享存储器电路。共享存储器206可以被配置为:响应于输入请求来存储数据和/或响应于输出请求(例如,来自处理器158、DRAM150、调度器电路190a和/或硬件引擎204a-204n的请求)来呈现数据。在示例中,共享存储器电路206可以实现用于计算机视觉处理器102的片上存储器。共享存储器206通常可操作用于存储由硬件引擎204a-204n生成和/或利用的输入数据元素和输出数据元素的多维阵列(或向量)的全部或部分。输入数据元素可以经由存储器总线200从DRAM电路150传输到共享存储器206。输出数据元素可以经由存储器总线200从共享存储器206发送到DRAM电路150。
路径208可以实现处理器102内部的传输路径。传输路径208通常可操作用于将数据从调度器电路190a移动到共享存储器206。传输路径208也可以可操作用于将数据从共享存储器206移动到调度器电路190a。
处理器158被示为与计算机视觉处理器102通信。处理器158可以被配置为计算机视觉处理器102的控制器。在一些实施例中,处理器158可以被配置为:向调度器190a传输指令。例如,处理器158可以经由DAG存储器202向调度器190a提供一个或多个有向无环图。调度器190a可以响应于对有向无环图进行解析来初始化和/或配置硬件引擎204a-204n。在一些实施例中,处理器158可以从调度器190a接收状态信息。例如,调度器190a可以向处理器158提供来自硬件引擎204a-204n的输出的状态信息和/或准备状态,以使处理器158能够确定要执行的一个或多个下一指令和/或要做出的决定。在一些实施例中,处理器158可以被配置为:与共享存储器206通信(例如,直接或通过调度器190a,调度器190a经由路径208从共享存储器206接收数据)。处理器158可以被配置为:从共享存储器206取回信息以做出决定。由处理器158响应于来自计算机视觉处理器102的信息而执行的指令可以根据特定实现的设计标准而变化。
参考图5,示出了说明使用由处理器实现的神经网络执行的部分块求和的视频帧的预处理的图。示出了可视化300。可视化300可以表示使用由处理器102实现的神经网络执行的操作的示例。可视化300可以说明使用由边缘设备100本地实现的卷积技术执行以生成卷积结果的部分块求和和平均操作。
部分块求和(例如,面积求和)和求平均操作的可视化300中所示的操作可以利用CNN模块190b来执行。可视化300可以表示用于执行视频帧和/或参考帧的预处理的多个操作。在一示例中,部分块求和以及求平均操作可由硬件引擎204a-204n中的一个或多个来实现。部分块求和以及求平均操作可以使用附加组件(未示出)来实现。
CNN模块190b可以接收信号VIDEO。信号VIDEO可以包括具有结构光图案的单通道图像(例如,由摄像头***100捕获的新传入视频帧)。在一个示例中,信号VIDEO可以包括参考图像(例如,离线地执行预处理)。参考图像可以用作深度数据的基线,在已知条件下可以使用摄像头***100来计算深度数据。例如,可视化300中执行的操作可以在线实现(例如,对实时捕获的源图像执行的预处理)或离线实现(例如,对参考图像执行的预处理)。可视化300中所示的预处理操作可以提供操作中的一些以用于生成用于由处理器102执行的其他(例如,即将进行的)操作(例如,生成深度图和/或视差图)的数据。
CNN模块190b被示为说明块304、块306和/或块308。块304-308可以说明由CNN模块190b执行以执行部分块求和和/或求平均操作的各种输入、操作和/或输出。在一个示例中,块304-308可以表示由硬件引擎204a-204n执行的计算。例如,硬件引擎204a-204n可以被具体地调整以执行由块304-308描述的和/或与块304-308相关联的各种计算。块304可以表示输入视频图像(例如,输入图像VIDEO,其可以包括源视频帧或参考图像)的部分块求和。块306可以表示求平均块。块308可以表示卷积结果。
处理器102可以被配置为:利用CNN模块190b的处理能力来加速针对部分块求和执行的计算和/或生成卷积结果。在示例中,输入304的部分块总和可以包括9x9的块大小。CNN模块190b可以对收集的原始单通道图像(例如,源图像或参考图像)执行块大小为9x9的部分块求和。CNN模块190b然后可以将部分块求和304除以求平均块306。求平均块306可以具有9x9的块大小并且所有值可以是81。部分块求和304除以求平均块306的结果可以提供块图像的平均值。CNN模块190b可以使用9x9普通卷积(其使用硬件资源204a-204n)来加速计算,而不是在求和之后执行求平均操作。卷积的权重可以是9x9的,标签里面的值中的每一个值对于卷积操作可以分别是81。卷积的步长可以是1(例如,卷积核数据是1/81以得到卷积结果308)。
部分块求和304除以求平均块306的结果可以是卷积结果308。卷积结果308可以是9x9的值。CNN模块190b可以生成输出信号(例如,CONVRES)。信号CONVRES可以包括卷积结果308。虽然可视化300被示为具有信号CONVRES作为输出,但是卷积结果308可以由CNN模块190b在内部使用。可以响应于可以对视频帧执行部分块求和以及平均的CNN模块190b的硬件来生成卷积结果308。
参考图6,示出了说明由处理器实现的神经网络执行的确定偏移值的图。示出了可视化350。可视化350可以表示使用由处理器102实现的神经网络执行的操作的示例。可视化350可以说明生成偏移值。
可以利用CNN模块190b来执行在可视化350中示出的用于生成偏移值的操作。可视化350可以表示用于执行视频帧和/或参考帧的预处理的多个操作。可视化350中所示的预处理操作可以提供操作中的一些以用于生成用于由处理器102执行的其他(例如,即将进行的)操作(例如,生成深度图和/或视差图)的数据。可以使用附加组件(未示出)来确定偏移值。CNN模块190b可以接收信号CONVRES和信号(例如,IDEAL)。信号IDEAL可以包括理想的散斑图像。可视化350可以表示在卷积结果308生成之后由处理器102执行的神经网络操作,如与图5相关联所示。
CNN模块190b被示为说明卷积结果308、块352和/或块354。块308和/或块352-354可以说明由CNN模块190b执行以生成偏移值的各种输入、操作和/或输出。在一个示例中,块308和/或块352-354可以表示由硬件引擎204a-204n执行的计算。例如,可以对硬件引擎204a-204n进行具体地调整以执行由块308和/或块352-354描述和/或与之关联的各种计算。块352可以表示理想(例如,参考)散斑图像(例如,信号IDEAL)。块354可以表示自适应偏移值。
在获得卷积结果308之后,CNN模块190b可以被配置为:将每个结果(在卷积之后)与理想散斑值352进行比较。理想散斑值可以基于结构光投射器106的最大理想投影距离来确定。在示例中,理想散斑值的大小可以通过将结构光图案SLP以最大理想距离(例如,当由结构光投射器106产生结构光SLP时可见结构光SLP的最远的距离和/或结构光源186的理想参数)投影到白墙上来获得。信号IDEAL可以包括使用理想散斑值生成的视频帧。信号IDEAL可以用作包括理想散斑值的参考图像,该理想散斑值可以与单通道源视频帧或参考视频帧(例如,信号VIDEO)进行比较。
CNN模块190b可以被配置为:计算整个散斑(例如,在从信号VIDEO生成的卷积结果308中捕获的散斑图案)与理想散斑图案图像352的每个相对应值之间的差异。CNN模块190b可以建立直方图来计算差异结果。直方图中最多计数点的差异可以用作偏移值354。
偏移值354可以是CNN模块190b的输出。CNN模块190b可以被配置为生成输出信号(例如,OFFSET)。信号OFFSET可以包括偏移值354。虽然可视化350被示为具有信号OFFSET作为输出,但是偏移值354可以由CNN模块190b在内部使用。偏移值354可由CNN模块190b将卷积结果308与理想散斑值352进行比较而产生。
由与图5相关联地示出的可视化300和与图6相关联地示出的可视化350说明的操作可以包括利用硬件加速引擎204a-204n执行以根据源图像和参考图像确定偏移值354的计算。源图像和真实参考图像二者都可以在可视化350中使用以确定偏移值。源图像和真实参考图像二者均可用于确定卷积结果308以与具有理想散斑值(例如,信号IDEAL)的参考图像352进行比较。可以在和真实参考图像与具有理想散斑值的参考图像的比较不同的时间处将源图像与理想散斑值进行比较。
在一个示例中,由可视化300以及可视化350所示的操作可以在***外部(例如,离线)执行。在另一个示例中,由可视化300以及可视化350所示的操作可以在***在线时执行和/或在***中实时执行。例如,可以对源图像进行预处理以在***在线时实时确定偏移值354(例如,摄像头***100的实时操作)。在另一个示例中,可以对参考图像进行预处理以便在***离线时(例如,在离线训练期间)确定偏移值354。操作是在线执行还是离线执行可取决于是否确定了所使用的场景(例如,提前已知特性和/或到各种对象的距离以用作真实参考)。一旦确定了***和场景,也可以确定自适应偏移相位354。然后CNN模块190b可以直接使用9x9卷积核以进行附加操作(将与图7相关联地进行描述)。
参考图7,示出了说明通过由处理器实现的神经网络执行的将视频帧与偏移值进行组合来确定自适应偏移结果的图。示出了可视化400。可视化400可以表示使用由处理器102实现的神经网络执行的操作的示例。可视化400可以说明生成自适应结果。可视化400可以表示用于执行对视频帧和/或参考帧的预处理的多个操作。可视化400中所示的预处理操作可以提供操作中的一些以用于生成用于由处理器102执行的其他(例如,即将进行的)操作(例如,生成深度图和/或视差图)的数据。
可以利用CNN模块190b、块(或电路)402和/或块(或电路)404来执行在可视化400中示出的用于生成自适应结果的操作。块402可以实现二值化模块。块404可以实现四重域模块。在一个示例中,二值化模块402和/或四重域模块404可以由硬件引擎204a-204n中的一个或多个来实现。在另一示例中,二值化模块402和/或四重域模块404可以被实现为处理器102的视频处理管线的一部分。可以使用附加组件(未示出)来确定自适应结果。CNN模块190b可以接收信号VIDEO和信号OFFSET。例如,可视化400可以表示在偏移值354已经生成之后由处理器102执行的神经网络操作,如与图6相关联地所示。
在一些实施例中,可以对源图像执行在可视化400中执行的操作(例如,添加偏移值354)。在一些实施例中,在可视化400中执行的操作可以对真实参考图像执行。在一些实施例中,可以不将自适应偏移值354添加到真实参考图像。例如,可能已经离线准备真实参考图像以确定针对真实参考图像的二值化结果。
CNN模块190b被示为说明了求平均值306、偏移值(或偏置)354、块410和/或块412。块306、块354和/或块410-412可以说明由CNN模块190b执行以生成自适应结果的各种输入、操作和/或输出。在一个示例中,块306、块354和/或块410-412可以表示由硬件引擎204a-204n执行的计算。例如,可以对硬件引擎204a-204n进行具体地调整以执行由块306、块354和/或块410-412描述和/或与之关联的各种计算。块410可以表示源图像(例如,信号VIDEO)。在示例中,块410可以包括源视频数据或参考视频数据(例如,9x9的块大小)的块总和(例如,面积总和)。块412可以表示自适应结果。
在获得偏移值354之后,CNN模块190b可以被配置为确定自适应结果412。CNN模块190b可以实现9x9卷积核以确定自适应结果412。卷积的权重可以是9x9的,并且里面的值可能都是81。可以直接执行卷积操作以获得自适应结果412。
由硬件引擎204a-204n执行的卷积操作可以被配置为:在确定自适应偏移354(例如,如结合图6所示的可视化350)之后将自适应偏移值354添加到源图像410(或真实参考图像)。可以响应于将源图像410除以求平均块306(例如,块大小为9x9,并且所有值可以是81)来确定源图像410的平均结果。偏移值354可以被添加到平均结果。可以使用硬件加速卷积操作来添加偏移值354。自适应偏移相位可以包括在偏移值354中。在示例中,自适应结果412可以包括单通道图像9x9块平均值加上偏移值354。
自适应结果412可以是CNN模块190b的输出。CNN模块190b可以被配置为生成输出信号(例如,ADVRES)。信号ADVRES可以包括自适应结果412。虽然可视化400被示为具有信号ADVRES作为输出,但是自适应结果412可以由CNN模块190b在内部使用。CNN模块190b可以被配置为:响应于执行卷积操作以将偏移值354添加到视频帧(例如,视频帧410的总和)而生成自适应结果412。
信号ADVRES可以被呈现给二值化模块402。二值化模块402可以被配置为:接收信号ADVRES以及信号VIDEO中的单通道输入图像。二值化模块402可以被配置为:执行信号ADVRES中的自适应结果412与信号VIDEO中的单通道输入图像的比较。在一些实施例中,二值化模块402可以被配置为:执行从真实参考图像生成的自适应结果412与真实参考图像的比较。
可以执行由二值化模块402执行的自适应结果412与信号VIDEO中的源图像之间的比较来确定针对源图像的二值化表达式。类似地,可以执行由二值化模块402执行的真实参考图像的自适应结果412与信号VIDEO中的真实参考图像的比较,以确定针对真实参考图像的二值化表达式。可以通过对来自自适应结果412和视频数据的对应点进行分析来执行比较。例如,如果比较结果大于或等于1,则针对二值化表达式的输出可以为0;并且如果比较结果小于1,则针对二值化表达式的输出可以为1。对比较的分析可以形成二值化后的结果。
在所示示例中,二值化模块402可以生成针对输入图像的二值化结果。可以由二值化模块402执行类似的操作以对真实参考图像执行二值化(例如,以形成参考图像的二值化结果)。通常,真实参考图像可能已经离线准备好以能够生成中的真实参考图像的二值化表达式。可以在线或离线确定自适应偏移值354。使用自适应偏移值354,可以确定自适应结果412。然后,使用自适应结果412,可以针对信号VIDEO中的源图像确定二值化表达式。
二值化模块402可以生成信号(例如,BINVID)。信号BINVID可以包括针对源图像的二值化表达式或针对真实参考图像的二值化结果。信号BINVID可以被呈现给四重域模块404。
四重域模块404可以被配置为:从源图像BINVID的二值化结果(或针对真实参考图像的二值化结果)中去除误差点。四重域模块404可以被配置为:实现四重域方法(将与图8相关联地进行描述)。尽管示出了四重域方法,但在一些实施例中,四重域模块404可以被配置为:使用四连接分量标记操作来执行点分离。四重域模块404可以生成信号(例如,ERR)。信号ERR可以包括去除了误差点的源图像的二值化结果。类似地,信号ERR可以包括去除了误差点的中的真实参考图像的二值化结果。
去除误差点可以包括:将误差点拟合为值0而不是值1。在信号ERR生成之后,由CNN模块190b执行的预处理可以完成(例如,针对源图像的二进制数据和针对真实参考图像的二进制数据可能已经确定)。处理器102可以被配置为:利用针对源图像的二进制数据和针对真实参考图像的二进制数据来进行以后的操作。在一个示例中,中的源图像的二进制数据和针对真实参考图像的二进制数据(例如,信号ERR)可以用作匹配操作的输入。匹配操作可用于生成深度图和视差图。可以与图9-图14相关联地描述响应于由CNN模块190b执行的预处理确定的二进制数据而生成深度图和视差图的细节。
参考图8,示出了说明使用由神经网络执行的四重域方法去除的误差点的图。显示了误差点450的可视化。误差点450的可视化可以表示使用由与图7相关联地示出的四重域模块404执行的四重域方法去除的误差点的类型。
在获得二值化结果(例如,对于源图像或真实参考图像)之后,四重域模块404可以接收信号BINVID。信号BINVID可包括源图像或真实参考图像的二值化表达式,真实参考图像可包括大小与原始图像(例如,信号VIDEO)相等的结果。四重域模块404可以被配置为:去除各种误差点。在一个示例中,误差点可以包括孤立点。在另一示例中,误差点可以包括连接点。在又一示例中,误差点可以包括毛刺点。去除的误差点类型可以根据特定实现的设计标准而变化。
可视化450可以包括示例误差点452-456。误差点452-456可以影响深度图像的最终准确度。误差点452-456可以通过四重域方法消除。误差点452可以表示孤立点。误差点454可以表示连接点。误差点456可以表示毛刺点。
孤立点452可以包括点460。点460可以不在其他点附近。点460和其他点之间的、为了被视为孤立点的空间量可以根据特定实现的设计标准而变化。孤立点460可以是可以被去除的误差。在示例中,响应于由四重域方法检测到,孤立点460可以被分配值0。
连接点454可以包括一组点462a-462n、连接点464以及一组点466a-466n。连接点464可以连接到一组点462a-462n和一组点组466a-466n这二者。然而,连接点464可以不是一组点的一部分。连接点464可以是可以被去除的误差。在示例中,响应于被四重域方法检测到,连接点464可以被分配值2。
毛刺点456可以包括一组点468a-468n和毛刺点470。毛刺点470可以与一组点468a-468n中的一个点相邻,但不是一组点的一部分。毛刺点470可以是可以被去除的误差。在示例中,响应于被四重域方法检测到,毛刺点470可以被分配值1。
信号ERR可以包括针对去除了误差点的源图像或真实参考图像的二进制数据(例如,预处理结果)。CNN模块190b可以生成预处理结果。预处理结果可用于由处理器102和/或CNN模块190执行的即将进行的操作。在一个示例中,处理器102可以对预处理结果执行逻辑操作。例如,处理器102可以在针对源图像的二进制数据和针对参考图像的二进制数据之间执行XOR操作。预处理结果可用作输入以生成视差图和/或深度图以用于3D重构。
参考图9,示出了说明示例散斑图像的图。示出了虚线框500。虚线框500可以表示视频帧。视频帧500可以是由捕获设备104捕获的示例输入视频帧。在示例中,视频帧500可以表示由捕获设备104生成并呈现给处理器102的信号VIDEO。视频帧500可以表示散斑图像的示例。视频帧500可以捕获由结构光投射器106生成的结构光图案SLP。
视频帧500可以包括墙壁504和盒子506。盒子506可具有正面508、侧面510和顶部512。盒子506的正面508通常可以面向捕获视频帧500的捕获设备104的方向。例如,正面508可以是盒子506与捕获设备104距离最近的一侧。在所示的示例中,盒子506可以不直接面向捕获设备104。例如,与正面508到捕获设备104的距离相比,侧面510和顶部512可以是距捕获设备104更远的距离。白墙504可以位于比盒子506的正面508、侧面510和/或顶部512更远离捕获设备104的位置。
通常,为了评估深度感测***的准确度,可以使用白墙作为评估场景。墙壁504可以是用于评估场景的白色墙壁。盒子506可以位于白墙504的前面。可以确定白墙504和盒子506的深度和/或视差的准确度。在示例中,准确的深度图和/或视差图可能比不太准确的深度图和/或视差图更能够区分白墙504和/或盒子506的边缘的准确度。
结构光投射器106可以被配置为:在白墙504和盒子506上投影结构光图案SLP。在一个示例中,结构光图案SLP可以实现为包括预定尺寸的点的散斑图案。一般而言,当结构光图案SLP被投影到更靠近捕获设备104的镜头160的物体上时,结构光图案SLP的点可以具有比结构光图案SLP的已经投影到离捕获设备104的镜头160较远的物体上的点更大的尺寸。为了清楚和说明的目的以显示白墙504和盒子506上的散斑图案的差异,中的结构光图案SLP的点的散斑图案仅示出为投影到白墙504和盒子506上。通常,针对结构光图案SLP的点的散斑图案可以投影到整个视频帧500上(例如,地板/地面上、天花板上、白墙504旁边的任何表面上等)。
结构光图案SLP的散斑图案被示为白墙504上的图案514、盒子506的正面508上的图案516、盒子506的顶部512上的图案518,以及盒子506的侧面510上的图案520。图案514的点可以包括小点。图案516的点可以包括大点。图案518的点和图案520的点可以包括中等大小的点。
由于盒子506的正面508可以是最接近镜头160的表面,因此图案516可以包括视频帧500中具有最大尺寸的点。盒子506的侧面510和顶部512可以比正面508更远离镜头160,但比白墙504更靠近镜头160。顶部512上的图案518的点和侧面510上的图案520的点可以小于正面508上的图案516的点。图案518的点或图案520的点中的哪一个更大可以取决于哪个表面(例如,侧面510或顶部512)更靠近镜头160。由于白墙504可以是离镜头160最远的表面,因此图案514可以包括视频帧500中具有最小尺寸的点。
视频帧500中的结构光图案SLP的图案514-520中的点的尺寸可以由处理器102使用来确定视频帧中捕获的各种对象的距离和/或深度。图案514-520中的点的尺寸可以使处理器102能够生成视差图。可以响应于使用单目镜头160捕获的视频帧和对散斑图案514-520执行的分析来生成深度图和/或视差图。
在一个示例中,处理器102可以被配置为:执行480x272 IR通道图以进行自适应二值化。通过用神经网络模块190b实现处理器102的视频管线(例如,使用自适应偏移项和四重域方法),可以在大约74us内执行自适应二值化(例如,其中Net_id:0,Dags:1/1,vp_ticks:911)。在通用处理器(例如,ARM处理器)上运行自适应二值化,针对自适应二值化的生成时间(例如,没有自适应偏移项)可以约为2ms。与使用通用处理器相比,使用用于二值化的硬件模块204a-204n执行的卷积和/或用于孤立点、连接点和毛刺点的4连接域的使用可以提供显著的速度优势。
参考图10,示出了说明在没有添加自适应偏移值的情况下在二值化之后从散斑图像生成的视差图的图。示出了虚线框550。虚线框550可以表示视差图。视差图550可以是由处理器102生成的示例输出(例如,信号DIMAGES)。在所示的示例中,视差图550可以表示在不使用自适应偏移值354的情况下生成的视差图。例如,处理器102可以被配置为:通过使用与图5-图7相关联地描述的神经网络操作300-400(例如,高准确度、高效操作、较低功耗)或不使用与图5-图7相关联地描述的神经网络操作300-400(例如,不太准确、效率较低的操作、更多的功耗)来生成信号DIMAGES。
在视差图550中示出了白墙504和盒子506。白墙504和盒子506被示为没有散斑图案514-520。例如,二值化可以提取散斑图案514-520以使处理器102能够执行视差计算。
盒子506被示为具有边缘552。边缘552可能不准确。在所示示例中,边缘552被示为大体模糊以说明不准确。由于未使用自适应偏移项和/或其他神经网络操作(例如,其他方法可能会产生不准确,当使用与图5-图7相关联地描述的神经网络操作300-400时,这些不准确可能会得到校正),边缘552的不准确可能存在于视差图550中。
可以针对视差图中的每个像素计算视差误差。在示例中,如果与真实视差相比针对像素的视差大于1,则可以将具有视差误差的像素视为具有视差误差。可以基于真实参考图像来确定真实视差。在示例中,处理器102可以被配置为执行视差误差计算。
处理器102还可以被配置为:计算中的每个像素的视差误差的比例。针对每个像素的视差误差比例可以通过将总视差误差像素相加并将总和除以图像尺寸来确定。针对每个像素的视差误差比例可以针对视差图550提供视差质量的度量。在所示示例中,针对每个像素的视差误差比例可以约为5.7%。视差误差可能导致视差图550中的边缘552不准确。
参考图11,示出了说明在没有添加自适应偏移值的情况下在二值化之后从散斑图像生成的深度图的图。示出了虚线框560。虚线框560可以表示深度图。深度图560可以是由处理器102生成的示例输出(例如,信号DIMAGES)。在所示的示例中,深度图560可以表示在不使用自适应偏移值354的情况下生成的深度图。例如,处理器102可以被配置为:通过使用与图5-图7相关联地描述的神经网络操作300-400(例如,高准确度、高效操作、较低功耗)或不使用与图5-图7相关联地描述的神经网络操作300-400(例如,不太准确、效率较低的操作、更多的功耗)来生成信号DIMAGES。
在深度图560中示出了白墙504和盒子506。白墙504和盒子506被示为没有散斑图案514-520。例如,二值化可以提取散斑图案514-520以使处理器102能够执行深度计算。
盒子506被示为具有边缘562。边缘562可能不准确。在所示示例中,边缘562被示为大体模糊以说明不准确。由于未使用自适应偏移项和/或其他神经网络操作(例如,其他方法可能会产生不准确,当使用与图5-图7相关联地描述的神经网络操作300-400时,这些不准确可能会得到校正),边缘562的不准确可能存在于深度图560中。
可以计算Z准确度以评估深度图像中的深度数据准确度。Z准确度可以测量深度图像中报告的深度值与真实值的接近程度。可以基于真实参考图像来确定真实值。在示例中,处理器102可以被配置为执行Z准确度计算。
可以计算填充率以测量包含有效像素的深度图像的比例。有效像素可以是具有非0深度值的像素。填充率度量可以独立于深度数据的准确度。处理器102可以被配置为执行填充率计算。
在所示的示例中,深度图像560的Z准确度可以是大约94.3%。在所示的示例中,深度图像560的填充率可以是大约97.3%。测得的低Z准确度值和/或低填充率可能导致深度图560中的边缘562不准确。
参考图12,示出了说明响应于添加自适应偏移值和去除误差点而从散斑图像生成的二值化结果的图。示出了二值化结果570。可以响应于与图5-图7相关联地描述的神经网络操作300-400生成二值化结果570。
在二值化结果570中示出了散斑图案514-520。处理器102可以被配置为:实现神经网络操作300-400、二值化模块402和/或四重域模块404以生成二值化结果570。二值化结果570可以是响应于在自适应偏移值354已被添加到信号VIDEO(例如,源图像或真实参考图像)以生成自适应结果ADVRES之后从信号BINVID移除误差点而生成的信号ERR。
二值化结果570可以从捕获的图像中提取散斑图案514-520。在所示示例中,散斑图案514-520被示为具有与同图9相关联地所示的捕获的视频帧500中所示的点尺寸相同的点尺寸。然而,对象(例如,白墙504和盒子506的正面508、侧面510和顶部512)可能不是直接可见的。处理器102可以被配置为:基于散斑图案514-520中的点的尺寸通过推断来确定白墙504和盒子506的正面508、侧面510和顶部512的位置、尺寸和/或深度。
二值化结果570可以表示响应于执行神经网络操作300-400而生成的二值化结果。可以在不使用神经网络操作300-400的情况下生成二值化结果。例如,视差图像550(与图10相关联地示出)和深度图像560(与图11相关联地示出)可以基于在没有神经网络操作300-400的情况下生成的二值化结果来生成。响应于使用神经网络操作300-400而生成的二值化结果570可以提供比在没有神经网络操作300-400的情况下执行二值化结果时更高的准确度和/或质量。
可以计算单点比例以评估二值化结果的二值质量。单点比例可以包括单点数除以所有点数的计算。所有点的数量可以包括预处理二进制之后一幅图像中的单点数、孤立点452、连接点454和毛刺点456的总和。处理器102可以被配置为执行单点比例计算。在所示的示例中,二值化结果570可以具有95.4%的单点比例。在没有执行神经网络操作300-400的情况下,用于生成视差图像550和深度图像560的二值化结果可以具有90.2%的单点比例。通过实现神经网络操作300-400以添加自适应偏置354,二值化结果570对于单点比例度量可具有5.2%的改进。
参考图13,示出了说明响应于添加自适应偏移值和去除误差点而在二值化之后从散斑图像生成的视差图的图。示出了虚线框580。虚线框580可以表示视差图。视差图580可以是由处理器102生成的示例输出(例如,信号DIMAGES)。在所示的示例中,视差图580可以表示使用自适应偏移值354生成的视差图。例如,处理器102可以被配置为:通过使用与图5-图7相关联地描述的神经网络操作300-400来生成信号DIMAGES。
视差图580可以表示在自适应偏移354已经被添加到源图像或参考图像之后、在二值化结果570已经产生之后并且在误差点452-456已经被去除之后由处理器102生成的结果。在示例中,可以在预处理期间针对源图像和参考图像生成二进制数据(例如,信号ERR中的二进制结果)。预处理结果可用于生成视差图580。在示例中,由处理器102实现的硬件模块190a-190n中的一个或多个可以被配置为使用预处理结果作为输入来执行匹配操作以生成视差图580。
在视差图580中示出了白墙504和盒子506。白墙504和盒子506被示为没有散斑图案514-520。例如,二值化结果570可以提取散斑图案514-520以使处理器102能够执行视差计算。
盒子506被示为具有边缘582。可以清楚地表示边缘582。在所示示例中,边缘582被示为不同以说明所得视差图像的准确性。由于使用了自适应偏移项和/或其他神经网络操作(例如,与图5-图7相关联描述的神经网络操作300-400),所以边缘582的准确性可以存在于视差图580中。
在所示示例中,对于视差图580,针对每个像素的视差误差比例可以是大约1.8%。在与图10相关联示出的视差图像550中,针对每个像素的视差误差的比例可以是大约5.7%。通过实现神经网络操作300-400,处理器102可以在添加自适应偏置354之后生成具有减少了3.9%的误差视差的视差图580。误差视差的减少可以使得能够为视差图像580中的盒子506定义不同的边缘582。
参考图14,示出了说明响应于添加自适应偏移值和去除误差点而在二值化之后从散斑图像生成的深度图的图。示出了虚线框580。虚线框580可以表示深度图。深度图600可以是由处理器102生成的示例输出(例如,信号DIMAGES)。在所示的示例中,深度图600可以表示使用自适应偏移值354生成的深度图。例如,处理器102可以被配置为:通过使用与图5-图7相关联地描述的神经网络操作300-400来生成信号DIMAGES。
深度图600可以表示在自适应偏移354已经被添加到源图像或参考图像之后、在二值化结果570已经产生之后并且在误差点452-456已经被去除之后由处理器102生成的结果。在示例中,可以在预处理期间针对源图像和参考图像生成二进制数据(例如,信号ERR中的二进制结果)。预处理结果可用于生成深度图600。在示例中,由处理器102实现的硬件模块190a-190n中的一个或多个可以被配置为:使用预处理结果作为输入来执行匹配操作以生成深度图600。
在深度图600中示出了白墙504和盒子506。白墙504和盒子506被示为没有散斑图案514-520。例如,二值化结果570可以提取散斑图案514-520以使处理器102能够执行深度计算。
盒子506被示为具有边缘602。可以清楚地表示边缘602。在所示示例中,边缘602被示为不同以说明所得深度图像的准确性。由于使用了自适应偏移项和/或其他神经网络操作(例如,与图5-图7相关联地描述的神经网络操作300-400),所以边缘602的准确性可以存在于深度图600中。
在所示示例中,深度图600的Z准确度可以是大约96.4%,并且填充率可以是大约98.4%。在与图11相关联地示出的深度图像560中,Z准确度可以是大约94.3%并且填充率可以是大约97.3%。通过实现神经网络操作300-400,处理器102可以在添加自适应偏置354之后生成具有2.1%的Z准确度改进和1.1%的填充率改进的深度图600。Z准确度和填充率的改进可以使得能够中的深度图600中的盒子506定义不同的边缘602。
参考图15,示出了方法(或过程)620。方法620可以通过使用卷积技术将自适应偏移项添加到局部自适应二值化表达式来对视频帧进行预处理。方法620一般包括步骤(或状态)622、步骤(或状态)624、步骤(或状态)626、步骤(或状态)628、决策步骤(或状态)630、步骤(或状态)632、步骤(或状态)634、步骤(或状态)636、步骤(或状态)638、步骤(或状态)640、步骤(或状态)642、步骤(或状态)644、步骤(或状态)646以及步骤(或状态)648。
步骤622可以开始方法620。在步骤624中,结构光投射器106可以生成结构光图案SLP。在示例中,SLP源186可以生成信号SLP,信号SLP包括散斑图案,该散斑图案可以被投影到装置100附近的环境上。接下来,在步骤626中,处理器102可以从单目摄像头接收像素数据。在示例中,捕获设备104可以实现单目摄像头。单目摄像头104可以经由镜头160接收包括光的信号LIN。RGB-IR传感器180可以将输入光转换成像素数据和/或视频帧。像素数据可以包括关于装置100附近环境的信息,并且捕获由结构光投射器106生成的结构光图案。单目摄像头104可以向处理器102呈现信号VIDEO。在步骤628中,处理器102可以被配置为对布置为视频帧的像素数据进行处理。在一个示例中,处理器102可以将像素数据转换为视频帧。在另一个示例中,捕获设备104可以将像素数据转换为视频帧并且可以将视频帧呈现给处理器102。视频帧可以包括单通道源图像或单通道参考图像。接下来,方法620可以移动到决策步骤630。
在决策步骤630中,处理器102可以确定是否利用CNN模块190b来生成视差图和深度图。如果未使用CNN模块190b,则方法620可以移动到步骤632。在步骤632中,处理器102可以在不依赖于由CNN模块190b提供的硬件加速的情况下执行各种3D重构计算(例如,不依赖于硬件引擎204a-204n和/或不添加自适应偏移值354的较慢计算路径,这可能导致视差图550中所示的不准确552和/或深度图560中所示的不准确562)。接下来,方法620可以移动到步骤648。在决策步骤630中,如果使用了CNN模块190b,则方法620可以移动到步骤634。
在步骤634中,CNN模块190b可以对视频帧执行部分块求和以及求平均。在示例中,部分块求和以及求平均可以使得能够针对源图像或参考图像生成卷积结果308。接下来,在步骤636中,CNN模块190b可将卷积结果308与理想散斑值352进行比较以生成偏移值354。在步骤638中,CNN模块190b可以执行卷积操作以便将偏移值354添加到视频帧(例如,源图像或参考图像)以生成自适应结果412。接下来,在步骤640中,CNN模块190b可以将视频帧(例如,如果自适应结果412来自源图像,则是信号VIDEO中的源图像;或者如果自适应结果412来自真实参考图像,则是信号VIDEO中的参考图像)与自适应结果412进行比较,以生成二值化结果(例如,信号BINVID)。在步骤642中,CNN模块190b可以被配置为:从二值化结果BINVID中去除误差点(例如,孤立点452、连接点454和/或毛刺点456)。去除误差点的结果可以是二进制数据(例如,信号ERR,当视频帧信号VIDEO包括源图像时可以对应于源二进制数据,当视频帧信号VIDEO包括真实参考图像时可以对应于真实二进制数据)。接下来,方法620可以移动到步骤644。
在步骤644中,CNN模块190b可以完成对视频帧(例如,源图像或真实参考图像)的预处理。接下来,在步骤646中,处理器102可以生成视差图580及深度图600。视差图580和深度图600可以从中的源图像和参考图像的二进制数据(例如,用于匹配操作方法的输入)生成。接下来,方法620可以移动到步骤648。步骤648可以结束方法620。
参考图16,示出了方法(或过程)680。方法680可以使用卷积神经网络来执行部分块求和以及求平均。方法680一般包括步骤(或状态)682、步骤(或状态)684、决策步骤(或状态)686、步骤(或状态)688、步骤(或状态)690、步骤(或状态)692、步骤(或状态)694、步骤(或状态)696、步骤(或状态)698以及步骤(或状态)700。
步骤682可以开始方法680。在步骤684中,处理器102可以生成捕获结构光图案SLP的视频帧。接下来,方法680可以移动到决策步骤686。在决策步骤686中,处理器102可确定先前是否已确定所捕获的场景。如果预先知道距离信息和/或3D信息,则可以预先确定场景。在示例中,可以针对真实参考视频帧预先确定场景。如果先前已确定场景,则方法680可以移动到步骤688。在步骤688中,处理器102可以实时确定偏移值354(例如,对源图像的分析)。接下来,方法680可以移动到步骤692。在决策步骤686中,如果先前已确定场景,则方法680可以移动到步骤690。在步骤690中,处理器102可以离线确定偏移值354(例如,对参考图像的分析)。接下来,方法680可以移动到步骤692。
在步骤692中,硬件实现的CNN模块190b可以接收单通道视频帧(例如,来自单目摄像头104的源图像或真实参考图像)。接下来,在步骤694中,CNN模块190b可以生成部分块求和304。部分块求和304可以从源图像或参考图像生成。在步骤694中,CNN模块190b(例如,使用一个或多个硬件引擎204a-204n)可以使用9x9求平均块306将部分块求和304除以81。接下来,在步骤696中,CNN模块190b可以生成9x9卷积结果308(例如,信号CONVRES)。接下来,方法680可以移动到步骤700。步骤700可以结束方法680。
参考图17,示出了方法(或过程)720。方法720可以确定偏移值。方法720一般包括步骤(或状态)722、步骤(或状态)724、步骤(或状态)726、步骤(或状态)728、步骤(或状态)730、步骤(或状态)732、决策步骤(或状态)734、步骤(或状态)736以及步骤(或状态)738。
步骤722可以开始方法720。接下来,方法720可以移动到步骤724和步骤726,步骤724和步骤726可以并行或基本并行地执行。在步骤724中,CNN模块190b可以基于求平均操作来接收(或确定)卷积结果308(如与图5相关联地所示)。接下来,方法720可以移动到步骤728。在步骤726中,CNN模块190b可以接收包括理想散斑图像图案352的信号IDEAL。接下来,方法720可以移动到步骤728。
在步骤728中,CNN模块190b可以计算卷积结果308与理想散斑图像图案352的相对应值之间的差异。接下来,在步骤730中,CNN模块190b可以生成卷积结果308与理想散斑图像图案352之间的比较的差异结果的直方图。在步骤732中,CNN模块190b可以对生成的直方图进行分析。接下来,方法720可以移动到决策步骤734。
在决策步骤734中,CNN模块190b可以确定是否找到最多计数点的直方图中的差异值。如果尚未找到直方图中最多计数点,则方法720可以返回到步骤732(例如,继续生成和/或分析直方图)。如果已找到直方图中最多计数点,则方法720可以移动到步骤736。在步骤736中,CNN模块190b可以使用直方图中最多计数点的差异值作为偏移值354(例如,信号OFFSET)。接下来,方法720可以移动到步骤738。步骤738可以结束方法720。
参考图18,示出了方法(或过程)780。方法780可以通过将添加偏移值来生成自适应结果并生成二值化结果。方法780一般包括步骤(或状态)782、步骤(或状态)784、步骤(或状态)786、步骤(或状态)788、步骤(或状态)790、步骤(或状态)792、决策步骤(或状态)794、步骤(或状态)796、步骤(或状态)798、决策步骤(或状态)800、步骤(或状态)802以及步骤(或状态)804。
步骤782可以开始方法780。在步骤784中,CNN模块190b的硬件可以接收信号通道视频帧(例如,信号VIDEO)和偏移值354(例如,如与图6相关联所示确定的)。接下来,在步骤786中,CNN模块190b可以对具有9x9块大小的视频帧(例如,源图像或真实参考图像)执行部分块求和410。在步骤788中,CNN模块190b可以使用9x9求平均块306将部分块求和410除以81。接下来,方法780可以移动到步骤790。
在步骤790中,CNN模块190b可将偏移值354添加到在步骤788中确定的平均结果,以生成自适应结果412。自适应结果412可以响应于卷积操作来被确定。接下来,在步骤792中,二值化模块402(例如,针对CNN模块190b实现的硬件引擎204a-204n中的一个)可以将自适应结果412(例如,信号ADVRES)与源视频帧(例如,信号VIDEO中的源图像或真实参考图像)进行比较。接下来,方法780可以移动到决策步骤794。
在决策步骤794中,二值化模块402可以确定自适应结果412与视频帧的比较结果(例如,自适应结果412与视频帧的相对应值的比较结果)是否大于或等于值1。如果结果大于或等于1,则方法780可以移动到步骤796。在步骤796中,二值化模块402可以输出二值化结果的对应0点的值。接下来,方法780可以移动到决策步骤794。在决策步骤794中,如果结果不大于或等于1(例如,小于1),则方法780可以移动到步骤798。在步骤798中,二值化模块402可以输出二值化结果的对应1点的值。接下来,方法780可以移动到决策步骤800。
在决策步骤800中,CNN模块190b可确定自适应结果412与视频帧之间是否有更多值要进行比较。虽然方法780可将比较说明为按顺序执行,但CNN模块190b、硬件引擎204a-204n和/或二值化模块402可以被配置为:在并行计算或基本并行执行的操作中比较自适应结果412和视频帧的相对应值。如果有更多值要比较,则方法780可以返回到步骤792。如果没有更多的值要比较,则方法780可以移动到步骤802。
在步骤802中,二值化模块402可以生成二值化结果(例如,信号BINVID)。在一些实施例中,二值化结果可以是针对源图像的二值化结果(例如,如果信号VIDEO包括源图像)。在一些实施例中,二值化结果可以是针对真实参考图像的二值化结果(例如,如果信号VIDEO包括真实参考图像)。接下来,方法780可以移动到步骤804。步骤804可以结束方法780。
参考图19,示出了方法(或过程)820。方法820可以去除误差点以生成二进制数据。方法820通常包括步骤(或状态)822、步骤(或状态)824、步骤(或状态)826、步骤(或状态)828、决策步骤(或状态)830、步骤(或状态)832、决策步骤(或状态)834、步骤(或状态)836、决策步骤(或状态)838、步骤(或状态)840、决策步骤(或状态)842、步骤(或状态)844、步骤(或状态)846、步骤(或状态)848以及步骤(或状态)850。
步骤822可以开始方法820。接下来,在步骤824中,四重域模块404(例如,针对CNN模块190b实现的硬件引擎204a-204n中的一个)可以接收二值化结果(例如,信号BINVID)。二值化结果可以针对源图像或参考图像。在步骤826中,四重域模块404可以对二值化结果BINVID执行四重域操作。接下来,在步骤828中,四重域模块404可以检测二值化结果BINVID中的孤立点452、连接点454和毛刺点456。接下来,方法820可以移动到决策步骤830。
在决策步骤830中,四重域模块404可以确定检测到的误差点452-456是否是孤立点460。如果误差点452-456是孤立点460,则方法820可以移动到步骤832。在步骤832中,四重域模块404可以去除具有值0的误差点。接下来,方法820可以移动到决策步骤842。在决策步骤830中,如果误差点452-456不是孤立点460,则方法820可以移动到决策步骤834。
在决策步骤834中,四重域模块404可以确定检测到的误差点452-456是否是毛刺点470。如果误差点452-456是毛刺点470,则方法820可以移动到步骤836。在步骤836中,四重域模块404可以去除具有值1的误差点。接下来,方法820可以移动到决策步骤842。在决策步骤834中,如果误差点452-456不是毛刺点470,则方法820可以移动到决策步骤838。
在决策步骤838中,四重域模块404可以确定检测到的误差点452-456是否是连接点464。如果误差点452-456是连接点464,则方法820可以移动到步骤840。在步骤840中,四重域模块404可以去除具有值2的误差点。接下来,方法820可以移动到决策步骤842。在决策步骤838中,如果误差点452-456不是连接点464,则方法820可以移动到决策步骤842。
在决策步骤842中,四重域模块404可以确定是否存在更多的误差点452-456。虽然方法820可将误差点452-456的检测示为按顺序执行,但CNN模块190b、硬件引擎204a-204n和/或四重域模块404可以被配置为分析、检测和/或去除并行操作或基本并行执行的操作中的误差点452-456。如果存在更多的误差点452-456,则方法820可以返回到决策步骤830。如果不存在更多的误差点452-456,则方法820可以移动到步骤844。
在步骤844中,四重域模块404可以确定所有的误差点452-456已经从二值化结果BINVID中去除。接下来,在步骤846中,四重域模块404可以生成去除了误差点的二值化结果(例如,信号ERR中的二值数据)。在一些实施例中,信号ERR中的二进制数据可以是从源图像确定的源二进制数据。在一些实施例中,信号ERR中的二进制数据可以是从真实参考图像确定的参考二进制数据。在步骤848中,可以完成由CNN模块190b执行的预处理。例如,信号ERR中的源二进制数据和/或参考二进制数据可由处理器102执行的其他即将进行的操作使用。可以由处理器102使用源二进制数据和/或参考二进制数据来生成视差图580和/或深度图600。接下来,方法820可以移动到步骤850。步骤850可以结束方法820。
可以使用以下各项中的一项或多项来实现由图1-图19的图执行的功能:常规通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器、CISC(复杂指令集计算机)处理器、SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算术逻辑单元(ALU)、视频数字信号处理器(VDSP)和/或类似的操作机器,根据说明书的教导进行编程,如对于相关领域技术人员来说将显而易见的。适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块可以由熟练的程序员基于本公开内容的教导容易地准备,这对于相关领域的技术人员来说也是显而易见的。软件通常由机器实现的一个或多个处理器从一种介质或几种介质执行。
本发明还可以通过准备ASIC(专用集成电路)、平台ASIC、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、门海、RFIC(射频集成电路)、ASSP(专用标准产品)、一个或多个单片集成电路、布置为倒装芯片模块和/或多芯片模块的一个或多个芯片或管芯来实现,或者通过对适当的传统元件电路网络进行互连来实现,如本文所描述的,其修改对于本领域技术人员来说将是显而易见的。
因此,本发明还可以包括一种计算机产品,其可以是存储介质或介质和/或传输介质或介质,包括可用于对机器进行编程以执行根据本发明的一个或多个过程或方法的指令。由机器执行包含在计算机产品中的指令以及周围电路的操作,可以将输入数据转换为存储介质上的一个或多个文件和/或代表物理对象或物质(例如,音频和/或视觉描述)的一个或多个输出信号。存储介质可以包括但不限于任何类型的盘,包括软盘、硬盘、磁盘、光盘、CD-ROM、DVD和磁光盘以及电路,诸如ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、UVPROM(紫外线可擦除可编程ROM)、闪存、磁卡、光卡和/或适用于存储电子指令的任何类型的介质。
本发明的元件可以形成一个或多个设备、单元、组件、***、机器和/或装置的部分或全部。这些设备可能包括但不限于服务器、工作站、存储阵列控制器、存储***、个人计算机、膝上型计算机、笔记本计算机、掌上计算机、云服务器、个人数字助理、便携式电子设备、电池供电设备、机顶盒、编码器、解码器、转码器、压缩器、解压缩器、预处理器、后处理器、发射机、接收机、收发机、密码电路、蜂窝电话、数码摄像头、定位和/或导航***、医疗设备、抬头显示器、无线设备、音频记录、音频存储和/或音频播放设备、视频记录、视频存储和/或视频播放设备、游戏平台、***设备和/或多芯片模块。相关领域的技术人员将理解,本发明的元件可以在其他类型的设备中实现以满足特定应用的标准。
术语“可以”和“一般”在本文中与“是(是)”和动词一起使用时旨在传达以下意图:描述是示例性的并且被认为足够广泛以涵盖本公开内容中呈现的具体示例以及可以基于本公开内容得出的替代示例这二者。本文中使用的术语“可以”和“一般”不应被解释为必然暗示省略相应元素的可取性或可能性。
各种组件、模块和/或电路的标记“a”-“n”,当在本文中使用时,公开了单个组件、模块和/或电路或多个这样的组件、模块和/或电路,其中,“n”标记用于意指任何特定的整数。每个具有标记为“a”-“n”的实例(或事件)的不同组件、模块和/或电路可指示不同组件、模块和/或电路可以具有匹配数量的实例或不同数量的实例。指定为“a”的实例可以表示多个实例中的第一个,并且实例“n”可以指代多个实例中的最后一个,而不暗示特定数量的实例。
虽然已经参考本发明的实施例具体地示出和描述了本发明,但是本领域技术人员将理解,可以在不脱离本发明的范围的情况下对形式和细节进行各种改变。
Claims (20)
1.一种装置,其包括:
接口,其被配置为接收像素数据;
结构光投射器,其被配置为:生成结构光图案;以及
处理器,其被配置为:(i)对被布置为视频帧的所述像素数据进行处理,(ii)使用卷积神经网络执行操作以确定二值化结果和偏移值,以及(iii)响应于(a)所述视频帧,(b)所述结构光图案,(c)所述二值化结果,(d)所述偏移值以及(e)误差点的去除来生成视差图和深度图,其中,所述卷积神经网络:
(A)对所述视频帧执行部分块求和以及求平均以生成卷积结果,
(B)将所述卷积结果与理想散斑值进行比较以确定所述偏移值,
(C)响应于执行卷积操作以将所述偏移值添加到所述视频帧,来生成自适应结果,
(D)将所述视频帧与所述自适应结果进行比较以生成针对所述视频帧的二值化结果,以及
(E)从所述二值化结果中去除所述误差点。
2.根据权利要求1所述的装置,其中,所述误差点是使用四重域方法去除的。
3.根据权利要求2所述的装置,其中,所述误差点包括以下项中的至少一项:孤立点、连接点和毛刺点。
4.根据权利要求3所述的装置,其中,所述四重域方法被配置为去除(i)具有值0的孤立点,(ii)具有值1的毛刺点以及(iii)具有值2的连接点。
5.根据权利要求1所述的装置,其中,所述偏移值被配置为(i)将所述结构光图案与背景图像分离并且(ii)减少所述误差点的数量。
6.根据权利要求1所述的装置,其中,所述卷积神经网络被配置为在生成所述二值化结果后去除所述误差点,以便降低即将进行的操作中错误匹配的概率。
7.根据权利要求1所述的装置,其中,所述卷积神经网络被配置为生成所述二值化结果,以使得能够使用卷积操作来执行面积求和以及添加偏移操作。
8.根据权利要求1所述的装置,其中,所述部分块求和是以9×9的块大小实现的,以使得9×9卷积能够代替求平均操作。
9.根据权利要求8所述的装置,其中,所述9×9卷积中的每个值为值81,并且所述9×9卷积的步长大小为1。
10.根据权利要求1所述的装置,其中,所述理想散斑值是响应于捕获在所述结构光投射器的最大理想距离处将所述结构光图案投影到白墙上的视频数据而确定的。
11.根据权利要求1所述的装置,其中,所述部分块求和以及确定所述偏移值是在所述装置的离线训练期间执行的。
12.根据权利要求1所述的装置,其中,所述部分块求和以及确定所述偏移值是在所述装置的实时操作中执行的。
13.根据权利要求1所述的装置,其中,所述偏移值是响应于以下各项来确定的:(i)计算在所述视频帧中捕获的结构光图案的每个相对应值与所述理想散斑值的差异,(ii)使用直方图来确定在所述视频帧中捕获的结构光图案的相对应值与所述理想散斑值之间的差异结果以及(iii)使用所述直方图中最多计数的点的差异作为所述偏移值。
14.根据权利要求1所述的装置,其中,所述视频帧包括具有所述结构光图案的场景的图像。
15.根据权利要求1所述的装置,其中,(i)所述卷积神经网络被配置为生成所述二值化结果,其中,针对源图像和参考图像去除了所述误差点,(ii)所述处理器还被配置为响应于XOR操作,生成所述二值化结果与针对所述源图像和所述参考图像去除了所述误差点的组合。
16.根据权利要求1所述的装置,其中,所述视频帧包括由单目摄像头捕获的单通道图像。
17.根据权利要求1所述的装置,其中,所述卷积神经网络被配置为(i)当所述自适应结果与所述视频帧的比较大于或等于1时,针对所述二值化结果输出0,以及(ii)当所述自适应结果与所述视频帧的所述比较小于1时,针对所述二值化结果输出1。
18.根据权利要求1所述的装置,其中,由所述卷积神经网络生成的去除了所述误差点的二值化结果包括用于由所述处理器执行的即将进行的操作的源图像和参考图像的预处理结果。
19.根据权利要求18所述的装置,其中(i)所述即将进行的操作包括响应于匹配操作而生成所述视差图和所述深度图,以及(ii)所述源图像和所述参考图像的预处理结果包括用于所述匹配操作的输入。
20.根据权利要求1所述的装置,其中,所述装置被配置为使用卷积技术将自适应偏移项添加到局部自适应二值化表达式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943775.2A CN115880349A (zh) | 2021-08-16 | 2021-08-16 | 使用卷积技术将自适应偏移项添加到局部自适应二值化表达式 |
US17/412,715 US11935257B2 (en) | 2021-08-16 | 2021-08-26 | Adding an adaptive offset term using convolution techniques to a local adaptive binarization expression |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943775.2A CN115880349A (zh) | 2021-08-16 | 2021-08-16 | 使用卷积技术将自适应偏移项添加到局部自适应二值化表达式 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115880349A true CN115880349A (zh) | 2023-03-31 |
Family
ID=85176931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110943775.2A Pending CN115880349A (zh) | 2021-08-16 | 2021-08-16 | 使用卷积技术将自适应偏移项添加到局部自适应二值化表达式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11935257B2 (zh) |
CN (1) | CN115880349A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116818129A (zh) * | 2023-05-08 | 2023-09-29 | 广州图语信息科技有限公司 | 应用于结构光重建的温度估计与热畸变校正方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3916633A1 (de) * | 2020-05-25 | 2021-12-01 | Sick Ag | Kamera und verfahren zum verarbeiten von bilddaten |
CN116246209B (zh) * | 2023-03-09 | 2024-02-13 | 彩虹鱼科技(广东)有限公司 | 基于偏移卷积核的广角镜头生物目标检测方法 |
CN117411463B (zh) * | 2023-12-15 | 2024-02-20 | 南京群顶科技股份有限公司 | 一种面向边缘计算网关数据采集自适应滤波方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI560647B (en) * | 2015-09-16 | 2016-12-01 | Au Optronics Corp | Displaying method and display panel utilizing the same |
US10628736B2 (en) * | 2015-09-24 | 2020-04-21 | Huron Technologies International Inc. | Systems and methods for barcode annotations for digital images |
CN106841216A (zh) * | 2017-02-28 | 2017-06-13 | 浙江工业大学 | 基于全景图像cnn的隧道病害自动识别装置 |
CN107992865A (zh) * | 2018-01-26 | 2018-05-04 | 重庆邮电大学 | 一种基于视频分析的车辆识别方法和*** |
CN110135563B (zh) * | 2019-05-13 | 2022-07-26 | 北京航空航天大学 | 一种卷积神经网络二值化方法及运算电路 |
CN112001878A (zh) * | 2020-05-21 | 2020-11-27 | 合肥合工安驰智能科技有限公司 | 基于二值化神经网络的深度学习矿石尺度测量方法及应用*** |
US11954846B2 (en) * | 2020-06-16 | 2024-04-09 | Elementary Robotics, Inc. | Explainability and complementary information for camera-based quality assurance inspection processes |
-
2021
- 2021-08-16 CN CN202110943775.2A patent/CN115880349A/zh active Pending
- 2021-08-26 US US17/412,715 patent/US11935257B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116818129A (zh) * | 2023-05-08 | 2023-09-29 | 广州图语信息科技有限公司 | 应用于结构光重建的温度估计与热畸变校正方法 |
CN116818129B (zh) * | 2023-05-08 | 2024-01-12 | 广州图语信息科技有限公司 | 应用于结构光重建的温度估计与热畸变校正方法 |
Also Published As
Publication number | Publication date |
---|---|
US11935257B2 (en) | 2024-03-19 |
US20230052553A1 (en) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11935257B2 (en) | Adding an adaptive offset term using convolution techniques to a local adaptive binarization expression | |
CN114093142B (zh) | 通过组合视觉传感和热传感的对象感知的温度异常监控和预警 | |
US20210227126A1 (en) | Deep learning inference systems and methods for imaging systems | |
EP4154511A1 (en) | Maintaining fixed sizes for target objects in frames | |
US12002229B2 (en) | Accelerating speckle image block matching using convolution techniques | |
US9456131B2 (en) | Video processing systems and methods | |
US20140300758A1 (en) | Video processing systems and methods | |
US20240029285A1 (en) | Adaptive face depth image generation | |
US11563927B2 (en) | Mounting calibration of structured light projector in mono camera stereo system | |
US11373685B2 (en) | Event/object-of-interest centric timelapse video generation on camera device with the assistance of neural network input | |
CN114359014A (zh) | 用于卷帘式快门传感器的动态驱动器机构以获取结构光图案 | |
Jiang et al. | A hardware architecture for real-time video segmentation utilizing memory reduction techniques | |
US11798340B1 (en) | Sensor for access control reader for anti-tailgating applications | |
US20220150462A1 (en) | Timing mechanism to derive non-contaminated video stream using rgb-ir sensor with structured light | |
US20240027604A1 (en) | Extrinsic parameter calibration for 4d millimeter-wave radar and camera based on adaptive projection error | |
CN115565212B (zh) | 图像处理方法、神经网络模型训练方法及装置 | |
US11574484B1 (en) | High resolution infrared image generation using image data from an RGB-IR sensor and visible light interpolation | |
US20230419505A1 (en) | Automatic exposure metering for regions of interest that tracks moving subjects using artificial intelligence | |
US20230206476A1 (en) | Accelerated alignment of high-resolution image and depth map for low-bit-width floating-point representation | |
US11924555B2 (en) | Intelligent auto-exposure control for RGB-IR sensor | |
US11743450B1 (en) | Quick RGB-IR calibration verification for a mass production process | |
US11812007B2 (en) | Disparity map building using guide node | |
US11935377B1 (en) | Security cameras integrating 3D sensing for virtual security zone | |
US11922697B1 (en) | Dynamically adjusting activation sensor parameters on security cameras using computer vision | |
Zou et al. | A Battery Powered Vision Sensor for Forensic Evidence Gathering |
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 |