以下、本開示を実施するための形態を図面とともに詳細に説明する。なお、以下の実施の形態により本開示が限定されるものでない。また、以下の説明において参照する各図は、本開示の内容を理解でき得る程度に形状、大きさ、および位置関係を概略的に示してあるに過ぎない。即ち、本開示は、各図で提示された形状、大きさおよび位置関係のみに限定されるものでない。さらに、以下の説明では、画像処理装置の例として、撮像装置に設けられた例を説明するが、撮像装置以外にも、スマートフォン等の携帯電話、タブレット型端末装置、パーソナルコンピュータ、カムコーダ、撮影機能付きICレコーダ、ビデオマイクロスコープや生物顕微鏡等の顕微鏡、工業用または医療用の内視鏡、撮影機能付きウエアブルデバイス、例えばヘッドマウンドディスプレイや撮影機能付き時計等であっても適用することができる。さらに、学習装置として、ネットワークを経由して種々の装置に接続可能なサーバを例に説明するが、サーバ以外にもパーソナルコンピュータ等であっても適用することができる。
(実施の形態1)
〔画像処理システムの構成〕
図1は、本開示の実施の形態1に係る画像処理システムの概要を示す模式図である。図1に示す画像処理システム1は、画像取得装置2と、学習装置3と、を備える。画像取得装置2は、被写体を撮像することによって画像データを生成する。
画像取得装置2は、ネットワークN100を経由して画像データを含む画像ファイルを学習装置3へ送信する。
学習装置3は、ネットワークN100を経由して画像取得装置2から送信された画像ファイルに含まれる画像データおよびメタデータに基づいて、機械学習、例えば多層のニューラルネットワークによって構成されたディープラーニング等を行うことによって強化学習を行い、画像取得装置2からの依頼に応じて最新の学習結果を送信することによって、画像取得装置2が備える推論エンジンや学習器等を更新する。
〔撮像装置の構成〕
まず、画像取得装置2の詳細な構成について説明する。
図2は、画像取得装置2の機能構成を示すブロック図である。図2に示す画像取得装置2は、撮像部21と、画像処理部22と、表示部23と、記録部24と、推論エンジン25と、操作部26と、通信部27と、制御部28と、を備える。
撮像部21は、被写体を撮像することによって画像データを生成し、この画像データを画像処理部22へ出力する。撮像部21は、光学系211と、撮像素子212と、を有する。
光学系211は、所定の視野領域から光を集光することによって、撮像素子212の受光面に被写体像を結像する。光学系211は、1または複数のレンズ、絞りおよびシャッタ、これらを駆動するステッピングモータやボイルコイルモータ等を用いて構成される。例えば、光学系211は、制御部28の制御のもと、ステッピングモータがレンズを光軸方向に沿って移動させることによって、所定の位置にピントを合焦させる。また、光学系211は、所定距離を変更することができるズーム機能およびピント位置を変更することができるピント調整機能を有する。
撮像素子212は、光学系211が結像した被写体像を受光し、光電変換を行うことによって画像データ(RAWデータ)を生成する。撮像素子212は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を用いて構成される。なお、撮像素子212に、画像データに対してA/D変換を行うA/D変換回路や信号処理を行う信号処理回路等を設けてもよい。
画像処理部22は、制御部28の制御のもと、撮像部21から入力された画像データに対して各種の画像処理や推論エンジン25を用いて各種の検出処理を行って表示部23へ出力する。画像処理部22は、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)およびDSP(Digital Signal Processing)およびメモリ等のハードウエアを有するプロセッサを用いて構成される。画像処理部22は、検出部221と、生成部222と、特定部223と、選択部224と、判定部225と、合成部226と、を有する。なお、画像処理部22が実施の形態1に係る画像処理装置として機能する。
検出部221は、撮像部21が生成した画像データに対応する画像に写る対象物を検出する。具体的には、検出部221は、推論エンジン25が有する推論モデルや学習済みモデルに基づいて、対象物の種別を検出する。なお、検出部221は、周知のパターンマッチング等を用いて対象物を検出してもよい。
生成部222は、撮像部21が生成した画像データに基づいて、対象物の奥行き情報を生成する。具体的には、生成部222は、撮像部21が生成した時間的に連続する画像データに基づいて、対象物の奥行き情報、例えば画像取得装置2から対象物までの距離を奥行き情報として生成する。なお、生成部222は、画像データ以外にも、測距情報に基づいて、対象物の奥行き情報を生成してもよい。
特定部223は、取得済みの画像毎に該画像に含まれる複数の部位を重要部位が定められた複数の教師データを用いて学習された学習済みモデル(推論モデル)に従って、取得中の画像データから複数の重要部位を特定する。具体的には、特定部223は、検出部221が検出した対象物を構成する複数の重要部位を特定する。例えば、特定部223は、取得済みの画像毎に該画像に含まれる複数の部位を重要部位が定められた複数の教師データを用いて学習された学習済みモデル、生成部222が生成した奥行き情報および検出部221が検出した対象物に基づいて、対象物を構成する複数の重要部位を特定する。
選択部224は、特定部223が特定した対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを選択する。具体的には、選択部224は、互いに種別が異なる複数の被写体を撮像することによって生成された複数のサンプルデータを機械学習によって生成した推論エンジン25の推論モデルに基づいて、複数の重要部位の各々に対して最適な撮影パラメータを選択する。ここで、撮影パラメータとは、露出、ピント位置、被写界深度、彩度、コントラスト、明度、シャープネス、カラーおよびホワイトバランス等である。
判定部225は、撮像部21が選択部224によって選択された複数の重要部位の各々に対して最適な撮影パラメータを1回の撮影で行うことができるか否かを判定する。
合成部226は、撮像部21が撮影パラメータを変更しながら生成した複数の画像データを合成して合成画像データを生成する。
表示部23は、制御部28の制御のもと、画像処理部22から入力された画像データに対応する画像や画像取得装置2に関する各種の情報を表示する。表示部23は、液晶や有機EL(Electro Luminescence)等の表示ディスプレイを用いて構成される。なお、表示部23の表示領域上にタッチパネルを設けてもよい。
記録部24は、画像取得装置2に関する各種の情報を記録する。記録部24は、揮発性メモリ、不揮発性メモリ、フレームメモリおよび画像取得装置2に対して着脱自在なメモリカード等の記録媒体を用いて構成される。記録部24は、複数の画像ファイルデータを記録する画像ファイル記録部241と、画像取得装置2が実行する各種のデータやプログラムを記録するプログラム記録部242と、を有する。
推論エンジン25は、複数の画像データを用いて機械学習された第1の学習結果を用いて、対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを推測し、この推測結果を画像処理部22の選択部224へ出力する。ここで、学習結果とは、複数の対象物を撮像した複数の画像データと、画像取得装置2によって特定された対象物を構成する複数の重要部位の特定結果と、画像取得装置2によって生成された対象物の奥行き情報と、画像取得装置2が複数の重要部位の各々に対して選択した撮影パラメータと、操作履歴データと、に基づいて、ディープラーニング等の機械学習によって学習された学習結果である。さらに、推論エンジン25は、複数の画像データを用いて被写体毎の種別を学習した第2の学習結果に基づいて、対象物の種別を検出した検出結果を画像処理部22の検出部221へ出力する。推論エンジン25は、GPU、FPGA、DSPおよびメモリ等のハードウエアを有するプロセッサを用いて構成される。
なお、学習(深層学習)は、ニューラル・ネットワークを用いた「機械学習」の過程を多層構造化したものである。学習(深層学習)は、情報を前から後ろに送って判定を行う「順伝搬型ニューラル・ネットワーク」が代表的なものである。これは、最も単純なものでは、N1個のニューロンで構成される入力層、パラメータで与えられるN2個のニューロンで構成される中間層、判別するクラスの数に対応するN3個のニューロンで構成される出力層の3層があればよい。そして、入力層と中間層、中間層と出力層の各ニューロンはそれぞれが結合加重で結ばれ、中間層と出力層はバイアス値が加えられることで、論理ゲートの形成が容易である。簡単な判別なら3層でもよいが、中間層を多数にすれば、機械学習の過程において複数の特徴量の組み合わせ方を学習することも可能となる。近年では、9層~152層のものが、学習にかかる時間や判定精度、消費エネルギーの関係から実用的になっている。また、画像の特徴量を圧縮する、「畳み込み」と呼ばれる処理を伴い、最小限処理で動き、パターン認識に強い「畳み込み型ニューラル・ネットワーク」や、より複雑な情報を扱え、順番や順序によって意味合いが変わる情報分析に対応して、情報を双方向に流れる「再帰型ニューラル・ネットワーク」(全結合リカレントニューラルネット)を利用してもよい。その他、教師あり学習を用いるパターン認識モデルとして、例えば、サポートベクトルマシン、サポートベクトル回帰という手法もある。ここでの学習は、識別器の重み、フィルター係数、オフセットを算出するもので、他には、ロジスティック回帰処理を利用する手法もある。ニューラル・ネットワークの処理の多くが行列の掛け算であることから、行列計算に特化したGPU(Graphic Processing Unit)やTPU(Tensor Processing Unit)と呼ばれるものが利用される場合もある。近年ではこうした人工知能(AI)専用ハードの「ニューラル・ネットワーク・プロセッシング・ユニット(NPU)」がCPUなどその他の回路とともに集積して組み込み可能に設計され、処理回路の一部になっている場合もある。カメラや携帯機器等の情報端末製品に搭載するコンパクトタイプの推論エンジンは、少ない層で高精度判断するための学習は困難であり、また時間がかかるため、正確なアノテーションや学習のさせ方に工夫することが望まれる。推論モデルを生成する時、学習に使用した画像によって推論モデルの仕様が変わるので、学習時の情報と連携して効率的な学習を行ってもよい。そこで、どのような学習をさせたかを示す情報をアノテーション作業時に設定し、この情報を情報取得装置の記録部に推論情報の一部として記録しておいてもよい。
操作部26は、画像取得装置2に関する各種の操作の入力を受け付け、受け付けた操作に応じた指示信号を制御部28へ出力する。操作部26は、スイッチ、ボタン、ジョイスティックおよびレバー等を用いて構成される。
通信部27は、ネットワークN100を経由して学習装置3と所定の通信規格に従って双方向に通信を行う。通信部27は、画像ファイル等を送信する送信部271と、学習結果を受信する受信部272と、を有する。通信部27は、通信モジュール等を用いて構成される。
制御部28は、画像取得装置2を構成する各部の動作を制御する。制御部28は、CPUおよびメモリ等のハードウエアを有するプロセッサを用いて構成される。制御部28は、画像処理制御部281と、撮影制御部282と、表示制御部283と、記録制御部284と、通信制御部285と、を有する。
画像処理制御部281は、画像処理部22の動作を制御する。例えば、画像処理制御部281は、画像処理の彩度、明度、シャープネスおよびコントラスト等を制御する。
撮影制御部282は、判定部225の判定結果に基づいて、撮像部21を制御する。具体的には、撮影制御部282は、判定部225が対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを1回の撮影で行うことができないと判定した場合、対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータとなるように撮像部21の撮影パラメータを変更しながら撮像部21に複数回撮影を実行させる。
表示制御部283は、表示部23の表示態様を制御する。表示制御部283は、判定部225の判定結果を合成画像データに対応する合成画像に重畳して表示部23に表示させる。
記録制御部284は、撮像部21が生成した画像データと、検出部が検出した検出結果と、特定部223が特定した対象物を構成する複数の重要部位の特定結果と、生成部222が生成した対象物を構成する複数の重要部位の各々の奥行き情報と、対象物を構成する複数の重要部位の各々に対して選択した撮影パラメータと、合成部226が生成した合成画像データと、操作部26に対する操作履歴と、を含む画像ファイルデータを記録部24に記録する。
通信制御部285は、通信部27の通信を制御する。具体的には、通信制御部285は、操作部26の操作に応じて、送信部271に記録部24が記録する複数の画像ファイルデータを学習装置3へ送信させる。
〔学習装置の構成〕
次に、学習装置3の詳細な構成について説明する。
図3は、学習装置3の機能構成を示すブロック図である。図3に示す学習装置3は、通信部31と、学習部32と、学習データベース33と、学習制御部34と、を備える。
通信部31は、ネットワークN100を経由して画像取得装置2と所定の通信規格に従って双方向に通信を行う。通信部31は、学習装置3が学習した学習結果を送信する送信部311と、画像ファイルデータを受信する受信部312と、を有する。
学習部32は、画像取得装置2から送信された複数の画像ファイルデータに基づいて、ディープラーニング等の機械学習を行い、対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを更新するための推論モデルを第1の学習結果または第2の学習結果として生成する。ここで、複数の画像ファイルデータには、画像取得装置2が生成した画像データと、画像取得装置2によって画像データに対応する画像に写る対象物の検出結果と、対象物の奥行き情報と、対象物を構成する複数の重要部位の特定結果と、対象物を構成する複数の重要部位の各々に対して選択した最適な撮影パラメータと、複数の重要部位の各々に対して最適な撮影パラメータを1回の撮影で行うことができるか否かを判定した判定結果と、画像取得装置2が生成した合成画像データと、撮影パラメータから変更された操作履歴と、を含む。
学習データベース33は、複数の画像ファイルデータを記録する。学習データベース33は、HDD(Hard Disk Drive)およびSSD(Solid State Drive)等を用いて構成される。
学習制御部34は、学習装置3を構成する各部の動作を制御する。学習制御部34は、CPUおよびメモリ等のハードウエアを有するプロセッサを用いて構成される。
〔画像取得装置の処理〕
次に、画像取得装置2が実行する処理について説明する。図4は、画像取得装置2が実行する処理の概要を示すフローチャートである。
図4に示すように、まず、画像取得装置2が撮影モードに設定されている場合(ステップS101;Yes)について説明する。この場合、画像取得装置2は、対物物を撮影することによって画像データを生成する撮影処理を実行する(ステップS102)。なお、撮影処理の詳細は、後述する。
続いて、操作部26から終了を指示する指示信号が入力された場合(ステップS103:Yes)、画像取得装置2は、本処理を終了する。これに対して、操作部26から終了を指示する指示信号が入力されていない場合(ステップS103:No)、画像取得装置2は、上述したステップS101へ戻る。
ステップS101において、画像取得装置2が撮影モードに設定されていない場合(ステップS101:No)、画像取得装置2は、ステップS104へ移行する。
続いて、画像取得装置2が学習モードに設定されている場合(ステップS104:Yes)、画像取得装置2は、学習装置3に対して複数の画像ファイルデータを送信することによって推論エンジン25を最新の学習結果に更新させる学習処理を実行する(ステップS105)。なお、学習処理の詳細は、後述する。ステップS105の後、画像取得装置2は、ステップS103へ移行する。
ステップS104において、画像取得装置2が学習モードに設定されていない場合(ステップS104:No)、画像取得装置2は、ステップS106へ移行する。
続いて、画像取得装置2が再生モードに設定されている場合(ステップS106:Yes)、画像取得装置2は、記録部24の画像ファイル記録部241が記録する画像ファイル内の画像データに対応する画像を表示部23に再生させる(ステップS107)。ステップS107の後、画像取得装置2は、ステップS103へ移行する。
ステップS106において、画像取得装置2が再生モードに設定されていない場合(ステップS106:No)、画像取得装置2は、ステップS103へ移行する。
〔撮影処理〕
次に、図4のステップS102において説明した撮影処理の詳細について説明する。図5は、撮影処理の概要を示すフローチャートである。
図5に示すように、まず、撮影制御部282は、撮像部21に撮像を実行させる(ステップS201)。
続いて、検出部221は、撮像部21が生成した画像データに対応する画像から対物物を検出する(ステップS202)。この場合、検出部221は、推論エンジン25が記録する推論モデルに基づいて、対象物の種別を検出する。
その後、生成部222は、撮像部21が生成した画像データに基づいて、検出部221が検出した対象物の奥行き情報を生成し(ステップS203)、特定部223は、生成部222が生成した対象物の奥行き情報に基づいて、対象物を構成する複数の重要部位を特定する。具体的には、図6に示すように、ユーザU1が画像取得装置2を用いて主被写体である対象物A1を撮影している場合、生成部222は、図7に示す対象物A1の奥行き情報(距離分布情報)を生成する。図7において、水平方向をX、垂直方向をY、水平方向と垂直方向とが直交する奥行き方向をZとして説明する。図7の(b)における曲線L1(対象物A1の腹部(羽部)に相当),L2(対象物A1の頭部に相当)は、図7の(a)における垂直方向Y1,Y2の奥行き方向の奥行き情報(距離分布情報)を示す。図7の(b)の曲線L1および曲線L2に示すように、特定部223は、生成部222が生成した対象物の奥行き情報に基づいて、画像取得装置2から対象物A1を構成する複数の部位(例えば頭部、首、腹部(羽部)、脚部)において、同じ距離に位置している頭部および腹部(羽部)の各々が対象物A1においてユーザU1が重要部位として特定する。
続いて、判定部225は、推論エンジン25が記録する推論モデルの推論結果に基づいて、ユーザU1がこだわる複数の重要部位を1回の撮影で表現可能な否かを判定する(ステップS205)。判定部225が1回の撮影で表現可能であると判定した場合(ステップS205:Yes)、画像取得装置2は、後述するステップS206へ移行する。これに対して、判定部225が1回の撮影で表現可能でないと判定した場合(ステップS205:No)、画像取得装置2は、後述するステップS208へ移行する。
ここで、推論エンジン25が推論するユーザU1のこだわり重要箇所の推論方法について説明する。図8Aは、ユーザU1が画像取得装置2を用いて対象物を構成する重要部位として頭部にこだわって撮影した画像の一例を模式的に示す図である。図8Bは、ユーザU1が画像取得装置2を用いて対象物を構成する重要部位として羽部(腹部に相当)にこだわって撮影した画像の一例を模式的に示す図である。図8Cは、ユーザU1が画像取得装置2を用いて対象物を撮影する際にユーザU1が理想とする対象物を構成する複数の重要部位の各々に対してユーザU1が理想とする撮影パラメータで撮影できた場合の画像の一例を模式的に示す図である。図9は、推論エンジン25が推論時に使用する学習結果の一例を模式的に示す図である。
つまり、ここではわかりやすく、画像を分析してその色や形から対象物がどのような動物であるかが検出された場合、その動物ごとにどの部分が特徴的で正しく描写されるべきかを表形式で表している。この推論テーブルT1は、人間が理解しやすいように整理して論理的に説明しやすくして書いているが、実際には、機械学習で得られた推論エンジンは、これらの表の一部を飛ばして結論を出す場合もある。また、この時、キリンのおもちゃやポスターや、その他の紛らわしいものと本物のキリンを識別するために、対象物の距離や画面内の大きさ撮影時の光学系や撮像素子の情報を参考にした大きさ情報や厚み情報を加味すれば、より正しく紛い物と区別できるので、ここでは、被写体の大きさや顔と胴体の厚みの差などを副次情報として利用してもよい例を示している。顔は公知の目鼻口などの顔パーツの配置を画像で推論する技術を使い、そこから輪郭や同じ色などで繋がっている部分を胴体と判定すればよく、各部位の距離もカメラの距離測定の技術を使えば検出できる。
また、重要部位は、複数の部位を指定できるようにして、このような対象物なら、この部分とこの部分が重要という情報の入れ込みが出来るようにしている。顔検出や胴体の判定が公知であるので、動物を例に説明したが、花や姿勢毎の人物でも同様の表が作成できる。このような表は、まず、対象物を特定する辞書などを設け(前述の大きさや形か色などで判別可能とする)、特定部223が専用のプログラムでこれを特定、図9のような表を記録部24に設けておき、どこを重視するかというのをテーブル参照できるようにして構成すれば、重要な部位が好ましく描写された撮影(観察でもよい)が出来る撮像装置が提供可能となる。
ただし、このように、対象物特定、さらにテーブル参照による対象部位の重要性判定、その部位が画像のどこであるかを判定して好適なパラメータ制御で撮像、というステップを踏まなくてもよい。例えば、画像から対象物特定をせずに、画像の中の複数の重要部位をそのまま判定できる推論モデルを使ってもよい。
図8A~図8Cに示すように、ユーザU1は、対象物A1を構成する複数の重要部位の各々に対して、こだわりを持って撮影を行っている。しかしながら、図8Aに示すように、ユーザU1は、対象物A1を構成する複数の重要部位のうち頭部A11に画像取得装置2のピントを合わせて撮影した場合、対象物A1を構成する複数の重要部位である羽部A12にピントを合わすことが難しいうえ、羽部A12の色の表現することが難しい。一方、図8Bに示すように、ユーザU1は、対象物A1を構成する複数の重要部位である羽部A12に画像取得装置2の露出を合わせて羽部A12の色にこだわって撮影した場合、対象物A1を構成する複数の重要部位である頭部A11に露出やピントを合わすことが難しい。このため、図8Cに示すように、ユーザU1は、対象物A1を構成する複数の重要部位の各々に対して、こだわりを反映しつつ、理想とする撮影パラメータで撮影したい。そこで、判定部225は、検出部221が検出した検出結果および特定部223が特定した特定結果と推論エンジン25が記録する推論モデルの学習結果テーブルT1に基づいて、ユーザU1がこだわる複数の重要部位を1回の撮影で表現可能か否かを判定する。例えば、判定部225は、検出部221が対象物をフラミンゴと検出し(例えば図7を参照)、特定部223がフラミンゴを構成する重要部位の顔部および羽部の各々を特定している場合、重要部位の顔部および羽部の各々に対して最適な撮影パラメータが異なるので、1回の撮影で表現可能でないと判定する。
ステップS206において、選択部224は、複数の画像データを用いて推論エンジン25が記録する推論モデルに基づいて、複数の重要部位の各々に対して最適な撮影パラメータを選択する。
続いて、撮影制御部282は、選択部224が選択した複数の重要部位の各々に対して最適な撮影パラメータに基づいて、撮像部21に撮像を実行させる(ステップS207)。ステップS207の後、画像取得装置2は、後述するステップS211へ移行する。
ステップS208において、選択部224は、推論エンジン25が記録する推論モデル、複数の重要部位の各々に対して撮影毎の最適な撮影パラメータを選択する。
続いて、撮影制御部282は、選択部224が選択した複数の重要部位の各々に対して最適な撮影パラメータに基づいて、重要部位毎に撮影パラメータを変更して撮像部21に撮像を実行させる(ステップS209)。
その後、合成部226は、撮像部21が生成した複数の画像データに基づいて、重要部位毎に撮影パラメータを反映した合成画像データを生成する(ステップS210)。
続いて、表示制御部283は、画像処理部22が生成した画像データに対応する画像を表示部23に表示させる(ステップS211)。
その後、操作部26に対して撮影パラメータを変更する手動操作があった場合(ステップS212:Yes)、撮影制御部282は、撮像部21の撮影パラメータを変更し(ステップS213)、撮影パラメータで変更があった操作履歴を記録部24に一時的に記録する(ステップS214)。ステップS214の後、画像取得装置2は、後述するステップS215へ移行する。これに対して、操作部26に対して撮影パラメータを変更する手動操作がなかった場合(ステップS212:No)、画像取得装置2は、後述するステップS215へ移行する。
続いて、操作部26に対して撮影操作があった場合(ステップS215:Yes)、撮影制御部282は、撮像部21に撮影を実行して記録する(ステップS216)。この場合、記録制御部284は、撮像部21が生成した画像データと、検出部221の検出結果と、特定部223が特定した対象物を構成する複数の重要部位の特定結果と、生成部222が生成した対象物を構成する複数の重要部位の各々の奥行き情報と、選択部224が対象物を構成する複数の重要部位の各々に対して選択した撮影パラメータと、記録部24に記録された操作履歴と、合成画像データと、を格納した画像ファイルデータを生成して画像ファイル記録部241に記録する。ステップS216の後、画像取得装置2は、図4のメインルーチンへ戻る。
ステップS215において、操作部26に対して撮影操作がなかった場合(ステップS215:No)、画像取得装置2は、図4のメインルーチンへ戻る。
〔学習処理〕
次に、図4のステップS105において説明した学習処理の詳細について説明する。図10は、学習処理の概要を示すフローチャートである。画像取得装置2が、図9で説明した推論テーブルT1と同様の効果を奏する推論モデル(学習済みモデル)を得る時、こだわりの撮影が出来るように教師データの一部を学習させられるようにした工夫である。誰もが撮るような類型的な画像で満足できる場合は、必ずしも学習処理を積極的に行わずともよく、製品の工場からの出荷時点でこの処理を終わらせておいてもよい。
図10に示すように、通信制御部285は、送信部271に画像ファイル記録部241が記録する複数の画像ファイルデータを学習データとして学習装置3へ送信する(ステップS301)。この場合、画像ファイルデータには、対象物を撮像した画像データと、メタデータとが含まれる。メタデータとしては、画像取得装置2によって特定された対象物を構成する複数の重要部位の特定結果、画像取得装置2によって生成された対象物を構成する複数の需要部位の各々の奥行き情報、画像取得装置2が複数の重要部位の各々に対して選択した撮影パラメータ、および推論エンジン25の推論した撮影パラメータから変更された操作履歴データである。この学習データとして送信する画像ファイルデータは、こうした画像を撮りたい、といった場合に、画像内においてこだわって描写した部分を指定したり、うまく行って満足した画像と失敗した画像を指定して出力したりできるようにしてもよい。つまり、これから撮影したいものに対し、すでに得られている画像ごとに当該画像に含まれる複数の部位を重要部位が定められた複数の教師データを使って学習された学習済モデルを使って正しい制御を行う。ユーザが撮影(観察)して満足した画像のみを送信してもよく、失敗した画像はユーザによる画像消去操作時に送信してもよい。これはネガティブサンプルになる。失敗部分をタッチ操作で指定できるグラフィックインターフェースにしてもよい。操作履歴からその重要部分が判定される場合もある。何度も、どこにピントを合わせようかと悩んだ操作があれば、そのピントを合わせた履歴から、それが得られる。このような学習データの送信によって、外部の学習装置3がユーザの良いと思った画像に似た制御を行うための推論エンジン(の学習用データ)を設計する。また、これは絶対に撮影したいという例があれば、これを検査用データとしてもよい。この時、どこがこだわり部位であるかの情報も合わせて出力する。
続いて、受信部272が学習装置3から学習結果を受信した場合(ステップS302:Yes)、制御部28は、推論エンジン25の学習結果を、学習装置3から送信された学習結果に更新する(ステップS303)。これにより、ユーザの操作によって操作履歴に基づく学習結果を反映した推論エンジン25に更新することができる。ステップS303の後、画像取得装置2は、図4のメインルーチンへ戻る。これに対して、受信部272が学習装置3から学習結果を受信していない場合(ステップS302:No)、学習装置3から学習結果を受信するまで待機する。
〔学習装置の処理〕
次に、学習装置3が実行する処理について説明する。図11は、学習装置3が実行する処理の概要を示すフローチャートである。なお、実施の形態1では、推論エンジンをどのように設計するかはいくつかの選択肢があり、図9で説明したように、まず対象物を検出して、その後、重要部位がどこであるかを推論する場合もあり、対象物にこだわらず、統計的に重要な部位を画像全体の特徴から推論する方法もある。ここでは、ユーザが撮影した画像や、ユーザが指定したカテゴリーの画像を使って学習するものを例示している。この画像は、前述のように画像の部位ごとの遠近分布情報や撮像系の特性と対象物距離、画面内の大きさからえられた対象物の大きさ情報を含んでもよい。その方が情報量が増えることによって正確な推論ができる場合がある。また、個々のユーザが選ばなくとも、一般的に良いとされる画像にこだわり描写部位(ピントや色、これらを優先順位付けしてもよい)をアノテーションした画像を教師データとしてもよい。
図11に示すように、まず、ネットワークN100を経由して受信部312が画像取得装置2から学習データを受信した場合(ステップS401:Yes)、学習部32は、学習制御部34の制御のもと、受信部312が受信した学習データに基づいて、機械学習を行う(ステップS402)。教師データあるいは、上述の検査用画像データの重要部位が特定の信頼性で正しく判定されるまで、教師データを変えたり、ネガティブサンプルを入れたり、ネットワークの構成を変更したりして試行錯誤があるので、S402は実際には何度もループを繰り返して学習のやり直しを行う。
続いて、学習制御部34は、画像取得装置2に対して、学習部32が生成した推論モデルを送信部311に送信させる(ステップS403)。ステップS403の後、学習装置3は、本処理を終了する。これは具体的には、推論エンジンのレイヤー構造や各情報の重みづけ方法を規定したデータであって、画像取得装置に内蔵された推論エンジン用のハードウエアが、これにしたがって画像から重要ポイントを判断できるようになるものである。
ステップS401において、ネットワークN100を経由して受信部312が画像取得装置2から画像データを受信していない場合(ステップS401:No)、学習装置3は、本処理を終了する。
以上説明した実施の形態1によれば、選択部224が対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを選択するので、対象物の部位毎に適した処理を行うことができる。このような工夫によって、すでに得られている画像ごとに当該画像に含まれる複数の部位を重要部位が定められた複数の教師データを使って学習された学習済モデルに従って、取得中の画像から複数の重要部位を特定する特定部と、前記複数の重要部位の各々に対して最適な撮影パラメータを選択する選択部とを備える画像処理装置が提供可能となる。このようにして得られた学習結果は、図9のようなテーブル判定に似た規則で、対象物毎の重要部位を判定することができる。図9では、重要部位に優先順位を示したが、これをさらに細分化して、ピントではこの部位、色ではこの部位と、分けて優先順位付けを行ってもよい。これまで説明したように、「教師あり学習」が、アノテーションによって出力を定められた教師データを使って「入力と出力の関係」を学習するもので、特定の条件下での信頼性の高い推論を行うものであるのに対し、「データの構造」を学習する「教師なし学習」の手法を用いることによって、より複雑な状況に対応できる推論モデルを取得してもよい。「強化学習」と呼ばれる、「価値や効果を最大化するような行動」を学習する手法を用いても良い。これは、状態行動価値が増大化するような法則を見つけるように学習させるもので、現在ではなく次の状態の価値を見積もって高めたり、特定の報酬が得られたりするまで試行錯誤した結果を学習に反映させる。学習結果の検証には、教師データを使ってもよい。アノテーションによって得られた正解の出力をそのまま学習するのではなく、さらに良い回答が得られるよう学習させるもので、未知の状況に対応できるようにしたものである。これらは教師あり学習と併用してもよく、教師なし学習による推論のあと、教師あり学習による推論を行ってもよい。アノテーション用データは、こうした「教師なし学習」、「強化学習」の検証用データとしても利用が可能である。」。「機械に何かを判定させる場合、人間が機械に判定の仕方を教える必要があり、ここでは画像の判定を、機械学習により導出する手法を採用したが、そのほか、人間が経験則・ヒューリスティクスによって獲得したルールを適応するルールベースの手法を用いてもよい。
また、実施の形態1によれば、選択部224が推論エンジン25によって記録された推論モデルに基づいて、対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを選択するので、対象物の部位毎に適した処理を行うことができる。
また、実施の形態1によれば、特定部223が生成部222によって生成された奥行き情報を利用してもよい。つまり、より多くの情報で対象物を構成する複数の重要部位を特定することができるので、選択部224が最適な撮影パラメータを選択することができる。
また、実施の形態1によれば、特定部223が生成部222によって生成された奥行き情報に基づいて、対象物を構成する複数の重要部位を特定することができるので、選択部224が最適な撮影パラメータを選択することができる。
また、実施の形態1によれば、特定部223が生成部222によって生成された奥行き情報と検出部221によって検出された対象物の種別とに基づいて、対象物を構成する複数の重要部位を特定するので、対象物毎の重要な撮影パラメータを選択することができる。
また、実施の形態1によれば、判定部225によって撮像部21が選択部224によって選択された複数の重要部位の各々に対して最適な撮影パラメータを1回の撮影で行うことができるか否かを判定し、撮影制御部282が判定部225の判定結果に基づいて、撮像部21を制御するので、対象物に適した撮影回数で撮影を行うことができる。
また、実施の形態1によれば、合成部226が撮像部21によって撮影パラメータが変更されながら生成した複数の画像データを合成して合成画像データを生成するので、対象物の部位毎に適した撮影パラメータの画像を生成することができる。
また、実施の形態1によれば、記録制御部284が、撮像部21が生成した画像データと、検出部221の検出結果と、特定部223が特定した対象物を構成する複数の重要部位の特定結果と、生成部222が生成した対象物を構成する複数の重要部位の各々の奥行き情報と、選択部224が対象物を構成する複数の重要部位の各々に対して選択した撮影パラメータと、記録部24に記録された操作履歴と、合成画像データと、を格納した画像ファイルデータを生成して画像ファイル記録部241に記録するので、学習装置3で学習させる学習データを容易に作成することができる。
(実施の形態2)
次に、実施の形態2について説明する。上述した実施の形態1では、画像取得装置として撮像装置に適用した例に説明したが、実施の形態2では、画像取得装置として内視鏡に適用した場合について説明する。また、実施の形態2に係る画像処理装置は、上述した実施の形態1に係る画像取得装置2と同様の構成を有し、実行する撮影処理が異なる。以下においては、実施の形態2に係る画像取得装置が実行する撮影処理について説明する。なお、上述した実施の形態1に係る画像取得装置2と同一の構成には同一の符号を付して詳細な説明を省略する。
〔撮影処理〕
図12は、実施の形態2に係る画像取得装置2が実行する撮影処理の概要を示すフローチャートである。図12において、画像取得装置2は、上述した図5のステップS211に換えて、ステップS211Aを実行し、それ以外は、上述した図5と同様のため、詳細な説明は省略する。
ステップS211Aにおいて、表示制御部283は、推論エンジン25の推論結果に基づいて、対象物を構成する重要部位毎に応じたメッセージを重畳した画像を表示部23に表示させる。具体的には、図13に示すように、画像取得装置2が対象物A100を撮像している場合(図14の画像P11→画像P12→画像P13→画像P14→画像P15→画像P16)、表示制御部283は、図15または図16に示すように、推論エンジン25の推論結果に基づいて、対象物を構成する重要部位毎に応じたメッセージ、例えばOKやNGを重畳した画像を表示部23に表示させる。これにより、ユーザは、直感的に最適な画像を把握することができる。
以上説明した実施の形態2によれば選択部224が対象物を構成する複数の重要部位の各々に対して最適な撮影パラメータを選択するので、対象物の部位毎に適した処理を行うことができる。
(その他の実施の形態)
上述した実施の形態1,2に係る画像処理システムに開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、上述した本開示の実施の形態に係る画像処理システムに記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、上述した本開示の実施の形態に係る画像処理システムで説明した構成要素を適宜組み合わせてもよい。
また、実施の形態1,2に係る画像処理システムでは、上述してきた「部」は、「手段」や「回路」などに読み替えることができる。例えば、制御部は、制御手段や制御回路に読み替えることができる。
また、実施の形態1,2に係る画像処理システムに実行させるプログラムは、インストール可能な形式または実行可能な形式のファイルデータでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)、USB媒体、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、実施の形態1,2に係る画像処理システムに実行させるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
なお、本明細書におけるフローチャートの説明では、「まず」、「その後」、「続いて」等の表現を用いてステップ間の処理の前後関係を明示していたが、本発明を実施するために必要な処理の順序は、それらの表現によって一意的に定められるわけではない。即ち、本明細書で記載したフローチャートにおける処理の順序は、矛盾のない範囲で変更することができる。また、こうした、単純な分岐処理からなるプログラムに限らず、より多くの判定項目を総合的に判定して分岐させてもよい。その場合、ユーザにマニュアル操作を促して学習を繰り返すうちに機械学習するような人工知能の技術を併用しても良い。また、多くの専門家が行う操作パターンを学習させて、さらに複雑な条件を入れ込む形で深層学習をさせて実行してもよい。
以上、本願の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、本発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。