(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0010】
図1は、特徴抽出装置100の模式的断面図である。特徴抽出装置100は、順次積層されたマイクロレンズ110、画素基板120、AD変換回路基板130、乗算回路基板140、加算回路基板150、畳み込み演算結果加算基板160、活性化関数演算回路基板170、プーリング回路基板180、および結合回路基板190を備える単体の素子である。
【0011】
なお、特徴抽出装置100は、受光した被写体光束から被写体を判定する場合に用いる特徴量を抽出する。被写体の判定は、一例として、被写体が何かを判別したり、被写体のカテゴリを判別することや、被写体の度合い(例えば夕景度など)を判定することなどが挙げられるが、これらに限らない。ここで抽出される特徴量は、深層学習またはディープラーニングと呼ばれる多層ニューラルネットワークで抽出される特徴に対応する。換言すれば、特徴抽出装置100は、深層学習により特徴抽出をする学習処理にも用いることができる。
【0012】
特徴抽出装置100における基板の各々は、下地基板11上にフォトリソグラフィにより形成された配線層12を有する。それぞれの配線層12には、配線、素子等により形成された回路が含まれる。即ち、画素基板120、AD変換回路基板130、乗算回路基板140、加算回路基板150、畳み込み演算結果加算基板160、活性化関数演算回路基板170、プーリング回路基板180、結合回路基板190は、それぞれ、画素121、AD変換回路131、乗算回路141、加算回路151、ラッチB付き加算回路161、活性化関数演算回路171、プーリング回路181、結合回路191を有する。
【0013】
また、上記の基板は、それぞれの下地基板11を貫通した貫通電極13を介して、隣接して積層された他の基板と電気的に接続される。更に、一部の基板は、複数の基板を貫通して形成された貫通電極14により、隣接していない基板に対しても直接に電気的に接続される。この点については、
図3および
図4を参照して説明する。
【0014】
特徴抽出装置100において、画素基板120は、二次元的且つ周期的に配された複数の画素121を有する。画素121のそれぞれは、入射した光を光電変換するフォトダイオード等の受光素子を有する。なお、図示の例では、画素基板120は、画素121を形成する場合の下地となった基板を除去または薄化して、当該下地基板側から入射光を受光する裏面照射型となっている。
【0015】
また、画素基板120は、個々の受光素子に、リセット、転送、選択を指示するトランジスタと、出力信号を増幅する素子とを有してもよい。画素基板120に積層されたマイクロレンズ110は、個々の画素121に対する入射光を集光して、入射効率を向上させている。
【0016】
AD変換回路基板130は、画素基板120の画素121に個々に対応した複数のAD変換回路131、ラッチ132および切替スイッチ133を有する。これにより、AD変換回路基板130は、画素基板120の画素121から取得したひとつひとつの画素値を離散化した値か、ラッチ132が保持している値かのいずれかを他の基板に出力する。AD変換回路131、ラッチ132および切替スイッチ133は、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0017】
乗算回路基板140は、画素基板120のそれぞれの画素121に個別に対応した乗算回路141を有する。すなわち、乗算回路基板140は、画素基板120に設けられる複数の画素121と同じ数の複数の乗算回路141を有する。乗算回路141は、デジタル乗算器であり、例えば、シフトレジスタにより形成してもよい。乗算回路141は、乗算処理を実行する場合のフィルタ係数を外部から取得して保持する。
【0018】
換言すれば、乗算回路141は、外部から読み込んだフィルタ係数の値に応じて異なる乗算処理を実行できる。
図1では、例としてフィルタ係数aを取得した場合を示す。乗算回路基板140における乗算回路141も、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0019】
なお、乗算回路基板140は、画素基板120の複数の画素121からなるブロックごとに1つの乗算回路141を有してもよい。例えば、画素121の二次元方向に隣接する4画素を1つのブロックとすると、ブロック内の4つの画素121のいずれにも接続する1つの乗算回路141を有してもよい。この場合、乗算回路141は、ブロック内の4つの画素121からの出力に対してそれぞれ順番に乗算処理を行う。
【0020】
加算回路基板150の加算回路151は、乗算回路基板140における複数の乗算回路141から取得した値を加算して出力する。加算回路151の出力は、図中下層の畳み込み演算結果加算基板160に出力することができる。加算回路基板150における加算回路151は、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0021】
畳み込み演算結果加算基板160は、ラッチB付き加算回路161、ラッチA162、およびマルチプレクサ163を有する。ラッチB付き加算回路161、ラッチA162、およびマルチプレクサ163は、相互に接続されると共に、ラッチB付き加算回路161は貫通電極13を通じて活性化関数演算回路基板170に、マルチプレクサ163は貫通電極13を通じて加算回路基板150に、それぞれ接続されている。畳み込み演算結果加算基板160は、加算回路基板150から出力される複数の信号を加算した後、活性化関数演算回路基板170に出力する。
【0022】
活性化関数演算回路基板170は、加算回路基板150の加算回路151に対応した数の活性化関数演算回路171を有する。活性化関数演算回路基板170は、加算回路基板150の出力受けて活性化関数演算を実行した後、プーリング回路基板180に出力する。活性化関数演算回路基板170における活性化関数演算回路171は、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0023】
プーリング回路基板180のプーリング回路181および結合回路基板190の結合回路191は、前段からの入力を順次処理する。結合回路基板190における結合回路191の出力値は、特徴抽出装置100の外部に特徴量として出力することができる。プーリング回路181および結合回路191も、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0024】
なお、上記の特徴抽出装置100において、画素121、AD変換回路131、ラッチ132、切替スイッチ133、乗算回路141、加算回路151、ラッチB付き加算回路161、活性化関数演算回路171、プーリング回路181、結合回路191等の各々は、供給されるタイミングトリガ210により、図示していない制御部から動作のタイミングを制御される。制御部は、特徴抽出装置100が備えてもよいし、特徴抽出装置100を装備した他の装置、例えば、撮像装置の制御部が兼用されてもよい。単体の素子である特徴抽出装置100と、制御部とによって、特徴抽出システムが構成される。
【0025】
上記のように、特徴抽出装置100は、画像の特徴抽出処理に関与する乗算回路基板140、加算回路基板150、畳み込み演算結果加算基板160、活性化関数演算回路基板170、プーリング回路基板180、結合回路基板190を、受光素子を含む画素基板120に積層した構造を有する。これにより、画素値を直接に処理して特徴抽出ができるので、画像をデータ化して格納する処理、格納した画像データを転送する処理が不要になり、処理時間を短縮できる。
【0026】
また、画像データのための記憶装置、転送装置等のハードウエアリソースも省くことができるので、特徴抽出装置100を備えた機器の小型化にも寄与する。更に、画素基板120の画素に対応した処理基板を積層するので、画素基板120の画素数が増加しても処理速度が低下することが防止される。
【0027】
なお、上記の特徴抽出装置100は、二次元的に配列された複数の画素121により入射光を受光するので、画像データを生成する場合に元いる二次元的な輝度分布情報を画素基板120から取得することもできる。よって、特徴抽出装置100は、イメージセンサとして用いることもできる。
【0028】
図2は、特徴抽出装置100において実行する特徴抽出処理の流れ図である。図示のように、特徴抽出処理においては、画素値生成処理S101により生成された画素値に対して、畳み込み処理S102、活性化関数演算処理S103、プーリング処理S104、および結合処理S105が実行され、抽出された特徴量が外部に出力される(ステップS106)。
【0029】
ここで、深層学習に対応した特徴抽出処理において、画素値生成処理S101および特徴量出力S106の実行は、1回の特徴抽出についてそれぞれ1回ずつ実行される。しかしながら、畳み込み処理S102におけるフィルタ関数の読み込み、乗算処理および加算処理は、読み込むフィルタ係数を変化させながら何度も繰り返し実行される。更に、畳み込み処理後の活性化関数演算処理S103及びプーリング処理S104の処理結果は、再び畳み込み処理S102に供され、畳み込み処理S102からプーリング処理S104までの処理が更に繰り返される。なお、活性化関数演算処理S103だけを繰り返したり、畳み込み処理S102と活性化関数演算処理S103を繰り返す場合や、画素値生成処理S101の後に畳み込み処理S102、活性化関数演算処理S103のいずれかまたは両方を省略してプーリング処理S104を行う場合もある。
【0030】
図3は、
図1に示した特徴抽出装置100の動作を説明する図である。同図に示す特徴抽出装置100においては、隣接する基板を接続する貫通電極13の機能が、ハッチングを施した太線により強調して示される。
【0031】
図中で太線により示すように、特徴抽出装置100において、画素基板120における画素1、画素2および画素3の各々は、AD変換回路基板130において対応するAD変換回路131、および切替スイッチ133を介して、乗算回路基板140において対応する乗算回路141に接続される。
【0032】
一方、乗算回路基板140は、画素1から3のそれぞれに対応する乗算回路141のフィルタ係数a、b、cを取得する。画素基板120における画素1が出力した画素値は、乗算回路基板140において画素1に対応する乗算回路141によりフィルタ係数aを用いて乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。
【0033】
同様に、画素基板120における画素2が出力した画素値は、乗算回路基板140において画素2に対応する乗算回路141によりフィルタ係数bを用いて乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。更に、画素基板120における画素3が出力した画素値は、乗算回路基板140において画素3に対応する乗算回路141によりフィルタ係数cを用いて乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。
【0034】
加算回路基板150における加算回路151は、入力された複数の乗算処理結果を加算し、畳み込み演算結果加算基板160に出力する。こうして、平滑化等のフィルタリングと同様な処理が実行される。ただし、乗算回路141におけるフィルタ係数が事前の学習により予め定められることにより、一連の処理は畳み込み処理として実行される。
【0035】
畳み込み演算結果加算基板160におけるラッチA162は、加算回路151から出力された信号を、マルチプレクサ163を介して保持する。その後、前回とは異なるフィルタ係数が設定された乗算回路141により乗算処理され、乗算処理結果が加算回路151で加算されると、ラッチB付き加算回路161は、加算回路151の加算処理結果を、マルチプレクサ163を介して保持する。
【0036】
ラッチB付き加算回路161は、ラッチA162に保持されている前回の加算処理結果を読み出して新たな加算処理結果と加算し、その加算結果はラッチA162によってふたたび保持される。この処理を予め定められた所定の回数だけ繰り返すことで、同じ画素群(画素1〜3)に対して異なるフィルタ係数により畳み込み演算された複数の処理結果を足し合わせることができる。すなわち、これは
図2に示す畳み込み処理S102の繰り返しに該当する。このような畳み込み演算は、画素基板120におけるすべての画素、すなわち入力画像全体に対して実行される。
【0037】
特徴抽出装置100においては、畳み込み演算結果加算基板160による処理結果は、貫通電極13を通じて活性化関数演算回路基板170の活性化関数演算回路171に入力される。活性化関数演算回路171は、畳み込み処理からプーリング処理へ伝播する情報を変換する。そのような関数としては、下記の式1に示すように、0未満の入力値をすべて0とし、正の値はそのまま返すReL U(Rectified Linear Unit)関数を例示できる。
f(x)=max(0,x)・・・(式1)
【0038】
活性化関数演算回路171の出力は、貫通電極13を通じてプーリング回路基板180のプーリング回路181に伝播される。プーリング回路181においては、予め定められた条件に基づいてサブサンプリングを実行する。ここで実行されるサブサンプリングの条件としては、あるウインドウサイズで最大の値を代表値とするMax Pooling法を例示できる。
【0039】
予め定められる条件は、活性化関数演算回路171からの複数の出力をまとめる処理であればよく、平均値を出力するAverage Pooling法などでもよい。こうして畳み込み処理(ステップS102)、活性化関数演算処理(ステップS103)、およびプーリング処理(ステップS104)までの処理が実行され、画素値から生成されたサブサンプリング値が生成される。
【0040】
図4は、
図1に示した特徴抽出装置100の他の動作を説明する図である。図示の特徴抽出装置100においては、次に説明する動作に関与する貫通電極が、ハッチングを施した太線により強調して示される。
【0041】
図中の太線により示すように、特徴抽出装置100においては、互いに隣接していない基板の間でも信号を送受信できる。よって、例えば、プーリング回路基板180の出力を、貫通電極14を通じて、AD変換回路基板130のラッチ132に格納して、再び乗算回路141において乗算処理に付すことができる。これにより、サブサンプリングされた値が再び畳み込み処理される。このような畳み込み処理の繰り返しは、フィルタ係数a、b、cを変えながら、予め定められた回数、例えば2000回以上実行される。
【0042】
更に、AD変換回路基板130、乗算回路基板140、加算回路基板150、畳み込み演算結果加算基板160、活性化関数演算回路基板170、およびプーリング回路基板180までの間で既定の回数まで処理された信号は、結合回路基板190における結合回路191により1次元化される。これにより、成分ごとに画像のある特徴量を示す値が得られる。
【0043】
図5は、特徴抽出装置100の動作を示すタイミングチャートである。図中のパルスは、タイミングトリガ210として各基板に供給される信号を意味する。
【0044】
図示のように、特徴抽出装置100における各回路は、
図1における上層から順に準備タイミングトリガ210が供給されることにより、
図2に示した処理を、同図に示す順序で実行する特徴抽出装置100においては、乗算回路基板140が、画素121の各々に対応した乗算回路141を有するので、個々の画素値に対して畳み込み処理を実行できる。これにより、判定精度の高い特徴量を効率よく抽出できる。
【0045】
なお、区間Pは畳み込み処理S102を繰り返す区間を示す。そして、点線Aで囲って示す領域は、複数の画素からなる画素群(たとえば3×3画素)に対して、同じサイズのフィルタによって畳み込み演算する区間を示す。さらに、点線Bで囲って示す領域は、同じ画素群に対して他のフィルタによって畳み込み演算する区間を示す。
【0046】
また、区間Qは、畳み込み処理S102からプーリング処理S104を繰り返す区間を示す。なお、実際には、畳み込み処理S102の演算結果加算処理では、加算回路からの信号を入力するたびにラッチAまたはラッチB付き加算回路のタイミングトリガが供給されるが、説明の簡略化のため、最終的な加算処理のタイミングトリガのみを示している。
【0047】
なお、結合回路191における結合処理は、他の基板における処理に比較すると処理負荷が小さい。よって、特徴抽出装置100は、結合回路191のための結合回路基板190を設けなくてもよい。この場合、特徴抽出装置100は、既定の回数まで繰り返されて最終的にプーリング回路181でプーリング処理された信号を外部へ出力する。そして、外部の基板において結合処理が実行される。
【0048】
図6は、特徴抽出装置100を備えた撮像装置500のブロック図である。撮像装置500は、特徴抽出装置100、システム制御部501、駆動部502、測光部503、ワークメモリ504、記録部505、表示部506、および主電源507を備える。
【0049】
また、撮像装置500は、被写体光束を特徴抽出装置100に導く主光学系520を備える。主光学系520は、撮像装置500に対して着脱できる交換式であってもよい。
【0050】
主光学系520は、複数の光学レンズ群から構成され、その焦点面近傍に被写界からの被写体光束を結像させる。なお、図中では瞳近傍に配置された仮想的な1枚のレンズで主光学系520を代表して表している。
【0051】
駆動部502は、システム制御部501からの指示に従って特徴抽出装置100のタイミング制御、領域制御等の電荷蓄積制御を実行する制御回路である。駆動部502は、例えば、特徴抽出装置100に対して、入射光を光電変換して生成した電荷を蓄積させて画素値を出力させる一連の制御を担う。また、駆動部502は、特徴抽出装置100にタイミングトリガ210を供給する。
【0052】
特徴抽出装置100から出力された被写体の特徴量は、システム制御部501の判定部513に渡される。これにより、システム制御部501においては、被写体を判定する判定処理が実行される。なお、特徴抽出装置100は、その画素基板120から、システム制御部501の画像処理部511に被写体の輝度分布を含む情報を送信して、被写体の画像データが生成させてもよい。画像処理部511は、ワークメモリ504をワークスペースとして処理を実行する。
【0053】
測光部503は、特徴抽出装置100が入射光を光電変換することにより画素値を生成する一連のシーケンスに先立ち、被写体の輝度分布を検出する。測光部503は、例えば100万画素程度のAEセンサを含む。システム制御部501の演算部512は、測光部503の出力を受けてシーンの領域ごとの輝度を算出する。
【0054】
更に、演算部512は、算出した輝度分布に従ってシャッタ速度、絞り値、ISO感度を決定する。測光部503は特徴抽出装置100で兼用してもよい。なお、演算部512は、撮像装置500を動作させる場合に必要な各種演算も実行する。
【0055】
このように、撮像装置500は、特徴抽出装置100から取得した特徴量により被写体を判定する判定機能を有する。ここで、特徴抽出装置100は、それ自体において抽出した特徴量をシステム制御部501に送信する。よって、システム制御部501は、特徴量抽出処理の負荷を負わずに特徴量を取得して被写体を判定できる。また、システム制御部501は、抽出結果としての特徴量を受信するので、特徴抽出装置100とシステム制御部501との間の通信量増加が防止される。
【0056】
図7は、他の特徴抽出装置101の模式的断面図である。特徴抽出装置101は、次に説明する部分を除くと、
図1に示した特徴抽出装置100と同じ構造を有する。そこで、共通の要素には同じ参照番号を付して重複する説明を省く。
【0057】
特徴抽出装置101は、AD変換回路基板130と加算回路基板150との間に、複数の乗算回路基板1400、1401、1402・・・140nを備える点で、特徴抽出装置100と異なる構造を有する。複数の乗算回路基板1400、1401、1402・・・140nは、特徴抽出装置100の乗算回路基板1400と同様に、画素基板120の複数の画素121に個別に対応した複数の乗算回路141を有し、外部から受けたタイミングトリガ210を受信したタイミングで動作する。
【0058】
乗算回路141は、乗算処理を実行する場合のフィルタ係数を外部から取得して保持する。また、乗算回路141は、基板毎に値が異なるフィルタ係数を保持して乗算処理を実行できる。よって、乗算回路基板1400〜140nは、互いに異なる条件の下に乗算処理を実行できる。
【0059】
図8は、特徴抽出装置101の動作を説明する模式的断面図である。図中にハッチングを施した太線により示すように、画素基板120における画素1が出力した画素値は、図中上段の乗算回路基板1400に形成された乗算回路141により乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。また、画素基板120における画素2が出力した画素値は、図中上段の乗算回路基板1401に形成された乗算回路141により乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。更に、画素基板120における画素3が出力した画素値は、図中上段の乗算回路基板1402に形成された乗算回路141により乗算処理された後、貫通電極13を通じて加算回路基板150に入力される。
【0060】
なお、乗算回路基板1400に設けられた複数の乗算回路141の各々におけるフィルタ係数a1は、同じ乗算回路基板1400に設けられた乗算回路141相互の間で同じ値をとる。同様に、他の乗算回路基板1401、1402・・・140nの各々においても、各基板における複数の乗算回路141は共通のフィルタ係数b1、c1・・・n1を有する。よって、畳み込み処理を実行する場合は、乗算処理を実行する基板を選択することにより、フィルタ係数a1、b1、c1・・・n1を選ぶことができる。すなわち、
図8に示す例では、画素1が出力した画素値はフィルタ係数a1で乗算処理され、画素2が出力した画素値はフィルタ係数b1で乗算処理され、画素3が出力した画素値はフィルタ係数c1で乗算処理される。
【0061】
図9は、特徴抽出装置101の部分的なタイミングチャートである。特徴抽出装置101においては、画素121毎に異なる乗算回路基板1400〜140nにより乗算処理される。よって、ある画素群に対する1回のフィルタリングに相当する畳み込み処理において何度も実行される乗算処理を、最初にすべてのフィルタ係数を取得した後は、図中に点線A、Bで囲って示すように、並列的且つ同時に連続して処理できる。
【0062】
よって、乗算処理を行うたびにフィルタ係数を取得、設定する必要がないため、フィルタ係数を取得、設定する時間が短縮され、特徴抽出装置101全体のスループットを向上できる。このような特徴抽出装置101は、例えば、特徴抽出装置100に換えて、撮像装置500に組み込んで、特徴抽出機能付きのイメージセンサとしても使用することができる。
【0063】
本実施の形態で説明した特徴抽出装置は、乗算回路基板140、加算回路基板150、活性化関数演算回路基板170、プーリング回路基板180、および結合回路基板190のそれぞれに、乗算回路141、加算回路151、活性化関数演算回路171、プーリング回路181、結合回路191が配置されている。ただし、特徴抽出装置は、必ずしも一つの基板に対して一つの回路だけが設けられなくてもよい。すなわち、一つの基板に複数の回路が配置されていたり、一つの回路が複数の基板に亘って配置されてもよい。
【0064】
また、特徴抽出装置における複数基板の積層順は、貫通電極を用いて配置可能であれば、上記の例に限らない。さらに、畳み込み演算結果加算基板160は、複数の値を加算し、保持できる構成であれば、上記の例に限らない。
【0065】
また、本実施の形態で説明した特徴抽出装置は、多層ニューラルネットワークのなかでも、畳み込み処理を行う畳み込みニューラルネットワークを用いた特徴抽出を、積層構造の単体のセンサで実現している。なお、複数回行う畳み込み処理のフィルタ係数に同一の値を用いることで、再帰型畳み込みニューラルネットワークを実現することも可能である。なお、本実施の形態における特徴抽出装置で実現できる特徴抽出であれば、これらの手法に限定されることはない。
【0066】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0067】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。