用于提高流处理效率的级联特征检测器的制作方法

文档序号:31950474发布日期:2022-10-26 10:20阅读:90来源:国知局
用于提高流处理效率的级联特征检测器的制作方法

1.本发明涉及数据流分析技术领域,其中大部分数据流不是“感兴趣的”。特别地,本发明涉及分析来自例如摄像机或安全摄像机、用于语音控制的麦克风或用于医疗诊断的数据流的数据。


背景技术:

2.在许多应用中,电子系统试图随着时间的推移监控数据流,其中大部分时间没有产生太多“感兴趣的”数据。
3.例如,“智能摄像机”可用于安全、过程监控、医疗保健或许多其他应用。在这种情况下,数据流由视频图像帧组成,并且可以包括音频流。本文同样适用于涉及监控数据流的任何其他应用,例如监控来自工业过程的传感器输出,监听智能扬声器上的语音命令,或处理先前已写入存储介质(例如视频文件,甚至自动处理代表文学作品的文本文件)的一组数据。
4.现有的实现方案可能涉及检测数据流中的变化(例如视频中的运动检测器),以便在没有发生太多“感兴趣”的时段期间最小化所需的处理,从而最小化计算硬件,从而最小化成本和功率。然而,对理解什么是“感兴趣的”是复杂的,仍然是一个挑战。这会导致较高的“假阳性”率,因为将“假阴性”的可能性降至最低通常是有效的,这会导致高于最佳的处理成本以及较高的相关硬件成本。
5.以“智能摄像机”为例,可以使用处理算法(例如,神经网络)来完全处理图像或最近的图像流。这个处理过程需要相当大的计算能力。图1显示了这种基本智能摄像机1的示意图,包括摄像机110、神经网络120和输出130。计算机硬件总是在每帧上运行神经网络(即100%的硬件成本和功耗)。
6.如果图像流大部分是不变的,则现有实现方案可以包括运动检测器,以在将图像发送到主算法之前检查图像是否与先前图像基本相似。图2显示了这种具有运动检测的智能摄像机2,包括摄像机210、运动检测器220、神经网络230和输出240。如果场景中有一段时间的连续运动,则主算法220必须处理每个视频帧。因此,计算硬件需要与连续运行的算法的能力相匹配。
7.由于计算机硬件仍然必须能够在每一帧上运行神经网络220,所以运行运动检测器的任何节省仅是功率节省,而不是硬件成本节省,因此硬件成本是100%,但平均功耗将减少到,例如10%。
8.在一些常规实现方案中,摄像机可以通过网络将更复杂的算法卸载到服务器,这意味着摄像机硬件成本相对较低,但网络连接需要能够应对来自摄像机的峰值数据速率,这也带来了显著的成本。
9.本发明旨在减少在不发生太多“感兴趣”的时段期间和在延长的峰值操作时段期间所需的处理,从而降低系统的计算硬件功率要求和成本。


技术实现要素:

