(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186333
(43)【公開日】2022-12-15
(54)【発明の名称】撮像装置、撮像方法および撮像プログラム
(51)【国際特許分類】
H04N 5/341 20110101AFI20221208BHJP
H04N 5/369 20110101ALI20221208BHJP
G06T 7/00 20170101ALI20221208BHJP
G06T 1/40 20060101ALI20221208BHJP
【FI】
H04N5/341
H04N5/369
G06T7/00 350C
G06T1/40
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021094494
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】西谷 泰昭
【テーマコード(参考)】
5B057
5C024
5L096
【Fターム(参考)】
5B057BA02
5B057BA21
5B057CA12
5B057CB12
5B057CH09
5B057DB02
5B057DC36
5C024CY25
5C024GY31
5C024HX28
5C024HX29
5C024HX30
5C024JX11
5L096CA08
5L096HA11
5L096JA11
(57)【要約】
【課題】画像認識機能実現に伴う処理時間やメモリ領域を抑制可能な撮像装置、撮像方法および撮像プログラムを提供する。
【解決手段】本開示に係る撮像装置は、複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサと、前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサと、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部と、
を備える撮像装置。
【請求項2】
前記所定のライン単位は、前記コンボリューション処理に用いられるフィルタの行数分に対応するライン単位であり、
前記フィルタの行数分に対応するラインの画素を、前記コンボリューション処理の実行単位のデータとして記憶するラインメモリを更に備え、
前記第1処理部は、前記コンボリューション処理の実行単位のデータが前記ラインメモリに記憶される度に、前記コンボリューション処理を実行する、
請求項1に記載の撮像装置。
【請求項3】
前記ラインメモリは、前記フィルタの行数分に対応するラインの画素を、前記画素領域の読み出し開始位置から順番に記憶し、前記第1処理部によって処理済みの前記画素領域のラインの画素は、前記画素領域から新たに読み出されたラインの画素で更新することによって、前記コンボリューション処理の実行単位のデータを記憶する、
請求項2に記載の撮像装置。
【請求項4】
前記所定のライン単位は、前記画素領域の1ライン単位である、
請求項1に記載の撮像装置。
【請求項5】
前記センサは、前記画像をローリングシャッタ方式で撮像する、
請求項1に記載の撮像装置。
【請求項6】
前記センサは、前記画像をグローバルシャッタ方式で撮像する、
請求項1に記載の撮像装置。
【請求項7】
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するステップと、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行するステップと、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力するステップと、
を含む撮像方法。
【請求項8】
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサを備えるコンピュータを、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部、
として機能させるための撮像プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、撮像装置、撮像方法および撮像プログラムに関する。
【背景技術】
【0002】
近年、デジタルスチルカメラ、デジタルビデオカメラ、多機能型携帯電話機(スマートフォン)などに搭載される小型カメラなどの撮像装置の高性能化に伴い、撮像画像に含まれる所定のオブジェクトを認識する画像認識機能を搭載する撮像装置が開発されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来では、画像認識機能を実行するために、処理時間の増大やメモリ領域の圧迫が発生してしまうという課題が存在した。
【0005】
本開示は、画像認識機能実現に伴う処理時間やメモリ領域を抑制可能な撮像装置、撮像方法および撮像プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示に係る撮像装置は、複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサと、前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部と、を備える。
【図面の簡単な説明】
【0007】
【
図1】本開示の第1の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
【
図2A】第1の実施形態に係る撮像装置を2層構造の積層型CISにより形成した例を示す図である。
【
図2B】第1の実施形態に係る撮像装置を3層構造の積層型CISにより形成した例を示す図である。
【
図3】第1の実施形態に適用可能なセンサ11の一例の構成を示すブロック図である。
【
図4A】ローリングシャッタ方式を説明するための模式図である。
【
図4B】ローリングシャッタ方式を説明するための模式図である。
【
図4C】ローリングシャッタ方式を説明するための模式図である。
【
図5A】ローリングシャッタ方式におけるライン間引きを説明するための模式図である。
【
図5B】ローリングシャッタ方式におけるライン間引きを説明するための模式図である。
【
図5C】ローリングシャッタ方式におけるライン間引きを説明するための模式図である。
【
図6A】ローリングシャッタ方式における他の撮像方法の例を模式的に示す図である。
【
図6B】ローリングシャッタ方式における他の撮像方法の例を模式的に示す図である。
【
図7A】グローバルシャッタ方式を説明するための模式図である。
【
図7B】グローバルシャッタ方式を説明するための模式図である。
【
図7C】グローバルシャッタ方式を説明するための模式図である。
【
図8A】グローバルシャッタ方式において実現可能なサンプリングのパターンの例を模式的に示す図である。
【
図8B】グローバルシャッタ方式において実現可能なサンプリングのパターンの例を模式的に示す図である。
【
図9】CNNによる画像認識処理を概略的に説明するための図である。
【
図10】認識対象の画像の一部から認識結果を得る画像認識処理を概略的に説明するための図である。
【
図11A】フレームの駆動速度と画素信号の読み出し量との関係について説明するための図である。
【
図11B】フレームの駆動速度と画素信号の読み出し量との関係について説明するための図である。
【
図12】従来の画像認識機能の処理時間の例を示す図である。
【
図13】従来の画像認識機能に必要なメモリ領域の例を示す図である。
【
図14】第1の実施形態の画像認識機能の処理時間の例を示す図である。
【
図15】第1の実施形態の画像認識機能に必要なメモリ領域の例を示す図である。
【
図16A】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16B】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16C】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16D】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16E】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16F】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16G】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16H】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16I】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16J】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16K】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図16L】第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
【
図17】第1の実施形態の処理の分解例(コンボリューション単位の場合)を示す図である。
【
図18】第1の実施形態の処理の例1を示す図である。
【
図19】第1の実施形態の処理の例2を示す図である。
【
図20】第1の実施形態の処理の例3を示す図である。
【
図21】第2の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
【
図22】第2の実施形態の処理の分解例(1ライン単位の場合)を示す図である。
【
図23】第2の実施形態の処理の例1を示す図である。
【
図24】第2の実施形態の処理の例2を示す図である。
【
図25】第2の実施形態の処理の例3を示す図である。
【
図26】第1及び第2の実施形態の効果の例1について説明するための図である。
【
図27】第1及び第2の実施形態の効果の例2について説明するための図である。
【発明を実施するための形態】
【0008】
以下、本開示の実施形態について、図面に基づいて詳細に説明する。なお、以下の実施形態において、同一の部位には同一の符号を付することにより、重複する説明を省略する。
【0009】
以下、本開示の実施形態について、下記の順序に従って説明する。
1.本開示の第1の実施形態に係る構成例
2.本開示に適用可能な技術の例
2-1.ローリングシャッタの概要
2-2.グローバルシャッタの概要
2-3.DNN(Deep Neural Network)について
2-3-1.CNN(Convolutional Neural Network)の概要
2-4.駆動速度について
3.本開示の概要
3-1.第1の実施形態
3-2.第2の実施形態
3-3.第1及び第2の実施形態の効果の例
【0010】
[1.本開示の第1の実施形態に係る構成例]
本開示に係る撮像装置の構成について、概略的に説明する。
図1は、本開示の第1の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
図1において、撮像装置1は、センサ11と、センサ制御部12と、データ処理部13と、ラインメモリ14と、AI(Artificial Intelligence)処理部15と、パラメータメモリ16と、を含み、これら各部がCMOS(Complementary Metal Oxide Semiconductor)を用いて一体的に形成されたCMOSイメージセンサ(CIS)である。なお、撮像装置1は、この例に限らず、赤外光による撮像を行う赤外光センサなど、他の種類の光センサであってもよい。
【0011】
センサ11は、受光面に照射された光に応じた画素信号を出力する。より具体的には、センサ11は、少なくとも1つの光電変換素子を含む画素が行列状に配列される画素アレイを有する。画素アレイに行列状に配列される各画素により受光面が形成される。センサ11は、さらに、画素アレイに含まれる各画素を駆動するための駆動回路と、各画素から読み出された信号に対して所定の信号処理を施して各画素の画素信号として出力する信号処理回路と、を含む。センサ11は、画素領域に含まれる各画素の画素信号を、デジタル形式の画像データとして出力する。
【0012】
以下、センサ11が有する画素アレイにおいて、画素信号を生成するために有効な画素が配置される領域を、フレームと呼ぶ。センサ11は、複数の画素が配列された画素領域によって、1フレーム分の画像を撮像する。具体的には、フレームに含まれる各画素から出力された各画素信号に基づく画素データにより、フレーム画像データが形成される。また、センサ11の画素の配列における各行をそれぞれラインと呼び、ラインに含まれる各画素から出力された画素信号に基づく画素データにより、ライン画像データが形成される。さらに、センサ11が受光面に照射された光に応じた画素信号を出力する動作を、撮像と呼ぶ。センサ11による撮像の際の露出や、画素信号に対するゲイン(アナログゲイン)は、センサ制御部12から供給される撮像制御信号により制御される。
【0013】
センサ制御部12は、例えばマイクロプロセッサにより構成され、センサ11からの画素データの読み出しを制御し、フレームに含まれる各画素から読み出された各画素信号に基づく画素データを出力する。センサ制御部12から出力された画素データは、データ処理部13およびラインメモリ14に渡される。
【0014】
また、センサ制御部12は、センサ11における撮像を制御するための撮像制御信号を生成する。センサ制御部12は、撮像制御信号を生成する。撮像制御信号は、上述した、センサ11における撮像の際の露出やアナログゲインを示す情報を含む。撮像制御信号は、さらに、センサ11が撮像動作を行うために用いる制御信号(垂直同期信号、水平同期信号、など)を含む。センサ制御部12は、生成した撮像制御信号をセンサ11に供給する。
【0015】
データ処理部13は、センサ制御部12により読み出された画素データを受け付けると、当該画素データにデータ処理を実行し、画像を出力する。例えば、データ処理部13は、AI処理部15の第2処理部153から、検出枠情報を受け付けると、検出枠情報によってROI(Region of Interest)が特定された画像を出力する。
【0016】
ラインメモリ14は、AI処理部15の第1処理部152に入力されるデータを、所定のライン単位で保持する。所定のライン単位は、例えばコンボリューション処理に用いられるフィルタ(カーネル)の行数分に対応するライン単位である。具体的には、例えば3x3サイズのフィルタによるコンボリューション処理の場合、ラインメモリ14は、画素領域から読み出された3ライン分の画素を、コンボリューション処理の実行単位のデータとして保持する。例えば、ラインメモリ14は、フィルタの行数分に対応するラインの画素を、画素領域の読み出し開始位置から順番に記憶し、第1処理部152によって処理済み(用済み)の画素領域のラインの画素は、画素領域から新たに読み出されたラインの画素で更新することによって、コンボリューション処理の実行単位のデータを記憶(更新)する。
【0017】
AI処理部15は、制御部151、第1処理部152および第2処理部153を備える。
【0018】
制御部151は、第1処理部152の動作を制御する。制御部151は、例えば第1処理部152によるコンボリューション処理および特徴量抽出処理の開始制御などを行う。制御部151は、例えば、コンボリューション処理の実行単位のデータがラインメモリ14に記憶される度に、コンボリューション処理を実行するように、第1処理部152の動作を制御する。
【0019】
第1処理部152は、1フレーム分の画像単位ではなく、センサ11の画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、当該コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する。なお、特徴量抽出処理は任意でよい。特徴量抽出処理は、例えば、マックスプ―リング処理及びアベレージプーリング処理等である。第1の実施形態では、特徴量抽出処理が、マックスプ―リング処理である場合を例にして説明する。
【0020】
第2処理部153は、第1処理部152による特徴量抽出処理の結果に基づいて全結合処理を実行し、当該全結合処理の結果に基づく推論結果(画像認識結果)を出力する。
【0021】
パラメータメモリ16は、AI処理部15で実行される処理に用いられるパラメータを記憶する。
【0022】
撮像装置1における上述の各処理を実行する各処理部は、例えば回路によって実現される。撮像装置1を回路によって実現する場合、例えば、撮像装置1は、1つの基板上に形成することができる。また例えば、撮像装置1を、複数の半導体チップが積層され一体的に形成された積層型CISとしてもよい。
【0023】
一例として、撮像装置1を半導体チップを2層に積層した2層構造により形成することができる。
図2Aは、第1の実施形態に係る撮像装置1を2層構造の積層型CISにより形成した例を示す図である。
図2Aの構造では、第1層の半導体チップに画素部20aを形成し、第2層の半導体チップにメモリ+ロジック部20bを形成している。画素部20aは、少なくともセンサ11における画素アレイを含む。メモリ+ロジック部20bは、例えば、センサ制御部12、データ処理部13、ラインメモリ14、AI処理部15およびパラメータメモリ16と、撮像装置1と外部との通信を行うためのインタフェースと、を含む。メモリ+ロジック部20bは、さらに、センサ11における画素アレイを駆動する駆動回路の一部または全部を含む。
【0024】
図2Aの右側に示されるように、第1層の半導体チップと、第2層の半導体チップとを電気的に接触させつつ貼り合わせることで、撮像装置1を1つの固体撮像素子(イメージセンサ)2aとして構成する。
【0025】
別の例として、撮像装置1を、半導体チップを3層に積層した3層構造により形成することができる。
図2Bは、第1の実施形態に係る撮像装置1を3層構造の積層型CISにより形成した例を示す図である。
図2Bの構造では、第1層の半導体チップに画素部20aを形成し、第2層の半導体チップにメモリ部20cを形成し、第3層の半導体チップにロジック部20b’を形成している。この場合、ロジック部20b’は、例えば、データ処理部13、ラインメモリ14、AI処理部15およびパラメータメモリ16と、撮像装置1と外部との通信を行うためのインタフェースと、を含む。
【0026】
図2Bの右側に示されるように、第1層の半導体チップと、第2層の半導体チップと、第3層の半導体チップとを電気的に接触させつつ貼り合わせることで、撮像装置1を1つの固体撮像素子2bとして構成する。
【0027】
なお、
図1に示す撮像装置1の各処理部の一部をソフトウェア(プログラム)により実現してもよい。例えば、AI処理部15を、CPU(Central Processing Unit)等のプロセッサによって、プログラムを実行させることによって実現させてもよい。
【0028】
実施形態の撮像装置1で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0029】
また実施形態の撮像装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また実施形態の撮像装置1で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0030】
また実施形態の撮像装置1のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0031】
また複数のプロセッサを用いて各処理部を実現する場合、各プロセッサは、1つの処理部を実現してもよいし、複数の処理部を実現してもよい。
【0032】
図3は、第1の実施形態に適用可能なセンサ11の一例の構成を示すブロック図である。
図3において、センサ11は、画素アレイ部101と、垂直走査部102と、AD(Analog to Digital)変換部103と、画素信号線106と、垂直信号線VSLと、制御部1100と、信号処理部1101と、を含む。なお、
図3において、制御部1100および信号処理部1101は、例えば
図1に示したセンサ制御部12に含まれるものとすることもできる。
【0033】
画素アレイ部101は、それぞれ受光した光に対して光電変換を行う、例えばフォトダイオードによる光電変換素子と、光電変換素子から電荷の読み出しを行う回路と、を含む複数の画素回路100を含む。画素アレイ部101において、複数の画素回路100は、水平方向(行方向)および垂直方向(列方向)に行列状の配列で配置される。画素アレイ部101において、画素回路100の行方向の並びをラインと呼ぶ。例えば、1920画素×1080ラインで1フレームの画像が形成される場合、センサ11は、少なくとも1920個の画素回路100が含まれるラインを、少なくとも1080ライン、含む。フレームに含まれる画素回路100から読み出された画素信号により、1フレームの画像(画像データ)が形成される。
【0034】
以下、センサ11においてフレームに含まれる各画素回路100から画素信号を読み出す動作を、適宜、フレームから画素を読み出す、などのように記述する。また、フレームに含まれるラインが有する各画素回路100から画素信号を読み出す動作を、適宜、ラインを読み出す、などのように記述する。
【0035】
また、画素アレイ部101には、各画素回路100の行および列に対し、行毎に画素信号線106が接続され、列毎に垂直信号線VSLが接続される。画素信号線106のセンサ11と接続されない端部は、垂直走査部102に接続される。垂直走査部102は、後述する制御部1100の制御に従い、画素から画素信号を読み出す際の駆動パルスなどの制御信号を、画素信号線106を介して画素アレイ部101へ伝送する。垂直信号線VSLの画素アレイ部101と接続されない端部は、AD変換部103に接続される。画素から読み出された画素信号は、垂直信号線VSLを介してAD変換部103に伝送される。
【0036】
画素回路100からの画素信号の読み出し制御について、概略的に説明する。画素回路100からの画素信号の読み出しは、露出により光電変換素子に蓄積された電荷を浮遊拡散層(FD;Floating Diffusion)に転送し、浮遊拡散層において転送された電荷を電圧に変換することで行う。浮遊拡散層において電荷が変換された電圧は、アンプを介して垂直信号線VSLに出力される。
【0037】
より具体的には、画素回路100において、露出中は、光電変換素子と浮遊拡散層との間をオフ(開)状態として、光電変換素子において、光電変換により入射された光に応じて生成された電荷を蓄積させる。露出終了後、画素信号線106を介して供給される選択信号に応じて浮遊拡散層と垂直信号線VSLとを接続する。さらに、画素信号線106を介して供給されるリセットパルスに応じて浮遊拡散層を電源電圧VDDまたは黒レベル電圧の供給線と短期間において接続し、浮遊拡散層をリセットする。垂直信号線VSLには、浮遊拡散層のリセットレベルの電圧(電圧Aとする)が出力される。その後、画素信号線106を介して供給される転送パルスにより光電変換素子と浮遊拡散層との間をオン(閉)状態として、光電変換素子に蓄積された電荷を浮遊拡散層に転送する。垂直信号線VSLに対して、浮遊拡散層の電荷量に応じた電圧(電圧Bとする)が出力される。
【0038】
AD変換部103は、垂直信号線VSL毎に設けられたAD変換器107と、参照信号生成部104と、水平走査部105と、を含む。AD変換器107は、画素アレイ部101の各列(カラム)に対してAD変換処理を行うカラムAD変換器である。AD変換器107は、垂直信号線VSLを介して画素回路100から供給された画素信号に対してAD変換処理を施し、ノイズ低減を行う相関二重サンプリング(CDS:Correlated Double Sampling)処理のための2つのディジタル値(電圧Aおよび電圧Bにそれぞれ対応する値)を生成する。
【0039】
AD変換器107は、生成した2つのディジタル値を信号処理部1101に供給する。信号処理部1101は、AD変換器107から供給される2つのディジタル値に基づきCDS処理を行い、ディジタル信号による画素信号(画素データ)を生成する。信号処理部1101により生成された画素データは、センサ11の外部に出力される。
【0040】
参照信号生成部104は、制御部1100から入力される制御信号に基づき、各AD変換器107が画素信号を2つのディジタル値に変換するために用いるランプ信号を参照信号として生成する。ランプ信号は、レベル(電圧値)が時間に対して一定の傾きで低下する信号、または、レベルが階段状に低下する信号である。参照信号生成部104は、生成したランプ信号を、各AD変換器107に供給する。参照信号生成部104は、例えばDAC(Digital to Analog Converter)などを用いて構成される。
【0041】
参照信号生成部104から、所定の傾斜に従い階段状に電圧が降下するランプ信号が供給されると、カウンタによりクロック信号に従いカウントが開始される。コンパレータは、垂直信号線VSLから供給される画素信号の電圧と、ランプ信号の電圧とを比較して、ランプ信号の電圧が画素信号の電圧を跨いだタイミングでカウンタによるカウントを停止させる。AD変換器107は、カウントが停止された時間のカウント値に応じた値を出力することで、アナログ信号による画素信号を、デジタル値に変換する。
【0042】
AD変換器107は、生成した2つのディジタル値を信号処理部1101に供給する。信号処理部1101は、AD変換器107から供給される2つのディジタル値に基づきCDS処理を行い、ディジタル信号による画素信号(画素データ)を生成する。信号処理部1101により生成されたディジタル信号による画素信号は、センサ11の外部に出力される。
【0043】
水平走査部105は、制御部1100の制御の下、各AD変換器107を所定の順番で選択する選択走査を行うことによって、各AD変換器107が一時的に保持している各ディジタル値を信号処理部1101へ順次出力させる。水平走査部105は、例えばシフトレジスタやアドレスデコーダなどを用いて構成される。
【0044】
制御部1100は、センサ制御部12から供給される撮像制御信号に従い、垂直走査部102、AD変換部103、参照信号生成部104および水平走査部105などの駆動制御を行う。制御部1100は、垂直走査部102、AD変換部103、参照信号生成部104および水平走査部105の動作の基準となる各種の駆動信号を生成する。制御部1100は、例えば、撮像制御信号に含まれる垂直同期信号または外部トリガ信号と、水平同期信号とに基づき、垂直走査部102が画素信号線106を介して各画素回路100に供給するための制御信号を生成する。制御部1100は、生成した制御信号を垂直走査部102に供給する。
【0045】
また、制御部1100は、例えば、センサ制御部12から供給される撮像制御信号に含まれる、アナログゲインを示す情報をAD変換部103に渡す。AD変換部103は、このアナログゲインを示す情報に応じて、AD変換部103に含まれる各AD変換器107に垂直信号線VSLを介して入力される画素信号のゲインを制御する。
【0046】
垂直走査部102は、制御部1100から供給される制御信号に基づき、画素アレイ部101の選択された画素行の画素信号線106に駆動パルスを含む各種信号を、ライン毎に各画素回路100に供給し、各画素回路100から、画素信号を垂直信号線VSLに出力させる。垂直走査部102は、例えばシフトレジスタやアドレスデコーダなどを用いて構成される。また、垂直走査部102は、制御部1100から供給される露出を示す情報に応じて、各画素回路100における露出を制御する。
【0047】
このように構成されたセンサ部10は、AD変換器107が列毎に配置されたカラムAD方式のCMOS(Complementary Metal Oxide Semiconductor)イメージセンサである。
【0048】
[2.本開示に適用可能な技術の例]
本開示に係る第1の実施形態の説明に先んじて、理解を容易とするために、本開示に適用可能な技術について、概略的に説明する。
【0049】
(2-1.ローリングシャッタの概要)
画素アレイ部101による撮像を行う際の撮像方式として、ローリングシャッタ(RS)方式と、グローバルシャッタ(GS)方式とが知られている。まず、ローリングシャッタ方式について、概略的に説明する。
図4A、
図4Bおよび
図4Cは、ローリングシャッタ方式を説明するための模式図である。ローリングシャッタ方式では、
図4Aに示されるように、フレーム200の例えば上端のライン201からライン単位で順に撮像を行う。
【0050】
なお、上述では、「撮像」を、センサ11が受光面に照射された光に応じた画素信号を出力する動作を指す、と説明した。より詳細には、「撮像」は、画素において露出を行い、画素に含まれる光電変換素子に露出により蓄積された電荷に基づく画素信号を、データ処理部13及びラインメモリ14に転送するまでの一連の動作を指すものとする。また、1フレーム分の画像は、画素アレイ部101において、画素信号を生成するために有効な画素領域によって撮像される。
【0051】
例えば、
図3の構成において、1つのラインに含まれる各画素回路100において露出を同時に実行する。露出の終了後、露出により蓄積された電荷に基づく画素信号を、当該ラインに含まれる各画素回路100において一斉に、各画素回路100に対応する各垂直信号線VSLを介してそれぞれ転送する。この動作をライン単位で順次に実行することで、ローリングシャッタによる撮像を実現することができる。
【0052】
図4Bは、ローリングシャッタ方式における撮像と時間との関係の例を模式的に示している。
図4Bにおいて、縦軸はライン位置、横軸は時間を示す。ローリングシャッタ方式では、各ラインにおける露出がライン順次で行われるため、
図4Bに示すように、各ラインにおける露出のタイミングがラインの位置に従い順にずれることになる。したがって、例えば撮像装置1と被写体との水平方向の位置関係が高速に変化する場合、
図4Cに例示されるように、撮像されたフレーム200の画像に歪みが生じる。
図4Cの例では、フレーム200に対応する画像202が、撮像装置1と被写体との水平方向の位置関係の変化の速度および変化の方向に応じた角度で傾いた画像となっている。
【0053】
ローリングシャッタ方式において、ラインを間引きして撮像することも可能である。
図5A、
図5Bおよび
図5Cは、ローリングシャッタ方式におけるライン間引きを説明するための模式図である。
図5Aに示されるように、上述した
図4Aの例と同様に、フレーム200の上端のライン201からフレーム200の下端に向けてライン単位で撮像を行う。このとき、所定数毎にラインを読み飛ばしながら撮像を行う。
【0054】
ここでは、説明のため、1ライン間引きにより1ラインおきに撮像を行うものとする。すなわち、第nラインの撮像の次は第(n+2)ラインの撮像を行う。このとき、第nラインの撮像から第(n+2)ラインの撮像までの時間が、間引きを行わない場合の、第nラインの撮像から第(n+1)ラインの撮像までの時間と等しいものとする。
【0055】
図5Bは、ローリングシャッタ方式において1ライン間引きを行った場合の撮像と時間との関係の例を模式的に示している。
図5Bにおいて、縦軸はライン位置、横軸は時間を示す。
図5Bにおいて、露出Aは、間引きを行わない
図4Bの露出と対応し、露出Bは、1ライン間引きを行った場合の露出を示している。露出Bに示すように、ライン間引きを行うことにより、ライン間引きを行わない場合に比べ、同じライン位置での露出のタイミングのズレを短縮することができる。したがって、
図5Cに画像203として例示されるように、撮像されたフレーム200の画像に生ずる傾き方向の歪が、
図4Cに示したライン間引きを行わない場合に比べ小さくなる。一方で、ライン間引きを行う場合には、ライン間引きを行わない場合に比べ、画像の解像度が低くなる。
【0056】
上述では、ローリングシャッタ方式においてフレーム200の上端から下端に向けてライン順次に撮像を行う例について説明したが、これはこの例に限定されない。
図6Aおよび
図6Bは、ローリングシャッタ方式における他の撮像方法の例を模式的に示す図である。例えば、
図6Aに示されるように、ローリングシャッタ方式において、フレーム200の下端から上端に向けてライン順次の撮像を行うことができる。この場合は、フレーム200の上端から下端に向けてライン順次に撮像した場合に比べ、画像202の歪の水平方向の向きが逆となる。
【0057】
また、例えば画素信号を転送する垂直信号線VSLの範囲を設定することで、ラインの一部を選択的に読み出すことも可能である。さらに、撮像を行うラインと、画素信号を転送する垂直信号線VSLと、をそれぞれ設定することで、撮像を開始および終了するラインを、フレーム200の上端および下端以外とすることも可能である。
図6Bは、幅および高さがフレーム200の幅および高さにそれぞれ満たない矩形の領域205を撮像の範囲とした例を模式的に示している。
図6Bの例では、領域205の上端のライン204からライン順次で領域205の下端に向けて撮像を行っている。
【0058】
(2-2.グローバルシャッタの概要)
次に、センサ11による撮像を行う際の撮像方式として、グローバルシャッタ(GS)方式について、概略的に説明する。
図7A、
図7Bおよび
図7Cは、グローバルシャッタ方式を説明するための模式図である。グローバルシャッタ方式では、
図7Aに示されるように、フレーム200に含まれる全画素回路100で同時に露出を行う。
【0059】
図3の構成においてグローバルシャッタ方式を実現する場合、一例として、各画素回路100において光電変換素子とFDとの間にキャパシタをさらに設けた構成とすることが考えられる。そして、光電変換素子と当該キャパシタとの間に第1のスイッチを、当該キャパシタと浮遊拡散層との間に第2のスイッチをそれぞれ設け、これら第1および第2のスイッチそれぞれの開閉を、画素信号線106を介して供給されるパルスにより制御する構成とする。
【0060】
このような構成において、露出期間中は、フレーム200に含まれる全画素回路100において、第1および第2のスイッチをそれぞれ開、露出終了で第1のスイッチを開から閉として光電変換素子からキャパシタに電荷を転送する。以降、キャパシタを光電変換素子と見做して、ローリングシャッタ方式において説明した読み出し動作と同様のシーケンスにて、キャパシタから電荷を読み出す。これにより、フレーム200に含まれる全画素回路100において同時の露出が可能となる。
【0061】
図7Bは、グローバルシャッタ方式における撮像と時間との関係の例を模式的に示している。
図7Bにおいて、縦軸はライン位置、横軸は時間を示す。グローバルシャッタ方式では、フレーム200に含まれる全画素回路100において同時に露出が行われるため、
図7Bに示すように、各ラインにおける露出のタイミングを同一にできる。したがって、例えば撮像装置1と被写体との水平方向の位置関係が高速に変化する場合であっても、
図7Cに例示されるように、撮像されたフレーム200の画像206には、当該変化に応じた歪が生じない。
【0062】
グローバルシャッタ方式では、フレーム200に含まれる全画素回路100における露出タイミングの同時性を確保できる。そのため、各ラインの画素信号線106により供給する各パルスのタイミングと、各垂直信号線VSLによる転送のタイミングとを制御することで、様々なパターンでのサンプリング(画素信号の読み出し)を実現できる。
【0063】
図8Aおよび
図8Bは、グローバルシャッタ方式において実現可能なサンプリングのパターンの例を模式的に示す図である。
図8Aは、フレーム200に含まれる、行列状に配列された各画素回路100から、画素信号を読み出すサンプル208を市松模様状に抽出する例である。また、
図8Bは、当該各画素回路100から、画素信号を読み出すサンプル208を格子状に抽出する例である。また、グローバルシャッタ方式においても、上述したローリングシャッタ方式と同様に、ライン順次で撮像を行うことができる。
【0064】
(2-3.DNNについて)
次に、第1の実施形態に適用可能なDNN(Deep Neural Network)を用いた認識処理について、概略的に説明する。第1の実施形態では、DNNのうち、CNN(Convolutional Neural Network)を用いて画像データに対する認識処理を行う。以下、「画像データに対する認識処理」を、適宜、「画像認識処理」などと呼ぶ。
【0065】
(2-3-1.CNNの概要)
先ず、CNNについて、概略的に説明する。CNNによる画像認識処理は、一般的には、例えば行列状に配列された画素による画像情報に基づき画像認識処理を行う。
図9は、CNNによる画像認識処理を概略的に説明するための図である。認識対象のオブジェクトである数字の「8」を描画した画像50の全体の画素情報51に対して、所定に学習されたCNN52による処理を施す。これにより、認識結果53として数字の「8」が認識される。
【0066】
これに対して、ライン毎の画像に基づきCNNによる処理を施し、認識対象の画像の一部から認識結果を得ることも可能である。
図10は、この認識対象の画像の一部から認識結果を得る画像認識処理を概略的に説明するための図である。
図10において、画像50’は、認識対象のオブジェクトである数字の「8」を、ライン単位で部分的に取得したものである。この画像50’の画素情報51’を形成する例えばライン毎の画素情報54a、54bおよび54cに対して順次、所定に学習されたCNN52’による処理を施す。
【0067】
例えば、第1ライン目の画素情報54aに対するCNN52’による認識処理で得られた認識結果53aは、有効な認識結果ではなかったものとする。ここで、有効な認識結果とは、例えば、認識された結果に対する信頼度を示すスコアが所定以上の認識結果を指す。CNN52’は、この認識結果53aに基づき内部状態の更新55を行う。次に、第2ライン目の画素情報54bに対して、前回の認識結果53aにより内部状態の更新55が行われたCNN52’により認識処理が行われる。
図10では、その結果、認識対象の数字が「8」または「9」の何れかであることを示す認識結果53bが得られている。さらに、この認識結果53bに基づき、CNN52’の内部情報の更新55を行う。次に、第3ライン目の画素情報54cに対して、前回の認識結果53bにより内部状態の更新55が行われたCNN52’により認識処理が行われる。
図10では、その結果、認識対象の数字が、「8」または「9」のうち「8」に絞り込まれる。
【0068】
ここで、この
図10に示した認識処理は、前回の認識処理の結果を用いてCNNの内部状態を更新し、この内部状態が更新されたCNNにより、前回の認識処理を行ったラインに隣接するラインの画素情報を用いて認識処理を行っている。すなわち、この
図10に示した認識処理は、画像に対してライン順次に、CNNの内部状態を前回の認識結果に基づき更新しながら実行されている。したがって、
図10に示す認識処理は、ライン順次に再帰的に実行される処理であり、RNN(Recurrent Neural Network)に相当する構造を有していると考えることができる。
【0069】
(2-4.駆動速度について)
次に、フレームの駆動速度と、画素信号の読み出し量との関係について、
図11Aおよび
図11Bを用いて説明する。
図11Aは、画像内の全ラインを読み出す例を示す図である。ここで、認識処理の対象となる画像の解像度が、水平640画素×垂直480画素(480ライン)であるものとする。この場合、14400[ライン/秒]の駆動速度で駆動することで、30[fps(frame per second)]での出力が可能となる。
【0070】
次に、ラインを間引いて撮像を行うことを考える。例えば、
図11Bに示すように、1ラインずつ読み飛ばして撮像を行う、1/2間引き読み出しにて撮像を行うものとする。1/2間引きの第1の例として、上述と同様に14400[ライン/秒]の駆動速度で駆動する場合、画像から読み出すライン数が1/2になるため、解像度は低下するが、間引きを行わない場合の倍の速度の60[fps]での出力が可能となり、フレームレートを向上できる。1/2間引きの第2の例として、駆動速度を第1の例の半分の7200[fps]として駆動する場合、フレームレートは間引かない場合と同様に30[fps]となるが、省電力化が可能となる。
【0071】
画像のラインを読み出す際に、間引きを行わないか、間引きを行い駆動速度を上げるか、間引きを行い駆動速度を間引きを行わない場合と同一とするか、は、例えば、読み出した画素信号に基づく認識処理の目的などに応じて選択することができる。
【0072】
[3.本開示の概要]
以下、本開示の第1の実施形態について、より詳細に説明する。先ず、本開示の第1の実施形態に係る処理について、従来と比較しながら概略的に説明する。
【0073】
(3-1.第1の実施形態)
図12は、従来の画像認識機能の処理時間の例を示す図である。
図13は、従来の画像認識機能に必要なメモリ領域の例を示す図である。
図13に示すように、従来のCNNは、ネットワークに1枚のフレーム画像を入力していた。イメージセンサは1~数ライン単位でデータを読み出す。そのため、
図12に示すように、フレーム画像が得られるまでフレームバッファに貯えて待つ必要があった。従来は、フレームバッファが必要になることで、イメージセンサの限られた領域を圧迫する問題が発生していた。また、1フレーム分のデータが貯まるまで処理が開始できないことで、レイテンシが大きくなる問題が発生していた。
【0074】
すなわち、従来は、各層の入力データであるフレームデータが確定してから処理を開始し、当該処理終の確定した値を次の層へ送ることを繰り返す構成になっていた。
【0075】
図14は、第1の実施形態の画像認識機能の処理時間の例を示す図である。
図15は、第1の実施形態の画像認識機能に必要なメモリ領域の例を示す図である。第1の実施形態では、各層で処理が完結してから次の層の処理に進んでいた従来技術と違い、次の層に必要なデータが貯まったタイミングで処理を行い、また前の層に戻って処理する点で従来と大きく異なる。なお、第1の実施形態の処理の詳細は、
図16A~16Lを参照して後述する。
【0076】
実現手段としては、
図13及び15のバッファ300の値さえ変わらなければ、途中の処理をライン単位に分解しても、従来のフレームベースの処理と等価な処理が実現できる。そのため、第1の実施形態では、バッファ300だけをフレームバッファとして残しておき(とはいえ1pixまで圧縮されたピクセルバッファになることが多い)、その前の層のデータを記憶するバッファは必要最小限のラインバッファに置き換える。
【0077】
ライン単位で分解されたデータは逐次処理されて次層に送られ、バッファ300に暫定値として保存される。バッファ300は更新を続け、最終ラインの処理が終わったタイミング(
図14の★)で値が確定する。★タイミングでのバッファ300の値はフレームベースの処理とラインベースの処理とで同じになるため、全結合層の処理結果もフレームベースの処理と一致する。これによって、ライン単位に分解しても、従来のフレームベースの処理と等価な処理が実現できる。
【0078】
図16A~16Lは、第1の実施形態のコンボリューション処理およびマックスプ―リング処理の例を示す図である。
図16A~16Lの例では、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、2x2サイズの領域を対象にするMaxPooling処理であり、3層目が、3x3サイズのフィルタによるコンボリューション処理であり、4層目が、2x2サイズの領域を対象にするMaxPooling処理である。
【0079】
図16Aは、初期状態(データは初期値で空の状態)を示す。
【0080】
図16Bは、第1処理部152による1層1行目用の処理の入力が確定した状態を示す。第1処理部152は、ラインメモリ14から、1層目の処理用のデータを読み出す。
【0081】
図16Cは、第1処理部152による1層1行目用の処理が完了した状態を示す。
【0082】
図16Dは、第1処理部152による2層1行目の処理の暫定状態を示す。第1処理部152は、1層1行目の最大値を暫定値として2層1行目に保持する。
【0083】
図16Eは、第1処理部152による1層2行目の処理の入力が確定した状態を示す。第1処理部152は、3x3サイズのフィルタによる次のコンボリューション処理用に、ラインメモリ14から追加の1行を読み出す。
【0084】
図16Fは、第1処理部152による1層2行目の処理が完了した状態を示す。
【0085】
図16Gは、第1処理部152による2層1行目の処理が完了した状態を示す。第1処理部152は、1層2行目と2層1行目とを比較して最大値を確定させ、2層1行目の処理を完了させる。
【0086】
図16Hは、第1処理部152による2層3行目の処理が完了した状態を示す。第1処理部152は、
図16B~16Gまでの処理と同様の処理を繰り返して、2層3行目までの処理を完了させる。
【0087】
図16Iは、第1処理部152による3層1行目の処理が完了した状態を示す。第1処理部152は、2層3行分のデータが揃うので、3x3サイズのフィルタによる3層目のコンボリューション処理を実行し、3層1行目の処理を完了させる。
【0088】
図16Jは、第1処理部152による4層目の処理の暫定状態を示す。第1処理部152は、3層1行目の最大値を暫定値として4層目に保持する。
【0089】
図16Kは、第1処理部152による3層2行目の処理が完了した状態を示す。第1処理部152は、
図16H及び16Iの処理と同様の処理をして、3層2行目までの処理を完了させる。
【0090】
図16Lは、第1処理部152による4層目の処理が完了した状態を示す。第1処理部152は、3層2行目と4層目とを比較して最大値を確定させ、4層目の処理を完了させる。
【0091】
図16A~16Lのように、ラインベースで処理を実行する方法には、2つの方法がある。コンボリューション処理のフィルタサイズ分のラインメモリ14を確保する方法と、さらに、コンボリューション処理のフィルタサイズ分のラインメモリ14を1ライン単位に分解する方法である。第1の実施形態では、コンボリューション処理のフィルタサイズ分のラインメモリ14を確保する方法について説明する。なお、コンボリューション処理のフィルタサイズ分のラインメモリ14を1ライン単位に分解する方法は、第2の実施形態で説明する。
【0092】
図17は、第1の実施形態の処理の分解例(コンボリューション単位の場合)を示す図である。例えば、3x3サイズのフィルタによるコンボリューションを行う場合、入力は3ライン分のデータがあれば実現できる。第1の実施形態では、ラインメモリ14が、センサデータを3ライン確保する。第1処理部152は、コンボリューション処理を実行した後は、ラインメモリ14をクリアし、ラインメモリ14に次の3ラインが貯まったら、またコンボリューション処理を実行する。ラインメモリ14を使い回すことでメモリの節約ができる。
【0093】
図18は、第1の実施形態の処理の例1を示す図である。
図18の例では、入力データは、4×4サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図18の例では、コンボリューション処理入力用のメモリ(
図1の構成例では、ラインメモリ14)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0094】
図18の例では、例えば、コンボリューション処理の出力o00は、i00*f00+i01*f01+i02*f02+i10*f10+i11*f11+i12*f12+i20*f20+i21*f21+i22*f22により計算される。また例えば、コンボリューション処理の出力o01は、i01*f00+i02*f01+i03*f02+i11*f10+i12*f11+i13*f12+i21*f20+i22*f21+i23*f22により計算される。
【0095】
図19は、第1の実施形態の処理の例2を示す図である。
図19の例では、入力データは、6×6サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図19の例では、コンボリューション処理入力用のメモリ(
図1の構成例では、ラインメモリ14)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0096】
図20は、第1の実施形態の処理の例3を示す図である。
図19の例では、入力データは、6×6サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、3x3サイズのフィルタによるコンボリューション処理であり、3層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図20の例では、1層目のコンボリューション処理入力用のメモリ(
図1の構成例では、ラインメモリ14)が必要になる。また、2層目のコンボリューション処理入力用のメモリ(バッファ)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0097】
図18乃至20に示すように、画像認識機能に必要なメモリ領域を、従来のフレームベースの処理に比べて削減することができる。なお、従来のフレームベースの処理では、1層毎に処理が完結するため、コンボリューション処理及びマックスプ―リング処理の入力用のメモリ(前の層の処理結果出力用のメモリ)を使い回すことも可能だが、ワースト使用量のメモリ領域として、少なくとも1フレーム分のメモリ領域が必要になる。
【0098】
以上、説明したように、第1の実施形態では、センサ11が、複数の画素が配列された画素領域によって、1フレーム分の画像を撮像する。第1処理部152が、1フレーム分の画像単位ではなく、画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する。そして、第2処理部153が、特徴量抽出処理の結果に基づいて全結合処理を実行し、全結合処理の結果に基づく推論結果を出力する。
【0099】
これにより第1の実施形態によれば、画像認識機能実現に伴う処理時間やメモリ領域を抑制することができる。
【0100】
(3-2.第2の実施形態)
次に第2の実施形態について説明する。第2の実施形態の説明では、第1の実施形態と同様の説明については省略し、第1の実施形態と異なる箇所について説明する。第2の実施形態では、コンボリューション処理のフィルタサイズ分のラインメモリ14を1ライン単位(1ライン分の画素単位)に分解する方法について説明する。
【0101】
図21は、第2の実施形態に適用可能な撮像装置の一例の構成を示すブロック図である。
図21において、撮像装置1は、センサ11と、センサ制御部12と、データ処理部13と、AI(Artificial Intelligence)処理部15と、パラメータメモリ16と、を含む。第2の実施形態では、ラインメモリ14を1ライン単位に分解するため、コンボリューション処理のフィルタサイズ分のデータを保持する必要がないので、ラインメモリ14なしで実現できる。
【0102】
図22は、第2の実施形態の処理の分解例(1ライン単位の場合)を示す図である。例えば、3x3サイズのフィルタによるコンボリューションを行う場合、第1の実施形態では、ラインメモリ14が、センサデータを3ライン確保していたが(
図17参照)、第2の実施形態では、
図22に示すように、さらに1ライン単位に分解する。コンボリューション処理を複数回続ける場合は処理が複雑になるが、ネットワーク次第では、第1の実施形態で説明したコンボリューション単位の処理方法(コンボリューション処理のフィルタサイズ分のラインメモリ14を確保する方法)よりも、更なるメモリ削減が可能となる。例えば、コンボリューション処理を複数回続けた後、マックスプ―リング処理を行うネットワークなどでは、更なるメモリ削減が可能となる。
【0103】
図23は、第2の実施形態の処理の例1を示す図である。
図23の例では、入力データは、4×4サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図23の例では、コンボリューション処理入力用のメモリが不要になるが、1ライン単位で実行されたコンボリューション処理を積算する必要があるため、1ライン単位で実行されたコンボリューション処理結果を保持するメモリ(バッファ)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0104】
図23の例では、例えば、1ライン単位に分解されたコンボリューション処理の出力o000、o001、o100、o101、o010およびo011は、下記のように計算される。
o000=i00*f00+i01*f01+i02*f02
o001=i01*f00+i02*f01+i03*f02
o100=i10*f10+i11*f11+i12*f12
o101=i11*f10+i12*f11+i13*f12
o010=i10*f00+i11*f01+i12*f02
o011=i11*f00+i12*f01+i13*f02
【0105】
図24は、第2の実施形態の処理の例2を示す図である。
図24の例では、入力データは、6×6サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図24の例では、コンボリューション処理入力用のメモリが不要になるが、1ライン単位で実行されたコンボリューション処理を積算する必要があるため、1ライン単位で実行されたコンボリューション処理結果を保持するメモリ(バッファ)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0106】
図25は、第2の実施形態の処理の例3を示す図である。
図25の例では、入力データは、6×6サイズであり、1層目が、3x3サイズのフィルタによるコンボリューション処理であり、2層目が、3x3サイズのフィルタによるコンボリューション処理であり、3層目が、2x2サイズの領域を対象にするMaxPooling処理である。
図25の例では、1層目及び2層目のコンボリューション処理入力用のメモリが不要になるが、1ライン単位で実行されたコンボリューション処理を積算する必要があるため、1ライン単位で実行されたコンボリューション処理結果を保持するメモリ(バッファ)が必要になる。また、MaxPooling処理の暫定最大値(pre Max)を保持する必要があるため、プ―リング出力用のメモリ(バッファ)が必要になる。
【0107】
図23乃至25に示すように、第2の実施形態の1ライン単位の処理方法では、画像認識機能に必要なメモリ領域を、第1の実施形態で説明したコンボリューション単位の処理方法に比べて更に削減することができる。
【0108】
(3-3.第1及び第2の実施形態の効果の例)
図26は、第1及び第2の実施形態の効果の例1について説明するための図である。処理チャネル数を上げて、コンボリューション処理とマックスプ―リング処理とを、1ライン分の処理内に収めることができた場合、読み出し終了と共に全結合処理に移ることができる。すなわち、並列化次第では読み出し中にコンボリューション処理とマックスプ―リング処理とを終えて、読み出し直後から全結合処理を開始することが可能になる。これは、従来のフレームベースの処理(
図12及び13参照)では、できないメリットであり、高速な検出・識別が可能になるので、例えば高速動体の検出・識別に好適である。
【0109】
図27は、第1及び第2の実施形態の効果の例2について説明するための図である。コンボリューション処理とマックスプ―リング処理とが、1ライン分の処理内に収まらない場合は、ラインデータをフレーム単位でずらして取得する方法が考えられる。静止物や動きの遅い対象であれば、フレームが変わっても差分は小さいため、この方法でも検出・識別は可能になる。コンボリューション処理とマックスプ―リング処理とを、1ライン分の処理内に収める必要がない場合、処理チャネル数を上げる必要がないため、回路規模を小さくすることができる。
【0110】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0111】
なお、本技術は以下のような構成も取ることができる。
(1)
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサと、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部と、
を備える撮像装置。
(2)
前記所定のライン単位は、前記コンボリューション処理に用いられるフィルタの行数分に対応するライン単位であり、
前記フィルタの行数分に対応するラインの画素を、前記コンボリューション処理の実行単位のデータとして記憶するラインメモリを更に備え、
前記第1処理部は、前記コンボリューション処理の実行単位のデータが前記ラインメモリに記憶される度に、前記コンボリューション処理を実行する、
(1)に記載の撮像装置。
(3)
前記ラインメモリは、前記フィルタの行数分に対応するラインの画素を、前記画素領域の読み出し開始位置から順番に記憶し、前記第1処理部によって処理済みの前記画素領域のラインの画素は、前記画素領域から新たに読み出されたラインの画素で更新することによって、前記コンボリューション処理の実行単位のデータを記憶する、
(2)に記載の撮像装置。
(4)
前記所定のライン単位は、前記画素領域の1ライン単位である、
(1)に記載の撮像装置。
(5)
前記センサは、前記画像をローリングシャッタ方式で撮像する、
(1)に記載の撮像装置。
(6)
前記センサは、前記画像をグローバルシャッタ方式で撮像する、
(1)に記載の撮像装置。
(7)
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するステップと、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行するステップと、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力するステップと、
を含む撮像方法。
(8)
複数の画素が配列された画素領域によって、1フレーム分の画像を撮像するセンサを備えるコンピュータを、
前記1フレーム分の画像単位ではなく、前記画素領域から読み出された所定のライン単位でコンボリューション処理を実行し、前記コンボリューション処理の実行結果に基づいて特徴量抽出処理を実行する第1処理部と、
前記特徴量抽出処理の結果に基づいて全結合処理を実行し、前記全結合処理の結果に基づく推論結果を出力する第2処理部、
として機能させるための撮像プログラム。
【符号の説明】
【0112】
1 撮像装置
2a,2b 固体撮像素子
11 センサ
12 センサ制御部
13 データ処理部
14 ラインメモリ
15 AI処理部
16 パラメータメモリ
20a 画素部
20b メモリ+ロジック部
20b’ ロジック部
20c メモリ部
151 制御部
152 第1処理部
153 第2処理部