JP2020188386A - 固体撮像装置及び電子機器 - Google Patents
固体撮像装置及び電子機器 Download PDFInfo
- Publication number
- JP2020188386A JP2020188386A JP2019092323A JP2019092323A JP2020188386A JP 2020188386 A JP2020188386 A JP 2020188386A JP 2019092323 A JP2019092323 A JP 2019092323A JP 2019092323 A JP2019092323 A JP 2019092323A JP 2020188386 A JP2020188386 A JP 2020188386A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- unit
- signal
- logarithmic
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003384 imaging method Methods 0.000 title abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 180
- 238000013528 artificial neural network Methods 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 58
- 238000006243 chemical reaction Methods 0.000 claims description 33
- 230000008878 coupling Effects 0.000 claims description 11
- 238000010168 coupling process Methods 0.000 claims description 11
- 238000005859 coupling reaction Methods 0.000 claims description 11
- 239000007787 solid Substances 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 22
- 230000006870 function Effects 0.000 description 53
- 238000013500 data storage Methods 0.000 description 39
- 238000001514 detection method Methods 0.000 description 36
- 230000004913 activation Effects 0.000 description 34
- 230000003321 amplification Effects 0.000 description 32
- 238000003199 nucleic acid amplification method Methods 0.000 description 32
- 230000004048 modification Effects 0.000 description 23
- 238000012986 modification Methods 0.000 description 23
- 238000012546 transfer Methods 0.000 description 20
- 239000003990 capacitor Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 229910044991 metal oxide Inorganic materials 0.000 description 3
- 150000004706 metal oxides Chemical class 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 1
- 101100243108 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PDI1 gene Proteins 0.000 description 1
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 1
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/12—Details of acquisition arrangements; Constructional details thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/255—Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/50—Control of the SSIS exposure
- H04N25/57—Control of the dynamic range
- H04N25/571—Control of the dynamic range involving a non-linear response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/703—SSIS architectures incorporating pixels for producing signals other than image signals
- H04N25/707—Pixels for event detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/76—Addressed sensors, e.g. MOS or CMOS sensors
- H04N25/77—Pixel circuitry, e.g. memories, A/D converters, pixel amplifiers, shared circuits or shared components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/166—Detection; Localisation; Normalisation using acquisition arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Transforming Light Signals Into Electric Signals (AREA)
Abstract
【課題】ニューラルネットワークの演算を行うための回路の規模を抑制した固体撮像装置及び電子機器を提供する。【解決手段】本開示の一側面の固体撮像装置は、画素アレイ部と、処理部とを備える。画素アレイ部は、光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する。前記処理部は、前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う。【選択図】図1
Description
本開示は、固体撮像装置及び電子機器に関する。
近年、機械学習の一種としてニューラルネットワークを用いたデータ学習法が広く用いられている。ニューラルネットワークは様々な分野で用いられており、カメラ等の撮像装置で撮像された画像データの画像認識の用途にも用いられている。
ニューラルネットワークを画像認識に用いる場合、入力層のノード(入力ノード)には、画像認識の対象となるデータを与える。入力層の次段の中間層のノード(中間ノード)では、各入力ノードから入力されたデータと、各入力ノードとの結合の強さを表す重み係数とに基づき、演算を行う。すなわち、入力データと重み係数との重み付け合計を計算する。この計算では積和演算が行われるため、演算量が多くなる。また積和演算のために乗算回路を用いると、回路規模が大きくなる問題もある。このことは、当該中間層より後段の各層のノードでも同様である。
Daisuke Miyashita, Edward H. Lee, and Boris Murmann, "Convolutional neural networks using logarithmic data representation," CoRR, vol. abs/1603.01025,2016
D.Kim, "An Enhanced Dynamic-Range CMOS Image Sensor Using a Digital Logarithmic Single-Slope ADC" IEEE Transactions on circuit and systems 2012
Alex Omid-Zohoor"Toward Always-On Mobile Object Detection:Energy Versus Performance Tradeoffs for Embedded HOG Feature Extraction" IEEE Transactions on circuit and systems for video technology 2018
そこで、入力ノードに与えるデータ、及び各ノード間の重み係数を、底を2とする対数に変換(log2変換)する手法がある(非特許文献1参照)。この手法によれば、各ノードでの演算を対数領域の加算で行うことができるため、各ノードでの乗算演算を不要にできる。すなわち、乗算回路が不要となる。しかしながら、入力ノードに与えるデータをlog2変換するための回路が新たに必要になる。これは回路規模の増大又は消費電力の増加につながる。
本開示は、ニューラルネットワークの演算を行うための回路の規模を抑制した固体撮像装置及び電子機器を提供する。
本開示の一側面の固体撮像装置は、画素アレイ部と、処理部とを備える。画素アレイ部は、光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する。前記処理部は、前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う。
前記第1画素信号は電圧値を表し、前記電圧値は、所定値を底とする電流値の対数に比例する関係にあり、前記処理部は、前記第1画素信号の値に、前記所定値を真数に含む対数を乗じることにより、前記第1入力データを生成してもよい。
前記所定値はネイピア数でもよい。
前記所定値を真数に含む前記対数の底は2でもよい。
前記固体撮像装置は制御部を備え、前記画素アレイ部は、前記複数の第1画素と異なる種類の複数の第2画素を有し、前記制御部は、前記複数の第1画素から前記第1画素信号を読み出す第1読出処理と、前記複数の第2画素から複数の第2画素信号を読み出す第2読出処理とを選択的に実行し、前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う。
前記制御部は、前記第1読出処理及び前記第2読出処理のいずれかを指示する指示データに従って、前記第1読出処理及び前記第2読出処理のいずれかを選択してもよい。
前記第2画素は、光量に対して線形特性の電気信号を前記第2画素信号として生成する画素でもよい。
前記第2画素は、入射されるフォトン数のカウント値を前記第2画素信号として生成する画素でもよい。
前記第2画素は、照射した光の反射光の前記光との位相差を表す電荷量を前記第2画素信号として生成する画素でもよい。
前記固体撮像装置は制御部を備え、前記第1画素は、光電変換部と、前記光電変換部から対数特性の電気信号を前記第1画素信号として読み出す第1読出部と、前記光電変換部から線形特性の電気信号を第2画素信号として読み出す第2読出部とを含み、前記制御部は、前記第1読出部を用いて前記第1画素信号を読み出す第1読出処理と、前記第2読出部を用いて前記第2画素信号を読み出す第2読出処理とを選択的に実行し、前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行ってもよい。
前記処理部は、前記第1ニューラルネットワークの前記演算処理により、複数の前記第1画素信号が表す画像の画像認識を行ってもよい。
本開示の一側面の電子機器は、光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部を含む撮像素子と、前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理回路とを備える。
以下、図面を参照して、本開示の実施形態について説明する。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなす。
図1は、本開示の第1の実施形態に係る固体撮像装置の構成例を示すブロック図である。図1の固体撮像装置は、撮像素子10、信号処理部16、CPU(Central Processing Unit)17、データ記憶部18、演算処理部19及びバス20を備えている。撮像素子10は、複数の画素21を有する画素アレイ部11と、垂直駆動部12と、カラム処理部13と、水平駆動部14と、制御部15とを備えている。CPU17と演算処理部19とにより処理部26が構成される。
図1の固体撮像装置は、例えばCMOS(Complementary Metal Oxide Semiconductor)型の固体撮像装置であり、様々な電子機器に用いることができる。電子機器の例は、スマートフォン、タブレット又は携帯電話などの撮像機能を有する移動体装置、デジタルスチルカメラやビデオカメラ等の撮像機器、監視カメラ又は車載カメラなどを含む。
撮像素子10の構造は、画素アレイ部11と論理回路(垂直駆動部12、カラム処理部13、水平駆動部14及び制御部15)とを同一の支持基板上に配置し、基板の裏面から照射する裏面照射型でもよい。または、撮像素子10の構造は、画素アレイ部11と論理回路とを別々に製造して、積層する積層型でもよい。この場合、積層された各層は、ビアなどの接続部を介して電気的に接続される。ビアの他、Cu−Cu接合やバンプにより接続することもできる。また、撮像素子の構造は、画素アレイ部11、垂直駆動部12、カラム処理部13、水平駆動部14、制御部15、信号処理部16、CPU17、データ記憶部18、演算処理部19及びバス20を備える積層型でもよい。
画素アレイ部11は、2次元状(行列状)に配置された複数の画素21を含む。複数の画素21が配置された領域は、画素領域に対応する。画素21は、フォトダイオード(PD:Photodiode)を含む光電変換部と、複数の画素トランジスタとを含む。フォトダイオードは、入射光を光電変換により電気信号(信号電荷)に変換する素子である。複数の画素トランジスタは、一例としてMOS(Metal Oxide Semiconductor)トランジスタである。
画素21の光電変換部は、光学レンズ(図示せず)を介して光を受光し、入射光の光量に対して対数的に変化する電気信号を画素信号として生成する。生成された電気信号(画素信号)は、画素21の出力電圧を表す電圧信号である。画素21では、フォトダイオードで発生する電圧に対して電流が指数的に流れるため、電圧と電流とが対数関係となって、対数の電圧信号が出力される。このように、入射光の光量に対して対数特性の電圧信号を画素信号として生成する画素21を対数画素と呼ぶ。以下では画素21のことを、対数画素21と呼ぶ場合がある。対数画素21は、第1画素の一例に対応し、対数画素21から読み出される画素信号は、第1画素から読み出される第1画素信号に対応する。対数画素は、光量に対して出力信号が線形に増大する線形特性の画素(線形画素と呼ぶ)に比べてノイズが多いものの、ダイナミックレンジが広いという特性を有している。
図2に、対数画素への入射光の光量と、出力電圧との関係を模式的に表したグラフを示す。入射光の光量が増大するに応じて、出力電圧が、対数的に増加している。
対数画素の電流をi、電圧をvとすると、iとvの関係は、一例として、以下の自然対数の式で近似できる。Aは予め決められた係数である。対数をlogabと表したとき、aを底、bを真数と呼ぶ。式(1)の右辺に、定数項が含まれてもよい。ここでは自然対数で近似しているが、ネイピア数(e)以外の所定値を底とする対数で近似してもよい。
図3は、対数画素21の回路構成の一例を示す。ここでは例示として、1つの対数画素21の構成を示すが、他の対数画素21も同様の構成を有する。
対数画素21は、光電変換部に対応するフォトダイオード31と、複数の画素トランジスタとを含む。複数の画素トランジスタは、出力トランジスタ32、増幅トランジスタ33、バイアストランジスタ34、増幅トランジスタ35、及び選択トランジスタ36である。出力トランジスタ32、増幅トランジスタ33、増幅トランジスタ35及び選択トランジスタ36は、一例としてN型トランジスタにより構成される。バイアストランジスタ34は、一例としてP型トランジスタにより構成される。但し、これらの画素トランジスタの導電型が、ここで例示したものと反対であってもよい。この場合、これらの画素トランジスタの制御信号の論理及び電源線の電圧を変更する必要がある。
出力トランジスタ32のドレイン端子は電源電圧に接続され、ソース端子はフォトダイオード31のカソード端子に接続されている。フォトダイオード31のアノード端子は基準電圧に接続されている。基準電圧は、例えばグランド電圧である。またフォトダイオード31のカソード端子は、増幅トランジスタ33のゲート端子に接続されている。フォトダイオード31と増幅トランジスタ33の接続ノードN1は、出力トランジスタ32のソース端子に接続されている。
バイアストランジスタ34と増幅トランジスタ33は、電源電圧と基準電圧との間において、直列に接続されている。また、バイアストランジスタ34と増幅トランジスタ33の接続ノードN2は、出力トランジスタ32のゲート端子と、増幅トランジスタ35のゲート端子とに接続されている。出力トランジスタ32と増幅トランジスタ33は、接続ノードN2及び接続ノードN1を介して、ループ状に接続されている。
バイアストランジスタ34のゲート端子にはバイアス電圧Vbias1が印加されている。
増幅トランジスタ35のドレイン端子は電源電圧に接続されており、ソース端子は選択トランジスタ36のドレイン端子に接続されている。選択トランジスタ36のソース端子は垂直信号線23に接続されている。選択トランジスタ36のゲート端子は画素駆動線22に接続されており、選択トランジスタ36は、垂直駆動部12が供給する選択信号SELにより制御される。
フォトダイオード31は、入射光の光量に対して線形に変化する電流iを出力する。この電流iに応じた電圧が増幅トランジスタ33のゲート端子に印加される。出力トランジスタ32及び増幅トランジスタ33はそれぞれソースフォロワとしてサブスレッショルド領域で動作する。ループ状に接続された出力トランジスタ32及び増幅トランジスタ33により、接続ノードN1の電圧が、増幅トランジスタ33を介して、出力トランジスタ32のゲート端子にフィードバックされる。これにより、電流iの対数の電圧信号が接続ノードN2に生成され、生成された電圧信号がバッファ回路40を介して増幅トランジスタ35に与えられる。この電圧信号が増幅トランジスタ35により増幅される。増幅された電圧信号は、選択トランジスタ36を介して、垂直信号線23に出力される。このように、入射光の光量に対して対数的に変化する電圧信号が、画素信号として出力される。
図3に示した対数画素の構成は一例であり、対数画素の構成は図3の構成に限定されない。光電流の対数に応じて変化する電圧信号を検出可能である限り、どのような構成でもかまわない。また、図3の構成に特定の機能を有する回路を追加してもよい。例えば輝度変化を検出するセンサ回路を、接続ノードN2に、増幅トランジスタ35と並列に接続してもよい。
図1の垂直駆動部12は、画素アレイ部11の画素駆動線22を垂直方向に順次選択し、選択された画素駆動線22に共通に接続されている複数の画素21を駆動するためのパルス(駆動信号)を供給する。例えば、垂直駆動部12は、画素アレイ部11の画素21を行単位で順次垂直方向に選択し、選択した行の画素駆動線22に選択信号SELや後述するリセット信号RSTなどの駆動信号を供給する。これにより、各画素21において生成された画素信号が、垂直信号線23を介して、カラム処理部13に供給される。垂直駆動部12は、例えばシフトレジスタなどの回路により構成される。
カラム処理部13は、1行分の画素21から出力される信号の信号処理を、画素列ごとに行う。カラム処理部13は、各画素列に対応する単位回路を備える。各画素列に対応する単位回路が、1行分の画素21のうち対応する画素から出力される信号を受け取り、信号の信号処理を行う。信号処理の例は、AD(Analog to Digital)変換を含み、さらにAD変換前のノイズ除去及び信号増幅を含んでもよい。
水平駆動部14は、水平走査パルスを順次出力することによって、カラム処理部13における単位回路を順番に選択する。これによりカラム処理部13における単位回路の各々から画素信号が順番に信号処理部16に出力される。水平駆動部14は、例えばシフトレジスタなどの回路により構成される。
制御部15は、固体撮像装置の各部の動作を制御する回路である。例えば制御部15は、垂直同期信号、水平同期信号、及びマスタクロックに基づいて、垂直駆動部12、カラム処理部13、水平駆動部14等の動作の基準となる種々の信号、例えばクロック信号や制御信号を生成する。制御部15は、生成した信号を、垂直駆動部12、カラム処理部13、及び水平駆動部14等に出力する。
信号処理部16は、カラム処理部13から供給される画素信号に対して種々の信号処理を行う。信号処理は、画素信号をバッファリングするだけの場合もある。その他、信号処理の例は、黒レベル調整、列ばらつき補正、又は各種デジタル信号処理を含む。信号処理部16は、一例としてDSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はCPUなどの回路で構成される。信号処理部16は、バス20に接続されている。
CPU17はバス20に接続されており、信号処理部16、データ記憶部18及び演算処理部19を制御する。CPU17は、信号処理部16で処理された画素信号のデータを画素データとして、データ記憶部18に書き込む制御を行う。
データ記憶部18は、信号処理部16で処理された画素データを内部に記憶する。各画素21に対応する画素データがデータ記憶部18に格納されることで、1フレーム分の画像データがデータ記憶部18に格納される。画素データは、所定のビット長のデジタル値であり、ビット長はAD変換の設定分解能に応じて決まる。固体撮像装置で一定の周期で撮像が行われる場合、一定の周期で画像データが取得され、データ記憶部18に格納される。
データ記憶部18は、一例として、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、NAND型フラッシュメモリ又は磁気抵抗メモリなど、任意の揮発性又は不揮発性のメモリデバイスで構成される。あるいは、データ記憶部18は、レジスタやデジタル回路など、メモリデバイス以外の記憶媒体で構成されてもよい。データ記憶部18はバス20に接続されている。
演算処理部19は、CPU17の制御の下、データ記憶部18に格納されている1フレーム分の画像データを入力として、ニューラルネットワークの演算処理を行うことで、画像データの画像認識を行う。すなわち、演算処理部19は、各画素21から読み出された画像信号に基づく画像の画像認識を行う。画像認識の例として、画像データ内に所定のオブジェクトが写っているか否かがある。例えば、人の顔が写っているか否かがある。また、画像データ内に写っているオブジェクトの種類を、複数の候補の中から予測することがある。例えば、オブジェクトが、人間か、人間以外の動物か、物かを予測することがある。候補の数はこの例では3だが、2でも、4以上でもよい。画像認識の例は、画像データに基づいて行うことができる限り、これら以外のものでもよい。演算処理部19は、画像認識の結果を表すデータを、データ記憶部18に格納する。データ記憶部18は、演算処理部19により算出された画像認識の結果を表すデータを記憶する。
演算処理部19は、一例としてDSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はCPUなどの回路により構成される。演算処理部19は、データを格納するための内部バッファを備えていてもよい。内部バッファはレジスタ、メモリ又はデジタル回路など、任意の回路で構成される。メモリは、揮発性メモリでも、不揮発性メモリでもよい。
演算処理部19が行う処理の一部をCPU17が実行してもよい。
データ記憶部18は、演算処理部19がニューラルネットワークの演算処理に用いるニューラルネットワークのパラメータを記憶している。パラメータは、学習済みのニューラルネットワークのノード間の結合(リンク)の強さを表す重み係数を、底を2とする対数に変換した値である。以下、変換した重み係数を、対数重み係数、又はlog2重み係数と呼ぶことがある。対数重み係数は、複数のノード間の結合の強さを対数で表したものである。本実施形態ではニューラルネットワークの演算処理において、学習された重み係数の代わりに、対数重み係数を用いる。データ記憶部18は、対数重み係数を記憶する形態として、ニューラルネットワークの各ノード間のリンクを表す識別子と、対数重み係数とを対応づけた情報を記憶している。この情報は、例えばテーブルでもよいし、与えられた識別子に応じて対数重み係数を返す関数でもよい。
データ記憶部18に記憶されているとして説明したデータの全部又は一部を、演算処理部19の内部バッファに格納してもよい。例えば、上述のパラメータを演算処理部19の内部バッファに格納してもよい。なお、データ記憶部18は、学習された重み係数を記憶していてもよい。
図4は、ニューラルネットワークの典型的な構造の例を模式的に示す図である。本実施形態ではニューラルネットワークとして各層間で全てのノードが相互結合された全結合型の階層型ニューラルネットワークの例を示すが、畳み込み型ニューラルネットワーク又は相互結合型ニューラルネットワークなど、他の型のニューラルネットワークを用いてもよい。
以下では図4に基づき、まず、一般的なニューラルネットワークについて説明する。ニューラルネットワークは、入力層41、中間層(隠れ層)42、及び出力層43を備えている。ここでは中間層42が1つの例を示しているが、中間層が複数存在してもよい。複数の中間層が存在する場合、入力層41に近い側から順に、1段目の中間層、2段目の中間層、・・・、最終段の中間層と呼ぶ。一般に、中間層の個数が多いほど、識別の精度が向上する。
入力層41は、複数(q個)の入力ユニットA1〜Aqを有する。中間層42は、複数(j個)の演算ユニットB1〜Bjを有する。出力層43は、複数(n個)の演算ユニットC1〜Cnを有する。以下、入力ユニットA1〜Aqのことを入力ノードA1〜Aqと呼び、中間層の演算ユニットB1〜Bjのことを中間ノードB1〜Bjと呼び、出力層の演算ユニットのことを出力ノードC1〜Cnと呼ぶ。
中間層42の各中間ノードは、入力層41の複数の入力ノードA1〜Aqの全てとリンクで結合されている。一般的なニューラルネットワークでは、各リンクには、学習された重み係数が設定される。出力層43の各出力ノードは、中間層42の複数の中間ノードB1〜Bjの全てとリンクで結合されている。各リンクには、学習された重み係数が設定される。
一般的なニューラルネットワークの演算処理を説明する。入力ノードA1〜Aqには入力データが与えられる。入力データは、画像データの各画素データであるとする。一例として入力ノードの個数は、画像データの入力の画素数と同数であり、各画素の画素データが入力ノードに与えられる。各入力ノードは、与えられた入力データを、中間ノードB1〜Bjに出力する。各中間ノードは、入力ノードA1〜Aqから入力されたデータに、入力ノードA1〜Aqに対する重み係数を乗算し、乗算結果を総和する。すなわち、入力されたデータと重み係数との積和演算(重み付け合計)を行う。積和演算の結果を活性化関数の入力変数とし、活性化関数を計算する。各中間ノードは、活性化関数の出力値を、出力ノードC1〜Cnに出力する。
例えば、中間ノードB1と、入力ノードA1〜Aqとの間の重み係数を、w1〜wqとし、入力ノードA1〜Aqから中間ノードB1に入力されるデータをd1〜dqとする。このとき、中間ノードB1における積和演算値(XB1)、及び活性化関数の出力値(YB1)は、以下の式で表される。
関数fは、活性化関数を表している。Σは、重み係数w1〜wqと、入力データd1〜dqとの積和演算(重み付け合計)を表している。ここでは中間ノードB1の演算例を示したが、中間ノードB2〜Bjでも同様の演算が行われる。中間ノードB1〜Bjの出力値は、出力ノードC1〜Cmに入力されるデータとなる。
活性化関数は、例えば、ReLU関数又はステップ関数など、任意の非線形関数が用いられる。但し、線形関数を用いることも排除されない。
ReLU関数は、入力変数が0以下であれば0を出力し、0を超えていれば入力変数の値をそのまま出力する関数である。ReLU関数をReLu(x)、入力変数をxとすると、ReLu(x)は、以下のように定義される。
中間層における各中間ノードの活性化関数は同じであるとするが、中間ノードによって活性化関数が異なっていてもよい。
各出力ノードの演算は、中間ノードの演算と同様である。より詳細には、各出力ノードは、中間ノードB1〜Bjから入力されたデータに、中間ノードB1〜Bjに対する重み係数を乗算し、乗算結果を総和する。すなわち、入力されたデータと重み係数との積和演算(重み付け合計)を行う。積和演算の結果を活性化関数の入力変数とし、活性化関数を計算する。各出力ノードにおける活性化関数の出力値が、各出力ノードの出力となる。
出力層の各出力ノードの活性化関数は同じであるとするが、出力ノードによって活性化関数が異なってもよい。また出力層の活性化関数は、中間層の活性化関数と異なっていても、同じであってもよい。
演算処理部19は、各出力ノードの出力値に基づき、判定処理を行い、判定処理の結果を、画像認識の結果として出力する。
一例として、各出力ノードにクラスが割り当てられており、最も大きい出力値を出力した出力ノードのクラスを識別結果とする。例えば2つの出力ノードが存在し、一方の出力ノード(第1出力ノード)に割り当てられた第1クラスが画像に人の顔が写っていることを表すクラスであるとする。そして、他方の出力ノード(第2出力ノード)に割り当てられた第2クラスが画像に人の顔が写っていないことを表すクラスであるとする。この場合、第1出力ノードの出力値が第2出力ノードの出力値より大きければ、第1クラスを示す信号を出力する。すなわち、ニューラルネットワークに入力として与えられた画像データに人の顔が写っていると判定する。第2出力ノードの出力値が第1出力ノードの出力値より大きければ、第2クラスを示す信号を出力する。すなわち、ニューラルネットワークに入力として与えられた画像データに人の顔は写っていないと判定する。
上述の各出力ノードの出力値に基づく判定処理は一例であり、他の判定処理も可能である。例えば各出力ノードの出力値を閾値と比較し、閾値以上の出力値が得られた出力ノードの個数の割合が一定値以上の場合は、第1の識別結果を決定する(例えば画像に人の顔が写っていると判定)。当該割合が一定値未満の場合は、第2の識別結果を決定する(例えば画像に人の顔が写っていないと判定)。あるいは、出力ノードの出力値のうち最も大きな出力値を特定し、特定した出力値が一定値以上の場合、第1の識別結果を決定し、一定値未満の場合は、第2の識別結果を決定してもよい。閾値は予めデータ記憶部18又は演算処理部19の内部バッファに格納しておく。各出力ノードの出力値に基づく判定方法は、ニューラルネットワークの構成や学習方法等に応じて任意に定義することができる。
中間層が複数存在する場合は、初段の中間層の各中間ノードが、入力ノードA1〜Aqの全てとリンクで結合され、各リンクには重み係数が設定される。また、隣接する中間層同士間で、後段の中間層の各中間ノードが、前段の中間層の全ての中間ノードとリンクで結合され、各リンクには重み係数が設定される。出力層43の各出力ノードが、最終段の中間層の全ての中間ノードとリンクで結合され、各リンクには重み係数が設定される。2段目以降の中間層の各中間ノードでは、前段の中間層の全ての中間ノードの出力値が、入力されるデータとなる。2段目以降の中間層の各中間ノードの演算は、前述した中間層42と同様である。
このようなニューラルネットワークの学習は、予め識別結果(正解)が分かっている複数の画像データを学習データとして用意し、画像データを入力層に入力したら、当該識別結果(正しい識別結果)が得られるよう、ノード間の重み係数を調整することで行う。予め分かっている識別結果は教師信号と呼ばれる。このような重み係数の調整は、バックプロパゲーション法(誤差逆伝播法:Back Propagation Method)などの方法を用いて行えばよい。バックプロパゲーション法は、ニューラルネットワークの出力と教師信号のずれが小さくなるよう、出力層側から順番に、重み係数を調整する方法である。
以上は、一般的なニューラルネットワークの説明であるが、以下、図4〜図6を用いて、本実施形態に係るニューラルネットワークについて説明する。図4は一般的なニューラルネットワークの説明で用いたものであるが、ニューラルネットワークの構造を普遍的に示したもので、本実施形態に係るニューラルネットワークの説明も図4をベースに行う。本実施形態に係るニューラルネットワークは、一例として第1ニューラルネットワークに対応し、第1ニューラルネットワークにおける各ノードは一例として第1ノードに対応する。
本実施形態ではニューラルネットワークの各入力ノードに与えるデータとして、演算処理部19が、画素データをデータ変換し、これを入力データ(第1入力データ)として用いる。より詳細には、各画素21の画素データが示す値(電圧値)に対して、上述の式(1)の関係にある電流値iを底2の対数に変換したデータ(log2i)を用いる。変換したデータを、対数画素データと呼ぶ。上述の式(1)を、底の変換公式を用いて、式(5−1)のように変換し、さらに式(5−2)のように変換することで、対数画素データ(log2i)を導出できる。
A及びlog2eのいずれも固定値であるから、A’も固定値である。よって、画素データの値(v)にA’を乗じることで、log2iを算出できる。A’は固定値であるから、この演算は簡単であり、小規模の演算量又は小規模の回路で実現できる。すなわち、画素データを底が2の対数に変換(log2変換)するための回路(log2変換回路)は不要である。log2eは、所定値(ここではネイピア数)を真数に含む対数の一例である。
また、本実施形態に係るニューラルネットワークの演算処理では、各ノード間の重み係数として、学習された重み係数を底2の対数に変換した対数重み係数を用いる。各ノード間とは、入力ノード及び中間ノード間、並びに、中間ノード及び出力ノード間のことである。中間層が複数存在する場合は、異なる中間層間での中間ノード間も含む。このように、本実施形態に係るニューラルネットワークの演算処理は、各入力ノードに与えられる対数画素データと、各ノード間に設定される対数重み係数とに基づき行われる。
以下、中間ノードの演算処理の内容を説明する。まず、中間ノードに接続されている各入力ノードから入力される対数画素データと、各入力ノードに対する対数重み係数とをそれぞれ加算する。加算の対象がいずれも対数であるから、加算結果も対数である。log2i+log2w=log2(i*w)が成立するから、対数画素データ(log2i)と対数重み係数(log2w)を加算した値は、電流データiと重み係数wとの乗算値(i*w)を、底2の対数に変換した値に等しい。i*wを直接計算することなく、入力された対数同士を加算するのみでlog2(i*w)を算出できる。よって、一般的なニューラルネットワークの演算処理における乗算演算を、加算演算に置き換えることができる。
次に、各入力ノードに対する加算結果(対数値)の真数の総和値のlog2を算出する。複数の対数値の真数を総和した値のlog2を算出することを、“log2加算”と呼ぶ。また、log2加算により算出された値をlog2加算値と呼ぶ。
例えば、各入力ノードに対する加算結果をlog2(i1*w1),・・・,log2(iq−1*wq−1),log2(iq*wq)とすると、これらのlog2加算値は、log2(i1*w1+,・・・,+iq−1*wq−1+iq*wq)である。log2加算は、小規模の演算量又は小規模の回路で実現できる。
算出したlog2加算値を活性化関数の入力変数として、活性化関数の出力値を計算する。以下、図4の中間ノードB1を例に、具体例を説明する。
図5は、中間ノードB1の演算処理の例を説明するための図である。中間ノードB1と、入力ノードA1〜Aqとの間に設定された対数重み係数をlog2w1〜log2wqとする。入力ノードA1〜Aqから中間ノードB1に入力されるデータをlog2i1〜log2iqとする。このとき、中間ノードB1における演算値(X’B1)、活性化関数の出力値(Y’B1)は、以下の式で表される。図5の例では活性化関数としてReLU関数を用いている。
中間ノードB2〜Bjでも、中間ノードB1と同様の演算が行われる。
式(6−1)と式(2−1)とを比較して理解できるように、本実施形態に係るニューラルネットワークにおけるノードの演算値(log2加算値)は、一般的なニューラルネットワークにおけるノードの演算値(積和演算値)をlog2に変換した値に相当する。
出力ノードC1〜Cnの演算処理も、前段の層から入力されるデータが、各中間ノードの出力値である以外は、中間ノードと同様である。中間ノードの出力値は底2の対数であるから、出力ノードでも、中間ノードと同様にlog2加算の演算を行うことができる。
例えば、中間ノードにおける活性化関数がReLUの場合、演算値が0より大きい場合は、当該値がそのまま出力されるため、ReLUの出力値は底2の対数である。演算値が0以下の場合、0が出力されるが、0=log21であるから、この場合も出力値は底2の対数で表される。よって、出力ノードでも、中間ノードと同様の演算を行うことができる。
演算処理部19は、出力ノードC1〜Cnの出力値(底が2の対数)に基づき判定処理を行い、判定処理の結果を、画像認識の結果として出力する。判定処理の詳細は、前述した一般的なニューラルネットワークの判定処理と同様である。例えば、各出力ノードにクラスが割り当てられており、最も大きい出力値を出力した出力ノードのクラスを画像認識の結果とする。その他、前述した各出力ノードの出力値を閾値と比較する方法も可能である。閾値と比較する場合、閾値を底2の対数に変換した値(対数閾値)を用いればよい。これにより、対数同士で比較が可能となる。対数閾値は予めデータ記憶部18又は演算処理部19の内部バッファに格納しておく。
このように本実施形態に係るニューラルネットワークでは、中間ノード及び出力ノードで乗算演算は不要であるため、乗算回路が不要となり、回路規模も低減される。また、演算量が低減されるため、消費電力も低減される。
ここでlog2加算の演算を効率的に行うための回路(log2加算回路)の構成例について説明する。ここで、log2(i1*w1)とlog2(i2*w2)とのlog2加算は、以下の式で近似できる(非特許文献1参照)。
式(7)の最初の項は、log2(i1*w1)とlog2(i2*w2)のうちの最大値を意味する。2番目の項は、log2(i1*w1)とlog2(i2*w2)の差分の絶対値のマイナスだけ2を累乗している。2番目の項は1を、当該差分の絶対値だけ右側(桁の小さい方向)にビットシフトすることに等しい。つまり、10進数の1をビットで表記したビット列を、|log2(i1*w2)−log2(i1*w1)|だけ右側にビットシフトする。ビットシフトを右側に行うのは、2のべき乗の指数が負の値であるためである。例えば、1が00001000と表される場合に、上述の差分の絶対値が3であれば、3ビットシフトを行うことにより、00000001となる。なおビット表記の規則は任意に定めればよく、本例は一例に過ぎない。
このように、最大値の選択と、差分の絶対値の計算と、ビットシフトによりlog2加算ができるため、演算が簡単である。なお、|log2(i1*w2)−log2(i1*w1)|の値が整数にならない場合は、丸め処理(切り上げ又は切り捨て)、天井関数又は床関数などにより整数に近似すればよい。あるいは、log2(i1*w2)及びlog2(i1*w1)をそれぞれ整数に近似してから、|log2(i1*w2)−log2(i1*w1)|を計算してもよい。
図6は、log2加算回路の一例のブロック図である。log2加算回路は演算処理部19に含まれている。ここでは複数の入力ノードA1〜Aqに対してそれぞれ対数画素データと対数重みとの加算により計算されたlog2(in*wn)(nは1〜qの整数)を、累積加算する場合の回路構成の例を示している。図6の回路は、セレクタ51と、加算器52と、減算器53と、絶対値演算器54と、べき乗演算器55と、フリップフロップ回路56とを備えている。
セレクタ51は第1入力端子と第2入力端子とを有する。第1入力端子には新たに演算対象となるlog2(in*wn)が入力され、これをデータPnと表す。第2入力端子には前回まで累積加算された値log2(i1*w1+・・・+in−1*wn−1)が入力され、これをデータSn−1と表す。初回は、第1入力端子にlog2(i2*w2)(=P2)が入力され、第2入力端子にlog2(i1*w1)(=S1)が入力される。
データPnとデータSn−1は減算器53にも入力される。減算器53は、PnからSn−1を減算する。減算器53の出力は、セレクタ51の制御端子に接続されている。減算器53は、減算結果の符号を示す信号をセレクタ51の制御端子に出力し、減算結果を表す信号を絶対値演算器54に出力する。セレクタ51は、減算結果が正を示す場合はデータPnを出力し、負を示す場合は、データSn−1を出力する。すなわち、データPnとSn−1のうち大きい方を出力する。減算器53は、Sn−1からPnを減算する構成でもよく、この場合、セレクタ51は、減算結果が正を示す場合はデータSn−1を出力し、負を示す場合は、データPnを出力すればよい。
絶対値演算器54は、減算器53の出力に接続されており、減算器53の減算結果の絶対値|Pn−Sn−1|を計算する。
べき乗演算器55は、絶対値演算器54の出力に接続されており、2の−|Pn−Sn−1|乗を計算する。この計算は上述したように、1を|Pn−Sn−1|だけ、右側にビットシフトすることにより実現できる。
加算器52は、セレクタ51の出力とべき乗演算器55の出力に接続されており、セレクタ51で選択された値と、べき乗演算器55でビットシフトされた後の値とを加算する。
フリップフロップ回路56は、加算器52の出力に接続されており、加算器52の加算結果(log2(i1*w1+i2*w2)の近似値)を内部に記憶する。フリップフロップ回路56は、セレクタ51の第2入力端子に接続されており、この値をデータS2として第2入力端子及び減算器53にフィードバックする。セレクタ51の第1入力端子には次に演算対象となるlog2(i3*w3)がデータP3として入力される。以降、同様にして処理を繰り返すことで、log2(in*wn)が累積的にlog2加算され、最終的に、log2(i1*w1+・・・+iq*wq)の近似値が、クロックCLKで動作するフリップフロップ回路56から出力される。フリップフロップ回路56の出力値は、活性化関数の入力変数となる。
図7は、本実施形態に係る固体撮像装置の動作の一例のフローチャートである。本装置を搭載したデバイスで予め定めたイベントが成立したことにより、本処理の実行のトリガーが発生する。予め定めたイベントは、本装置を搭載したデバイスで発生又は検知するイベントであれば何でもよい。例えば、本装置を搭載したデバイスを操作するユーザが所定の操作を行ったこと、所定の時刻になったこと、一定値以上の振動を検知したことなどがあるが、これらに限定されない。このトリガーにより、制御部15の制御の元、画素アレイ部11で1フレームの撮像が行われる。すなわち、各画素21で光電変換により、入射光の光量に対して対数的に変化する画素信号(電圧信号)が生成され、生成された画素信号を読み出して信号処理部16に送る(S101)。これらの画素信号をカラム処理部13でAD変換し(S102)、AD変換により得られた各画素の画素データの集合を、画像データとしてデータ記憶部18に格納する(S103)。
演算処理部19は、データ記憶部18から画像データを読み出し、画像データに含まれる各画素データに対してデータ変換を行う(S104)。データ変換操作は、一例としてlog2e/Aを乗じることである(式(5−1)と式(5−2)参照)。すなわちネイピア数(所定値)を真数に含む対数を、画素データの値に乗じる。これにより、画素データの値を底2の対数に変換したデータ(log2i)を、対数画素データとして算出する(同S104)。
演算処理部19は、データ記憶部18から、ニューラルネットワークにおける各ノード間に設定された重み係数の対数である対数重み係数(log2重み係数)を読み出す(S105)。各ノード間とは、入力ノード及び中間ノード間、並びに、中間ノード及び出力ノード間のことである。中間層が複数存在する場合は、異なる中間層間での中間ノード間も含む。対数重み係数は、データ記憶部18でなく、演算処理部19の内部バッファに予め記憶させておいてもよい。以下の説明では、中間層が1つのニューラルネットワーク(図4参照)を想定するが、複数の場合も可能である。この場合、2段目以降の中間層では、入力されるデータが入力ノードからではなく、前段の中間層の中間ノードからに変更されるのみで、処理の内容は初段の中間層と同様である。
演算処理部19は、各画素21の対数画素データを入力データとしてニューラルネットワークの各入力ノードに割り当てる(S106)。どの入力ノードにどの画素21が対応付けられるかは学習時に予め定めておく。画素21と入力ノードとを1対1で対応づけることは一例に過ぎず、他の手法で、各入力ノードに割り当てる入力データを生成してもよい。
例えば、所定個数の画素21により画素グループを構成し、各画素グループを各入力ノードに対応づける。画素グループで対数画素データの代表値を決定し、代表値を入力データとして入力ノードに割り当てる。代表値は、平均値、最大値又は最小値など任意の統計値でよい。また、今回読み出した対数画素データと、前回読み出した対数画素データとの差分の画素データを入力データとして入力ノードに割り当てることも可能である。
演算処理部19は、各入力ノードに割り当てた入力データと、各中間ノード及び各入力ノード間に設定された対数重み係数とに基づき、各中間ノードの演算を行う(S107)。すなわち、各入力ノードに対して対数重み係数と入力データとを加算し、加算結果を全てlog2加算する。演算処理部19は、log2加算値を入力変数として、活性化関数を計算する(同S107)。活性化関数の出力値を、各中間ノードの出力値とする。各中間ノードの出力値は、次段の出力層に入力されるデータとなる。
次に、各中間ノードの出力値と、各中間ノード及び各出力ノード間に設定された対数重み係数とに基づき、各出力ノードの演算を行う(S108)。すなわち、各中間ノードに対して、対数重み係数と入力されるデータとを加算し、加算結果を全てlog2加算する。演算処理部19は、log2加算値を入力変数として、活性化関数を計算する(同S108)。活性化関数の出力値が、出力ノードの出力値となる。
演算処理部19は、各出力ノードの出力値に基づき、判定処理を行う(S109)。一例として、最も大きい出力値を算出した出力ノードを特定し、特定した出力ノードに割り当てられているクラスを画像認識の結果として取得する。判定認識は、前述したように、閾値を用いた処理など、その他にも様々なアルゴリズムが可能である。どのようなアルゴリズムを用いてもかまわない。演算処理部19は、画像認識の結果を示すデータをデータ記憶部18に格納する。
CPU17は、画像認識の結果を示すデータをデータ記憶部18から読み出して、外部に出力する(S110)。例えば、本装置が搭載されたデバイスで実行されているアプリケーションプログラムに出力する。この場合、アプリケーションプログラムは、当該データが示す結果に応じた処理を行う。また、画像認識の結果を示すデータを、本装置が搭載されたデバイスが備える表示装置の画面に表示してもよい。
上述のステップの順序は一例であり、一部のステップの順序が入れ替わってもよい。例えばステップS104とステップS105の順序が逆でもよい。
以上、本実施形態によれば、対数画素から読み出した画素信号(電圧信号)のデータをデータ変換することにより、底2の対数の入力データを生成する。よって、底2の対数への変換を行う回路(log2変換回路)は必要がないため、回路規模を低減できるとともに、消費電力を低減できる。
本実施形態では対数画素から読み出した画素信号のデータを用いるため、対数画素がもつ高ダイナミックレンジの特性を生かした画像認識が可能となる。関連技術では線形画素から読み出した画素信号のデータをlog2変換回路で底2の対数に変換するが、この場合、変換後のデータのダイナミックレンジは線形画素のダイナミックレンジに律速される。このため、高ダイナミックレンジの効果は得られない。これに対して、本実施形態では対数画素からの読み出しを行うため、高ダイナミックレンジの効果を得ることができる。
また本実施形態によれば、画素データを変換した対数画素データ(底2の対数)と、対数重み係数(底2の対数)とを用いるため、各ノードでの演算を加算で行うことができる。よって、各ノードでの乗算(重み係数と入力データとの乗算)が不要となる。よって、演算量が低減し、消費電力を低減できる。また、乗算回路が不要となるため、回路規模を低減できる。
(変形例1)
第1の実施形態では、底2の対数を用いたが、対数の底は必ずしも2である必要はない。底が2でない場合も、各ノードで対数領域での加算演算を行うことで、演算量を低減することが期待できる。
第1の実施形態では、底2の対数を用いたが、対数の底は必ずしも2である必要はない。底が2でない場合も、各ノードで対数領域での加算演算を行うことで、演算量を低減することが期待できる。
(変形例2)
第1の実施形態で示した対数画素の構成(図3)は一例であり、様々な変形が可能である。図8を用いて、対数画素の変形例を説明する。
第1の実施形態で示した対数画素の構成(図3)は一例であり、様々な変形が可能である。図8を用いて、対数画素の変形例を説明する。
図8は、対数画素の変形例を示す回路図である。図3の対数画素に画素トランジスタとして、リセットトランジスタ37、バッファトランジスタ38及びバイアストランジスタ39が追加されている。バッファトランジスタ38及びバイアストランジスタ39はバッファ回路40を構成する。リセットトランジスタ37は、一例としてN型トランジスタにより構成される。バッファトランジスタ38及びバイアストランジスタ39は、一例としてP型トランジスタにより構成される。
接続ノードN2は、出力トランジスタ32のゲート端子と、バッファトランジスタ38のゲート端子とに接続されている。接続ノードN2に生成される電圧信号は、バッファ回路40を介して増幅トランジスタ35に与えられる。この電圧信号が増幅トランジスタ35により増幅される。
電源電圧と基準電圧との間に、バイアストランジスタ39とバッファトランジスタ38が直列に接続されている。バイアストランジスタ39のゲート端子にはバイアス電圧Vbias2が印加されている。バイアストランジスタ39とバッファトランジスタ38の接続ノード、すなわちバッファ回路40の出力端子は、リセットトランジスタ37のソース端子と、増幅トランジスタ35のゲート端子とに接続されている。リセットトランジスタ37のドレイン端子は電源電圧に接続されている。リセットトランジスタ37のゲート端子は画素駆動線22に接続されている。
リセットトランジスタ37は、垂直駆動部12が供給するリセット信号RSTにより制御される。リセットトランジスタ37をオン状態にして、画素信号を含まない信号を検出し、検出した信号を画素信号から除去(減算)するCDS(Correlated Double Sampling)処理を、信号処理部16又はカラム処理部13で行う。これにより、画素トランジスタ等のばらつきにより生じる固定パターンノイズを除去する。なお画素信号の読み出しは、画素信号を含まない信号を読み出す前又は後に行えばよい。CDS処理により得られた信号を、対数画素から読み出した画素信号として用いることができる。なお、バッファ回路40は、リセット時に対数画素の電位(ノードN2の電位)が影響を受けることを低減するよう機能する。これにより対数画素の電位を、常時光量に依存した出力にすることができる。なお、図8の回路構成を用いつつも、CDS処理を行わないことも可能である。
本変形例によれば、CDS処理を行うことにより、画素信号に含まれる固定パターンノイズを除去することができる。
(変形例3)
図9は、対数画素の他の変形例を示す回路図である。図8の回路構成に対してイベント検出部80が追加されている。イベント検出部80が追加された画素回路をDVS(Dynamic Vision Sensor)回路と呼ぶ場合もある。なおバッファ回路40の構成を、ここでは記号により模式的に示している。イベント検出部80は、フォトダイオード31からの光電流の変化量が所定の閾値を超えたか否かにより、イベントの有無を検出する。イベントの例として、変化量が上限の閾値を超えたオンイベント、変化量が下限の閾値を下回るイベント、又はこれらの両方がある。オンイベント又はオフイベントの検出は、一例として、コントラストの変化を検出(例えば物体を検出)することに相当する。イベント検出部80は、イベントの検出有無に応じて検出信号又は非検出信号を制御部15に出力する。
図9は、対数画素の他の変形例を示す回路図である。図8の回路構成に対してイベント検出部80が追加されている。イベント検出部80が追加された画素回路をDVS(Dynamic Vision Sensor)回路と呼ぶ場合もある。なおバッファ回路40の構成を、ここでは記号により模式的に示している。イベント検出部80は、フォトダイオード31からの光電流の変化量が所定の閾値を超えたか否かにより、イベントの有無を検出する。イベントの例として、変化量が上限の閾値を超えたオンイベント、変化量が下限の閾値を下回るイベント、又はこれらの両方がある。オンイベント又はオフイベントの検出は、一例として、コントラストの変化を検出(例えば物体を検出)することに相当する。イベント検出部80は、イベントの検出有無に応じて検出信号又は非検出信号を制御部15に出力する。
イベント検出部80は、減算器81と量子化器82とを含む。バッファ回路40の出力端子に減算器81が接続されている。減算器81の出力端子に量子化器82が接続されている。なお、イベント検出部80を図3の回路構成に追加することも可能である。
減算器81は、垂直駆動部12からの駆動信号に従ってバッファ回路40からの電圧信号のレベルを低下させる。この減算器81は、低下後の電圧信号を量子化器82に供給する。
量子化器82は、減算器81からの電圧信号をデジタル信号に量子化する。量子化器82は、量子化後の信号を閾値電圧Vthと比較し、比較結果を示す信号(検出信号又は非検出信号)を生成する。一例として、閾値電圧Vthが上限の閾値であれば、量子化後の信号が上限の閾値より大きい場合は、検出信号を生成する。量子化後の信号が上限の閾値以下であれば、非検出信号を生成する。量子化器82は、生成した検出信号又は非検出信号を、制御部15に出力する。閾値電圧Vthが下限の閾値の場合も同様にして、検出信号又は非検出信号を生成することができる。
制御部15は、検出信号が入力された場合は、対数画素21からの画素信号の読み出しを行うことを決定し、対数画素21から画素信号の読み出しを行うよう垂直駆動部12を制御する。一方、制御部15は、非検出信号が入力された場合は、対数画素21からの画素信号の読み出しを行わないことを決定する。なお、量子化器82はイベントが検出されなかった場合に、制御部15への非検出信号の出力を省略する構成も可能である。
図10は、減算器81および量子化器82の一構成例を示す回路図である。減算器81は、コンデンサ83と、コンデンサ84と、インバータ85と、スイッチ86とを備える。量子化器82は、コンパレータ87を備える。
コンデンサ83の一端は、バッファ回路40の出力端子に接続され、他端は、インバータ85の入力端子に接続される。コンデンサ84は、インバータ85に並列に接続される。スイッチ86は、コンデンサ84の両端を接続する。スイッチ86は、垂直駆動部12からの駆動信号に従って開閉する。
インバータ85は、コンデンサ83を介して入力された電圧信号を反転する。インバータ85は、反転した信号をコンパレータ87の非反転入力端子(+)に出力する。
スイッチ86がオンされると、コンデンサ83のバッファ回路40側に電圧信号Vinitが入力され、その逆側は仮想接地端子となる。この仮想接地端子の電位を便宜上、ゼロとする。このとき、コンデンサ83の容量をC1とすると、コンデンサ83に蓄積されている電荷Qinitは、次の式により表される。一方、コンデンサ84の両端は、短絡されているため、その蓄積電荷はゼロとなる。
Qinit=C1×Vinit ・・・(8−1)
Qinit=C1×Vinit ・・・(8−1)
次に、スイッチ86がオフされて、コンデンサ83のバッファ回路40側の電圧が変化してVafterになる。このときコンデンサ83に蓄積される電荷Qafterは、次の式により表される。
Qafter=C1×Vafter ・・・(8−2)
Qafter=C1×Vafter ・・・(8−2)
一方、コンデンサ84に蓄積される電荷Q2は、出力電圧をVoutとすると、次の式により表される。
Q2=−C2×Vout ・・・(8−3)
Q2=−C2×Vout ・・・(8−3)
コンデンサ83およびコンデンサ84の総電荷量は変化しないため、次の式が成立する。
Qinit=Qafter+Q2 ・・・(8−4)
Qinit=Qafter+Q2 ・・・(8−4)
式(8−4)に、式(8−1)〜式(8−3)を代入して変形すると、次の式が得られる。
Vout=−(C1/C2)×(Vafter−Vinit) ・・・(8−5)
Vout=−(C1/C2)×(Vafter−Vinit) ・・・(8−5)
式(8−5)は、電圧信号の減算動作を表し、減算結果の利得はC1/C2となる。通常、利得を最大化することが望まれるため、C1を大きく、C2を小さく設計することが好ましい。一方、C2が小さすぎると、kTCノイズが増大し、ノイズ特性が悪化するおそれがあるため、C2の容量削減は、ノイズを許容することができる範囲に制限される。
コンパレータ87は、減算器81からの電圧信号と、反転入力端子(−)に印加された閾値電圧Vthとを比較する。コンパレータ87は、比較結果に応じて検出信号又は非検出信号を出力する。
本変形例によれば、イベント検出部80によりイベントを検出したときに画素信号の読み出しを行うため、高速な画素データの生成が可能となる。
(第2の実施形態)
本実施形態では、画素アレイ部11に配置する画素として、対数画素と線形画素との2種類を用いる。そして、外部から与えられる指示データに従って、画素信号を読み出す画素を、対数画素及び線形画素間で選択する。対数画素から画素信号を読み出す場合は、その後の処理は第1の実施形態と同様である。線形画素から画素信号を読み出す場合は、その後の処理は、一般的なニューラルネットワークの演算処理と同様である。すなわち、各ノード(中間ノード及び出力ノード)で、各画素の画素データと、重み係数とに基づき積和演算を行い、積和演算の結果を入力変数として活性化関数を計算する。以下、本実施形態について詳細に説明する。
本実施形態では、画素アレイ部11に配置する画素として、対数画素と線形画素との2種類を用いる。そして、外部から与えられる指示データに従って、画素信号を読み出す画素を、対数画素及び線形画素間で選択する。対数画素から画素信号を読み出す場合は、その後の処理は第1の実施形態と同様である。線形画素から画素信号を読み出す場合は、その後の処理は、一般的なニューラルネットワークの演算処理と同様である。すなわち、各ノード(中間ノード及び出力ノード)で、各画素の画素データと、重み係数とに基づき積和演算を行い、積和演算の結果を入力変数として活性化関数を計算する。以下、本実施形態について詳細に説明する。
図11は、本開示の第2の実施形態に係る固体撮像装置の構成例を示すブロック図である。図1の固体撮像装置に対して、入出力端子24とモード指示部25が追加されている。図1と同一名称の要素には同一の符号を付して、拡張又は変更された処理を除き、詳細な説明は適宜省略する。
画素アレイ部11は、対数画素21Aと線形画素21Bとの2種類の画素を含む。線形画素21Bは、対数画素21Aと異なる種類の画素である第2画素の一例に対応する。また、線形画素21Bから読み出される画素信号は、第2画素から読み出される第2画素信号に対応する。
対数画素21Aと線形画素21Bは、横及び縦のそれぞれの方向に交互に配置(千鳥格子状に配置)されている。但し、配置の方法はこれに限定されず、どのような方法でもよい。例えば、縦2つ及び横2つの画素からなる正方形状の画素ブロックごとに、画素ブロック内の3つの画素が対数画素であり、残りの1つが線形画素であってもよい。また列ごとに画素の種類を同じとして、行方向(横方向)に交互に異なる種類の画素列が配置されてもよい。
第1の実施形態の説明で記載したように、線形画素は、入射光に対して線形に変化する電気信号を画素信号として生成する。すなわち、線形画素は、光量に対して線形に増大する出力信号を生成する。線形画素は、対数画素に比べて、ダイナミックレンジが狭いものの、低ノイズ特性を有している。
図12に、線形画素への入射光の光量と、出力電圧との関係を模式的に表したグラフを示す。入射光の光量が増大するに応じて、出力電圧が、線形に増加(例えば比例)している。
図13は、線形画素21Bの回路構成の一例を示す。ここでは例示として、1つの線形画素21Bの構成を示すが、他の線形画素21Bも同様の構成を有する。
線形画素21Bは、光電変換部に対応するフォトダイオード61と、複数の画素トランジスタとを含む。複数の画素トランジスタは、転送トランジスタ62、増幅トランジスタ63、選択トランジスタ64、及びリセットトランジスタ65である。これらの画素トランジスタは、MOS(Metal Oxide Semiconductor)トランジスタであり、一例としてN型トランジスタで構成されている。但し、これらのトランジスタがP型トランジスタで構成されてもよい。この場合、これらの画素トランジスタの制御信号の論理及び電源線の電圧を変更する必要がある。
フォトダイオード61は、入射光を光電変換によりその光量に比例した電気信号(信号電荷)に変換して蓄積する素子である。フォトダイオード61のアノード端子が基準電圧に接続されており、カソード端子が転送トランジスタ62のソース端子に接続されている。
転送トランジスタ62は、フォトダイオード61のカソード端子とFDノード66との間に接続されている。転送トランジスタ62のゲート端子は、垂直駆動部12に接続されている。転送トランジスタ62は、垂直駆動部12からの転送信号TRGによって制御される。転送トランジスタ62がオン状態になると、フォトダイオード61に蓄積されている信号電荷がFDノード66に転送される。
FDノード66は、転送トランジスタ62のドレイン端子と増幅トランジスタ63のゲート端子との間に接続された浮遊拡散領域である。これにより、FDノード66は、フォトダイオード61から転送される信号電荷を蓄積することがきる。また、FDノード66は、リセットトランジスタ65のソース端子にも接続されている。
増幅トランジスタ63は、電源電圧と選択トランジスタ64との間に接続されている。増幅トランジスタ63のゲート端子は、FDノード66に接続されている。増幅トランジスタ63は、FDノード66に蓄積された信号電荷に応じた導通状態となる。
選択トランジスタ64は、増幅トランジスタ63と垂直信号線23との間に接続されている。選択トランジスタ64のゲート端子は、垂直駆動部12に接続されている。選択トランジスタ64は、垂直駆動部12からの選択信号SELによって制御される。選択トランジスタ64は、線形画素21Bを垂直信号線23に接続しあるいは切断する。選択トランジスタ64がオン状態になると、増幅トランジスタ63に電流を流すことが可能となり、増幅トランジスタ63の導通状態に応じた電流が、電源電圧から流れる。垂直信号線23は、増幅トランジスタ63のゲート電圧の信号レベルに応じた電圧にされる。
リセットトランジスタ65は、電源電圧とFDノード66との間に接続されている。リセットトランジスタ65のゲート端子は、垂直駆動部12に接続されている。リセットトランジスタ65は、垂直駆動部12からのリセット信号RSTによって制御される。リセットトランジスタ65がオン状態になると、FDノード66に蓄積されていた信号電荷は電源電圧に排出される。これにより、線形画素21BのFDノード66がリセット状態となる。
このように線形画素では、入射光の光量に比例する電圧信号が、画素信号として出力される。図13に示した線形画素の構成は一例であり、線形画素の構成は図13の構成に限定されない。光量(電荷)に比例する電圧信号を検出可能である限り、どのような構成でもかまわない。
入出力端子24は、外部の装置との信号の送受信を行うための端子である。入出力端子24は、例えばシリアル通信などの任意の通信方式により、外部の装置と信号を送受信する。外部の装置は、一例として、固体撮像装置を搭載したデバイスの内部設定をデバイスの外部から行う装置でもよいし、ユーザが各種設定を行うための操作手段(例えばボタンなど)でもよい。
モード指示部25は、入出力端子24を介して、画素の読み出し処理のモードを指示したモードデータを受信する。画素読み出しモードには、対数読出モードと、線形読出モードがある。対数読出モードは、対数画素からの読み出しを行う第1読出処理を行う。線形読出モードは、線形画素からの読み出しを行う第2読出処理を行う。モードデータはこれらのいずれかのモードを指示している。モード指示部25は、一例としてレジスタなどの記憶素子により構成される。モード指示部25へのモードデータの提供をCPU17が行う構成も可能である。
制御部15は、モード指示部25からモードデータを読み出し、モードデータが対数読出モードを示す場合は、画素アレイ部11における各対数画素21Aから画素信号の読み出しを行うよう各部を制御する。制御部15は、モードデータが線形読出モードを示す場合は、画素アレイ部11における各線形画素21Bから画素信号の読み出しを行うよう各部を制御する。すなわち、制御部15は、各対数画素21Aから画素信号を読み出す処理と、各線形画素21Bから画素信号を読み出す処理とを選択的に実行する。
カラム処理部13は、第1の実施形態と同様、1行分の画素21から出力される信号の信号処理を、画素列ごとに行う。信号処理の例は、AD変換を含み、さらにAD変換前の信号のノイズ除去及び信号増幅の少なくとも一方を含んでもよい。
データ記憶部18は、演算処理部19がニューラルネットワークの演算処理で用いるニューラルネットワークのパラメータを、対数読出モード及び線形読出モードのそれぞれ用に記憶している。対数読出モード及び線形読出モードのニューラルネットワークはそれぞれ異なり、学習もそれぞれ別に行われる。
データ記憶部18は、対数読出モード用のニューラルネットワークのパラメータとして、第1の実施形態と同様に、各ノード間の結合の強さを表す重み係数を、底を2とする対数に変換した値(対数重み係数)を記憶している。対数重み係数をデータ記憶部18ではなく、演算処理部19の内部バッファに記憶してもよい。対数読出モード用のニューラルネットワークは、一例として第1ニューラルネットワークに対応し、第1ニューラルネットワークにおける各ノードは一例として第1ノードに対応する。
データ記憶部18は、線形読出モード用のニューラルネットワークのパラメータとして、各ノード間の結合の強さを表す重み係数を記憶している。重み係数をデータ記憶部18ではなく、演算処理部19の内部バッファに記憶してもよい。線形読出モード用のニューラルネットワークは、一例として第2ニューラルネットワークに対応し、第2ニューラルネットワークにおける各ノードは一例として第1ノードに対応する。
CPU17は、モード指示部25からモードデータを読み出し、モードデータが対数読出モードを示す場合は、第1の実施形態と同様に、演算処理部19の制御を行う。すなわち、演算処理部19は、各画素の画素データを対数画素データに変換し(式(5−2)参照)、対数画素データと、各ノード間の対数重み係数とを用いて、ニューラルネットワークの演算処理を行う。各中間ノード及び各出力ノードでは、第1の実施形態の説明で記載したように、前段の層から入力されるデータと対数重み係数とを加算し、これらの加算結果をlog2加算する(式(6−1)参照)。log2加算の結果を活性化関数の入力変数として、活性化関数の出力値を計算する(式(6−2)参照)。
CPU17は、モードデータが線形読出モードを示す場合は、第1の実施形態の説明で記載した一般的なニューラルネットワークと同様の演算を行うように、演算処理部19を制御する。すなわち、演算処理部19は、各画素の画素データをニューラルネットワークの入力データ(第2入力データ)とし、当該入力データと、各ノード間の重み係数とを用いて、ニューラルネットワークの演算処理を行う。各中間ノード及び出力ノードでは、前段の層から入力されるデータと重み係数とを乗算し(式(2−1)参照)、これらの乗算結果を加算する。すなわち、当該入力されるデータと重み係数との積和演算を行う。積和演算の結果を活性化関数の入力変数として、活性化関数の出力値を計算する(式(2−2)参照)。
このように演算処理部19は、対数読出モード用のニューラルネットワークの演算処理を行う回路と、線形読出モード用のニューラルネットワークの演算処理を行う回路との両方を備えている。
ここでは両モードのニューラルネットワークが別々に学習されたものであったが、これに限定されるものではない。例えば、両モードで行う画像認識の内容が同じ場合には、共通に学習されたニューラルネットワークを用いてもよい。但し、この場合も、対数読出モードでは、対数画素データと対数重み係数を用い、線形読出モードでは、画素データと重み係数とを用いる。各中間ノード及び各出力ノードでの演算も、上述のように各モードで異なる。
図14は、本実施形態に係る固体撮像装置の動作の一例のフローチャートである。制御部15がモード指示部25からモードデータを読み出す(S201)。モードデータが対数読出モード及び線形読出モードのいずれを指示しているかを確認する(S202)。対数読出モードが指示されている場合は、制御部15は画素アレイ部11の各対数画素21Aから画素信号を読み出すように各部を制御する(S203)。この後の処理は、図7のステップS102〜S110と同様である(S204)。
線形読出モードが指示されている場合は、制御部15は画素アレイ部11の各線形画素21Bから画素信号を読み出すように各部を制御する(S205)。この後の処理は図15に示される。
図15は、図14のステップS205に続く動作の一例のフローチャートである。図7のフローチャートと同様のステップの処理については適宜説明を省略する。
各線形画素21Bから読み出された画素信号をカラム処理部13でAD変換し(S206)、AD変換により得られた各画素の画素データの集合を、画像データとしてデータ記憶部18に格納する(S207)。
演算処理部19は、データ記憶部18から画像データを読み出し(S208)、データ記憶部18から、線形読出モード用のニューラルネットワークにおける各ノード間の重み係数を読み出す(S209)。
演算処理部19は、各画素21の画素データを入力データとしてニューラルネットワークの各入力ノードに割り当てる(S210)。どの入力ノードにどの画素21が対応付けられるかは学習時に予め定めておく。画素21と入力ノードとを1対1で対応づけることは一例に過ぎず、他の手法で、各入力ノードに割り当てる入力データを生成してもよい。
演算処理部19は、各入力ノードに割り当てた入力データと、各中間ノード及び各入力ノード間の重み係数とに基づき、各中間ノードの演算を行う(S211)。すなわち、各入力ノードに対する重み係数と入力データとを乗算し、乗算結果の総和を計算する。つまり、重み係数と入力データとの積和演算を行う。演算処理部19は、積和演算の結果を入力変数として、活性化関数を計算する(同S211)。活性化関数の出力値を、各中間ノードの出力値とする。各中間ノードの出力値は、次段の出力層に入力されるデータとなる。
各中間ノードの出力値と、各中間ノード及び各出力ノード間の重み係数とに基づき、各出力ノードの演算を行う(S212)。すなわち、各中間ノードに対する重み係数と入力されるデータとを乗算し、乗算結果の総和を計算する。つまり、重み係数と入力されるデータとの積和演算を行う。演算処理部19は、積和演算の結果を入力変数として、活性化関数を計算する(同S212)。活性化関数の出力値を、各出力ノードの出力値とする。
演算処理部19は、各出力ノードの出力値に基づき、判定処理を行う(S213)。一例として、最も大きい出力値を算出した出力ノードを特定し、特定した出力ノードに割り当てられているクラスを画像認識の結果として取得する。演算処理部19は、画像認識の結果を示すデータをデータ記憶部18に格納する。
CPU17は、画像認識の結果を示すデータをデータ記憶部18から読み出して、外部の装置に出力する(S214)。外部の装置は、一例として、本装置が搭載されたデバイスで実行されているアプリケーションプログラムを実行するプロセッサ等の装置である。外部の装置では、画像認識の結果に応じて、読出モードを切り替えることを決定してもよい。例えば対数読出モードから線形読出モードに切り替える。外部の装置は、切り替え先のモードを指定したモードデータを、入出力端子24又はCPU17を介してモード指示部25に書き込む。以下、モードの切り替えについて詳細に説明する。
上述したように、対数画素は、線形画素に比べてノイズが多いものの、ダイナミックレンジが広いという特性を有しており、線形画素は、対数画素に比べて、ダイナミックレンジが狭いものの、低ノイズ特性を有している。このような特性の違いを利用して、対数読出モードと線形読出モードを切り替えることで、目的に応じた画像認識を行うことができる。例えば、センシングを低消費電力で行う目的で対数読出モードを利用し、センシングで検出されたオブジェクトを高精度に識別するために線形読出モードを利用する。
具体例として、人の顔が写っているか否かの検出を対数読出モードを用いて行い、人の顔が写っていることが検出されたら、線形読出モードに切り替え、当該人の識別(例えば事前に登録された複数の人のいずれかに該当するかなど)を行う。別の例として、自動車のナンバープレートが写っているか否かの検出を対数読出モードで行い、ナンバープレートが写っていることが検出されたら、線形読出モードに切り替え、ナンバープレートの番号を識別する。
(変形例1)
対数読出モードか線形読出モードかに応じて、AD変換の設定分解能(ビット数)を変更してもよい。一例として、線形読出モードのビット数を、対数読出モードのビット数より大きくしてもよい。具体例として、線形画素のビット数が10〜12ビット、対数読出モードのビット数が8ビットである。ビット数を少なくすることで、演算量が低減するため、対数読出モードでの消費電力をより一層低減できる。これらの数値の例は一例であり、それぞれどのような値のビット数でもよい。両モードでAD変換のビット数が同じでもよい。
対数読出モードか線形読出モードかに応じて、AD変換の設定分解能(ビット数)を変更してもよい。一例として、線形読出モードのビット数を、対数読出モードのビット数より大きくしてもよい。具体例として、線形画素のビット数が10〜12ビット、対数読出モードのビット数が8ビットである。ビット数を少なくすることで、演算量が低減するため、対数読出モードでの消費電力をより一層低減できる。これらの数値の例は一例であり、それぞれどのような値のビット数でもよい。両モードでAD変換のビット数が同じでもよい。
(変形例2)
第2の実施形態では2種類の画素として対数画素と線形画素を用いる例を示したが、線形画素の代わりに、他の種類の画素を用いてもよい。
第2の実施形態では2種類の画素として対数画素と線形画素を用いる例を示したが、線形画素の代わりに、他の種類の画素を用いてもよい。
例えば、入射されるフォトン数をカウントし、画素信号として出力するフォトカウント型画素(デジタル画素)を用いてもよい。フォトカウント型画素では、単一のフォトンの入射を検出できるSPAD(Single Photon Avalanche Diode)を用いる。フォトンが入射されたSPADから出力されるパルスをカウントすることで画素信号を生成する。
また、他の画素例として、被写体との距離を測定する測距画素を用いてもよい。測距画素の具体例として、ITOF(Indirect Time Of Flight)技術を用いた画素がある。この画素では、フォトダイオードを用いて変調したパルス光が反射してくるときの位相差を電荷量として検出し、これを画素信号とする。
ここに例示した画素は、対数画素(第1画素)と異なる種類の画素である第2画素の一例に対応する。これらの画素を用いた場合、読み出した画素信号の処理は、線形画素の場合と同様である。すなわち、ここに例示した画素を用いる場合、第2の実施形態の説明において線形読出モード用として記載した箇所を、当該画素の読出モード用として読み替えればよい。例えば線形読出モード用のニューラルネットワークは、当該画素の読出モード用のニューラルネットワークと読み替えればよい。
(第3の実施形態)
上述した第2の実施形態では対数画素と線形画素が別々の画素として独立に存在したが、第3の実施形態では対数画素と線形画素との両方の機能を有する画素(以下、ハイブリッド画素と呼ぶ)を用いる。
上述した第2の実施形態では対数画素と線形画素が別々の画素として独立に存在したが、第3の実施形態では対数画素と線形画素との両方の機能を有する画素(以下、ハイブリッド画素と呼ぶ)を用いる。
図16は、第3の実施形態に係る固体撮像装置の構成例を示すブロック図である。図11の画素アレイ部11における対数画素21A及び線形画素21Bが、ハイブリッド画素21Cに置換されている。ハイブリッド画素21Cは、対数画素21Aと異なる種類の画素である第2画素の一例に対応する。
図17は、ハイブリッド画素21Cの回路構成の一例を示す。ハイブリッド画素21Cの構成は、基本的には図3に示した対数画素の構成と、図13に示した線形画素の構成とを1つ画素内に組み込んだものである。図17において、図3及び図13と同一の要素には同一の符号を付してある。但し、図3のSELはSEL1に変更され、図13のSEL、TRGはSEL2、TRG2に変更されている。以下、図3及び図13の構成との差分を中心に説明する。
ハイブリッド画素21Cは、フォトダイオード71と、対数画素読出部(第1読出部)75と、線形画素読出部(第2読出部)76とを備えている。対数画素読出部75は、図3の対数画素の構成(フォトダイオード71を除く)に対応し、線形画素読出部76は、図13の線形画素の構成(フォトダイオード71を除く)に対応する。但し、対数画素読出部75は転送トランジスタ72を新たに含む。転送トランジスタ72はフォトダイオード71と接続ノードN1との間に配置されている。
ハイブリッド画素21Cにおいて、フォトダイオード71は、対数画素読出部75と線形画素読出部76とに共通に接続されている。フォトダイオード71は、対数読出モードと線形読出モードとの両方で共通に用いられる。本実施形態の対数読出モードでは対数画素読出部75を用いて読み出しを行い(第1読出処理)、線形読出モードでは線形画素読出部76を用いて読み出しを行う(第2読出処理)。フォトダイオード71のカソード端子は、転送トランジスタ62のソース端子と、転送トランジスタ72のソース端子とに接続されている。転送トランジスタ72のドレイン端子は接続ノードN1に接続されている。転送トランジスタ72のゲート端子は、垂直駆動部12に接続されている。転送トランジスタ72は、垂直駆動部12からの転送信号TRG1によって制御される。対数読出モードを実行する場合は、転送トランジスタ72はオン状態にされる。
制御部15は、対数読出モードを実行する場合は、転送トランジスタ72をオン状態にし続け、転送トランジスタ62をオフ状態にし続ける。この状態で、対数画素読出部75を用いて画素信号の読み出しを行う。この動作は、第1の実施形態の説明で記載した対数画素の読み出しと同様である。
一方、制御部15は、線形読出モードを実行する場合は、転送トランジスタ72をオフにし続ける。この状態で、線形画素読出部76を用いて画素信号の読み出しを行う。この動作は、第2の実施形態の説明で記載した線形画素の読み出しと同様である。
以上、本実施形態によれば、ハイブリッド画素を用いたことにより画素領域を有効に活用できるため、同じ面積内により多くの画素を配置することができる。
(変形例1)
図17に示したハイブリッド画素21Cの構成は一例であり、様々な変形が可能である。
例えば、図17の対数画素読出部75に、図8のバッファ回路40とリセットトランジスタ37を追加することも可能である。
図17に示したハイブリッド画素21Cの構成は一例であり、様々な変形が可能である。
例えば、図17の対数画素読出部75に、図8のバッファ回路40とリセットトランジスタ37を追加することも可能である。
図18に、図17の対数画素読出部75に、バッファ回路40とリセットトランジスタ37を追加した回路構成の例を示す。バッファ回路40とリセットトランジスタ37の構成及び動作は図8を用いて行った説明と同様である。また、バッファ回路40とリセットトランジスタ37を用いて行うCDS処理も、図8を用いて行った説明と同様である。
(変形例2)
図17の対数画素読出部75に、図9のイベント検出部80を追加することも可能である。
図17の対数画素読出部75に、図9のイベント検出部80を追加することも可能である。
図19に、図18の対数画素読出部75にイベント検出部80を追加した回路構成の例を示す。イベント検出部80の構成及び動作は図9及び図10を用いて行った説明と同様である。イベント検出部80を図17の対数画素読出部75に追加することも可能である。
(変形例3)
図20は、図16の固体撮像装置の動作例を示すフローチャートである。ここではハイブリッド画素21Cの構成として、図19のイベント検出部80を備えた回路構成を用いる場合を想定する。
図20は、図16の固体撮像装置の動作例を示すフローチャートである。ここではハイブリッド画素21Cの構成として、図19のイベント検出部80を備えた回路構成を用いる場合を想定する。
制御部15は、各ハイブリッド画素21Cのイベント検出部80を制御してイベントの検出有無を判定する(S301)。イベントの検出は、一例として、コントラストの変化を検出(例えば物体を検出)することに相当する。各ハイブリッド画素21Cから検出信号を受信した場合は、各ハイブリッド画素21Cにおいてイベントの検出有りを判定し、非検出信号を受信した場合あるいは検出信号を受信しない場合は、各ハイブリッド画素21Cにおいてイベントの検出無しを判定する。
全てのハイブリッド画素21Cでイベントの検出無しと判定された場合(NO)、一定時間後に本ステップを再度繰り返す。イベントの検出有りと判定と判定されたハイブリッド画素21Cが存在する場合(YES)、モード指示部25からモードデータを読み出し(S302)。モードデータの値を確認する(S303)。
モードデータの値が対数読出モードを示す場合は、イベントの検出有りと判定と判定されたハイブリッド画素21Cについて、対数読出モードの処理を実行する(S304)。この処理は図14のステップS203、S204と同様である。この際、リセットトランジスタ37を用いてCDS処理を行ってもよいし、CDS処理を行わずに、画素信号の読み出しを行う構成も可能である。また、ニューラルネットワークの各入力ノードに画素データを割り当てる際、イベントが検出されなかったハイブリッド画素については、前回と同じ画素データ(対数画素読出部75から読み出した画素信号のデータ)を用いればよい。
一方、モードデータの値が線形読出モードを示す場合は、イベントの検出有りと判定と判定されたハイブリッド画素21Cについて、線形読出モードの処理を実行する(S305)。この処理は図14のステップS205及び図15のS206〜S214と同様である。なお、線形画素読出部76からの読み出しにおいても、対数画素読出部75と同様にCDS処理を行うことも可能である(このことは第2の実施形態でも同様である)。また、ニューラルネットワークの各入力ノードに画素データを割り当てる際、イベントが検出されなかったハイブリッド画素については、前回と同じ画素データ(線形画素読出部76から読み出した画素信号のデータ)を用いればよい。なお、データ記憶部18又は演算処理部19の内部バッファには、線形読出モード及び対数読出モード別に、画素データを保存するものとする。本スローチャートの処理を一定時間毎に繰り返してもよい。
図21は、図16の固体撮像装置の動作の他の変形例を示すフローチャートである。図20のフローチャートのステップS304の後に、ステップS306、S307が追加されている。ステップS306では、ステップS304の対数読出モードによる画像認識の結果がモード切替条件を満たしたかを判断する。モード切替条件は、一例として所定のオブジェクトを検出することであるが、これに限られず、何でもよい。モード切替条件を満たしていない場合(NO)、本フローチャートの処理を終了する。モード切替条件を満たしている場合は、モード指示部25のモードデータの値を線形読出モードを示すように変更する。モードデータの値を変更する主体は、CPU17でもよいし、外部の装置でもよいし、それ以外の装置でもよい。これにより次回以降は、線形読出しモードの処理(S305)が実行される。これにより、モード切替条件が満たされるまでは対数読出モードで低消費電力の画像認識を行い、モード切替条件が満たされた後は、線形読出モードに切り替えて高精度の画像認識を行うといったことが可能になる。
図20及び図21のフローチャートと同様の処理は、第2の実施形態に係る固体撮像装置(図11参照)でも実施可能である。例えば、予め対数画素21Aと線形画素21Bとの対応づけを行っておき、対応付けの情報を、制御部15の内部バッファ、又は制御部15がアクセス可能な記憶部に格納しておく。制御部15は、各対数画素21Aのイベント検出部80を用いてイベント検出の判定を行う。イベントが検出された場合、モードデータの値を確認する。モードデータの値が対数読出モードを示すならば、対数画素21Aから読み出しを行う。モードデータの値が線形読出モードを示すならば、対数画素21Aに対応付けられた線形画素21Bから読み出しを行う。それ以外の動作は本変形例3の説明と同様である。
(電子機器の構成)
第1〜第3の固体撮像装置は、例えばスマートフォン、タブレット又は携帯電話などの撮像機能を有する移動体装置、デジタルスチルカメラやビデオカメラ等の撮像機器、監視カメラ又は車載カメラなど、様々な電子機器に用いることができる。
第1〜第3の固体撮像装置は、例えばスマートフォン、タブレット又は携帯電話などの撮像機能を有する移動体装置、デジタルスチルカメラやビデオカメラ等の撮像機器、監視カメラ又は車載カメラなど、様々な電子機器に用いることができる。
図22は、本技術に係る電子機器の構成の一例を示すブロック図である。図22の電子機器100は、レンズ群101等を含む光学系、撮像素子102、DSP103、CPU104、表示部105、DSP106、操作部107、電源部108及びメモリ110等を有する。CPU104及びDSP106により処理回路111が構成される。DSP103、CPU104、表示部105、DSP106、操作部107、電源部108及びメモリ110がバス109を介して相互に接続されている。撮像素子102は一例として第1〜第3の実施形態に係る撮像素子10に対応し、DSP103は信号処理部16に対応し、DSP106は演算処理部19に対応し、メモリ110はデータ記憶部18に対応する。また、処理回路111は、一例として第1〜第3の実施形態に係る処理部26に対応する。
レンズ群101は、被写体からの入射光を取り込んで撮像素子102の撮像面上に結像する。撮像素子102は、レンズ群101によって撮像面上に結像された入射光の光量を画素単位で電気信号に変換して画素信号として出力する。
表示部105は、液晶表示装置、有機EL(electro luminescence)表示装置等のパネル型表示装置である。撮像素子102で撮像された動画又は静止画を表示する。また表示部105は、第1〜第3の実施形態に係る固体撮像装置による画像認識の結果を表示する。
操作部107は、ユーザによる操作の下に、電子機器100が持つ様々な機能について操作指令を発する。電源部108は、DSP103、メモリ110、表示部105、DSP106、及び操作部107の動作電源となる各種の電源を、これら供給対象に対して適宜供給する。操作部107又はCPU104等から撮像素子102の入出力端子24を介してモード指示部25にモードデータを提供するように構成されてもよい。
なお、上述の実施形態は本開示を具現化するための一例を示したものであり、その他の様々な形態で本開示を実施することが可能である。例えば、本開示の要旨を逸脱しない範囲で、種々の変形、置換、省略又はこれらの組み合わせが可能である。そのような変形、置換、省略等を行った形態も、本開示の範囲に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
また、本明細書に記載された本開示の効果は例示に過ぎず、その他の効果があってもよい。
なお、本開示は以下のような構成を取ることもできる。
[1]光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理部と、
を備えた固体撮像装置。
[2]前記第1画素信号は電圧値を表し、前記電圧値は、所定値を底とする電流値の対数に比例する関係にあり、
前記処理部は、前記第1画素信号の値に、前記所定値を真数に含む対数を乗じることにより、前記第1入力データを生成する
[1]に記載の固体撮像装置。
[3]前記所定値はネイピア数である
[2]に記載の固体撮像装置。
[4]前記所定値を真数に含む前記対数の底は2である
[2]又は[3]に記載の固体撮像装置。
[5]制御部を備え、
前記画素アレイ部は、前記複数の第1画素と異なる種類の複数の第2画素を有し、
前記制御部は、前記複数の第1画素から前記第1画素信号を読み出す第1読出処理と、前記複数の第2画素から複数の第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
[1]〜[4]のいずれか一項に記載の固体撮像装置。
[6]前記制御部は、前記第1読出処理及び前記第2読出処理のいずれかを指示する指示データに従って、前記第1読出処理及び前記第2読出処理のいずれかを選択する
[5]に記載の固体撮像装置。
[7]前記第2画素は、光量に対して線形特性の電気信号を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[8]前記第2画素は、入射されるフォトン数のカウント値を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[9]前記第2画素は、照射した光の反射光の前記光との位相差を表す電荷量を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[10]前記第1画素は、光電変換部と、前記光電変換部から対数特性の電気信号を前記画素信号として読み出す第1読出部と、前記光電変換部から線形特性の電気信号を第2画素信号として読み出す第2読出部とを含み、
前記制御部は、前記第1読出部を用いて前記第1画素信号を読み出す第1読出処理と、前記第2読出部を用いて前記第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
[1]〜[9]のいずれか一項に記載の固体撮像装置。
[11]前記第1ニューラルネットワークの前記演算処理により、複数の前記第1画素信号が表す画像の画像認識を行う
[1]〜[10]のいずれか一項に記載の固体撮像装置。
[12]
光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部を含む撮像素子と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理回路と、
を備えた電子機器。
[1]光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理部と、
を備えた固体撮像装置。
[2]前記第1画素信号は電圧値を表し、前記電圧値は、所定値を底とする電流値の対数に比例する関係にあり、
前記処理部は、前記第1画素信号の値に、前記所定値を真数に含む対数を乗じることにより、前記第1入力データを生成する
[1]に記載の固体撮像装置。
[3]前記所定値はネイピア数である
[2]に記載の固体撮像装置。
[4]前記所定値を真数に含む前記対数の底は2である
[2]又は[3]に記載の固体撮像装置。
[5]制御部を備え、
前記画素アレイ部は、前記複数の第1画素と異なる種類の複数の第2画素を有し、
前記制御部は、前記複数の第1画素から前記第1画素信号を読み出す第1読出処理と、前記複数の第2画素から複数の第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
[1]〜[4]のいずれか一項に記載の固体撮像装置。
[6]前記制御部は、前記第1読出処理及び前記第2読出処理のいずれかを指示する指示データに従って、前記第1読出処理及び前記第2読出処理のいずれかを選択する
[5]に記載の固体撮像装置。
[7]前記第2画素は、光量に対して線形特性の電気信号を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[8]前記第2画素は、入射されるフォトン数のカウント値を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[9]前記第2画素は、照射した光の反射光の前記光との位相差を表す電荷量を前記第2画素信号として生成する画素である
[5]に記載の固体撮像装置。
[10]前記第1画素は、光電変換部と、前記光電変換部から対数特性の電気信号を前記画素信号として読み出す第1読出部と、前記光電変換部から線形特性の電気信号を第2画素信号として読み出す第2読出部とを含み、
前記制御部は、前記第1読出部を用いて前記第1画素信号を読み出す第1読出処理と、前記第2読出部を用いて前記第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
[1]〜[9]のいずれか一項に記載の固体撮像装置。
[11]前記第1ニューラルネットワークの前記演算処理により、複数の前記第1画素信号が表す画像の画像認識を行う
[1]〜[10]のいずれか一項に記載の固体撮像装置。
[12]
光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部を含む撮像素子と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理回路と、
を備えた電子機器。
10:撮像素子、11:画素アレイ部、12:垂直駆動部、13:カラム処理部、14:水平駆動部、15:制御部、16:信号処理部、17:CPU、18:データ記憶部、19:演算処理部、21:対数画素、21A:対数画素、21B:線形画素、21C:ハイブリッド画素、22:画素駆動線、23:垂直信号線、24:入出力端子、25:モード指示部、26:処理部、31、61、71:フォトダイオード、32、33、34、35、36、37、38、39、62、63、64、65、72:MOSトランジスタ、N1、N2:接続ノード、N3:リセットノード、40:バッファ回路、66:FDノード、41:入力層、42:中間層、43:出力層、51:セレクタ、52:加算器、53:減算器、54:絶対値演算器、55:べき乗演算器、56:フリップフロップ回路、80:イベント検出部、81:減算器、82:量子化器、83、84:コンデンサ、85:インバータ、86:スイッチ、87:コンパレータ、100:電子機器、101:レンズ群、102:撮像素子、103、106:DSP、104:CPU、105:表示部、107:操作部、108:電源部、109:バス、110:メモリ、A1〜Aq:入力ノード(入力ユニット)、B1〜Bj:中間ノード(演算ユニット)、C1〜Cn:出力ノード(演算ユニット)
Claims (12)
- 光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理部と、
を備えた固体撮像装置。 - 前記第1画素信号は電圧値を表し、前記電圧値は、所定値を底とする電流値の対数に比例する関係にあり、
前記処理部は、前記第1画素信号の値に、前記所定値を真数に含む対数を乗じることにより、前記第1入力データを生成する
請求項1に記載の固体撮像装置。 - 前記所定値はネイピア数である
請求項2に記載の固体撮像装置。 - 前記所定値を真数に含む前記対数の底は2である
請求項2に記載の固体撮像装置。 - 制御部を備え、
前記画素アレイ部は、前記複数の第1画素と異なる種類の複数の第2画素を有し、
前記制御部は、前記複数の第1画素から前記第1画素信号を読み出す第1読出処理と、前記複数の第2画素から複数の第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
請求項1に記載の固体撮像装置。 - 前記制御部は、前記第1読出処理及び前記第2読出処理のいずれかを指示する指示データに従って、前記第1読出処理及び前記第2読出処理のいずれかを選択する
請求項5に記載の固体撮像装置。 - 前記第2画素は、光量に対して線形特性の電気信号を前記第2画素信号として生成する画素である
請求項5に記載の固体撮像装置。 - 前記第2画素は、入射されるフォトン数のカウント値を前記第2画素信号として生成する画素である
請求項5に記載の固体撮像装置。 - 前記第2画素は、照射した光の反射光の前記光との位相差を表す電荷量を前記第2画素信号として生成する画素である
請求項5に記載の固体撮像装置。 - 制御部を備え、
前記第1画素は、光電変換部と、前記光電変換部から対数特性の電気信号を前記第1画素信号として読み出す第1読出部と、前記光電変換部から線形特性の電気信号を第2画素信号として読み出す第2読出部とを含み、
前記制御部は、前記第1読出部を用いて前記第1画素信号を読み出す第1読出処理と、前記第2読出部を用いて前記第2画素信号を読み出す第2読出処理とを選択的に実行し、
前記処理部は、前記第1読出処理が実行された場合に、前記第1ニューラルネットワークの前記演算処理を行い、
前記処理部は、前記第2読出処理が実行された場合に、複数の前記第2画素信号に基づく複数の第2入力データと、複数の第2ノード間の結合の強さを表す重み係数とに基づいて、第2ニューラルネットワークの演算処理を行う
請求項1に記載の固体撮像装置。 - 前記処理部は、前記第1ニューラルネットワークの前記演算処理により、複数の前記第1画素信号が表す画像の画像認識を行う
請求項1に記載の固体撮像装置。 - 光量に対して対数特性の電気信号を第1画素信号として生成する複数の第1画素を有する画素アレイ部を含む撮像素子と、
前記画素アレイ部から読み出された複数の前記第1画素信号に基づく複数の第1入力データと、複数の第1ノード間の結合の強さを対数で表した複数の対数重み係数とに基づいて、第1ニューラルネットワークの演算処理を行う処理回路と、
を備えた電子機器。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019092323A JP2020188386A (ja) | 2019-05-15 | 2019-05-15 | 固体撮像装置及び電子機器 |
US17/608,764 US12010434B2 (en) | 2019-05-15 | 2020-05-14 | Solid-state imaging apparatus and electronic device to perform arithmetic operation of neural network |
CN202080034257.2A CN113812141A (zh) | 2019-05-15 | 2020-05-14 | 固态成像装置与电子器件 |
PCT/JP2020/019272 WO2020230850A1 (ja) | 2019-05-15 | 2020-05-14 | 固体撮像装置及び電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019092323A JP2020188386A (ja) | 2019-05-15 | 2019-05-15 | 固体撮像装置及び電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020188386A true JP2020188386A (ja) | 2020-11-19 |
Family
ID=73222097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019092323A Pending JP2020188386A (ja) | 2019-05-15 | 2019-05-15 | 固体撮像装置及び電子機器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12010434B2 (ja) |
JP (1) | JP2020188386A (ja) |
CN (1) | CN113812141A (ja) |
WO (1) | WO2020230850A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022077560A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
JP2022077555A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
JP2022077562A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220254179A1 (en) * | 2020-12-07 | 2022-08-11 | Skyworks Solutions, Inc. | Systems, devices and methods related to character recognition in fabrication of packaged modules |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2135857A1 (en) | 1994-01-03 | 1995-07-04 | Shay-Ping Thomas Wang | Neural network utilizing logarithmic function and method of using same |
DE69528386T2 (de) | 1995-12-01 | 2004-07-22 | Qinetiq Ltd. | Abbildungssystem |
JP3607074B2 (ja) | 1998-05-01 | 2005-01-05 | 株式会社ルネサステクノロジ | 画像感知および処理のための装置 |
US20120211642A1 (en) * | 2009-10-27 | 2012-08-23 | Konica Minolta Opto, Inc. | Solid-State Imaging Device |
US8705857B2 (en) * | 2011-08-10 | 2014-04-22 | The United States Of America, As Represented By The Secretary Of The Navy | System and method of image processing perceptual visibility of imagery |
WO2013128998A1 (ja) | 2012-02-27 | 2013-09-06 | ソニー株式会社 | 撮像素子および電子機器 |
KR101958910B1 (ko) * | 2012-10-26 | 2019-03-15 | 에스케이 텔레콤주식회사 | 영상보정의 가속화를 위한 영상보정 장치 및 그 방법 |
JP6166981B2 (ja) | 2013-08-09 | 2017-07-19 | 日本放送協会 | 表情解析装置及び表情解析プログラム |
CN107005666B (zh) * | 2014-12-11 | 2020-08-18 | 索尼半导体解决方案公司 | 摄像装置、摄像装置的驱动方法和电子设备 |
JP6716902B2 (ja) | 2015-12-11 | 2020-07-01 | 株式会社ニコン | 電子機器 |
JP2019004358A (ja) * | 2017-06-16 | 2019-01-10 | 株式会社半導体エネルギー研究所 | 撮像装置および撮像システム |
CN111417983B (zh) * | 2017-11-14 | 2023-11-24 | 苹果公司 | 基于事件相机的可变形对象跟踪 |
US20210232899A1 (en) * | 2018-02-06 | 2021-07-29 | Tokyo Institute Of Technology | Neural electronic circuit |
-
2019
- 2019-05-15 JP JP2019092323A patent/JP2020188386A/ja active Pending
-
2020
- 2020-05-14 CN CN202080034257.2A patent/CN113812141A/zh active Pending
- 2020-05-14 WO PCT/JP2020/019272 patent/WO2020230850A1/ja active Application Filing
- 2020-05-14 US US17/608,764 patent/US12010434B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022077560A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
JP2022077555A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
JP2022077562A (ja) * | 2020-11-12 | 2022-05-24 | サミー株式会社 | ぱちんこ遊技機 |
Also Published As
Publication number | Publication date |
---|---|
CN113812141A (zh) | 2021-12-17 |
WO2020230850A1 (ja) | 2020-11-19 |
US12010434B2 (en) | 2024-06-11 |
US20220264003A1 (en) | 2022-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020230850A1 (ja) | 固体撮像装置及び電子機器 | |
US10257452B2 (en) | Solid-state image pickup apparatus, signal processing method for a solid-state image pickup apparatus, and electronic apparatus | |
JP7145201B2 (ja) | フォトセンサーにおける高強度光を検出すること | |
US10764526B1 (en) | Spatial derivative pixel array with adaptive quantization | |
US9344649B2 (en) | Floating point image sensors with different integration times | |
US20180167571A1 (en) | Imaging device and electronic apparatus | |
JP5874912B2 (ja) | 高ダイナミックレンジイメージセンサ | |
JP2018530250A (ja) | 高ダイナミックレンジ固体画像センサおよびカメラシステム | |
CN106664379B (zh) | 高动态范围像素和用于操作高动态范围像素的方法 | |
US9344635B2 (en) | Conditional-reset, temporally oversampled image sensor | |
US20190028658A1 (en) | Data digitization and display for an imaging system | |
TW201911857A (zh) | 光感測器、包含此光感測器之電子裝置以及利用動作預測改變光感測器中像素的曝光時間之方法 | |
US6809666B1 (en) | Circuit and method for gray code to binary conversion | |
JP2013172205A (ja) | 光電変換装置および撮像システム | |
KR20160103849A (ko) | 다른 기판 바이어스 전압들을 갖는 이미지 센서 | |
WO2017101559A1 (zh) | 图像传感器及具有其的终端、成像方法 | |
KR20200113817A (ko) | 이미지 센서 | |
WO2017101558A1 (zh) | 图像传感器和具有其的终端、成像方法 | |
Gouveia et al. | A reconfigurable cmos pixel for applying tone mapping on high dynamic range images | |
US10362279B2 (en) | Image capturing device | |
KR102351950B1 (ko) | 이미지 신호 프로세서를 포함하는 전자 장치 | |
KR20150010492A (ko) | 아날로그 디지털 컨버터 및 이를 포함하는 이미지 센서 | |
JP2013038661A (ja) | A/d変換器、固体撮像装置および電子情報機器 | |
WO2023047975A1 (ja) | 光電変換装置、撮像装置、制御方法、及びコンピュータプログラム | |
US10785436B1 (en) | Image sensor and transfer circuit and transfer method thereof |