CN116964617A - 用于可编程逻辑器件的图像标记引擎系统和方法 - Google Patents
用于可编程逻辑器件的图像标记引擎系统和方法 Download PDFInfo
- Publication number
- CN116964617A CN116964617A CN202280020409.2A CN202280020409A CN116964617A CN 116964617 A CN116964617 A CN 116964617A CN 202280020409 A CN202280020409 A CN 202280020409A CN 116964617 A CN116964617 A CN 116964617A
- Authority
- CN
- China
- Prior art keywords
- image
- pld
- engine
- electronic system
- quality
- 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 73
- 238000003384 imaging method Methods 0.000 claims abstract description 46
- 238000012549 training Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 13
- 238000007906 compression Methods 0.000 claims description 13
- 238000013473 artificial intelligence Methods 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 4
- 230000002618 waking effect Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims 2
- 238000013461 design Methods 0.000 description 60
- 230000008569 process Effects 0.000 description 45
- 230000006870 function Effects 0.000 description 33
- 238000005457 optimization Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000002411 adverse Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000008672 reprogramming Effects 0.000 description 4
- 238000012938 design process Methods 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 102100036183 5'-3' exonuclease PLD4 Human genes 0.000 description 2
- 101710142129 5'-3' exonuclease PLD4 Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration by the use of histogram techniques
-
- G06T5/90—
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/778—Active pattern-learning, e.g. online learning of image or video features
- G06V10/7784—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
-
- 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
Abstract
公开了用于控制电子系统的操作的系统和方法。示例电子系统包括边缘PLD,该边缘PLD包括可编程逻辑块(PLB),该可编程逻辑块(PLB)被配置为实现图像引擎预处理器和图像引擎。边缘PLD被配置为接收由电子系统的成像模块经由电子系统的原始图像通路提供的原始影像;经由图像引擎预处理器生成与所接收到的原始影像相对应的引擎质量影像;以及经由边缘PLD的图像引擎生成与所生成的引擎质量影像相关联的一个或多个图像标签。一个或多个图像标签和/或相关联的引擎质量影像用于控制电子系统的操作。
Description
相关申请的交叉引用
本专利申请要求于2021年3月10日提交的题为“IMAGE TEAGGING ENGINE SYSTEMSAND METHODS FOR PROGRAMMABLE LOGIC DEVICES”的美国临时专利申请号63/159,394的权益和优先权,该申请通过引用整体并入本文。
技术领域
本发明总体上涉及可编程逻辑器件,更具体涉及由这样的器件实现的相对低功率的图像处理引擎。
背景技术
可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)可以使用各种用户设计进行配置,以实现期望功能。通常,用户设计被合成为并映射到可配置资源(例如,可编程逻辑门、查找表(LUT)、嵌入式硬件或其他类型的资源)和特定PLD中可用的互连。然后,可以确定所合成和所映射的用户设计的物理放置和路由,以生成用于特定PLD的配置数据。
电子系统(诸如个人计算机、服务器、笔记本电脑、智能手机和/或其他个人电子设备和/或便携式电子设备)越来越多地包括成像设备和应用,以为其用户提供视频通信和/或其他相对复杂的基于影像的特征。然而,许多这样的应用为计算相对密集型,并且可能会带来显著的功率损耗,这反过来又会显著限制这样的系统(特别是便携式电子设备)的操作灵活性。因此,本领域需要提供相对低功率的图像处理的系统和方法,这种相对低功率的图像处理被配置为促进基于影像的复杂特征和应用。
附图说明
图1图示了根据本公开的实施例的可编程逻辑器件(PLD)的框图。
图2图示了根据本公开的实施例的用于PLD的逻辑块的框图。
图3图示了根据本公开的实施例的PLD的设计过程。
图4图示了根据本公开的实施例的包括边缘PLD的电子系统的框图。
图5图示了根据本公开的实施例的包括边缘PLD的电子系统的数据流程图。
图6A图示了根据本公开的实施例的用于边缘PLD的训练系统的框图。
图6B图示了根据本公开的实施例的由边缘PLD处理的影像。
图7图示了根据本公开的实施例的操作包括边缘PLD的电子系统的过程。
通过参考以下具体实施方式,可以更好地理解本公开的实施例及其优点。应当理解,相似的附图标记用于标识在一个或多个附图中图示的相似元件,其中的示出是为了说明本公开的实施例,而非为了限制本公开。
具体实施方式
本公开提供了用于在可编程逻辑器件(PLD)内实现相对低功率的图像处理的系统和方法,以供用于相对复杂的基于成像的应用和架构,如本文中所描述的。例如,各实施例提供了用于在相对低功率的PLD内实现基于影像的神经网络、机器学习、人工智能和/或其他相对复杂的处理的系统和方法,该系统和方法可以用于控制合并PLD的电子系统的操作。
具体地,由于低亮度、过饱和和/或其他常见的不利图像捕获状况和/或特性,所以由相机或与当代电子系统集成的其他成像模块捕获的原始影像通常不适合于图像标记(例如,特征提取、分割、对象识别、分类和/或其他神经网络、机器学习和/或基于人工智能的图像标记)。电子系统可以使用主控制器(例如,CPU和/或GPU)来将这种不合适的原始影像处理成适合于图像标记的形式,但是为这种主要控制器供电这样做可以使用显著的功率储备,并且这种处理通常以适合于人类观看的人类质量水平来执行,这可以使用多于(多个)主控制器的可用计算资源的期望部分。
各实施例通过在相对低功率的边缘PLD内实现处理来减少或消除对为这样的主控制器供电或采用这样的主控制器来执行这种处理的需求,该边缘PLD被配置为以适合可靠图像标记但低于通常适合人类观看的质量水平的图像处理引擎质量水平来预处理原始影像。例如,这样的图像标记可以用于控制电子系统的操作,而与电子系统的功率和/或睡眠状态无关,并且可以与原始影像的人类质量处理版本相链路,以产生适合于人类观看和/或其他应用的带有标签的影像,如本文中所描述的。使用训练图像和相关联的图像标记的人类质量训练集合,可以训练实施例执行可靠的图像标记,训练图像和相关联的图像标记首先被去优化以模拟常见的不利图像捕获状况和/或特性,如本文中所描述的。所得经训练的图像引擎可以用于在多种应用中使用的图像标记,包括用户基于存在的通电、断电、唤醒、睡眠、认证、解除认证、肩部冲浪检测和/或电子系统和/或由这样的电子系统执行的应用的其他操作控制。
根据本文中所提出的实施例,提供了在可编程逻辑器件(PLD)中实现用户设计的技术。在各种实施例中,用户设计可以被转换为PLD部件(例如,被配置用于逻辑功能、算术功能或其他硬件功能)和PLD中可用的其相关联的互连的集合和/或由其表示。例如,PLD可以包括若干个可编程逻辑块(PLB),每个PLB包括若干个逻辑单元以及可以用于互连PLB和/或逻辑单元的可配置路由资源。在一些实施例中,每个PLB可以使用2个至16个之间或2个至32个之间的逻辑单元来实现。
通常,PLD(例如,FPGA)构造包括一个或多个路由结构和相似布置的逻辑单元阵列,该相似布置的逻辑单元阵列布置在可编程功能块(例如,PFB和/或PLB)内。路由结构的目的是以实现预期功能所需的这种组合将逻辑单元/PLB的端口可编程地彼此连接。边缘PLD(例如,被配置用于基本独立于合并边缘PLD的电子系统的相对低功率的操作的PLD)可以包括各种附加“硬”或“软”引擎或模块,该引擎或模块被配置为提供一系列图像处理功能,这些图像处理功能可以被链路到PLD构造的操作,以提供可配置图像处理功能和/或架构,如本文中所描述的。例如,边缘PLD可以是与成像模块集成的PLD和/或以其他方式定位在图像捕获点处的PLD,例如,或在全天候功率问题对于合并边缘PLD的电子系统(例如,如本文中所使用的,电池供电式电子系统和/或便携式电子系统)的一般操作而言至关重要的情况下使用。当将用户设计合成、映射、放置和/或路由到若干个PLD部件中时,可以使用路由灵活性和可配置功能嵌入。由于可能会产生显著设计时间和成本的各种用户设计优化过程,所以可以相对高效地实现用户设计,从而释放可配置PLD部件,否则这些部件可能会被附加操作和路由资源占用。在一些实施例中,经优化的用户设计可以由网表表示,该网表标识由PLD提供的各种类型的部件及其相关联的信号。在产生经转换的用户设计的网表的实施例中,可以对这种网表执行优化过程。一旦优化,这样的配置可以被加密和签名和/或以其他方式被保护用于到边缘PLD的分布,如本文中所描述的。
现在,参考附图,图1图示了根据本公开的实施例的PLD 100的框图。PLD 100(例如,现场可编程门阵列(FPGA))、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)通常包括输入/输出(I/O)块102和逻辑块104(例如,也被称为可编程逻辑块(PLB)、可编程功能单位(PFU)或可编程逻辑单元(PLC))。更一般地,PLD 100的各个可配置元件可以被称为PLD构造。
I/O块102为PLD 100提供I/O功能(例如,以支持一个或多个I/O和/或存储器接口标准),同时可编程逻辑块104为PLD 100提供逻辑功能(例如,基于LUT的逻辑或基于逻辑门阵列的逻辑)。通过串行器/解串器(SERDES)块150和物理编码子层(PCS)块152可以提供附加I/O功能。PLD 100还可以包括硬知识产权核(IP)块160,以提供附加功能(例如,在硬件中提供的基本预定功能,该硬件可以使用比逻辑块104更少的编程进行配置)。
PLD 100还可以包括存储器块106(例如,EEPROM块、SRAM块和/或闪存块)、时钟相关电路系统108(例如,时钟源、PLL电路和/或DLL电路)和/或各种路由资源180(例如,互连和适当切换逻辑,以在整个PLD 100为路由信号(诸如时钟信号、数据信号或其它)提供路径),视情况而定。一般来说,PLD 100的各种元件可以用于执行其用于期望应用的预期功能,如本领域技术人员所理解的。
例如,某些I/O块102可以用于对存储器106进行编程或将信息(例如,各种类型的用户数据和/或控制信号)传送到PLD 100或从PLD 100传送信息。其他I/O块102包括第一编程端口(其可以表示中央处理单位(CPU)端口、外围数据端口、SPI接口和/或sysCONFIG编程端口)和/或第二编程端口(诸如联合测试动作组(JTAG)端口(例如,通过采用诸如电气和电子工程师协会(IEEE)1149.1或1532标准之类的标准))。在各种实施例中,可以包括I/O块102以(例如,通过一个或多个连接140)接收配置数据和命令,以配置PLD 100用于其预期用途,并且以支持视情况而定使用SERDES块150、PCS块152、硬IP块160和/或逻辑块104进行传送的串行或并行设备配置和信息。
应当理解,各种元件的数目和放置不受限制,并且可能取决于期望应用。例如,对于期望应用或设计规范(例如,对于所选择的可编程器件的类型),可能无需各种元件。
此外,应当理解,为了清楚起见,元件以框形式图示,并且各种元件可能通常分布在整个PLD 100中,诸如在逻辑块104、硬IP块160和路由资源(例如,图2的路由资源180)中和在其之间,以执行其传统功能(例如,存储配置PLD 100的配置数据或在PLD 100内提供互连结构)。还应当理解,本文中所公开的各种实施例不限于可编程逻辑器件,诸如PLD 100,并且可以应用于各种其他类型的可编程器件,如本领域技术人员所理解的。
外部系统130可以用于创建PLD 100的期望用户配置或设计,并且生成对应配置数据以编程(例如,配置)PLD 100。例如,系统130可以向PLD 100的一个或多个I/O块102、SERDES块150和/或其他部分提供这种配置数据。结果,PLD 100的可编程逻辑块104、各种路由资源和任何其他适当部件可以被配置为根据用户指定的应用来操作。
在所图示的实施例中,系统130被实现为计算机系统。在这方面,系统130包括例如一个或多个处理器132,该一个或多个处理器132可以被配置为执行提供在一个或多个存储器134中和/或以非暂态形式存储在一个或多个非暂态机器可读介质136(例如,其可以在系统130内部或外部)中的指令,诸如软件指令。例如,在一些实施例中,系统130可以运行PLD配置软件,诸如从Lattice Semiconductor Corporation可获得的Lattice Diamondsystem Planner软件,以准许用户创建期望配置并且生成对应配置数据来对PLD 100进行编程。
系统130还包括例如用于向用户显示信息的用户接口135(例如,屏幕或显示器)、以及用于接收用户命令或设计录入以准备PLD 100的期望配置的一个或多个用户输入设备137(例如,键盘、鼠标、轨迹球、触摸屏和/或其他设备)。
图2图示了根据本公开的实施例的PLD 100的逻辑块104的框图。如所讨论的,PLD100包括多个逻辑块104,该多个逻辑块104包括用于提供逻辑和算术功能的各种部件。在图2所示的示例实施例中,逻辑块104包括多个逻辑单元200,该多个逻辑单元200可以使用路由资源180在逻辑块104内内部互连和/或外部互连。例如,每个逻辑单元200可以包括各种部件,诸如查找表(LUT)202、模式逻辑电路204、寄存器206(例如,触发器或锁存器)以及用于为逻辑单元200和/或在逻辑单元200之间选择期望信号路径的各种可编程多路复用器(例如,可编程多路复用器212和214)。在该示例中,LUT 202接受四个输入220A-220D,这使其成为四输入LUT(其可以被缩写为“4-LUT”或“LUT4”),该四输入LUT可以由PLD 100的配置数据编程,以实现具有四个输入或更少输入的任何适当逻辑操作。模式逻辑204可以包括各种逻辑元件和/或附加输入(诸如输入220E),以支持各种模式的功能,如本文中所描述的。在其他示例中,LUT 202可以是具有用于PLD的特定实现方式的任何其他合适数目的输入的任何其他合适尺寸。在一些实施例中,可以为不同的逻辑块104和/或不同的逻辑单元200提供不同尺寸的LUT。
在一些实施例中,来自LUT 202和/或模式逻辑204的输出信号222可以通过寄存器206被传递,以提供逻辑单元200的输出信号233。在各种实施例中,来自LUT 202和/或模式逻辑204的输出信号223可以直接传递到输出223,如所示出的。依据多路复用器210-214和/或模式逻辑204的配置,输出信号222可以根据控制信号230暂时存储(例如,锁存)在锁存器206中。在一些实施例中,PLD 100的配置数据可以将逻辑单元200的输出223和/或233配置为以分级或级联布置(例如,包括多个水平)提供作为(例如,另一逻辑块或同一逻辑块中的)另一逻辑单元200的一个或多个输入,以配置不能在单个逻辑单元200中实现的逻辑操作(例如,具有太多输入而不能由单个LUT 202实现的逻辑操作)。而且,逻辑单元200可以使用多个输出和/或互连来实现,以便于操作的可选择模式,如本文中所描述的。
模式逻辑电路204可以用于PLD 100的一些配置,以高效地实现算术操作,诸如加法器、减法器、比较器、计数器或其他操作,以高效地形成一些扩展逻辑操作(例如,在多个位数据上工作的高阶LUT),以高效地实现相对小的RAM和/或允许在逻辑、算术、扩展逻辑和/或其他可选操作模式之间进行选择。在这方面,跨多个逻辑单元202的模式逻辑电路204可以被链接在一起,以在相邻逻辑单元202之间传递进位输入信号205和进位输出信号207和/或其他信号(例如,输出信号222),如本文中所描述的。在图2的示例中,例如,进位输入信号205可以直接传递到模式逻辑电路204,或可以通过配置一个或多个可编程多路复用器传递到模式电路204,如本文中所描述的。在一些实施例中,模式逻辑电路204可以跨多个逻辑块104链接。
图2所图示的逻辑单元200只是示例,根据不同实施例的逻辑单元可以包括PLD部件的不同组合和布置。此外,尽管图2图示了具有八个逻辑单元200的逻辑块104,但根据其他实施例的逻辑块102可以包括更少的逻辑单元200或更多的逻辑单元。逻辑块104的逻辑单元200中的每个逻辑单元200可以用于实现由PLD 100实现的用户设计的一部分。在这方面,PLD 100可以包括许多逻辑块104,其中每个逻辑块104可以包括逻辑单元200和/或用于共同实现用户设计的其他部件。
如本文中所进一步描述的,当PLD 100被配置为实现用户设计时,用户设计的部分可以被调整为占用更少的逻辑单元200、更少的逻辑块104和/或路由资源180的负担更少。根据各种实施例的这样的调整可以标识要在占用逻辑单元200和/或逻辑块104的多个实施例的布置中实现的某些逻辑、算术和/或扩展逻辑操作。如本文中所进一步描述的,优化过程可以路由与本文中所描述的算术/逻辑操作相关联的各种信号连接,使得逻辑操作、纹波算术操作或扩展逻辑操作可以被实现为要与先前算术操作/逻辑操作相关联的一个或多个逻辑单元200和/或逻辑块104。
图3图示了根据本公开的实施例的PLD的设计过程300。例如,图3的过程可以由运行Lattice Diamond软件的系统130执行,以配置PLD 100。在一些实施例中,图3中所引用的各种文件和信息可以存储在例如存储器134、机器可读介质136中的一个或多个数据库和/或其他数据结构中,和/或以其它方式。在各种实施例中,当存储和/或运送到PLD 100和/或其他设备或系统时,这样的文件和/或信息可以被加密或以其他方式被保护。
在操作310中,系统130接收指定PLD 100的期望功能的用户设计。例如,用户可以与系统130交互(例如,通过用户输入设备137和表示设计的硬件描述语言(HDL)代码),以标识用户设计的各种特征(例如,高级逻辑操作、硬件配置和/或其他特征)。在一些实施例中,可以在寄存器传送级(RTL)描述(例如,门级描述)中提供用户设计。系统130可以执行一个或多个规则检查以确认用户设计描述了PLD 100的有效配置。例如,系统130可以视情况拒绝无效配置和/或请求用户提供新设计信息。
在操作320中,系统130合成设计以创建网表(例如,所合成的RTL描述),该网表将用户设计的抽象逻辑实现方式标识为多个逻辑部件(例如,也被称为网表部件),该多个逻辑部件可以包括PLD 100的可编程部件和硬IP部件两者。在一些实施例中,网表可以以电子设计交换格式(EDIF)存储在本地通用数据库(NGD)文件中。
在一些实施例中,在操作320中将设计合成为网表可能涉及:将用户设计中的逻辑操作、硬件配置和/或其他特征的高级描述转换(例如,翻译)为PLD部件(例如,PLD 100的逻辑块104、逻辑单元200和其它部件,被配置用于逻辑功能、算术功能或其他硬件功能以实现用户设计)及其相关联的互连或信号的集合。根据实施例,经转换的用户设计可以表示为网表。
在一些实施例中,在操作320中将设计合成为网表还可以涉及:对用户设计(例如,被转换/翻译为PLD部件及其相关联的互连或信号的集合的用户设计)执行优化过程,以减少传播延迟、PLD资源和路由资源的消耗,和/或当被配置为实现用户设计时,优化PLD的性能。依据实施例,可以对表示经转换/经翻译的用户设计的网表执行优化过程。依据实施例,优化过程可以表示网表中的经优化的用户设计(例如,以产生经优化的网表)。
在一些实施例中,优化过程可以包括:优化逻辑功能操作、纹波算术操作和/或扩展逻辑功能操作的某些实例,当PLD被配置为实现用户设计时,这些实例可能占用多个可配置PLD部件(例如,逻辑单元200、逻辑块104和/或路由资源180)。例如,优化过程可以包括:在用户设计中检测实现逻辑功能操作、纹波算术操作、扩展逻辑功能操作和/或对应路由资源的多个模式或可配置逻辑单元;交换实现各种操作的逻辑单元的操作模式,以减少用于实现操作的PLD部件和/或路由资源的数目,和/或减少与操作相关联的传播延迟;和/或对对应LUT和/或模式逻辑进行重新编程以考虑所交换的操作模式。
在另一示例中,优化过程可以包括:检测用户设计中的扩展逻辑功能操作和/或对应路由资源;将扩展逻辑操作实现为具有单个物理逻辑单元输出的多个模式或可转换逻辑单元;将第一逻辑单元集合的逻辑单元输出路由或耦合到第二逻辑单元集合的输入,以减少用于实现扩展逻辑操作和/或路由资源的PLD部件的数目,和/或减少与扩展逻辑操作相关联的传播延迟;和/或对对应LUT和/或模式逻辑进行编程以使用至少第一逻辑单元集合和第二逻辑单元集合来实现扩展逻辑功能操作。
在另一示例中,优化过程可以包括:在用户设计中检测实现逻辑功能操作、纹波算术操作、扩展逻辑功能操作和/或对应路由资源的多个模式或可配置逻辑单元;交换实现各种操作的逻辑单元的操作模式以沿着PLD内的信号路径提供可编程寄存器以减少与该信号路径相关联的传播延迟;以及对对应LUT、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程,以考虑所交换的操作模式和/或对可编程寄存器进行编程以在信号路径上存储或锁存信号。
在操作330中,系统130执行映射过程,该映射过程标识可以用于实现用户设计的PLD 100的部件。在这方面,系统130可以将经优化的网表(例如,由于优化过程,而存储在操作320中)映射到由PLD 100所提供的各种类型的部件(例如,PLD 100的逻辑块104、逻辑单元200、嵌入式硬件和/或其他部分)及其相关联的信号(例如,以逻辑方式,但还没有指定放置或路由)。在一些实施例中,可以对一个或多个先前存储的NGD文件执行映射,其中映射结果作为物理设计文件(例如,也被称为NCD文件)被存储。在一些实施例中,映射过程可以作为操作320中的合成过程的一部分来执行,以产生映射到PLD部件的网表。
在操作340中,系统130执行放置过程,以将所映射的网表部件指派给驻留在PLD100的特定物理位置处的特定物理部件(例如,指派给PLD 100的特定逻辑单元200、逻辑块104、路由资源180和/或其他物理部件),并且因此确定PLD 100的布局。在一些实施例中,可以对一个或多个先前存储的NCD文件执行放置,其中放置结果作为另一物理设计文件被存储。
在操作350中,系统130执行路由过程,以基于在操作340中确定的放置布局来在PLD 100的部件之间路由连接(例如,使用路由资源180),以实现所放置的部件之间的物理互连。在一些实施例中,可以对一个或多个先前存储的NCD文件执行路由,其中路由结果作为另一物理设计文件被存储。
在各种实施例中,在操作350中路由连接还可以涉及:对用户设计执行优化过程,以减少传播延迟、PLD资源和/或路由资源的消耗,和/或当被配置为实现用户设计时,优化PLD的性能。在一些实施例中,可以对表示经转换/经翻译的用户设计的物理设计文件执行优化过程,并且优化过程可以在物理设计文件中表示经优化的用户设计(例如,产生经优化的物理设计文档)。
在一些实施例中,优化过程可以包括:优化逻辑功能操作、纹波算术操作和/或扩展逻辑功能操作的某些实例,当PLD被配置为实现用户设计时,这些实例将占用多个可配置PLD部件(例如,逻辑单元200、逻辑块104和/或路由资源180)。例如,优化过程可以包括:在用户设计中检测实现逻辑功能操作、纹波算术操作、扩展逻辑功能操作和/或对应路由资源的多个模式或可配置逻辑单元;交换实现各种操作的逻辑单元的操作模式,以减少用于实现操作的PLD部件和/或路由资源的数目,和/或减少与操作相关联的传播延迟;和/或对对应LUT和/或模式逻辑进行重新编程以考虑所交换的操作模式。
在另一示例中,优化过程可以包括:检测用户设计中的扩展逻辑功能操作和/或对应路由资源;将扩展逻辑操作实现为具有单个物理逻辑单元输出的多个模式或可转换逻辑单元;将第一逻辑单元集合的逻辑单元输出路由或耦合到第二逻辑单元集合的输入,以减少用于实现扩展逻辑操作和/或路由资源的PLD部件的数目,和/或减少与扩展逻辑操作相关联的传播延迟;和/或对对应LUT和/或模式逻辑进行编程,以使用至少第一逻辑单元集合和第二逻辑单元集合来实现扩展逻辑功能操作。
在另一示例中,优化过程可以包括:在用户设计中检测实现逻辑功能操作、纹波算术操作、扩展逻辑功能操作和/或对应路由资源的多个模式或可配置逻辑单元;交换实现各种操作的逻辑单元的操作模式以沿着PLD内的信号路径提供可编程寄存器以减少与该信号路径相关联的传播延迟;以及对对应LUT、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程,以考虑所交换的操作模式和/或对可编程寄存器进行编程以在信号路径上存储或锁存信号。
路由中的改变可以传播回到先前操作,诸如合成、映射和/或放置,以进一步优化用户设计的各个方面。
因此,在操作350之后,可以提供一个或多个物理设计文件,该一个或多个物理设计文件在用户设计针对PLD 100(例如,通过组合对应先前操作的结果)被合成(例如,被转换和被优化)、映射、放置和路由(例如,被进一步优化)之后,指定用户设计。在操作360中,系统130生成用于所合成、映射、放置和路由的用户设计的配置数据。在各种实施例中,作为这种生成过程的一部分,这种配置数据可以被加密和/或以其他方式被保护,如本文中所更全面地描述的。在操作370中,系统130通过例如通过连接140将配置数据比特流(例如,“配置”)加载到PLD 100中来使用配置数据配置PLD 100。例如,这种配置可以以加密、签名或未经保护/未经验证的形式提供,并且PLD 100可以被配置为以不同方式对待经保护的配置和未经保护的配置,如本文中所描述的。
图4图示了根据本公开的实施例的包括边缘PLD 400的电子系统430的框图。例如,电子系统430和/或边缘PLD 400的一个或多个元件可以被配置为执行关于图7所描述的过程的至少一部分。具体地,电子系统430可以被配置为使用边缘PLD 400来对由成像模块446提供的原始影像执行低功率、全天候但相对复杂的图像处理,该成像模块446与电子系统430的其余部分基本无关,例如,和/或与控制器432同步,以便于电子系统430操作,如本文中所描述的。在各种实施例中,边缘PLD 400可以被配置为最小限度地预处理由成像模块446提供的原始影像,足以使得边缘PLD能够在相对有限的功率使用范围内(例如,在由控制器442使用以被通电和唤醒并生成相似图像标记的典型功率的1/1000和1/10之间)生成可靠的图像标记。
在图4所示的实施例中,电子系统430包括控制器432、存储器434、用户接口435、机器可读介质43g和用户输入设备437(例如,每个与图1中的系统130的元件相似),以及成像模块446、电源444、通信模块438和边缘PLD 400(例如,图1中的PLD 100的实施例)。尽管在图4中被示为与成像模块446分开,但在一些实施例中,边缘PLD 400可以与成像模块446集成,以使例如边缘PLD与成像模块446之间以及电子系统430的各种元件之间的功率和/或数据递送路由最小。一般而言,边缘PLD 400可以被配置为处理和标记由成像模块446提供的原始影像,并且使用这种标记和/或处理来控制电子系统430的操作,例如,边缘PLD 400可以基本独立于电子系统430中的功率、唤醒或睡眠状态而发生。在各种实施例中,边缘PLD400可以被配置为使用经处理的原始影像来为电子系统430供电、使电子系统430断电、唤醒电子系统430和/或使电子系统430休眠,以认证或解除认证用户对电子系统430的访问,和/或以其他方式控制电子系统430和/或由电子系统430执行的应用的操作,如本文中所描述的。
例如,电子系统430可以被实现为计算设备、笔记本电脑、服务器、智能手机或任何其他个人电子设备和/或便携式电子设备,并且可以关于图1的系统130相似地实现。在图4所示的实施例中,电子系统430的控制器432实现图像处理器430和/或操作系统442。图像处理器430可以被配置为从成像模块446接收原始影像,并且生成与所接收到的原始影像相对应的人类质量影像,其中人类质量影像包括原始影像的一个或多个人类质量图像特性和/或人类质量处理版本。一般而言,人类质量图像特性可以与相对高质量的影像相对应,该相对高质量的影像具有与成像模块446所提供的原始影像的结构特性共有的结构特性,诸如例如,原始影像的分辨率、帧速率、位深度、色彩保真度、动态范围和/或压缩状态,并且已经使用资源相对密集型的图像处理技术对其进行了处理,以产生具有人类可辨别对象和/或对象特征的影像。操作系统442可以被配置为将相对复杂和资源相对密集型(例如,耗电型)的图像处理应用于由图像处理器440生成的人类质量影像,诸如全分辨率、帧速率、位深度、色彩保真度和/或其他人类质量图像特性图像处理,如本文中所使用的,以及使用这种处理的结果来显示影像、控制电子系统430的操作和/或控制由控制器432执行的各种其他应用的执行。
更一般地,控制器432可以由被配置为执行本文中所描述的各种方法的任何处理器、CPU、GPU和/或其他逻辑器件来实现。在一些实施例中,控制器432可以被配置为生成与所接收到的原始影像相对应的人类质量影像、从边缘PLD 400接收一个或多个图像标签和/或引擎质量影像、并且至少部分基于所生成的人类质量影像和由边缘PLD 400提供的一个或多个图像标签和/或所生成的引擎质量影像中的至少一个来生成系统响应。在一些实施例中,生成系统响应可以包括:至少部分基于由控制器432生成的人类质量影像和由边缘PLD 400提供的一个或多个图像标签来生成与所接收到的原始影像相对应的带有标签的人类质量影像;以及经由电子系统430的显示器(用户接口435)显示带有标签的人类质量影像,和/或根据与人类质量影像相关联的一个或多个图像标签(例如,由标签值交叉引用的)来存储带有标签的人类质量图像。在其他实施例中,生成系统响应可以包括:生成系统警报(例如,可听警报和/或可见警报)、禁用成像模块446、禁用电子系统430的显示器和/或使电子系统430断电。
在相关实施例中,控制器432可以被配置为从边缘PLD 400接收一个或多个图像标签和/或引擎质量影像,并且至少部分基于由边缘PLD提供的一个或多个图像标签和/或引擎质量影像来生成系统响应。在这样的实施例中,系统响应可以包括:生成用户输入(例如,操纵杆输入)、生成系统警报、禁用显示器和/或使电子系统430断电。例如,可以在向电子系统430所生成的游戏或模拟环境提供用户输入的情况下执行生成用户输入,其中边缘PLD400被配置为生成包括用户面部方位跟踪的图像标记,例如,该图像标记可以用于调整游戏环境或模拟环境如何渲染给用户。
存储器434、用户接口435、机器可读介质436和用户输入设备437可以以与图1的系统130的相似命名元件相似的方式来实现。电源444可以被实现为被配置为向系统430的每个元件提供功率和/或提供电源444的充电状态、功率损耗和/或其他功率特性的任何功率存储设备。成像模块446可以被实现为检测器元件阵列,诸如可以被布置在焦平面阵列(FPA)中的可见光谱敏感检测器元件,该焦平面阵列被配置为捕获并提供关于电子系统430的周围环境的原始影像。
通信模块438可以被实现为任何有线通信模块和/或无线通信模块,该有线通信模块和/或无线通信模块被配置为在系统430的元件和/或远程设备和/或系统之间传输和接收模拟信号和/或数字信号。例如,通信模块438可以被配置为接收控制信号和/或数据,并且将它们提供给控制器432和/或存储器434。在其他实施例中,通信模块438可以被配置为从成像模块446、控制器432和/或边缘PLD 400接收图像和/或其他传感器信息,并且将数据中继到系统430内和/或外部系统。无线通信链路可以包括一个或多个模拟和/或数字无线电通信链路,诸如WiFi等,如本文中所描述的,并且例如可以是直接通信链路,或可以通过被配置为接收和重新传输无线通信的一个或多个无线中继站来中继。由通信模块438建立的通信链路可以被配置为在系统430的整个操作期间在系统430的元件之间基本连续地传输数据,其中这样的数据包括各种类型的传感器数据、控制参数和/或其他数据,如本文中所描述的。例如,其他系统模块480可以包括其他和/或附加传感器、致动器、接口、通信模块/节点和/或用户接口设备。在一些实施例中,其他模块480可以包括提供测量和/或其他传感器信号的其他环境传感器,测量和/或其它传感器信号可以被显示给用户和/或由系统430的其他设备使用以提供系统430的操作控制。
在各种实施例中,边缘PLD 400可以由与图1中关于PLD 100所描述的元件相似的元件来实现,但其中附加可配置和/或硬IP元件被配置为促进由边缘PLD 4进行的图像处理,如本文中所描述的。具体地,如所示出的,边缘PLD 400可以包括PLD构造,该PLD构造包括多个可配置PLB,该多个可配置PLB被配置为实现边缘PLD 400的图像引擎预处理器460和边缘PLD 4的图像引擎462。更一般地,边缘PLD 400可以由关于PLD 100所描述的各种元件中的任一元件来实现,并且可以使用与关于图3所描述的过程300相似的设计过程来配置,以根据期望配置来生成边缘PLD并且对边缘PLD进行编程。具体地,边缘PLD 400可以被配置为使用在图4中标识的所标识的各种硬和/或软IP元件来处理成像模块446所提供的原始影像。
图像引擎预处理器460可以由边缘PLD 400的可配置资源来实现,并且被配置为生成与由成像模块446提供的所接收到的原始影像相对应的引擎质量影像,如本文中所描述的。这样的引擎质量影像可以是以下各项中的一项或多项:相对于原始影像和/或原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性。在各种实施例中,图像引擎预处理器460可以被配置为将原始影像的分辨率、帧速率、位深度、色彩保真度、动态范围、压缩状态和/或另一图像特性转换为相对于原始影像和/或原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性;对原始影像应用引擎质量直方图均衡;对原始影像应用引擎质量色彩校正;和/或对原始影像应用引擎质量曝光控制。经简化的引擎质量直方图均衡可以包括:确定与图像帧中灰度像素值的分布相对应的三个特性分布值(例如,根据高斯分布,10%最小值、平均值、90%最大值);然后应用增益函数(例如,常数、线性、B曲线和/或其他增益函数)来调整图像的灰度像素值分布,使得三个特性分布值等于预先选定目标分布值。
图像引擎462可以由边缘PLD 400的可配置资源来实现,并且被配置为生成与图像引擎预处理器460所生成的引擎质量影像相关联的一个或多个图像标签。在一些实施例中,图像引擎462可以被实现为神经网络、机器学习和/或基于人工智能的图像处理引擎,图像引擎可以被训练为通过以下各项来生成一个或多个图像标签:至少部分基于例如训练图像和与图像标签的期望选择相对应的相关联的图像标记的人类质量训练集合来生成训练图像和相关联的图像标记的引擎质量训练集合;并且至少部分基于引擎质量训练集合来确定图像引擎的权重的集合,如本文中所描述的。在各种实施例中,一个或多个图像标签可以包括对象存在标签(例如,用户存在标签)、对象边界框标签(例如,用户面部边界框)和/或一个或多个对象特征状态标签(例如,用于验证的特定用户面部标签、一个或多个用户面部方位跟踪标签、用户面部状态标签(一只或两只眼睛睁开或闭合、嘴巴张开或闭合、嘴巴微笑、面部皱眉)等)。
其他PLD模块482可以包括各种硬和/或软模块和/或互链总线,诸如安全引擎、配置引擎、非易失性存储器(NVM)、可编程I/O和/或其他集成电路(IC)模块,它们都可以在单片IC上实现。边缘PLD 400的安全引擎可以被实现为硬IP资源,该硬IP资源被配置为提供各种安全功能以供边缘PLD和/或边缘PLD的配置引擎使用。边缘PLD 400的配置引擎可以被实现为硬IP资源,该硬IP资源被配置为管理边缘PLD 400的各种元件的配置和/或它们之间的通信。边缘PLD 400的NVM可以被实现为硬IP资源,该硬IP资源被配置为提供用于促进边缘PLD的安全操作的数据的安全非易失性存储。边缘PLD 400的可编程I/O可以被实现为至少部分可配置资源,该至少部分可配置资源被配置为提供或支持边缘PLD 400与电子系统430的元件之间的通信链路,例如,跨被配置为将边缘PLD的部分链路到可编程I/O的总线。在一些实施例中,这种总线和/或可编程I/O可以与边缘PLD 400集成。
更一般地,其他PLD模块482可以被实现为各种任意硬和/或可配置IP资源,这些资源被配置为促进边缘PLD 400的操作。例如,除了图像处理之外,边缘PLD 400还可以被配置为控制电子系统430的各种操作。在一些实施例中,边缘PLD 400可以被配置为向电子系统430的控制器432和/或存储器434提供图像标签和/或引擎质量影像。在其他实施例中,边缘PLD 400可以被配置为为电子系统430供电、唤醒电子系统430、使电子系统430断电或休眠,和/或认证/解除认证用户对电子系统430的访问,这可以至少部分基于图像标签和/或引擎质量影像。
例如,边缘PLD 400可以被配置为针对指示用户存在的图像标签来监测由成像模块446提供的原始影像,并且为电子系统430供电或唤醒电子系统430。在唤醒电子系统430时,边缘PLD 400可以被配置为针对指示特定用户的存在的图像标签来监测原始影像,然后向电子系统430认证特定用户(例如,触发OS 442以使该用户登录)。边缘PLD 400可以被配置为针对缺少用户或特定用户的出现来监测原始影像,并且取消对用户的验证(例如,注销)或控制电子系统430休眠或断电。在备选实施例中,边缘PLD 400可以被配置为监测电子系统430的电源444的充电状态,并且至少部分基于所监测的电源444的充电状态来控制成像模块446的帧速率(例如,当充电状态低于预先选定低功率阈值时,降低帧速率以节省功率)。
图5图示了根据本公开的实施例的包括边缘PLD 400的电子系统430的数据流程图500。在图5中,数据流程图500示出了由成像模块446提供的原始影像510经由原始图像通路511递送到控制器432和/或边缘PLD 400。在一些实施例中,控制器432和电子系统430的大部分其余部分可以处于睡眠状态或被断电,例如,除了成像模块446和边缘PLD 400之外。在这样的实施例中,边缘PLD 400可以被配置为接收由成像模块446提供的原始影像、生成引擎质量影像560(例如,经由图像引擎预处理器460)、并且生成与所生成的引擎质量影像相关联的一个或多个图像标签560(例如,经由图像引擎462),用于经由边缘PLD链路562递送到控制器432。在各种实施例中,原始图像通路511和/或边缘PLD链路562可以耦合在边缘PLD 400与控制器432和/或电子系统430的各种其他元件之间。
在其他实施例中,控制器432和/或系统430可以被供电和/或唤醒(例如,如所示出的,提供双图像处理路径),并且边缘PLD 400和控制器432可以被配置为例如基本同时处理由成像模块446提供的原始影像,使得提供给控制器432的OS 442的一个或多个标签和/或相关联的引擎质量影像560可以与源自成像模块446的相同原始影像帧(例如,人类质量影像540)的人类质量处理版本相链路。在其他实施例中,提供给控制器432的OS 442的一个或多个标签和/或相关引擎质量影像可以用于控制电子系统430的操作,而无需明确链路到由成像模块446提供的原始影像的人类质量处理版本,如本文中所描述的。
图6A图示了根据本公开的实施例的用于边缘PLD 400的训练系统600的框图。在图6A所示的实施例中,训练系统600包括去优化器614,该去优化器614被配置为至少部分基于相对高的人类质量训练集合640来生成相对低的引擎质量训练集合642,该相对低的引擎质量训练集合642然后被提供给图像引擎训练器630以确定边缘PLD 400的权重632。在各种实施例中,去优化器614和/或图像引擎训练器630可以由与图1的系统130相似的计算系统来实现。人类质量训练集合640可以包括多个人类质量训练图像和相关联的图像标签,这些图像标签例如可以由单独人类质量图像引擎生成,或可以以手动方式进行注释/标记。引擎质量训练集合642可以包括由去优化器614生成的多个引擎质量训练图像和相关联的图像标签(例如,基于和/或等于人类质量训练集合640的图像标签)。与相对于成像模块446所提供的原始影像510而言质量降低的图像引擎预处理器460所生成的引擎质量影像560相对比,可以生成这样的引擎质量训练图像来模拟常见的不利图像捕获状况和/或特性。在一些实施例中,可以例如基于针对常见的不利图像捕获状况和/或特性而选择的人类输入来根据去优化器参数612来配置去优化器614,并且被配置为将人类质量训练集合640转换为引擎质量训练集合642。在可选实施例中,可以基于成像模块446所提供的示例低质量原始影像集合610和/或低质量原始影像集合610与人类质量训练集合640内的影像的比较来确定去优化器参数612。
图像引擎训练器630可以被配置为至少部分基于引擎质量训练集合642来确定边缘PLD 400的图像引擎462的权重632。在可选实施例中,图像引擎训练器630可以被配置为向手动评价器668提供带有标签的影像和/或其他成像标记结果634,该手动评价器668可以用于手动调整这样的图像标记并且向图像引擎训练器630提供手动反馈636,使得可以至少部分基于引擎质量训练集合642和手动反馈636来生成经更新的权重632。在其他可选实施例中,手动评价器668可以至少部分基于由边缘PLD 400生成的成像标记结果634和图像标签和/或引擎质量影像(输出662的反馈664)来生成手动反馈636,如所示出的。在所有相关实施例中,权重662可以与边缘PLD 400的配置集成,并且用于配置边缘PLD的图像引擎462。
图6B图示了根据本公开的实施例的由边缘PLD 400处理的图像。例如,由成像模块446提供的原始影像帧616表现出低亮度和缺乏细节和/或其他不利图像捕获特性,并且在由边缘PLD 400执行的处理步骤602之后,所得带有标签的引擎质量影像帧667表现出分辨率、位深度和/或色彩保真度的降低,并且被适当地标记为没有用户存在。由成像模块446提供的原始影像帧618也表现出低亮度和缺乏细节和/或其他不利图像捕获特性,并且在由边缘PLD 400执行的处理步骤604之后,所得带有标签的引擎质量影像帧669显示出分辨率、位深度和/或色彩保真度的降低,并且使用用户面部边界框(例如,对象边界框标签672)但不使用特定用户标签或面部跟踪或状态标签(例如,对象特征状态标签)被适当地标记为用户存在(对象存在标签670)。
图7图示了根据本公开的实施例的用于操作包括边缘PLD的电子系统的过程。在一些实施例中,图7的操作可以被实现为由与图1至图6B所示的对应电子设备、模块、系统和/或结构相关联的一个或多个逻辑器件执行的软件指令。更一般地,图7的操作可以使用软件指令和/或电子硬件(例如,电感器、电容器、放大器、致动器或其他模拟和/或数字部件)的任何组合来实现。应当领会,过程700的任何步骤、子步骤、子过程或框可以按照不同于图7所图示的实施例的次序或布置来执行。例如,在其他实施例中,可以从过程700中省略一个或多个框,并且可以包括其他框。此外,框输入、框输出、各种传感器信号、传感器信息、校准参数和/或其他操作参数可以在移动到过程700的后续部分之前存储到一个或多个存储器。尽管过程700是参考图1至图6B中的系统、设备和元件描述的,但过程700可以由其他系统、设备和元件执行,并且包括不同的电子系统、设备、元件、组件和/或布置选择。在启动过程700时,例如,可以通过与过程700相似的过程的先前执行来填充各种系统参数,或可以将各种系统参数初始化为零和/或对应于从过程700的过去操作导出的典型值、所存储的值和/或所学习的值的一个或多个值,如本文中所描述的。
在框710中,逻辑器件接收原始影像。例如,边缘PLD 400(例如,边缘PLD 400的图像引擎462)可以被配置为接收由电子系统430的成像模块446提供的原始影像。在一些实施例中,例如,电子系统430的边缘PLD 400和控制器432两者都可以被配置为接收由成像模块446提供的原始影像,并且被配置为唯一地标识图像内的图像帧,以便能够将由边缘PLD提供的图像标记与直接传递到控制器432和/或通过控制器432传递的影像相链路,如本文中所描述的。
在框720中,逻辑器件生成引擎质量影像。例如,边缘PLD 400的图像引擎预处理器460可以被配置为生成与在框710中接收到的原始影像相对应的引擎质量影像。在一些实施例中,引擎质量影像可以根据以下各项中的一项或多项来表征:相对于原始影像和/或原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性。更一般地,图像引擎预处理器460可以被配置为通过将原始影像的帧速率、位深度、色彩保真度、动态范围、压缩状态和/或另一图像特性转换为相对于原始影像和/或原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性来生成引擎质量影像。图像引擎预处理器460还可以被配置为通过对原始影像应用引擎质量直方图均衡、对原始影像应用引擎质量色彩校正和/或对原始影像应用引擎质量曝光控制来生成引擎质量影像,如本文中所描述的。
在框730中,逻辑器件生成与引擎质量影像相关联的图像标签。例如,边缘PLD 400的图像引擎462可以被配置为生成与在框720中生成的引擎质量影像相关联和/或与在框710中接收到的原始影像相对应的一个或多个图像标签。在一些实施例中,一个或多个图像标签可以包括对象存在标签、对象边界框标签和/或一个或多个对象特征状态标签,如本文中所描述的。在一些实施例中,边缘PLD 400可以被配置为向电子系统430的控制器432和/或存储器434提供一个或多个图像标签和/或所生成的引擎质量影像。在其他实施例中,边缘PLD 400可以被配置为至少部分基于一个或多个图像标签和/或所生成的引擎质量影像来为电子系统430供电、唤醒电子系统430、使电子系统430断电或休眠,和/或认证/解除认证用户对电子系统430的访问。在其他实施例中,边缘PLD 400可以被配置为监测电子系统430的电源444的充电状态,并且至少部分基于所监测的电源444的充电状态来控制成像模块446的帧速率。
在各种实施例中,图像引擎462可以被训练为通过以下各项来生成一个或多个图像标签:至少部分基于例如训练图像和与图像标签的期望选择相对应的相关联的图像标记的人类质量训练集合640来生成训练图像和相关联的图像标记的引擎质量训练集合642;以及至少部分基于引擎质量训练集合642来确定边缘PLD 400的图像引擎462的权重的集合632。
在框740中,逻辑器件生成人类质量影像。例如,电子系统430的控制器432可以被配置为生成与在框710中接收到的原始影像相对应的人类质量影像,其中人类质量影像包括一个或多个人类质量图像特性和/或原始影像的人类质量处理版本,如本文中所描述的。
在框750中,逻辑器件生成系统响应。例如,电子系统430的控制器432可以被配置为从边缘PLD 400接收在框720和730中生成的一个或多个图像标签和/或引擎质量影像,并且至少部分基于在框740中生成的一个或多个图像标签、引擎质量影像和/或人类质量影像中的至少一个来生成系统响应,如本文中所描述的。在一些实施例中,控制器432可以被配置为至少部分基于由边缘PLD 400提供的一个或多个图像标签和引擎质量影像中的至少一个来生成系统响应。
在一些实施例中,生成系统响应可以包括:至少部分基于所生成的人类质量影像和由边缘PLD提供的一个或多个图像标签来生成与所接收到的原始影像相对应的带有标签的人类质量影像;以及经由电子系统的显示器显示带有标签的人类质量影像,和/或根据与人类质量影像相关联的一个或多个图像标签(诸如由电子系统430执行的视频会议应用的一部分)来存储带有标签的人类质量影像。在其他实施例中,生成系统响应可以包括:生成系统警报、禁用电子系统430的成像模块、禁用电子设备430的显示器和/或使电子设备430断电。在其他实施例中,生成系统响应可以包括:至少部分基于一个或多个图像标签和/或所生成的引擎质量影像来生成用户输入,诸如用于游戏或模拟环境的操纵杆或其他用户输入(例如,用户面部方位)。
因此,通过采用本文中所描述的系统和方法,本公开的实施例能够提供相对低功耗、灵活且特征丰富的图像处理,以供相对复杂的基于影像的特征和应用使用,包括在非最佳环境成像条件下为各种不同的电子系统提供全天候操作控制。
在适用的情况下,本公开所提供的各种实施例可以使用硬件、软件或硬件和软件的组合来实现。此外,在适用的情况下,本文中所阐述的各种硬件部件和/或软件部件可以被组合成包括软件、硬件和/或两者的复合部件。在适用的情况下,在不背离本公开的精神的情况下,可以将本文中所阐述的各种硬件部件和/或软件部件分成包括软件、硬件或两者的子部件。另外,在适用的情况下,可以设想软件部件可以被实现为硬件部件,反之亦然。
根据本公开的软件(诸如非暂态指令、程序代码和/或数据)可以存储在一个或多个非暂态机器可读介质上。还可以设想,可以使用一个或多个联网和/或以其他方式的通用或专用计算机和/或计算机系统来实现本文中所标识的软件。在适用的情况下,本文中所描述的各种步骤的排序可以发生改变,组合成复合步骤,和/或分成子步骤,以提供本文中所描述的特征。
上文所描述的实施例说明但不限制本发明。还应当理解,根据本发明的原理,许多修改和变化是可能的。因此,本发明的范围仅由以下权利要求限定。
Claims (22)
1.一种电子系统,包括:
边缘可编程逻辑器件(PLD),其中所述边缘PLD包括多个可编程逻辑块(PLB),所述多个可编程逻辑块被配置为实现所述边缘PLD的图像引擎预处理器和所述边缘PLD的图像引擎,其中所述边缘PLD被配置为执行计算机实现的方法,所述计算机实现的方法包括:
接收由所述电子系统的成像模块经由所述电子系统的原始图像通路提供的原始影像;
经由所述边缘PLD的所述图像引擎预处理器生成与所接收到的原始影像相对应的引擎质量影像;以及
经由所述边缘PLD的所述图像引擎生成与所生成的引擎质量影像相关联的一个或多个图像标签。
2.根据权利要求1所述的电子系统,其中
所述引擎质量影像包括以下各项中的一项或多项:相对于所述原始影像和/或所述原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性。
3.根据权利要求1所述的电子系统,其中生成所述引擎质量影像包括:
将所述原始影像的分辨率、帧速率、位深度、色彩保真度、动态范围、压缩状态和/或另一图像特性转换为相对于所述原始影像和/或所述原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性;
对所述原始影像应用引擎质量直方图均衡;
对所述原始影像应用引擎质量色彩校正;和/或
对所述原始影像应用引擎质量曝光控制。
4.根据权利要求1所述的电子系统,其中
所述一个或多个图像标签包括对象存在标签、对象边界框标签和/或一个或多个对象特征状态标签。
5.根据权利要求1所述的电子系统,其中所述计算机实现的方法还包括:
将所述一个或多个图像标签和/或所述所生成的引擎质量影像提供给所述电子系统的控制器和/或存储器。
6.根据权利要求1所述的电子系统,其中所述计算机实现的方法还包括:
至少部分基于所述一个或多个图像标签和/或所述所生成的引擎质量影像来为所述电子系统供电、唤醒所述电子系统、使所述电子系统断电或使所述电子系统休眠、和/或认证或解除认证用户对所述电子系统的访问。
7.根据权利要求1所述的电子系统,其中所述计算机实现的方法还包括:
监测所述电子系统的电源的充电状态;以及
至少部分基于所监测的所述电源的充电状态来控制所述成像模块的帧速率。
8.根据权利要求1所述的电子系统,还包括:
控制器和存储器,所述控制器和所述存储器耦合到所述边缘PLD并且被配置为接收由所述成像模块经由所述原始图像通路提供的所述原始影像,其中所述存储器包括机器可读指令,所述机器可读指令当由所述外部系统的所述处理器执行时,适于使得所述外部系统:
生成与所述所接收到的原始影像相对应的人类质量影像,其中所述人类质量影像包括所述原始影像的一个或多个人类质量图像特性和/或人类质量处理版本;
从所述边缘PLD接收所述一个或多个图像标签和/或所述所生成的引擎质量影像;以及
至少部分基于所述所生成的人类质量影像和由所述边缘PLD提供的所述一个或多个图像标签和/或所述所生成的引擎质量影像中的至少一项来生成系统响应。
9.根据权利要求8所述的电子系统,其中生成所述系统响应包括:
至少部分基于所述所生成的人类质量影像和由所述边缘PLD提供的所述一个或多个图像标签,生成与所述所接收到的原始影像相对应的带有标签的人类质量影像,以及经由所述电子系统的显示器显示所述带有标签的人类质量影像和/或根据与所述人类质量影像相关联的所述一个或多个图像标签来存储所述带有标签的人类质量影像;和/或
生成系统警报,禁用所述电子系统的所述成像模块,禁用所述电子系统的所述显示器,和/或使所述电子系统断电。
10.根据权利要求1所述的电子系统,还包括:
控制器和存储器,所述控制器和所述存储器耦合到所述边缘PLD并且被配置为接收由所述成像模块经由所述原始图像路径提供的所述原始影像,其中所述存储器包括机器可读指令,所述机器可读指令当由所述外部系统的所述处理器执行时,适于使得所述外部系统:
从所述边缘PLD接收所述一个或多个图像标签和/或所述所生成的引擎质量影像;以及
至少部分基于所述一个或多个图像标签和/或所述所生成的引擎质量影像来生成系统响应,其中生成所述系统响应包括:生成用户输入、生成系统警报、禁用所述电子系统的显示器和/或使所述电子系统断电。
11.根据权利要求1所述的电子系统,其中
所述边缘PLD的所述图像引擎被实现为神经网络、机器学习和/或基于人工智能的图像处理引擎;以及
所述边缘PLD的所述图像引擎被训练为通过以下方式生成一个或多个图像标签:
至少部分基于训练图像和相关联的图像标记的人类质量训练集合来生成训练图像和相关联的图像标记的引擎质量训练集合,所述相关联的图像标记与图像标签的期望选择相对应;以及
至少部分基于所述引擎质量训练集合来确定针对所述图像引擎的权重的集合。
12.一种用于操作电子系统的方法,所述电子系统包括边缘可编程逻辑器件(PLD),所述边缘可编程逻辑器件(PLD)实现图像引擎预处理器和图像引擎,所述方法包括:
接收由所述电子系统的成像模块经由所述电子系统的原始图像通路提供的原始影像;
经由所述边缘PLD的所述图像引擎预处理器生成与所接收到的原始影像相对应的引擎质量影像;以及
经由所述边缘PLD的所述图像引擎生成与所生成的引擎质量影像相关联的一个或多个图像标签。
13.根据权利要求12所述的方法,其中
所述引擎质量影像包括以下各项中的一项或多项:相对于所述原始影像和/或所述原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性。
14.根据权利要求12所述的方法,其中生成所述引擎质量影像包括:
将所述原始影像的分辨率、帧速率、位深度、色彩保真度、动态范围、压缩状态和/或另一图像特性转换为相对于所述原始影像和/或所述原始影像的人类质量处理版本的较低分辨率、较低帧速率、较低位深度、较低色彩保真度、较窄动态范围、相对有损压缩状态和/或非人类质量图像特性;
对所述原始影像应用引擎质量直方图均衡;
对所述原始影像应用引擎质量色彩校正;和/或
对所述原始影像应用引擎质量曝光控制。
15.根据权利要求12所述的方法,其中
所述一个或多个图像标签包括对象存在标签、对象边界框标签和/或一个或多个对象特征状态标签。
16.根据权利要求12所述的方法,还包括:
将所述一个或多个图像标签和/或所述所生成的引擎质量影像提供给所述电子系统的控制器和/或存储器。
17.根据权利要求12所述的方法,还包括:
至少部分基于所述一个或多个图像标签和/或所述所生成的引擎质量影像来为所述电子系统供电、唤醒所述电子系统、使所述电子系统断电或使所述电子系统休眠、和/或认证或解除认证用户对所述电子系统的访问。
18.根据权利要求12所述的方法,还包括:
监测所述电子系统的电源的充电状态;以及
至少部分基于所监测的所述电源的充电状态来控制所述成像模块的帧速率。
19.根据权利要求12所述的方法,还包括:
生成与所述所接收到的原始影像相对应的人类质量影像,其中所述人类质量影像包括所述原始影像的一个或多个人类质量图像特性和/或人类质量处理版本;
从所述边缘PLD接收所述一个或多个图像标签和/或所述所生成的引擎质量影像;以及
至少部分基于所述所生成的人类质量影像和由所述边缘PLD提供的所述一个或多个图像标签和/或所述所生成的引擎质量影像中的至少一项来生成系统响应。
20.根据权利要求19所述的方法,其中生成所述系统响应包括:
至少部分基于所述所生成的人类质量影像和由所述边缘PLD提供的所述一个或多个图像标签,生成与所述所接收到的原始影像相对应的带有标签的人类质量影像,以及经由所述电子系统的显示器显示所述带有标签的人类质量影像和/或根据与所述人类质量影像相关联的所述一个或多个图像标签来存储所述带有标签的人类质量影像;和/或
生成系统警报,禁用所述电子系统的所述成像模块,禁用所述电子系统的所述显示器,和/或使所述电子系统断电。
21.根据权利要求12所述的方法,还包括:
从所述边缘PLD接收所述一个或多个图像标签和/或所述所生成的引擎质量影像;以及
至少部分基于所述一个或多个图像标签和/或所述所生成的引擎质量影像来生成系统响应,其中生成所述系统响应包括:生成用户输入、生成系统警报、禁用所述电子系统的显示器和/或使所述电子系统断电。
22.根据权利要求12所述的方法,其中
所述边缘PLD的所述图像引擎被实现为神经网络、机器学习和/或基于人工智能的图像处理引擎;以及
所述边缘PLD的所述图像引擎被训练为通过以下方式生成所述一个或多个图像标签:
至少部分基于训练图像和相关联的图像标记的人类质量训练集合来生成训练图像和相关联的图像标记的引擎质量训练集合,所述相关联的图像标记与图像标签的期望选择相对应;以及
至少部分基于所述引擎质量训练集合来确定针对所述图像引擎的权重的集合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163159394P | 2021-03-10 | 2021-03-10 | |
US63/159,394 | 2021-03-10 | ||
PCT/US2022/019837 WO2022192596A1 (en) | 2021-03-10 | 2022-03-10 | Image tagging engine systems and methods for programmable logic devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116964617A true CN116964617A (zh) | 2023-10-27 |
Family
ID=83227102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280020409.2A Pending CN116964617A (zh) | 2021-03-10 | 2022-03-10 | 用于可编程逻辑器件的图像标记引擎系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230419697A1 (zh) |
EP (1) | EP4305585A1 (zh) |
CN (1) | CN116964617A (zh) |
WO (1) | WO2022192596A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6980026B1 (en) * | 2003-12-16 | 2005-12-27 | Xilinx, Inc. | Structures and methods for reducing power consumption in programmable logic devices |
KR101182637B1 (ko) * | 2010-12-24 | 2012-09-14 | 고려대학교 산학협력단 | 영상 제공 장치 및 그 방법 |
JP5845464B2 (ja) * | 2011-05-31 | 2016-01-20 | パナソニックIpマネジメント株式会社 | 画像処理装置及び画像処理方法並びにデジタルカメラ |
US9621741B2 (en) * | 2014-12-10 | 2017-04-11 | Intel Corporation | Techniques for context and performance adaptive processing in ultra low-power computer vision systems |
KR20160109586A (ko) * | 2015-03-12 | 2016-09-21 | 삼성전자주식회사 | 이미지 처리 시스템, 및 이를 포함하는 모바일 컴퓨팅 장치 |
US11283991B2 (en) * | 2019-06-04 | 2022-03-22 | Algolux Inc. | Method and system for tuning a camera image signal processor for computer vision tasks |
US10574890B2 (en) * | 2018-01-12 | 2020-02-25 | Movidius Ltd. | Methods and apparatus to operate a mobile camera for low-power usage |
US10735675B2 (en) * | 2018-04-13 | 2020-08-04 | Cornell University | Configurable image processing system and methods for operating a configurable image processing system for multiple applications |
US10861421B2 (en) * | 2018-09-27 | 2020-12-08 | Mediatek Inc. | Adaptive control of GPU rendered frame quality |
US10929973B2 (en) * | 2018-10-02 | 2021-02-23 | Siemens Healtcare Gmbh | Medical image pre-processing at the scanner for facilitating joint interpretation by radiologists and artificial intelligence algorithms |
CN111355936B (zh) * | 2018-12-20 | 2022-03-29 | 淄博凝眸智能科技有限公司 | 用于人工智能的采集和处理图像数据的方法及系统 |
KR102097905B1 (ko) * | 2019-06-04 | 2020-04-06 | 주식회사 딥엑스 | 이미지 객체 인식 장치 및 방법 |
US20200226964A1 (en) * | 2019-01-15 | 2020-07-16 | Qualcomm Incorporated | System and method for power-efficient ddic scaling utilization |
WO2021042367A1 (en) * | 2019-09-06 | 2021-03-11 | Intel Corporation | Deep learning based distributed machine vision camera system |
JP2023503355A (ja) * | 2019-11-27 | 2023-01-27 | シンハ,パーヴェル | 画像センサデータの画像解析への直接変換を実行するためのシステム及び方法 |
WO2022072261A1 (en) * | 2020-09-30 | 2022-04-07 | Snap Inc. | Low power camera pipeline for computer vision mode in augmented reality eyewear |
-
2022
- 2022-03-10 WO PCT/US2022/019837 patent/WO2022192596A1/en active Application Filing
- 2022-03-10 CN CN202280020409.2A patent/CN116964617A/zh active Pending
- 2022-03-10 EP EP22768025.3A patent/EP4305585A1/en active Pending
-
2023
- 2023-09-08 US US18/464,175 patent/US20230419697A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4305585A1 (en) | 2024-01-17 |
WO2022192596A1 (en) | 2022-09-15 |
US20230419697A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766812B (zh) | 一种基于MiZ702N的实时人脸检测识别系统 | |
KR100982145B1 (ko) | 구성가능 어드레스 매핑의 방법 | |
US9684838B2 (en) | Empirical data modeling | |
Rossi et al. | A heterogeneous digital signal processor for dynamically reconfigurable computing | |
US11171652B2 (en) | Method and apparatus for implementing configurable streaming networks | |
Amara et al. | Sobel edge detection system design and integration on an FPGA based HD video streaming architecture | |
CN107077186A (zh) | 低功率计算成像 | |
Xu et al. | Fpga-based implementation of ship detection for satellite on-board processing | |
US11586465B2 (en) | Scalable hardware thread scheduler | |
US20220229411A1 (en) | Remote programming systems and methods for programmable logic devices | |
CN116964617A (zh) | 用于可编程逻辑器件的图像标记引擎系统和方法 | |
Acasandrei et al. | AMBA bus hardware accelerator IP for Viola–Jones face detection | |
Tabkhi et al. | Power‐efficient real‐time solution for adaptive vision algorithms | |
Saidani et al. | Hardware Acceleration of Video Edge Detection with Hight Level Synthesis on the Xilinx Zynq Platform | |
Singh et al. | Prototyping an automated video surveillance system using FPGAs | |
Narasimhamurthy et al. | Fast architecture for low level vision and image enhancement for reconfigurable platform | |
Archana et al. | An investigation towards effectiveness in image enhancement process in mpsoc | |
Adam et al. | FPGA design of a camera control system for road traffic monitoring | |
Chen et al. | Hardware design of moving object detection on reconfigurable system | |
Pérez et al. | A hardware accelerator for edge detection in high-definition video using cellular neural networks | |
Zhang et al. | Implementation and Optimization of FPGA-Based Edge Detection Algorithm | |
Bartosinski et al. | Video surveillance application based on application specific vector processors | |
Kazmi et al. | Resource-Efficient Image Buffer Architecture for Neighborhood Processors | |
Amrutha et al. | Realization of convolution layer using system verilog for achieving parallelism and improvement in performance parameters | |
Choi et al. | A 9.52 ms Latency, and Low-power Streaming Depth-estimation Processor with Shifter-based Pipelined Architecture for Smart Mobile Devices |
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 |