(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179020
(43)【公開日】2024-12-26
(54)【発明の名称】計算機システム及び推論の不確実性判定方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241219BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023097501
(22)【出願日】2023-06-14
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】王 宇
(72)【発明者】
【氏名】山本 浩之
(72)【発明者】
【氏名】倉田 明佳
(72)【発明者】
【氏名】神田 喬之
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA01
5L096DA01
5L096DA02
5L096FA02
5L096GA30
5L096GA51
5L096HA11
5L096KA04
5L096MA07
(57)【要約】
【課題】セマンティックセグメンテーションの推論において信頼できない領域を、要因ごとに分類する。
【解決手段】計算機システムは、画像に含まれる画素を複数のクラスに分類するための推論に用いるモデルの定義情報を保持する。モデルは、画素の、複数のクラスの各々に該当する確率を算出するモデルである。計算機システムは、画像の入力を受け付け、複数回の推論の結果に基づいて、画像の各画素について、複数のクラスの確率分布を算出し、画像の各画素について、複数のクラスの確率分布を統計処理することによって、画素に対する推論の不確実性を表す不確実性指標を複数算出し、画像の各画素について、複数の不確実性指標に基づいて、不確実性の区分である不確実性レベルを付与し、画像の各画素の不確実性レベルを提示するための不確実性マップを生成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
計算機システムであって、
プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を備え、
画像に含まれる画素を複数のクラスに分類するための推論に用いるモデルの定義情報を保持し、
前記モデルは、前記画素の、前記複数のクラスの各々に該当する確率を算出するモデルであって、
前記プロセッサは、
画像の入力を受け付け、
前記定義情報によって定義される前記モデルを変形したモデルを用いて前記画像に対する推論を複数回実行し、
複数回の前記推論の結果に基づいて、前記画像の各画素について、前記複数のクラスの各々について確率分布を算出し、
前記画像の各画素について、前記複数のクラスの各々の前記確率分布を統計処理することによって、前記画素に対する前記推論の不確実性を表す不確実性指標を複数算出し、
前記画像の各画素について、前記複数の不確実性指標に基づいて、不確実性の区分である不確実性レベルを付与し、
前記画像の各画素の前記不確実性レベルを提示するための不確実性マップを生成し、出力することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記プロセッサは、
前記確率分布の最頻値、中央値、又は平均値が最大の前記クラスの分散を第1不確実性指標として算出し、
前記確率分布の最頻値、中央値、又は平均値の大きさが3番目より小さい前記クラスの前記確率分布の最頻値、中央値、又は平均値の合計を第2不確実性指標として算出し、
前記第1不確実性指標及び前記第2不確実性指標を用いて、前記推論の結果が信頼できることを表す第1レベル、前記推論の結果が信頼できないことを表す第2レベル、前記画素が異なる前記クラスの領域の境界に位置することを表す第3レベルの三つの前記不確実性レベルを付与することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記プロセッサは、
前記画素の前記第1不確実性指標が第1閾値より小さいか否かを判定し、
前記画素の前記第1不確実性指標が第1閾値より小さい場合、前記第1レベルを付与し、
前記画素の前記第1不確実性指標が第1閾値以上である場合、前記画素の前記第2不確実性指標が第2閾値より大きいか否かを判定し、
前記画素の前記第2不確実性指標が第2閾値より大きい場合、前記第2レベルを付与し、
前記画素の前記第2不確実性指標が第2閾値以下の場合、前記確率分布の最頻値、中央値、又は平均値の大きさが1番目及び2番目の前記クラスの前記確率分布の重なり具合を評価する評価指標を算出し、前記評価指標が前記第1不確実性指標より小さいか否かを判定し、
前記評価指標が前記第1不確実性指標より小さい場合、前記第3レベルを付与することを特徴とする計算機システム。
【請求項4】
請求項3に記載の計算機システムであって、
前記プロセッサは、
前記不確実性レベルが付与されていない前記画素を特定し、
特定された前記画素であって、同じ前記クラスに属する前記画素が形成する判定領域の大きさが第3閾値より小さいか否かを判定し、
前記判定領域が前記第3閾値より小さい場合、前記判定領域に含まれる前記画素に、前記判定領域が小さいことを表す第4レベルを付与することを特徴とする計算機システム。
【請求項5】
請求項3に記載の計算機システムであって、
前記プロセッサは、
ユーザから、確認する前記不確実性レベルの指定を受け付け、
指定された前記不確実性レベルが付与された前記画素を強調表示する前記不確実性マップを生成することを特徴とする計算機システム。
【請求項6】
請求項5に記載の計算機システムであって、
前記プロセッサは、
前記画像を複数の部分画像に分割し、
前記部分画像について、指定された前記不確実性レベルが付与された前記画素の前記部分画像における比率を算出し、
前記比率が第4閾値より大きい前記部分画像を特定し、
特定された前記部分画像に含まれ、かつ、指定された前記不確実性レベルが付与された前記画素を強調表示する前記不確実性マップを生成することを特徴とする計算機システム。
【請求項7】
計算機システムが実行する推論の不確実性判定方法であって、
前記計算機システムは、
プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を備え、
画像に含まれる画素を複数のクラスに分類するための推論に用いるモデルの定義情報を保持し、
前記モデルは、前記画素の、前記複数のクラスの各々に該当する確率を算出するモデルであって、
前記推論の不確実性判定方法は、
前記計算機システムが、画像の入力を受け付ける第1のステップと、
前記計算機システムが、前記定義情報によって定義される前記モデルを変形したモデルを用いて前記画像に対する推論を複数回実行する第2のステップと、
前記計算機システムが、複数回の前記推論の結果に基づいて、前記画像の各画素について、前記複数のクラス各々について確率分布を算出する第3のステップと、
前記計算機システムが、前記画像の各画素について、前記複数のクラスの各々の前記確率分布を統計処理することによって、前記画素に対する前記推論の不確実性を表す不確実性指標を複数算出する第4のステップと、
前記計算機システムが、前記画像の各画素について、前記複数の不確実性指標に基づいて、不確実性の区分である不確実性レベルを付与する第5のステップと、
前記計算機システムが、前記画像の各画素の前記不確実性レベルを提示するための不確実性マップを生成し、出力する第6のステップと、
を含むことを特徴とする推論の不確実性判定方法。
【請求項8】
請求項7に記載の推論の不確実性判定方法であって、
前記第4のステップは、
前記計算機システムが、前記確率分布の最頻値、中央値、又は平均値が最大の前記クラスの分散を第1不確実性指標として算出するステップと、
前記計算機システムが、前記確率分布の最頻値、中央値、又は平均値の大きさが3番目より小さい前記クラスの前記確率分布の最頻値、中央値、又は平均値の合計を第2不確実性指標として算出するステップと、を含み、
前記第5のステップは、前記計算機システムが、前記第1不確実性指標及び前記第2不確実性指標を用いて、前記推論の結果が信頼できることを表す第1レベル、前記推論の結果が信頼できないことを表す第2レベル、前記画素が異なる前記クラスの領域の境界に位置することを表す第3レベルの三つの前記不確実性レベルを付与するステップを含むことを特徴とする推論の不確実性判定方法。
【請求項9】
請求項8に記載の推論の不確実性判定方法であって、
前記第5のステップは、
前記計算機システムが、前記画素の前記第1不確実性指標が第1閾値より小さいか否かを判定するステップと、
前記画素の前記第1不確実性指標が第1閾値より小さい場合、前記計算機システムが、前記第1レベルを付与するステップと、
前記画素の前記第1不確実性指標が第1閾値以上である場合、前記計算機システムが、前記画素の前記第2不確実性指標が第2閾値より大きいか否かを判定するステップと、
前記画素の前記第2不確実性指標が第2閾値より大きい場合、前記計算機システムが、前記第2レベルを付与するステップと、
前記画素の前記第2不確実性指標が第2閾値以下の場合、前記計算機システムが、前記確率分布の最頻値、中央値、又は平均値の大きさが1番目及び2番目の前記クラスの前記確率分布の重なり具合を評価する評価指標を算出し、前記評価指標が前記第1不確実性指標より小さいか否かを判定するステップと、
前記評価指標が前記第1不確実性指標より小さい場合、前記計算機システムが、前記第3レベルを付与するステップと、を含むことを特徴とする推論の不確実性判定方法。
【請求項10】
請求項9に記載の推論の不確実性判定方法であって、
前記第5のステップは、
前記計算機システムが、前記不確実性レベルが付与されていない前記画素を特定するステップと、
前記計算機システムが、特定された前記画素であって、同じ前記クラスに属する前記画素が形成する判定領域の大きさが第3閾値より小さいか否かを判定するステップと、
前記計算機システムが、前記判定領域が前記第3閾値より小さい場合、前記判定領域に含まれる前記画素に、前記判定領域が小さいことを表す第4レベルを付与するステップと、を含むことを特徴とする推論の不確実性判定方法。
【請求項11】
請求項9に記載の推論の不確実性判定方法であって、
前記第6のステップは
前記計算機システムが、ユーザから、確認する前記不確実性レベルの指定を受け付けるステップと、
前記計算機システムが、指定された前記不確実性レベルが付与された前記画素を強調表示する前記不確実性マップを生成するステップと、を含むことを特徴とする推論の不確実性判定方法。
【請求項12】
請求項11に記載の推論の不確実性判定方法であって、
前記第6のステップは、
前記計算機システムが、前記画像を複数の部分画像に分割するステップと、
前記計算機システムが、前記部分画像について、指定された前記不確実性レベルが付与された前記画素の前記部分画像における比率を算出するステップと、
前記計算機システムが、前記比率が第4閾値より大きい前記部分画像を特定するステップと、
前記計算機システムが、特定された前記部分画像に含まれ、かつ、指定された前記不確実性レベルが付与された前記画素を強調表示する前記不確実性マップを生成するステップと、を含むことを特徴とする推論の不確実性判定方法。
【請求項13】
計算機システムであって、
プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を備え、
推論に用いるモデルの定義情報を管理し、
前記プロセッサは、
推論対象のデータの入力を受け付け、
前記定義情報によって定義される前記モデルを変形したモデルを生成し、当該モデルを用いて前記データを推論する処理を複数回実行し、
複数回の前記推論の結果に基づいて、前記推論に関する確率分布を算出し、
前記推論に関する前記確率分布を統計処理することによって、前記推論の不確実性を表す不確実性指標を複数算出し、
前記複数の不確実性指標に基づいて、不確実性の区分である不確実性レベルを決定することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、セマンティックセグメンテーションにおける推論結果の不確実性を定量的に評価し、不確実性のレベル付けを行う技術に関する。
【背景技術】
【0002】
様々な分野において画像を複数の領域に分類する処理に人工知能(AI)の利用が進んでいる。例えば、材料科学の分野では、AIを用いて、組織画像から特徴量を抽出し、物性との関係性をモデル化することで、新材料開発の効率化が期待されている。組織特徴を解析するAIの機械学習モデルとしてセマンティックセグメンテーション(SS)が広く用いられている。
【0003】
機械学習モデルの出力である推論結果は、推論の精度とともに、不確実性を評価することが重要である。不確実性を定量化する手法として特許文献1に記載の手法が知られている。特許文献1には、モンテカルロドロップアウトを反復適用し、不確実性を評価することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の不確実性の指標は連続値である。そのため、当該値を用いることによって、信頼できる領域及び信頼できない領域を特定できる。
【0006】
セマンティックセグメンテーションの推論の不確実性の要因は様々考えられる。しかし、特許文献1に記載の指標を用いても、信頼できない領域がどのような要因に起因するかを判別することは難しい。
【0007】
本開示は、セマンティックセグメンテーションの推論において信頼できない領域を、要因ごとに分類する技術を提供する。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、計算機システムであって、プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を備え、画像に含まれる画素を複数のクラスに分類するための推論に用いるモデルの定義情報を保持し、前記モデルは、前記画素の、前記複数のクラスの各々に該当する確率を算出するモデルであって、前記プロセッサは、画像の入力を受け付け、前記定義情報によって定義される前記モデルを変形したモデルを生成し、当該モデルを用いて前記画像を推論する処理を複数回実行し、複数回の前記推論の結果に基づいて、前記画像の各画素について、前記複数のクラスの各々について確率分布を算出し、前記画像の各画素について、前記複数のクラスの各々の前記確率分布を統計処理することによって、前記画素に対する前記推論の不確実性を表す不確実性指標を複数算出し、前記画像の各画素について、前記複数の不確実性指標に基づいて、不確実性の区分である不確実性レベルを付与し、前記画像の各画素の前記不確実性レベルを提示するための不確実性マップを生成し、出力する。
【発明の効果】
【0009】
本開示の一つの態様によれば、セマンティックセグメンテーションの推論において信頼できない領域を、要因ごとに分類できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1の計算機システムの機能構成の一例を示す図である。
【
図2】実施例1の計算機システムを構成する計算機のハードウェア構成の一例を示す図である。
【
図3】実施例1の計算機システムの機能の連携を示す図である。
【
図4】実施例1の教師データDBのデータ構造の一例を示す図である。
【
図5】実施例1のモデルDBのデータ構造の一例を示す図である。
【
図6A】実施例1の推論結果DBのデータ構造の一例を示す図である。
【
図6B】実施例1の推論結果DBのデータ構造の一例を示す図である。
【
図6C】実施例1の推論結果DBのデータ構造の一例を示す図である。
【
図6D】実施例1の推論結果DBのデータ構造の一例を示す図である。
【
図7A】セマンティックセグメンテーションの推論の特性を説明する図である。
【
図7B】セマンティックセグメンテーションの推論の特性を説明する図である。
【
図7C】セマンティックセグメンテーションの推論の特性を説明する図である。
【
図7D】セマンティックセグメンテーションの推論の特性を説明する図である。
【
図8】実施例1の計算機システムが実行する推論処理の一例を説明するフローチャートである。
【
図9】実施例1の計算機システムが算出するクラスの確率分布の一例を示す図である。
【
図10A】実施例1の計算機システムが実行する不確実性レベル判定処理の一例を説明するフローチャートである。
【
図10B】実施例1の計算機システムが実行する不確実性レベル判定処理の一例を説明するフローチャートである。
【
図11A】実施例1における不確実性指標及び正解率の相関の一例を示す図である。
【
図11B】実施例1における不確実性指標及び正解率の相関の一例を示す図である。
【
図12】実施例1における評価指標の算出方法の一例を示す図である。
【
図13】実施例1の計算機システムが実行する不確実性マップ生成処理の一例を説明するフローチャートである。
【
図14】実施例1の計算機システムが提示するGUIの一例を示す図である。
【
図15】実施例2の不確実性マップの一例を示す図である。
【
図16】実施例3の計算機システムの機能構成の一例を示す図である。
【
図17】実施例3の計算機システムの機能の連携を示す図である。
【
図18】実施例3の計算機システムが実行する推論処理の一例を説明するフローチャートである。
【
図19】実施例3の計算機システムが実行する推論結果出力処理の一例を説明するフローチャートである。
【
図20】実施例3の計算機システムが提示するGUIの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【実施例0014】
実施例1では、学習フェーズにおける不確実性の評価について説明する。機械学習モデルを生成するためには、予め学習データを用意する必要がある。学習データに含める正解データは、人手で行われる場合が多い。推論結果に不確実性が高い部分が含まれると、正解データを修正する必要がある。
【0015】
図1は、実施例1の計算機システムの機能構成の一例を示す図である。
図2は、実施例1の計算機システムを構成する計算機のハードウェア構成の一例を示す図である。
【0016】
計算機システム100は、
図2に示すような計算機200から構成される。計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を備える。なお、計算機200は、マウス及びキーボード等の入力装置、並びに、ディスプレイ等の出力装置を備えてもよい。
【0017】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。
【0018】
主記憶装置202は、メモリ等であり、プロセッサ201が実行するプログラム及びプログラムが使用するデータを格納する。主記憶装置202はワークエリアとしても用いられる。副記憶装置203は、HDD(Hard Disk Drive)等であり、プログラム及びデータを永続的に格納する。ネットワークインタフェース204は、外部装置と通信する。
【0019】
計算機システム100は、学習部101、推論部102、正解率算出部103、不確実性指標算出部104、不確実性レベル判定部105、及び入出力部106を有する。また、計算機システム100は、教師データDB110、モデルDB111、及び推論結果DB112を保持する。
【0020】
教師データDB110は、機械学習モデルに入力する入力データと、推論の正解データとから構成される教師データを格納するデータベースである。本実施例では、入力データは画像であり、正解データは画素が属するクラスの配列である。モデルDB111は、機械学習モデルを定義する情報を格納するデータベースである。推論結果DB112は、機械学習モデルを用いた推論の結果を格納するデータベースである。
【0021】
なお、計算機システム100が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0022】
図3は、実施例1の計算機システム100の機能の連携を示す図である。
【0023】
学習部101は、教師データDB110に格納される教師データを学習データとして取得し、セマンティックセグメンテーションを実現するための機械学習モデルの学習処理を実行する。
【0024】
機械学習モデルは、画素の各クラスに該当する確率を算出するモデルであり、例えば、CNN(Convolutional Neural Network)、SegNet、U-Net、及びPSPNet等である。また、機械学習の手法は、例えば、深層学習である。なお、本発明は、機械学習モデルの種別に限定されない。また、本発明は、機械学習モデルの学習方法に限定されない。学習部101は、学習結果をモデルDB111に格納する。
【0025】
推論部102は、教師データDB110に格納される教師データを検証データとして取得し、モデルDB111に格納される情報によって定義される機械学習モデルを用いて推論を行う。本実施例では、画像の各画素について各クラスに該当する確率の配列が推論結果として出力される。推論部102は、推論結果を推論結果DB112に格納する。
【0026】
本実施例では、推論部102は、モンテカルロドロップアウト手法を用いて、機械学習モデルを構成する複数のノードの一部をドロップアウトした機械学習モデル(以下、MCDモデルと記載する。)を生成し、MCDモデルを用いて検証データの推論を行う。一つの検証データに対して、異なるMCDモデルを用いて推論が複数回実行される。
【0027】
正解率算出部103は、推論結果及び検証データに含まれる正解データを用いて、入力データに対する正解率及びクラス毎の正解率等を算出する。正解率算出部103は、処理結果を推論結果DB112に格納する。
【0028】
不確実性指標算出部104は、推論結果を用いて、複数の不確実性指標を算出する。不確実性指標算出部104は、処理結果を推論結果DB112に格納する。算出される不確実性指標については後述する。
【0029】
不確実性レベル判定部105は、複数の不確実性指標を用いて、一つの検証データの推論結果に対して不確実性レベルを付与する。不確実性レベル判定部105は、処理結果を推論結果DB112に格納する。
【0030】
入出力部106は、計算機システム100に対する入力を受け付け、また、計算機システム100の各種データを出力する。
【0031】
図4は、実施例1の教師データDB110のデータ構造の一例を示す図である。
【0032】
教師データDB110は教師データを管理するためのテーブル400を格納する。テーブル400は、データID401、入力データ402、及び正解データ403を含むエントリを格納する。一つのエントリが一つの教師データに対応する。
【0033】
データID401は、教師データのIDを格納するフィールドである。入力データ402は、機械学習モデルに入力する入力データを格納するフィールドである。本実施例では、画像を構成する画素の画素値の配列が入力データとして格納される。正解データ403は、推論の正解を表す正解データを格納するフィールドである。本実施例では、画素が属するクラスを表す値の配列が正解データとして格納される。
図4では、第1クラス及び第2クラスのどちらに属するかを表す2次元の配列を表している。
【0034】
なお、教師データDB110のデータ形式はテーブル形式に限定されない。
【0035】
図5は、実施例1のモデルDB111のデータ構造の一例を示す図である。
【0036】
モデルDB111は機械学習モデルを定義する情報を格納するテーブル500を格納する。一つの機械学習モデルに対して一つのテーブル500が存在する。テーブル500は、レイヤID501、レイヤ種別502、及びパラメータ503を含むエントリを格納する。一つのレイヤに対して一つのエントリが存在する。
【0037】
レイヤID501は、機械学習モデルのレイヤのIDを格納するフィールドである。レイヤ種別502は、レイヤの種別を格納するフィールドである。レイヤの種別としては、入力層、畳み込み層、プーリング層、全結合層、及び出力層等がある。パラメータ503は、レイヤID501に対応するレイヤのパラメータを格納するフィールドである。レイヤのパラメータは、例えば、重みである。
【0038】
なお、モデルDB111のデータ形式はテーブル形式に限定されない。
【0039】
【0040】
推論結果DB112は、テーブル600、テーブル610、テーブル620、及びテーブル630を格納する。
【0041】
テーブル600は、推論結果を管理するためのテーブルである。テーブル600は、推論結果ID601、データID602、及び推論結果603を含むエントリを格納する。一つの推論結果に対して一つのエントリが存在する。
【0042】
推論結果ID601は、推論結果のIDを格納するフィールドである。データID602は、推論を行った検証データ(教師データ)のIDを格納するフィールドである。推論結果603は、推論結果を格納するフィールドである。本実施例では、画素の各クラスの属する確率の配列が推論結果として格納される。
図6Aでは、第1クラス及び第2クラスに各々に属する確率の配列が格納される。画素の各クラスの確率の合計は1となっている。
【0043】
テーブル610は、推論結果の正解率を管理するためのテーブルである。テーブル610は、推論結果ID611及び正解率612を含むエントリを格納する。一つの推論結果に対して一つのエントリが存在する。
【0044】
推論結果ID611は推論結果ID601と同一のフィールドである。正解率612は、正解率を格納するフィールドである。本実施例では、各画素の正解率、入力データ全体の正確率、各クラスの正解率等が格納される。入力データ全体の正解率は、例えば、各画素の正解率の平均値として算出できる。クラスの正解率は、例えば、正解データにおいて同じクラスが付与された画素の正解率の平均として算出できる。
【0045】
テーブル620は、検証データに対する推論の不確実性を評価するための不確実性指標を管理するためのテーブルである。テーブル620は、データID621、第1不確実性指標622、及び第2不確実性指標623を含むエントリを格納する。一つの検証データに対して一つのエントリが存在する。
【0046】
データID621はデータID602と同一のフィールドである。第1不確実性指標622及び第2不確実性指標623は不確実性指標を格納するフィールドである。
【0047】
テーブル630は、検証データに付与された不確実性レベルを管理するためのテーブルである。テーブル630は、データID631及び不確実性レベル632を含むエントリを格納する。一つの検証データに対して一つのエントリが存在する。
【0048】
データID631はデータID602と同一のフィールドである。不確実性レベル632は、不確実性レベルを格納するフィールドである。本実施例では、画素の不確実性レベルの配列が格納される。
【0049】
なお、テーブル600、テーブル610、テーブル620、及びテーブル630にて管理する情報は、テーブル形式外のデータ形式にて管理されてもよい。
【0050】
ここで、セマンティックセグメンテーションの推論の特性について説明する。
図7A、
図7B、
図7C、及び
図7Dは、セマンティックセグメンテーションの推論の特性を説明する図である。
【0051】
図7A、
図7B、
図7C、及び
図7Dは、ある画素のクラスに属する確率の分布を示す。ここでは、三つのクラスに分類するセマンティックセグメンテーションを例に説明する。
【0052】
図7Aに示すように、あるクラスの確率分布の分散が小さく、かつ、最頻度が1に近く、他のクラスの確率分布の分散が小さく、かつ、最頻度が0に近い場合、推論結果は十分信頼できる。
【0053】
図7Bに示すように、各クラスの確率分布が重なり、また、各クラスの確率分布の最頻度が小さい(例えば、0.5より小さい)場合、推論結果は信頼できない。
【0054】
図7Cに示すように、二つのクラスの確率分布が重なり、当該二つのクラスの確率分布の最頻値が大きく(例えば、0.5より大きい)、かつ、他のクラスの確率分布の最頻値がほぼ0である場合、二つのクラスの境界である可能性が高い。
【0055】
図7Dに示すように、最頻値が0でない確率分布が二つ存在し、当該二つの確率分布の重なりが小さく、かつ、他のクラスの確率分布の最頻値がほぼ0である場合、画像内においてあるクラスの属する領域が小さい可能性がある。
【0056】
本実施例では、確率分布から算出される二つの不確実性指標を用いて、画素の推論結果を上記の4つレベルに分類する。
【0057】
図8は、実施例1の計算機システム100が実行する推論処理の一例を説明するフローチャートである。
図9は、実施例1の計算機システム100が算出するクラスの確率分布の一例を示す図である。
【0058】
推論部102は、モデルDB111から機械学習モデルの定義情報を取得する(ステップS101)。
【0059】
推論部102は、検証データのループ処理を開始する(ステップS102)。具体的には、推論部102は、教師データDB110から検証データを一つ取得する。
【0060】
推論部102は、推論のループ処理を開始する(ステップS103)。具体的には、推論部102は、モンテカルロドロップアウト手法を用いてMCDモデルを生成する。当該ループ処理では、所定回数、推論が実行される。なお、クラスの確率分布をできればよいため、モンテカルロドロップアウト手法以外の手法を用いてモデルを変形してもよい。
【0061】
推論部102は、MCDモデルを用いて検証データの推論を実行する(ステップS104)。推論部102は、推論結果DB112のテーブル600に推論結果を格納する。
【0062】
推論部102は、正解率算出部103に正解率の算出を指示する。当該指示には推論結果のIDが含まれる。
【0063】
正解率算出部103は、推論結果と、検証データに含まれる正解データとを比較し、正解率を算出する(ステップS105)。正解率算出部103は、推論結果DB112のテーブル610に算出結果を格納する。その後、正解率算出部103は、処理の完了を推論部102に通知する。
【0064】
推論部102は、推論の実行回数が所定回数より小さいか否かを判定する(ステップS106)。推論の実行回数が所定回数より場合、推論部102はステップS103に戻る。
【0065】
推論の実行回数が所定回数以上の場合、推論部102は、不確実性指標算出部104に不確実性指標の算出を指示する。当該指示には、検証データのIDが含まれる。
【0066】
不確実性指標算出部104は、画素毎に、各クラスの確率分布を算出する(ステップS107)。具体的には、不確実性指標算出部104は、テーブル600から検証データの推論結果を取得し、各画素について、
図9に示すような各クラスの確率分布を算出する。
【0067】
不確実性指標算出部104は、各画素について、各クラスの確率分布に基づいて、第1不確実性指標を算出する(ステップS108)。具体的には、以下のような処理が実行される。
【0068】
(S108-1)不確実性指標算出部104は画素を選択する。
【0069】
(S108-2)不確実性指標算出部104は、選択した画素について、各クラスの確率分布の最頻値を算出する。
【0070】
(S108-3)不確実性指標算出部104は、最頻値が最も大きいクラスの確率分布の分散を第1不確実性指標として算出する。
【0071】
(S108-4)不確実性指標算出部104は、全ての画素について処理が完了したか否かを判定する。全ての画素について処理が完了していない場合、不確実性指標算出部104はS108-1に戻る。全ての画素について処理が完了した場合、不確実性指標算出部104は、推論結果DB112のテーブル620に算出結果を格納する。
【0072】
不確実性指標算出部104は、各画素について、各クラスの確率分布に基づいて、第2不確実性指標を算出する(ステップS109)。具体的には、以下のような処理が実行される。
【0073】
(S109-1)不確実性指標算出部104は画素を選択する。
【0074】
(S109-2)不確実性指標算出部104は、選択した画素について、各クラスの確率分布の最頻値を算出する。
【0075】
(S109-3)不確実性指標算出部104は、最頻値が大きい順にクラスをランク付けする。
【0076】
(S109-4)不確実性指標算出部104は、順位が3番目以降のクラスの最頻値の合計を第2不確実性指標として算出する。
【0077】
(S109-5)不確実性指標算出部104は、全ての画素について処理が完了したか否かを判定する。全ての画素について処理が完了していない場合、不確実性指標算出部104はS109-1に戻る。全ての画素について処理が完了した場合、不確実性指標算出部104は、推論結果DB112のテーブル620に算出結果を格納する。
【0078】
不確実性指標算出部104は、第2不確実性指標を算出した後、処理の完了を推論部102に通知する。推論部102は、全ての検証データについて処理が完了したか否かを判定する(ステップS110)。
【0079】
全ての検証データについて処理が完了していない場合、推論部102はステップS102に戻る。全ての検証データについて処理が完了した場合、推論部102は推論処理を終了する。
【0080】
図10A及び
図10Bは、実施例1の計算機システム100が実行する不確実性レベル判定処理の一例を説明するフローチャートである。
図11A及び
図11Bは、実施例1における不確実性指標及び正解率の相関の一例を示す図である。
図12は、実施例1における評価指標の算出方法の一例を示す図である。
【0081】
不確実性レベル判定部105は、一つの検証データに対して以下で説明する処理を実行する。
【0082】
不確実性レベル判定部105は、検証データについて、第1不確実性指標及び正解率の相関を分析する(ステップS201)。具体的には、以下のような処理が実行される。
【0083】
(S201-1)不確実性レベル判定部105は、テーブル610から各画素の正解率を取得し、また、テーブル620から各画素の第1不確実性指標を取得する。
【0084】
(S201-2)不確実性レベル判定部105は、正解率及び第1不確実性指標の相関を分析する。例えば、
図11Aに示すような分析結果が得られる。グラフ1101は正解率及び第1不確実性指標の相関を表す。ドットの棒グラフは、第1不確実性指標に対する正解の画素の数を表す。白の棒グラフは、第1不確実性指標に対する不正解の画素の数を表す。
【0085】
不確実性レベル判定部105は、第1不確実性指標及び正解率の相関に基づいて、閾値Th1を算出する(ステップS202)。
【0086】
具体的には、不確実性レベル判定部105は、相関を用いて、正解率がユーザ指定の値となる不確実性指標を閾値Th1として算出する。
図11Aでは、閾値Th1は0.15となる。
【0087】
不確実性レベル判定部105は、検証データについて、第2不確実性指標及び正解率の相関を分析する(ステップS203)。具体的には、以下のような処理が実行される。
【0088】
(S203-1)不確実性レベル判定部105は、テーブル610から各画素の正解率を取得し、また、テーブル620から各画素の第2不確実性指標を取得する。
【0089】
(S203-2)不確実性レベル判定部105は、正解率及び第2不確実性指標の相関を分析する。例えば、
図11Bに示すような分析結果が得られる。グラフ1102は正解率及び第2不確実性指標の相関を表す。ドットの棒グラフは、第2不確実性指標に対する正解の画素の数を表す。白の棒グラフは、第2不確実性指標に対する不正解の画素の数を表す。
【0090】
不確実性レベル判定部105は、第2不確実性指標及び正解率の相関に基づいて、閾値Th2を算出する(ステップS204)。具体的には、以下のような処理が実行される。
【0091】
(S204-1)不確実性レベル判定部105は、第2不確実性指標の変位に対する正解率の変位(正解率の低下勾配)を算出する。
【0092】
(S204-2)不確実性レベル判定部105は、正解率の低下勾配が最大となる範囲の第2不確実性指標の最大値を閾値Th2として算出する。
図11Bでは、第2不確実性指標が0.1及び0.2に範囲の低下勾配が最大であるため、閾値Th2は0.2となる。
【0093】
不確実性レベル判定部105は、画素のループ処理を開始する(ステップS205)。具体的には、不確実性レベル判定部105は、検証データの一つの画素を選択する。
【0094】
不確実性レベル判定部105は、画素の第1不確実性指標が閾値Th1より小さいか否かを判定する(ステップS206)。
【0095】
画素の第1不確実性指標が閾値Th1より小さい場合、不確実性レベル判定部105は、不確実性レベル「0」を付与する(ステップS207)。具体的には、不確実性レベル判定部105は、テーブル630に不確実性レベルを設定する。その後、不確実性レベル判定部105はステップS213に進む。不確実性レベル「0」は、推論結果が十分信頼できることを表す。
【0096】
画素の第1不確実性指標が閾値Th1以上の場合、不確実性レベル判定部105は、画素の第2不確実性指標が閾値Th2より大きいか否かを判定する(ステップS208)。
【0097】
画素の第2不確実性指標が閾値Th2より大きい場合、不確実性レベル判定部105は、不確実性レベル「1」を付与する(ステップS209)。具体的には、不確実性レベル判定部105は、テーブル630に不確実性レベルを設定する。その後、不確実性レベル判定部105はステップS213に進む。不確実性レベル「1」は、推論結果が信頼できないことを表す。
【0098】
画素の第2不確実性指標が閾値Th2以下の場合、不確実性レベル判定部105は、最頻値が最大のクラス及び2番目のクラスの確率分布の重なり具合を評価する評価指標を算出する(ステップS210)。具体的には、以下のような処理が実行される。
【0099】
(S210-1)
図12に示すように、不確実性レベル判定部105は、最頻値が最大のクラスの分散及び最頻値の差(第1値)を算出する。不確実性レベル判定部105は、最頻値が2番目に大きいクラスの分散及び最頻値の和(第2値)を算出する。
【0100】
(S210-2)不確実性レベル判定部105は、第1値及び第2値の差を評価指標として算出する。
【0101】
不確実性レベル判定部105は、評価指標が第1不確実性指標より小さいか否かを判定する(ステップS211)。ステップS211の処理は、二つの確率分布の重なりの程度を判定するための処理である。評価指標が第1不確実性指標より小さい場合、
図7Cに示すように、二つの確率分布の重なりの度合いが大きいことを示す。
【0102】
評価指標が第1不確実性指標より小さい場合、不確実性レベル判定部105は、不確実性レベル「2」を付与する(ステップS212)。具体的には、不確実性レベル判定部105は、テーブル630に不確実性レベルを設定する。その後、不確実性レベル判定部105はステップS213に進む。不確実性レベル「2」は、画素が異なるクラスの領域の境界に位置することを表す。
【0103】
ステップS213では、不確実性レベル判定部105は、全ての画素について処理が完了したか否かを判定する(ステップS213)。全ての画素について処理が完了していない場合、不確実性レベル判定部105はステップS205に戻る。
【0104】
全ての画素について処理が完了した場合、不確実性レベル判定部105は、不確実性レベルが付与されていない画素を特定する(ステップS214)。
【0105】
不確実性レベル判定部105は、特定された画素に対する不確実性レベル付与処理を実行し(ステップS215)、その後、不確実性レベル判定処理を終了する。具体的には、以下のような処理が実行される。
【0106】
(S215-1)不確実性レベル判定部105は、推論結果DB112のテーブル610を参照して、特定された画素の正解率を取得する。
【0107】
(S215-2)不確実性レベル判定部105は、正解率が閾値Th3より大きい画素(ターゲット画素)を特定する。
【0108】
(S215-3)不確実性レベル判定部105はクラスを選択する。
【0109】
(S215-4)不確実性レベル判定部105は、ターゲット画素の位置関係に基づいて、選択したクラスに属し、かつ、距離が閾値Th4より小さいターゲット画素をグループ化する。
【0110】
(S215-5)不確実性レベル判定部105は一つのグループを選択する。
【0111】
(S215-6)不確実性レベル判定部105は、グループの画素の数を全画素数で除算することによって面積率を算出する。
【0112】
(S215-7)不確実性レベル判定部105は、面積率が閾値Th5より小さいか否かを判定する。面積率が閾値Th5以上の場合、不確実性レベル判定部105はS215-9に進む。
【0113】
(S215-8)面積率が閾値Th5より小さい場合、不確実性レベル判定部105は、グループに含まれる画素に不確実性レベル「3」を付与する。具体的には、不確実性レベル判定部105は、テーブル630に不確実性レベルを設定する。不確実性レベル「3」は、あるクラスの属する領域が小さいことを表す。
【0114】
(S215-9)不確実性レベル判定部105は、全てのグループについて処理が完了したか否かを判定する。全てのグループについて処理が完了していない場合、不確実性レベル判定部105はS215-5に戻る。
【0115】
(S215-10)全てのグループについて処理が完了した場合、不確実性レベル判定部105は、全てのクラスについて処理が完了したか否かを判定する。全てのクラスについて処理が完了していない場合、不確実性レベル判定部105はS215-3に戻る。全てのクラスについて処理が完了した場合、不確実性レベル判定部105はステップS215の処理を終了する。
【0116】
なお、いずれの不確実性レベルも付与されなかった画素には、例えば、「-1」が設定される。
【0117】
図13は、実施例1の計算機システム100が実行する不確実性マップ生成処理の一例を説明するフローチャートである。
【0118】
入出力部106は、ユーザから検証データ及び不確実性レベルの選択を受け付ける(ステップS301)。
【0119】
入出力部106は、選択された検証データの不確実性レベルを表示する不確実性マップを生成する(ステップS302)。具体的には、以下のような処理が実行される。
【0120】
(S302-1)入出力部106は、推論結果DB112のテーブル630を参照し、選択された検証データに対応するエントリを検索する。
【0121】
(S302-2)入出力部106は、検索されたエントリに基づいて、指定された不確実性レベルが付与された画素を特定する。
【0122】
(S302-3)入出力部106は、検証データに含まれる入力データ(画像)と同じサイズの画像を生成し、当該画像の特定された画素に不確実性レベルに応じたRGB値を設定する。当該画像が不確実性マップである。なお、生成された画像と、入力データ又は推論結果を重畳して不確実性マップを生成してもよい。
【0123】
入出力部106は、不確実性マップを出力し(ステップS303)、その後、不確実性マップ生成処理を終了する。
【0124】
図14は、実施例1の計算機システム100が提示するGUIの一例を示す図である。
【0125】
GUI1400は、入出力部106によって提示される。GUI1400は、設定領域1401及び結果表示領域1402を含む。
【0126】
設定領域1401は、処理に必要な各種設定を行うための領域である。設定領域1401は、入力欄1410、1411、1412、選択欄1413、及び操作ボタン1414を含む。
【0127】
入力欄1410は、使用する機械学習モデルを入力するための欄である。例えば、機械学習モデルを定義したテーブル500の名称等が入力される。入力欄1411は、使用する検証データを入力するための欄である。例えば、検証データを格納するファイルの名称等が入力される。入力欄1412は、不確実性レベル判定処理で用いる各種閾値を入力するための欄である。
【0128】
選択欄1413は、不確実性マップに表示する不確実性レベルを選択するための欄である。選択欄1413には、表示する不確実性レベルを選択するためのチェックボックスが表示される。
【0129】
操作ボタン1414は、推論処理及び不確実性レベル判定処理の実行を指示するための操作ボタンである。
【0130】
結果表示領域1402は、処理結果を表示するための欄である。結果表示領域1402は、選択欄1420及び表示欄1421を含む。
【0131】
選択欄1420は、検証データを選択するための欄である。選択欄1420には、検証データのID等がプルダウン形式で表示される。選択欄1420にて検証データが設定された場合、不確実性マップ生成処理が実行され、表示欄1421に処理結果が表示される。表示欄1421には、例えば、検証データに含まれる入力データ1431、推論結果1432、及び不確実性マップ1433が表示される。また、検証データの正解率等が表示されてもよい。不確実性マップ1433には、不確実性レベルに応じてRGB値が設定された画像が表示される。
【0132】
なお、不確実性レベルの判定で用いる閾値Th1及び閾値Th2はユーザが設定してもよい。この場合、不確実性レベル判定処理のステップS201からステップS204の処理は実行されない。
【0133】
なお、閾値Th1を算出するために用いる正解率は、処理の実行時に設定されていなくてもよい。この場合、不確実性レベル判定部105は、ステップS201の処理を実行した後、
図11Aに示すようなグラフを提示する。ユーザは、グラフを参照し、正解値を指定する。
【0134】
実施例1の計算機システムは、教師データに含まれる入力データの推論結果に対する不確実性レベルを付与し、不確実性レベルをイメージ(不確実性マップ)として提示することができる。ユーザは、不確実性マップを参照することによって、正解データの修正を行うことができる。修正した教師データを用いて機械学習を実行することによって、機械学習モデルの推論の精度向上及び不確実性の低減を実現できる。
【0135】
なお、確率分布の最頻値を基準にした処理では、確率分布の中央値及び平均値に置き換えてもよい。
実施例2の計算機システム100の構成は実施例1と同一である。実施例2の推論処理及び不確実性レベル判定処理は、実施例1と同一である。実施例2では、不確実性マップ生成処理が一部異なる。具体的には、ステップS302の処理内容が実施例1と異なる。
(S302-4)入出力部106は、選択した不確実性レベルが付与された画素の面積率を算出する。具体的には、不確実性レベルが付与された画素の数を部分画像の全画素数で除算する。
(S302-7)入出力部106は、全ての部分画像について処理が完了したか否かを判定する。全ての部分画像について処理が完了していない場合、入出力部106はS302-3に戻る。
(S302-8)全ての部分画像について処理が完了した場合、入出力部106は、ユーザが指定した全ての不確実性レベルについて処理が完了したか否かを判定する。ユーザが指定した全ての不確実性レベルについて処理が完了していない場合、入出力部106はS302-2に戻る。