CN117354631A - 使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量 - Google Patents
使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量 Download PDFInfo
- Publication number
- CN117354631A CN117354631A CN202210725734.0A CN202210725734A CN117354631A CN 117354631 A CN117354631 A CN 117354631A CN 202210725734 A CN202210725734 A CN 202210725734A CN 117354631 A CN117354631 A CN 117354631A
- Authority
- CN
- China
- Prior art keywords
- roi
- interest
- processor
- signal
- video
- 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
- 238000013473 artificial intelligence Methods 0.000 title description 213
- 230000004438 eyesight Effects 0.000 claims abstract description 164
- 230000004044 response Effects 0.000 claims abstract description 65
- 230000033001 locomotion Effects 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000001514 detection method Methods 0.000 claims description 145
- 238000009877 rendering Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 154
- 238000013527 convolutional neural network Methods 0.000 description 78
- 238000013461 design Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 27
- 238000004458 analytical method Methods 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000013528 artificial neural network Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000003068 static effect Effects 0.000 description 18
- 210000003127 knee Anatomy 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 13
- 238000005096 rolling process Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 241001465754 Metazoa Species 0.000 description 7
- 230000004927 fusion Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 230000001815 facial effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 125000002015 acyclic group Chemical group 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000037237 body shape Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000003706 image smoothing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 210000002414 leg Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004297 night vision Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/61—Control of cameras or camera modules based on recognised objects
- H04N23/611—Control of cameras or camera modules based on recognised objects where the recognised objects include parts of the human body
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/215—Motion-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/251—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/695—Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/71—Circuitry for evaluating the brightness variation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/73—Circuitry for compensating brightness variation in the scene by influencing the exposure time
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/66—Remote control of cameras or camera parts, e.g. by remote control devices
- H04N23/661—Transmitting camera control signals through networks, e.g. control via the Internet
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Studio Devices (AREA)
Abstract
一种装置包括接口和处理器。该接口可以被配置为接收像素数据。该处理器可以被配置为:处理被布置为视频帧的像素数据;针对视频帧生成统计数据和时间戳;对视频帧执行计算机视觉操作以确定在时间戳处在视频帧内的一个或多个感兴趣区域;跟踪在视频帧的序列上感兴趣区域的移动;评估感兴趣区域的当前亮度值;响应于当前亮度值和目标亮度值来计算自动曝光参数;以及生成包括自动曝光参数的输出信号。该自动曝光参数被计算以用于:使视频帧中的感兴趣区域的曝光优先化,以及基于感兴趣区域的移动来动态地改变自动曝光参数。
Description
技术领域
本发明总体上涉及视频捕获,更具体地涉及用于实现使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量的方法和/或装置。
背景技术
常规的自动曝光(AE)计量技术使用静态计量加权表。例如,常规的AE计量技术包括点计量、中央计量、平均计量和定制计量(即,由最终用户定制的计量)。在常规AE计量中使用的静态计量加权表是通过从各种计量模型中选择的预先定义的表来实现的。针对静态计量表的选定的模型用于亮度计算。根据静态计量表计算出的亮度值表示图像的当前亮度。由3A技术使用图像的当前亮度来确定AE将如何改变。
在静态计量加权表中,每个数字值表示图像中子区(即,瓦片)的加权值。每个子区的亮度值按静态计量加权表中对应的加权值进行缩放。例如,具有大的加权值的子区比具有小的加权值的另一子区获得曝光的更高优先级。如果加权值等于零,则对应的子区将不会在亮度计算中考虑,并且将不会影响最终的AE调整。
静态计量加权表设计适合静态场景的曝光。然而,如果场景包括感兴趣的移动主体,则静态计量加权表模型存在弱点。导致这些弱点的原因是每个子区的加权值在初始化之后是固定的,并且无法动态改变活动的子区(即,非零瓦片)。例如,对于从低加权区移动到高加权区的人的视频捕获,该人的曝光将是不一致的(即,图像中的人可能一开始看起来是暗的,然后在人移动到高加权区时转为正常曝光)。在另一示例中,背景可能是亮的,并且感兴趣的子区可能是暗的。即使感兴趣的子区位于具有高加权瓦片的区域中,最终的平均亮度仍然会受到影响并且被来自明亮子区的大亮度值平均。使用静态计量加权表模型,无法实现最佳曝光。
期望实现使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量。
发明内容
本发明涉及一种包括接口和处理器的装置。接口可以被配置为接收像素数据。处理器可以被配置为:处理被布置为视频帧的像素数据;生成视频帧的统计数据和时间戳;对视频帧执行计算机视觉操作以确定在时间戳处视频帧内的一个或多个感兴趣区域;跟踪在视频帧的序列上感兴趣区域的移动;评估感兴趣区域的当前亮度值;响应于当前亮度值和目标亮度值来计算自动曝光参数;以及生成包括自动曝光参数的输出信号。可以计算自动曝光参数以使视频帧中感兴趣区域的曝光优先化。可以计算自动曝光参数以基于感兴趣区域的移动来动态地改变自动曝光参数。
附图说明
本发明的实施例将从以下详细描述以及所附权利要求书和附图中变得显而易见。
图1是示出根据本发明的示例实施例的可以利用处理器的边缘设备的示例的图,该处理器被配置为实现使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量。
图2是示出实现本发明的示例实施例的示例摄像机的图。
图3是示出摄像机系统的框图。
图4是示出实现被配置为执行对象跟踪和排序的卷积神经网络的摄像机系统的处理电路的图。
图5是示出智能自动曝光计量系统的框图。
图6是示出在应用AI曝光计量之前在示例视频帧中的对象检测和跟踪的图。
图7是示出示例视频帧的感兴趣区域瓦片分类的图。
图8是示出在应用AI曝光计量之后在示例视频帧中的对象检测和跟踪的图。
图9是示出用于实现使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量的方法的流程图。
图10是示出用于选择自动曝光计量技术的方法的流程图。
图11是示出用于使用全视场计量来选择自动曝光参数的方法的流程图。
图12是示出用于在没有当前计算机视觉结果的情况下使用先前的亮度值来选择自动曝光参数的方法的流程图。
图13是示出用于使用感兴趣区域跟踪来选择自动曝光参数的方法的流程图。
具体实施方式
本发明的实施例包括提供使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量,其可以:(i)可与各种计算机视觉技术互操作;(ii)跟踪多个移动感兴趣区域的曝光效果;(iii)为感兴趣区域提供准确且一致的曝光;(iv)应用于人检测、车辆检测、运动检测和/或面部检测;(v)对检测到的感兴趣区域的列表进行排序;(vi)评估当前亮度值;(vii)计算自动曝光参数以达到目标亮度值;(viii)基于计算机视觉结果来确定亮度值;(ix)使针对移动对象的曝光设置优先化;(x)对捕获的图像中的瓦片进行分类;(xi)响应于计算机视觉结果而在计量技术之间切换;(xii)预测感兴趣区域的定位和/或(xiii)被实现为一个或多个集成电路。
本发明的实施例可以被配置为实现基于人工智能(AI)的技术,以便确定捕获的图像的自动曝光(AE)的参数。可以实现计算机视觉操作,以便使用人工智能来跟踪图像中的移动主体。用于跟踪移动对象以确定AE的参数的基于AI的技术可以实现对应用于图像的计量的动态调整。
本发明的实施例可以被配置为可与各种计算机视觉技术互操作,以便跟踪视频帧中的一个或多个感兴趣区域(ROI)上的曝光效果。例如,可以实现AI计量技术,而不管实现的计算机视觉的特定类型如何。例如,可以实现计算机视觉以分析视频帧中的(多个)感兴趣区域,并且提供感兴趣区域结果以用于使用AI计量技术进行分析。基于关于视频帧中的(多个)感兴趣区域的信息,AI计量技术可以被配置为对感兴趣区域区执行准确且一致的曝光。
由本发明的实施例实现的AI计量技术可以适用于各种场景,以确保ROI区的充分曝光。例如,实现AI计量技术可以确保ROI区曝光良好,以使得能够对视频帧进行进一步的后处理技术。AI计量技术可以使用关于检测到的ROI的信息来确保在各种光照条件下的光不灵敏性。AI计量技术可以被配置为在各种光条件下提供对ROI的准确且一致的曝光。可以实现计算机视觉技术以跟踪在视频帧的序列上的ROI,以确保即使对应于ROI的检测到的对象在视频帧中的暗区和亮区之间移动,也将准确且一致的曝光应用于ROI。
本发明的实施例可以被配置为动态调整AE如何应用于视频帧。在示例中,当在视频帧中检测到移动对象时,可以选择AE参数以确保针对ROI的一致曝光。然而,当在视频帧中未检测到ROI时,AI计量技术可以被配置为重新计算AE参数,以便将曝光应用于整个视频帧(例如,在没有偏好的情况下提供对整个图像的曝光)。例如,AI计量技术可能适用于捕获移动对象的视频帧和/或捕获静态场景的视频帧。
本发明的实施例可以在由摄像机系统(例如,边缘设备)实现的处理器中实现。在一个示例中,电池供电的摄像机可以实现处理器。电池供电的摄像机可以在可以捕获(例如,门阶和街道的)静态场景的家庭的前门上实现。场景中潜在的移动主体可以包括接近家庭的访客。对于家庭使用场景,用户可能更喜欢访客的一致曝光,而不是曝光良好的街道。AI计量技术可以被配置提供针对访客的一致且准确的曝光。
在一些实施例中,AI计量技术可以由用于狩猎摄像机(hunting camera)的处理器来实现。狩猎摄像机可以安装在森林中,以持续地寻找附近的动物。静态场景可以是森林,并且场景中潜在的移动主体可以是动物。对于狩猎摄像机场景,用户可能更喜欢动物的一致曝光,而不是曝光良好的森林。AI计量技术可以被配置为提供针对动物的一致且准确的曝光。
在一些实施例中,AI计量技术可以由用于访问控制摄像机的处理器来实现。访问控制摄像机可以放置在安全门旁边,以检测授权的人并向其授予访问权限。静态场景可以是门口(doorway),并且场景中潜在的移动主体可以是走过门的人。对于访问控制摄像机场景,用户可能更喜欢曝光良好的人脸,而不是曝光良好的门口。AI计量技术可以被配置为提供针对人脸的一致且准确的曝光。
在一些实施例中,AI计量技术可以由用于交通违章检测摄像机的处理器来实现。交通检测摄像机可以安装在交通灯的室外杆上,以检测车辆的交通违章。静态场景可以是道路、街道、标志、树木和建筑物,并且场景中潜在的移动主体可以是车辆。对于交通检测场景,用户可能更喜欢曝光良好的车辆,而不是曝光良好的道路、街道、标志、树木和建筑物。AI计量技术可以被配置为提供针对车辆的一致且最佳的曝光。
在一些实施例中,AI计量技术可以由用于坠落对象检测摄像机的处理器来实现。坠落对象检测摄像机可以安装在公寓和/或其他高层建筑的一楼以检测坠落对象。静态场景可以是建筑物,并且场景中潜在的移动主体可以是坠落对象。对于坠落对象场景,用户可能更喜欢曝光良好的坠落对象,而不是曝光良好的建筑物。AI计量技术可以被配置为提供针对坠落对象的一致且最佳的曝光。
在一些实施例中,AI计量技术可以由用于安全摄像机的处理器来实现。安全摄像机可以安装在社区中的杆或其他高定位上,以检测可疑的车辆或人。静态场景可以是社区中的建筑物和街道,并且场景中潜在的移动主体可以是行人和车辆。对于安全摄像机场景,用户可能更喜欢曝光良好的行人和车辆,而不是曝光良好的建筑物和街道。AI计量技术可以被配置为提供针对行人和车辆的一致且最佳的曝光。
本发明的实施例可以被配置为在各种检测场景中工作。在一个示例中,AI计量技术可以由摄像机来实现,该摄像机可以朝向可以捕获移动主体的固定定位(例如,门铃摄像机用于访客)。在另一示例中,AI计量技术可以由摄像机来实现,该摄像机可以是移动的并朝向固定主体(例如,车载摄像机可以随车辆移动并捕获固定的景观)。在又一示例中,AI计量技术可以由摄像机实现,该摄像机可以是移动的并朝向移动主体(例如,车载摄像机可以随车辆移动并捕获行人和其他移动车辆)。通常,在捕获移动主体的同时移动的摄像机可能是最困难的实现方式。本发明的实施例可以通过使用基于在摄像机与主体之间一致的相对移动(例如,在车辆与行人之间的相对移动)的ROI预测,来克服捕获移动主体的移动摄像机所固有的困难。
本发明的实施例可以被配置为与图像传感器(例如,RGB图像传感器和/或RGB-IR传感器)一起工作。在一些实施例中,AI计量技术可以利用实现结构光投影仪(SLP)的摄像机系统来实现。然而,AI计量技术可以在没有实现SLP的摄像机中实现。所实现的摄像机的类型和/或视频捕获的使用场景可以根据特定实现方式的设计标准而变化。
参考图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。摄像机系统100a-100n中的一些还可以包括块(或电路)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重构以生成深度图和/或视差图像。
在一些实施例中,摄像机系统100a-100n可以实现多个捕获设备以便提供立体视觉操作(例如,使用多个相似图像的深度处理)。在所示示例中,摄像机系统100a和摄像机系统100n被示为具有结构光投影仪106,并且摄像机系统10b和摄像机系统100c被示为没有结构光投影仪106。由摄像机系统100a-100n中的每一个摄像机系统的处理器102实现的AI计量技术可以被配置为提供具有单目摄像机、立体视觉摄像机、RGB图像(没有结构光投影仪106)、RGB-IR图像(具有结构光投影仪106)等的功能。通常,摄像机系统100a-100n和/或处理器102可以根据实现单目捕获设备104并且没有结构光投影仪106的实施例进行描述。对于实现结构光投影仪106的实施例,结构光投影仪106的细节可以根据以下申请中提供的细节来设计:于2019年7月24日提交的美国专利申请16/520,754、于2020年8月18日提交的美国专利申请16/996,114、于2021年4月21日提交的美国专利申请17/236,340以及于2022年3月15日提交的美国专利申请17/694,726,这些申请的适当部分通过引用并入。然而,处理器102可以被配置为根据特定实现方式的设计标准为各种类型的图像传感器和/或摄像机提供AI计量技术。
参考图3,示出了说明示例实现方式的摄像机系统100的框图。摄像机系统100可以是与图2相关联地示出的摄像机100a-100n的代表性示例。摄像机系统100可以包括处理器/SoC 102和捕获设备104。
摄像机系统100还可以包括块(或电路)150、块(或电路)152、块(或电路)154、块(或电路)156、块(或电路)158、块(或电路)160、块(或电路)164和/或块(或电路)166。电路150可以实现存储器。电路152可以实现电池。电路154可以实现通信设备。电路156可以实现无线接口。电路158可以实现通用处理器。块160可以实现光学镜头。电路164可以实现一个或多个传感器。电路166可以实现人机接口设备(HID)。在一些实施例中,摄像机系统100可以包括处理器/SoC 102、捕获设备104、存储器150、镜头160、传感器164、电池152、通信模块154、无线接口156和处理器158。在另一示例中,摄像机系统100可以包括处理器/SoC 102、捕获设备104、处理器158、镜头160以及传感器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、存在性检测CNN等)。在示例中,存储器150可以存储一个或多个有向非循环图(DAG)和定义一个或多个人工神经网络模型的一组或多组加权或偏置。处理器/SoC 102可以被配置为从存储器150接收输入和/或向存储器150呈现输出。处理器/SoC 102可以被配置为呈现和/或接收其他信号(未示出)。处理器/SoC 102的输入和/或输出的数量和/或类型可以根据特定实现方式的设计标准而变化。处理器/SoC 102可以被配置用于低功率(例如,电池)操作。
电池152可以被配置为为摄像机系统100的组件存储和/或供应电力。用于卷帘式快门传感器130的动态驱动器机构可以被配置为节省功耗。降低功耗可以使得摄像机系统100能够使用电池152在延长的时间段内操作而无需再充电。电池152可以是可充电的。电池152可以是内置的(例如,不可更换的)或可更换的。电池152可以具有用于连接到外部电源(例如,用于充电)的输入。在一些实施例中,装置100可以由外部电源供电(例如,电池152可能不被实现或者可能被实现为备用电源)。可以使用各种电池技术和/或化学物质来实现电池152。所实现的电池152的类型可以根据特定实现方式的设计标准而变化。
通信模块154可以被配置为实现一个或多个通信协议。例如,通信模块154和无线接口156可以被配置为实现以下各项中的一个或多个:IEEE 102.11、IEEE 102.15、IEEE102.15.1、IEEE 102.15.2、IEEE 102.15.3、IEEE 102.15.4、IEEE 102.15.5、IEEE 102.20、和/或/>在一些实施例中,通信模块154可以是硬连线数据端口(例如,USB端口、迷你USB端口、USB-C连接器、HDMI端口、以太网端口、DisplayPort接口、Lightning端口等等)。在一些实施例中,无线接口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。可以响应于手动控制信号而激活处理器/SoC 102,而不论摄像机系统100的功率状态如何。
在一些实施例中,通信模块154和/或无线接口156可以被配置为接收特征集。接收到的特征集可以用于检测事件和/或对象。例如,特征集可以用于执行计算机视觉操作。特征集信息可以包括用于处理器102的指令以用于确定哪些类型的对象对应于感兴趣对象和/或事件。
在一些实施例中,通信模块154和/或无线接口156可以被配置为接收用户输入。用户输入可以使用户能够调整针对由处理器102实现的各种特征的操作参数。在一些实施例中,通信模块154和/或无线接口156可以被配置为与应用(例如,app)接合(例如,使用应用编程接口(API))。例如,应用可以在智能电话上实现,以使最终用户能够调整针对由处理器102实现的各种特征的各种设置和/或参数(例如,设置视频分辨率、选择帧速率、选择输出格式、为3D重构设置容差参数等)。
可以使用通用处理器电路来实现处理器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可以是视频数据(例如,视频帧的序列)。信号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可以是包括背景(例如,捕获的环境)以及各种对象的图像。信号VIDEO可以包括单通道源图像。可以响应于使用单目镜头160捕获像素数据来生成单通道源图像。
图像传感器180可以从镜头160接收输入光LIN并将光LIN转换为数字数据(例如,比特流)。例如,图像传感器180可以对来自镜头160的光执行光电转换。在一些实施例中,图像传感器180可以具有不用作图像输出的一部分的额外余量(margin)。在一些实施例中,图像传感器180可能不具有额外余量。在各种实施例中,图像传感器180可以被配置为生成RGB视频信号、IR视频信号和/或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可以提供关于捕获的视频帧的状态信息。
捕获设备104可以被配置为接收信号(例如,AE_PARAM)。信号AE_PARAM可以由处理器102生成。信号AE_PARAM可以包括由处理器102实现的AI计量技术生成的自动曝光参数。处理器/逻辑单元182可以被配置为响应于信号AE_PARAM而调整捕获设备104的操作参数。在示例中,处理器/逻辑单元182可以响应于信号AE_PARAM而调整图像传感器180的曝光。在另一示例中,处理器/逻辑单元182可以响应于信号AE_PARAM而调整用于图像传感器180的DC光圈和/或快门时间。在又一示例中,处理器/逻辑单元182可以响应于信号AE_PARAM而调整捕获设备104的缩放/倾斜/平移/聚焦。在再一示例中,处理器/逻辑单元182可以响应于信号AE_PARAM而调整图像传感器180的自动增益控制(AGC)。在一些实施例中,信号AE_PARAM可以被配置为向捕获设备104提供激活和/或唤醒信号。响应于信号AE_PARAM而进行的调整类型以调整捕获设备104的曝光、聚焦和/或捕获方向可以根据特定实现方式的设计标准而变化。
传感器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可以生成信号(例如,USER)。信号USER可以将由HID 166接收到的输入提供给处理器102。信号USER可以包括人类输入。在一个示例中,HID 166可以被配置为接收来自用户的密码输入。在另一示例中,HID 166可以被配置为接收用户输入以便向处理器102和/或存储器150提供各种参数和/或设置。在一些实施例中,摄像机系统100可以包括键盘、触摸板(或屏幕)、门铃开关和/或其他人机接口设备(HID)166。在示例中,传感器164可以被配置为确定对象何时接近HID 166。在摄像机系统100被实现为访问控制应用的一部分的示例中,可以开启捕获设备104以提供图像以用于标识尝试访问的人,并且可以打开锁定区和/或针对访问触摸板166的照明。例如,来自HID 166的输入(例如,密码或PIN码)的组合可以与由处理器102执行的存在性判断和/或深度分析相结合以实现双因素认证。
处理器/SoC 102可以接收信号VIDEO、信号SENS和/或信号USER。处理器/SoC 102可以基于信号VIDEO、信号SENS、信号USER和/或其他输入来生成一个或多个视频输出信号(例如,VIDOUT)和/或一个或多个控制信号(例如,CTRL)。在一些实施例中,可以基于对信号VIDEO和/或在信号VIDEO中检测到的对象的分析来生成信号VIDOUT和CTRL。
在各种实施例中,处理器/SoC 102可以被配置为执行以下各项中的一项或多项:特征提取、对象检测、对象跟踪、3D重构、存在性检测以及对象标识。例如,处理器/SoC 102可以通过分析来自信号VIDEO的帧并且将该帧与先前的帧进行比较来确定运动信息和/或深度信息。比较可以用于执行数字运动估计。在一些实施例中,处理器/SoC 102可以被配置为根据信号VIDEO生成包括视频数据的视频输出信号VIDOUT和/或包括视差图和深度图的深度数据信号。视频输出信号VIDOUT和/或深度数据可以被呈现给存储器150、通信模块154和/或无线接口156。在一些实施例中,视频信号VIDOUT和/或深度数据可以由处理器102内部使用(例如,不被呈现为输出)。
信号VIDOUT可以被呈现给通信设备156。在一些实施例中,信号VIDOUT可以包括由处理器102生成的经编码的视频帧。在一些实施例中,经编码的视频帧可以包括完整的视频流(例如,表示由捕获设备104捕获的所有视频的经编码的视频帧)。经编码的视频帧可以是从信号VIDEO接收到的像素数据的经编码、裁剪、拼接和/或增强的版本。在示例中,经编码的视频帧可以是信号VIDEO的高分辨率、数字、经编码、去扭曲、稳定化、裁剪、混合、拼接和/或滚动快门效果校正的版本。
在一些实施例中,信号VIDOUT可以基于由处理器102对生成的视频帧执行的视频分析(例如,计算机视觉操作)来生成。处理器102可以被配置为执行计算机视觉操作以检测视频帧中的对象和/或事件,然后将检测到的对象和/或事件转换为统计数据和/或参数。在一个示例中,由计算机视觉操作确定的数据可以由处理器102转换为人类可读格式。来自计算机视觉操作的数据可以用于检测对象和/或事件。计算机视觉操作可以由处理器102在本地执行(例如,无需与外部设备通信以卸载计算操作)。例如,本地执行的计算机视觉操作可以使计算机视觉操作能够由处理器102执行并且避免在后端服务器上运行的繁重的视频处理。避免在后端(例如,远程定位的)服务器上运行视频处理可以保护隐私。
在一些实施例中,信号VIDOUT可以是由处理器102生成的数据(例如,视频分析结果、音频/语音分析结果等),该数据可以通信到云计算服务以便聚合信息和/或为机器学习提供训练数据(例如,以改进对象检测、改进音频检测、改进存在性检测等)。在一些实施例中,信号VIDOUT可以被提供给用于大容量存储的云服务(例如,以使用户能够使用智能电话和/或台式计算机取回经编码的视频)。在一些实施例中,信号VIDOUT可以包括从视频帧中提取的数据(例如,计算机视觉的结果),并且可以将结果通信到另一设备(例如,远程服务器、云计算系统等)以将对结果的分析卸载到另一设备(例如,将对结果的分析卸载到云计算服务,而不是在本地执行所有分析)。由信号VIDOUT通信的信息的类型可以根据特定实现方式的设计标准而变化。
信号CTRL可以被配置为提供控制信号。可以响应于由处理器102做出的决定来生成信号CTRL。在一个示例中,可以响应于检测到的对象和/或从视频帧中提取的特性来生成信号CTRL。信号CTRL可以被配置为启用、禁用、改变另一设备的操作模式。在一个示例中,可以响应于信号CTRL来锁定/解锁由电子锁控制的门。在另一示例中,可以响应于信号CTRL而将设备设置为睡眠模式(例如,低功率模式)和/或从睡眠模式被激活。在又一示例中,可以响应于信号CTRL来生成警报和/或通知。由信号CTRL控制的设备的类型和/或由设备响应于信号CTRL而执行的反应可以根据特定实现方式的设计标准而变化。
可以基于由传感器164接收到的数据(例如,温度读数、运动传感器读数等)来生成信号CTRL。可以基于来自HID 166的输入来产生信号CTRL。可以基于由处理器102在视频帧中检测到的人的行为来生成信号CTRL。可以基于检测到的对象的类型(例如,人、动物、车辆等)来生成信号CTRL。可以响应于在特定定位检测到特定类型的对象来生成信号CTRL。可以响应于用户输入来生成信号CTRL,以便向处理器102和/或存储器150提供各种参数和/或设置。处理器102可以被配置为响应于传感器融合操作(例如,对从不同源接收到的信息进行聚合)来生成信号CTRL。处理器102可以被配置为响应于由处理器102执行的存在性检测的结果来生成信号CTRL。用于生成信号CTRL的条件可以根据特定实现方式的设计标准而变化。
可以实现用于基于运动传感器164的输出和/或摄像机系统100的任何其他功耗特征来激活和/或禁用捕获设备104的多步骤方式,以降低摄像机系统100的功耗并延长电池152的使用寿命。传感器164中的运动传感器可以在电池152上具有低耗电量(例如,小于10W)。在示例中,传感器164中的运动传感器可以被配置为保持开启(例如,始终活动),除非响应于来自处理器/SoC 102的反馈被禁用。由处理器/SoC 102执行的视频分析可能在电池152上具有相对大的耗电量(例如,大于运动传感器164)。在示例中,处理器/SoC 102可以处于低功率状态(或掉电),直到某种运动由传感器164中的运动传感器检测到为止。
摄像机系统100可以被配置为使用各种功率状态进行操作。例如,在掉电状态(例如,睡眠状态、低功率状态)下,传感器164中的运动传感器和处理器/SoC 102可以开启,并且摄像机系统100的其他组件(例如,图像捕获设备106、存储器150、通信模块154等)可以关闭。在另一示例中,摄像机系统100可以在中间状态下操作。在中间状态下,图像捕获设备106可以开启,并且存储器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的特征和/或功能可以根据特定实现方式的设计标准而变化。可以与于2020年4月16日提交的美国专利申请第16/831,549号、于2019年2月28日提交的美国专利申请第16/288,922号、于2017年5月12日提交的美国专利申请第15/593,493号(现在的美国专利第10,437,600号)、于2020年5月14日提交的美国专利申请第15/931,942号、于2020年8月12日提交的美国专利申请第16/991,344号、于2021年9月20日提交的美国专利申请第17/479,034号相关联地描述硬件模块190a-190n的细节,这些申请的适当部分通过引用以其整体并入本文。
硬件模块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)中的一个硬件模块可以实现人工神经网络(ANN)模块。人工神经网络模块可以被实现为全连接神经网络或卷积神经网络(CNN)。在示例中,全连接网络是“结构不可知”的,因为不需要对输入做出任何特殊假设。全连接神经网络包括一系列全连接层,这些全连接层将一层中的每个神经元连接到另一层中的每个神经元。在全连接层中,对于n个输入和m个输出,存在n*m个加权。也存在针对每个输出节点的偏置值,导致总共有(n+1)*m个参数。在已经训练好的神经网络中,在训练过程期间已经确定了(n+1)*m个参数。已经训练好的神经网络通常包括架构规范和在训练过程期间确定出的一组参数(加权和偏置)。在另一示例中,CNN架构可以明确假设输入是图像,以使得能够将特定属性编码到模型架构中。CNN架构可以包括层的序列,其中每个层通过可微函数将一个激活量转换为另一激活量。
在所示示例中,人工神经网络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配置为基于接收到的训练数据来执行计算机视觉以检测对象来训练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,示出了说明实现被配置为执行对象跟踪和排序的卷积神经网络的摄像机系统的处理电路的图。在示例中,摄像机系统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的处理电路可以被配置为基于通过执行经预训练的CNN模块190b以及加权/内核(WGTS)210做出的一个或多个推断,响应于来自传感器的数据输入而生成一个或多个输出。由处理器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中的每个信号可以传达执行操作信息和/或产生操作信息。可以在相应的电路204a-204n与电路206之间交换多个信号(例如,MEM_A至MEM_N)。信号MEM_A至MEM_N可以携带数据。信号(例如,DRAM)可以在电路150与电路206之间交换。信号DRAM可以在电路150与190a之间(例如,在传输路径208上)传输数据。
调度器电路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可以包括多个数学电路,这些数学电路被配置为处理多比特输入值并且并行地操作。卷积算子可以通过使用一维或更高维内核来计算卷积(也被称为互相关)来为计算机视觉和/或3D重构提供高效且通用的解决方案。卷积可以在计算机视觉操作(例如,对象检测、对象识别、边缘增强、图像平滑等)中是有用的。由本发明实现的技术和/或架构可以是可操作的以计算输入阵列与核的卷积。卷积算子的细节可以与于2017年1月11日递交的美国专利第10,310,768号相关联地描述,该美国专利的适当部分通过引用并入本文。
在各种实施例中,硬件引擎204a-204n可以仅被实现为硬件电路。在一些实施例中,硬件引擎204a-204n可以被实现为通用引擎,这些通用引擎可以通过电路定制和/或软件/固件被配置为作为专用机器(或引擎)来操作。在一些实施例中,硬件引擎204a-204n可以被替代地实现为在处理器158和/或一个或多个处理器102(包括但不限于向量处理器、中央处理单元(CPU)、数字信号处理器(DSP)或图形处理单元(GPU))上执行的程序代码的一个或多个实例或线程。在一些实施例中,调度器190a可以针对特定进程和/或线程选择硬件引擎204a-204n中的一个或多个。调度器190a可以被配置为响应于解析存储在DAG存储器202中的有向非循环图而将硬件引擎204a-204n指派给特定任务。
电路206可以实现共享存储器电路。共享存储器206可以被配置为响应于输入请求而存储数据和/或响应于输出请求(例如,来自处理器158、DRAM 150、调度器电路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可以将状态信息和/或输出的准备度从硬件引擎204a-204n提供给处理器158,以使得处理器158能够确定要执行的一个或多个下一条指令和/或要做出的决定。在一些实施例中,处理器158可以被配置为与共享存储器206进行通信(例如,直接地或通过调度器190a进行通信,该调度器190a经由路径208从共享存储器206接收数据)。处理器158可以被配置为从共享存储器206取回信息以做出决定。处理器158响应于来自计算机视觉处理器102的信息而执行的指令可以根据特定实现方式的设计标准而变化。
参考图5,示出了说明智能自动曝光计量系统的框图。示出了动态AI计量组件300。动态AI计量组件300可以包括各种硬件、概念块、输入和/或输出,其可以由装置100使用以执行用于自动曝光的AI计量技术。动态AI计量组件300可以被表示为框图,该框图示出了由装置100执行以确定针对各种主体的感兴趣区域(ROI)和/或生成AE参数的操作。
动态AI计量组件300可以包括处理器102、视频帧302a-302n、块(或电路)304、块(或电路)306和/或块(或电路)308。电路304可以实现图像数字信号处理器(IDSP)。电路306可以实现感兴趣区域检测模块。电路308可以实现3A模块。出于说明的目的,处理器102、IDSP 304、ROI检测模块306和3A模块308被示为单独的组件。然而,IDSP 304、ROI检测模块306和3A模块308可以各自是由处理器102实现的组件。动态AI计量组件300可以包括其他组件(未示出)。动态AI计量组件300的组件的数量、类型和/或布置可以根据特定实现方式的设计标准而变化。
处理器102可以被配置为接收信号VIDEO。信号VIDEO可以包括由图像传感器180生成的RGB像素数据。像素数据可以包括捕获设备104附近的环境和/或对象的所捕获的信息。在一些实施例中,像素数据可以包括RGB数据以及投影到环境和/或对象上的结构光图案。处理器102可以生成信号(例如,FRAMES)。信号FRAMES可以包括视频帧302a-302n。处理器102可以被配置为处理被布置为视频帧302a-302n的像素数据。视频帧302a-302n可以被呈现给CNN模块190b(例如,由处理器102使用CNN模块190b在内部处理)。处理器102能够使用视频帧302a-302n执行其他操作(例如,生成用于显示的经编码的视频帧、封装视频帧302a-302n以使用通信模块154进行通信等)。
IDSP 304可以被配置为接收视频帧302a-302n。IDSP 304可以被配置为一次一帧地处理原始视频帧302a-302n。IDSP 304可以被配置为生成信号(例如,TS)、信号(例如,3A_STAT)和/或信号(例如,YUV)。信号TS可以包括由IDSP 304处理的视频帧302a-302n中的一个视频帧的时间戳。信号3A_STAT可以包括由IDSP 304响应于视频帧302a-302n中的一个视频帧而生成的3A统计数据。信号YUV可以包括由IDSP 304从视频帧302a-302n中的一个视频帧提取的YUV图像。IDSP 304可以被配置为生成和/或接收其他数据(未示出)。由IDSP 304接收的数据输入和/或由IDSP 304生成的数据输出的数量和/或类型可以根据特定实现方式的设计标准而变化。
响应于一次一个地分析视频帧302a-302n,可以提取和/或生成时间戳信号TS和统计数据信号3A_STAT。3A统计数据可以是来自IDSP 304的输出数据,其可以包括多个数据条目,例如,亮度和/或直方图。例如,瓦片亮度值的表可以是来自3A统计数据的数据条目中的一个数据条目。在另一示例中,3A统计数据可以包括关于自动白平衡、自动聚焦和自动曝光的信息。3A统计数据可以包括每个瓦片的亮度值,其具有[0,4095]的值范围,包括端值。时间戳信号TS和统计数据信号3A_STAT可以被呈现给3A模块308。IDSP 304可以被配置为将YUV图像连同时间戳信号TS一起转发到ROI检测模块306。
ROI检测模块306可以是CNN模块190b的组件。ROI检测模块306可以被配置为对根据视频帧302a-302n生成的YUV图像执行各种计算机视觉操作。ROI检测模块306可以接收时间戳信号TS和信号YUV。ROI检测模块306可以被配置为生成信号(例如,TS’)、信号(例如,FN)和信号(例如,LROI)。信号TS’可以包括更新后的时间戳。信号FN可以包括由ROI检测模块306分析的视频帧302a-302n中的一个视频帧的帧号。在一些实施例中,YUV图像可以与信号FN通信。信号LROI可以包括感兴趣区域的条目列表和/或关于感兴趣区域的信息。更新后的时间戳信号TS’、帧号信号FN和/或信号LROI可以由ROI检测模块306响应于时间戳信号TS和/或信号YUV而生成。更新后的时间戳信号TS’、帧号信号FN和/或信号LROI可以被呈现给3A模块308。由ROI检测模块306接收的数据输入和/或由ROI检测模块306生成的数据输出的数量和/或类型可以根据特定实现方式的设计标准而变化。
ROI检测模块306可以被配置为实现一个或多个计算机视觉AI模型。计算机视觉AI模型可以被配置为检测在根据视频帧302a-302n生成的YUV图像中的各种对象、主体和/或感兴趣事件。由ROI检测模块306实现的(多个)计算机视觉AI模型可以被配置为检测一种或多种类型的对象和/或对其进行分类。在一个示例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为执行人检测。在另一示例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为执行车辆检测。在又一示例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为执行运动检测。在再一示例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为执行人脸检测。在一些实施例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为执行各种主体检测的组合(例如,检测行人和车辆)。计算机视觉AI模型的数量和/或在视频帧302a-302n的YUV图像中被检测为感兴趣区域的对象的类型可以根据特定实现方式的设计标准而变化。
ROI检测模块306可以被配置为一次计算视频帧302a-302n中的一个视频帧的YUV图像内的ROI中的每一个。ROI检测模块306可以被配置为生成用于视频帧302a-302n中的一个视频帧的经分析的YUV图像的时间戳(例如,修改后的时间戳)。ROI检测模块306可以被配置为生成用于视频帧302a-302n中的一个视频帧的经分析的YUV图像的帧号。计算出的ROI信息可以包括感兴趣区域的列表(例如,对应于每个对象/主体的计算出的每个ROI的列表)。ROI的列表可以包括多个条目和/或元素(例如,主体)、单个元素/条目或甚至零个元素(例如,未检测到感兴趣对象)。在ROI列表中的计算出的ROI中的每一个ROI的ROI信息可以包括ROI位置(例如,在YUV图像中的x,y坐标)、ROI ID和/或ROI加权。例如,信号LROI可以包括检测到的ROI的列表,其包括每个ROI的ROI位置、ROI ID和ROI加权。
ROI位置可以定义YUV图像中感兴趣区域区的起点和终点。例如,ROI位置可以包括针对检测到的主体定义边界框的x,y坐标。ROI位置的大小可以取决于检测到的对象的大小相对于YUV图像的大小。
ROI ID可以包括唯一编号。可以为每个ROI指派ROI ID的唯一编号,以便唯一地标识检测到的对象。ROI ID可以用于使处理器102能够在视频帧302a-302n中的一个或多个视频帧之间跟踪相同对象。检测到的每个唯一对象可以在视频帧302a-302n帧之间共享相同的ROI ID,并且不同的对象可以各自具有由ROI检测模块306指派的不同的ROI ID编号。
ROI加权可以包括浮点值数。在示例中,ROI加权可以包括在0.0到1.0之间的值,包括端点。ROI加权可以应用于每个ROI区。ROI加权可以指定每个ROI的优先级。优先级可以用于确定ROI中的哪个在最佳曝光方面可能是优选的。例如,具有最高ROI加权的ROI在曝光方面可以接收最高优先级,而具有最低ROI加权的ROI可以接收最低优先级。所有ROI的ROI加权的总和不可以超过1.0。应用于检测到的每个对象/主体的ROI加权的量可以由所实现的(多个)计算机视觉AI模型确定。在一些实施例中,所实现的计算机视觉AI模型可以检测人、面部和车辆,并且计算机视觉AI模型可以被配置为向面部提供最高ROI加权,然后向人提供ROI加权,再向车辆提供ROI加权(例如,以确保面部是可标识的以用于面部识别,同时仍为其他感兴趣的对象(例如,车辆)提供曝光)。应用于ROI中的每个ROI的ROI加权的量可以根据特定实现方式的设计标准而变化。
可以基于视频帧302a-302n中的一个视频帧的YUV图像的时间戳(例如,时间戳信号TS)来生成由ROI检测模块306生成的修改后(或更新后)的时间戳(例如,修改后的时间戳信号TS’)。例如,可以根据从IDSP模块304接收到的时间戳信号TS为YUV图像指派时间戳。通常,由ROI检测模块306生成的修改后的时间戳信号TS’可能与时间戳信号TS中的最新时间戳不同。例如,由ROI检测模块306执行的计算机视觉分析可能花费少量时间来完成。ROI检测模块306可以针对来自视频帧302a-302n(例如,视频帧302a)的一个YUV图像执行分析,而IDSP 304为下一YUV图像提供来自视频帧302a-302n(例如,视频帧302b)的新时间戳。如果由ROI检测模块306执行的计算机视觉操作能够在接收到下一视频帧之前执行,则信号TS’可以包括等于输入时间戳TS的值的时间戳。在信号TS中的值与输出的修改后的信号TS’中的值之间的差异可能取决于由ROI检测模块306执行的计算机视觉操作的计算速度。
3A模块308可以被配置为接收时间戳信号TS、统计数据信号3A_STAT、修改后的时间戳信号TS’、帧号信号FN、信号LROI、信号(例如,KNEE)、信号(例如,TLN)、信号(例如,MWT)和/或信号(例如,TLUMA)。3A模块308可以被配置为生成参数信号AE_PARAM。信号AE_PARAM可以被呈现给捕获设备104。由3A模块308接收的数据输入和/或由3A模块308生成的数据输出的数量和/或类型可以根据特定实现方式的设计标准而变化。
3A模块308可以包括块(或电路)320、块(或电路)322和/或块(或电路)324。电路320可以实现AI计量控制模块。电路322可以实现自动曝光(AE)控制模块。电路324可以实现跟踪列表队列。3A模块308可以包括其他组件(未示出)。3A模块308的组件的数量、类型和/或布置可以根据特定实现方式的设计标准而变化。
AI计量控制模块320可以被配置为接收由IDSP 304生成的统计数据信号3A_STAT和时间戳信号TS以及来自ROI检测模块306的修改后的时间戳信号TS’、帧号信号FN和信号LROI。AI计量控制模块320可以被配置为接收信号KNEE、信号TLN和/或信号MWT。信号KNEE、信号TLN和/或信号MWT可以是用户定义的设置。在示例中,信号KNEE、信号TLN和/或信号MWT中的一个或多个可以由来自HID 166的信号USER提供。在另一示例中,信号KNEE、信号TLN和/或信号MWT可以存储在存储器150中。AI计量控制模块320可以被配置为与跟踪列表队列324通信信号(例如,HTS)和信号(例如,HLROI)。AI计量控制模块320可以被配置为生成信号(例如,CLUMA)。信号CLUMA可以被呈现给AE控制模块322。
信号TLN可以包括跟踪循环编号。信号KNEE可以包括平衡亮与暗之间的曝光的加权值。信号MWT可以包括计量加权表。计量加权表可以定义针对视频帧302a-302n的每个瓦片(例如,子区)的加权值。信号TLN、信号KNEE和/或信号MWT可以包括用于AI计量控制模块320的初始设置。
AI计量控制模块320可以被配置为响应于接收到的输入来评估视频帧302a-302n中的一个视频帧的当前亮度值。例如,可以响应于视频帧302a-302n中的一个视频帧的时间戳、视频帧302a-302n中的一个视频帧的更新后的时间戳TS’、3A统计数据(例如,瓦片亮度值)以及感兴趣区域的列表,来计算当前亮度值。此外,AI计量控制模块320还可以基于曝光加权值、跟踪循环编号和/或计量加权表来评估当前亮度值。信号CLUMA可以包括由AI计量控制模块320计算的当前亮度值。
AI计量控制模块320可以被配置为响应于信号HTS和/或信号HLROI来确定用于执行AI计量的操作模式。信号HLROI可以包括由ROI检测模块306生成的(例如,从信号LROI中提供的数据导出的)历史感兴趣区域列表信息(例如,感兴趣区域的先前历史)。信号HTS可以包括针对ROI信息的历史列表中的条目的历史时间戳。
AE控制模块322可以被配置为接收信号CLUMA和信号TLUMA。信号TLUMA可以包括目标亮度值。AE控制模块322可以被配置为生成信号AE_PARAM。响应于信号CLUMA和/或信号TLUMA,信号AE_PARAM可以被呈现给捕获设备104。
AE控制模块322可以被配置为生成用于图像传感器180的AE参数。AE控制模块322可以被配置为将来自信号CLUMA的当前亮度值与来自信号TLUMA的目标亮度值进行比较。响应于在信号TLUMA与信号CLUMA之间的比较,AE控制模块322可以计算AE参数(例如,快门、自动增益控制(AGC)、光圈等)。例如,可以调整快门时间、AGC和/或DC光圈值以使当前亮度能够达到目标亮度。在信号TLUMA中的目标亮度值可以是用户可配置的值。在一个示例中,信号TLUMA可以由来自HID 166的信号USER提供。在另一示例中,信号TLUMA可以由存储器150提供。
3A模块308可以被配置为执行3A技术。由3A模块308的AI计量控制模块320和AE控制模块322执行的3A技术可以独立于由CNN模块190b(例如,由ROI检测模块306实现的计算机视觉AI模型)执行的计算机视觉操作而执行。例如,由3A模块308执行的3A技术可以与由ROI检测模块306执行的计算机视觉操作并行执行。在一个示例中,ROI检测模块可以通过分析视频帧302a-302n的YUV图像来生成ROI信息,同时AI计量控制模块320分析来自视频帧302a-302n的3A统计数据的瓦片亮度值。在ROI检测模块306与3A模块308之间的通信可以通过进程间通信技术来实现。例如,进程间通信技术可以包括消息队列、套接字、共享存储器等。IDSP 304和3A模块308可以经由共享存储器进行通信。在示例中,用于IDSP 304和3A模块308的共享存储器可以是处理器102的共享存储器206。数据可以通过中断来同步和取得。
跟踪列表队列324可以被配置为存储关于由ROI检测模块306生成的计算机视觉结果的历史数据。跟踪列表队列324可以被配置为与AI计量控制模块320通信历史感兴趣区域列表信号HLROI和历史时间戳信号HTS。例如,在历史感兴趣区域列表信号HLROI和历史时间戳信号HTS中通信的数据可以包括历史计算机视觉结果。跟踪列表队列324可以被配置作为存储器队列(例如,跟踪列表队列324可以包括用于跟踪ROI的逻辑单元)。
ROI检测模块306可以将计算机视觉结果(例如,感兴趣区域列表信号LROI和更新后的时间戳信号TS’)提供给AI计量控制模块320。AI计量控制模块320可以将新的计算机视觉结果推送到跟踪列表队列324作为历史计算机视觉结果。例如,AI计量控制模块320可以响应于感兴趣区域列表信号LROI来生成历史感兴趣区域列表信号HLROI,并且响应于更新后的时间戳信号TS’来生成历史时间戳信号HTS。当(例如,在历史ROI列表信号HLROI和更新后的时间戳信号HTS中的)新数据从AI计量控制模块320推送到跟踪列表队列324时,可以将存储在跟踪列表队列324中的最旧数据推送出去。跟踪列表队列324可以具有N个近期计算机视觉结果的预先定义的容量。在示例中,如果跟踪列表队列具有等于三的容量,则跟踪列表队列324可以缓存最后三组历史数据(例如,可以首先存储历史数据A,然后存储历史数据B,然后存储历史数据C,并且当接收到新的计算机视觉结果(历史数据D)时,历史数据A可以被冲洗并且可以存储历史数据D)。AI计量控制模块320可以使用存储在跟踪列表队列324中的历史数据用于预测(例如,用于三次和/或二次拟合技术)和/或用于选择要使用哪个AI计量技术。
由AI计量控制模块320执行的AI计量技术的实现方式可以是基于由信号LROI中的感兴趣区域的列表提供的计算机视觉结果选择的三种不同实现方式中的一种。例如,取决于是否不存在没有历史的当前计算机视觉结果、不存在具有历史的当前计算机视觉结果和/或当前计算机视觉结果,可以针对AI计量执行不同的实现方式分支。
如果信号LROI指示在视频帧302a-302n的最新跟踪循环编号中没有接收到计算机视觉结果(例如,基于跟踪循环编号信号TLN),则AI计量控制模块320可以在为当前视频帧的整个视场(FOV)提供计量策略的操作模式下操作。在当前的亮度计算中可以考虑所有的瓦片(例如,子区)。当前亮度值CLUMA可以是整个图像的加权平均亮度。针对整个输入的加权平均亮度的计算可以基于信号KNEE(例如,使对暗区或亮区的曝光优先化的加权值)、信号MWT(例如,提供针对每个瓦片的加权值的计量加权表)和信号3A_STAT(例如,每个瓦片的亮度值)来确定。
在为整个FOV实现计量策略的操作模式下,当前亮度计算可以包括两个步骤。第一步骤可以根据信号KNEE将瓦片亮度按某个值(例如,从-1.0到1.0)进行缩放。AI计量控制模块320可以遍历3A统计数据中所有瓦片的亮度值。如果3A统计数据指示瓦片亮度小于2048,则该值可以按1+KNEE进行缩放。如果3A统计数据指示瓦片亮度大于或等于2048,则该值可以按1-KNEE进行缩放。第二步骤可以是计算加权平均亮度。在确定了瓦片亮度和瓦片加权之后,加权的瓦片亮度可以通过等式EQ1计算:
EQ1:加权的瓦片亮度=瓦片亮度×瓦片加权(例如,要由信号CLUMA通信的)加权平均亮度的最终等式可以通过EQ2计算。等式EQ2中的值N可以是最大瓦片数量。
EQ2:
如果信号LROI指示在视频帧302a-302n中的当前一个视频帧中没有当前计算机视觉结果,但在视频帧的最后跟踪循环编号内存在一些历史计算机视觉结果,则AI计量控制模块320可以在提供使用先前亮度值的计量策略的操作模式下操作。AI计量控制模块320可以使用来自视频帧302a-302n的先前跟踪循环的相同亮度值作为当前亮度值CLUMA。
当不存在当前计算机视觉结果但确实存在一些历史信息时,对于帧302a-302n中的当前一个帧的AE控制可能不会改变。例如,AI计量控制模块320可以在这样的假设下操作:由ROI检测模块306执行的计算机视觉操作的结果被延迟(例如,计算机视觉结果可能仍在处理数据),并且数据可能预期在视频帧302a-302n的下一跟踪循环编号中到达。如果仍未接收到计算机视觉结果,则AI计量控制模块320可以将操作模式改变为提供针对整个FOV的计量策略的操作模式(例如,好像没有历史一样)。在示例中,当不存在当前计算机视觉结果但在跟踪循环中存在一些先前的历史时,场景可以是对象/主体已经从FOV移出,并且计算机视觉操作不再检测到任何感兴趣的主体(例如,对象/主体随后返回并且相同的计算可能是合适的)。
跟踪循环编号信号TLN可以是对AI计量控制模块320的用户输入。由信号TLN设置的跟踪循环编号可以是针对视频帧的数量的阈值,其被配置为指示AI计量控制模块320何时可以从ROI计量操作模式切换到全FOV计量模式。跟踪循环编号可以指示等于视频帧302a-302n的一帧时间的单位时间。在示例中,如果信号TLN提供阈值10,则如果AI计量控制模块320在最后十个连续视频帧302a-302n中没有从ROI检测模块306接收到计算机视觉结果时,则AI计量控制模块320可以从基于历史信息(例如,存储在跟踪列表队列324中的历史ROI列表)使用ROI计量的操作模式切换到全FOV计量操作模式。
使用信号TLN设置跟踪循环编号可以防止不断地切换操作模式。例如,非常低的跟踪循环编号(例如,值为1)可能会导致在存在任何计算机视觉结果延迟或任何通信故障的任何时间改变为全FOV计量操作模式。在操作模式之间切换(例如,在使用历史数据的ROI计量与全FOV计量模式之间频繁改变)可能会导致不稳定的AE控制(例如,由于使用不同操作模式选择的AE参数不断改变而导致闪烁(flicking))。通常,信号TLN可以被选择为比ROI检测模块306对视频帧302a-302n中的一个视频帧执行计算机视觉的时间量更长的跟踪循环编号值。
在示例中,AI计量控制模块320可以接收对应于视频帧302a-302n中的一个视频帧的帧号的3A统计数据。如果AI计量控制模块320没有接收到针对特定视频帧的计算机视觉结果,则AI计量控制模块320可以针对任何历史信息检查跟踪列表队列324。AI计量控制模块320可以接收信号HTS并比较存储在跟踪列表队列324中的计算机视觉结果中的任一个是否在视频帧的最后跟踪循环编号内。如果存储在跟踪列表队列中的计算机视觉结果中的一个具有在视频帧的最后跟踪循环编号内的历史时间戳HTS,则AI计量控制模块320可以使用历史数据(例如,先前的当前亮度值可以被呈现为信号CLUMA)选择ROI跟踪操作模式。如果历史数据中的任一个都不具有在视频帧的最后跟踪循环编号内的历史时间戳HTS,则AI计量控制模块320可以选择全FOV计量操作模式。
如果信号LROI指示在视频帧302a-302n的当前一个视频帧中存在当前计算机视觉结果,则AI计量控制模块320可以在提供使用ROI跟踪的计量策略的操作模式下操作。对当前亮度值CLUMA的计算可以使由信号LROI指示的ROI区优先化。可以计算当前亮度值CLUMA以确保ROI区获得最佳曝光。
AI计量控制模块320可以分析关于在信号LROI中提供的ROI列表中的ROI中的每一个ROI的信息。AI计量控制模块320可以对ROI信息进行迭代操作,并对ROI列表中的每组ROI信息重复相同的操作。在对一组ROI信息执行操作之后,AI计量控制模块320可以分析下一组ROI信息。当到达ROI列表的末尾时,AI计量控制模块320可以退出循环,然后使用信号3A_STAT中的瓦片亮度值和评估的ROI信息来执行加权平均计算。
AI计量控制模块320可以执行ROI预测。可以响应于在信号TS中的时间戳与信号TS’中的更新后的时间戳之间的差异来执行ROI预测。由于由ROI检测模块306执行的计算机视觉操作的计算时间可能不同,因此将具有计算机视觉结果的信号LROI报告给AI计量控制模块320的时间可能不一定是实时的。针对当前计算机视觉结果的更新后的时间戳TS’可能与对应于信号3A_STAT中的当前3A统计数据的时间戳TS不同。如果时间戳差异(例如,TS-TS’)等于零,则AI计量控制模块320可以跳过ROI预测。如果时间戳差异不等于零,则AI计量控制模块320可以执行ROI预测。
AI计量控制模块320可以基于存储在跟踪列表队列324中的历史ROI信息来确定ROI预测。在示例中,AI计量控制模块320可以被配置为基于历史点来计算一个或多个拟合函数。在将当前时间(例如,时间戳TS)应用于拟合函数中之后,AI计量控制模块320可以通过估计实时ROI位置来执行ROI预测。
在计算出实时ROI位置之后,AI计量控制模块320可以将实时ROI的坐标与视频帧302a-302n中的一个视频帧中的每个瓦片的坐标进行比较。例如,视频帧302a-302n的子区/瓦片可以被分类为ROI瓦片、交叉瓦片和/或背景瓦片。可以结合图7描述视频帧302a-302n的各种瓦片/子区的分类的细节。
在所有瓦片被分类之后,AI计量控制模块320可以计算每个瓦片类别的平均亮度值。如果ROI太小而无法包裹单个瓦片,则AI计量控制模块320可以跳过针对小ROI的平均亮度值计算(例如,可能不会生成针对小ROI的亮度)。如果ROI中的任一个都不具有有效的ROI瓦片,则AI计量控制模块320可以认为当前的计算机视觉结果无效。如果存在无效的计算机视觉结果,则AI计量控制模块320可以将操作模式改变为全FOV计算(例如,不存在没有历史的计算机视觉结果)或历史值操作模式。
响应于处理ROI列表中的所有ROI信息,AI计量控制模块320可以计算加权平均亮度。可以基于ROI瓦片的平均亮度、背景瓦片的平均亮度和ROI加权来确定加权平均亮度计算。加权平均亮度值计算可以用于生成包括ROI瓦片和背景瓦片上的加权平均亮度的信号CLUMA。其他因素也可以用于确定信号CLUMA。在示例中,加权平均亮度值计算的正确性可以取决于ROI列表中的ROI的移动速度。通常,ROI的移动越快,计算出的加权平均亮度值可能越不准确。AI计量控制模块320还可以响应于跟踪列表队列324中的信息、信号3A_STAT和信号LROI来生成信号CLUMA,以便根据加权平均亮度值和原始亮度值生成信号CLUMA。可以将包括加权平均亮度和/或原始亮度值的信号CLUMA提供给AE控制模块322。在生成信号CLUMA之后,AE控制模块322可以更新跟踪列表队列324中的历史计算机视觉结果。在示例中,跟踪列表队列324可以维持最新的三个计算机视觉结果。
参考图6,示出了说明在应用AI曝光计量之前在示例视频帧中的对象检测和跟踪的图。示出了示例视频帧350。示例视频帧350可以是在信号YUV中提供给ROI检测模块306的YUV图像。示例视频帧350可以是由处理器102分析/评估的视频帧302a-302n的序列中的一个视频帧的说明性示例。在所示示例中,示例视频帧350可以对应于已经由ROI检测模块306执行了计算机视觉ROI检测和/或分析但AI计量尚未由AI计量控制模块320处理的时间。
示例视频帧350可以包括被布置为提供给CNN模块190b的视频帧的像素数据。CNN模块190b可以被配置为分析视频帧350的像素数据以检测在视频帧350中捕获的各种类型的对象/主体的大小和/或定位。在示例中,由ROI检测模块306实现的计算机视觉AI模型可以被配置为检测在示例视频帧350中的各种对象。示例视频帧350可以包括RGB图像。
示例视频帧350可以是室外区的捕获的视频帧(例如,来自实现捕获设备104的摄像机系统100的视图)。在一个示例中,示例视频帧350可以是由智能手机摄像机在室外捕获的视频帧。在另一示例中,示例视频帧350可以是由智能门铃和/或家庭安全摄像机捕获的视频。在所示示例中,示例视频帧350可以是由被配置为集中于检测行人的摄像机捕获的视频。用于捕获和分析示例视频帧350的用例可以根据特定实现方式的设计标准而变化。
示例视频帧350可以包括太阳352、多个背景对象356a-356n和人362a-362b。太阳352可以正在发射可以由传感器180捕获的光。阳光可能导致示例视频帧350的区非常亮或在示例视频帧350的一些区上投下阴影。背景对象356a可以是建筑物,且背景对象356b-356n可以是树木。通常,背景对象356a-356n可能不是ROI检测模块306的计算机视觉操作可以检测为ROI列表中的ROI的感兴趣对象。人362a-362b可以是ROI检测模块306的计算机视觉操作可以检测为ROI列表中的ROI的感兴趣对象。人362a被示为比人362b更靠近图像传感器180,因此看起来更大。人362a可能正朝着镜头160行走。人362b被示为比人362a更远离图像传感器180,并且可能看起来更小。人362b被示为在镜头160的视场中行走(例如,不是靠近或远离镜头160)。
示出了虚线形状370a-370b。虚线形状370a-370b可以表示由处理器102执行的计算机视觉操作对对象/主体的检测。虚线形状370a-370b可以各自包括对应于由计算机视觉操作流水线和/或CNN模块190b检测到的对象的像素数据。在所示示例中,可以响应于由计算机视觉操作流水线和/或CNN模块190b(例如,由ROI检测模块306实现的计算机视觉AI模型)执行的行人检测操作来检测虚线形状370a-370b。虚线形状370a-370b是出于说明性目的而示出的。在示例中,虚线形状370a-370b可以是对象检测的视觉表示(例如,虚线形状370a-370b可能不会出现在输出视频帧上)。在另一示例中,虚线形状370a-370b可以是由处理器102生成的边界框,其显示在输出视频帧上以指示已经检测到对象(例如,可以在调试操作模式下显示边界框370a-370b)。
计算机视觉操作可以被配置为检测检测到的对象的特性、检测到的对象的行为、检测到的对象的移动方向和/或检测到的对象的存在性。对象的特性可以包括高度、长度、宽度、斜率、弧长、颜色、发射的光量、对象上检测到的文本、移动路径、移动速度、移动方向、对其他对象的接近度等。检测到的对象的特性可以包括对象的状态(例如,打开、闭合、开启、关闭等)。可以响应于对象的类型和/或检测到的对象的特性来确定行为和/或存在性。虽然示出了一个示例视频帧350,但是可以通过分析随时间捕获的视频帧302a-302n的序列来确定对象的行为、移动方向和/或存在性。例如,移动路径和/或移动速度特性可以用于确定被分类为人的对象可能正在行走或奔跑。检测到的特性和/或行为的类型可以根据特定实现方式的设计标准而变化。
在所示示例中,边界框370a可以是大的人362a的感兴趣区域,边界框370b可以是小的人362b的感兴趣区域。在示例中,处理器102(例如,由ROI检测模块306实现的计算机视觉AI模型)的设置(例如,特征集)可以将感兴趣的对象定义为人和/或面部。例如,树木、植物、装饰品、家具、车辆和/或建筑物可能不是针对被定义为检测人和/或面部的特征集的感兴趣对象。在所示示例中,边界框370a-370b被示为具有正方形(或矩形)形状。在一些实施例中,对应于检测到的行人的边界框370a-370b的形状可以形成以遵循人362a-362b的身体形状和/或面部形状(例如,遵循人362a-362b的面部和/或身体形状的曲线的不规则形状)。
处理器102和/或CNN模块190b可以被配置为实现行人和/或面部检测技术。在一些实施例中,处理器102和/或CNN模块190b可以将其他类型的主体检测为感兴趣对象(例如,动物、车辆、移动对象、坠落对象等)。计算机视觉技术可以对由IDSP 304提供给ROI检测模块306的YUV图像执行。
计算机视觉技术可以被配置为检测ROI和/或生成关于对应于主体362a-362b的ROI的信息。例如,边界框370a-370b可以是检测到的ROI的视觉表示。处理器102可以循环计算机视觉技术(例如,在整个示例视频帧350中迭代地执行对象/主体检测)以便确定在镜头160和/或图像传感器180的视场内是否存在任何感兴趣对象(例如,如由特征集定义的)。在所示示例中,通过迭代地执行ROI检测技术,处理器102可以检测到ROI 370a内的行人362a和ROI 370b内的行人362b。
虽然仅行人362a-362b被示为ROI 370a-370b,但由处理器102和/或CNN模块190b执行的计算机视觉操作可以被配置为检测背景对象356a-356n。背景对象356a-356n可以被检测用于其他计算机视觉目的(例如,训练数据、标记、深度检测等),但可能不能用于由装置100执行的AI计量技术的目的。(多个)ROI主体可以不限于人检测,如示例视频帧350中示出的。针对ROI 370a-370b标识的主体的(多个)类型可以根据特定实现方式的设计标准而变化。
示出了箭头MDIR[A]和箭头MDIR[B]。箭头MDIR[A]可以在来自ROI 370a的方向上延伸。箭头MDIR[B]可以在来自ROI 370b的方向上延伸。箭头MDIR[A]-MDIR[B]可以提供在ROI 370a-370b内的对象(例如,行人362a-362b)的移动方向的视觉表示。移动箭头MDIR[A]-MDIR[B]是出于说明性目的示出的。在示例中,移动箭头MDIR[A]-MDIR[B]可以是ROI的移动的视觉表示(例如,移动箭头MDIR[A]-MDIR[B]可能不会出现在输出视频帧上)。在另一示例中,移动箭头MDIR[A]-MDIR[B]可以是由处理器102生成的视觉指示,其显示在输出视频帧上以指示ROI 370a-370b的移动已经被检测到和/或跟踪(例如,可以在调试操作模式下显示移动箭头MDIR[A]-MDIR[B])。
移动箭头MDIR[A]可以指示人362a可以在朝向镜头160的方向上移动。例如,在视频帧302a-302n的序列上,人362a可以变得更大并且占据视频帧302a-302n的更多瓦片(例如,当人362a靠近时)。移动箭头MDIR[B]可以指示人362b可以在从左到右穿过镜头160的方向上移动。例如,在视频帧302a-302n的序列上,人362b可以保持相同大小并且占据视频帧302a-302n的相同量的瓦片,但是所占据的瓦片可以随着人362b的移动而改变。
处理器102(例如,实现ROI检测模块306的CNN模块190b)可以确定在所分析的视频帧中是否存在任何对象/主体。在示例视频帧350中,感兴趣的对象可以是行人362a-362b。如果已经在视频帧350中捕获到行人,则ROI检测模块306可以记录对象的大小和对象的偏移(例如,相对于视频帧350的边缘的定位)以便定义ROI 370a-370b。ROI检测模块306还可以生成用于ROI 370a-370b的ROI信息。在所示示例中,处理器102可以检测行人362a-362b。处理器102可以将关于ROI 370a-370b的信息存储在存储器150中和/或将包括ROI信息的信号LROI呈现给3A模块308。
ROI检测模块306可以检测ROI 370a-370b。在所示示例中,ROI列表可以包括ROI370a和ROI 370b(例如,两个条目)。ROI信息380a-384b被示为用于ROI 370a-370b。ROI信息可以包括ROI ID 380a-380b、ROI加权382a-382b和ROI位置384a-384b,每个分别对应于ROI370a-370b。
ROI ID 380a-380b可以是用于区分ROI 370a-370b中的每一个的唯一值。例如,ROI ID 380a-380b可以是整数值。在所示示例中,对于ROI 370a,ROI ID 380a可以为零;而对于ROI 370b,ROI ID 380b可以为一(例如,检测到的任何附加对象可以用下一递增数字来标识)。可以使用其他形式的标识(例如,散列值、字母值、用户提供的名称等)。
ROI加权382a-382b可以指示ROI 370a-370b中的哪个具有更高的AE优先级。计算机视觉操作可以确定人362a可以比人362b具有更高的曝光优先级(例如,因为人362a更靠近捕获设备104并且可能在视频帧350中占据更多空间)。ROI检测模块306可以确定人362a-362b两者都应该被良好曝光,但人362a具有更高的优先级。在所示示例中,对于ROI 370a,ROI加权382a可以是0.7;而对于ROI 370b,ROI加权382b可以是0.3(例如,总计为1.0,其中ROI 370a具有更多加权)。在一些实施例中,如果尚未应用AI计量,则人362a-362b、太阳352和背景对象356a-356n(例如,建筑物、树木等)可以被同等加权,并且示例视频帧350的整个FOV可以具有相同的加权值。
ROI位置384a-384b可以包括检测到的ROI 370a-370b的x,y坐标。在示例中,ROI370a的ROI位置384a可以包括指示ROI 370a位于右侧并且占据视频帧350右侧的大部分的x,y坐标(或偏移)。在另一示例中,ROI 370b的ROI位置384b可以包括指示ROI 370b位于左上角附近并且占据视频帧350的相对较小部分的x,y坐标(或偏移)。
ROI列表和/或ROI信息可以经由信号LROI被呈现给3A模块308。ROI列表和/或ROI信息可以存储在跟踪列表队列324中。示例视频帧350可以是在没有应用AI计量的情况下捕获的示例视频帧。ROI列表和/或ROI信息可以用于针对即将到来的视频帧实现AI计量。
示出了跟踪列表指示符386。跟踪列表指示符386可以包括“假”值。跟踪列表指示符386的假值可以指示在跟踪列表队列324中当前可能不存在任何历史信息。例如,示例视频帧350可以是视频帧302a-302n的序列中的第一个。
在示例视频帧350中,在没有应用AI计量的情况下,太阳352被示为有点过度曝光,而背景对象356a-356n可能略微暗淡。由计算机视觉AI检测到的行人362a-362b可能非常暗。例如,行人362a-362b被示为具有阴影以指示在没有应用AI计量技术情况下在示例视频帧350中的不良曝光。在一个示例中,生成具有非常暗的关键对象(例如,行人362a-362b)的视频帧302a-302n可能会阻止进一步的分析(例如,后处理、面部标识等)。在一些实施例中,行人362a-362b中的每一个可以被包括在由AI计量控制模块320执行的计量计算中。在一些实施例中,由ROI检测模块306执行的计算机视觉操作可以仅应用于特定的(例如,感兴趣的)人并排除其他人。例如,感兴趣的人可以是可以存储在存储器150中的预先定义的熟悉的人。在一个示例中,行人362a可以是感兴趣的人,其可以用于AI计量技术的ROI,而行人362b可能不是感兴趣的人,并且可能不会用于AI计量技术的ROI列表。AI计量技术可以被配置为校正曝光和/或为由ROI 370a-370b定义的主体提供一致的曝光。
参考图7,示出了说明示例视频帧的感兴趣区域瓦片分类的图。示出了示例视频帧400。示例视频帧400可以是示例视频帧302a-302n的表示。在所示示例中,视频帧400可以是与图6相关联地示出的示例视频帧350的版本,其示出了可以由AI计量控制模块320分类的瓦片/子区。在所示示例中,示例视频帧400可以对应于AI计量控制模块320正在执行ROI计量控制的时间。
AI计量控制模块320可以接收包括ROI列表和ROI信息的信号LROI。ROI 370a-370b在示例视频帧400上示出。在所示示例中,ROI 370a-370b可以对应于与图6相关联地示出的示例视频帧350上示出的相同定位。AI计量控制模块320可以分析关于ROI列表中的ROI370a-370b的ROI信息以便确定当前亮度值。由于ROI列表可以包括两个ROI 370a-370b,所以AI计量控制模块320可以应用使用ROI跟踪操作模式的AI计量技术以便计算当前亮度值。
AI计量控制模块320可以基于ROI列表中的ROI信息和/或3A统计数据中的瓦片亮度值来执行分析和/或计算。由于可以对ROI信息执行分析,所以可以执行分析和/或计算,不论检测到的对象/主体的类型如何。例如,ROI检测模块306可以实现各种计算机视觉AI模块来检测ROI信息。只要提供了ROI信息,AI计量控制模块320就可以执行相同的分析和/或计算(例如,对象的类型可能不重要)。
示例视频帧400被示为覆盖有网格图案。网格图案可以包括多个瓦片/子区402aa-402nn。瓦片402aa-402nn中的每一个可以具有由IDS 304生成的信号3A_STAT提供的瓦片亮度值。在所示示例中,网格图案的第一行可以包括瓦片402aa-402an,网格图案的第二行可以包括瓦片402ba-402bn,网格图案的最后一行可以包括瓦片402na-402nn等。网格图案可以包括n×n个瓦片。瓦片402aa-402nn的网格图案的行数和列数可以是不同的值(例如,m×n网格)。在所示示例中,瓦片402aa-402nn的网格图案可以是16×16粒度。在其他实施例中,瓦片402aa-402nn的网格图案的粒度可以是12×8、24×16、32×32等。瓦片402aa-402nn的网格图案的粒度可以根据特定实现方式的设计标准而变化。
AI计量控制模块320可以被配置为对瓦片402aa-402nn中的每一个进行分类。瓦片402aa-402nn可以被分类为ROI瓦片、交叉瓦片或背景瓦片。瓦片402aa-402nn中的在ROI370a-370b中的一个ROI内的任一个瓦片可以是ROI瓦片。瓦片402aa-402nn中的包括ROI370a-370b的边界(例如,与边界框交叉)的任一个瓦片可以是交叉瓦片。瓦片402aa-402nn中的在ROI 370a-370n外部的任一个瓦片可以是背景瓦片。
ROI 370a可以包括阴影瓦片410aa-410am和交叉影线瓦片412aa-412am。阴影瓦片410aa-410am可以是ROI 370a的交叉瓦片。交叉影线瓦片412aa-412am可以是ROI 370a的ROI瓦片。ROI 370b可以包括阴影瓦片410ba-410bn和交叉影线瓦片412ba-412bn。阴影瓦片410ba-410bn可以是ROI 370b的交叉瓦片。交叉影线瓦片412ba-412bn可以是ROI 370b的ROI瓦片。瓦片402aa-402nn中没有阴影或交叉影线的其他瓦片可以是背景瓦片。在所示示例中,ROI 370a可以包括20个ROI瓦片412aa-412am(例如,10x2)和28个交叉瓦片410aa-410am,并且ROI 370b可以包括6个ROI瓦片412ba-412bn(例如,6x1))和18个交叉瓦片410ba-410bn。ROI 370a-370b中的每一个ROI的交叉瓦片的数量或ROI瓦片的数量可以取决于ROI 370a-370b的大小而变化。
瓦片402aa-402nn中的每一个瓦片可以对应于YUV图像的子区。瓦片402aa-402nn中的每一个瓦片可以包括特定子区的亮度值。亮度值可以量化子区的明亮度。对于ROI370a,ROI瓦片412aa-412am可以被ROI 370a的边界框完全包围。类似地,对于ROI 370b,ROI瓦片412ba-412bn可以被ROI 370b的边界框完全包围。
对于ROI 370a,边界框可以穿过交叉瓦片410aa-410am。类似地,对于ROI 370b,边界框可以穿过交叉瓦片410ba-410bn。由于交叉瓦片410aa-410am和/或交叉瓦片410ba-410bn可以包括部分ROI亮度和部分背景亮度,所以交叉瓦片的亮度值可能对于参考不准确。AI计量控制模块320可以不使用在当前亮度值计算中被分类为交叉瓦片的瓦片402aa-402nn。如果ROI 370a-370b中的任一个ROI不包括ROI瓦片中的任一个,但仅具有交叉瓦片,则中的ROI的计算机视觉结果可以被认为是无效的计算机视觉结果。无效的计算机视觉结果可能不会作为历史计算机视觉结果的一部分被存储在跟踪列表队列324中。
(无阴影的)瓦片402aa-402nn中的其余瓦片可以是背景瓦片。背景瓦片可能不与ROI 370a或ROI 370b相交或被其包围。背景瓦片可以表示YUV图像的背景的亮度值。
ROI瓦片和背景瓦片可以针对当前亮度值计算而进行加权。ROI 370a-370n中的每一个ROI的ROI瓦片的平均亮度值可以根据等式3计算。
EQ3:背景瓦片的平均亮度值可以通过等式EQ4计算。
EQ4:AI计量控制模块320可以使用每个ROI的平均亮度值(ROILi)、以及背景的平均亮度(BG_L)和ROI加权(ROIWi)来计算当前亮度值。图像的当前亮度值可以通过等式EQ5计算。
EQ5:值N可以是ROI列表中的ROI的数量。对于示例视频帧400,N的值可以是2(例如,ROI 370a-370b)。视频帧302a-302n中的其他视频帧可以包括其他量的ROI。
可以由AI计量控制模块320根据等式EQ5计算当前亮度值。计算出的当前亮度值可以经由信号CLUMA被呈现给AE控制模块322。AE控制模块322可以被配置为将当前亮度值与目标亮度值进行比较,以便确定AE参数。AE控制模块322可以经由信号AE_PARAM将更新后的AE参数提供给捕获设备104。信号AE_PARAM可以使得在示例视频帧350之后捕获的视频帧302a-302n能够以针对检测到的对象/主体的一致曝光来生成。
参考图8,示出了说明在应用AI曝光计量之后在示例视频帧中的对象检测和跟踪的图。示出了示例调整后的视频帧450。调整后的视频帧450可以包括在与图6相关联地示出的示例视频帧350之后生成的视频帧302a-302n中的一个。例如,示例视频帧350可能已经由动态AI计量组件300生成并分析/评估,AI计量技术可能已经响应于示例视频帧350而计算AE参数,并且在已经根据计算出的AE参数调整了捕获设备104之后,调整后的视频帧450可能已经被捕获。在所示示例中,调整后的视频帧450可以对应于AI ROI计量控制已经生效并且AE变得稳定的时间。
由于调整后的视频帧450可能已经在示例视频帧350之后不久被捕获,所以调整后的视频帧450可以包括类似的内容。调整后的视频帧450可以包括太阳352、背景对象356a-356n和行人362a-362b。在调整后的视频帧450中,与示例视频帧350中的行人362a-362b的位置相比,行人362a-362b可能已经移动了位置。移动箭头MDIR[A]-MDIR[B]被示为表示相应的行人362a-362b的移动方向。示出了对应于行人362a-362b的ROI 370a-370b。背景对象356a-356n可以是静态的并且在视频帧之间尚未移动。
示出了耀斑效果(flare effect)452。耀斑效果452可以位于太阳352周围。示出了行人362c。行人362c可能已经在示例视频帧350之后(例如,在已经计算AE参数之后)进入图像传感器180的视场。在行人362c周围示出了虚线框454。虚线框454可以表示针对行人362c检测到的ROI的边界框。可以类似于ROI 370a-370b来生成针对行人362c的ROI 454。示出了箭头(例如,MDIR[C])。箭头MDIR[C]可以包括指示针对行人362c跟踪的移动方向的移动箭头。
在调整后的视频帧450中,ROI 370a-370b和新的ROI 454可以具有ROI信息。ROI370a可以具有为零的相同的ROI ID 380a,ROI 370b可以具有为一的相同的ROI ID 380b,并且新的ROI 454可以具有为二的ROI ID 380c的下一值。
响应于检测到的对象和/或任何新的或丢失的对象的新定位/大小,ROI检测模块306可以在执行计算机视觉操作的同时更新ROI加权382a-382c。在所示示例中,具有最大大小的ROI 370a可能具有为0.6的最高ROI加权值382a,第二大的ROI 370b可能具有为0.3的第二高ROI加权值382b,而新的ROI 454(例如,先前没有在跟踪列表队列324中)可以具有为0.1的最低ROI加权值382c。通常,先前在跟踪列表队列324中的ROI可能具有比新的ROI更高的加权值。ROI加权382a-382b可能已经被重新平衡以包括新的ROI 454,同时仍然提供总加权值为1.0。
在所示示例中,ROI 370a的ROI位置384a可以包括指示ROI 370a位于右下方并且与先前的示例视频帧350相比占据调整后的视频帧450的相对较大的部分的x,y坐标(或偏移)。在所示示例中,ROI 370b的ROI位置384b可以包括指示ROI 370b位于中间并且与先前的示例视频帧350相比占据调整后的视频帧450的相似部分的x,y坐标(或偏移)。在所示示例中,新的ROI 454的ROI位置384c可以包括指示ROI 454位于右上方并且占据调整后的视频帧450的相对较小的部分的x,y坐标(或偏移)。
调整后的视频帧450可以是在应用了AI计量的情况下捕获的示例视频帧。示出了跟踪列表指示符386。跟踪列表指示符386可以包括“真”值。跟踪列表指示符386的真值可以指示在跟踪列表队列324中当前可能存在历史信息。例如,用于示例视频帧350的历史信息可以存储在跟踪列表队列324中。
在已经应用AI计量技术之后,调整后的视频帧450的曝光与示例视频帧350相比可能是一致的。在调整后的视频帧450中,太阳352可能被高度过度曝光。耀斑效果452可以提供过度曝光的说明性表示。在调整后的视频帧450中,背景对象356a-356n可能被稍微过度曝光(例如,与示例视频帧350中的略微暗淡相比)。
在已经应用AI计量技术之后,对象/主体(例如,行人362a-362b)可以被良好曝光。在所示示例中,行人362a-362b被示为没有阴影以指示一致的曝光(例如,与示例视频帧350中示出的阴影相比)。由于行人362a-362b在调整后的视频帧450中被良好曝光,所以对应于行人362a-362b的视频数据可能适合于进一步分析目的(例如,面部标识、后处理、深度分析等)。AI计量技术能够在甚至更具挑战性的场景中生成良好曝光的对象。例如,如果行人362a-362b中的一个行人位于屋顶下(例如,具有阴影),则在行人362a-362b的ROI与背景之间可能存在更大的曝光比率。即使具有大的曝光比率,AI计量技术也可以被配置为生成AE参数,以实现感兴趣的对象的良好曝光。
在调整后的视频帧450中,新的行人362c被示为具有阴影。由于新的行人362c可能已经在生成AE参数之后进入图像传感器180的视场,因此新的行人362c可能尚未被良好曝光。在所示示例中,新的行人362c被示为暗的,但也可以可替代地取决于针对特定定位的先前AE参数而被过度曝光。例如,在ROI检测模块306分析关于ROI 454的信息并且AI计量控制模块320分析更新后的ROI列表并基于更新后的ROI信息重新计算当前亮度值之前,新的行人362c可能不会被良好曝光。在调整后的视频帧450中,新的行人362c分可能具有与其他两个行人362a-362b(例如,其已经被包括在AI计量区中)不同的亮度。
在对调整后的视频帧450进行分析之后,可以使AI计量计算涉及新的行人362c。当针对调整后的视频帧450计算当前亮度值时,加权平均亮度值可以改变。AE参数可以由AE控制模块322更新,并且可以进一步调整视频帧302a-302n中的下一个视频帧,并且可以调整所有行人362a-362c的曝光。例如,可以对针对先前计量的行人362a-362b的曝光进行略微调整,并且可以对针对新的行人362c的曝光进行较大调整以确保所有感兴趣对象的一致曝光。
计算机视觉操作的计算时间可以取决于计算机视觉操作的实现方式而变化。由于时序可能会变化,因此用于ROI列表的更新后的时间戳TS’可能与用于3A统计数据的时间戳TS不同。如果两个时间戳不同,那么计算机视觉结果可能与当前的3A统计数据不同步。AI计量控制模块320可以被配置为对当前的ROI信息执行预测,以便补偿同步数据的缺失。
预测操作可以从ROI的起点开始,并且对于ROI的终点的预测可以遵循相同的过程。为了执行预测操作,AI计量控制模块320可以依赖于历史ROI数据。例如,跟踪列表队列324可以存储先前的三个计算机视觉结果。根据历史数据的可用性,预测操作可以包括不同的步骤。
如果ROI ID是新的(例如,针对新的行人362c的ROI 454),则可能没有任何历史数据。当没有历史数据时,可以跳过预测。在更新后的时间戳TS’处的ROI信息可以用于计算针对时间戳TS处的ROI的亮度。由于在更新后的时间戳TS’与时间戳TS之间可能存在不匹配,因此针对新ROI 454的亮度计算可能包括某种不准确。然而,只要新的行人362c的移动没有足够快以在时间差异(例如,TS-TS’)内从先前的ROI中移出,那么新的行人362c的实时位置可能仍然具有来自更新后的时间戳TS’的一些重叠区ROI位置。计算出的亮度值可以在某种程度上是准确的,所以将使用亮度结果。当没有可用的历史数据时,预测的准确度可能取决于(多个)对象的移动速度。通常,即使移动速度足够高以至于ROI的预测不准确,所使用的预测仍然可以提供比不使用AI计量时更一致的曝光。
当存在具有针对ROI位置的历史信息的一个ROI ID(例如,ROI 370a)和针对ROI370a的一个新的当前ROI位置时,预测可以被配置为计算关于x,y(ROI起点的x和y坐标)和时间t的线性拟合函数。例如,ROI 370a可以在时间戳t1处具有坐标x1,y1,并且针对ROI370a的新的位置坐标可以在时间戳t2处具有坐标x2,y2。AI计量控制模块320可以基于x1、x2、t1和t2的已知值来计算拟合函数。可以用两组数据(x1,t1)和(x2,t2)来计算第一函数EQ6中的系数a和b。可以通过(y1,t1)和(y2,t2)来计算第二函数EQ7中的系数c和d。
EQ6:x=a×t+b
EQ7:y=c×t+d
在AI计量控制模块320生成拟合函数之后,可以将当前时间TS应用于拟合函数以便预测ROI的起点。
当相同的ROI ID(例如,ROI 370a)具有在时间T1和时间T2处的两个历史数据点(例如,ROI位置)并且具有在时间T3处的一个新的ROI位置时,预测操作可以针对当前x,y坐标与时间t计算二次拟合函数。可以使用已知的三组数据(x1,t1)、(x2,t2)和(x3,t3)来计算第一函数EQ8的系数a、b和c。可以通过(y1,t1)、(y2,t2)、(y3,t3)来计算第二函数EQ9的系数d、e和f。
EQ8:x=a×t2+b×t+c
EQ9:y=d×t2+e×t+f
在AI计量控制模块320生成拟合函数之后,可以将当前时间TS应用于拟合函数以便预测ROI 370a的起点。
对于具有多于两个历史数据点的场景,预测操作可以被配置为基于三次拟合函数来预测ROI位置点。然而,计算时间和存储器存储的成本可能会增加。使用三次拟合可以包括在时间、空间和准确度之间的权衡。AI计量控制模块320是否使用三次拟合函数可以取决于用户偏好。例如,用户可以使用HID 166来提供信号USER以启用/禁用三次拟合。通常,如果二次拟合函数提供了足够的准确度,那么系统可以使用最近的两个历史数据和使用等式EQ8和等式EQ9的新数据以便预测二次拟合函数上的点。
参考图9,示出了方法(或过程)500。方法500可以实现使用人工智能跟踪移动对象的感兴趣区域的自动曝光计量。方法500一般包括步骤(或状态)502、步骤(或状态)504、步骤(或状态)506、步骤(或状态)508、步骤(或状态)510、步骤(或状态)512、步骤(或状态)514、步骤(或状态)516、决策步骤(或状态)518、步骤(或状态)520和步骤(或状态)522。
步骤502可以开始方法500。在步骤504中,处理器102可以接收像素数据。在示例中,捕获设备104可以响应于光输入信号LIN生成像素数据并且生成包括像素数据的信号VIDEO。接着,在步骤506中,处理器102可以执行视频处理操作以处理被布置为视频帧302a-302n的像素数据。在步骤508中,处理器102的IDSP 304可以被配置为针对视频帧302a-302n中的下一视频帧生成统计数据和时间戳。在示例中,统计数据可以包括3A统计数据,其可以经由信号3A_STAT被呈现给3A模块308,并且时间戳可以是对应于视频帧302a-302n中的一个视频帧的时间戳并且可以被通信到3A模块308和ROI检测模块306。接下来,方法500可以移动到步骤510。
在步骤510中,处理器102可以执行计算机视觉操作以确定被分析的视频帧的在时间戳处的感兴趣区域。在示例中,ROI检测模块306(例如,CNN模块190b的组件)可以检测对应于期望的对象/事件的感兴趣区域,并且在对应于更新后的时间戳信号TS’的时间处生成感兴趣区域列表LROI。接下来,在步骤512中,ROI检测模块306和3A统计数据模块310可以跟踪在视频帧302a-302n的序列上ROI的移动。例如,当ROI检测模块306检测到ROI并更新对应于相应的ROI ID 380a-380c的ROI位置384a-384c时,历史ROI信息可以经由历史时间戳HTS和历史ROI信息列表HLROI存储在跟踪列表队列324中。在步骤514中,处理器102可以评估ROI的当前亮度值。在示例中,AI计量控制模块320可以接收来自信号LROI的ROI信息、信号KNEE中的knee值、信号MWT中的计量加权表、信号HLROI中的历史ROI列表信息、信号3A_STAT中的3A统计数据以评估当前亮度值。接下来,在步骤516中,处理器102可以将当前亮度值与目标亮度值进行比较。在示例中,AE控制模块322可以将信号CLUMA中的当前亮度值与信号TLUMA中的目标亮度值进行比较。接下来,方法500可以移动到决策步骤518。
在决策步骤518中,处理器102可以确定是否更新AE参数。在示例中,可以更新AE参数以调整当前亮度值来匹配目标亮度值。例如,如果当前亮度值已经处于目标亮度值,则更新AE参数可能不是有益的。如果确定没有针对AE参数的更新,则方法500可以返回到步骤504(例如,以评估视频帧302a-302n中的下一个视频帧)。如果确定了针对AE参数的更新,则方法500可以移动到步骤520。在步骤520中,处理器102可以响应于当前亮度值和目标亮度值来计算AE参数。例如,可以计算AE参数以便将当前亮度值与目标亮度值对齐。接着,在步骤522中,处理器102可以生成AE参数。例如,AE控制模块322可以将信号AE_PARAM呈现给捕获设备104(例如,以调整DC光圈、快门时间、AGC等)。接下来,方法500可以返回到步骤504(例如,以评估视频帧302a-302n中的下一个视频帧)。
参考图10,示出了方法(或过程)550。方法550可以选择自动曝光计量技术。方法550一般包括步骤(或状态)552、步骤(或状态)554、决策步骤(或状态)556、步骤(或状态)558、决策步骤(或状态)560、步骤(或状态)562、步骤(或状态)564、步骤(或状态)566、步骤(或状态)568和步骤(或状态)570。
步骤552可以开始方法550。在步骤554中,ROI检测模块306可以生成ROI信息。例如,如果检测到计算机视觉结果,则ROI检测模块306可以生成信号LROI以更新ROI信息。接下来,在决策步骤556中,AI计量控制模块320可以确定是否已经接收到计算机视觉结果。例如,AI计量控制模块320可以确定ROI检测模块306是否已经提供了针对视频帧302a-302n中的最新视频帧的计算机视觉结果。如果AI计量控制模块320已经确定已经接收到计算机视觉结果,则方法550可以移动到步骤558。在步骤558中,AI计量控制模块320可以选择用于生成AE参数的操作模式,其为AI计量提供ROI跟踪。接下来,方法550可以移动到步骤566。在决策步骤556中,如果AI计量控制模块320已经确定尚未接收到计算机视觉结果,则方法550可以移动到决策步骤560。
在决策步骤560中,AI计量控制模块320可以确定在最新跟踪循环编号中是否存在计算机视觉结果。在示例中,AI计量控制模块320可以接收历史时间戳信号HTS以确定在跟踪列表队列324中的任何历史信息是否是来自由信号TLN提供的跟踪列表编号长度内的视频帧302a-302n中的一个视频帧。如果在跟踪循环编号内没有用于计算机视觉结果的历史信息,则方法550可以移动到步骤562。在步骤562中,AI计量控制模块320可以选择用于生成AE参数的操作模式,其提供整个FOV计量。接下来,方法550可以移动到步骤566。在决策步骤560中,如果在跟踪循环编号内存在用于计算机视觉结果的历史信息,则方法550可以移动到步骤564。在步骤564中,AI计量控制模块320可以选择用于生成AE参数的操作模式,其使用具有先前亮度值的计量策略。接下来,方法550可以移动到步骤566。
在步骤566中,AI计量控制模块320可以生成当前亮度值CLUMA。接下来,在步骤568中,AE控制模块322可以更新AE参数。信号AE_PARAM可以被通信到捕获设备104。接下来,方法550可以移动到步骤570。步骤570可以结束方法550。
参考图11,示出了方法(或过程)600。方法600可以使用全视场计量来选择自动曝光参数。方法600一般包括步骤(或状态)602、步骤(或状态)604、步骤(或状态)606、步骤(或状态)608、步骤(或状态)610、决策步骤(或状态)612、步骤(或状态)614、步骤(或状态)616、步骤(或状态)618、决策步骤(或状态)620、步骤(或状态)622和步骤(或状态)624。
步骤602可以开始方法600。在步骤604中,AI计量控制模块320可以选择提供整个FOV计量的操作模式。接下来,在步骤606中,跟踪列表队列324可以清除在跟踪列表队列324中的任何计算机视觉结果(例如,存储的所有结果可以在跟踪循环编号之外并且可能不再与传入的视频帧302a-302n相关)。在步骤608中,AI计量控制模块320可以接收knee信号KNEE(例如,用户输入)、计量加权表信号MWT(用户输入和/或存储在存储器150中的)和/或3A统计数据信号3A_STAT(例如,来自IDSP 304)。接下来,在步骤610中,AI计量控制模块320可以遍历到视频帧320a-320n中的一个视频帧中的瓦片402aa-402nn中的下一个瓦片。接下来,方法600可以移动到决策步骤612。
在决策步骤612中,AI计量控制模块320可以确定3A统计数据是否指示瓦片402aa-402nn中的当前一个瓦片具有小于2048的亮度值。如果亮度值小于2048,则方法600可以移动到步骤614。在步骤614中,AI计量控制模块320可以将瓦片亮度值按1+knee值进行缩放。接下来,方法600可以移动到步骤618。在决策步骤612中,如果亮度值大于或等于2048,则方法600可以移动到步骤616。在步骤616中,AI计量控制模块320可以将瓦片亮度值按1-knee值进行缩放。接下来,方法600可以移动到步骤618。
在步骤618中,AI计量控制模块320可以将瓦片亮度乘以瓦片加权(例如,来自计量加权表)。接下来,方法600可以移动到决策步骤620。在决策步骤620中,AI计量控制模块320可以确定视频帧302a-302n中的当前视频帧中是否存在要评估的更多的瓦片402aa-402nn。如果存在要评估的更多瓦片,则方法600可以返回到步骤610。如果没有要评估的更多瓦片,则方法600可以移动到步骤622。在步骤622中,AI计量控制模块320可以计算平均加权亮度值。接下来,方法600可以移动到步骤624。步骤624可以结束方法600。
参考图12,示出了方法(或过程)650。方法650可以在没有当前计算机视觉结果的情况下使用先前的亮度值来选择自动曝光参数。方法650一般包括步骤(或状态)652、步骤(或状态)654、步骤(或状态)656、决策步骤(或状态)658、步骤(或状态)660、步骤(或状态)662、步骤(或状态)664、决策步骤(或状态)666、步骤(或状态)668、步骤(或状态)670和步骤(或状态)672。
步骤652可以开始方法650。在步骤654中,AI计量控制模块320可以选择使用具有先前亮度值的计量策略的操作模式。例如,没有计算机视觉结果可用于视频帧302a-302n中的当前一个视频帧。接下来,在步骤656中,AI计量控制模块320可以从跟踪列表队列324(例如,历史ROI信息列表信号HLROI)接收下一计算机视觉结果。接下来,方法650可以移动到决策步骤658。
在决策步骤658中,AI计量控制模块320可以确定是否已经在视频帧302a-302n的最后跟踪循环编号中更新了计算机视觉结果。如果没有新的计算机视觉结果,则方法650可以移动到步骤660。在步骤660中,计算机视觉结果可以从跟踪列表队列324中移除。例如,可以在没有新的计算机视觉结果时更新跟踪列表队列324。接下来,方法650可以移动到步骤662。在决策步骤658中,如果在视频帧302a-302n的最后跟踪循环编号中更新了计算机视觉结果,则方法650可以移动到步骤662。
在步骤662中,AI计量控制模块320可以使用来自先前计算机视觉结果的亮度值(例如,以呈现为信号CLUMA)。例如,可以使用来自信号HLROI中的ROI信息的亮度值,其具有来自信号HTS的最近期的历史时间戳。接下来,在步骤664中,AE控制模块322可以重新使用先前的亮度结果作为当前亮度值以与目标亮度值进行比较,以便生成用于捕获设备104的AE参数。接下来,方法650可以移动到决策步骤666。
在决策步骤666中,AI计量控制模块320可以确定是否已经检测到新的计算机视觉结果。在示例中,AI计量控制模块320可以确定是否已经在信号LROI中提供了新的ROI信息。如果尚未接收到新的计算机视觉结果,则方法650可以移动到步骤668。在步骤668中,AI计量控制模块320可以改变为提供整个FOV计量的操作模式。接下来,方法650可以移动到步骤672。在决策步骤666中,如果已经检测到新的计算机视觉结果,则方法650可以移动到步骤670。在步骤670中,AI计量控制模块320可以改变为提供具有ROI跟踪的AI计量的操作模式。接下来,方法650可以移动到步骤672。步骤672可以结束方法650。
参考图13,示出了方法(或过程)700。方法700可以使用感兴趣区域跟踪来选择自动曝光参数。方法700一般包括步骤(或状态)702、步骤(或状态)704、步骤(或状态)706、步骤(或状态)708、决策步骤(或状态)710、步骤(或状态)712、步骤(或状态)714、决策步骤(或状态)716、步骤(或状态)718、步骤(或状态)720、决策步骤(或状态)722、步骤(或状态)724、步骤(或状态)726、步骤(或状态)728和步骤(或状态)730。
步骤702可以开始方法700。在步骤704中,AI计量控制模块320可以选择提供具有ROI跟踪的AI计量的操作模式。接下来,在步骤706中,AI计量控制模块320可以接收ROI370a-370b中的一个ROI的ROI信息以及ROI ID 380a-380b中的下一个ROI ID。在步骤708中,AI计量控制模块320可以比较在来自IDSP 304的视频帧302a-302n中的当前一个视频帧的时间戳TS与来自ROI检测模块306的更新后的时间戳TS’之间的差异。接下来,方法700可以移动到决策步骤710。
在决策步骤710中,AI计量控制模块320可以确定是否执行ROI预测。在示例中,可以在时间戳TS和更新后的时间戳TS’不匹配时执行ROI预测。如果AI计量控制模块320正在执行ROI预测,则方法700可以移动到步骤712。在步骤712中,AI计量控制模块320可以计算拟合函数以基于存储在跟踪列表队列324中的历史信息来估计预测的ROI位置。接下来,方法700可以移动到步骤714。在决策步骤710中,如果AI计量控制模块320没有执行ROI预测,则方法700可以移动到步骤714。在步骤714中,AI计量控制模块320可以比较ROI位置384a-384b中的一个ROI位置的坐标,以便对ROI瓦片412aa-412am中的每一个ROI瓦片进行分类。接下来,方法700可以移动到决策步骤716。
在决策步骤716中,AI计量控制模块320可以确定是否存在任何有效的ROI瓦片。例如,如果ROI没有环绕瓦片402aa-402nn中的任一个,则可能不存在任何有效的ROI瓦片。如果没有有效的ROI瓦片,则方法700可以移动到步骤718。在步骤718中,AI计量控制模块320可以跳过针对ROI 370a-370b中的当前一个ROI的平均亮度计算。接下来,方法700可以移动到决策步骤722。在决策步骤716中,如果存在有效的ROI瓦片,则方法700可以移动到步骤720。在步骤720中,AI计量控制模块320可以应用3A统计数据并针对ROI计算平均亮度。接下来,方法700可以移动到决策步骤722。
在决策步骤722中,AI计量控制模块320可以确定在由ROI检测模块306提供的ROI列表中是否存在更多的ROI。如果存在更多的ROI,则方法700可以返回到步骤706并针对具有下一ROI ID的ROI重复步骤706-722。如果没有更多的ROI,则方法700可以移动到步骤724。在步骤724中,AI计量控制模块320可以应用ROI加权382a-382b来针对ROI 370a-370b中的每一个ROI和背景瓦片计算加权平均亮度值。接下来,在步骤726中,AE控制模块322可以更新用于捕获设备102的AE参数。在步骤728中,AI计量控制模块320可以生成历史时间戳信号HTS和历史ROI信息列表信号HLROI,以更新在跟踪列表队列324中的计算机视觉结果。接下来,方法700可以移动到步骤730。步骤730可以结束方法700。
由图1-13的图执行的功能可以使用常规通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器、CISC(复杂指令集计算机)处理器、SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算术逻辑单元(ALU)、视频数字信号处理器(VDSP)和/或根据说明书的教导进行编程的类似的计算机器中的一个或多个来实现,如对(多个)相关领域的技术人员将显而易见的。熟练的程序员可以基于本公开的教导容易地准备适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块,同样如对(多个)相关领域的技术人员将显而易见的。该软件通常由机器实现方式的处理器中的一个或多个处理器从一种或多种介质执行。
本发明还可以通过以下方式来实现:准备ASIC(专用集成电路)、平台ASIC、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、门海(sea-of-gate)、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)对所述视频帧执行计算机视觉操作以确定在所述时间戳处在所述视频帧内的一个或多个感兴趣区域;(iv)跟踪在所述视频帧的序列上所述感兴趣区域的移动;(v)评估所述感兴趣区域的当前亮度值;(vi)响应于所述当前亮度值和目标亮度值来计算自动曝光参数;以及(vii)生成包括所述自动曝光参数的输出信号,其中,所述自动曝光参数被计算以用于:
(i)使所述视频帧中的所述感兴趣区域的曝光优先化,以及
(ii)基于所述感兴趣区域的所述移动来动态地改变所述自动曝光参数。
2.根据权利要求1所述的装置,其中,动态地改变所述自动曝光参数使得响应于所述当前亮度值由于各种光条件改变,而在所述视频帧中的所述感兴趣区域能够使所述曝光在所述视频帧的所述序列上呈现为一致。
3.根据权利要求1所述的装置,其中,所述统计数据包括来自所述视频帧的关于自动白平衡、自动聚焦和自动曝光的信息。
4.根据权利要求1所述的装置,其中,(i)所述计算机视觉操作被配置为生成关于所述感兴趣区域的列表的信息和修改后的时间戳,并且(ii)所述修改后的时间戳包括所述时间戳加上用于执行所述计算机视觉操作的时间量。
5.根据权利要求4所述的装置,其中,所述感兴趣区域的所述列表的每个条目包括位置、标识值和加权值。
6.根据权利要求5所述的装置,其中,所述计算机视觉操作被配置为基于所述标识值来跟踪在所述视频帧的所述序列上所述感兴趣区域的所述移动。
7.根据权利要求5所述的装置,其中,所述加权值(i)包括在0.0与1.0之间的值,并且(ii)提供用于所述自动曝光参数的所述感兴趣区域的优先级。
8.根据权利要求5所述的装置,其中,所述感兴趣区域的所述当前亮度值是响应于关于所述感兴趣区域的所述信息、所述修改后的时间戳、所述时间戳和所述统计数据来评估的。
9.根据权利要求8所述的装置,其中,所述感兴趣区域的所述当前亮度值是进一步响应于(i)跟踪循环编号、(ii)计量加权表以及(iii)初始设置加权值来评估的,以用于在所述视频帧的亮区与暗区之间平衡所述曝光。
10.根据权利要求4所述的装置,其中,所述处理器还被配置为响应于确定所述时间戳和所述修改后的时间戳不匹配来执行对所述感兴趣区域的定位的预测。
11.根据权利要求10所述的装置,其中,对所述感兴趣区域的所述定位的所述预测是响应于在所述修改后的时间戳处所述感兴趣区域当前位置以及存储在跟踪列表队列中的关于所述感兴趣区域的历史信息来确定的。
12.根据权利要求1所述的装置,其中,所述计算机视觉操作包括以下各项中的一个或多个:人检测、车辆检测、运动检测和面部检测。
13.根据权利要求1所述的装置,其中,所述感兴趣区域中的每一个感兴趣区域与如由所述计算机视觉操作定义的检测到的对象相对应。
14.根据权利要求1所述的装置,其中,所述输出信号被提供给捕获设备的图像传感器。
15.根据权利要求14所述的装置,其中,所述自动曝光参数包括以下各项中的一个或多个:所述图像传感器的快门时间、光圈值和自动增益控制。
16.根据权利要求1所述的装置,其中,所述处理器被配置为响应于(i)所述计算机视觉操作未检测到所述感兴趣区域中的至少一个感兴趣区域,以及(ii)不具有所述感兴趣区域的先前历史,来计算针对所述视频帧的整个视场的所述自动曝光参数。
17.根据权利要求1所述的装置,其中,所述处理器被配置为响应于(i)所述计算机视觉操作在所述视频帧的当前一个视频帧中未检测到所述感兴趣区域中的至少一个感兴趣区域,以及(ii)具有在所述视频帧中的先前一个视频帧中的所述感兴趣区域的先前历史,来重新使用来自所述视频帧中的所述先前一个视频帧的所述当前亮度值。
18.根据权利要求17所述的装置,其中,如果所述当前亮度值与在所述视频帧的跟踪循环编号内的所述感兴趣区域的所述先前历史相对应,则使用来自所述视频帧中的所述先前一个视频帧的所述当前亮度值。
19.根据权利要求17所述的装置,其中,预定数量的所述感兴趣区域的所述先前历史被存储在跟踪列表队列中。
20.根据权利要求1所述的装置,其中,所述统计数据包括与所述视频帧的多个瓦片相对应的瓦片亮度值的表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210725734.0A CN117354631A (zh) | 2022-06-23 | 2022-06-23 | 使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量 |
US17/857,217 US20230419505A1 (en) | 2022-06-23 | 2022-07-05 | Automatic exposure metering for regions of interest that tracks moving subjects using artificial intelligence |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210725734.0A CN117354631A (zh) | 2022-06-23 | 2022-06-23 | 使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354631A true CN117354631A (zh) | 2024-01-05 |
Family
ID=89323219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210725734.0A Pending CN117354631A (zh) | 2022-06-23 | 2022-06-23 | 使用人工智能跟踪移动主体的感兴趣区域的自动曝光计量 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230419505A1 (zh) |
CN (1) | CN117354631A (zh) |
-
2022
- 2022-06-23 CN CN202210725734.0A patent/CN117354631A/zh active Pending
- 2022-07-05 US US17/857,217 patent/US20230419505A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230419505A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146747B1 (en) | Dynamic driver mechanism for rolling shutter sensor to acquire the structured light pattern | |
CN114093142B (zh) | 通过组合视觉传感和热传感的对象感知的温度异常监控和预警 | |
US9111353B2 (en) | Adaptive illuminance filter in a video analysis system | |
US11843760B2 (en) | Timing mechanism to derive non-contaminated video stream using RGB-IR sensor with structured light | |
US10255683B1 (en) | Discontinuity detection in video data | |
US11594254B2 (en) | Event/object-of-interest centric timelapse video generation on camera device with the assistance of neural network input | |
US11935257B2 (en) | Adding an adaptive offset term using convolution techniques to a local adaptive binarization expression | |
US11563927B2 (en) | Mounting calibration of structured light projector in mono camera stereo system | |
US11869241B2 (en) | Person-of-interest centric timelapse video with AI input on home security camera to protect privacy | |
Jiang et al. | A hardware architecture for real-time video segmentation utilizing memory reduction techniques | |
US20230072702A1 (en) | Accelerating speckle image block matching using convolution techniques | |
US20240029285A1 (en) | Adaptive face depth image generation | |
US20230419505A1 (en) | Automatic exposure metering for regions of interest that tracks moving subjects using artificial intelligence | |
US11696039B2 (en) | Smart IP camera with color night mode | |
US11284022B2 (en) | Driver mechanism for rolling shutter sensor to acquire structured light pattern | |
US11924555B2 (en) | Intelligent auto-exposure control for RGB-IR sensor | |
Ibraheem et al. | FPGA-based vision processing system for automatic online player tracking in indoor sports | |
US11935377B1 (en) | Security cameras integrating 3D sensing for virtual security zone | |
US11743450B1 (en) | Quick RGB-IR calibration verification for a mass production process | |
US20230206476A1 (en) | Accelerated alignment of high-resolution image and depth map for low-bit-width floating-point representation | |
US11922697B1 (en) | Dynamically adjusting activation sensor parameters on security cameras using computer vision | |
WO2023106103A1 (ja) | 画像処理装置およびその制御方法 | |
CN115988310A (zh) | 人脸亮度计算方法、装置、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |