IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特開2022-190920情報処理装置、クラス判定方法、プログラム
<>
  • 特開-情報処理装置、クラス判定方法、プログラム 図1
  • 特開-情報処理装置、クラス判定方法、プログラム 図2
  • 特開-情報処理装置、クラス判定方法、プログラム 図3
  • 特開-情報処理装置、クラス判定方法、プログラム 図4
  • 特開-情報処理装置、クラス判定方法、プログラム 図5
  • 特開-情報処理装置、クラス判定方法、プログラム 図6
  • 特開-情報処理装置、クラス判定方法、プログラム 図7
  • 特開-情報処理装置、クラス判定方法、プログラム 図8
  • 特開-情報処理装置、クラス判定方法、プログラム 図9
  • 特開-情報処理装置、クラス判定方法、プログラム 図10
  • 特開-情報処理装置、クラス判定方法、プログラム 図11
  • 特開-情報処理装置、クラス判定方法、プログラム 図12
  • 特開-情報処理装置、クラス判定方法、プログラム 図13
  • 特開-情報処理装置、クラス判定方法、プログラム 図14
  • 特開-情報処理装置、クラス判定方法、プログラム 図15
  • 特開-情報処理装置、クラス判定方法、プログラム 図16
  • 特開-情報処理装置、クラス判定方法、プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190920
