(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024065329
(43)【公開日】2024-05-15
(54)【発明の名称】撮像装置および撮像装置の制御方法
(51)【国際特許分類】
G06N 3/045 20230101AFI20240508BHJP
H04N 25/00 20230101ALI20240508BHJP
H04N 23/60 20230101ALI20240508BHJP
G06N 3/0464 20230101ALI20240508BHJP
【FI】
G06N3/045
H04N5/335
H04N5/232 290
G06N3/0464
【審査請求】有
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022174141
(22)【出願日】2022-10-31
(11)【特許番号】
(45)【特許公報発行日】2023-11-28
(71)【出願人】
【識別番号】517048278
【氏名又は名称】LeapMind株式会社
(74)【代理人】
【識別番号】100213104
【弁理士】
【氏名又は名称】市川 茂
(72)【発明者】
【氏名】松田 総一
(72)【発明者】
【氏名】徳永 拓之
(72)【発明者】
【氏名】山橋 けい
【テーマコード(参考)】
5C024
5C122
【Fターム(参考)】
5C024CX03
5C024CY45
5C122EA22
5C122EA52
5C122EA68
5C122FG02
5C122FH23
5C122HA46
5C122HA86
5C122HA88
5C122HB01
5C122HB02
5C122HB10
(57)【要約】 (修正有)
【課題】取得した画像に対して高効率、かつ、高速に機械学習に係る演算を行う撮像装置及びその制御方法を提供する。
【解決手段】撮像装置1000は、複数の演算層を含む第1の機械学習モデルを用いて複数の画素から得られる信号を処理するための第1の機械学習演算手段200と、第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段400と、画像処理手段の結果である画像データを保持するための保持手段800と、第1の機械学習モデルと異なる第2の機械学習モデルを用いて、保持された画像データを処理するための第2の機械学習演算手段900と、を備える。第1の機械学習モデルは少なくとも畳み込み演算を行う畳み込み演算層の演算結果に対して量子化演算を行う量子化演算層を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素から得られる信号を処理するための第1の機械学習演算手段と、
前記第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段と、
前記画像処理手段の結果である画像データを保持するための保持手段と、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持手段に保持された画像データを処理するための第2の機械学習演算手段とを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う畳み込み演算層の演算結果に対して量子化演算を行う量子化演算層を含むことを特徴とする撮像装置。
【請求項2】
前記第2の機械学習モデルは前記第1の機械学習モデルとは異なるネットワーク構造を備え、少なくとも畳み込み演算を行う畳み込み演算層と畳み込み演算結果に対してプーリング演算を行うプーリング層とを含むことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記イメージセンサを制御するための同期信号を生成するための制御手段をさらに備え、
前記第1の機械学習演算手段における処理は前期同期信号に同期して行われることを特徴とする請求項1に記載の撮像装置。
【請求項4】
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を8bit以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項5】
前記イメージセンサは前記複数の画素におけるアナログ信号をデジタル信号に変換する変換手段をさらに備え、
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を前記変換手段による分解能以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項6】
前記画像処理手段において行う所定の画像処理には少なくともデモザイク処理及び符号化圧縮処理を含むことを特徴とする請求項1に記載の撮像装置。
【請求項7】
前記第1の機械学習モデルは前記複数の画素の信号に含まれるノイズを低減するための推論演算を行い、
前記第2の機械学習モデルは前記画像データにおいて所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項8】
前記画像処理手段の結果である画像データを表示するための表示手段をさらに備え、
前記表示手段は前記表示手段に表示する画像データに対応する前記第2の機械学習モデルにおける検出対象の検出結果を表示することを特徴とする請求項7に記載の撮像装置。
【請求項9】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号に対する推論演算を行い、
前記第2の機械学習演算手段は前記保持手段に保持された画像データの単位で所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項10】
前記所定の単位には8bit以上の画素値が1500以上含まれ、
前記第1の機械学習演算手段及び前記画像処理手段は前記単位に基づいてパイプライン的に順次処理を行うことを特徴とする請求項9に記載の撮像装置。
【請求項11】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号を一時的に保持するバッファ手段をさらに備え、
前記第1の機械学習演算手段が前記バッファ手段に一時的に保持された前記複数の画素の信号に対して第1の機械学習モデルを用いた処理を行うために読み出すデータレートは、前記バッファ手段に入力する際の前記複数の画素の信号のデータレートより遅いことを特徴とする請求項9または10に記載の撮像装置。
【請求項12】
前記第1の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第1の機械学習演算手段は前記イメージセンサにおける露出条件に基づいて機械学習モデルを切り替えることを特徴とする請求項1に記載の撮像装置。
【請求項13】
前記第2の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第2の機械学習演算手段において切り替える複数の機械学習モデルは人体の少なくとも一部を検出する機械学習モデルを含むことを特徴とする請求項12に記載の撮像装置。
【請求項14】
前記第1の機械学習演算手段における前記第1の機械学習モデルは、前記第2の機械学習モデルとは異なる学習方法を用いて外部装置において事前に学習された学習済みの機械学習モデルであって、
前記学習方法には前記第1の機械学習モデルに量子化演算を含んだ形で行う学習ステップが含まれていることを特徴とする請求項1に記載の撮像装置。
【請求項15】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置の制御方法であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素の信号を処理するための第1の機械学習演算ステップと、
前記第1の機械学習演算ステップによって処理された信号に対して所定の画像処理を行う画像処理ステップと、
前記画像処理ステップの結果である画像データを保持するための保持ステップと、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持ステップに保持された画像データを処理するための第2の機械学習演算ステップとを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う畳み込み演算層の演算結果に対して量子化演算を行う量子化演算ステップを含むことを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置および撮像装置の制御方法に関する。
【背景技術】
【0002】
近年、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)が画像認識等のモデルとして用いられている。畳み込みニューラルネットワークは、畳み込み層やプーリング層を有する多層構造であり、並列的に多数の演算を必要とする。畳み込みニューラルネットワークによる演算を高速化する演算手法が様々考案されている(特許文献1など)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方で、IoT機器などの組み込み機器においても畳み込みニューラルネットワークを利用した画像認識や画質改善処理等が行われている。このような畳み込みニューラルネットワークを実現するためには、高速性や省電力性以外にも高い汎用性を備えるアクセラレータが必要となる。しかし、それぞれの性能はトレードオフの関係であり、特に汎用性を高めるためには一定の冗長性が必要であり、回路規模または消費電力に対しての演算効率性の低下につながる。そのため、CNNを処理するアクセラレータには高速性や省電力性に加えて汎用性も望まれている。
【0005】
上記事情を踏まえ、本発明は、IoT機器として画像を取得可能な撮像装置であり、取得した画像に対して高効率かつ高速に機械学習に係る演算を行う撮像装置および機械学習に係る演算を行う回路やモデルを高効率かつ高速に動作させるための撮像装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、この発明は以下の手段を提案している。
本発明の実施形態に係る撮像装置は、被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置であって、複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素から得られる信号を処理するための第1の機械学習演算手段と、前記第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段と、前記画像処理手段の結果である画像データを保持するための保持手段と、前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持手段に保持された画像データを処理するための第2の機械学習演算手段とを備え、前記第1の機械学習モデルは少なくとも畳み込み演算を行う畳み込み演算層の演算結果に対して量子化演算を行う量子化演算層を含むことを特徴とする。
【発明の効果】
【0007】
本発明の撮像装置および撮像装置の制御方法は、IoT機器として画像を取得可能な撮像装置であり、取得した画像に対して高効率かつ高速に機械学習に係る演算を行う撮像装置および機械学習に係る演算を行う回路やモデルを高効率かつ高速に動作させるための撮像装置の制御方法を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】第1の実施形態に係る撮像装置の機能ブロック図である。
【
図2】第1の実施形態に係るセンサの機能ブロック図である。
【
図3】第1の実施形態に係る第1機械学習演算部の機能ブロック図である。
【
図4】第1の実施形態に係るバッファの動作を説明するためのタイミングチャートである。
【
図5】第1の実施形態に係る機械学習モデルのネットワーク構造を示した図である。
【
図6】第1の実施形態に係る第2機械学習演算部の機能ブロック図である。
【
図7】第1の実施形態に係る特徴抽出部における各演算層を示した図である。
【
図8】第1の実施形態に係る撮像装置の制御方法を説明するためのフローチャートである。
【
図9】第2の実施形態に係る撮像装置の機能ブロック図である。
【
図10】第2の実施形態に係るバッファ及びISPの動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0009】
(第1の実施形態)
本発明の実施形態について、
図1から
図8を参照して説明する。
図1は、本実施形態に係る撮像装置1000を示す図である。
【0010】
[撮像装置1000]
図1は本実施形態に係る撮像装置の機能ブロック図である。同図を参照しながら、本実施形態に係る撮像装置1000について説明する。撮像装置1000はレンズ等の光学部材等の所定の集光装置によって生成される被写体像を取得するための装置で、一例としてデジタルカメラ、監視カメラおよび車載カメラ等であるが、スマートフォンやロボット等であって撮像手段を備える装置であれば本発明を適用することができる。なお、本実施形態に係る発明はバッテリー駆動などの消費電力量が限定されている組み込み機器などの製品に適用することが好適である。
【0011】
本実施形態の撮像装置1000は、センサ100、第1機械学習演算部200、センサI/F300、ISP400、入出力部500、表示部600、CPU700、メモリ800、第2機械学習演算部900を含む。
【0012】
センサ100は、不図示の光学手段により結像された被写体像を光電変換により電気信号に変換する個体撮像素子である。一例として、CMOSイメージセンサである。本実施形態のセンサ100は
図2で示すように、複数の画素110を少なくとも2000×1500画素よりも多い画素数を備える。それぞれの画素には110には所定のカラーフィルターを備えており、本実施形態のセンサ100はいわゆるベイヤー配列のカラーフィルターを備える。また、センサ100は、後述するCPU700が制御する不図示のセンサ制御部が生成する同期信号のタイミングに基づいて、光電変換により取得したアナログ的な電気信号をデジタル値へ変換するアナログデジタル変換回路(ADC)120を備える。さらに、アナログデジタル変換回路120の変換後の多ビットのデジタル信号を高速で出力可能な多チャンネルの高速I/F130を備える。
【0013】
ここで、本実施形態においてセンサ100が備えるアナログデジタル変換回路120は、各画素値を12bit以上のデジタル値へ変換可能な分解能を備え、不図示のセンサ制御部からの制御により複数の駆動モードで動作する。一例として、センサ100が備える全ての画素110からの信号をローリングシャッター動作で読み出し12bitのデジタル値を出力するモードや、センサ100が備える一部の画素110からの信号を一部加算または間引きをして読み出し10bitのデジタル値を出力するモードなどを備えてもよい。また、高画質動画モードとして、4Kまたは8Kフォーマットの画素数を1秒間に30フレームまたは60フレームを出力するモードを備えてもよい。なお、センサ100が出力する各画素110の信号はいわゆるRAW画像データであって、12bitまたは14bitのビット精度を備える情報を含む。
【0014】
第1機械学習演算部200は、センサ100の出力である多ビットのデジタル値であるRAW画像データを入力とし、この入力に対して所定の機械学習モデルによる演算を実行するための演算部である。
図3は、第1機械学習演算部200の機能ブロック図である。第1機械学習演算部200は、バッファ210、前処理部220、第1推論部230、後処理部240を含む。
【0015】
バッファ210は、センサ100の出力を受けとり一時的に保持するバッファである。本実施形態のセンサ100は水平同期信号(HD)の周期で所定の単位画素の画素値を繰り返し出力する。一例として、センサ100は一つの水平同期信号周期で1行分の画素値を順次出力する。つまり、センサ100が1500行の画素110を備える場合には、1水平同期において8bitよりも多い12bitまたは14bitの画素値を1500個分出力する。そして、水平同期信号周期の1500周期分の期間で1フレーム分の画素値を出力することになる。特に、機械学習モデルで画像を処理する場合には畳み込み演算を用いるため、複数行分の画素値を保持する必要がある。そのため、バッファ210には3行以上の複数行の画素値を保持することが可能な容量を有する。
【0016】
図4は、バッファ210の動作を説明するためのタイミングチャートである。本実施形態においては説明の簡略化のため、1行分の画素値をバッファ210に保持する例を示す。センサ100は垂直同期信号VDの周期で1画面分の画素値を出力する。そして、垂直同期信号VDの周期は複数の水平同期信号HDの周期に分割され、センサ100は水平同期信号HDの周期に基づいて所定の単位(例えば1行分)の画素値を出力する。
図4Aにおいて、センサ100から出力される画素値のデータ出力タイミングを示す。センサ100は水平同期信号HDのタイミングに同期して、期間Taにおいて画素A、画素B、画素Cのように画素値データを順次出力する。センサ100は画素値データを出力した期間Taの後は、各ブロックの電源を切るなど省電力動作を行う。そのため、複数の出力CHなどを用いて高速データ転送を行うことで、期間Taが短くなればなるほどセンサ100における電力削減につながる。
図4Bにおいて、バッファ210から出力される画素値のデータ出力タイミングを示す。水平同期信号HDのタイミングに同期して、期間Tbにおいて画素値のデータが順次読み出される。なお、バッファ210より後段においては、処理するデータレートのピーク値が遅くなればなるほど電力削減につながる。そのため、バッファ210より読み出す際にデータレートの変換を行うことが好ましい。つまり、バッファ210において、読み出す際のデータレートを、水平同期信号HDの周期の中で入力時のピークのデータレートよりも遅くすることにより、処理効率を向上する効果が得られる。
【0017】
図4において、バッファ210は1行分の画素値を保持する例を説明したが、これに限られるものではなく、後述の第1推論部230において複数行のデータが必要な場合には複数行を保持するようにしてもよい。例えば、第1推論部230において、3×3の重みを演算に用いる場合等においては、少なくとも3行分を保持するようにしてもよい。なお、バッファ210に保持する単位は行単位でなくてもよく、センサ100が所定の領域を単位として画素値を出力する場合には、当該領域を保持する単位としてもよい。
【0018】
図3において、前処理部220はバッファ210の出力を入力として、所定の処理を行う。前処理部220が行う処理の例としては、バッファ210に保持された画素値の並び替え、欠陥画素の補正、黒レベル補正、固定パターンノイズ補正等である。後述する第1推論部230の前段において所定の処理を実行することにより第1推論部230における処理精度を向上させることができる。前処理部220における所定の処理はルールベースの処理であり、欠陥画素の補正は周辺画素との比較に基づいて行われ、固定パターンノイズの補正は黒レベルから算出される補正値に基づいて行われる。
【0019】
第1推論部230は、機械学習モデルを用いた推論処理により画素値の補正を行う処理回路を含む。本実施形態において第1推論部230に含まれる機械学習モデルは、事前に撮像された画像に基づいて学習を済ませた状態で組み込まれる。例えば、機械学習モデルにより画像におけるノイズを低減するように学習する場合には、同一被写体かつ同一露出で、ノイズの少ない低感度での画像と、ノイズの多い高感度の画像を用意し、ノイズの少ない画像を教師データとしてノイズの多い画像を推論することで学習することが可能となる。なお、機械学習モデルはノイズを低減する学習以外にもまたは加えて、画像中のブレの低減や光学的な収差の低減などにおいても画像の品質を向上するように学習を行ってもよい。なお、第1推論部230に含まれる機械学習モデルは一例として、U-NET構造等のネットワーク構造を有するるニューラルネットワークであってもよい。
【0020】
ここで、第1推論部230に含まれる機械学習モデルには複数の演算層が含まれる多層構造を有し、各層においては重みを用いた畳み込み演算を行う。
図5は、第1推論部230に含まれる機械学習モデルのネットワーク構造を示した図である。第1推論部230に含まれる機械学習モデルは入力層231、畳み込み演算層232、量子化演算層233、出力層234を含み、畳み込み演算層232および量子化演算層233については複数層(n個)を含み、各層は交互に接続されているが、一部の層を飛び越して接続されてもよい。また機械学習モデルには、全結合層やプーリング層などの他の機能を有する層をさらに有してもよい。なお、第1機械学習演算部200に含まれる機械学習モデルは第1の機械学習モデルに相当する。
【0021】
入力層231には、入力信号INが入力される。入力信号INは、前処理部220の出力に基づき生成される複数の画素値に対応する信号であり、本実施形態においては8bit以上のビット精度を有する信号である。入力層は各入力信号INを複数の要素を備えるベクトルに変換する。変換されたベクトルは1層目の畳み込み演算層232-1の入力とされる。
【0022】
畳み込み演算層232は、入力されたベクトルまたは複数のベクトルを結合したテンソル(以下、アクティベーションという。)に対して重みWを用いた畳み込み演算を行う。特に、本実施形態の畳み込み演算層232においては、演算に用いるアクティベーション又は重みWは8bit以下に量子化されている。一例として、アクティベーションは8bit、重みWは1bitに量子化された値で行う。このように、量子化された低ビットで演算を行うことで、パラメータ自体を保持するメモリの小容量化、演算回路の省スペース化、演算速度の向上などの効果を得ることができる。なお、アクティベーションに関しては、演算負荷の低減等を目的として2bitまで量子化するようにしてもよい。
【0023】
量子化演算層233は、畳み込み演算層232における畳み込み演算結果を入力として、所定の関数を用いて量子化する演算を行う。量子化された畳み込み演算結果は次の畳み込み演算層232の入力となる。本実施形態において、畳み込み演算層232から出力される畳み込み演算結果である行列の各要素は16bitの整数であり、その量子化結果は入力信号INよりも低ビットであり、一例として8bitの整数である。この場合、以下の式1に示す関数を用いて量子化される。なお、量子化方法としては、関数を用いずに複数の閾値またはテーブル等を用いてもよい。2bitへ量子化する場合には3つの閾値のと比較により実現することができる。
【0024】
【0025】
図5に示されるように、複数の畳み込み演算層232と量子化演算層233により繰り返し演算を実行し、n回目の畳み込み演算層232-nの結果は出力層234に入力される。出力層234は機械学習モデルにおける演算結果の出力を行う。
【0026】
図3において、後処理部240は第1推論部230の演算結果を入力として、所定の処理を行い、水平同期信号に同期して演算結果のデータの出力を行う。本実施形態において、後処理部240が行う処理の例としては、画素値の並び替え、画素値の加算や間引き、シリアル信号変換、ヘッダ情報や同期信号の付加等である。後処理部240の処理によって、後段のブロックへ高速なデータ転送が可能となる。
【0027】
なお、第1機械学習演算部200の各機能の全てまたは一部は、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field-Programmable Gate Array)等のハードウェアを用いて実現されてもよい。第1機械学習演算部200は多くの演算資源が必要になる畳み込み演算において、その要素を量子化することで演算資源を削減することが可能である。センサ100と後述するISP400との接続は多チャンネルの高速通信で行われるため、大規模な演算回路を配置することはその通信の遅延となる懸念があった。しかし量子化技術を用いることにより、この演算回路の小規模化を図ることが可能となり、複数層を備える機械学習モデルでの演算が可能となる。
例えば、第1機械学習演算部200の各機能を構成するために、プログラム処理を実行するプロセッサと、ニューラルネットワークに関する演算を実行するアクセラレータとを組み合わせてもよい。具体的には、畳み込み演算や量子化演算を繰り返し実行するためのニューラルネットワーク演算用アクセラレータを、プロセッサと組み合わせて用いてもよい。
【0028】
図1の説明に戻り、撮像装置1000の構成についてさらに詳細に説明する。本実施形態において、センサI/F300、ISP400、入出力部500、表示部600、CPU700、メモリ800、第2機械学習演算部900は同一のシリコンチップ上に構成され、それぞれは高速の内部バスIBと接続されている。なお、十分に高速なデータ通信が行うことができる通信手段を用いる場合には、同一のシリコンチップ上に構成されていなくてもよい。
【0029】
センサI/F300は、第1機械学習演算部200の出力を受けて、内部バスIBにデータを出力する。一例として、センサI/F300は、第1機械学習演算部200から受け付けたデータを、後段の処理に用いられるようにメモリ800に出力する。また、別の例として、センサI/F300は、第1機械学習演算部200から受け付けたデータに対して、所定の画像処理を実行するために後述するISP400に出力する。なお、センサI/F300においてデータ形式の変換等を行うために一時的にデータを保持するためのバッファを設けるようにしてもよい。
【0030】
ISP400は、センサ100で取得された画素値に基づくデータ(以下、画像データという。)に対して所定の画像処理を選択的に実施する画像処理部である。一例としては、デモザイク処理、符号化圧縮処理、色調整処理、ガンマ補正処理などを行う。それぞれの処理はパイプライン化されており、入力される画像データに対して一貫して処理を実行し、処理結果を出力する。ISP400における処理結果は、入出力部500を介して外部に出力されてもよいし、表示部600に表示されてもよい。
【0031】
入出力部500は、撮像装置1000と不図示の外部装置との間で画像データ等の通信を行う。通信方法としては、ケーブル等を用いる有線手段であってもよいし、ケーブル等を用いない無線通信であってもよい。また、入出力部500は画像データ以外に外部装置から動作指示等を含むコマンドや撮像装置1000において動作する機械学習モデルや各種パラメータ等のプログラムを受信するようにしてもよい。
【0032】
表示部600は、撮像装置1000で撮像した画像データ等を表示するためのディスプレイを含み、画像データ以外にも所定のUI/UXや通知等を表示する。また、表示部600のディスプレイ上にタッチパネルを設けることにより操作部として利用してもよい。
【0033】
CPU700は、撮像装置1000の各ブロックを統括的に制御するプロセッサを含む制御部である。CPU700は、メモリ800に事前に保存されているプログラムを実行することで、様々な機能を実現する。一例として、不図示の操作部からのユーザー指示に基づいて、撮像装置1000の動作モードを切り替える制御を行う。動作モードには静止画モード、動画モード、夜景モード等が含まれる。また、CPU700は動作モードに応じて、メモリ800に事前に保持された機械学習モデルを第1機械学習演算部200または第2機械学習演算部900に設定をすることで、機械学習演算の制御を行う。また、CPU700は制御部として撮像装置1000を制御するためのクロックや同期信号の生成及び供給を行うセンサ制御部を含む構成としてもよい。
【0034】
メモリ800は、DRAM等で構成され、複数の保存領域には撮像装置1000の全体を制御するためのファームウェア、UIデータ、動作モードに関するデータ、機械学習モデルに関するデータ等を保持する。本実施形態において、機械学習モデルに関するデータには、ネットワーク情報、重み、量子化パラメータ等が含まれる。また、メモリ800は画像データを保持するための領域を含み、演算途中のバッファ領域および撮像された静止画や動画のデータを保持する記憶領域等も含まれる。本実施形態においてメモリ800は画像データを含む各種データやプログラムを保持する保持手段に相当する。
【0035】
第2機械学習演算部900は、ISP400によって処理された後の画像データを入力とし、この入力に対して所定の機械学習モデルによる演算を実行するための演算部である。
図6は、第2機械学習演算部900の機能ブロック図である。第2機械学習演算部900は、特徴抽出部910、第2推論部920、出力処理部930を含む。各ブロックはCPU700と同じか又は逓倍されたクロック信号に基づいて処理を行う。第2機械学習演算部900に含まれる機械学習モデルはU-NET構造とは異なる、例えばTransformer構造、再帰型ニューラルネットワーク構造等のネットワーク構造を有してもよい。
【0036】
特徴抽出部910は、機械学習モデルを用いた特徴抽出処理を行う処理回路を含む。本実施形態においては、事前に撮像された画像に基づいて学習を済ませた状態で組み込まれている。例えば、画像中の物体検出を行う機械学習モデルにより意図した物体を検出するように学習する場合には、アノテーションされた複数の画像を用意し、アノテーション結果を教師データとして物体を検出することで学習することが可能となる。なお、機械学習モデルは物体検出以外にも、姿勢検知、物体認識、物体追跡、画像中のブレの低減や光学的な収差の低減する画像の品質を向上する学習をするようにしてもよい。畳み込み演算層Lを複数備え、それぞれにおいて順次演算を実行する。演算を実行した結果は特徴量マップとして出力する。
【0037】
図7は、本実施形態の特徴抽出部910における各演算層Lを示した図である。特徴抽出部910には、入力される画像データに対して畳み込み演算を行う層とプーリング演算を行う層とにより繰り返し演算が行われる。本実施形態における特長量抽出部910においては、演算が行われるにつれ、元の画像データの縦横方向に対応するサイズは減少する。一方で、奥行き方向またはチャンネル方向のサイズは増加する。このような演算を実行する場合に、適切に特徴量を抽出するためには数行の画像データでは十分ではなく、画面全体の画像データが必要となる。そのため、第2機械学習演算部900は、メモリ800に保持された画像データを入力とすることが好ましい。
【0038】
第2推論部920は、特徴抽出部910によって生成された特徴マップに基づいて、機械学習モデルを用いて画像データ内に所定の被写体が写っているかを検出する推論演算を行う。具体的には、事前に検出対象を意図して学習をしたクラスに対する尤度を出力する。検出対象であるクラスの一例としては、人物や車両等があり、特定の物体を検出対象としてもよいし、同時に複数種類を検出できるようにしてもよい。また、クラス以外にも検出対象が存在する領域の座標をバウンディングボックスとして出力できるようにしてもよい。
【0039】
出力処理部930は、第2推論部920が出力した各クラスの尤度に基づいて最終的な検出結果を出力する。具体的には、複数のクラスに対する尤度から最も高いクラスを選択し、当該クラスを最終的な検出結果とする。また、全てのクラスに対しての尤度が一定値よりも低い場合には検出する対象が画像データ中に含まれていなかったとする。
【0040】
なお、第2機械学習演算部900で行う演算は8bit以上のビット精度を有し、一例として16bitの浮動少数による演算である。このため、GPU等の汎用的な環境で利用できる機会学習のモデルを容易に実装することが可能となり高い汎用性を実現できる。
【0041】
なお、第2機械学習演算部900の各機能の全てまたは一部は、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field-Programmable Gate Array)等のハードウェアを用いて実現されてもよい。
例えば、第2機械学習演算部900の各機能を構成するために、プログラム処理を実行するプロセッサと、ニューラルネットワークに関する演算を実行するアクセラレータとを組み合わせてもよい。具体的には、畳み込み演算等を繰り返し実行するためのニューラルネットワーク演算用アクセラレータを、プロセッサと組み合わせて用いてもよい。
【0042】
図8は撮像装置1000の撮像動作を説明するためのフローチャートである。本フローチャートの各処理は、CPU700が備えるプロセッサがメモリ800に事前に記憶されている所定のプログラムを実行し、撮像装置1000の各ブロックを制御することで実現される。撮像装置1000において電源ボタンが押下されるまたは、所定のカメラアプリケーションが起動することで本フローチャートの動作が開始される。
【0043】
処理が開始されるとステップS800においてCPU700は、撮像処理を開始するか否かの判定を行う。具体的には撮像モードへの遷移指示または不図示の操作部に含まれるシャッターボタン等の撮影開始指示の有無などにより、撮像を行うためのユーザー指示を受け付けるまで待機する。そして、撮像を行う指示を受け付けた場合において、次のステップへ処理を進める。
【0044】
ステップS810においてCPU700は、センサ100に対して不図示のセンサ制御部を経由して露光を開始するように制御を行う。具体的には、センサ100への電源及びクロック信号の供給、垂直同期信号又は水平同期信号の供給、及びセンサ100内の制御レジスタへのパラメータの書き込み等を行う。ここで、制御レジスタには露光時間やゲイン等の露出に関するレジスタ、画素加算や間引き読み出し等の読み出し制御に関するレジスタを含む。そして、制御レジスタに書き込まれたパラメータに基づいてセンサ100の画素110で発生した電荷のリセット動作及び光電荷の蓄積動作を行い、各画素から順次信号の読み出しが行われる。画素110での露光制御が終了した後に、次のステップへ処理を進める。
【0045】
センサ100の画素110で発生した電荷のリセット動作及び光電荷の蓄積動作及び読み出し動作についてさらに説明を行う。本実施形態において、説明のためセンサ100からの信号読み出しはローリングシャッター動作で読み出されるとし、画素110からは1行単位で信号が読み出されるものとする。なお、読み出し方法及び読み出し単位は一例にすぎない。異なる例として、読み出し方式としてはグローバルシャッター動作で露光及び読み出しが行われてもよいし、読み出し単位として複数行または所定のブロック領域を一単位としてもよい。
【0046】
ステップS820においてCPU700は、ステップS800においてセンサ100に対して設定したパラメータ及び事前に取得した露出情報に基づいて、露出条件を判定する。より詳細には撮像に用いたISO感度が所定以上か否かを判定する。本実施形態においては、撮像に用いたISO感度がISO3200よりも大きい場合にはステップS830に処理を進め、ISO3200以下の場合にはステップS840に処理を進める。なお、本ステップにおける判定対象として、ISO感度ではなくセンサ100に設定したアナログゲイン値もしくはデジタルゲイン値、露光時間またはこれらの組み合わせとしてもよい。それぞれの判定条件は各画素110から得られる信号に含まれるノイズ量が一定以上か否かを判定するための条件であり、一例として温度やセンサ100の種類などノイズ量が増加する可能性がある条件を追加して判定してもよい。
【0047】
ステップS830においてCPU700は、第1機械学習演算部200を制御し、各画素110から得た信号に対して機械学習モデルを用いた演算処理を行う。本実施形態における機械学習モデルは信号のノイズ量を低減するように事前に学習されており、CPU700は当該機械学習モデルのパラメータを第1機械学習演算部200に含まれるレジスタ等に設定することで演算を制御する。そして、第1機械学習演算部200での演算が終了した後に、次のステップへ処理を進める。なお、本実施形態において、機械学習モデルのパラメータには畳み込み演算に用いる重みパラメータ、畳み込み演算結果を量子化するための量子化パラメータ、第1機械学習演算部200に含まれる各ブロックを制御するためのコマンド等が含まれる。
【0048】
本実施形態において、各画素110から得る信号にノイズが多く含まれる露出条件などの場合において第1機械学習演算部200を制御し各信号の信号品質の改善を行い、より適切な画像データを得ることが可能となる。一方で、信号に含まれるノイズ成分が少ない露出条件などの場合において、第1機械学習演算部200において信号品質の改善を行う必要がない場合には、第1機械学習演算部200での処理を行わずに後段処理を行うことで、応答速度の向上や省電力化を行うことができる。
【0049】
なお、本実施形態においては説明のためにISO感度が一定以上か否かに基づいて第1機械学習演算部200での処理を行うか否かを制御する例を示したが、これに限られるものではない。別の例として、ノイズ量又は各ISO感度に応じて学習された複数の機械学習モデルを露出条件に応じて切り替えるように第1機械学習演算部200での処理を制御してもよい。より詳細にはISO感度がISO800からISO3200の間の場合には、ISO1600相当のノイズが重畳された画像に基づいて学習された機械学習モデルを用い、ISO感度がISO3200以上の場合にはISO3200相当のノイズが重畳された画像に基づいて学習された機械学習モデルを用いるように制御するようにしてもよい。なお、3つ以上の機械学習モデルを切り替えてもよいし、機械学習モデルを切り替えるのではなく学習パラメータなどのパラメータの一部のみを切り替えるようにしてもよい。
また、機械学習モデルにおいてブレを低減するように学習した場合には、ブレが発生する可能性がある露光時間に応じて制御するようにしてもよい。一例として、露光時間が1/15秒よりも長い場合には機械学習モデルを用いた処理を行うように制御するようにしてもよい。
【0050】
ステップS840においてCPU700は、ISP400を制御して画像データに対して所定の画像処理を実施する。本実施形態においては、少なくともデモザイク処理および符号化圧縮処理を実行する。当該処理によりISP400は、第1機械学習演算部200で処理されたRAW画像データを処理してデータ保存用又は表示用の圧縮符号化されたデータを生成し、次のステップへ処理を進める。圧縮符号化されたデータの例としてはJPEG形式、BMP形式等の静止画用のデータフォーマットだけでなく、MPEG形式、H.264形式またはH.265形式等の動画用のデータフォーマットであってもよい。なお、ISP400の処理として第2機械学習演算部900における演算処理を実行しやすくするために圧縮符号化されたデータに対して、切り出し、サイズ変更、変形、合成などの加工処理を実行するようにしてもよい。
【0051】
ステップS850においてCPU700は、第2機械学習演算部900を制御し、圧縮符号化されたデータに対して機械学習モデルを用いた演算処理を行う。本実施形態における機械学習モデルは画像内に所定の検出対象が存在するか否かを検出するための演算を行う。CPU700は当該機械学習モデルのパラメータを第2機械学習演算部900に含まれるレジスタ等に設定することで演算を制御する。そして、第2機械学習演算部900での演算が終了した後に、次のステップへ処理を進める。なお、本実施形態において、機械学習モデルのパラメータには畳み込み演算に用いる重みパラメータ、第2機械学習演算部900に含まれる各ブロックを制御するためのコマンド等が含まれる。また、本実施形態において示したように、圧縮符号化されたデータに対して第2機械学習演算部900が処理を行う場合には、処理対象である画像データ自体のデータ量が削減されているためメモリ800における必要な記憶容量を抑えることができる。
【0052】
本実施形態において、画像データに含まれる対象に応じてISP400など撮像装置1000の各ブロックの制御を行う場合において、第2機械学習演算部900を制御し適切に対象の検出を行い、より適切な制御を実現することが可能となる。また、検出結果に応じて撮像装置1000の各ブロックを制御する場合において、複数の機械学習モデルを切り替えるように制御してもよい。一例として、検出結果に応じて不図示の光学部の焦点位置を制御する場合には、検出対象までの距離を検出する機械学習モデルを用いてもよい。また、検出対象に応じてISP400における画像処理を切り替える場合には、画像データ中の検出対象が占める領域を検出する機械学習モデルを用いてもよい。また、検出対象の姿勢等をユーザーインターフェースとして撮像装置1000を制御する場合には、検出対象の姿勢を検知する機械学習モデルを用いてもよい。また、人物等の認証を行う場合には人体の少なくとも一部を検出する機械学習モデルを用いてもよい。
【0053】
本実施形態において、第2機械学習演算部900において用いられる機械学習モデルは様々な機能を実現する必要があるため、第2機械学習演算部900に対して求められる能力としては、演算精度や演算速度に加えて高い汎用性が挙げられる。このため、第2機械学習演算部900においては、回路の冗長性も必要になる。
【0054】
ステップS860においてCPU700は、第2機械学習演算部900における機械学習モデルを用いた演算の結果として検出対象を検出したか否かを判定する。検出対象を検出した場合には、ステップS870に処理を進め、検出結果を表示部600に表示する。一方で、検出対象を検出できなかった場合には、ステップS880に処理を進める。本実施形態においては、第2機械学習演算部900における機械学習モデルの演算結果を表示部600に表示する例を示したが、これに限られるものではない。第2機械学習演算部900における機械学習モデルの演算結果を撮像装置1000のいずれのブロックの制御に用いるかによって、ステップS860及びステップS870における処理を置き換えることが可能である。なお、本実施形態においては、ステップS850乃至ステップS870までの処理を1度行う例を示したが、所定回数を繰り返すように制御してもよい。
【0055】
ステップS880においてCPU700は、撮像動作を終了するか否かを判定する。より詳細には、CPU700はユーザーによる撮像終了指示やアプリケーションの終了指示に基づいて本フローチャートの処理を終了するか否かを判定し、終了判定がなされるまでは本フローチャートの処理を繰り返し実行する。
【0056】
以上、本実施形態の撮像装置1000及びその制御方法について各図面を用いて説明した通り、それぞれ特製の異なる演算手段である第1機械学習演算部200及び第2機械学習演算部900を備えることにより、処理の高速性及び汎用性について両立させることができる。通常の機械学習に関する演算は、サーバー等の大規模な処理装置が必要なほど大量な多ビットの積和演算を並列に実行することが必要である。演算量を低減するための手法として量子化処理を行う手法があるが、量子化によってビット精度が低下すれば、それに伴って演算精度が低下するという新たな課題が生じる。また、機械学習の演算において、実行するタスクを特定の内容や範囲に限定することで量子化による演算精度の低下が抑えられる場合もある。言い換えればこれらは、組み込み機器等の消費電力量や演算資源に制限があるエッジデバイスにおいて、機械学習に関する様々な演算を高精度に実行可能である汎用性の要求と、回路規模や消費電力量を抑えるための高い演算効率の要求の両方を満たすことが非常に難しい課題であることを示している。
【0057】
本実施形態の撮像装置1000は汎用性と演算効率の両立の課題に対して、各画素から得られる信号を画素ごとに処理することに特化した第1機械学習演算部200をパイプライン的にセンサ100とISP400の間に配置して演算の効率性を高めつつ、さらに高い汎用性を備える第2機械学習演算部をISP400の後段に配置している。言い換えれば、第1機械学習演算部200は、同期信号に基づいてセンサ100から出力される単位で量子化演算を含む機械学習モデルによる処理を実行することで、メモリ消費量を抑えつつ低遅延かつ高効率な演算を実行している。さらに機械学習モデルが実行するタスクをノイズ低減等の画素単位の処理に限定することで量子化演算による演算精度低下を抑えることが可能となる。また、センサ100から出力された信号には多ビットの情報が含まれるため、画質改善に係る画像処理を実行するために好適である。そして、第2機械学習演算部900をさらに備えることにより、全体として様々な機械学習モデルにおけるタスクに対応するべく汎用性も維持することが可能となる。
【0058】
(第2の実施形態)
第1の実施形態においては、第1機械学習演算部200と内部バスIBとをセンサI/F300を介して接続する例を示した。
図9は第2の実施形態に係る撮像装置1100の機能ブロック図を示した図である。第1の実施形態における撮像装置1000と同一の構成については同一の符号を用いて示しており、その説明は省略する場合がある。
【0059】
撮像装置1100において第1の実施形態の撮像装置1000と異なる個所は、第1機械学習演算部200と内部バスIBとの接続形態である。センサ100と第1機械学習演算部200とは、センサ100における高速I/F130を介する高速多チャンネル通信方式により第1の実施形態と同様に接続されている。一方で、第1機械学習演算部200撮像装置1100の各機能ブロックとは高速通信可能な内部バスIBにより接続されている。言い換えれば、本実施形態において、第1機械学習演算部200、ISP400、入出力部500、表示部600、CPU700、メモリ800、第2機械学習演算部900は同一のシリコンチップ上に構成され、それぞれは高速の内部バスIBと接続されている。
【0060】
図10は、本実施形態係るバッファ210及びISP400の動作を説明するためのタイミングチャートである。本実施形態においては1行分の画素値をバッファする例を示す。
図10Aにおいて、センサ100から出力される画素値のデータ出力タイミングを示す。水平同期信号のタイミングに同期して、期間Taにおいて画素値データを順次出力する。そして、
図10Bにおいて、バッファ210から出力される画素値のデータ出力タイミングを示す。水平同期信号のタイミングに同期して、期間Tbにおいて画素値データを順次出力する。バッファ210より後段においては、処理するデータレートが遅くなればなるほど電力削減につながる。そのため、バッファ210より読み出すデータレートは入力時のデータレートよりも遅くなっている。
図10Cにおいて、ISP400における画像データに対する画像処理の実行タイミングを示す。第1機械学習演算部200において処理された結果は
図10Bで示したタイミングより遅延してISP400に入力される(期間Tc1)。そして、期間Tc2において入力された画像データより順次パイプライン的に処理が行われる。
【0061】
図10において、バッファ210は1行分の画素値を保持する例を説明したが、これに限られるものではなく、第1推論部230やISP400において複数行のデータが必要な場合には複数行を保持するようにしてもよい。例えば、第1推論部230において、3×3の重みを演算に用いる場合等においては、少なくとも3行分を保持するようにしてもよい。また、ISP400において7行分の画像データが必要な場合等においては、少なくとも7行分を保持するようにしてもよい。
【0062】
図10に示した通り、第1機械学習演算部200を内部バスIBへ直接接続することにより、画像データをパイプライン的に処理することが可能となる。これにより撮像装置1100における全体の処理レートを向上させることができる。
【0063】
以上、本発明の第二実施形態について図面を参照して詳述したが、具体的な構成はこの
実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれ
る。また、上述の実施形態および変形例において示した構成要素は適宜に組み合わせて構
成することが可能である。
【0064】
(変形例1)
例えば、上記実施形態に記載の第1機械学習演算部200及び第2機械学習演算部900において演算対象となるデータは単一の形式に限定されず、静止画像、動画像、音声、文字、数値およびこれらの組み合わせで構成することが可能である。なお、第1機械学習演算部200及び第2機械学習演算部900に入力されるデータは、光センサ、温度計、Global Positioning System(GPS)計測器、角速度計測器、風速計などの物理量測定器における測定結果などと組み合わせてもよい。周辺機器から有線または無線通信経由で受信する基地局情報、車両・船舶等の情報、天候情報、混雑状況に関する情報などの周辺情報や金融情報や個人情報等の異なる情報を組み合わせてもよい。
【0065】
(変形例2)
撮像装置1000または撮像装置1100は、バッテリー等で駆動する携帯電話などの通信機器、パーソナルコンピュータなどのスマートデバイス、デジタルカメラ、ゲーム機器、ロボット製品などのモバイル機器を想定するが、これに限られるものではない。Power on Ethernet(PoE)などでの供給可能なピーク電力制限、製品発熱の低減または長時間駆動の要請が高い製品に利用することでも他の先行例にない効果を得ることができる。
例えば、車両や船舶などに搭載される車載カメラや、公共施設や路上などに設けられる監視カメラ等に適用することで長時間の撮影を実現できるだけでなく、軽量化や高耐久化にも寄与する。また、テレビやディスプレイ等の表示デバイス、医療カメラや手術ロボット等の医療機器、製造現場や建築現場で使用される作業ロボットなどにも適用することで同様の効果を奏することができる。
【0066】
(変形例3)
第1機械学習演算部200及び第2機械学習演算部900は、その一部または全部を一つ以上のプロセッサを用いて実現してもよい。例えば、第1機械学習演算部200及び第2機械学習演算部900は、入力層または出力層の一部または全部をプロセッサによるソフトウェア処理により実現してもよい。ソフトウェア処理により実現する入力層または出力層の一部は、例えば、データの正規化や変換である。これにより、様々な形式の入力形式または出力形式に対応できる。なお、プロセッサで実行するソフトウェアは、通信手段や外部メディアを用いて書き換え可能に構成してもよい。
【0067】
(変形例4)
第2機械学習演算部900における処理の一部をクラウド上のGraphics Processing Unit(GPU)等を組み合わせることで実現してもよい。第2機械学習演算部900は、撮像装置1000または撮像装置1100で行った処理に加えて、クラウド上でさらに処理を行ったり、クラウド上での処理に加えて処理を行ったりすることで、より複雑な処理を少ないリソースで実現できる。
【0068】
(変形例5)
第1機械学習演算部200と第2機械学習演算部900とでは、量子化演算を含むか否かにおいて差分があるため、それぞれで動作する機械学習モデルについて学習方法を異ならせるようにしてもよい。一例として、第1機械学習演算部200において動作する機械学習モデルは量子化演算を含むネットワークを生成した後に量子化演算を含んだ形で学習する学習ステップを含む方法(以下、QAT方式という。)を採用することが好適である。このようにQAT方式で学習することにより、量子化による演算精度の低下を低減することが可能となる。一方で、QAT方式は学習方法や学習パラメータの設計などが必要になるため、汎用性が低下する場合がある。そのため、第2機械学習演算部900において動作する機械学習モデルにおいてはQAT方式を用いずに学習することが好ましい。このように第1機械学習演算部200および第2機械学習演算部900のいずれかで用いるかどうかで機械学習モデルの学習方法を決定することが好ましい。
【0069】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【符号の説明】
【0070】
100 イメージセンサ
200 第1機械学習演算部
300 センサI/F
400 ISP
500 入出力部
600 表示部
700 CPU
800 メモリ
900 第2機械学習演算部
1000 第1の実施形態に係る撮像装置
1100 第2の実施形態に係る撮像装置
【手続補正書】
【提出日】2023-05-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素から得られる信号を処理するための第1の機械学習演算手段と、
前記第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段と、
前記画像処理手段の結果である画像データを保持するための保持手段と、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持手段に保持された画像データを処理するための第2の機械学習演算手段とを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う第1の畳み込み演算層の演算結果である行列の各要素に対して低ビット化するための量子化演算を行う量子化演算層と、前記量子化演算層の演算結果に基づいて畳み込み演算を行う第2の畳み込み演算層を含むことを特徴とする撮像装置。
【請求項2】
前記第2の機械学習モデルは前記第1の機械学習モデルとは異なるネットワーク構造を備え、少なくとも畳み込み演算を行う畳み込み演算層と畳み込み演算結果に対してプーリング演算を行うプーリング層とを含むことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記イメージセンサを制御するための同期信号を生成するための制御手段をさらに備え、
前記第1の機械学習演算手段における処理は前記同期信号に同期して行われることを特徴とする請求項1に記載の撮像装置。
【請求項4】
前記第1の機械学習演算手段は前記第1の機械学習モデルを用いて処理した結果をさらに後処理するための後処理手段を含み、
前記後処理部は前記同期信号に基づいて前記第1の機械学習モデルを用いて処理した結果に対してヘッダ情報または同期信号を付加する処理を行うことを特徴とする請求項3に記載の撮像装置。
【請求項5】
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を8bit以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項6】
前記イメージセンサは前記複数の画素におけるアナログ信号をデジタル信号に変換する変換手段をさらに備え、
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を前記変換手段による分解能以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項7】
前記画像処理手段において行う所定の画像処理には少なくともデモザイク処理及び符号化圧縮処理を含むことを特徴とする請求項1に記載の撮像装置。
【請求項8】
前記第1の機械学習モデルは前記複数の画素の信号に含まれるノイズを低減するための推論演算を行い、
前記第2の機械学習モデルは前記画像データにおいて所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項9】
前記画像処理手段の結果である画像データを表示するための表示手段をさらに備え、
前記表示手段は前記表示手段に表示する画像データに対応する前記第2の機械学習モデルにおける検出対象の検出結果を表示することを特徴とする請求項7に記載の撮像装置。
【請求項10】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号に対する推論演算を行い、
前記第2の機械学習演算手段は前記保持手段に保持された画像データの単位で所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項11】
前記所定の単位には8bit以上の画素値が1500以上含まれ、
前記第1の機械学習演算手段及び前記画像処理手段は前記単位に基づいてパイプライン的に順次処理を行うことを特徴とする請求項9に記載の撮像装置。
【請求項12】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号を一時的に保持するバッファ手段をさらに備え、
前記第1の機械学習演算手段が前記バッファ手段に一時的に保持された前記複数の画素の信号に対して第1の機械学習モデルを用いた処理を行うために読み出すデータレートは、前記バッファ手段に入力する際の前記複数の画素の信号のデータレートより遅いことを特徴とする請求項9または10に記載の撮像装置。
【請求項13】
前記第1の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第1の機械学習演算手段は前記イメージセンサにおける露出条件に基づいて機械学習モデルを切り替えることを特徴とする請求項1に記載の撮像装置。
【請求項14】
前記第2の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第2の機械学習演算手段において切り替える複数の機械学習モデルは人体の少なくとも一部を検出する機械学習モデルを含むことを特徴とする請求項12に記載の撮像装置。
【請求項15】
前記第1の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第1の機械学習演算手段は動作モードに基づいて機械学習モデルを切り替えることを特徴とする請求項1に記載の撮像装置。
【請求項16】
前記動作モードには静止画モード、動画モードおよび夜景モードのうち少なくとも一つを含むことを特徴とする請求項15に記載の撮像装置。
【請求項17】
前記第1の機械学習演算手段における前記第1の機械学習モデルは、前記第2の機械学習モデルとは異なる学習方法を用いて外部装置において事前に学習された学習済みの機械学習モデルであって、
前記学習方法には前記第1の機械学習モデルに量子化演算を含んだ形で行う学習ステップが含まれていることを特徴とする請求項1に記載の撮像装置。
【請求項18】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置の制御方法であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素の信号を処理するための第1の機械学習演算ステップと、
前記第1の機械学習演算ステップによって処理された信号に対して所定の画像処理を行う画像処理ステップと、
前記画像処理ステップの結果である画像データを保持するための保持ステップと、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持ステップに保持された画像データを処理するための第2の機械学習演算ステップとを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う第1の畳み込み演算ステップの演算結果である行列の各要素に対して低ビット化するための量子化演算を行う量子化演算ステップと、前記量子化演算層の演算結果に基づいて畳み込み演算を行う畳み込み演算ステップを含むことを特徴とする撮像装置の制御方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
上記課題を解決するために、この発明は以下の手段を提案している。
本発明の実施形態に係る撮像装置は、被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置であって、複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素から得られる信号を処理するための第1の機械学習演算手段と、前記第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段と、前記画像処理手段の結果である画像データを保持するための保持手段と、前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持手段に保持された画像データを処理するための第2の機械学習演算手段とを備え、前記第1の機械学習モデルは少なくとも畳み込み演算を行う第1の畳み込み演算層の演算結果である行列の各要素に対して低ビット化するための量子化演算を行う量子化演算層と、前記量子化演算層の演算結果に基づいて畳み込み演算を行う第2の畳み込み演算層を含むことを特徴とする。
【手続補正書】
【提出日】2023-07-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素から得られる信号を処理するための第1の機械学習演算手段と、
前記第1の機械学習演算手段によって処理された信号に対して所定の画像処理を行う画像処理手段と、
前記画像処理手段の結果である画像データを保持するための保持手段と、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持手段に保持された画像データを処理するための第2の機械学習演算手段とを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う第1の畳み込み演算層の演算結果である行列の各要素に対して低ビット化するための量子化演算を行う量子化演算層と、前記量子化演算層の演算結果に基づいて畳み込み演算を行う第2の畳み込み演算層を含むことを特徴とする撮像装置。
【請求項2】
前記第2の機械学習モデルは前記第1の機械学習モデルとは異なるネットワーク構造を備え、少なくとも畳み込み演算を行う畳み込み演算層と畳み込み演算結果に対してプーリング演算を行うプーリング層とを含むことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記イメージセンサを制御するための同期信号を生成するための制御手段をさらに備え、
前記第1の機械学習演算手段における処理は前記同期信号に同期して行われることを特徴とする請求項1に記載の撮像装置。
【請求項4】
前記第1の機械学習演算手段は前記第1の機械学習モデルを用いて処理した結果をさらに後処理するための後処理手段を含み、
前記後処理手段は前記同期信号に基づいて前記第1の機械学習モデルを用いて処理した結果に対してヘッダ情報または同期信号を付加する処理を行うことを特徴とする請求項3に記載の撮像装置。
【請求項5】
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を8bit以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項6】
前記イメージセンサは前記複数の画素におけるアナログ信号をデジタル信号に変換する変換手段をさらに備え、
前記第1の機械学習モデルに含まれる量子化演算層は畳み込み演算層の演算結果を前記変換手段による分解能以下の値に量子化することを特徴とする請求項1に記載の撮像装置。
【請求項7】
前記画像処理手段において行う所定の画像処理には少なくともデモザイク処理及び符号化圧縮処理を含むことを特徴とする請求項1に記載の撮像装置。
【請求項8】
前記第1の機械学習モデルは前記複数の画素の信号に含まれるノイズを低減するための推論演算を行い、
前記第2の機械学習モデルは前記画像データにおいて所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項9】
前記画像処理手段の結果である画像データを表示するための表示手段をさらに備え、
前記表示手段は前記表示手段に表示する画像データに対応する前記第2の機械学習モデルにおける検出対象の検出結果を表示することを特徴とする請求項8に記載の撮像装置。
【請求項10】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号に対する推論演算を行い、
前記第2の機械学習演算手段は前記保持手段に保持された画像データの単位で所定の検出対象を検出する処理を行うことを特徴とする請求項1に記載の撮像装置。
【請求項11】
前記所定の単位には8bit以上の画素値が1500以上含まれ、
前記第1の機械学習演算手段及び前記画像処理手段は前記単位に基づいてパイプライン的に順次処理を行うことを特徴とする請求項10に記載の撮像装置。
【請求項12】
前記第1の機械学習演算手段は前記イメージセンサが出力する所定の単位で前記複数の画素の信号を一時的に保持するバッファ手段をさらに備え、
前記第1の機械学習演算手段が前記バッファ手段に一時的に保持された前記複数の画素の信号に対して第1の機械学習モデルを用いた処理を行うために読み出すデータレートは、前記バッファ手段に入力する際の前記複数の画素の信号のデータレートより遅いことを特徴とする請求項10または11に記載の撮像装置。
【請求項13】
前記第1の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第1の機械学習演算手段は前記イメージセンサにおける露出条件に基づいて機械学習モデルを切り替えることを特徴とする請求項1に記載の撮像装置。
【請求項14】
前記第2の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第2の機械学習演算手段において切り替える複数の機械学習モデルは人体の少なくとも一部を検出する機械学習モデルを含むことを特徴とする請求項13に記載の撮像装置。
【請求項15】
前記第1の機械学習演算手段は複数の機械学習モデルを切り替えるための切り替え手段をさらに備え、
前記第1の機械学習演算手段は動作モードに基づいて機械学習モデルを切り替えることを特徴とする請求項1に記載の撮像装置。
【請求項16】
前記動作モードには静止画モード、動画モードおよび夜景モードのうち少なくとも一つを含むことを特徴とする請求項15に記載の撮像装置。
【請求項17】
前記第1の機械学習演算手段における前記第1の機械学習モデルは、前記第2の機械学習モデルとは異なる学習方法を用いて外部装置において事前に学習された学習済みの機械学習モデルであって、
前記学習方法には前記第1の機械学習モデルに量子化演算を含んだ形で行う学習ステップが含まれていることを特徴とする請求項1に記載の撮像装置。
【請求項18】
被写体像を電気信号に変換するための複数の画素を備えるイメージセンサを備える撮像装置の制御方法であって、
複数の演算層を含む第1の機械学習モデルを用いて前記複数の画素の信号を処理するための第1の機械学習演算ステップと、
前記第1の機械学習演算ステップによって処理された信号に対して所定の画像処理を行う画像処理ステップと、
前記画像処理ステップの結果である画像データを保持するための保持ステップと、
前記第1の機械学習モデルと異なる第2の機械学習モデルを用いて前記保持ステップに保持された画像データを処理するための第2の機械学習演算ステップとを備え、
前記第1の機械学習モデルは少なくとも畳み込み演算を行う第1の畳み込み演算ステップの演算結果である行列の各要素に対して低ビット化するための量子化演算を行う量子化演算ステップと、前記量子化演算ステップの演算結果に基づいて畳み込み演算を行う第2の畳み込み演算ステップを含むことを特徴とする撮像装置の制御方法。