(57)【要約】【課題】白色に近い領域が存在しない画像や、領域毎に異なる光源で照明された画像に対して、適切なホワイトバランス調整値を算出することができないこと。【解決手段】画像処理装置は、ニューラルネットワークにより入力画像を処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出する算出部を備えてよい。画像処理方法は、ニューラルネットワークにより入力画像を処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出する段階を備えてよい。【選択図】図３
2020077950.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークにより入力画像を処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する算出部
を備える画像処理装置。
【請求項２】
前記算出部は、前記ニューラルネットワークにより前記入力画像を処理することによって前記入力画像に含まれる複数の画素のそれぞれに対応する複数のフィルタを生成し、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づいて、前記入力画像における前記部分領域毎に異なるホワイトバランス調整値を算出する
請求項１に記載の画像処理装置。
【請求項３】
前記算出部は、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づく前記複数の画素毎の色温度を分類することによって、前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項２に記載の画像処理装置。
【請求項４】
前記算出部は、前記分類された複数の前記色温度を含む複数の色温度群のそれぞれについて、それぞれの色温度群に含まれる複数の色温度に対応する複数の画素を含む複数の部分領域を特定し、前記特定した前記複数の部分領域毎に前記ホワイトバランス調整値を算出する
請求項３に記載の画像処理装置。
【請求項５】
前記算出部は、前記特定した前記複数の部分領域毎に、前記入力画像にホワイトバランス調整値を適用した画像と、前記入力画像に前記複数のフィルタを適用して得られた画像との差を繰り返し調整することよってホワイトバランス調整値を更新することにより、前記ホワイトバランス調整値を算出する
請求項４に記載の画像処理装置。
【請求項６】
前記入力画像のカラーチャネル数をＣ（Ｃは自然数）として、前記複数のフィルタは、前記複数の画素のそれぞれについて、それぞれの画素及びそれぞれの画素の近傍の画素を含むＮ個の画素群にそれぞれ適用されるＮ個のフィルタ係数群をＣ×Ｃ個含む
請求項２に記載の画像処理装置。
【請求項７】
前記算出部は、前記Ｃ×Ｃ個の前記フィルタ係数群の値に基づいて前記ニューラルネットワークによる前記入力画像の処理結果の信頼値を算出し、前記入力画像に前記複数のフィルタを適用することによって得られた画像と前記入力画像とに基づいて前記複数の画素毎の色温度を算出し、算出した信頼値に応じて前記色温度を分類することによって、前記入力画像の前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項６に記載の画像処理装置。
【請求項８】
前記算出部は、前記Ｃ×Ｃ個の前記フィルタ係数群の値に基づいて前記ニューラルネットワークによる前記入力画像の処理結果の信頼値を算出し、算出した信頼値が予め定められた値以上であることを条件として、前記入力画像に前記複数のフィルタを適用することによって得られた画像と前記入力画像とに基づいて前記複数の画素毎の色温度を算出し、前記入力画像の前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項６に記載の画像処理装置。
【請求項９】
前記算出部は、撮像画像から生成された前記入力画像を前記ニューラルネットワークにより処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における前記部分領域毎に異なるホワイトバランス調整値を算出し、
前記画像処理装置は、
前記算出部が前記部分領域毎に算出した前記ホワイトバランス調整値のそれぞれを、前記撮像画像における前記部分領域に対応する部分領域にそれぞれ適用することによって、前記撮像画像にホワイトバランス調整を施す調整部
をさらに備える請求項１に記載の画像処理装置。
【請求項１０】
前記ニューラルネットワークは、前記入力画像に対して、少なくも１回の畳み込み演算を行う処理を含む、請求項１から請求項９の何れか１項に記載の画像処理装置。
【請求項１１】
請求項１から１０のいずれか一項に記載の画像処理装置と、
イメージセンサと
を備える撮像装置。
【請求項１２】
ニューラルネットワークにより入力画像を処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する段階
を備える画像処理方法。
【請求項１３】
前記ニューラルネットワークは、前記入力画像に対して、少なくとも１回の畳み込み演算を行う処理を含む、請求項１２に記載の画像処理方法。
【請求項１４】
請求項１から１０のいずれか一項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１には、シーン照明を推定するための畳み込みニューラルネットワーク（ＣＮＮ）が開示されている。
非特許文献１  S. Bianco, C. Cusano, and R. Schettini, "Color Constancy Using CNNs", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2015年, 第81-89頁
【発明の概要】
【発明が解決しようとする課題】
【０００３】
白色に近い領域が存在しない画像や、領域毎に異なる光源で照明された画像に対して、適切なホワイトバランス調整値を算出することができないという課題があった。
【課題を解決するための手段】
【０００４】
本発明の一態様に係る画像処理装置は、ニューラルネットワークにより入力画像を処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する算出部を備える。
【０００５】
算出部は、ニューラルネットワークにより入力画像を処理することによって入力画像に含まれる複数の画素のそれぞれに対応する複数のフィルタを生成し、入力画像に複数のフィルタを適用して得られた画像と入力画像とに基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出してよい。
【０００６】
算出部は、入力画像に複数のフィルタを適用して得られた画像と入力画像とに基づく複数の画素毎の色温度を分類することによって、部分領域毎にホワイトバランス調整値を算出してよい。
【０００７】
算出部は、分類された複数の色温度を含む複数の色温度群のそれぞれについて、それぞれの色温度群に含まれる複数の色温度に対応する複数の画素を含む複数の部分領域を特定し、特定した複数の部分領域毎にホワイトバランス調整値を算出してよい。
【０００８】
算出部は、特定した複数の部分領域毎に、入力画像にホワイトバランス調整値を適用した画像と、入力画像に複数のフィルタを適用して得られた画像との差を繰り返し調整することによってホワイトバランス調整値を更新することにより、ホワイトバランス調整値を算出してよい。
【０００９】
入力画像のカラーチャネル数をＣ（Ｃは自然数）として、複数のフィルタは、複数の画素のそれぞれについて、それぞれの画素及びそれぞれの画素の近傍の画素を含むＮ個の画素群にそれぞれ適用されるＮ個のフィルタ係数群をＣ×Ｃ個含んでよい。
【００１０】
算出部は、Ｃ×Ｃ個のフィルタ係数群の値に基づいてニューラルネットワークによる入力画像の処理結果の信頼値を算出し、入力画像に複数のフィルタを適用することによって得られた画像と入力画像とに基づいて複数の画素毎の色温度を算出し、算出した信頼値に応じて色温度を分類することによって、入力画像の部分領域毎にホワイトバランス調整値を算出してよい。
【００１１】
算出部は、Ｃ×Ｃ個のフィルタ係数群の値に基づいてニューラルネットワークによる入力画像の処理結果の信頼値を算出し、算出した信頼値が予め定められた値以上であることを条件として、入力画像に複数のフィルタを適用することによって得られた画像と入力画像とに基づいて複数の画素毎の色温度を算出し、入力画像の部分領域毎にホワイトバランス調整値を算出してよい。
【００１２】
算出部は、撮像画像から生成された入力画像をニューラルネットワークにより処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出してよい。画像処理装置は、算出部が部分領域毎に算出したホワイトバランス調整値のそれぞれを、撮像画像における部分領域に対応する部分領域にそれぞれ適用することによって、撮像画像にホワイトバランス調整を施す調整部をさらに備えてよい。
【００１３】
ニューラルネットワークは、入力画像に対して、少なくも１回の畳み込み演算を行う処理を含んでよい。
【００１４】
本発明の一態様に係る撮像装置は、上記画像処理装置を備えてよい。撮像装置は、イメージセンサを備えてよい。
【００１５】
本発明の一態様に係る画像処理方法は、ニューラルネットワークにより入力画像を処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出する段階を備える。
【００１６】
ニューラルネットワークは、入力画像に対して、少なくとも１回の畳み込み演算を行う処理を含んでよい。
【００１７】
本発明の一態様に係るプログラムは、上記の画像処理装置としてコンピュータを機能させるためのプログラムとしてよい。
【００１８】
本発明の一態様によれば、白色に近い領域が存在しない画像や、領域毎に異なる光源で照明された画像に対して、適切なホワイトバランス調整値を算出することができる。
【００１９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係る撮像装置１００の外観斜視図の一例を示す図である。
【図２】本実施形態に係る撮像装置１００の機能ブロックを示す図である。
【図３】ホワイトバランス調整部１４０において行われるホワイトバランス処理を模式的に示す。
【図４】ＣＮＮ３２０によって入力画像４１０を処理することによって得られた処理パラメータを示す。
【図５】撮像画像５００に対して照明ベクトルをクラスタリングするまでの処理を示す。
【図６】照明ベクトルのクラスタリングを概念的に説明する図である。
【図７】上述したホワイトバランス調整を施した画像の具体例を示す。
【図８】撮像装置１００によるホワイトバランス調整の手順の一例を示すフローチャートである。
【図９】撮像装置１００を搭載した無人航空機（ＵＡＶ）を示す。
【図１０】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ１２００の一例を示す。
【発明を実施するための形態】
【００２１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。以下の実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００２２】
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイルまたはレコードに表示される通りであれば異議を唱えない。ただし、それ以外の場合、一切の著作権を留保する。
【００２３】
本発明の様々な実施形態は、フローチャート及びブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、プログラマブル回路、及び／またはプロセッサによって実装されてよい。専用回路は、デジタル及び／またはアナログハードウェア回路を含んでよい。集積回路（ＩＣ）及び／またはディスクリート回路を含んでよい。プログラマブル回路は、再構成可能なハードウェア回路を含んでよい。再構成可能なハードウェア回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、及び他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含んでよい。
【００２４】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよい。その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ-ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【００２５】
コンピュータ可読命令は、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードの何れかを含んでよい。ソースコードまたはオブジェクトコードは、従来の手続型プログラミング言語を含む。従来の手続型プログラミング言語は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び「Ｃ」プログラミング言語または同様のプログラミング言語でよい。コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供されてよい。プロセッサまたはプログラマブル回路は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【００２６】
図１は、本実施形態に係る撮像装置１００の外観斜視図の一例を示す図である。図２は、本実施形態に係る撮像装置１００の機能ブロックを示す図である。
【００２７】
撮像装置１００は、撮像部１０２及びレンズ部２００を備える。撮像部１０２は、イメージセンサ１２０、画像処理部１０４、撮像制御部１１０、及びメモリ１３０を有する。
【００２８】
イメージセンサ１２０は、ＣＣＤまたはＣＭＯＳにより構成されてよい。イメージセンサ１２０は、レンズ部２００が有するレンズ２１０を介して光を受光する。イメージセンサ１２０は、レンズ２１０を介して結像された光学像の画像データを画像処理部１０４に出力する。
【００２９】
撮像制御部１１０及び画像処理部１０４は、ＣＰＵまたはＭＰＵなどのマイクロプロセッサ、ＭＣＵなどのマイクロコントローラなどにより構成されてよい。メモリ１３０は、コンピュータ可読可能な記録媒体でよく、ＳＲＡＭ、ＤＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びＵＳＢメモリなどのフラッシュメモリの少なくとも１つを含んでよい。メモリ１３０は、撮像制御部１１０がイメージセンサ１２０などを制御するのに必要なプログラム、画像処理部１０４が画像処理を実行するのに必要なプログラム等を格納する。メモリ１３０は、撮像装置１００の筐体の内部に設けられてよい。メモリ１３０は、撮像装置１００の筐体から取り外し可能に設けられてよい。
【００３０】
撮像部１０２は、指示部１６２及び表示部１６０をさらに有してよい。指示部１６２は、撮像装置１００に対する指示をユーザから受け付けるユーザインタフェースである。表示部１６０は、イメージセンサ１２０により撮像され、画像処理部１０４により処理された画像、撮像装置１００の各種設定情報などを表示する。表示部１６０は、タッチパネルで構成されてよい。
【００３１】
撮像制御部１１０は、レンズ部２００及びイメージセンサ１２０を制御する。例えば、撮像制御部１１０は、レンズ２１０の焦点位置や焦点距離の調整を制御する。撮像制御部１１０は、ユーザからの指示を示す情報に基づいて、レンズ部２００が備えるレンズ制御部２２０に制御命令を出力することにより、レンズ部２００を制御する。
【００３２】
レンズ部２００は、レンズ２１０、レンズ駆動部２１２、レンズ制御部２２０、及びメモリ２２２を有する。レンズ２１０は、少なくとも１つのレンズを含んでよい。例えば、レンズ２１０は、フォーカスレンズ及びズームレンズを含んでよい。レンズ２１０が含むレンズのうちの少なくとも一部または全部は、レンズ２１０の光軸に沿って移動可能に配置される。レンズ部２００は、撮像部１０２に対して着脱可能に設けられる交換レンズであってよい。
【００３３】
レンズ駆動部２１２は、レンズ２１０が含むレンズのうちの少なくとも一部または全部を、レンズ２１０の光軸に移動させる。レンズ駆動部２１２は、レンズ２１０が含むレンズのうちの少なくとも一部又は全部を、レンズ２１０の光軸に沿って移動させるモータを含む。レンズ制御部２２０は、撮像部１０２からのレンズ制御命令に従って、レンズ駆動部２１２を駆動して、レンズ２１０が含むズームレンズやフォーカスレンズを光軸方向に沿って移動させることで、ズーム動作やフォーカス動作の少なくとも一方を実行する。レンズ制御命令は、例えば、ズーム制御命令、及びフォーカス制御命令等である。
【００３４】
メモリ２２２は、レンズ駆動部２１２を介して移動するフォーカスレンズやズームレンズ用の制御値を記憶する。メモリ２２２は、ＳＲＡＭ、ＤＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びＵＳＢメモリなどのフラッシュメモリの少なくとも１つを含んでよい。
【００３５】
撮像制御部１１０は、指示部１６２等を通じてユーザからの指示を示す情報に基づいて、イメージセンサ１２０に制御命令を出力することにより、イメージセンサ１２０に撮像動作の制御を含む制御を実行する。イメージセンサ１２０により撮像された画像は、画像処理部１０４により処理されて、メモリ１３０に格納される。
【００３６】
画像処理部１０４は、生成部１４２と、算出部１４４と、調整部１４６とを備える。生成部１４２は、イメージセンサ１２０により撮像された画像から算出部１４４に入力される入力画像を生成する。算出部１４４は、ニューラルネットワークにより入力画像を処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出する。ニューラルネットワークとしては、畳み込みニューラルネットワーク（ＣＮＮ）を適用できる。ニューラルネットワークは、少なくとも１回の畳み込み演算の処理を含む。ニューラルネットワークは、例えば、入力画像を処理するための複数のパラメータを有し、少なくも１回の畳み込み演算を行う処理を含む関数に相当する。当該関数は、学習データ等を用いて複数のパラメータの調整が完了している場合、学習済みモデルとも呼ばれる。
【００３７】
算出部１４４は、ニューラルネットワークにより入力画像を処理することによって入力画像に含まれる複数の画素のそれぞれに対応する複数のフィルタを生成し、入力画像に複数のフィルタを適用して得られた画像と入力画像とに基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出する。
【００３８】
算出部１４４は、入力画像に複数のフィルタを適用して得られた画像と入力画像とに基づく複数の画素毎の照明ベクトルをクラスタリングすることによって、部分領域毎にホワイトバランス調整値を算出する。例えば、算出部１４４は、クラスタリングされた複数の照明ベクトルを含む複数の照明ベクトル群のそれぞれについて、それぞれの照明ベクトル群に含まれる複数の照明ベクトルに対応する複数の画素を含む複数の部分領域を特定し、特定した複数の部分領域毎にホワイトバランス調整値を算出する。算出部１４４は、特定した複数の部分領域毎に、入力画像にホワイトバランス調整値を適用した画像と、入力画像に複数のフィルタを適用して得られた画像との差に基づく反復フィッティングによってホワイトバランス調整値を更新することにより、ホワイトバランス調整値を算出してよい。照明ベクトルとは、例えば、ホワイトバランスのゲインに相当する。照明ベクトルは、例えば、色温度に相当する。クラスタリングとは、いわゆる分類に相当する用語である。反復フィッティングとは、繰り返し計算して所望の値に近づけることである。
【００３９】
入力画像のカラーチャネル数をＣとして、複数のフィルタは、複数の画素のそれぞれについて、それぞれの画素及びそれぞれの画素の近傍の画素を含むＮ個の画素群にそれぞれ適用されるＮ個のフィルタ係数群をＣ×Ｃ個含む。算出部１４４は、Ｃ×Ｃ個のフィルタ係数群の値に基づいてニューラルネットワークによる入力画像の処理結果の信頼値を算出し、入力画像に複数のフィルタを適用することによって得られた画像と入力画像とに基づいて複数の画素毎の照明ベクトルを生成し、算出した信頼値に応じて照明ベクトルをクラスタリングすることによって、入力画像の部分領域毎にホワイトバランス調整値を算出してよい。また、算出部１４４は、Ｃ×Ｃ個のフィルタ係数群の値に基づいてニューラルネットワークによる入力画像の処理結果の信頼値を算出し、算出した信頼値が予め定められた値以上であることを条件として、入力画像に複数のフィルタを適用することによって得られた画像と入力画像とに基づいて複数の画素毎の照明ベクトルを生成し、入力画像の部分領域毎にホワイトバランス調整値を算出してよい。Ｃ、Ｎは自然数である。
【００４０】
算出部１４４は、撮像画像から生成された入力画像をニューラルネットワークにより処理し、ニューラルネットワークの出力に基づいて、入力画像における部分領域毎に異なるホワイトバランス調整値を算出してよい。調整部１４６は、算出部１４４が部分領域毎に算出したホワイトバランス調整値のそれぞれを、撮像画像における部分領域に対応する部分領域にそれぞれ適用することによって、撮像画像にホワイトバランス調整を施す。なお、調整部１４６により撮像画像にホワイトバランス調整が施された後、画像処理部１０４は、ホワイトバランス調整が施された画像に、ホワイトバランス処理以外の画像処理を施して、メモリ１３０に格納してよい。
【００４１】
図３は、ホワイトバランス調整部１４０において行われるホワイトバランス処理を模式的に示す。ホワイトバランス調整部１４０は、ＣＮＮ３２０によって入力画像３１０を処理することによって、参照画像３４０を生成するための処理パラメータ３３０を生成する。
【００４２】
まず、ＣＮＮ３２０を含む処理の概要を説明する。ＣＮＮ３２０は、入力画像３１０を入力とし、処理パラメータ３３０を出力する。入力画像３１０のサイズはＷ×Ｈである。Ｗ及びＨには１２８等の値を適用できる。入力画像３１０の各画素は、Ｃ個の画素値を持つ。Ｃはカラーチャネル数を表す。入力画像３１０がカラー画像である場合、Ｃ＝３であってよい。Ｃ＝３の場合、入力画像３１０は、例えば、Ｒ、Ｇ及びＢの３個の画素値を持つ。入力画像がモノクロ画像である場合、Ｃ＝１であってよい。Ｗ、Ｈは自然数である。
【００４３】
処理パラメータ３３０は、Ｗ×Ｈ×Ｋ×Ｋ×Ｃ×Ｃ個のフィルタ係数の情報を持つ。図３において、処理パラメータ３３０は、Ｗ×Ｈのサイズの画素のそれぞれに対して、Ｋ×Ｋ×Ｃ×Ｃ個のチャネルを有するものとして示されている。つまり、処理パラメータ３３０は、Ｗ×Ｈ個の各画素に適用されるＫ×Ｋ×Ｃ×Ｃ個のフィルタ係数を持つ。Ｋは自然数である。
【００４４】
Ｋは、入力画像３１０から参照画像３４０を生成する場合に施す畳み込み演算のカーネルサイズを表す。Ｋの値は５であってよい。Ｋ＝５の場合、畳み込み演算は、注目画素の近傍２画素の範囲内の２５個の画素の画素値にそれぞれフィルタ係数を乗算することによって行われる。Ｋには、１以上の値を適用できる。なお、畳み込み演算のカーネルサイズはＫ×Ｋに限られない。畳み込み演算で適用されるフィルタ係数の数は、任意の正数Ｎであってよい。
【００４５】
図３のブロック３３２において、処理パラメータ３３０は、Ｃ×Ｃ行列の要素のそれぞれに、Ｈ×ＷのサイズのフィルタをＫ×Ｋ個配置したものとして示される。参照画像３４０は、入力画像３１０に処理パラメータ３３０を適用することによって生成される。
【００４６】
例えば、フィルタ３３３ＲＲ、フィルタ３３３ＲＧ、及びフィルタ３３３ＲＢは、それぞれ入力画像３１０のＲ画素、入力画像３１０のＧ画素、及び入力画像３１０のＢ画素に適用される。例えば、入力画像３１０のＲ画素のそれぞれに、フィルタ３３３ＲＲにおいて画素位置に対応する位置のＫ×Ｋ個のフィルタ係数群をカーネルとして用いた畳み込み演算が適用される。そして、参照画像３４０のＲ画素のそれぞれの画素値は、入力画像３１０のＲ画素にフィルタ３３３ＲＲが適用された画素値と、入力画像３１０のＧ画素にフィルタ３３３ＲＧが適用された画素値と、入力画像３１０のＢ画素にフィルタ３３３ＲＢが適用された画素値の和により算出される。このように、入力画像３１０に処理パラメータ３３０を適用することによって、Ｗ×Ｈのサイズを持ち、Ｃ個のカラーチャネルを持つ参照画像３４０が得られる。
【００４７】
次に、機械学習によってＣＮＮ３２０を構築する場合の処理を説明する。機械学習を行う場合、入力画像３１０としての複数の訓練画像がＣＮＮ３２０に入力される。訓練画像は、例えば既知の照明光下で撮像されることによって得られた画像をＷ×Ｈのサイズにダウンサンプリングすることによって得られる。教師画像３５０は、既知の照明光下で撮像されることによって得られた画像に、既知の照明光に基づくホワイトバランス補正を施した画像をＷ×Ｈのサイズにダウンサンプリングすることによって得られる。
【００４８】
入力画像３１０として入力された複数の訓練画像のそれぞれについて、ＣＮＮ３２０から得られた処理パラメータ３３０を訓練画像に適用することによって、参照画像３４０が得られる。複数の訓練画像のそれぞれについて、参照画像３４０及び教師画像３５０を入力とする損失関数を最小化するＣＮＮ３２０のパラメータを決定することによって、ＣＮＮ３２０が生成される。
【００４９】
損失関数としては、以下の式を適用できる。
【数１】
2020077950.tif 000003
ここで、λ１、λ２、及びλ３は、予め定められた重み付け係数である。Ｆｉ，ｊは、図３のブロック３３２に示すＣ×Ｃ行列における第ｉ行第ｊ列のフィルタを表す。ｆ（Ｘ）は、フィルタを入力画像３１０に適用することを示す。すなわち、ｆ（Ｘ）は、機械学習により得られた処理パラメータ３３０を入力画像３１０に適用することを表す。
【００５０】
損失関数の第１項のｌ１及び第２項のｌ２は、次の２式で表される。
【数２】
2020077950.tif 000004
ここで、
【数３】
2020077950.tif 000005
は有限差分演算子である。
【数４】
2020077950.tif 000006
は参照画像を表す。Ｙ＊は教師画像を表す。ａとしては、０．０５５を適用できる。
【００５１】
損失関数の第３項のＲ（Ｆ）は、次の式で表される。
【数５】
2020077950.tif 000007
【００５２】
Ｒ（Ｆ）には、図３のブロック３３２に示すＣ×Ｃ行列の非対角要素のフィルタのフィルタ係数が反映される。Ｃ×Ｃ行列の非対角要素のフィルタは、カラーチャネル間の相互の作用を示す。例えば、フィルタ３３３ＲＢは、入力画像のＢチャネルの情報が参照画像３４０のＲチャネルの情報に反映されることを示す。もし教師画像を用いてＣＮＮ３２０が高い学習精度で機械学習できた状態でＣＮＮ３２０に教師画像を入力すると、ＣＮＮ３２０により得られる処理パラメータ３３０におけるＣ×Ｃ行列の非対角要素のフィルタのフィルタ係数の大きさは微小値となる。よって、Ｒ（Ｆ）が大きい場合は、高い精度で学習できていない状態であると考えることができる。損失関数にＲ（Ｆ）を考慮することで、高い精度で機械学習できたか否かを判断することができる。
【００５３】
なお、機械学習後のＣＮＮ３２０を用いて撮像画像にホワイトバランス調整を施す場合、ＣＮＮ３２０で撮像画像を処理することによって得られた処理パラメータ３３０におけるＣ×Ｃ行列の非対角要素のフィルタのフィルタ係数は、撮像画像に対して正しいホワイトバランス調整が可能な処理パラメータ３３０が得られたか否かを判断するための指標とすることができる。図４は、ＣＮＮ３２０によって入力画像４１０を処理することによって得られた処理パラメータを示す。図４に示す処理パラメータは、ＣＮＮ３２０においてＣ＝３、Ｋ＝１を適用して機械学習されたものであるとする。この場合、処理パラメータは、Ｈ×Ｗのサイズの９つのフィルタ４３３を含む。
【００５４】
入力画像４１０は、異なる照明光源下で撮像された画像を部分領域４１１及び部分領域４１２に含む画像である。この場合、対角成分のフィルタ４３３（Ｒ−Ｒ、Ｇ−Ｇ、Ｂ−Ｂ）のフィルタのフィルタ係数は、それぞれの照明光源の各色の色に応じて、部分領域４１１及び部分領域４１２のそれぞれの中ではほぼ一様の値を持つ。
【００５５】
これに対し、３×３行列の非対対角成分を見ると、特に部分領域４１１と部分領域４１２との境界付近において、大きなフィルタ係数が得られた領域が存在する。このような領域では、ホワイトバランスを正しく補正できる処理パラメータ３３０が得られていない可能性がある。
【００５６】
そこで、ホワイトバランスを正しく補正できる処理パラメータ３３０が得られたか否かの指標として、画素ｐのカラーチャネルｃに対する信頼値Ｃｏｎｆｃｐを、次の式により定める。
【数６】
2020077950.tif 000008
ここで、Ｖｐは、画素ｐを含む画素ｐのＫ×Ｋ個の画素を表す。ｆｐｃ，ｉは、Ｋ×Ｋ個の画素に適用される畳み込み演算のカーネルとなるフィルタ係数を表す。
【００５７】
経験的に、信頼度は、Ｃｏｎｆｃｐの画素にわたる平均値に比例し、Ｃｏｎｆｃｐの画素にわたる分散に反比例する。次の式で表されるように、カラーチャネルｃにわたって合計することで、信頼値Ｃｏｎｆを次の式によって定める。
【数７】
2020077950.tif 000009
ここで、εは、零除算を避けるための微小値である。信頼値を用いた制御については、撮像画像に対してホワイトバランス調整を行う処理に関連して後述する。
【００５８】
次に、撮像装置１００において、イメージセンサ１２０で得られた撮像画像にホワイトバランス調整を施す処理を、図３を参照して説明する。上述した機械学習によって構築されたＣＮＮ３２０のパラメータは、撮像装置１００のメモリ１３０に格納されている。ホワイトバランス調整部１４０は、メモリ１３０に格納されたＣＮＮ３２０のパラメータを用いて、ＣＮＮ３２０による入力画像３１０の処理を実行して、処理パラメータ３３０を生成する。
【００５９】
生成部１４２は、イメージセンサ１２０により得られた撮像画像をＷ×Ｈのサイズにダウンサンプリングすることによって、ＣＮＮ３２０への入力画像３１０を生成する。算出部１４４は、メモリ１３０に格納されたＣＮＮ３２０のパラメータを用いて、撮像画像から生成された入力画像３１０をＣＮＮ３２０で処理することにより、処理パラメータ３３０を算出する。
【００６０】
算出部１４４は、処理パラメータ３３０を入力画像３１０に適用して、参照画像３４０を生成する。算出部１４４は、参照画像３４０及び入力画像３１０に基づいて、画素毎に照明ベクトル３６０を算出する。これにより、Ｗ×Ｈ個の照明ベクトルが得られる。
【００６１】
算出部１４４は、照明ベクトルをクラスタリングすることにより、全体領域３７０を、類似する照明ベクトルが算出された部分領域Ｒ１及び部分領域Ｒ２をと決定する。算出部１４４は、部分領域Ｒ１に対応するホワイトバランス調整値３７１と、部分領域Ｒ２に対応するホワイトバランス調整値３７２とを算出する。
【００６２】
図５は、撮像画像５００に対して照明ベクトルをクラスタリングするまでの処理を示す。入力画像５１０は、生成部１４２が撮像画像５００から生成した画像である。参照画像５４０は、入力画像５１０をＣＮＮ３２０で処理することによって得られた処理パラメータ３３０を入力画像５１０に適用することによって得られた画像である。算出部１４４は、３個のカラーチャネルのそれぞれについて、入力画像５１０を参照画像５４０で画素毎に除算することによって、Ｗ×Ｈ個の照明ベクトルを算出する。算出部１４４は、照明ベクトルをクラスタリングすることにより、Ｗ×Ｈのサイズの全体領域を、領域５６１と領域５６２とに分割する。
【００６３】
図６は、照明ベクトルのクラスタリングを概念的に説明する図である。図６において、Ｖ１、Ｖ２、Ｖ３、及びＶ４は、Ｗ×Ｈ個の照明ベクトルのうちの４つの照明ベクトルを示す。算出部１４４は、次の式によって算出されるＥｉｊを指標として、クラスタリングする。
【数８】
2020077950.tif 000010
ここで、σは分散値である。Ｉｉ及びＩｊは、それぞれ添え字ｉ及びｊで識別される照明ベクトルを表す。算出部１４４は、同じ部分領域にクラスタリングされる照明ベクトルのＥｉｊが最小化され、異なる部分領域にクラスタリングされる照明ベクトル同士のＥｉｊが最大化されるように、部分領域５６１及び部分領域５６２を決定する。
【００６４】
なお、クラスタリングは、上述した信頼値が予め定められた閾値より低い画素における照明ベクトルを用いずに行われてよい。上述した信頼値が予め定められた閾値より低い画素における照明ベクトルを、信頼値が予め定められた閾値以上の画素における照明ベクトルより小さい重み付けで重み付けすることによって、クラスタリングしてもよい。
【００６５】
続いて、算出部１４４は、部分領域５６１及び部分領域５６２のそれぞれのホワイトバランス調整値を算出する。例えば、算出部１４４は、入力画像５１０における部分領域５６１にホワイトバランス調整値を適用した画像と、参照画像５４０における部分領域５６１の画像との差が最小になるように、反復フィッティングにより第１のホワイトバランス調整値を算出する。第１のホワイトバランス調整値としては、Ｒゲイン及びＢゲインを例示することができる。同様に、算出部１４４は、入力画像５１０における部分領域５６２にホワイトバランス調整値を適用した画像と、参照画像５４０における部分領域５６２の画像との差が最小になるように、反復フィッティングにより、第２のホワイトバランス調整値を算出する。第２のホワイトバランス調整値としては、Ｒゲイン及びＢゲインを例示することができる。このように、算出部１４４は、部分領域５６１及び部分領域５６２のそれぞれに対して、ホワイトバランス調整値を別々に算出する。
【００６６】
調整部１４６は、撮像画像５００における部分領域５６１に対応する領域に第１のホワイトバランス調整値を適用する。また、調整部１４６は、撮像画像５００における部分領域５６２に対応する領域に、第２のホワイトバランス調整値を適用する。これにより、ホワイトバランスが適用された画像を生成する。
【００６７】
なお、以上の説明では、主として照明ベクトルをクラスタリングすることによって２つの部分領域のホワイトバランス調整値を算出する場合を説明した。しかし、単一光源で照明された被写体の画像に対しては、大半の照明ベクトルが１つにクラスタリングされる場合がある。このように、予め定められた数以上の照明ベクトルが同一クラスタにクラスタリングされた場合、算出部１４４は、図３に示されるように、画像の全体領域に対して反復フィッティングすることによって、単一のホワイトバランス調整値３８１としてのＲゲイン及びＢゲインを算出してもよい。
【００６８】
図７は、上述したホワイトバランス調整を施した画像の具体例を示す。図７には、３個の撮像画像のそれぞれに対して、入力画像、クラスタリングされた部分画像、参照画像、画像全体でホワイトバランス調整を施した画像、部分領域毎にホワイトバランス調整を施した画像、及び正解画像を示す。
【００６９】
図７の撮像画像は、光源が異なる２種類の画像を組み合わせたものである。そのため、画像全体にわたって１つのホワイトバランス調整値でホワイトバランス調整を施した場合、正解画像とは異なる色合いの画像が得られている。これに対し、部分領域毎にホワイトバランス調整を行うことで、正解画像に近い色合いの画像が得られていることが分かる。
【００７０】
図８は、撮像装置１００によるホワイトバランス調整の手順の一例を示すフローチャートである。ここでは、図３で示した処理の流れに沿って説明する。
【００７１】
Ｓ７００において、生成部１４２は、撮像画像をダウンサンプリングすることによって、ＣＮＮ３２０への入力画像を生成する。Ｓ７０２において、算出部１４４は、Ｓ７００で生成した入力画像をＣＮＮ３２０により処理する。これにより、処理パラメータ３３０が得られる。
【００７２】
Ｓ７０４において、算出部１４４は、信頼値Ｃｏｎｆが閾値以上であるか否かを判断する。信頼値Ｃｏｎｆが閾値以上である場合、算出部１４４は、Ｓ７０６において、入力画像３１０に処理パラメータ３３０を適用して、参照画像３４０を生成する。算出部１４４は、Ｓ７０８において、入力画像３１０及び参照画像３４０を用いて照明ベクトルを画素毎に算出して、照明ベクトルをクラスタリングする。これにより、算出部１４４は、部分領域Ｒ１及び部分領域Ｒ２を特定する。
【００７３】
続いて、算出部１４４は、Ｓ７１０において、部分領域Ｒ１及びＲ２のうち、ホワイトバランス調整値の算出処理を行っていない部分領域を選択する。Ｓ７１２において、算出部１４４は、反復フィッティングにより、一対のＲゲインＢゲインを、ホワイトバランス調整値として算出する。
【００７４】
Ｓ７１４において、算出部１４４は、部分領域Ｒ１及びＲ２のうち、ホワイトバランス調整値の算出処理を行っていない部分領域があるか否かを判断する。ホワイトバランス調整値の算出処理を行っていない部分領域がある場合、Ｓ７１０に処理を移行する。ホワイトバランス調整値の算出処理を行っていない部分領域がない場合、Ｓ７１６において、調整部１４６は、撮像画像に、Ｓ７１２で部分領域毎に算出したホワイトバランス調整値を適用して、ホワイトバランス調整を施す。具体的には、調整部１４６は、撮像画像における部分領域Ｒ１に対応する領域に、部分領域Ｒ１において特定したホワイトバランス調整値を適用し、撮像画像における部分領域Ｒ２に対応する領域に、部分領域Ｒ２において特定したホワイトバランス調整値を適用して、メモリ１３０に格納する。Ｓ７１６の処理が完了すると本フローチャートの処理を終了する。
【００７５】
なお、７０４において、信頼値が閾値未満の場合、Ｓ７２０において、調整部１４６は、撮像装置１００において予め定められた、ＣＮＮ３２０を用いるホワイトバランス調整とは異なる方式のホワイトバランス調整を撮像画像に適用して、本フローチャートの処理を終了する。
【００７６】
以上の通り、撮像装置１００によれば、白色に近い領域が存在しない画像や、領域毎に異なる光源で照明された画像に対して、適切なホワイトバランス調整値を算出することが可能になる。
【００７７】
上記のような撮像装置１００は、移動体に搭載されてもよい。撮像装置１００は、図９に示すような、無人航空機（ＵＡＶ）に搭載されてもよい。ＵＡＶ１０は、ＵＡＶ本体２０、ジンバル５０、複数の撮像装置６０、及び撮像装置１００を備えてよい。ジンバル５０、及び撮像装置１００は、撮像システムの一例である。ＵＡＶ１０は、推進部により推進される移動体の一例である。移動体とは、ＵＡＶの他、空中を移動する他の航空機などの飛行体、地上を移動する車両、水上を移動する船舶等を含む概念である。
【００７８】
ＵＡＶ本体２０は、複数の回転翼を備える。複数の回転翼は、推進部の一例である。ＵＡＶ本体２０は、複数の回転翼の回転を制御することでＵＡＶ１０を飛行させる。ＵＡＶ本体２０は、例えば、４つの回転翼を用いてＵＡＶ１０を飛行させる。回転翼の数は、４つには限定されない。また、ＵＡＶ１０は、回転翼を有さない固定翼機でもよい。
【００７９】
撮像装置１００は、所望の撮像範囲に含まれる被写体を撮像する撮像用のカメラである。ジンバル５０は、撮像装置１００を回転可能に支持する。ジンバル５０は、支持機構の一例である。例えば、ジンバル５０は、撮像装置１００を、アクチュエータを用いてピッチ軸で回転可能に支持する。ジンバル５０は、撮像装置１００を、アクチュエータを用いて更にロール軸及びヨー軸のそれぞれを中心に回転可能に支持する。ジンバル５０は、ヨー軸、ピッチ軸、及びロール軸の少なくとも１つを中心に撮像装置１００を回転させることで、撮像装置１００の姿勢を変更してよい。
【００８０】
複数の撮像装置６０は、ＵＡＶ１０の飛行を制御するためにＵＡＶ１０の周囲を撮像するセンシング用のカメラである。２つの撮像装置６０が、ＵＡＶ１０の機首である正面に設けられてよい。更に他の２つの撮像装置６０が、ＵＡＶ１０の底面に設けられてよい。正面側の２つの撮像装置６０はペアとなり、いわゆるステレオカメラとして機能してよい。底面側の２つの撮像装置６０もペアとなり、ステレオカメラとして機能してよい。複数の撮像装置６０により撮像された画像に基づいて、ＵＡＶ１０の周囲の３次元空間データが生成されてよい。ＵＡＶ１０が備える撮像装置６０の数は４つには限定されない。ＵＡＶ１０は、少なくとも１つの撮像装置６０を備えていればよい。ＵＡＶ１０は、ＵＡＶ１０の機首、機尾、側面、底面、及び天井面のそれぞれに少なくとも１つの撮像装置６０を備えてもよい。撮像装置６０で設定できる画角は、撮像装置１００で設定できる画角より広くてよい。撮像装置６０は、単焦点レンズまたは魚眼レンズを有してもよい。
【００８１】
遠隔操作装置３００は、ＵＡＶ１０と通信して、ＵＡＶ１０を遠隔操作する。遠隔操作装置３００は、ＵＡＶ１０と無線で通信してよい。遠隔操作装置３００は、ＵＡＶ１０に上昇、下降、加速、減速、前進、後進、回転などのＵＡＶ１０の移動に関する各種命令を示す指示情報を送信する。指示情報は、例えば、ＵＡＶ１０の高度を上昇させる指示情報を含む。指示情報は、ＵＡＶ１０が位置すべき高度を示してよい。ＵＡＶ１０は、遠隔操作装置３００から受信した指示情報により示される高度に位置するように移動する。指示情報は、ＵＡＶ１０を上昇させる上昇命令を含んでよい。ＵＡＶ１０は、上昇命令を受け付けている間、上昇する。ＵＡＶ１０は、上昇命令を受け付けても、ＵＡＶ１０の高度が上限高度に達している場合には、上昇を制限してよい。
【００８２】
図１０は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ１２００の一例を示す。コンピュータ１２００にインストールされたプログラムは、コンピュータ１２００に、本発明の実施形態に係る装置に関連付けられるオペレーションまたは当該装置の１または複数の「部」として機能させることができる。例えば、コンピュータ１２００にインストールされたプログラムは、コンピュータ１２００に、ホワイトバランス調整部１４０又は画像処理部１０４として機能させることができる。または、当該プログラムは、コンピュータ１２００に当該オペレーションまたは当該１または複数の「部」の機能を実行させることができる。当該プログラムは、コンピュータ１２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ１２００に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定のオペレーションを実行させるべく、ＣＰＵ１２１２によって実行されてよい。
【００８３】
本実施形態によるコンピュータ１２００は、ＣＰＵ１２１２、及びＲＡＭ１２１４を含み、それらはホストコントローラ１２１０によって相互に接続されている。コンピュータ１２００はまた、通信インタフェース１２２２、入力／出力ユニットを含み、それらは入力／出力コントローラ１２２０を介してホストコントローラ１２１０に接続されている。コンピュータ１２００はまた、ＲＯＭ１２３０を含む。ＣＰＵ１２１２は、ＲＯＭ１２３０及びＲＡＭ１２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。
【００８４】
通信インタフェース１２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブが、コンピュータ１２００内のＣＰＵ１２１２によって使用されるプログラム及びデータを格納してよい。ＲＯＭ１２３０はその中に、アクティブ化時にコンピュータ１２００によって実行されるブートプログラム等、及び／またはコンピュータ１２００のハードウェアに依存するプログラムを格納する。プログラムが、ＣＲ−ＲＯＭ、ＵＳＢメモリまたはＩＣカードのようなコンピュータ可読記録媒体またはネットワークを介して提供される。プログラムは、コンピュータ可読記録媒体の例でもあるＲＡＭ１２１４、またはＲＯＭ１２３０にインストールされ、ＣＰＵ１２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ１２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ１２００の使用に従い情報のオペレーションまたは処理を実現することによって構成されてよい。
【００８５】
例えば、通信がコンピュータ１２００及び外部デバイス間で実行される場合、ＣＰＵ１２１２は、ＲＡＭ１２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース１２２２に対し、通信処理を命令してよい。通信インタフェース１２２２は、ＣＰＵ１２１２の制御の下、ＲＡＭ１２１４、またはＵＳＢメモリのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【００８６】
また、ＣＰＵ１２１２は、ＵＳＢメモリ等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ１２１４に読み取られるようにし、ＲＡＭ１２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ１２１２は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【００８７】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ１２１２は、ＲＡＭ１２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ１２１４に対しライトバックする。また、ＣＰＵ１２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ１２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【００８８】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ１２００上またはコンピュータ１２００近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ１２００に提供する。
【００８９】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【００９０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００９１】
１０  ＵＡＶ
２０  ＵＡＶ本体
５０  ジンバル
６０  撮像装置
１００  撮像装置
１０２  撮像部
１０４  画像処理部
１１０  撮像制御部
１２０  イメージセンサ
１３０  メモリ
１４０  ホワイトバランス調整部
１４２  生成部
１４４  算出部
１４６  調整部
１６０  表示部
１６２  指示部
２００  レンズ部
２１０  レンズ
２１２  レンズ駆動部
２２０  レンズ制御部
２２２  メモリ
３００  遠隔操作装置
３１０  入力画像
３２０  ＣＮＮ
３３０  処理パラメータ
３３２  ブロック
３３３  フィルタ
３４０  参照画像
３５０  教師画像
３７０  全体領域
３７１  ホワイトバランス調整値
３７２  ホワイトバランス調整値
３８１  ホワイトバランス調整値
４１０  入力画像
４１１  部分領域
４１２  部分領域
４３３  フィルタ
５００  撮像画像
５１０  入力画像
５４０  参照画像
５６１  領域
５６２  領域
１２００  コンピュータ
１２１０  ホストコントローラ
１２１２  ＣＰＵ
１２１４  ＲＡＭ
１２２０  入力／出力コントローラ
１２２２  通信インタフェース
１２３０  ＲＯＭ
【図１】
2020077950.tif 000011
【図２】
2020077950.tif 000012
【図３】
2020077950.tif 000013
【図４】
2020077950.tif 000014
【図５】
2020077950.tif 000015
【図６】
2020077950.tif 000016
【図７】
2020077950.tif 000017
【図８】
2020077950.tif 000018
【図９】
2020077950.tif 000019
【図１０】
2020077950.tif 000020
【手続補正書】
【提出日】令和2年2月28日(2020.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ニューラルネットワークにより入力画像を処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する算出部
を備え、
前記算出部は、前記ニューラルネットワークにより前記入力画像を処理することによって前記入力画像に含まれる複数の画素のそれぞれに対応する複数のフィルタを生成し、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づいて、前記入力画像における前記部分領域毎に異なるホワイトバランス調整値を算出し、
前記ニューラルネットワークは、
前記入力画像を入力とし、前記複数のフィルタのフィルタ係数を出力し、
既知の照明光下で撮像されることによって得られた画像と、前記既知の照明光下で撮像されることによって得られた画像に前記既知の照明光に基づくホワイトバランス補正を施した画像とを用いた機械学習により構築されている
画像処理装置。
【請求項２】
前記算出部は、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づく前記複数の画素毎の色温度を分類することによって、前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項１に記載の画像処理装置。
【請求項３】
前記算出部は、前記分類された複数の前記色温度を含む複数の色温度群のそれぞれについて、それぞれの色温度群に含まれる複数の色温度に対応する複数の画素を含む複数の部分領域を特定し、前記特定した前記複数の部分領域毎に前記ホワイトバランス調整値を算出する
請求項２に記載の画像処理装置。
【請求項４】
前記算出部は、前記特定した前記複数の部分領域毎に、前記入力画像にホワイトバランス調整値を適用した画像と、前記入力画像に前記複数のフィルタを適用して得られた画像との差を繰り返し調整することよってホワイトバランス調整値を更新することにより、前記ホワイトバランス調整値を算出する
請求項３に記載の画像処理装置。
【請求項５】
前記入力画像のカラーチャネル数をＣ（Ｃは自然数）として、前記複数のフィルタは、前記複数の画素のそれぞれについて、それぞれの画素及びそれぞれの画素の近傍の画素を含むＮ個の画素群にそれぞれ適用されるＮ個のフィルタ係数群をＣ×Ｃ個含む
請求項１から請求項４の何れか１項に記載の画像処理装置。
【請求項６】
前記算出部は、前記Ｃ×Ｃ個の前記フィルタ係数群の値に基づいて前記ニューラルネットワークによる前記入力画像の処理結果の信頼値を算出し、前記入力画像に前記複数のフィルタを適用することによって得られた画像と前記入力画像とに基づいて前記複数の画素毎の色温度を算出し、算出した信頼値に応じて前記色温度を分類することによって、前記入力画像の前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項５に記載の画像処理装置。
【請求項７】
前記算出部は、前記Ｃ×Ｃ個の前記フィルタ係数群の値に基づいて前記ニューラルネットワークによる前記入力画像の処理結果の信頼値を算出し、算出した信頼値が予め定められた値以上であることを条件として、前記入力画像に前記複数のフィルタを適用することによって得られた画像と前記入力画像とに基づいて前記複数の画素毎の色温度を算出し、前記入力画像の前記部分領域毎に前記ホワイトバランス調整値を算出する
請求項５に記載の画像処理装置。
【請求項８】
前記算出部は、撮像画像から生成された前記入力画像を前記ニューラルネットワークにより処理することによって前記入力画像に含まれる複数の画素のそれぞれに対応する前記複数のフィルタを生成し、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づいて、前記入力画像における前記部分領域毎に異なるホワイトバランス調整値を算出し、
前記画像処理装置は、
前記算出部が前記部分領域毎に算出した前記ホワイトバランス調整値のそれぞれを、前記撮像画像における前記部分領域に対応する部分領域にそれぞれ適用することによって、前記撮像画像にホワイトバランス調整を施す調整部
をさらに備える請求項１から請求項７の何れか１項に記載の画像処理装置。
【請求項９】
前記ニューラルネットワークは、前記入力画像に対して、少なくも１回の畳み込み演算を行う処理を含む、請求項１から請求項８の何れか１項に記載の画像処理装置。
【請求項１０】
請求項１から請求項９の何れか１項に記載の画像処理装置と、
イメージセンサと
を備える撮像装置。
【請求項１１】
ニューラルネットワークにより入力画像を処理し、前記ニューラルネットワークの出力に基づいて、前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する段階
を備え、
前記入力画像における部分領域毎に異なるホワイトバランス調整値を算出する前記段階は、前記ニューラルネットワークにより前記入力画像を処理することによって前記入力画像に含まれる複数の画素のそれぞれに対応する複数のフィルタを生成し、前記入力画像に前記複数のフィルタを適用して得られた画像と前記入力画像とに基づいて、前記入力画像における前記部分領域毎に異なるホワイトバランス調整値を算出し、
前記ニューラルネットワークは、
前記入力画像を入力とし、前記複数のフィルタのフィルタ係数を出力し、
既知の照明光下で撮像されることによって得られた画像と、前記既知の照明光下で撮像されることによって得られた画像に前記既知の照明光に基づくホワイトバランス補正を施した画像とを用いた機械学習により構築されている
画像処理方法。
【請求項１２】
前記ニューラルネットワークは、前記入力画像に対して、少なくとも１回の畳み込み演算を行う処理を含む、請求項１１に記載の画像処理方法。
【請求項１３】
請求項１から請求項９の何れか１項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。