(43)【公開日】2022-12-27
(54)【発明の名称】情報処理装置、クラス判定方法、プログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221220BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021099454
(22)【出願日】2021-06-15
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】清水 智之
(72)【発明者】
【氏名】野上 敦史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA03
5L096CA21
5L096DA01
5L096DA03
5L096EA13
5L096EA14
5L096FA17
5L096GA34
5L096GA51
5L096HA11
5L096KA04
5L096MA07
(57)【要約】
【課題】 十分な数の学習用画像が得られなかったクラスがあっても、間違ったクラス分類を低減させることを目的とする。
【解決手段】 各クラスの学習用画像の数から統合対象のクラスを判定し、前記統合対象のクラスと、クラスの順序関係において隣接するクラスとを統合し、学習された判別器を用いて統合した後のクラスにより入力画像のクラス分類を行う。
【選択図】 図2
【特許請求の範囲】
【請求項1】
順序関係を有する複数のクラスのいずれかに属するオブジェクトを含む学習用画像の数であって、前記複数のクラスそれぞれの学習用画像の数を取得する取得手段と、
前記複数のクラスのうち学習用画像の数が閾値を下回るクラスを、統合の対象とする統合対象クラスを判定する第1の判定手段と、
前記統合対象クラスと、前記順序関係において隣接するクラスとを統合する統合手段と、
前記統合手段による統合後のクラスに基づいて、入力画像に含まれるオブジェクトが属するクラスを、前記学習用画像を用いて学習される判定器を用いて判定する第2の判定手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記閾値は、ユーザからの入力に基づいて設定されることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記入力画像に含まれるオブジェクトが、前記統合手段により統合したクラスと、前記複数のクラスうち前記統合手段により統合されなかったクラスとのうち属するクラスを判定するように、前記学習用画像を用いて前記判定器を学習する学習手段を更に有することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第1の判定手段により判定された前記統合対象クラスと前記順序関係において隣接するクラスが2つある場合、前記統合手段は、前記統合対象クラスと前記順序関係において隣接する2つのクラスのうち学習用画像の数が少ないクラスと、前記統合対象クラスとを統合することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記統合対象クラスと、前記順序関係において隣接するクラスとを統合する指示をユーザから受付ける受付手段を有し、
前記統合手段は、前記受付手段により前記指示を受付けた場合、前記統合対象クラスと、前記順序関係において隣接するクラスとを統合することを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記統合対象クラスの学習用画像と、前記順序関係において隣接するクラスの学習用画像とを表示させる表示制御手段を更に有することを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記入力画像に含まれるオブジェクトが前記統合手段により統合したクラスに属すると前記第2の判定手段により判定された場合、前記入力画像に含まれるオブジェクトが、前記統合対象クラスまたは前記順序関係において隣接するクラスに属するかをユーザ操作に基づいて特定する特定手段を更に有することを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記複数のクラスのうち、学習用画像の数が前記閾値を下回るクラスであっても、特定のクラスは統合対象のクラスとして判定しないことを特徴とする請求項2に記載の情報処理装置。
【請求項9】
前記複数のクラスのそれぞれは、構造物における部材の損傷度を示すクラスであって、
前記特定のクラスは、補修をすべきとするか否かの判断の境界であるクラスであることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記複数のクラスのそれぞれは、年齢、病状の進行度または構造物における部材の損傷度を示すクラスであることを特徴とする請求項1から8のいずれか1項に記載の情報処理装置。
【請求項11】
順序関係を有する複数のクラスのいずれかに属するオブジェクトを含む学習用画像の数であって、前記複数のクラスそれぞれの学習用画像の数を判定し、
前記複数のクラスのうち学習用画像の数が閾値を下回るクラスを、統合の対象とする統合対象クラスを判定し、
前記統合対象クラスと、前記順序関係において隣接するクラスとを統合し、
当該統合の後のクラスに基づいて、画像に含まれるオブジェクトが属するクラスを、前記学習用画像を用いて学習される判定器を用いて判定することを特徴とするクラス判定方法。
【請求項12】
請求項1から10のいずれか1項に記載の情報処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像をクラス分類する方法に関する。
【背景技術】
【0002】
近年、大量の正解画像データを利用して多層のConvolutional Neural Network(以下、CNNと呼ぶ)のパラメータを学習(最適化)することで、高精度に画像中の物体の種類やカテゴリを判定するクラス判定に係る画像処理技術がある。十分に学習を進めることで、人を超えるような判定精度が出ることも知られており、学習を用いたクラス判定に係る画像処理技術は、画像を利用した様々な分野で広く普及しつつある。例えば、社会インフラの保守・点検や医療等様々な領域で、このような画像処理技術を適用が検討されている。社会インフラの点検では、橋梁やトンネルといった構造物や、それらを構成する各種部材を撮影しておき、当該画像に対して上述したような画像処理を適用することによって、損傷の度合いを判定することが考えられる。特許文献1には、取得された画像と、学習用の被災した建物の画像と該建物の損傷度とを表す学習用データから予め学習された損傷度判定用学習済みモデルとに基づいて、被災建物の損傷度を出力する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-175015号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
構造物の劣化・損傷の度合いを判定する判定器や、レントゲン検査などの画像検査による病状の進行度合いを判定する判定器を学習するためには、様々な状態(以下、クラスとする)に対応する学習用の画像が必要になる。また、どの状態でも精度よくクラス判定を行う判定器を学習するには、それぞれの状態で十分な数の学習用の画像を用いて学習を行う必要がある。しかし、異常な状態に対応するクラスの画像は正常な画像に対して得ることが難しく、学習用画像の数に不十分なクラスが生じてしまう場合がある。このような、一部のクラスに対応する学習用画像が不十分である状態で学習された判定器では、クラス分類が正しく行えなくなる可能性がある。
【0005】
そこで、本発明は、十分な数の学習用画像が得られなかったクラスがあっても、間違ったクラス分類を低減させることを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために本発明に係る情報処理装置は、
順序関係を有する複数のクラスのいずれかに属するオブジェクトを含む学習用画像の数であって、前記複数のクラスそれぞれの学習用画像の数を取得する取得手段と、
前記複数のクラスうち学習用画像の数が閾値を下回るクラスを、前記複数のクラスのうち統合の対象とする統合対象クラスを判定する第1の判定手段と、
前記統合対象クラスと、前記順序関係において隣接するクラスとを統合する統合手段と、
前記統合手段による統合後のクラスに基づいて、入力画像に含まれるオブジェクトが属するクラスを、前記学習用画像を用いて学習される判定器を用いて判定する第2の判定手段と、
を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、十分な数の学習用画像が得られなかったクラスがあっても、間違ったクラス分類を低減させることができる。
【図面の簡単な説明】
【0008】
図1】本発明を適用できるクラス判定装置100の実施形態における回路構成を示すブロック図である。
図2】本発明を適用できるクラス判定装置100の実施形態における機能構成を示すブロック図である。
図3】本発明を適用できるクラス判定装置100の実施形態における処理の手順を示すフローチャートである。
図4】本発明の実施形態における、学習データ数の各クラスの分布を示した例である。
図5】本発明の実施形態における、統合クラスの確認表示を提示し、ユーザから統合可否の指示を受け取る構成を示すブロック図である。
図6】本発明の実施形態における、統合したクラスの画像を混在させてユーザに提示する表示の例である。
図7】本発明の実施形態における、統合クラスで学習したモデルを用いて推論を実施した結果をユーザに提示し、推論結果が統合クラスの場合にクラスをユーザに確定させる構成を示すブロック図である。
図8】本発明の実施形態における、推論結果が統合クラスだった場合に、統合したクラスをユーザが選択できるようにした表示の例である。
図9】本発明の実施形態における、統合クラスの選択表示で、統合クラスの各クラスの学習画像を合わせて提示する表示の例である。
図10】本発明の実施形態における、推論結果が統合クラスであった場合に、当該統合クラスの隣接クラスの尤度を提示し、当該尤度によって初期値を設定する例を示した図である。
図11】本発明の実施形態における、重要クラス境界をユーザが設定できるようにした構成を示すブロック図である。
図12】本発明の実施形態における、重要クラス境界を設定された場合の処理の手順を示すフローチャートである。
図13】本発明の実施形態における、学習データに、隣接する2クラスのいずれであるか判定が困難な状態のクラスを付与できるようにした場合の構成を示すブロック図である。
図14】本発明の実施形態における、隣接する2クラスのいずれであるか判断がつかなかった場合のクラス設定を含む、データ数の分布例を示した図である。
図15】本発明の実施形態における、ユーザが隣接する2クラスを選択して設定するための表示例を示した図である。
図16】本発明の実施形態における、判定対象を含むように撮影した画像例を示した図である。
図17】本発明の実施形態における、判定対象を位置と大きさをそろえて切り出した画像例を示した図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施形態の1つである。
【0010】
<実施形態1>
本実施形態のクラス判定方法を実施する情報処理装置であるクラス判定装置100の構成について、図1のブロック図を参照して説明する。クラス判定装置100は単一のコンピュータ装置で実現してもよいし、必要に応じた複数のコンピュータ装置に各機能を分散して実現するようにしてもよい。複数のコンピュータ装置で構成される場合は、互いに通信可能なようにLocal Area Network(LAN)などで接続されている。
【0011】
図1において、101はクラス判定装置100全体を制御するCentral Processing Unit(CPU)である。102は変更を必要としないプログラムやパラメータを格納するRead Only Memory(ROM)である。103は外部装置などから供給されるプログラムやデータを一時記憶するRandom Access Memory(RAM)である。なお、後述するフローチャートにより示される処理は、ROM102に記憶されるプログラムをRAM103にロードし、CPU101が実行することにより各ハードウェアの制御及び情報の演算および加工を行うことで実現される。
【0012】
104はクラス判定装置100に固定して設置されたハードディスクやメモリカードなどの外部記憶装置である。なお、外部記憶装置100は、着脱可能なフレキシブルディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含む記憶装置であってもよい。本実施形態では、学習画像データや、学習画像に紐づくクラスのデータ、クラスの順序関係の情報、推論対象の画像データ、学習したモデル等を格納しておくものとする。
【0013】
105は、ユーザの操作を受けてデータを入力するポインティングデバイスやキーボードなどの入力デバイス109とのインタフェースである。106はクラス判定装置100の保持するデータや供給されたデータやプログラムの実行結果を出力するためのモニタなどの出力デバイス110とのインタフェースである。
【0014】
107はWANやLANといったネットワーク111に接続するための通信インタフェースである。本実施形態においても、WANやLANを経由して別のコンピュータ装置と接続し、処理結果や表示内容やユーザの指示等を送受信するようにしても構わない。108は101~107の各ユニットを通信可能に接続するシステムバスである。
【0015】
本実施形態では、ユーザが撮影した学習用の画像にクラスのラベルを付与したデータを学習用データとしてクラス判定器を学習する場合を想定する。例えば、ユーザの端末を経由してネットワーク経由で学習用データを受け取って、判定器を学習し、当該推論器による推論サービスを行うといった業態が考えられる。学習データの作成においては、ユーザがあらかじめ撮影した画像は、外部記憶装置104に保存する。
【0016】
なお、本実施形態では、判定対象が、橋梁やトンネル等の構造物における部材(ボルト等)の損傷度をクラス分類する場合を例として説明する。なお、判定対象は、これらに限らず、人、物体を対象とし、人の表情や年齢のクラス分類や物体の属性などのクラス分類に本実施形態を適用してもよい。
【0017】
図16は、部材を含む壁面の一部を撮影した画像例である。このように、点検対象の部材を網羅するように、少しずつ撮影範囲をずらしながら、構造物の壁面全体を撮影するものとする。そのため、図16のような画像が多数撮影されることとなる。
【0018】
本実施形態では、こうして得た図16のような画像から、さらに個々の判定対象をあらかじめ切り出した画像を作成しておく。図17は、図16の1601のボルトを切り出した画像の例である。図17のように判定対象を概ね中心となるようにした上で、おおよその大きさをそろえて切り出す。一般的には、このように位置・大きさが正規化された入力画像を利用することで、画像処理による判定精度が向上することが知られている。そのため、本実施形態でもあらかじめ切り出しを行っておき、当該画像を、判定器の入力画像として、外部記憶装置104に逐次保存・管理しておく。なお、判定対象の画像からの切り出しについては、クラス判定装置100により、画像認識に基づいて実行してもよいし、ユーザ操作に基づいて実行してもよい。
【0019】
また、学習用の画像については、図17のような個々の判定対象に対して、あらかじめ各部材のクラスとして損傷の度合いを示す損傷度を判定し、当該判定対象と紐づけて外部記憶装置104に保管しておく。
【0020】
なお、本実施形態では損傷度をS、A、B、C、Dの5段階で判断する。Sクラスが最も高い損傷度であり、部材の劣化・破損が最も進んでいる状態とする。以下、A⇒B⇒C⇒Dの順に損傷の度合いが少なくなるものとする。また、上述したような各損傷度のクラスの順序関係の定義も合わせて保存しておく。なお、5段階は一例であり、任意の粒度でのクラス分類を実施してよい。
【0021】
こうして保存された各種データを取得しながら判定器を学習する例を以下で説明する。なお、判定対象の画像は上記に限定するものではなく、順序関係のあるようなクラスで画像分類が行われるものであればよい。例えば、農業などの生産品のランク判定や、医療画像の病変の判定等であっても構わない。
【0022】
次に、本実施形態のクラス判定装置100の機能構成について,図2のブロック図を参照して説明する。図2により示す各機能ブロックは、ROM102に記憶されるプログラムをRAM103にロードし、CPU101が実行することにより各ハードウェアの制御及び情報の演算および加工を行うことで実現される。なお、各機能ブロックを例えばASIC等のハードウェアにより実現する構成としてもよい。
【0023】
201は、学習用データの全損傷度データを取得するデータ取得部である。データ取得部201は、例えば、図4の表に示すような各損傷度の分布情報を取得する。図4は各クラスの学習データ数の分布を示した表の一例である。この例では最も損傷度の高いSクラスの画像が10枚しか得られなかったことになる。一般的に、異常を示すようなクラスのサンプルは他のクラスに比べて得られにくいことが多い。この例はそのような状況を示した典型的なケースと言える。
【0024】
202は、統合対象の損傷度クラスを判定する統合クラス判定部である。本実施形態では、統合クラス判定部202により統合の対象である統合対象クラスとして判定されるクラスは、あらかじめ与えられた閾値に満たない数しかサンプルが存在しないクラスとする。例えば、図4のような場合のサンプルが存在しており、サンプル数の閾値が50枚であったとすると、当該閾値に満たないSクラスを統合対象として判定する。
【0025】
203は、クラス間の順序関係を取得するクラス順序取得部である。本実施形態では、クラス順序取得部203は、損傷度の順にソートしたクラス情報を取得する。上述した通り、本実施形態ではS⇒A⇒B⇒C⇒Dの順に損傷度が低くなるため、S,A,B,C,Dといった順序付きのリスト等で取得する。
【0026】
204は、202で判定した統合対象のクラスを統合して新しいクラス体系を作るクラス統合部である。クラス統合部204は、クラス順序取得部203からクラスの順序関係を取得し、統合対象のクラスを隣接するクラスに統合する処理を行う。本実施形態では、クラス統合部204は、統合対象のクラスを、隣接するクラスのうち、サンプルの数が少ないクラスに統合するものとする。例えば、本実施形態では図4のような分布であった場合、Sクラスが統合対象であることは上述した通りであり、順序関係でSクラスに隣接するクラスはAクラスであることから、AクラスへとSクラスを統合する。SとAを統合したクラスをS+Aクラスとすると、この統合により、S+A,B,C,Dのような4つのクラス体系となる。クラスのラベルはS+A等のように、他のクラスと重複しない任意のラベルであって構わない。クラス統合部204はクラス順序取得部203で取得したクラス順序関係と対応付けて、統合したクラスの情報を保存しておく。なお、統合対象のクラスを、隣接するクラスのうち、サンプルの数が多いクラスに統合するものとしてもよい。
【0027】
205は、部材画像と対応する損傷度クラスの学習データを逐次取得して、学習処理を実施しクラス分類を判定する判定器を生成する学習部である。本実施形態では、クラスの分類の判定は、多層のニューラルネットワークで構成したモデルを利用した多クラス判定器を、部材画像と正解クラスのペアのデータを大量に与えて学習させることで行うものとする。なお、多層のニューラルネットワークのモデルは、VGGやresNetなどのCNNを多層化した既知のネットワークを利用すればよい。ただし、CNNに限定するものではなく、画像を入力として、クラス判定結果を出力できれば、特に限定するものではない。また、上記のようなCNNモデルの学習時には、各クラスの尤度分布を出力するように出力層を学習する方法が知られている。損失関数としてcross-entropy lossを利用するこの手法はCNNを利用した多クラス判定として一般的な手法であり、本実施形態でも当該手法に倣った構成を取るものとする。この場合に、例えば、SとAを統合した場合は、SないしAクラスの部材データの正解クラスは、統合したS+Aクラスとして判定されるように学習時に正解として与える。その結果、学習して得られたモデルによって推論した結果は、S+A、B、C、Dのクラスに入力画像を分類した出力を行う。このようにすることで、サンプルが少なくバランスが悪い学習データセットが与えられた場合であっても、大きな間違いとならずに、S+Aいずれかであるという結果として得ることができる。
【0028】
次に、本実施形態のクラス判定装置100におけるクラスを統合する処理の手順について、図3のフローチャートを参照して説明する。本フローチャートは、判定器の学習処理を開始する際に実施する。なお、判定器の学習処理を終了する場合、または、画像に含まれるオブジェクトのクラス分類の判定処理を行う際に開始されるように構成してもよい。
【0029】
まず、ステップS301では、クラス順序取得部203は、クラス順序情報を外部記憶装置104から取得する。
【0030】
ステップS302では、統合クラス判定部202は、不足クラスを判定する閾値を目標値として取得する。本実施形態では、前述した通り、あらかじめ当該閾値は設定されているものとする。閾値はユーザからの入力に基づいて決定されてよい。また、閾値は、システムが自動で判断して決定する構成としてもよい。
【0031】
ステップS303では、データ取得部201は、各クラスのデータないし少なくともクラス毎の学習用データである画像数(サンプル数)の情報を外部記憶装置104から取得する。そして、統合クラス判定部202は、ステップS302で取得した閾値に満たない画像数のクラス(以下、不足クラス)があるか否かを判定する。閾値を下回る不足クラスがある場合は、ステップS304へ進む。本実施形態では、最も少ない不足クラスから統合を実施する。閾値を下回る不足クラスがない場合は、クラスの統合を行わず、処理を終了する。
【0032】
ステップS304では、クラス統合部204は、クラス順序取得部203で取得したクラス順序情報を参照し、ステップS303で特定した不足クラスに隣接するクラスの学習用データである画像数(サンプル数)を取得する。
【0033】
ステップS305では、クラス統合部204は、ステップS304で特定した隣接クラスのうちサンプル数が少ない方のクラスを特定する。
【0034】
ステップS306では、クラス統合部204が、当該不足クラスをS305で特定した少ないほうの隣接クラスへと統合し、新たな統合クラスを作る。そして、ステップS303へ戻り、統合クラスを含め、不足クラスが無いかを判定する処理を繰り返す。
【0035】
なお本実施形態では、ステップS303に戻り、統合クラスが不足クラスであった場合には、さらに当該統合クラスを挟んで隣接するクラスに対して統合処理が実施される。
【0036】
ただし、統合クラスに含まれるクラスが多すぎることは、ユーザにとっては精度が高くても曖昧過ぎる場合も考えられる。よって、例えば、一つの統合クラスに対する最大統合数をあらかじめ設定するなどしておいても構わない。その場合は、S303で不足クラスが統合クラスであった場合、その統合しているクラス数に応じて当該クラスを統合対象外として処理するようにすればよい。
【0037】
また、上記のフローで2クラスを統合することによって、統合クラスが最大で閾値の2倍程度になってしまう場合がある。この場合、十分な学習量が他のクラスにもある場合は、そのまま学習しても構わない。一方で、閾値程度までクラス全体のサンプル数をそろえるようにしてから学習するようにしても構わない。この場合、各クラスから閾値程度の数のサンプリングを行えばよい。ただし、統合クラス全体からランダムにサンプリングしてしまうと、少ないクラスの画像が選択されない可能性もあるため、統合後の比率に応じた削減数を決めるなどしてもよい。
【0038】
以上、本実施形態によれば、学習画像数が不足しているクラスを隣接クラスに統合することで、学習を破綻させることなく、ユーザの作業を支援可能なクラス判定器を提供することができる。
【0039】
<実施形態2>
実施形態1では、あるクラスのデータ量が少ない場合に、順序ありクラスの隣接クラスに統合する例について述べた。この場合に、ユーザが統合してよいかをさらに確認させるようにしてもよい。ただし、ユーザは統合する事実のみを文字などで提示されても、本来の意図と違うことから容易に許諾の判断ができないことも考えらえる。
【0040】
本実施形態では、統合したクラスの画像を含むように選択した画像集合を提示することで、ユーザからの同意を得るものとする。
【0041】
本実施形態のクラス判定装置100のハードウェア構成は実施形態1と同様である。また、本実施形態のクラス判定装置100の機能構成を図5に示す。なお、図5におい、図2に示した機能構成と同様のブロックは、図2と同一の符号を付し、その説明は省略する。
【0042】
すなわち、図5において、図2に示した機能構成と比較し、確認情報生成部501と統合指示取得部502とを更に有する点が異なる。確認情報生成部501は、クラス統合部204で統合することにした各クラスの画像を選択し、ユーザに確認させるための確認情報を生成する。そして、クラス判定装置100は確認情報をディスプレイに表示させる表示制御を行う。なお、確認情報の表示は、ユーザに対し、統合の可否を判断するための情報の表示であればよく多様な形態が考えられる。また、統合後のクラスに含まれる学習用画像を表示させ、違和感が生じるか否かを等のユーザからのフィードバックを得る構成としてもよい。
【0043】
例えば、実施形態1のように統合するクラスがS,Aであった場合に、Sクラスの画像をAクラスの画像集合に混ぜた表示を行い、ユーザに統合クラスの画像集合として提示する。例えば、図6のような表示であればよい。図6(a)は、統合したクラスの画像を混在させて提示する表示の一例である。本実施形態のようにSクラスとAクラスを統合する例で説明すると、例えば、602がSクラスの画像であり、それ以外がAクラスの画像であるような提示をする。
【0044】
なお、各クラスの画像の提示数や配置などはこれに限るものではなく、統合したクラスに属する画像を含んでいれば、配置や数はランダムで決めてもよいし、あらかじめテンプレートのようなものを用意しておいても構わない。ユーザが両クラスの画像を俯瞰的に見たときに容易に区別がつくものか否かを確認できる表示であればよい。
【0045】
なお、本実施形態では、ランダムに配置位置や数を決めるようにする。これにより、配置などで統合したクラスの画像であることを区別できないようにすることができる。このように、統合したクラスらの学習用画像をユーザに俯瞰的に見せることで、容易に区別がつくようなクラスのユーザにとっては望ましくない統合を事前に抑止することが可能となる。
【0046】
図6(a)に示すような表示は、ユーザのクラス統合に対する納得感を上げるために用意したものであるため、納得感が上がるように、さらに確認のためのインタフェースを提供しても構わない。例えば、図6(b)の603のように、どれがSクラス画像だったかを強調表示させるボタンを用意し、Sクラスが本当に含まれていることを示せるようにしてもよい。図6(b)では、602がSクラスであったため、当該画像を強調表示する例を示している。あるいは、たまたまSクラスとAクラスの区別がつきにくい画像が選ばれたのではないかというユーザの疑問に対して、納得がいくまでSクラス画像を再選択、再配置して表示を更新するような機能を提供しても構わない。
【0047】
統合指示取得部502は、確認情報生成部501が表示させた確認情報を表示させた後に、クラス統合を実行するか否かのユーザからの指示を取得する。ユーザから統合してもよい旨の指示を統合指示取得部502が受付た場合に、クラス統合部204でクラスを統合して、実施形態1に示したような学習を行うようにしてもよい。
【0048】
このようにすることで、ユーザが文字で統合の事実だけを示されるよりも、クラスを統合することに対して納得感を持って学習を進められるようになる実施形態特有の効果が期待できる。
【0049】
<実施形態3>
上述の実施形態では、クラスの統合によって特定のクラスのサンプル数が極端に少ないことが避けることができる。しかしながら、学習によって得られたモデルを使って推論した場合に、出力されるクラスは統合クラスとなっており、もともとユーザが意図していた粒度とは異なる粒度でのクラス分類結果が出力されてしまう。前述したように、クラス統合部204で統合したクラスと元のクラスを紐づけるため、出力時に当該情報から、統合クラスに統合されたいずれかのクラスに分類されるものであるという出力の仕方は可能である。しかし、そのようにしても、入力画像のクラスは複数のクラスを持つことになり、正しいクラスを含んでいても、意図した粒度とは異なる。そのような場合に、出力結果が統合クラスであった場合に、ユーザにいずれのクラスであるかを決定できるような表示を提供する形態を説明する。
【0050】
本実施形態のクラス判定装置100のハードウェア構成は実施形態1と同様である。また、本実施形態のクラス判定装置100の機能構成を図7に示す。なお、上述の実施形態において説明した機能構成と同様のブロックは、同一の符号を付し、その説明は省略する。
【0051】
701は、クラスの推定対象である部材画像(705)を取得する推論データ取得部である。702は、学習部205で生成した分類モデルをロードして、入力画像のクラスを推論する推論部である。上記実施形態で記載した通り、学習部205で生成したクラス分類モデルは外部記憶装置等に保存する(703)。ここで生成されたモデルは、前述した通り、統合後のクラスで入力画像を分類するモデルである。すなわち、SとAをS+Aクラスとして統合して学習した場合は、当該モデルによる推論部702の推論結果は、入力画像がS+A、B、C、Dのいずれのクラスが尤もらしいかを出力する。704は、推論部702で推論したクラスをユーザに提示する出力部である。
【0052】
本実施形態におけるクラス分類の判定処理の結果の出力例を、図8を用いて説明する。図8は、本実施形態における、入力された部材画像が統合クラス「S+Aクラス」に分類された結果を表示した例を示した図である。図8において、801は入力された部材の画像であり、802,803は、統合クラスの統合元のクラスを指示するためのボタン表示である。本実施形態ではS、Aの二つのクラスを統合しただけであったが、二つ以上のクラスが統合されても構わないため、その場合は、クラス統合に利用したクラスのボタンを、クラス順序に従って提示すればよい。
【0053】
これにより、推論結果が、S+Aという統合クラスあったという状態の部材を、ユーザに確認させる。あわせて、ユーザには、当該ボルト画像をユーザの判断で統合クラスのいずれのクラスに属するかを指示できるようにする。その結果、統合クラスの利用による分類精度を維持しつつ、ユーザが本来欲しい粒度でクラス分類結果を残すことができるようになる実施形態特有の効果が期待できる。
【0054】
また、統合クラスは隣接するクラスを統合しているため、判定対象の画像だけを見て統合クラスのいずれのクラスの画像かを目視で判定するのは難しい場合も多い。特に判定基準が曖昧なものは人による揺れも大きい。そのような場合に、図9に示すように、統合クラスの確認時に、統合した各クラスに属する画像サンプルを合わせて提示するようにしてもよい。本実施形態では統合クラスはS+Aであるため、Sクラスのサンプル(901)およびAクラスのサンプル(902)を合わせて表示している。なお、2以上のクラスを統合した場合は、統合した全クラスのサンプルを提示すればよい。また、表示するサンプルの数や配置、サンプルの見せ方は限定するものではない。統合クラスのいずれに属するかの判定を支援する表示であればよい。
【0055】
<実施形態4>
本実施形態では、統合したクラスのうち、尤もらしいクラスを初期値として示すようにしてもよい。この場合、推論部702は各クラスの尤度も出力するようにする。本実施形態では、上述した通りcross-entropy lossを利用した多クラス判別器を学習するとしたが、この場合も出力は各クラスの尤度に相当する情報を出力するため、当該情報を利用すればよい。
【0056】
上述した実施形態ではS~Dの損傷度の例を述べたが、ここでは説明の便宜上、Sクラスよりもさらに損傷度の激しいSSクラスがあるとして説明する。このとき、統合クラスS+Aに隣接するSS,Bのクラスの出力尤度が図10(b)のような分布であったとすると、SSクラスに比べてBクラスの尤度が高い。本実施形態では、クラスに順序があり、統合前のクラスの順序情報はクラス順序取得部203で取得できるとしているので、BクラスにちかいAクラスを初期値として選択した状態でユーザに提示する。図10(a)の1001はAクラスが選択された状態を示す。
【0057】
ユーザが多数の画像に対するクラス判定を実施している場合は、初期値が提示されて確認だけで済むのであれば、処理の効率があがる。また、統合クラスの難しい判定に根拠となる情報を提示できることから、判断に迷う時間についても短縮が見込める。
【0058】
<実施形態5>
本実施形態では、統合してほしくないクラスの境界(当該クラスの境界が区別されることが重要であるため、以下「重要クラス境界」と呼ぶ)があらかじめ決まっている場合に、当該境界での統合が起きないように設定する。
【0059】
例えば、上記実施形態で述べたような橋梁やトンネル等の部材の損傷度判定であれば、補修をすべきか否かの判断の境界を重要クラス境界とする場合が考えられる。他にも、コストの高い現地作業を絞る目的であれば、再調査や目視確認が必要か否かの判断の境界であってもよい。また、判定対象は部材に限らず、建造物の壁面や柱、あるいは照明設備等の付帯物の損傷度判定であってもよい。あるいは、他のドメインの画像であっても構わない。例えば、医療現場における各種検査画像であれば、病状の進行度合いを示すようなクラスを判定するようにし、再検査の有無の判断等の境界を重要クラス境界としてもよい。
【0060】
重要境界を設定する場合は、図11に示す構成のように、重要クラス境界設定部1101を設けてユーザから重要クラス境界を取得し、重要クラス境界ではクラスを統合しないようにクラス統合部204が処理を行う。
【0061】
重要クラス境界が設定された場合の処理の流れを図12のフローチャートを用いて説明する。なお、図3に示したフローチャートと同様の処理は同一の符号を付しており、その説明は省略する。
【0062】
図12において、まず、S1201で、クラス判定装置100は、ユーザが重要クラス境界設定部1101で設定した重要クラス境界の情報を取得する。以降のS301~S305の処理は、図3に記載の処理と同等である。
【0063】
ステップS1202では、クラス統合部204は、ステップS305で統合先の隣接クラスを特定した後、当該隣接クラスとの境界が重要クラス境界であるか否かを判定する。
【0064】
重要クラス境界ではなかった場合は、ステップS306でクラスの統合を実施する。重要クラス境界であった場合は、ステップS1203へ移行する。
【0065】
ステップS1203では、クラス判定装置100は、S1202で重要境界と判定したものと逆側の隣接クラスがあるか否かを確認する。存在する場合は、S1205に移行し、当該クラスを統合先の隣接クラスとして再設定し、ステップS1202へ移行する。一方で、重要境界ではない隣接クラスが存在しない場合は、ステップS1204に移行する。
【0066】
ステップS1204では、クラス判定装置100は、ユーザに統合が困難である旨の情報を提示する。例えば、統合ができないことから、「クラス数の偏りがあるため、学習がうまくいかない可能性がある」といった旨を示す。また、クラス判定装置100は、さらにユーザに対し「このまま学習を進めるか?」といった問い合わせを行い、問い合わせに対する回答に応じて学習を中止してもよい。
【0067】
以上、本実施形態によれば、補修をすべきか否かの判断の境界である重要クラス境界を跨ぐクラス間の統合を制限するため、上述の効果に加え、補修をすべきか否かの判断を容易に行うことができる判別器の学習やクラス判定を行うことができる。
【0068】
<実施形態6>
上述した実施形態では、図4に示した表のように、ユーザが各学習データに対してクラスを一意に付与する例を述べた。しかし、実際には部材の損傷度等のように、順序関係があるラベルを付与するケースでは、そのラベル間の境界が曖昧であることも多く、ユーザによって判断が分かれるような例も多い。そのようなユーザに判断がつかないような曖昧な判断結果の場合に、部材に対して、複数のクラスを付与できるようにし、当該複数クラスが付与されている場合に、前述したようなクラス統合処理を実施してもよい。
【0069】
本実施形態のクラス判定装置100のハードウェア構成は実施形態1と同様である。また、本実施形態のクラス判定装置100の機能構成を図13に示す。なお、図13におい、図2に示した機能構成と同様のブロックは、図2と同一の符号を付し、その説明は省略する。
【0070】
図13において、1301は、学習用データの全損傷度の分布情報を取得する複数クラスデータ取得部である。複数クラスデータ取得部1301は、例えば図14に示すような各損傷度の分布情報を取得する。図14は、隣接する複数の損傷度クラスが付与したデータを含む場合の、データ数の分布を示した表の一例である。この例では、S,A,B,C,Dのように一つのクラスが付与されたデータの数と、それぞれのクラスの間に、ユーザがどちらか判断がつきづらかったという意図での複数クラスが付与されたデータ(1402~1405)の数が示されている。
【0071】
1302は、複数クラスデータ取得部1301で取得した複数クラスを含む学習画像のクラス情報から、どのクラスを統合するかといった統合判定をおこなう統合クラス判定部である。ここでは、ユーザにとって判断がついた画像を学習画像として利用する。すなわち、図14のS,A,B,C,Dのクラスの画像を学習に利用する。このとき、Sクラスは不足クラスであるため、当該クラスを統合対象のクラスとする。
【0072】
1303は、不足クラスと隣接クラスとを統合するクラス統合部である。実施形態1の場合と異なり、ここでは、不足クラスへの隣接クラスとの統合を、1402~1405のような、境界にあたるクラスの画像から行う。例えば、Sクラスが統合対象であった場合は、Sクラスに、隣接する1402のS,Aクラスの画像を統合する。これにより、Sクラスはデータ数を5+35=40として学習を行うことができる。
【0073】
このようにすることで、不足クラスが存在した場合、当該不足クラスと判定することもできるような曖昧なデータを利用することで、精度低下を抑えた学習が可能になる。なお、複数クラスを付与する方法については特に限定するものではないが、例えば、ユーザに図15のような表示を介して入力させればよい。
【0074】
図15は、SかAの判断がつかなかった場合に複数クラス指定可能な入力画面の一例である。図15(a)は、選択ボタンを隣接する2つを最大に選択可能にした入力例であり、図15(b)は、各クラスの間にどちらか判断がつかなかったときに指定する別のボタンを選択できるようにした例である。いずれも、図15のように入力された場合に、S,Aと複数のクラスを付与する。
【0075】
ただし、複数クラスを付与した場合に、学習データの使い方を上述のように限定するものではない。例えば、ユーザが判断つきづらいデータに対して複数クラスを付与した場合に、当該クラスのデータをまとめて隣接するいずれかのクラスに入れてしまっても構わない。例えば、S,Aの両ラベルがついたデータはSに、A,BがついたデータはAに、といったルールでデータを統合して構わない。
【0076】
以上説明したように、本実施形態によれば、複数のクラスを付与できるようにし、当該複数クラスが付与されている場合に、当該クラスを統合することができる。
【0077】
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。また、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムによっても実現可能である。
【符号の説明】
【0078】
101 CPU
102 ROM
103 RAM
104 外部記憶装置
105 入力デバイスインタフェース
106 出力デバイスインタフェース
107 通信インタフェース
108 システムバス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17