半导体设备和图像识别系统的制作方法

文档序号:17050534发布日期:2019-03-05 20:03阅读:196来源:国知局
2017年8月25日提交的日本专利申请第2017-162057号的包括说明书、附图和摘要的公开通过引证引入本文。本公开涉及半导体设备,例如可应用于包括图像识别设备的半导体设备。
背景技术
::由于卷积神经网络(cnn)在2012年的国际图像分类竞赛(imagenet大型视觉识别竞赛:ilsvrc)赢得第一名,所以cnn已被用于许多图像识别处理,并且其有用性已被认可。近年来,不仅在具有丰富资源的工作站中,而且在内置型设备中对cnn的使用需求也越来越大。例如,在日本未审查专利申请公开第2008-310700号和日本未审查专利申请公开第2016-99707号中公开了cnn。技术实现要素:然而,要求cnn以与通道数量相对应的次数重复输入图像和系数的卷积算术运算,使得运算量极其大。因此,难以在资源有限的内置型soc(芯片上硅)上实施cnn。其他问题和新颖特征将根据本说明书的描述和附图而变得明显。本公开的具体发明的简要概述如下。半导体设备具有针对每个通道执行累积加法,并且在多个通道中并行地执行卷积算术运算。根据上述半导体设备,可以减少卷积算术运算的运算量。附图说明图1是用于解释卷积算术运算的概念的示图。图2a是用于解释卷积算术运算的概念的示图。图2b是用于解释卷积算术运算的概念的示图。图2c是用于解释卷积算术运算的概念的示图。图3是示出图像识别系统的配置示例的示图。图4是示出图3中的图像识别系统的数据的流程的示图。图5是用于解释图4中的卷积算术运算的配置示例的示图。图6是用于解释图5中的通道选择电路的配置示例的示图。图7是用于解释3×3卷积算术处理电路的配置的示图。图8是用于解释图7中的积分系数表(integrationcoefficienttable)生成设备的操作的示意图。图9是用于解释图7中的卷积算术处理电路的操作的概念图。图10是用于解释图7中的累积加法电路的操作的概念图。图11是用于解释图4中的卷积算术处理电路的另一配置示例的示图。图12是用于解释5×5卷积算术处理电路的配置的示图。图13是用于解释图12中的积分系数表生成设备的操作的示意图。图14是用于解释图12中的输入图案生成电路的操作的示意图。具体实施方式首先,将参照图1以及图2a至图2c描述cnn的卷积算术运算。图1是用于解释卷积算术运算的概念的示图。图2a至图2c是用于解释卷积算术运算的概念的示图,并且是示出图像的像素值与过滤器的系数的乘积和算术运算。为了易于描述,当图像被简化并且通过数字表示时,图像可以认为是高度x宽度的矩阵。如图1的左侧示出,输入图像例如通过4×4二进制值来表示。图1右侧所示的2×2过滤器被应用于这种矩阵,并且执行传统的算术运算。如图2a所示,过滤器在图像的最左上部分上重叠,并且相同位置中的值被相乘到一起。乘法的结果被相加并输出。如图2b所示,过滤器被水平地偏移一个像素,并且相同位置中的值以相同方式相乘到一起。乘法的结果被相加并输出。此后,如图2c所示,过滤器的值和输入图像相乘到一起并且相加,直到过滤器达到右下角。当执行卷积算术运算时,要求输入图像和过滤器的系数的卷积算术运算被重复与通道的数量(过滤器的数量)相对应的次数。一个实施例具有针对每个通道执行累积加法并且在多个通道中并行地执行卷积算术运算的功能。可以对通道同时且共同地执行卷积算术运算,其数量可以与可针对每个通道执行累积加法的块的数量相同,使得可以减少处理时间。通过组合卷积算术处理电路和积分系数表,可以同时执行多个通道的卷积算术运算。可以通过少量的乘积和算术运算来实现cnn,而不执行无用的乘积和算术运算。通过使用输入图案生成电路,可以执行任意卷积算术运算而不取决于过滤器尺寸。下面,将参照附图描述实施例和修改示例。然而,在以下描述中,相同部件由相同的参考标号表示,并且可以省略它们的描述。[实施例]图3是示出图像识别系统的配置示例的框图。图4是示出图3中的图像识别系统的数据的流程的示图。如图3所示,图像处理系统1包括半导体设备10和半导体存储设备(存储器)20。半导体设备10包括图像识别设备(iru)11、中央处理单元(cpu)12、半导体存储设备20的控制电路(mc)13以及在单个半导体芯片中耦合它们的总线。例如,半导体存储设备20是ddr-sdram。如图4所示,积分系数表生成设备50对存储设备中存储的预积分cnn模型所包括的输入系数表进行积分,生成积分后cnn模型的积分系数表,并且将积分系数表存储在半导体存储设备20中。图像处理系统1的图像识别设备11基于积分系数表处理存储在半导体存储设备20中的输入图像,并且在半导体存储设备20中存储处理结果。输入图像是由具有光学系统(透镜)和图像拾取元件的图像识别设备(图中未示出)获取的图像。输入图像是由图像拾取设备获取的图像的所有或一部分。输入图像被存储在半导体存储设备20中。图像识别设备11通过使用积分后cnn模型的积分系数表和输入图像执行计算,并且输出处理结果。图像识别设备11是执行积分后cnn模型中要求的算术运算的设备。处理结果是图像识别设备11的输出。例如,处理结果是输入图像的分类结果或分段结果、或者特定对象的检测结果。处理结果被存储在半导体存储设备20中。预积分cnn模型指示一般的cnn模型。例如,预积分cnn模型是alexnet、vggnet、segnet或r-cnn。输入系数表包括用于预积分cnn模型中包括的系数之间的卷积算术运算的系数。积分系数表生成设备50是分析输入系数表并生成可通过使用较少数量的卷积算术运算执行处理的积分系数表的设备,其例如通过中央处理单元和存储中央处理单元等的程序的存储设备来配置。积分后cnn模型是减少预积分cnn模型的卷积算术运算的数量的模型。积分系数表是积分系数表生成设备50的输出。图像识别设备11包括卷积算术处理电路101、激活电路102和池化电路103,并且可以累积地相加每个通道的乘积计算结果。卷积算术处理电路101将对应于每个系数的每个通道数的卷积算术运算的结果相加。激活电路102和池化电路103是分别执行激活处理和池化处理的电路。对于激活处理,例如,使用已知的逻辑sigmoid函数和relu函数(修正线性单元)。池化处理是在保持重要信息的同时减小大图像的尺寸的方法。在池化处理中,例如,使用将图像分为小窗并且输出从每个分割的窗输入的数据的最大值的已知最大池化函数以及输出输入数据的平均值的已知平均池化函数。图5是用于解释卷积算术处理电路的配置示例的框图。图6是用于解释图5中的通道选择电路的配置示例的框图。积分系数表是存储卷积算术运算中使用的系数的表格。通道数被添加至系数。积分系数表生成设备50根据多个输入系数表生成积分系数表。卷积算术处理电路101输出来自一个卷积算术运算的多次卷积算术运算的结果。卷积算术处理电路101包括线缓冲器301、乘积计算电路302、通道选择电路303、输出控制寄存器304、输出寄存器305(第一输出寄存器305_1、第二输出寄存器305_2、…和第n输出寄存器305_n)、系数寄存器306和通道寄存器307。线缓冲器301从半导体存储设备20获取用于指定数量的线的输入图像数据。乘积计算电路302计算系数寄存器306和来自线缓冲器301的输入图像的乘积。通道选择电路303将通道寄存器307中寄存的通道数添加至乘积计算电路,累积地相加乘积计算结果,并且根据输出控制寄存器304的通道数将乘积计算结果输出至适当的输出寄存器305。输出控制寄存器304将通道数与输出寄存器数相关联。如图6所示,通道选择电路303包括向下偏移电路401、累积加法电路402、选择器电路403和累积加法寄存器404。向下偏移电路401将乘积计算结果向下偏移指定数量的位,然后输出乘积计算结果。累积加法电路402针对每个通道将由累积加法寄存器404和向下偏移电路401输出的结果相加,并且输出相加的结果。选择器电路403向指定的输出寄存器305输出累积加法电路402的输出。输出控制寄存器304、系数寄存器306和通道寄存器307通过cpu12进行设置。将参照图7至图10描述积分系数表生成设备50根据三种类型的输入系数表生成一种类型的积分系数表并且通过使用积分系数表执行卷积算术运算的示例。图7是用于解释3×3卷积算术处理电路的配置的框图。图8是用于解释图7中的积分系数表生成设备的操作的示意图。图8表示积分系数表生成设备根据用于三个通道的输入系数表生成一个积分系数表的情况。图9是用于解释图7中的卷积算术处理电路的操作的概念图。图10是用于解释图7中的累积加法电路的操作的概念图。图7中的卷积算术处理电路通过使用3×3卷积算术运算电路执行用于三个通道的一个3×3卷积算术运算。这里,卷积中使用的系数表的系数被定义为wi,j,chanel,表格被定义为c1,w,channel,并且建立以下公式。[公式1]这里,i、j表示整数,channel表示通道数,l表示表格的宽度,w表示表格高度。积分系数表的系数如下表示:[公式2]wi,j,flt_a=max(wi,j,flt_1,wi,j,flt_2,wi,j,flt_3)这里,max(...)是返回自变量的最大值的函数。此外,li,j,flt_a被定义为表示用作积分系数表的表格的类型的字符串,并且建立以下等式。[公式3]li,j,flt_a=channel(wi,j,flt_1,wi,j,flt_2,wi,j,flt_3)这里,channel(...)是表示返回自变量的最大值的通道数的函数。此时,如下表示积分系数表的c3,3,flt_a。[公式4]图8示意性示出了具体当l=3且w=3时如何生成积分系数表。积分系数表生成设备50处理三种类型的输入系数表(flt_1、flt_2和flt_3),并且输出积分系数表(flt_a)。那些输入系数表(flt_1、flt_2和flt_3)中的最大系数被输出至积分系数表。每个最大系数被遮蔽。左上系数的最大值为flt_3的“75”,上中系数的最大值为flt_1的“87”,并且右上系数的最大值为flt_2的“56”。左中系数的最大值为flt_1的“100”,中中系数的最大值为flt_3的“144”,并且右中系数的最大值为flt_2的“212”。左下系数的最大值为flt_2的“120”,下中系数的最大值为flt_3的“60”,并且右下系数的最大值为flt_1的“165”。在上述最大值被积分的积分系数表(flt_a)中,布置每个输入系数表(flt_1、flt_2和flt_3)的屏蔽部分。除了系数之外,通道数也被存储在积分系数表(flt_a)中。如图8所示,卷积算术处理电路101从积分系数表中读取系数和通道数,并且分别在系数寄存器306和通道寄存器307中设置它们的值。如图9所示,乘积计算电路302通过3×3乘积计算电路同时计算系数寄存器306中设置的值和线缓冲器301中设置的值的乘积。通道选择电路303基于通道寄存器307中设置的值(通道数)设置累积加法电路402至输出寄存器305的输出。输出控制寄存器304设置输出寄存器305和通道寄存器307之间的对应性。在该示例中,第一输出寄存器305_1对应于flt_1,第二输出寄存器305_2对应于flt_2,并且第三输出寄存器305_3对应于flt_3。卷积算术处理电路101分别向第一输出寄存器305_1、第二输出寄存器305_2和第三输出寄存器305_3输出通过使用flt_1、flt_2和flt_3执行卷积算术运算的结果。如图10所示,累积加法电路402基于通道寄存器307的通道数输入用于每个通道的乘积计算电路302的计算结果和累积加法寄存器404的内容,并且并行地添加每个通道。从而,可以同时获取用于每个通道的累积相加结果。卷积算术处理电路101分别针对每个通道数执行累积加法,而不是累加地相加乘积计算的结果。在具体示例中,描述了通过使用3×3卷积算术运算电路同时执行用于三个通道的3×3卷积算术运算的示例。然而,算术运算不限于此,并且在该实施例中,可以通过使用n×n卷积算术运算电路同时执行用于n个通道的n×n卷积算术运算。<修改示例>下面,将示出典型的修改示例。在以下修改示例的描述中,与上述实施例相同的参考标号可用于与上述实施例所述具有相同配置和功能的部分。对于这些部分的描述,在没有技术矛盾地情况下适当地应用上述实施例的描述。此外,上述实施例的部分或者修改示例的所有或部分可以在没有技术矛盾的情况下适当且复合地应用。将参照图11描述执行卷积算术运算而与输入图像的布置无关的示例。图11是用于解释卷积算术处理电路的配置示例的框图。除了实施例的卷积算术处理电路101的配置之外,卷积算术处理电路101a具有输入图案寄存器308和输入图案生成电路309。输入图案寄存器308是用于设置如何从输入图案生成电路309输出在线缓冲器301中设置的像素值的寄存器。输入图案生成电路309是接收来自线缓冲器301的输入并且根据输入图案寄存器308生成输出的电路。输入图案寄存器308通过cpu12进行设置。接下来,将参照图12至图14描述积分系数表生成设备50根据两种类型的输入系数表生成一种类型的积分系数表并且通过使用积分系数表执行卷积算术运算的示例。图12是用于解释卷积算术处理电路的配置的示图。图13是用于解释图12中的积分系数表生成设备的操作的示意图。图13表示根据用于两个通道的输入系数表生成一个积分系数表的情况。图14是用于解释图12中的输入图案生成电路的操作的示意图。图14表示生成用于两个通道的由3×3输入图像形成的5×5输入图像的情况。图12中的卷积算术处理电路101a通过使用5×5卷积算术运算电路同时执行两个3×3卷积算术运算。当输入系数表是c3,3,flt_1和c3,3,flt_2并且积分系数表是c5,5,flt_a时,建立以下等式。[公式5]此外,ii,j被定义为输入图像的第i行和第j列的像素值(灰度值),输入图案生成电路309的输出被定义为a5,5,并且建立以下等式。[公式6]图13示意性示出了具体当l=3且w=3时如何生成积分系数表。积分系数表生成设备50处理两种类型的输入系数表(flt_1和flt_2),并且输出积分系数表(flt_a)。3×3输入系数表(flt_1和flt_2)的系数被输出至5×5积分系数表。如图13所示,从flt_a的第一行的左到右,布置flt_1的第一行中的系数“40”、“87”和“21”以及flt_1的第二行中的系数“100”和“45”。从flt_a的第二行的左到右,布置flt_1的第二行中的右端系数“14”、flt_1的第三行中的系数“9”、“33”和“165”以及flt_2的第一行中的左端系数“7”。从flt_a的第三行的左到右,布置flt_2的第一行中的中心系数“45”和右端系数“56”、flt_2的第二行中的系数“25”、“30”和“212”。从flt_a的第四行的左到右,布置flt_2的第三行中的系数“120”、“2”和“27”。没有系数布置在flt_a的第四行中的右边两个位置以及flt_a的第五行中的所有位置,并且这些位置变为空白的空间。除了系数之外,通道数也存储在积分系数表(flt_a)中。如图14所示,输入图案生成电路309以从线缓冲器301获取的3×3像素基于输入图案寄存器308的5×5输入图案被重复的形式来输出像素值。输入图案限定了第一3×3像素(1-1、1-2、...和1-9)和第二3×3像素(2-1、2-2、...和2-9)的布置顺序。如图14所示,从输入图案生成电路309的输出的第一行的左到右,布置输入图像的第一行中的像素值“76”、“120”和“32”以及输入图像的第二行中的像素值“77”和“130”。从第二行的左到右,布置输入图像的第二行中的右端像素值“34”、输入图像的第三行中的像素值“130”、“100”和“54”以及第二输入图像的第一行中的左端像素值“78”。从第三行的左到右,布置输入图像的第一行中的中心像素值“120”和右端像素值“32”以及输入图像的第二行中的像素值“77”、“130”和“34”。从第四行的左到右,布置输入图像的第三行中的像素值“130”、“110”和“54”。没有像素布置在第四行中的右边两个位置和第五行中的所有位置,并且这些位置变为空白的空间。从而,输入图案生成电路309的输出的像素的布置与积分系数表(flt_a)的系数的布置相同。可以通过添加输入图案寄存器308和输入图案生成电路309以任意形式读取存储在线缓冲器301中的像素。以与实施例相同的方式,卷积算术处理电路101a从积分系数表中读取系数和通道数,并且分别在系数寄存器306和通道寄存器307中设置它们的值。以与实施例相似的方式,乘积计算电路302通过5×5乘积计算电路同时计算系数寄存器306中设置的值与由输入图案生成电路309生成的值的乘积。通道选择电路303基于通道寄存器307中设置的值(通道数)设置累积加法电路402至输出寄存器305的输出。输出控制寄存器304设置输出寄存器305和通道寄存器307之间的对应性。在该示例中,第一输出寄存器305_1对应于flt_1,并且第二输出寄存器305_2对应于flt_2。卷积运算处理电路101a分别向第一输出寄存器305_1和第二输出寄存器305_2输出通过使用flt_1和flt_2的系数执行卷积算术运算的结果。以与实施例相同的方式,累积加法电路402基于通道寄存器307的通道数针对每个通道输入乘积计算电路的计算结果和累积加法寄存器的内容,并且并行地相加每个通道。从而,可以同时获取用于每个通道的累积加法结果。在修改示例中,可以通过组合使用输入图案寄存器308和积分系数表生成设备50来执行任意的卷积算术运算。因此,即使当使用5×5卷积算术运算电路时,也可以有效地执行3×3或1×1卷积算术运算。在具体示例中,描述了通过使用5×5卷积算术运算电路同时执行两个3×3卷积算术运算的示例。然而,算术运算不限于此,并且在修改示例中,可以通过使用n×n卷积算术运算电路同时执行l个m×m卷积算术运算。这里,m<n且l=int(n2/m2)≥2。虽然已经基于实施例和修改示例具体描述了发明人做出的本发明,但不需要说明,本发明不限于实施例和修改示例,而是可以进行各种修改。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1