产生影像的方法及系统与流程

文档序号:32312839发布日期:2022-11-23 13:04阅读:112来源:国知局
产生影像的方法及系统与流程

1.本揭示内容是关于一种产生影像的方法及系统。


背景技术:

2.卷积神经网络(convolutional neural network,cnn)操作处理输入影像以产生输出影像。基于块(block-based)的cnn操作处理输入影像的影像块以产生输出影像的影像块。然而,当处理影像块时,不涉及整个输入影像的全域信息。结果,由基于块的cnn操作产生的影像块缺少全域信息。


技术实现要素:

3.本揭示内容包含一种产生影像的方法。方法包括:缩小输入影像以产生缩小影像;对缩小影像执行具有第一非局部操作的第一卷积神经网络(convolutional neural network,cnn)建模程序,以产生全域参数;及对输入影像执行具有使用全域参数执行的第二非局部操作的第二cnn建模程序,以产生对应于输入影像的输出影像。
4.本揭示内容包含一种产生影像的系统。系统包括第一记忆体及晶片。第一记忆体用以接收及储存输入影像。晶片与第一记忆体分离,且用以产生与输入影像的非局部信息相关联的缩小影像相关联的参数。缩小影像中的各者具有小于输入影像大小的大小。晶片包括第一处理装置及第二处理装置。第一处理装置用以缩小输入影像,且用以储存参数。晶片进一步用以通过执行第一卷积神经网络(cnn)操作与第一非局部操作来处理经缩小输入影像,以产生缩小影像。第二处理装置用以自第一处理装置接收参数且接收输入影像,且用以基于输入影像的一部分及参数产生输出影像的一部分。
5.本揭示内容包含一种产生影像的方法。方法包括:缩小输入影像以产生第一缩小影像;自第一缩小影像萃取与输入影像的全域特征相关联的第一参数;对输入影像中影像块中的第一影像块执行第一卷积神经网络(cnn)操作,以产生第二影像块;使用第一参数对第二影像块执行第一非局部操作以产生第三影像块;且基于第三影像块产生对应于输入影像的输出影像的一部分。
附图说明
6.本揭示内容的态样在与随附附图一起研读时自以下详细描述内容来最佳地理解。应注意,根据行业中的标准规范,各种特征未按比例绘制。实际上,各种特征的尺寸可为了论述清楚经任意地增大或减小。
7.图1是根据本揭示内容的一些实施例的卷积神经网络(convolutional neural network,cnn)系统处理输入影像的程序的示意图;
8.图2a是根据本揭示内容的一些实施例的具有基于块的流程的cnn程序的示意图,对应于图1中所示的子程序;
9.图2b是根据本揭示内容的一些实施例的用基于块的流程执行cnn操作的晶片上计
算的进一步细节的示意图;
10.图3是根据本揭示内容的一些实施例的对特征图的非局部操作的处理的示意图,对应于图1中所示的操作;
11.图4a是根据本揭示内容的一些实施例的cnn系统处理影像的方法的流程图,对应于图1中所示的程序;
12.图4b是根据本揭示内容的一些实施例的cnn系统处理影像的方法的流程图,对应于图1中所示的程序;
13.图5是根据本揭示内容的一些实施例的执行cnn建模程序的系统的示意图,对应于图1中所示的程序;
14.图6是根据本揭示内容的一些实施例的图5中所示的cnn系统的处理输入影像以产生输出影像的方法的流程图;
15.图7是根据本揭示内容的一些实施例的执行cnn建模程序的系统示意图,对应于图5中所示的系统;
16.图8是根据本揭示内容的一些实施例的如图7中所示的用于处理输入影像以产生输出影像的cnn系统的方法的流程图;
17.图9a是根据本揭示内容的一些实施例的执行cnn建模程序的系统的示意图,对应于图5中所示的系统;
18.图9b是根据本揭示内容的一些实施例的执行cnn建模程序的系统的示意图,对应于图5中所示的系统;
19.图9c是根据本揭示内容的一些实施例的执行cnn建模程序的系统的示意图,对应于图5中所示的系统。
20.【符号说明】
21.100:程序
22.200a:cnn程序
23.210:记忆体储存操作
24.220:晶片上计算
25.400a:方法
26.400b:方法
27.500:系统
28.510:记忆体
29.520:晶片
30.522:处理装置
31.524:处理装置
32.600:方法
33.700:系统
34.710:记忆体
35.720:晶片
36.722:处理装置
37.724:处理装置
38.751:取样电路
39.752:记忆体电路
40.761:记忆体电路
41.762:处理电路
42.800:方法
43.900a~900c:系统
44.910a~910c:记忆体
45.920a~920c:晶片
46.922a~922c:处理装置
47.924a~924c:处理装置
48.930b:记忆体
49.951a~951c:取样电路
50.952a~952c:记忆体电路
51.953a~953b:记忆体电路
52.954a~954b:处理电路
53.961a~961c:记忆体电路
54.962a~962c:处理电路
具体实施方式
55.以下揭示内容提供用于实施所提供标的物的不同特征的许多不同实施例、或实例。下面描述组件、材料、值、步骤、配置或类似者的具体实例,以简化本揭示内容。当然,这些仅为实例且非意欲为限制性的。举例而言,在以下描述中第一特征于第二特征上方或上的形成可包括第一特征与第二特征直接接触地形成的实施例,且亦可包括额外特征可形成于第一特征与第二特征之间使得第一特征与第二特征可不直接接触的实施例。此外,本揭示内容在各种实例中可重复参考数字及/或字母。此重复是出于简单及清楚的目的,且本身且不指明所论述的各种实施例及/或组态之间的关系。
56.此外,为了便于描述,在本文中可使用空间相对术语,诸如“在
……
下面”、“在
……
之下”、“下部”、“在
……
之上”、“上部”及类似者,来描述诸图中图示的一个元件或特征与另一(多个)元件或特征的关系。空间相对术语意欲涵盖除了诸图中所描绘的定向以外的装置在使用或操作时的不同定向。装置可另外定向(旋转90度或处于其他定向),且本文中所使用的空间相对描述符可类似地加以相应解释。术语遮罩、光学微影术遮罩、光罩及主光罩用于指同一项目。
57.以下描述及权利要求书中使用的术语通常具有其在本领域或使用各个术语的特定上下文中明确确立的普通含义。一般技艺人士将理解,组件或程序可用不同的名称来表示。本说明书中详细描述的许多不同实施例仅为说明性的,并不以任何方式限制本揭示内容或任何例示性术语的范畴及精神。
58.值得注意,本文中用于描述各种元件或程序的术语,诸如“第一”及“第二”,旨在区分一元件或程序与另一元件或程序。然而,元件、程序及其顺序不应受到这些术语的限制。举例而言,第一元件可称为第二元件,且第二元件可类似地称为第一元件,而不脱离本揭示
内容的范畴。
59.在以下讨论及权利要求书中,术语“包含”、“包括”、“含有”、“具有”、“涉及”、及类似者应理解为开放式的,亦即,应解释为包括但不限于。如本文所使用的,术语“及/或”并非彼此排斥,而是包括任何相关联的列出项目及相关联的列出项目中的一或多者的所有组合。
60.图1是根据本揭示内容的一些实施例的卷积神经网络(convolutional neural network,cnn)系统处理输入影像imin的程序100的示意图。如图1中说明性所示,程序100包括用于处理输入影像imin的两个子程序s1及s2。在一些实施例中,子程序s1称为主干线,其用以执行cnn建模程序,以基于输入影像imin产生输出影像imout。在一些实施例中,子程序s2称为全域分支,其用以执行用于提供输入影像imin的全域信息至子程序s1的其他cnn建模程序。在一些实施例中,输入影像imin的全域信息指示通过在cnn建模程序中处理整个输入影像imin而产生的信息。
61.在一些实施例中,执行子程序s1以处理输入影像imin的一部分,且执行子程序s2以产生与整个输入影像imin的全域信息相关联的参数pm1~pm3。因此,在一些实施例中,参数pm1~pm3称为全域参数。
62.为了说明,子程序s1包括以如图1中所示按顺序执行的cnn操作s11、s13、s15及非局部操作s12、s14、s16。子程序s2包括以如图1中所示按顺序执行的操作s21、cnn操作s23、s25及非局部操作s22、s24、s26。
63.在一些实施例中,cnn操作s11、s13、s15分别对应于卷积神经网络的第n个cnn层、第(n+2)个cnn层及第(n+4)个cnn层,而cnn操作s21、s23、s25分别对应于第n个cnn层、第(n+2)个cnn层及第(n+4)个cnn层。注意,n是正整数。非局部操作s12、s14、s16分别对应于卷积神经网络的第(n+1)个cnn层、第(n+3)个cnn层及第(n+5)个cnn层,而非局部操作s22、s24、s26分别对应于第(n+1)个cnn层、第(n+3)个cnn层及第(n+5)个cnn层。下面对上述操作进行说明性讨论。
64.在操作s21处,缩小输入影像imin以产生缩小影像ims。在一些实施例中,缩小影像ims保留输入影像imin的全域特征。或者,自输入影像imin中萃取全域特征以产生缩小影像ims。如图1中说明性所示,对缩小影像ims执行非局部操作s22、s24、s26及cnn操作s23、s25以产生参数pm1~pm3。换言之,自缩小影像ims中萃取参数pm1~pm3。
65.如图1中说明性所示,执行非局部操作s12、s14、s16及cnn操作s13、s15以处理输入影像imin,从而产生输出影像imout,其中分别使用参数pm1~pm3执行非局部操作s12、s14、s16。因为参数pm1~pm3是通过处理保留输入影像imin的全域特征的缩小影像ims产生的,所以输出影像imout具有输入影像imin的全域信息。
66.在一些方法中,影像划分成独立的影像块。影像块中的各者不具有其他影像块的信息。当对影像块中的一者执行cnn操作时,不涉及与其他影像块相关联的影像的全域特征。结果,cnn操作产生的影像块缺少全域信息。
67.与上述方法相比,在本揭示内容的一些实施例中,操作s21~s26产生与输入影像imin的全域特征相关联的参数pm1~pm3,用于操作s11~s16,使得由操作s11~s16产生的输出影像imout的影像块中的各者具有输入影像imin的全域信息。
68.在先前的其他方法中,对整个影像执行cnn操作及非局部操作。在这种方法中,在
用于执行操作的晶片与用于储存影像的dram之间传输整个影像的信息需要巨大的动态随机存取记忆体(random-access memory,dram)频宽。因此,执行这些操作的成本是巨大的。
69.与上述方法相比,在本揭示内容的一些实施例中,使用参数pm1~pm3对输入影像imin的一部分执行操作s12~s16。携带参数pm1~pm3及输入影像imin的一部分的资料的大小比携带整个输入影像imin的资料的大小小得多,从而降低对dram频宽的要求。
70.图2a是根据本揭示内容的一些实施例的cnn程序200a的示意图,其具有基于块的流程,对应于例如图1中所示的子程序s1。如图2a中所示,cnn程序200a包括记忆体储存操作210及晶片上计算220。在一些实施例中,记忆体储存操作210由dram储存器实施。在一些实施例中,箭头a21及a22对应于dram频宽。
71.如图2a中说明性所示,执行记忆体储存操作210以储存影像m21。影像m21划分成包括影像块m22及m26的影像块。沿着箭头a21发送影像块m22以用于执行晶片上计算220。晶片上计算220包括对影像块m22执行操作op21以产生影像块m23,以及对影像块m23执行操作op22以产生影像块m24。在一些实施例中,操作op21及op22包括萃取影像m21的全域特征以产生影像块m23及m24,使得影像块m23及m24与影像m21的全域特征相关联。
72.如图2a中说明性所示,在通过执行晶片上计算220产生影像块m24之后,沿着箭头a22发送影像块m24以用于执行记忆体储存操作210,且记忆体储存操作210经执行以将影像块m24储存为影像m25的一部分。
73.在一些实施例中,在通过执行记忆体储存操作210储存影像块m24之后,晶片上计算220包括发送另一影像块,诸如影像块m26,用于执行晶片上计算220。执行晶片上计算220以处理影像块m26,从而产生影像m25的相应影像块m27。在一些实施例中,执行晶片上计算220以处理影像m21的数个影像块以产生影像m25。
74.在一些实施例中,影像m21及影像块m22、m26对应于第n个cnn层,影像块m23对应于第(n+1)个cnn层,且影像m25及影像块m22、m27对应于第(n+k)个cnn层。如图2a中说明性所示,不发送中间层(举例而言,第(n+1)个cnn层及第(n+2)个cnn层)的整个影像来执行晶片上计算220。
75.参考图1及图2a,影像m21对应于输入影像imin,影像块m24对应于输出影像imout,而操作op21及op22对应于操作s12~s16。在一些实施例中,操作s11~s16及s21~s26对应于晶片上计算220。
76.图2b是根据本揭示内容的一些实施例的用基于块的流程执行cnn操作的晶片上计算220的进一步细节的示意图。
77.如图2b中说明性所示,晶片上计算220包括接收影像块m22,且包括针对影像块m22的具有核心kn1的卷积操作cb1,以产生影像块mb1。在一些实施例中,晶片上计算220进一步包括执行具有相应核心的多个卷积操作以产生影像块m24。举例而言,晶片上计算220包括针对影像块mb1的具有核心kn2的卷积操作cb2以产生影像块mb2,对影像块mb2执行多个卷积操作以产生影像块mb3,并对影像块mb3执行具有核心kn3的卷积操作cb3,以产生影像块m24。
78.在一些实施例中,在卷积操作中执行非局部操作,诸如图1中所示的操作s12、s14及s16。举例而言,在卷积操作cb1之前对影像块m22执行非局部操作s12,且在卷积操作cb2之前对影像块mb1执行非局部操作s14。因此,中间影像块mb1~mb3具有整个影像m21的非局
部信息。结果,通过执行晶片上计算220产生的影像块m24亦具有非局部信息。
79.参考图1及图2b,卷积操作cb1及cb2分别对应于操作s13及s15。在一些实施例中,操作s13与s23在同一cnn层上,且二者均使用核心kn1执行。类似地,操作s15与s25在同一cnn层上,且均使用核心kn2执行。
80.图3是根据本揭示内容的一些实施例的将非局部操作op31处理为特征映射m31的示意图,对应于例如图1中所示的操作s22。如图3中说明性所示,特征映射m31包括h
×
w个像素ip(1,1)~ip(h,w),其中正整数h及w分别为特征映射m31的高度及宽度。对整个特征映射m31执行非局部操作op31以产生输出影像的像素mp3。输出影像包括分别对应于像素ip(1,1)~ip(h,w)的h
×
w个像素。在其他实施例中,像素mp3是在用于产生输出影像的整个cnn建模程序期间产生的中间影像的像素。
81.在一些实施例中,将特征映射m31转换为输出影像。在一些实施例中,在实例正规化(instance normalization,in)层上执行操作op31,且将特征映射m31的像素ip(1,1)~ip(h,w)转换为像素mp3。在一些实施例中,为了转换像素ip(1,1)~ip(h,w),基于与特征映射m31相关联的一些参数来计算或正规化像素ip(1,1)~ip(h,w)的值。举例而言,当像素mp3对应于像素ip(i,j)时,通过以下方程式(1)计算像素mp3的值vmp3(i,j):
[0082][0083]
宽度索引i为小于w的正整数,高度索引j为小于h的正整数,值x(i,j)为像素ip(i,j)的值,参数u为特征映射m31的平均值,参数q为影像m31的标准偏差,参数e为用于防止分母为零的正实数,而参数a及b为在非局部操作op31之前判定的仿射(affine)参数。
[0084]
在一些实施例中,参数e等于10-5
,而参数u及q分别为特征映射m31的平均值及标准导数。在一些实施例中,通过以下方程式(2)及(3)计算参数q及u:
[0085][0086][0087]
如上所述,基于整个特征映射m31获得像素mp3。因此,像素mp3具有特征映射m31的全域特征的信息。
[0088]
在一些实施例中,将像素ip(1,1)~ip(h,w)指定于特定通道及特定批次。因此,在一些实施例中,方程取决于通道索引c及批次索引b。举例而言,参数q、u及值vmp3(i,j)通过以下方程式计算:
[0089][0090][0091][0092]
参考图1及图3,特征映射m31对应于缩小影像ims,且操作op31对应于操作s22。在一些实施例中,执行操作s22以产生具有各个与整个缩小影像ims相关联的像素的影像。在一些实施例中,执行操作s22以基于参数pm1将缩小影像ims转换为中间影像。
[0093]
图4a是根据本揭示内容的一些实施例的cnn系统处理影像f11的方法400a的流程图,对应于图1中所示的程序100。如图4a中说明性所示,方法400a包括用于处理影像f11以产生影像f21~f27及f12~f17的操作z11~z16及z21~z26。在一些实施例中,按顺序执行操作z11~z16,且按顺序执行操作z21~z26。在一些实施例中,在执行操作z11~z16之前执行操作z21~z26。在一些实施例中,操作z11~z16及z21~z26分别对应于两个卷积神经网络(convolutional neural network,cnn)建模程序。
[0094]
参考图1及图4a,方法400a是程序100的实施例。操作z11~z16及z21~z26分别对应于操作s11~s16及s21~s26。输入影像imin、输出影像imout及缩小影像ims分别对应于影像f11、f17及f22。操作z11~z16对应于主干线,而操作z21~z26对应于全域分支。因此,为简洁起见,不重复一些描述。
[0095]
如图4a中说明性所示,在操作z11处,使用核心对影像f11执行卷积操作,以产生影像f21及f12。影像f21对应于整个影像f11,且具有与影像f11的大小相同的大小。在一些实施例中,影像f21的像素数与影像f11的像素数相同。影像f12是影像f21的一部分。在一些实施例中,在操作z11处,影像f21划分成影像块,其中影像f12是影像块中的一者。
[0096]
参考图4a及图2a,影像f21及f12分别对应于影像m21及影像块m22。在一些实施例中,执行记忆体储存操作210以储存影像f21,且用以发送影像f12以用于执行晶片上计算220。在一些实施例中,晶片上计算220包括处理影像f12以产生影像f17、及发送影像f17以用于记忆体储存操作210。
[0097]
如图4a中说明性所示,在操作z21处,基于影像f21产生影像f22。在一些实施例中,缩小影像f21以产生影像f22。举例而言,执行池化操作以自影像f21的像素中选择一数目(诸如64
×
64)的像素,以产生影像f22。在一些实施例中,被选像素呈现影像f21的全域特征,而影像f22具有影像f21的全域特征。
[0098]
在操作z22处,对影像f22执行非局部操作以产生影像f23。在一些实施例中,产生用于产生影像f23的参数p42。换言之,自影像f22中萃取参数p42。参考图3及图4a,在一些实施例中,实例正规化(instance normalization,in)的方程式(1)~(3)以与应用于特征映射m31的相同方式应用于影像f22,以产生参数p42。换言之,参数p42包括通过以下方程式计算的平均值u2及标准导数q2:
[0099][0100][0101]
因此,通过以下方程式计算影像f23的具有宽度索引i及高度索引j的像素的值v3(i,j):
[0102][0103]
正整数h1及w1分别为特征映射m31的高度及宽度。在一些实施例中,自影像f21选择h1
×
w1个像素以产生影像f22。值x2(i,j)为影像f22的具有宽度索引i及高度索引j的像素的值。参数a2及b2为对应于非局部操作z22的预定的仿射参数。
[0104]
如上所述,基于影像f22及参数p42产生影像f23。在一些实施例中,基于参数p42将
影像f22转换为影像f23。
[0105]
如图4a中说明性所示,在操作z23处,使用核心对影像f23执行卷积操作以产生影像f24。
[0106]
在操作z24处,对影像f24执行非局部操作以产生影像f25。基于影像f24产生参数p44及影像f25的计算与如上所述基于影像f22产生参数p42及影像f23的计算类似。因此,为简洁起见,不重复一些描述。
[0107]
在一些实施例中,基于影像f24及参数p44产生影像f25。在一些实施例中,基于参数p44将影像f24转换为影像f25。
[0108]
在操作z25处,使用核心对影像f25执行卷积操作以产生影像f26。
[0109]
在操作z26处,对影像f26执行非局部操作以产生影像f27。基于影像f26产生参数p46及影像f27的计算与如上所述基于影像f22产生参数p42及影像f23的计算类似。因此,为简洁起见,不重复一些描述。
[0110]
在一些实施例中,在操作z26之后,在全域分支中交替执行与操作z23类似的卷积操作及与操作z24类似的非局部操作,以产生更多中间影像及相应全域参数。
[0111]
在一些实施例中,影像f22~f27中的各者具有相同大小及相同数目的像素。在一些实施例中,影像f22~f27对应于影像f21的缩小版本,因此影像f22~f27称为缩小影像。在一些实施例中,在用于产生输出影像的整个cnn建模程序期间产生影像f23~f26,因此将影像f23~f26称为中间影像。
[0112]
在一些实施例中,基于参数p42将影像f12转换为影像f13。在操作z12处,使用参数p42对影像f12执行非局部操作以产生影像f13。在一些实施例中,为了将影像f12的像素转换为影像f13的像素,基于参数p42计算或正规化影像f12的像素。换言之,基于参数p42及影像f12的像素来评估影像f13的像素。举例而言,通过以下方程式计算影像f13的具有宽度索引i及高度索引j的像素的值y3(i,j):
[0113][0114]
值y2(i,j)为影像f12的具有宽度索引i及高度索引j的像素中的一者的值。在一些实施例中,在操作z12处,基于来自全域分支的全域参数u2及q2产生影像f13,且操作z12称为全域辅助实例正规化(global assisted instance normalization,gain)。
[0115]
在操作z13处,使用核心对影像f13执行卷积操作以产生影像f14。在一些实施例中,操作z13及z23在同一cnn层上,且两者均使用同一核心执行。
[0116]
在操作z14处,使用参数p44对影像f14执行非局部操作以产生影像f15。在一些实施例中,基于参数p44及影像f14的像素来评估影像f15的像素。基于影像f14及参数p44产生影像f15的计算类似于如上所述基于影像f12及参数p42产生影像f13的计算。因此,为简洁起见,不重复一些描述。
[0117]
在操作z15处,使用核心对影像f15执行卷积操作以产生影像f16。在一些实施例中,操作z15及z25在同一cnn层上,且两者均使用同一核心执行。
[0118]
在操作z16处,使用参数p46对影像f16执行非局部操作以产生影像f17。在一些实施例中,基于参数p46及影像f16的像素来评估影像f17的像素。用于基于影像f16及参数p46产生影像f17的计算类似于如上所述基于影像f12及参数p42产生影像f13的计算。因此,为
简洁起见,不重复一些描述。
[0119]
在一些实施例中,影像f17为输出影像的影像块。在其他实施例中,在操作z16之后,在主干线中交替执行类似于操作z13的卷积操作及类似于操作z14的非局部操作以产生输出影像的更多中间影像块。
[0120]
在一些实施例中,影像f12~f17中的各者具有相同大小及相同数目的像素。在一些实施例中,影像f12~f17对应于影像f21的一影像块,因此影像f12~f17称为影像块。在一些实施例中,影像f13~f16在用于产生输出影像的整个cnn建模程序期间产生,因此影像f13~f16称为中间影像。
[0121]
总之,主干线中影像f13~f17基于全域分支产生的全域参数p42、p44及p46而产生,因此对应于影像f21的影像块的影像f13~f17具有整个影像f21的全域信息。
[0122]
图4b是根据本揭示内容的一些实施例的处理影像f11的cnn系统的方法400b的流程图,对应于如图1中所示的程序100。如图4b中说明性所示,方法400b包括用于处理影像f11的操作z51~z56及z61~z66,以产生影像f62~f67、f52~f57以及全域参数p82、p84、p86。
[0123]
参考图4b及图4a,方法400b是方法400a的替代实施例。操作z51~z56及z61~z66分别对应于操作z11~z16及z21~z26。影像f62~f67及f52~f57分别对应于影像f22~f27及f12~f17。全域参数p82、p84、p86分别对应于全域参数p42、p44、p46。因此,为简洁起见,不重复一些描述。
[0124]
如图4b中所示,在操作z51之前,基于影像f11产生影像f51。在一些实施例中,影像f11划分成影像块,而影像f51是影像块中的一者。
[0125]
如图4b中说明性所示,在操作z61处,基于影像f11产生影像f62。在一些实施例中,影像f11缩小以产生影像f62。
[0126]
参考图4b及图4a,在一些实施例中,图4b中所示的影像f11、f51及f62之间的关系类似于影像f21、f12及f22之间的关系。与全域参数p82、p84、p86相关联的计算类似于与全域参数p42、p44、p46相关联的计算。因此,为简洁起见,不重复一些描述。
[0127]
如图4b中说明性所示,在操作z51处,使用核心对影像f51执行卷积操作以产生影像f52。对影像f52执行操作z52~z56以产生影像f53~f57。
[0128]
图5是根据本揭示内容的一些实施例的执行cnn建模程序的系统500的示意图,举例而言,对应于如图1中所示的程序100。如图5中说明性所示,系统500包括记忆体510及晶片520。在一些实施例中,记忆体510实施为dram储存器及/或晶片520实施为中央处理单元(central processing unit,cpu)。在一些实施例中,晶片520与记忆体510分离。换言之,记忆体510为晶片外记忆体。
[0129]
如图5中说明性所示,记忆体510用以接收及储存输入影像m51,且用以储存及输出一输出影像m52。晶片520用以处理输入影像m51且基于影像m51产生输出影像m52。在一些实施例中,与输入影像m51及输出影像m52相关联的资料在记忆体510与晶片520之间传输。在一些实施例中,记忆体510与晶片520之间的传输对应于dram频宽。
[0130]
参考图5及图2a,系统500a是对应程序200a的一实施例。记忆体510及晶片520分别对应于记忆体储存操作210及晶片上计算220。在一些实施例中,记忆体510用以储存影像m21,而晶片520用以处理影像块m22以产生影像块m24。
[0131]
在一些实施例中,晶片520用以产生与影像m51的非局部信息相关联的缩小影像相关联的参数,其中缩小影像中的各者具有小于影像m51大小的大小。
[0132]
参考图1至图5,在一些实施例中,晶片520用以执行图1至图4b中所示的操作,诸如操作s11~s16、s21~s26、op21、op22、cb1~cb3、op31、z11~z16、z21~z26、z51~z56及z61~z66。
[0133]
如图5中所示,晶片520包括处理装置522及524。处理装置522及524分别对应于全域分支及主干线。在一些实施例中,处理装置522用以缩小影像m51,且用以储存与影像m51相关联的全域参数。处理装置524用以自处理装置522接收全域参数且用以接收影像m51,并用以基于影像m51的一部分及全域参数产生影像m52的一部分。在一些实施例中,通过执行卷积神经网络(convolutional neural network,cnn)操作(举例而言,图4a中所示的操作z23及z25)与非局部操作(举例而言,图4a中所示的操作z22、z24及z26),晶片进一步用以处理经缩小影像m21,以产生多个缩小影像。下面参考图6中所示的实施例描述处理装置522及524的操作的进一步细节。
[0134]
图6是根据本揭示内容的一些实施例的处理输入影像以产生输出影像的cnn系统的方法600的流程图,举例而言,如图5中所示的系统500。如图6中所示,方法600包括操作s61~s65。在下面的描述中,操作s61~s65由图5中所示的系统500执行,但不限于此。在各种实施例中,操作s61~s65由具有不同于系统500的各种组态的各种系统执行。
[0135]
在操作s61处,晶片520接收输入影像m51。在一些实施例中,处理装置524用以处理输入影像m51的影像块。
[0136]
在操作s62处,处理装置522缩小输入影像m51以产生具有输入影像m51的全域特征的第一缩小影像。在一些实施例中,操作s62包括对影像m51进行取样及/或池化。
[0137]
在操作s63处,晶片520基于第一缩小影像产生多个缩小影像及相应全域参数p51。在各种实施例中,操作s63由处理装置522及524中的任一者执行。在一些实施例中,处理装置522用以储存全域参数p51。
[0138]
在操作s64处,处理装置522将全域参数p51自处理装置522传输至处理装置524。
[0139]
在操作s65处,处理装置524基于全域参数p51产生输出影像m52的一影像块。在一些实施例中,处理装置524进一步产生用于产生输出影像m52的中间影像块。
[0140]
参考图6及图4a,操作s62对应于操作z21,操作s63对应于操作z22~z26,且操作s65对应于操作z12~z16。举例而言,操作s63包括操作z22~z26中的至少一者,且操作s65包括操作z12~z16中的至少一者。
[0141]
图7是根据本揭示内容的一些实施例的执行cnn建模程序的系统700的示意图,对应于如图5中所示的系统500。如图7中说明性所示,系统700包括记忆体710及晶片720。记忆体710用以接收及储存输入影像m71,且用以储存及输出输出影像m72。晶片720包括用于基于输入影像m71产生输出影像m72的处理装置722及724。
[0142]
参考图5及图7,系统700是系统500的实施例。记忆体710、晶片720、输入影像m71、输出影像m72以及处理装置722及724分别对应于记忆体510、晶片520、输入影像m51、输出影像m52以及处理装置522及524。因此,为简洁起见,不重复一些描述。
[0143]
如图7中说明性所示,处理装置722包括取样电路751及记忆体电路752。取样电路751用以缩小输入影像m71以产生缩小影像m73。记忆体电路752用以储存全域参数p71且用
以将全域参数p71传输至处理装置724。
[0144]
如图7中所示,处理装置724包括记忆体电路761及处理电路762。记忆体电路761用以自取样电路751接收及储存缩小影像m73,且用以将缩小影像m73提供至处理电路762。处理电路762用以基于缩小影像m73产生多个缩小影像m74及相应全域参数p71。
[0145]
在一些实施例中,在全域参数p71产生且储存于记忆体电路752中之后,记忆体电路761进一步用以接收输入影像m71的影像块m75。处理电路762进一步用以基于影像块m75及全域参数p71产生多个影像块m76,从而产生输出影像m72的影像块m77。在一些实施例中,记忆体电路761进一步用以自处理电路762接收及储存影像块m75~m77,且用以将影像块m77传输至记忆体710。
[0146]
参考图4a及图7,影像m71对应于影像f21,缩小影像m73对应于影像f22,缩小影像m74对应于影像f23~f26,影像块m75对应于影像f12,影像块m76对应于影像f13~f16,且全域参数p71对应于参数p42、p44及p46。
[0147]
图8是根据本揭示内容的一些实施例的用于处理输入影像以产生输出影像的cnn系统(诸如图7中所示的系统700)的方法800的流程图。如图8中说明性所示,方法800包括操作s81~s812。在下面的描述中,操作s81~s812由图7中所示的系统700执行,但不限于此。在各种实施例中,操作s81~s812由具有不同于系统700的各种组态的各种系统执行,诸如下面描述的图9a至图9c中所示的系统900a~900c。
[0148]
在操作s81处,记忆体710接收输入影像m71。
[0149]
在操作s810处,取样电路751缩小输入影像m71以产生具有输入影像m71的全域特征的缩小影像m73。
[0150]
在操作s811处,处理电路762对影像m73执行cnn操作及全域分支中的非局部操作,诸如图4a至图4b中所示的操作z22~z26及z62~z66,以产生缩小影像m74及全域参数p71。
[0151]
在操作s812处,记忆体电路752自处理电路762接收全域参数p71且储存全域参数p71。
[0152]
在操作s82处,处理电路762自记忆体710接收输入影像m71的影像块m75。
[0153]
在操作s83处,处理电路762对影像块m75执行cnn操作,诸如图4a至图4b中所示的操作z13、z15、z51、z53及z55,以产生影像块m76中的一者。
[0154]
在操作s84处,处理电路762用以判定是否需要通过非局部操作处理影像块m76中的该者。若影像块m76中的该者需要通过非局部操作来处理,则在操作s84之后执行操作s85。若影像块m76中的该者不需要通过非局部操作来处理,则在操作s84之后执行操作s87。
[0155]
在操作s85处,处理电路762自记忆体电路752接收全域参数p71。
[0156]
在操作s86处,处理电路762通过使用全域参数p71执行非局部操作(诸如图4a至图4b中所示的操作z12、z14、z16、z52、z54及z56)将全域特征应用于影像块m76中的该者。
[0157]
在操作s87处,处理电路762判定cnn建模程序是否结束。若cnn建模程序结束,则在操作s87之后执行操作s88,且将影像块m77传输至记忆体710。若cnn建模程序未结束,则在操作s87之后执行操作s83,以进行至下一cnn层。
[0158]
在操作s88处,处理电路762判定是否处理整个影像m71的影像块。换言之,处理电路762判定是否产生整个输出影像m72的影像块。若产生整个输出影像m72的影像块,则在操作s88之后执行操作s89。若输出影像m72的影像块中的一些尚未产生,则在操作s88之后执
行操作s82,以处理输入影像m71的另一影像块。
[0159]
在操作s89处,记忆体710输出输出影像m72。
[0160]
图9a是根据本揭示内容的一些实施例的执行cnn建模程序的系统900a(对应于如图5中所示的系统500)的示意图。如图9a中说明性所示,系统900a包括记忆体910a及晶片920a。记忆体910a用以接收及储存输入影像ma1,且用以储存及输出输出影像ma2。晶片920a包括处理装置922a及924a。
[0161]
参考图5及图9a,系统900a是系统500的实施例。记忆体910a、晶片920a、输入影像ma1、输出影像ma2以及处理装置922a及924a分别对应于记忆体510、晶片520、输入影像m51、输出影像m52以及处理装置522及524。因此,为简洁起见,不重复一些描述。
[0162]
如图9a中说明性所示,处理装置922a包括取样电路951a、记忆体电路952a、953a及处理电路954a。在一些实施例中,取样电路951a用以缩小输入影像ma1以产生缩小影像ma3。记忆体电路953a用以接收及储存缩小影像ma3。处理电路954a用以在全域分支中执行操作,诸如图4a中所示的操作z22~z26,以缩小影像ma3,从而产生多个缩小影像ma4及相应全域参数pa4。记忆体电路953a进一步用以接收及储存缩小影像ma4。记忆体电路952a用以接收及储存全域参数pa4。
[0163]
如图9a中所示,处理装置924a包括记忆体电路961a及处理电路962a。在一些实施例中,记忆体电路961a用以接收输入影像ma1的一影像块ma5。处理电路962a用以分别自记忆体电路961a及记忆体电路952a接收影像块ma5及全域参数pa4,且用以基于影像块ma5及全域参数pa4执行全域分支的操作,诸如图4a中所示的操作z12~z16,以产生输出影像ma2的一影像块ma6。
[0164]
图9b是根据本揭示内容的一些实施例的执行cnn建模程序的系统900b(对应于如图5中所示的系统500)的示意图。如图9b中说明性所示,系统900b包括记忆体910b、930b及晶片920b。记忆体910b用以接收及储存输入影像mb1,且用以储存及输出输出影像mb2。晶片920b包括处理装置922b及924b。记忆体930b用以接收及储存与全域分支相关联的资料。在一些实施例中,记忆体930b是与记忆体910b及晶片920b分离的晶片外记忆体。
[0165]
参考图5及图9b,系统900b是系统500的实施例。记忆体910b、晶片920b、输入影像mb1、输出影像mb2以及处理装置922b及924b分别对应于记忆体510、晶片520、输入影像m51、输出影像m52以及处理装置522及524。因此,为简洁起见,不重复一些描述。
[0166]
如图9b中说明性所示,处理装置922b包括取样电路951b、记忆体电路952b、953b及处理电路954b。在一些实施例中,取样电路951b用以缩小输入影像mb1以产生缩小影像mb3。记忆体电路953b用以接收及储存缩小影像mb3。处理电路954b用以在全域分支中对缩小影像mb3执行操作(诸如图4a中所示的操作z22~z26),以产生多个缩小影像mb4及相应全域参数pb4。记忆体电路953b进一步用以接收及储存缩小影像mb4。记忆体电路952b用以接收及储存全域参数pb4。
[0167]
在一些实施例中,记忆体930b用以自取样电路951b接收缩小影像mb3,且将缩小影像mb3传输至记忆体电路953b。在一些实施例中,记忆体930b用以接收及储存缩小影像mb4。在一些实施例中,记忆体电路953b用以储存缩小影像mb4的一部分,且处理电路954b用以基于缩小影像mb4的该部分计算全域参数pb4。
[0168]
如图9b中说明性所示,处理装置924b包括记忆体电路961b及处理电路962b。在一
些实施例中,记忆体电路961b用以接收输入影像mb1的影像块mb5。处理电路962b用以分别自记忆体电路961b及记忆体电路952b接收影像块mb5及全域参数pb4,且用以基于块mb5及全域参数pb4执行全域分支的操作,诸如图4a中所示的操作z12~z16,以产生输出影像mb2的影像块mb6。
[0169]
图9c是根据本揭示内容的一些实施例的执行cnn建模程序的系统900c(对应于如图5中所示的系统500)的示意图。如图9c中说明性所示,系统900c包括记忆体910c、930c及晶片920c。记忆体910c用以接收及储存输入影像mc1,且用以储存及输出输出影像mc2。晶片920c包括处理装置922c及924c。
[0170]
参考图5及图9c,系统900c是系统500的实施例。记忆体910c、晶片920c、输入影像mc1、输出影像mc2以及处理装置922c及924c分别对应于记忆体510、晶片520、输入影像m51、输出影像m52以及处理装置522及524。因此,为简洁起见,不重复一些描述。
[0171]
如图9c中所示,处理装置922c包括取样电路951c及记忆体电路952c。在一些实施例中,取样电路951c用以缩小输入影像mc1以产生缩小影像mc3,且用以将缩小影像mc3传输至记忆体910c。记忆体电路952c用以自处理装置924c接收全域参数pc4且储存全域参数pc4。
[0172]
如图9c中所示,处理装置924c包括记忆体电路961c及处理电路962c。记忆体电路961c用以自记忆体910c接收及储存缩小影像mc3,且用以将缩小影像mc3提供至处理电路962c。处理电路962c用以产生多个缩小影像mc4及相应全域参数pc4。在一些实施例中,记忆体电路961c进一步用以储存缩小影像mc4。
[0173]
在一些实施例中,在全域参数pc4产生且储存于记忆体电路952c中之后,记忆体电路961c用以接收输入影像mc1的影像块mc5。处理电路962c用以分别自记忆体电路961c及记忆体电路952c接收影像块mc5及全域参数pc4,且用以基于块mc5及全域参数pc4执行主干线的操作,诸如图4a中所示的操作z12~z16,以产生输出影像mc2的影像块mc6。
[0174]
关于图1及图4a中的程序100及方法400a,使用占据小dram频宽的全域信息产生输入影像imin的影像块。
[0175]
亦揭示一种产生影像的方法,其包括:缩小输入影像以产生缩小影像;对缩小影像执行具有第一非局部操作的第一卷积神经网络(convolutional neural network,cnn)建模程序,以产生全域参数;及对输入影像执行具有使用全域参数执行的第二非局部操作的第二cnn建模程序,以产生对应于输入影像的输出影像。在一些实施例中,使用第二非局部操作执行第二卷积神经网络建模程序包含:交替执行多个第一卷积神经网络操作与第二非局部操作以按顺序产生多个第一中间影像,其中第二非局部操作中的各者使用全域参数中的一相应一者执行以产生第一中间影像中的一相应一者。在一些实施例中,使用第一非局部操作执行第一卷积神经网络建模程序包含:交替执行多个第二卷积神经网络操作与第一非局部操作以按顺序产生多个第二中间影像,其中第二非局部操作中的各者使用全域参数中的一相应一者执行以产生第二中间影像中的一相应一者;及基于第二中间影像中的相应一者产生全域参数中的一下一者。在一些实施例中,方法进一步包含:将输入影像划分成多个第一影像块,其中输出影像包括对应于第一影像块的多个第二影像块;其中使用第一非局部操作执行第一卷积神经网络建模程序包含:自缩小影像萃取输入影像的多个全域特征以产生全域参数;及其中使用第二非局部操作执行第二卷积神经网络建模程序包含:将全
域参数应用于第一影像块中的一者以产生具有全域特征的多个第一中间影像;及基于第一中间影像产生对应于第一影像块中的一者的第二影像块中的一者。在一些实施例中,使用第一非局部操作执行第一卷积神经网络建模程序包含:自缩小影像萃取全域参数中的多个第一全域参数;基于第一全域参数转换缩小影像以产生多个第一中间影像中的一第一者;及基于全域参数中的一相应一者转换第一中间影像中的各者以产生第一中间影像中的一下一者。在一些实施例中,全域参数包括缩小影像的一平均值及缩小影像的一标准偏差。
[0176]
亦揭示包括第一记忆体及晶片的产生影像的系统。第一记忆体用以接收及储存输入影像。晶片与第一记忆体分离,且用以产生与输入影像的非局部信息相关联的缩小影像相关联的参数。缩小影像中的各者具有小于输入影像大小的大小。晶片包括第一处理装置及第二处理装置。第一处理装置用以缩小输入影像,且用以储存参数。晶片进一步用以通过执行第一卷积神经网络(convolutional neural network,cnn)操作与第一非局部操作来处理经缩小输入影像,以产生缩小影像。第二处理装置用以自第一处理装置接收参数且接收输入影像,且用以基于输入影像的一部分及参数产生输出影像的一部分。在一些实施例中,第一处理装置包含:一取样电路,用以缩小输入影像;一第一记忆体电路,用以储存多个缩小影像;一处理电路,用以产生多个缩小影像及参数;及一第二记忆体电路,用以储存参数且用以将参数传输至第二处理装置。在一些实施例中,第一处理装置包含:一取样电路,用以缩小输入影像;及一第一记忆体电路,用以储存参数且用以将参数传输至第二处理装置;及第二处理装置包含:一处理电路,用以产生多个缩小影像及参数,且用以在产生参数之后产生输出影像的部分;及一第二记忆体电路,用以储存多个缩小影像,且用以在产生参数之后储存输出影像的部分。在一些实施例中,系统进一步包含:一第二记忆体,与第一记忆体及晶片分离,且用以储存多个缩小影像及经缩小输入影像,其中第一处理装置包含:一取样电路,用以缩小输入影像且将经缩小输入影像传输至第二记忆体;一第一记忆体电路,用以储存多个缩小影像的一部分;一处理电路,用以产生对应于多个缩小影像的部分的参数;及一第二记忆体电路,用以储存参数且用以将参数传输至第二处理装置。在一些实施例中,第一处理装置包含:一取样电路,用以缩小输入影像且将经缩小输入影像传输至第一记忆体;及一第一记忆体电路,用以储存参数且用以将参数传输至第二处理装置;及第二处理装置包含:一处理电路,用以产生多个缩小影像及参数,且用以在产生参数之后产生输出影像的部分;及一第二记忆体电路,用以储存输入影像的部分,且用以将经缩小输入影像自第一记忆体传输至处理电路。在一些实施例中,第二处理装置进一步用以通过执行第二卷积神经网络操作与多个第二非局部操作来处理输入影像的部分,以产生多个中间影像,其中第二处理装置进一步用以基于中间影像中的一先前一者及参数中的一相应一者来产生多个中间影像中的一者。在一些实施例中,晶片进一步用以执行第一卷积神经网络操作中的一者以产生多个中间影像中的先前一者,以产生参数的相应一者。在一些实施例中,第一卷积神经网络操作中的一者及第二卷积神经网络操作中的一者对应于一相同卷积神经网络层。
[0177]
亦揭示一种产生影像的方法,其包括:缩小输入影像以产生第一缩小影像;自第一缩小影像萃取与输入影像的全域特征相关联的第一参数;对输入影像中影像块中的第一影像块执行第一卷积神经网络(convolutional neural network,cnn)操作,以产生第二影像块;使用第一参数对第二影像块执行第一非局部操作以产生第三影像块;且基于第三影像
块产生对应于输入影像的输出影像的一部分。在一些实施例中,方法进一步包含:将第一参数储存于一记忆体中;及当第一非局部操作需要第三影像块时,自记忆体接收第一参数。在一些实施例中,方法进一步包含:对第一缩小影像执行一第二卷积神经网络操作以产生一第二缩小影像;及使用第一参数对第二缩小影像执行一第二非局部操作以产生一第三缩小影像。在一些实施例中,产生输出影像的部分包含:自第三缩小影像萃取与输入影像的全域特征相关联的多个第二参数;对第三影像块执行一第三卷积神经网络操作以产生一第四影像块;及使用第二参数对第四影像块执行一第三非局部操作,以产生一第五影像块,作为一下一卷积神经网络操作的一输入。在一些实施例中,执行第一非局部操作包含:基于第二影像块的多个像素及第一参数评估第三影像块的多个像素中的一者。在一些实施例中,第一参数包括第一缩小影像的多个像素的一平均值及第一缩小影像的像素的一标准偏差。
[0178]
前述内容概述若干实施例的特征,使得熟悉此项技术者可更佳地理解本揭示内容的态样。熟悉此项技术者应了解,其可易于使用本揭示内容作为用于设计或修改用于实施本文中引入的实施例的相同目的及/或达成相同优势的其他程序及结构的基础。熟悉此项技术者亦应认识到,此类等效构造并不偏离本揭示内容的精神及范畴,且此类等效构造可在本文中进行各种改变、取代、及替代而不偏离本揭示内容的精神及范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1