10.本文公开描述了用于数据分析和图像处理的技术、方法、系统和其他机制。
11.根据本发明的第一方面,本发明提供了一种计算机实现的方法,包括接收输入数据流;通过第一算法识别数据流的一个或多个第一内容特征;基于所述第一算法的至少一个输出,确定要存储在第一缓冲器中的数据流的一个或多个部分;将所确定的部分存储在所述第一缓冲器中;利用所述数据流的存储部分,通过第二算法识别所述数据流的一个或多个第二内容特征;以及基于所识别的第二内容特征生成输出以输出给用户。所述第二算法在计算上比所述第一算法更复杂。
12.该方法可以包括基于所述第一算法的至少一个输出,确定要从第一缓冲器中移除的数据流的一个或多个存储部分;以及将所确定的部分从第一缓冲器中移除。
13.所述第一算法可以包括多个处理层,并且基于所述第一算法的上层输出确定要存储的数据流的部分。
14.所述第一内容特征可以与所述第二内容特征基本相同。
15.所述第一算法和所述第二算法可使用公共训练数据集和公共训练目标来训练。
16.该方法可以包括预处理步骤,在将所确定的部分存储在第一缓冲器中之前,预处理要存储在第一缓存器中的数据流的一个或多个部分。
17.所述确定要存储在第一缓冲器中的数据流的一个或多个部分的步骤,可以包括确定要存储在第一缓冲器中的数据流的基本上固定的比例。
18.该方法可以包括基于所述第二算法对一个或多个第二内容特征的识别,更新所述第一算法。
19.由所述第一算法识别的一个或多个第一内容特征可以存储在第二缓冲器中。
20.可以至少部分地基于存储在第二缓冲器中的第一内容特征,确定要存储在第一缓冲器中的数据流的一个或多个部分。
21.所述数据流可以是包括多个图像帧的视频流;并且所述第一内容特征和所述第二内容特征可以是图像帧的图像特征。
22.所述图像特征可以对应于人;并且所生成的输出可基于视频流中的估计人数产生。
23.所述图像特征可以对应于一个或多个诊断指示符;并且所生成的输出可以包括用于辅助诊断的至少一个诊断指示。
24.根据本发明的第二方面,本发明提供了一种数据处理装置,包括用于接收输入数据流的输入;处理器;以及输出。该装置被配置为执行上述第一方面的方法。
25.根据本发明的第三方面,本发明提供了一种存储介质,该存储介质被配置来存储指令,当由处理器执行时,该指令使处理器执行上述第一方面的方法。
26.可选特征如从属权利要求中所述。
附图说明
27.本文公开的一个或多个示例的细节在附图和下面的描述中阐述。其他特征、目的和优点将从说明书和附图以及权利要求书中显而易见。
28.图1是一基本智能摄像机的示意图;
图2是一具有运动检测的摄像机的示意图;图3是根据一个实施例的具有运动检测和动态阈值缓冲(buffering)的摄像机的示意图;图4是根据一个实施例的具有级联算法和高速缓存(cache)的摄像机的示意图;图5是根据一个实施例的深度卷积神经网络的示意图;以及图6是根据一个实施例的具有运动检测和级联算法和高速缓存的摄像机的示意图。
具体实施方式
29.图3示出了根据一个实施例的图像捕获和图像处理装置3,该装置具有运动检测和动态阈值缓冲。所述装置3包括摄像机310、运动检测器320、动态阈值缓冲器330、神经网络340和输出350。
30.所述摄像机310被配置来接收包括视频数据的输入数据流。所述摄像机310被配置来捕获多个视频图像帧形式的视频数据。多个捕获的视频图像帧可以形成输入数据流。以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
31.所述运动检测器320被配置来接收来自摄像机310的多个视频图像帧。所述运动检测器320配置为检测视频图像帧中的一个或多个中的运动。所述运动检测器320可以执行图像处理算法以检测运动。例如,运动检测器320可以被配置来检测输入数据流中像素强度的变化。所述运动检测器320可以被认为识别所述输入数据流的一个或多个内容特征,例如,可以对应于运动对象的变化像素。例如,运动检测器320可以通过检测视频数据中的运动来识别一个或多个运动对象的存在。运动检测器320可以被配置来高速缓存多个视频图像帧,其中例如通过写入磁盘来检测运动。
32.所述动态阈值缓冲器330被配置来存储所述输入数据流的一个或多个部分。所述动态阈值缓冲器330被配置来存储检测到运动的多个视频图像帧中的一个或多个。所述动态阈值缓冲器330被配置为基于由运动检测器320检测到的运动,来确定所述输入数据流中要存储的部分。例如,所述动态阈值缓冲器300可以拒绝存储视频中低于动态运动阈值的部分。
33.所述动态阈值缓冲器330可以被配置来确定要存储在第一缓冲器中的数据流的基本固定的比例。例如,所述动态阈值缓冲器330可以固定在90%拒绝存储,使得90%的视频图像帧被丢弃,10%被保留。所述动态阈值缓冲器330可以使用动态阈值技术,来确定对动态运动阈值的运动灵敏度。例如,在场景中相对较小运动的时段期间,动态阈值可能下降,直到即使在该降低的运动水平下,一致的10%的图像被存储在高速缓存中,其中所述神经网络340处理降低的数据流。
34.在增加运动的时段期间,缓冲器可以拒绝存储视频中低于动态增加阈值的部分。动态阈值缓冲器330可以确定所述数据流的一个或多个存储部分将要从所述第一缓冲器中移除。例如,当一个人走过摄像机时,所有进入的帧将显示出比当前缓冲区中的帧高得多的运动估计,从而导致许多低运动帧从缓冲区中移出。这可以允许缓冲区有效地缓冲短时间的有趣活动。
35.如果场景内的运动继续,动态阈值会自动增加,最终系统会稳定在新的阈值,这导致只有10%的图像存储在高速缓存中。这样,后续神经网络340可以在所有输入数据流的恒定部分上运行。计算机硬件只需要能够在10%的数据上运行神经网络340。神经网络340可以在任何时间仅处理高速缓存中的最高优先级图像(优先级通常是年龄和运动水平的组合),其中动态阈值调整算法确保高速缓存始终包含足够的数据以供算法继续处理。
36.以这种方式,装置3减少了评估输入数据流的特定部分为“不感兴趣”的计算量,因此可以丢弃。
37.这为“重要”数据提供了一种原则性的优先级排序方法(因此减少了延迟)。可以节省功率和计算硬件成本,因为可以使用神经网络340仅处理数据中最“有趣”部分的固定比例。
38.这样,功耗可以减少到大约10%,硬件成本可以减少到约10%。在其他实施方式中,可以根据系统要求设置保持阈值,例如5%或15%。所述保持阈值可以在0%-50%范围内选择。
39.在一些示例中,可以调整保持阈值,以允许基于所观察的数据流,动态改进系统的误报/误报率。例如可以基于由特定智能摄像机观察到的场景来调整阈值,以改进该摄像机中的系统。
40.所述神经网络340被配置来识别所述输入数据流的一个或多个内容特征。所述神经网络340是用于识别内容特征的算法的示例。所述神经网络340被配置来使用数据流的存储部分。可以看出,所述神经网络340在计算上比运动检测器320更复杂。
41.在一些示例中,所述输入数据流可以是包括多个图像帧的视频流;并且所述内容特征可以是视频图像帧的图像特征。所述内容特征可以对应于人;并且所述神经网络340可以被配置来估计视频流中的人数。所述神经网络340的最后一层的输出可以是单个值,即视频流中的人数。
42.所述输出350被配置来基于由神经网络340提供的所识别的内容特征,生成输出,以输出给用户。
43.图4示出了根据一个实施例的图像处理装置4,该图像处理装置具有带高速缓存的级联算法。在上述实施例中,所述运动检测器320和所述神经网络340之间的“感兴趣”定义可能存在差异。理想的运动检测器将仅对神经网络敏感的图像元素敏感,但这本质上意味着产生与神经网络本身相同的输出。这将需要类似的计算成本,这意味着没有任何节约。
44.在一些实施例中,可以训练增加计算复杂度的级联算法。所述算法可以是神经网络。每个神经网络可以针对类似的训练数据进行训练。计算复杂度不断增加的一系列算法可能都试图比前一种更接近地检测“感兴趣”的特征。在一些实施例中,可以随着时间动态地改进级联的早期阶段,以在给定观察到的实际数据的情况下,更紧密地匹配级联的后期阶段的输出。
45.所述装置4包括摄像机410、第一神经网络420、缓冲器430、第二神经网络440和输出450。未描述的元件基本上如图3所示。
46.所述摄像机410被配置来接收包括视频数据的输入数据流。所述摄像机410被配置来将输入数据流立即传递到所述第一神经网络420中。
47.所述第一神经网络420被配置来识别所述输入数据流的一个或多个内容特征。所述神经网络420是用于识别内容特征的算法的示例。所述第一神经网络420可以被认为用作
感兴趣图像的粗滤波器。
48.在一些示例中,所述输入数据流可以是包括多个图像帧的视频流;并且所述内容特征可以是视频图像帧的图像特征。所述图像特征可以对应于人;并且所述第一神经网络420可以被配置来估计视频流中的人数。所述第一神经网络420的最后一层的输出可以是单个值,即视频流中的人数。
49.所述第一神经网络420还包括网络内部的一个或多个附加层。所述附加层可以响应图像中的各种元素。例如,一个或多个层可以被配置来响应具有不同对比度等的人形块。在靠近网络输出的一个或更多层中,由于深度卷积神经网络的分层结构,将存在对期望的内容特征做出更多响应的图像的内部表示。这些层可以称为“上层”。例如,一个或多个上层对房间中的人数的响应可能比对用于训练他们的数据集的其他内容特征的响应更强烈。
50.图5示出了根据一个实施例的代表性的神经网络420。
51.所述第一神经网络420包括多个处理层。所述第一神经网络420包括输入层421、一个或多个中间层422、上层423、一个或者多个输出层424和输出425。
52.所述输出层424之前的所述上层423被高亮显示,并且所述上层423激活被显示为向量。在一些示例中,可以基于所述上层输出来确定要存储在缓冲器中的所述输入数据流的部分。
53.这种“上层”的激活可以被视为高维空间中的一个点,概括了神经网络处理的图像。这样,任何两个这样的点之间的距离可以提供两个图像之间“相似性”的度量。在一些示例中,这种“相似性”的概念可以具体地表示算法输出的变化,例如房间中的人数。
54.返回图4,缓冲器430被配置来存储所述输入数据流的一个或多个部分。所述缓冲器430可被配置来存储由所述第一神经网络420识别的一个或多个内容特征。所述缓冲器430可以在第二神经网络440摄取之前,存储来自所述输入数据流的一个或者多个感兴趣的图像。所述装置4在算法之间设置有缓冲器,以确保输入数据流中的高优先级变化可以通过级联快速传播。
55.在一些示例中,该方法可以包括预处理步骤,在将确定的部分存储在所述缓冲器430中之前,预处理要存储在缓冲器中的所述输入数据流的一个或多个部分。在一些实施例中,可以至少部分地通过数学距离度量来控制对缓冲器430的添加/丢弃。数学距离度量可以在所考虑的当前样本与在其周围及时收集的样本或高速缓存中的一些样本之间测量。例如,如果距离度量与时间上的相邻样本相比较大,则项目可以进入缓冲器430。距离度量可以指示数据流已经以神经网络420认为感兴趣的方式改变。
56.在一些示例中,可以至少部分地基于存储在第二缓冲器中的一个或者多个内容特征,确定要存储在所述缓冲器430中的所述输入数据流的一个或多个部分。例如,所述第二缓冲器可以被配置为存储来自所述第一神经网络420的“上层”输出。所述第二缓冲器可连续评估所有存储图像之间的数学距离,以最大化缓存内容的多样性。这样,如果图像在两个感兴趣的状态之间切换,则可以避免缓冲器430被填满。例如,一个人反复进出画面的情况会在时间上频繁地改变人数,但其方式可能并不特别重要。
57.所述距离度量(欧几里得距离、余弦距离等)的选择、点的尺寸的预处理(归一化、组合等)以及来自所述第一神经网络420的输出的深度的选择是工程选择。所述第一神经网络420和所述第二神经网络440之间的缓冲器430可以使用距离度量,以便决定哪些图像足
够有趣以保留。例如,如果所述第一神经网络420的输出包含更多特征,则距离度量可以包含该信息。例如,如果所述第一神经网络420提供房间中人的性别比的估计,则包含10个男人的场景可以被认为仅与包含10个女人的场景稍微相似。
58.所述第二神经网络440被配置来识别所述输入数据流的一个或多个内容特征。所述第二神经网络440是用于识别内容特征的算法的示例。所述第二神经网络440被配置来使用缓冲器430中所述数据流的存储部分。所述第二神经网络440在计算上可能比所述第一神经网络420更复杂。第二神经网络440识别的第二内容特征可以与所述第一神经网络420识别的第一内容特征基本相同。可以使用公共训练数据集和公共训练目标来训练所述第一神经网络420和所述第二神经网络440。
59.在一些示例中,所述输入数据流可以是包括多个图像帧的视频流;并且所述第二内容特征可以是视频图像帧的图像特征。所述图像特征可以对应于人;并且所述第二神经网络440可以被配置来估计视频流中的人数。所述第二神经网络440的输出可以是单个值,即视频流中的人数。
60.所述输出450被配置为基于由所述第二神经网络440提供的所识别的内容特征,生成输出以输出给用户。
61.通过实现所述装置4,算法级联的“假阳性”和“假阴性”率可以降低到低于具有简单的数字信号处理步骤的系统,然后是复杂算法,如装置3。这样,与现有方法相比,峰值和平均计算能力都可以进一步降低,因此相关联的硬件成本也可以降低。
62.所述装置4的如此应用可以利用较低复杂度算法仅作为一些内容特征的过滤器,以至于更复杂算法被配置来识别所述数据流。以这种方式,可以优化那些硬件元件的复杂性、硬件成本或功耗,这些硬件元件可以有效地用于选择数据流的部分以传递到更复杂的算法。在一些示例中,人脸识别算法被配置为从输入图像提取大量特征,因此相对复杂。然而,较低复杂度的算法可以识别与面部相关的特征子集(例如,面部的存在/不存在,以及诸如鼻子、眼睛和耳朵的界标)。
63.所述装置4可以提供一种有规律的方法来优先处理数据集(即,高速缓存内的数据集,或发送用于最终阶段处理的样本的数据集)内样本的“多样性”。多样性可以定义为样本之间的数学距离函数。该函数可以定义样本中最感兴趣的内容特征。在一些示例中,例如,在用于人群监控的智能摄像机中利用这种能力,可以实现对不同人脸或同一人脸的不同视图的人脸检测的自动优先级排序。在一些示例中,上述方法可在不需要对所有样本运行计算量大的面部检测算法下实现。
64.使用较低复杂度算法对缓冲器中的多样性进行优先级排序,可以导致更复杂的算法在数据流中的宽范围的面部位置/方向上运行。这可以在不优先考虑面部本身的唯一性的情况下实现。在一些示例中,由较低复杂度算法识别的一些或所有内容特征,可以不同于由较复杂算法识别的那些内容特征。较低复杂度算法可以作为所述输入数据流上的有效过滤器来操作,以识别对较复杂算法更感兴趣的输入数据流的一部分。例如,较低复杂度的算法可以被配置来识别人的头部/颈部/肩部,以便围绕可能包含面部的图像的每个部分进行裁剪,而更复杂的算法可以配置为对裁剪的部分图像执行面部识别。
65.在一些实施例中,多样性的概念可以跨多个高速缓存层或整个系统实施。例如,可以使用图5中描述的上层输出向量,以便将每个新图像不仅与第一个神经网络之后的高速
缓存的内容进行比较,还与一个或多个后期高速缓存的内容进行比较。在一些示例中,与已经通过整个过滤器链的图像高度相似的图像可以被丢弃。在一些示例中,与已通过或被后续阶段丢弃的图像相关联的向量可以保留在循环缓冲器中。以这种方式,如果再次看到非常相似的图像,则对于较简单的前端网络来说似乎感兴趣但在后期阶段被认为不感兴趣的图像,不会被不必要地重新处理。这种方法可以确保用于稍后阶段处理的图像的存储空间,可以优先用于不同于已经看到的图像。
66.在一些实施例中,将图像的年龄并入高速缓存接受/拒绝逻辑中,这可以帮助确保图像新鲜度和多样性。在一些示例中,两个图像之间的距离度量可以除以年龄差。以这种方式,用于包含到高速缓存中的相似性阈值可以被配置为与年龄相关。
67.图像通过高速缓存的“速度”可以定义为图像在驱逐之前在缓存中花费的时间量。在一些示例中,仅当图像在第一级高速缓存中花费的时间长于预定(并且可能动态可调整)周期时,图像才可用于级联的第二级。以这种方式,可以在级联的阶段之间实现图像的最大平均吞吐量。以这种方式,可以避免有希望的图像被具有类似距离度量的甚至更有希望的图像快速替换的情况。
68.例如,在一个人走进视野然后停顿的情况下,接受逻辑可能偏好具有较低帧间运动(因此模糊)的帧,尽管两个图像在语义上可能相似(即,具有较低的距离度量)。立即将可能模糊的图像传递到第二阶段进行处理,而不检查是否至少经过了一些小的时间段而没有捕获更好的图像,这将是低效的。速度的概念还可以防止冷启动问题,即高速缓存最初都是空的。在这种情况下,基本上所有最初观察到的图像都可以进入高速缓存,并且很可能这些图像的大部分将在之后很快被逐出,以有利于稍微更好或更多样化的图像。通过数据在传递到下一级之前,强制在缓存中花费最少时间,系统可以避免用冗余数据淹没下一级网络和高速缓存。如果用于不同高速缓存的介质具有不同的写入速度(例如ram与ssd),则这可能是特别有利的。
69.在一些实施例中,一个或多个中间算法可以以有意义的形式输出输出值(例如,人数的估计,而不仅仅是无量纲数)。在一些示例中,所述输出值可用于基于这些早期输出对数据集的部分进行优先级排序或取消优先级排序。例如,在用于人群监控的人员计数摄像机中,当估算得到的计数低于非常小的神经网络的特定水平时,可以丢弃一个或多个图像。
70.在算法输出相对复杂的情况下,输出的不同元素在级联的不同阶段可能更有用。例如,感兴趣对象的位置以及该对象的存在或不存在可能是有用的。在一些示例中,如果感兴趣对象很可能不存在,则即使图像与先前图像具有较大的相似距离,也可以取消图像的优先级。
71.在一些实施例中,可以训练具有多个输出的滤波器。一些输出可以用作质量计算,以做出关于保留或丢弃图像的决定。一些输出可以用作多样性计算,以最小化正在处理的重复图像。
72.在面部识别系统的情况下,质量输出可以是指示图像中面部的概率的分类器,而多样性输出可以是面部到摄像机角度的估计。在一些示例中,编码质量输出的上层分量可以与编码多样性输出的上层组件分离。这样,在选择要进入高速缓存的图像时,使用上层激活向量作为距离度量不会无意中使缓存中的质量多样性最大化。以这种方式,可以避免多样性过滤步骤产生图像中出现的面部的最大可能的可能性范围,而不是面部角度的最大可
能范围。例如,确定质量的上层激活层可以表示面部出现在图像的不同位置的可能性。出于多样性的目的,将这些组件包括在距离度量中,可能会在图像周围移动时,无意中优先考虑与摄像机成相同角度的同一人脸。在一些示例中,计算多样性的特征集可能小于网络生成的完整特征集。
73.图6示出了根据一个实施例的具有一系列算法和高速缓存的图像处理装置6。在一些示例中,智能摄像机可以包括装置6,并且可以被配置用于特定应用,例如计算房间中的人数。如果帧之间没有运动,则房间中人数的主算法的输出将不会改变,因此装置6可以包括简单的运动检测器作为级联的第一元件。
74.所述装置6可以在前端使用简单的运动检测器来实现。级联中的后续元素可以是复杂度不同的深度卷积神经网络。所述置6可以包括一系列深度卷积神经网络(cnn),例如具有修改的“效率网(efficientnet)”架构的cnn。efficientnet系列架构中的一些被称为bo、b4和b7。所述神经网络可以被配置为对已不同程度下采样的图像副本进行操作。所有的神经网络可能已经被训练用于相同的任务,例如计算人数。尽管基于神经网络描述了该系统,但本发明适用于任何替代的数字信号处理技术。
75.所述装置6包括摄像机610、运动检测器620、第一神经网络630、第一高速缓存640、第二神经网络650、第二高速缓存660、第三神经网络670和输出680。
76.所述摄像机610被配置来接收包括视频数据的输入数据流。所述摄像机610被配置来捕获多个视频图像帧形式的视频数据。多个捕获的视频图像帧可以形成输入数据流。
77.所述运动检测器620被配置来接收来自所述摄像机610的多个视频图像帧,所述运动检测器620被配置来检测一个或多个视频帧中的运动。所述运动检测器620可以执行图像处理算法来检测运动。例如,运动检测器620可以被配置来检测输入数据流中像素强度的变化。运动检测器620可以被认为识别所述输入数据流的一个或多个内容特征,例如,可以对应于运动对象的变化像素。例如,运动检测器620可以通过检测视频数据中的运动来识别一个或多个运动对象的存在。运动检测器620可以被配置为将检测到运动的多个视频图像帧反馈发送到所述第一神经网络630。
78.所述第一神经网络630被配置来识别所述输入数据流的一个或多个内容特征。所述第一神经网络630是用于识别内容特征的算法的示例。所述第一神经网络630可以是b0神经网络。b0神经网络可具有0.4 gflops的图像典型的计算要求,以及23.7%的top-1 imagenet误差。所述第一神经网络630可以被认为用作感兴趣图像的粗滤波器。
79.在一些示例中,所述输入数据流可以是包括多个图像帧的视频流;并且内容特征可以是视频图像帧的图像特征。图像特征可以对应于人;并且第一神经网络630可以被配置来估计视频流中的人数。第一神经网络630的最后一层的输出可以是单个值,即视频流中的人数。
80.所述第一高速缓存640被配置来存储输入数据流的一个或多个部分。所述第一高速缓存640可以被配置来存储由第一神经网络630识别的一个或多个内容特征。所述第一高速缓存540可以在第二神经网络650摄取之前,存储来自输入数据流的一个或者多个感兴趣的图像,以确保输入数据流中的高优先级变化可以通过级联快速传播。
81.所述第二神经网络650被配置来识别所述输入数据流的一个或多个内容特征。所述第二神经网络650是用于识别内容特征的算法的示例。所述第二神经网络650可以是b4神
经网络。b4神经网络可具有4.2 gflops图像的典型计算要求,以及17.4%的top-1 imagenet误差。
82.考虑到b0神经网络和b4神经网络之间计算复杂度的差异,可能需要它们之间的第一高速缓存640在这些阶段之间保留最多大约0.4/4.2的帧。通过这种方式,在网络之间大致展开计算。在一些示例中,第一高速缓存640可以被配置为保留大约10%的帧。
83.所述第二高速缓存660被配置来存储输入数据流的一个或多个部分。所述第二高速缓存660可以被配置来存储由第二神经网络650识别的内容特征中的一个或多个。第二高速缓冲存储器660可以在第三神经网络670摄取之前,存储来自所述输入数据流的一个或者多个感兴趣的图像。
84.所述第三神经网络670被配置来识别所述输入数据流的一个或多个内容特征。所述第三神经网络670是用于识别内容特征的算法的示例。所述第三神经网络670可以是b7神经网络。b7神经网络可具有37 gflops的图像典型的计算要求,以及15.6%的top-1 imagenet误差。
85.考虑到b4神经网络和b7神经网络之间计算复杂度的差异,可能需要它们之间的第二高速缓存660在这些阶段之间保留最多大约4.2/37的帧。通过这种方式,在网络之间大致展开计算。在一些示例中,第二高速缓存660可以被设置为保留大约10%的帧。
86.输出680被配置为基于由第三神经网络670提供的所识别的内容特征生成输出,以输出给用户。
87.在所述装置6中,硬件仅需要能够处理大约1.2g次/输入图像。然而,所述输出680提供已经用37gflop末级神经网络处理的图像。以这种方式,所述装置6所需提供的计算能力减少了大约30倍。所述运动检测器可以降低平均功耗,但不降低峰值功耗或硬件成本。所述装置6的级联网络被配置来生成平均仅为1%的图像的最终输出,这是可接受的,例如当考虑花费大量时间观看相对静态场景的安全摄像机时。
88.在一些实施例中,如果较低级别网络产生具有一定置信度的结果,则装置6可以允许提前停止。在一些示例中,中间神经网络的输出用于帮助缓存中的优先级排序,这可能导致提前停止。在一些示例中,中间神经网络可以输出置信度的指示。例如,对象分类器可以产生匹配概率,使得清晰的匹配变得明显。这可以允许系统使用中间层网络输出,而不是在数据易于分类时运行最终阶段网络。这种方法可以节省更多的功率或提供更高的吞吐量。
89.此外,如果级联的多级提供相同的输出,则可以基于相同图像的后级的输出,来提高早期级的精度。
90.在一些实施例中,可以基于后期神经网络对一个或多个内容特征的识别,来更新一个或更多个早期神经网络。例如,可以基于所述第三神经网络670的输出,来更新第一神经网络630和第二神经网络650中的一个或多个。
91.在一些示例中,早期阶段输出和后期阶段输出不一致的图像,可用于提高早期阶段的可靠性。通过将后期神经网络的输出作为损失函数评估的基本事实,可以使用反向传播算法来计算对早期神经网络的权重的更新。
92.在一些示例中,可以维护有助于这种训练的所有图像的上层输出的历史。可以基于输出误差和与先前训练数据的历史相比的多样性来选择新的训练数据。这样,可以计算神经网络权重的最大有用更新集。权重的这种更新本身也是隐私保护的,因为实际输出不
在其中编码。因此,将数据传输到某个中央服务器以更新许多这样的网络连接设备的性能是安全的。
93.在一些实施例中,对于多个神经网络,一个或多个顶层或输出层保持相同。这样,可以在不同的神经网络之间直接比较顶层正下方的上层的输出。这有两个好处。首先,如果在输入数据流中需要多样性,则可以最大化所有神经网络之间的所有缓存级之间的多样性,而不必单独存储来自每个神经网络的上层输出。其次,来自上层的训练(反向传播)可以提供比来自更受限的输出集的训练更多的信息来训练网络。这可以从给定数量的训练图像中得到更好的训练。
94.在一些实现方案中,图像特征可以对应于一个或多个诊断指示符;并且所生成的输出可以包括用于辅助诊断的至少一个诊断指示。
95.在一些实现方案中,所述输入数据流可以是音频流。例如,所述输入数据流可以是来自麦克风的音频输入,例如用于由语音激活助手进行的热点词检测。语音助手设备在发送捕获的音频缓冲区以对命令进行全面分析之前,大部分时间都在等待接听热门词。在某些示例中,热点词可能是口头短语,例如“好的,助手(ok assistant)”。热点词必须在几乎瞬间被检测到,但平均计算成本尽可能低,因为大部分时间它没有听到任何或非热点词。在一些实施方式中,可以结合现有的数字信号处理算法,其中这些算法导致可接受的假阳性/假阴性率。例如,可以结合用于检测声音阈值水平的算法,或者用于对音频进行傅立叶变换以检查人类语音频率范围的算法。如上所述,可以用实现更好性能或更低计算/功率要求的级联来实现后级。
96.上述热点词检测问题是在输入数据流中观察到的特定内容上触发的示例。这与语义运动检测有关,期间需要计算当前数据样本相对于其他样本数据库的距离。在一些示例中,这可能触发捕获例如热点词,其中数据库是具有各种触发词的数据库。在一些示例中,这可以避免捕获,例如缺乏有意义的运动,其中数据库是具有样本的最近历史的数据库。在一些示例中,样本摘要的使用,例如上层激活的向量,允许这种数据库的密集存储。摘要在语义上越相关,数据库就越密集。
97.本发明的一些或所有不同方面(多样性、质量、运动、年龄、速度、内容)可以根据特定应用的需要进行组合。
98.本发明的任何部分可以在处理设备之间分割,例如通过在缓冲组件之间放置网络连接。
99.尽管本文中已经参考特定实施例描述了本发明的各方面,但是应当理解,这些实施例仅仅是本发明的原理和应用的说明。因此应当理解,可以对说明性实施例进行许多修改,并且可以设计其他布置而不脱离由所附权利要求所限定的本发明的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1