(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155488
(43)【公開日】2024-10-31
(54)【発明の名称】計算機システムおよび学習データの蓄積方法
(51)【国際特許分類】
G06F 18/214 20230101AFI20241024BHJP
G06N 20/00 20190101ALI20241024BHJP
【FI】
G06F18/214
G06N20/00 130
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023070248
(22)【出願日】2023-04-21
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】三浦 直人
(72)【発明者】
【氏名】松田 友輔
(72)【発明者】
【氏名】渡部 孝佳
(72)【発明者】
【氏名】小林 崇則
(72)【発明者】
【氏名】小渕 拓海
(57)【要約】
【課題】学習データを生成するためのアノテーション作業に要するコストを低減する。
【解決手段】入力データを用いて推論を行う計算機システムは、推論部を有し、入力データに対して、推論部を用いた複数の推論項目の推論を実行し、複数の推論項目の推論結果の信頼度を算出し、入力データと、複数の推論項目の推論結果および信頼度とを含む判定データを格納し、信頼度に基づいて、確認が不要である推論結果と、確認が必要な推論結果とを分類し、確認が必要な前記推論結果に対する修正を受け付けるインタフェースを提示し、確認が不要である推論結果と、インタフェースの操作が反映された、確認が必要な推論結果と、入力データと、から構成される学習データを生成し、格納する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
入力データを用いて推論を行う計算機システムであって、
少なくとも一つの推論部を有し、
前記入力データに対して、前記少なくとも一つの推論部を用いた複数の推論項目の推論を実行し、
前記複数の推論項目の推論結果の信頼度を算出し、
前記入力データと、前記複数の推論項目の前記推論結果および前記信頼度とを含む判定データを格納し、
前記信頼度に基づいて、確認が不要である前記推論結果と、確認が必要な前記推論結果とを分類し、
確認が必要な前記推論結果に対する修正を受け付けるインタフェースを提示し、
確認が不要である前記推論結果と、前記インタフェースの操作が反映された、確認が必要な前記推論結果と、前記入力データと、から構成される学習データを生成し、格納することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記インタフェースを介して確認または修正された前記推論結果の中から学習に使用する前記推論結果を選択し、
確認が不要な前記推論結果と、選択された前記推論結果とを用いて、前記少なくとも一つの推論部の学習を実行することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記信頼度および閾値の比較結果に基づいて、前記少なくとも一つの推論部の学習に使用する前記推論結果を選択することを特徴とする計算機システム。
【請求項4】
請求項2に記載の計算機システムであって、
前記インタフェースを介して、前記推論結果が正しいか否かを判定できないことを示す判定困難フラグを付与することができ、
前記判定困難フラグが付与された前記推論結果は、前記少なくとも一つの推論部の学習に使用しないことを特徴とする計算機システム。
【請求項5】
請求項2に記載の計算機システムであって、
前記少なくとも一つの推論部は、
機械学習によって生成されたモデルを用いて推論を行うデータ型推論部を少なくとも一つ含み、
ルールに基づいて推論を行い、機械学習によって生成されたモデルを用いて当該推論の結果を補正するルール型推論部を少なくとも一つ含むことを特徴とする計算機システム。
【請求項6】
入力データを用いて推論を行う計算機システムが実行する学習データの蓄積方法であって、
前記計算機システムは、少なくとも一つの推論部を有し、
前記学習データの蓄積方法は、
前記計算機システムが、前記入力データに対して、前記少なくとも一つの推論部を用いた複数の推論項目の推論を実行する第1のステップと、
前記計算機システムが、前記複数の推論項目の推論結果の信頼度を算出する第2のステップと、
前記計算機システムが、前記入力データと、前記複数の推論項目の前記推論結果および前記信頼度とを含む判定データを格納する第3のステップと、
前記計算機システムが、前記信頼度に基づいて、確認が不要である前記推論結果と、確認が必要な前記推論結果とを分類する第4のステップと、
前記計算機システムが、確認が必要な前記推論結果に対する修正を受け付けるインタフェースを提示する第5のステップと、
前記計算機システムが、確認が不要である前記推論結果と、前記インタフェースの操作が反映された、確認が必要な前記推論結果と、前記入力データと、から構成される学習データを生成し、格納する第6のステップと、を含むことを特徴とする学習データの蓄積方法。
【請求項7】
請求項6に記載の学習データの蓄積方法であって、
前記計算機システムが、前記インタフェースを介して確認または修正された前記推論結果の中から学習に使用する前記推論結果を選択する第7のステップと、
確認が不要な前記推論結果と、選択された前記推論結果とを用いて、前記少なくとも一つの推論部の学習を実行する第8のステップと、を含むことを特徴とする学習データの蓄積方法。
【請求項8】
請求項7に記載の学習データの蓄積方法であって、
前記第7のステップは、前記計算機システムが、前記信頼度および閾値の比較結果に基づいて、前記少なくとも一つの推論部の学習に使用する前記推論結果を選択するステップを含むことを特徴とする学習データの蓄積方法。
【請求項9】
請求項7に記載の学習データの蓄積方法であって、
前記インタフェースを介して、前記推論結果が正しいか否かを判定できないことを示す判定困難フラグを付与することができ、
前記第8のステップでは、前記判定困難フラグが付与された前記推論結果は、前記少なくとも一つの推論部の学習に使用しないことを特徴とする学習データの蓄積方法。
【請求項10】
請求項7に記載の学習データの蓄積方法であって、
前記少なくとも一つの推論部は、
機械学習によって生成されたモデルを用いて推論を行うデータ型推論部を少なくとも一つ含み、
ルールに基づいて推論を行い、機械学習によって生成されたモデルを用いて当該推論の結果を補正するルール型推論部を少なくとも一つ含むことを特徴とする学習データの蓄積方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力されたデータを用いて推論を行うシステムの学習技術に関する。
【背景技術】
【0002】
人および物等の被写体ならびにその周辺を含む画像に基づいて、被写体およびその周辺の環境に関する各種情報を推論する画像認識技術は、産業、都市、交通、医療、エネルギー、およびIT等の様々な分野で広く用いられている。
【0003】
例えば、自動車の運転アシスト機能では、車載カメラの映像および各種センサ情報から自動車周辺の状況を認識することで安全な運転をサポートできる。また、製造現場において、製造ラインに設置されたカメラおよびセンサによって製造物を撮影し、異常の有無および種類を判定することで製品製造の歩留まりを向上できる。
【0004】
近年は、深層学習をはじめとするAI技術の発展に伴い、撮影環境が変化しやすい現場での画像認識においても、人の熟練者と同等以上に正確な認識が実施できるケースが増加している。特に、大量の学習データ(訓練データ、教師データと呼ばれる場合もある。)を用いて推論モデルのパラメータを最適化する学習ベースのデータドリブン型AIは、判断の根拠および法則性を陽に記述できない場合でも高精度に推論できる。このように、従来は人手によって行われていた様々な確認/判別作業が自動化できるようになっている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】国立研究開発法人 科学技術振興機構 研究開発戦略センター, "第4世代AIの研究開発 -深層学習と知識・記号推論の融合-", 2020年3月.
【発明の概要】
【発明が解決しようとする課題】
【0007】
実環境からの学習データの収集が困難な場合、実運用に近い環境から学習データを収集し、または、シミュレータを用いて学習データを生成し、これらの学習データを用いて推論モデルの学習が行われる。前述の学習データは、カメラ、撮影角度、および照明条件等、実環境とは異なる条件下で取得される学習データであるため、推論の精度が必ずしも高いわけではない。
【0008】
前述のようなケースでは、実環境から取得した入力データに対する推論結果を用いて学習データを生成し、推論モデルを学習する手法が用いられる。推論結果をそのまま学習データとして用いても効率的に推論モデルの推論性を向上させることは難しい。これに対して、特許文献1に記載の技術が知られている。
【0009】
特許文献1には、「学習用データセット生成装置(1)は、クラスごとに予め設定された重要度係数に基づき、与えられたデータセットの中からアノテーション情報が付与されるべきアノテーション対象を抽出する抽出部(30)を備える。」ことが記載されている。
【0010】
特許文献1では、アノテーション情報の付与はユーザによって行われている(例えば、特許文献1の段落[0041])。したがって、アノテーション対象の抽出だけでは作業に要する手間および時間を十分抑制できない。
【課題を解決するための手段】
【0011】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、入力データを用いて推論を行う計算機システムであって、少なくとも一つの推論部を有し、前記入力データに対して、前記少なくとも一つの推論部を用いた複数の推論項目の推論を実行し、前記複数の推論項目の推論結果の信頼度を算出し、前記入力データと、前記複数の推論項目の前記推論結果および前記信頼度とを含む判定データを格納し、前記信頼度に基づいて、確認が不要である前記推論結果と、確認が必要な前記推論結果とを分類し、確認が必要な前記推論結果に対する修正を受け付けるインタフェースを提示し、確認が不要である前記推論結果と、前記インタフェースの操作が反映された、確認が必要な前記推論結果と、前記入力データと、から構成される学習データを生成し、格納する。
【発明の効果】
【0012】
本発明によれば、学習データを生成するためのアノテーション作業に要するコストを低減できる。上記した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】実施例1の計算機システムの構成の一例を示すである。
【
図2A】実施例1の入力データの一例を示す図である。
【
図2B】実施例1の入力データの一例を示す図である。
【
図2C】実施例1の入力データの一例を示す図である。
【
図3】実施例1のサーバが実行するタスク処理の一例を説明するフローチャートである。
【
図4A】実施例1のサーバによる推論の一例を示す図である。
【
図4B】実施例1のサーバによる推論の一例を示す図である。
【
図4C】実施例1のサーバによる推論の一例を示す図である。
【
図4D】実施例1のサーバによる推論の一例を示す図である。
【
図5】実施例1のルール型推論部の構成の一例を示す図である。
【
図6A】実施例1のデータ型推論部の構成の一例を示す図である。
【
図6B】実施例1のデータ型推論部の構成の一例を示す図である。
【
図7】実施例1の信頼度算出部の構成の一例を示す図である。
【
図8】実施例1のサーバが判定者に提示する画面の一例を示す図である。
【
図9】実施例1の学習データ蓄積部に格納される学習データの一例を示す図である。
【
図10】実施例1のサーバが実行する学習処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施例を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
【0016】
また、以下においては、プログラムを主体に処理を説明する場合、CPU(Central Processing Unit)およびGPU(Graphics Processing Unit)等の演算装置が、記憶装置および通信インタフェース等の計算機リソースを用いてプログラムを実行していることを表す。なお、プログラムによって実現される機能は、仮想的な計算機、計算機システム、または、FPGA(Field-Programmable Gate Array)およびASIC(Application Specific Integrated Circuit)等の専用回路を用いて実現してもよい。
【実施例0017】
実施例1では、ユースケースの1つとして、中古自動車のネット売買における自動車の買取査定額を自動判定するシステムについて説明する。
【0018】
現在では、車種、年式、および走行距離等を入力するだけで簡易的に買取査定額を見積もるサービスが提供されている。しかし、実際には自動車の状態によって査定額が大きく変動する。そのため、自動車の状態を客観的に判断するために自動車の画像に基づいてより詳細な見積もりが可能となる。
【0019】
実施例1では、自動車のオーナ(システムの利用者)が買取業者に自動車を売却する場合、利用者は、スマートフォンにインストールされた、買取業者が提供する買取査定額判定アプリを通じて、利用者が撮影した自動車の画像(写真および動画)とともに車種および走行距離等の付帯情報を含む入力データを送信する。買取業者が運用するシステムは、入力データに基づいて買取見積価格を算出し、利用者に通知する。
【0020】
画像分析技術を有さないシステムの場合、自動車買取査定を行う作業者が画像および付帯情報に基づいて査定額を決定する。この場合、特に人手で画像を確認する作業には多くの時間を要する。また、入力された情報が誤っていることも想定されるため、人手による査定額判定の作業負荷は大きく、特に作業者が不足している場合、査定額の提示が遅延する。
【0021】
前述の作業は自動化が望まれるが、最終的には人による判断を行う必要もある。実施例1では、システムに画像分析技術を導入し、人の作業をサポートし、または画像認識技術によって最終判定を実施することで、人的負担の軽減を図り、迅速な見積の提供を実現する。
【0022】
このユースケースで用いる画像分析技術では、車種、傷の有無および大きさ、ならびに、タイヤの摩耗状態等の複数の項目を推論する必要がある。しかし、推論を行う推論モデルが車種および傷のサイズ等を正しく推論できるとも限らない。そのため、推論精度を向上させるための継続的な学習が必要となる。
【0023】
学習データを生成する場合、アノテーション情報(推論結果の正解)として付与する推論結果を確認し、また、修正する必要がある。このとき、入力データのみでは推論項目の正解値が分からない場合があり、実際に自動車を確認して初めて分かるケースもある。
【0024】
図1は、実施例1の計算機システムの構成の一例を示すである。
【0025】
計算機システムは、サーバ100および端末101から構成される。サーバ100および端末101は、図示しないネットワークを介して接続される。
【0026】
端末101は、利用者103が操作する端末であり、例えば、スマートフォンおよびタブレット端末である。利用者103は、端末101を用いて分析対象の自動車102に関する情報を入力する。端末101は、CPU110、メモリ111、入力装置112、出力装置113、ネットワークインタフェース114、カメラ115、およびセンサ116を有する。
【0027】
カメラ115は、自動車102の静止画または動画を撮影するために用いられる。センサ116は、画像以外の情報を補助的に取得するためのものであり、例えば、自動車102の画像の撮影時の自動車102およびカメラ115の間の距離を計測する測距センサ、カメラの姿勢を検知する加速度センサまたはジャイロセンサ、撮影環境の明るさを計測する照度センサ、撮影された位置を計測するGPSセンサ等である。
【0028】
メモリ111には、中古車買取業者から提供される買取査定額判定アプリのプログラムが格納される。利用者103は、当該アプリを介して自動車102に関する情報を入力し、買取査定額等を受け取ることができる。
【0029】
出力装置113には、例えば、アプリによって提供されるユーザインターフェイスが表示される。利用者103は、入力装置112を用いて、ユーザインターフェイスに含まれるテキストボックス、リストボックス、チェックボックス等に、車種、車検証の情報、およびコメント等、自動車102に関する付帯情報を入力する。
【0030】
ここでは、画像、センサ情報、および付帯情報を纏めたものを入力データ105とする。
【0031】
端末101は、入力データ105をサーバ100に送信する。データの送信手段には、例えば、公衆無線通信および有線通信を用いることができる。
【0032】
サーバ100は、自動車102の買取査定額を判定する。サーバ100は、CPU120、メモリ121、およびネットワークインタフェース122を有する。
【0033】
メモリ121には、推論部130、推論結果判定部140、および学習部150を実現するプログラムが格納される。
【0034】
推論部130は、入力データ105を受け付け、自動車の買取査定額を算出するための推論を行う。推論部130は、ルール型推論部131、データ型推論部132、および信頼度算出部133を含む。
【0035】
ルール型推論部131は、所定のルールに基づいて、入力データ105を用いて、所定の推論項目の推論を行う。データ型推論部132は、機械学習によって生成されたモデルに基づいて、所定の推論項目の推論を行う。信頼度算出部133は、推論結果の尤もらしさを表す信頼度を算出する。推論項目は、例えば、自動車の種類、傷の有無、傷の程度、傷の修理代、および買取査定額等である。
【0036】
実環境の学習データを予め大量に集められない場合、推論モデルは、シミュレータまたはGAN等のモデルを用いて生成された学習データを用いて学習される。このように学習された推論モデルを用いても、推論精度が低い場合がある。そこで、本実施例では、非特許文献1に記載されているように、学習データを用いて学習された推論モデルを用いて推論を行うデータドリブン型AIと、学習を行わずにルールを用いて推論を行うルールベース型AIとを用いて推論を行う。
【0037】
買取査定額の推論が最終的な目的であるため、推論部130は、買取査定額のみを推論してもよいが、必ずしも正確な推論ができるとは限らない。そのため、推論部130は、正確な買取査定額を算出するために必要な項目についても推論を行う。当該項目の推論結果は、買取査定額を推論するための入力情報として活用され、また、判定者104が総合的に買取査定額を判断するための情報、または利用者103に買取査定額の根拠を示す情報として活用することができる。
【0038】
推論部130は、入力データ105と、各推論項目の推論結果および信頼度とを推論結果判定部140に出力する。
【0039】
推論結果判定部140は、判定者104に推論結果等を提示し、最終的な買取査定額の決定を支援する。推論結果判定部140は、判定データ蓄積部141、推論結果表示部142、データ入力部143、および判定結果処理部144を含む。
【0040】
判定データ蓄積部141は、推論部130が出力した入力データおよび推論結果を判定データとして一時的に蓄積する。判定者104は、任意のタイミングで判定データ蓄積部141から判定データを取り出すことができる。
【0041】
判定者104が不在のときに査定依頼が来ることが想定されるが、この機構によって判定作業をバッチ処理として実行できる。
【0042】
推論結果表示部142は、判定データ蓄積部141から読み出された推論結果を判定者104に提示する。判定者104は、推論結果を確認しながら買取価格の査定を実施する。このとき、判定者104は、推論結果を修正し、また、推論結果の正解の判定が難しい項目に判定困難フラグを付与する。データ入力部143は、判定者104によって入力されたデータを受け付ける。
【0043】
判定結果処理部144は、利用者103に提示する最終的な買取査定額を端末101に通知する。また、判定結果処理部144は、推論部130の推論結果および判定者104によって修正された推論結果をアノテーション情報として入力データ105に付与することによって学習データを生成する。また、判定結果処理部144は、生成された学習データを学習部150に出力する。
【0044】
なお、判定者104は、買い取られた自動車102を確認し、画像だけでは正解値が分からなかった、傷の大きさおよび凹みの深さ等の推論結果について、判定結果処理部144を介して修正を行うことができる。具体的には、推論結果判定部140は、後述の学習データ蓄積部151に格納される学習データから修正対象の学習データを検索し、当該学習データに含まれる推論結果を修正する。
【0045】
学習部150は、推論に用いる推論モデルの学習を行う。学習部150は、学習データ蓄積部151、学習データ生成部152、およびパラメータ更新部153を含む。
【0046】
学習データ蓄積部151は、入力データ105および複数の推論結果から構成される学習データを蓄積する。
【0047】
推論部130の推論結果は判定者104によって確認/修正されており、正確なアノテーション情報が付与されている。従って、実環境の入力データ105に対する正確な正解付けがなされた学習データを用いた学習によって、実環境から取得される入力データ105に対する推論精度が向上する。
【0048】
なお、学習データ蓄積部151には、正解がわからないため、判定困難フラグが付与された推論結果を含む学習データも格納される。後述するように、本実施例では、効率的に精度を向上させるために判定困難フラグに基づく、学習に使用する推論結果の選択が行われる。
【0049】
学習データ生成部152は、学習データを生成する。学習データ生成部152は、例えば、自動車の3D画像、または、GAN等の生成モデルを用いて、2D画像または3D画像を生成する機能を有する。事前に大量の学習データを用意できない場合、3D画像または生成モデルを用いて実環境に類似する画像を生成し、推論モデルの初期学習が実行される。
【0050】
パラメータ更新部153は、学習データを用いて推論モデルの学習を行う。具体的には、パラメータ更新部153は、入力データに対する推論結果が正解と一致するように、推論モデルのパラメータを更新する。
【0051】
なお、複数の計算機から構成される計算機システムを用いて、サーバ100が有する機能を実現してもよい。
【0052】
【0053】
入力データ105には、画像200-1、画像200-2、センサ情報201-1、センサ情報201-1、および付帯情報202が含まれる。画像200-1およびセンサ情報201-1は、
図2Aに示すように関連付けて管理される。また、画像200-2およびセンサ情報201-2は、
図2Bに示すように関連付けて管理される。
【0054】
センサ情報201-1は、画像200-1の撮影時にセンサ116によって計測された各種計測値を格納する。センサ情報201-2は、画像200-2の撮影時にセンサ116によって計測された各種計測値を格納する。
【0055】
画像200-1は、自動車102全体が映った画像である。画像200-2は、拡大された、自動車の左前方部分が映った画像である。入力データ105に含める画像は1つでもよいし、3つ以上でもよい。なお、必ずしも自動車102の全方向の外周画像または自動車102の内部画像が提供されるわけではない。そのため、サーバ100は、利用者103が送信した画像に基づいて買取査定額を算出する。サーバ100は、買取査定額の算出のために必要な画像の例を利用者103に提示してもよい。また、サーバ100は、画像等の不足している情報がある場合には、不足する情報の入力を促すメッセージを送信してもよい。
【0056】
センサ情報201-1、201-2には、撮影日時、撮影場所、焦点距離、照度、端末101と被写体との間の距離、カメラの角度、および画像の識別番号等が含まれる。画像の識別番号は、撮影時間順に付与される。被写体との間の距離は加速度センサおよびジャイロセンサの計測値から算出される撮影位置から求めることができる。なお、センサ情報201-1、201-2に含まれる計測値は一例であってこれに限定されない。端末101の機能によって取得される計測値は異なる。
【0057】
センサ情報201-1、201-2に基づいて、画像の時間的関係性および位置的な関係性を把握することができる。例えば、撮影場所が大きく異なる場合、無関係な自動車が撮影される可能性があるため、サーバ100は、同じ場所での撮影を促す警告メッセージを出力する。特に、カメラの相対位置の情報は、画像が撮影されたカメラの位置関係を推定するために有用である。そのため、サーバ100は、センサ情報201-1、201-2に基づいて、画像200-2が特定の部位を表す拡大写真または異なる角度の全体写真であるかを判別できる。
【0058】
なお、端末101が動画を撮影できる場合、例えば、SLAM(Simultaneous Localization and Mapping)技術を用いてカメラ姿勢および被写体の3次元形状が取得できる。そのため、サーバ100は、センサ情報201-1、201-2を用いずに、動画から被写体の立体構造等を推論してもよい。
【0059】
付帯情報202は、自動車102に関する情報を格納する。サーバ100は、画像200だけではなく、付帯情報202も含めて、買取査定額を算出する。なお、入力された情報が正確であることは保証されておらず、またすべての情報が与えられるとは限らない。
図2Cでは、車種が「その他」となっているため、サーバ100または判定者104は、画像200から車種を推論する必要がある。
【0060】
図3は、実施例1のサーバ100が実行するタスク処理の一例を説明するフローチャートである。
【0061】
サーバ100は、入力データ105を受け付けた場合、以下で説明する処理を開始する。
【0062】
サーバ100の推論部130は、入力データ105を用いて複数の推論項目について推論を実行する(ステップS301)。具体的には、ルール型推論部131およびデータ型推論部132の各々が入力データ105に対する推論を実行する。ルール型推論部131およびデータ型推論部132の推論処理の詳細は後述する。
【0063】
サーバ100の推論部130は、各推論項目の推論結果の信頼度を算出する(ステップS302)。
【0064】
例えば、推論部130は、学習データ蓄積部151に蓄積された学習データのうち、信頼度が高い正解が付与された学習データを用いて推論を行い、推論結果が正解と一致する頻度から正解率を求め、それを信頼度とする方法がある。詳細については後述する。
【0065】
サーバ100の推論部130は、入力データ105と、各推論項目の推論結果および信頼度とを保存する(ステップS303)。具体的には、推論部130は、入力データ105と、各推論項目の推論結果および信頼度とから構成される判定データを推論結果判定部140に出力する。推論結果判定部140の判定データ蓄積部141は、推論部130から出力された判定データを格納する。この蓄積によって、リアルタイム処理ではなく判定者104の作業を含めたバッチ処理が可能となる。
【0066】
判定者104は、バッチ処理として判定作業を開始し、推論結果判定部140にアクセスする。サーバ100の推論結果判定部140は、アクセスを受け付けた場合、自動アノテーション作業を実行する(ステップS304)。
【0067】
具体的には、推論結果判定部140は、判定データ蓄積部141から、入力データと、各推論項目の推論結果の信頼度とから構成される判定データを取得する。推論結果判定部140は、信頼度が閾値より大きい推論結果を、判定者104の確認が不要な推論結果として特定する。推論結果判定部140は、特定された推論結果については、当該推論結果をそのままアノテーション情報として付与する。これによって、判定者104によるアノテーション作業の負荷を低減できる。
【0068】
なお、1つの推論項目について複数の推論アルゴリズムに基づいて推論が行われ、かつ、推論結果が一致しない場合、最も信頼度が高い推論結果が採用されるものとする。ただし、推論結果が一致しない場合には、確認が必要な推論結果と判定されてもよい。この場合、判定者104によって推論結果の確認および修正が行われる。
【0069】
サーバ100の推論結果判定部140は、判定者104に対して、推論結果の確認および修正を行うための画面を表示する(ステップS305)。このとき、推論結果判定部140は、確認が必要ない推論結果については、修正を受け付けないように制御し、または、確認が必要ないことを明示する。
【0070】
判定者104は、画面を参照して、入力データ105と、各推論項目の推論結果および信頼度とを確認する。また、判定者104は、必要に応じて、推論結果を修正する。また、判定者104は、正解が不明な推論結果については判定困難フラグを付与する。また、判定者104は、最終的な買取査定額を決定し、サーバ100に送信する。これらの操作は確認データとして入力される。これらの操作がアノテーション作業に相当する。
【0071】
サーバ100の推論結果判定部140は、確認データを反映する(ステップS306)。このとき、確認または修正された推論結果がアノテーション情報として付与される。
【0072】
サーバ100の推論結果判定部140は、買取査定額を含む最終処理結果を端末101に送信する(ステップS307)。当該情報には、必要に応じて、査定の理由および根拠等を含めることができる。
【0073】
利用者103は、端末101を介して買取査定額を確認する。当該査定後の売買契約等は別途行われることになる。
【0074】
【0075】
実施例1では、自動車の買取査定額を推論することが最終的な目的であるが、自動車の外観の状態および走行距離等を加味して総合的に査定額が決定される。
【0076】
利用者103が入力する情報に誤りがある場合または情報が不足する場合がある。そのため、画像等を用いて、自動車の車種、傷および摩耗など、買取査定額の判定に影響を与える項目を客観的に推論する必要がある。サーバ100は、前述の項目を推論することで、判定者104が買取査定額を決定するための作業労力が軽減でき、また、買取査定額の決定理由を利用者103に説明できる。
【0077】
図4Aには、画像中の自動車102の位置および車種が推論項目である場合の推論結果を示す。
図4Bは、自動車102のパーツのセグメンテーション情報が推論項目である場合の推論結果を示す。
図4Cは、自動車102の傷の有無、傷の場所、傷の大きさ、および傷の修理費用が推論項目である場合の推論結果を示す。
図4Dは、タイヤの摩耗状態が推論項目である場合の推論結果を示す。
【0078】
なお、
図4A、
図4B、
図4C、
図4Dに示す推論結果は一例であり、自動車102の3次元形状および買取査定額等も推論項目として推論される。
【0079】
各種項目を自動的に推論することによって、判定者104の確認作業が低減され、短時間で買取査定額を決定することができる。例えば、3次元形状を自動的に推論した場合、1つの2次元画像では判別が難しい傷および凹みの深さを容易に把握できる。また、買取査定の業務の経験が浅い判定者104でも正しく査定を行うことができる。
【0080】
推論項目の推論は、ルール型推論部131およびデータ型推論部132によって実行される。ただし、ルール型推論部131およびデータ型推論部132が推論する推論項目は同一でもよいし、異なっていてもよい。また、一部の項目のみが重複してもよい。
【0081】
図5は、実施例1のルール型推論部131の構成の一例を示す図である。
【0082】
ルール型推論部131は、複数のルール型推論モジュール501、複数の補正モジュール502、および推論パラメータ格納部503を含む。
【0083】
ルール型推論モジュール501は、予め設計されたルールに従って、任意の推論項目の推論を行う。補正モジュール502は、学習処理によって生成される推論モデルを用いて、ルール型推論モジュール501の推論結果を補正する。推論パラメータ格納部503は、補正モジュール502が用いる推論モデルに設定する推論パラメータを格納する。推論パラメータ格納部503には、学習部150の学習処理によって算出された推論パラメータが格納される。なお、各補正モジュール502が用いる推論モデルの推論パラメータは、独立したパラメータでもよいし、一部が共通するパラメータを含んでもよい。
【0084】
図5に示すルール型推論部131は、1つの推論項目の推論を行うルール型推論モジュール501を3つ含み、また、各ルール型推論モジュール501の推論結果を補正する補正モジュール502を3つ含む。ルール型推論部131は、3つのルール型推論モジュール501および補正モジュール502のペアを用いて、自動車の位置、自動車のサイズ、ならびに、傷の有無およびその程度を推論する。
【0085】
ルール型推論部131は、入力データ105に対する複数の推論項目の推論結果を結合し、ルール型推論結果510として出力する。
【0086】
ルール型推論部131は、人の知見およびノウハウ、または物理法則等に基づいて、主に人手によって設計されたルールに基づいて推論を行う。
【0087】
例えば、画像中の自動車の位置を推論する場合、ルール型推論部131は、画像を小領域に分割した各領域内の色および輝度勾配をヒストグラム化した画像特徴量であるHOG(Histograms of Oriented Gradients)特徴量を算出し、算出したHOG特徴量が様々な種類の自動車の画像から得たHOG特徴量と類似する部分を探索し、自動車の画像上の位置を推論する。HOG特徴量は、映像の照明条件などによって変化しにくい性質を持つものとして人のノウハウに基づき設計されたものであり、ルール型の推論で用いられる代表的な特徴量の一つである。
【0088】
同様に、例えば、タイヤの領域をセグメンテーションする場合、ルール型推論部131は、タイヤは円形であるという知識に基づいて、Hough変換によって画像上の円形部分を探索し、その内側領域をタイヤとみなす。これらの手法は学習データを大量に必要とするものではなく、タイヤは円形である、といった普遍的な特徴を知ることができれば学習データが取得できていない状況でも推論することが可能となる。
【0089】
一方、ルールに基づく推論の欠点としては、設計したルールが現実とは異なる場合、推論結果に誤差が含まれること、より良いルールを再設計するためには時間を掛けて人手で実施する必要があるため改良コストが大きいこと、ルールが複雑またはルールそのものが明らかでない場合は設計が困難となること、などがある。そこで、本発明では、運用中に蓄積される学習データを用いて推論精度を向上させるため、ルール型推論モジュール501の後段に補正モジュール502を挿入している。
【0090】
補正モジュール502は、深層学習により生成された推論モデルを用いて推論を行う。具体的には、補正モジュール502は、ルール型推論モジュール501の推論結果を推論モデルに入力することによってこれを補正し、新たな推論結果を出力する。このとき、実運用時に蓄積される学習データの正解と一致するよう、ルール型推論モジュール501の推論結果を変換するように学習される。その結果、運用が進むにつれてより正確な推論結果を出力できるようになる。これによって、実運用開始直後の学習データが少ない場合はルール型推論モジュール501による推論結果が採用され、学習データが蓄積されて再学習が行われると、ルール型推論モジュール501の推論結果が補正される。これによって、運用直後のデータが少ない場合はルール型の推論が実施でき、かつ運用が進むにつれて推論精度が改善されるという効果を有する。
【0091】
ただし、補正モジュール502の学習の進捗によっては推論結果が改悪される可能性もある。そのため本実施例では、ルール型推論モジュール501の推論結果と補正モジュールの推論結果の2つをルール型推論結果510に含め、後述の信頼度の算出において信頼度の高い推論結果を採用する。なお、後述する判定者104による判定作業では、両方の推論結果を示してもよい。
【0092】
図6Aおよび
図6Bは、実施例1のデータ型推論部132の構成の一例を示す図である。
【0093】
データ型推論部132は、複数のデータ型推論モジュール601および推論パラメータ格納部602を含む。
【0094】
データ型推論モジュール601は、深層学習により生成された推論モデルを用いて推論を行う。推論モデルは、例えば、FCN(Fully Convolutional Network)、RNN(Recurrent Neural Network)、GAN(Generative Adversarial Network)等である。推論するタスクに適した推論モデルを適宜選択することができる。推論パラメータ格納部602は、各データ型推論モジュール601が用いる推論モデルに設定する推論パラメータを格納する。推論パラメータ格納部603には、学習部150の学習処理によって算出された推論パラメータが格納される。
【0095】
図6Aに示すデータ型推論部132は、4つのデータ型推論モジュール601を含む。各データ型推論モジュール601は、買取査定額、自動車の位置、車種、および自動車パーツのセグメンテーションの推論を行う。データ型推論部132は、各推論結果を統合してデータ型推論結果610として出力する。
【0096】
データ型推論モジュール(1)601は、入力データ105の他に、他のデータ型推論モジュール601の推論結果を入力として受け付けるように構成されている。これは、買取査定額の推論のように、車種、パーツの傷および凹みの有無ならびにそれらの大きさ等の全ての推論結果を統合して推論を行う必要があるためである。他の推論項目についても他の推論結果に依存する関係性がある場合、他の推論結果を入力とするようにデータ型推論モジュール601を構成してもよい。
【0097】
図6Bに示すように、データ型推論部132には、推論項目の追加に伴って、データ型推論モジュール601を追加することができる。推論パラメータ格納部602にデータ型推論モジュール601の数をハイパーパラメータとして設定しておき、5つ目の推論項目を追加したい場合は当該ハイパーパラメータを5に変更し、さらに5つ目のデータ型推論モジュール601が用いる推論モデルの推論パラメータを追加する。これによって、例えば、より詳細な推論項目である「タイヤの摩耗度合い」、「内装の汚れ度合い」等の推論項目の追加をスムーズに行うことができる。
【0098】
図7は、実施例1の信頼度算出部133の構成の一例を示す図である。
【0099】
信頼度算出部133は、類似入力データ生成部701および正解率算出部702を含む。
【0100】
類似入力データ生成部701は、GAN等の生成モデルを用いて、入力データ105に類似する類似入力データ710を生成する。具体的には、類似入力データ生成部701は、学習部150の学習データ蓄積部151から、信頼度の高い正解が付与された学習データを取得し、入力データ105に類似するように、入力された学習データを変換することによって、類似入力データ710を生成する。
【0101】
例えば、類似入力データ生成部701は、カメラのノイズ状態および照明条件、被写体が撮影されている角度等、撮影環境にのみ影響を受ける要素について、入力データ105に含まれる画像に類似するように学習データに含まれる画像を変換する。入力データ105は正解が未知であるが、すでに正解の判明している学習データを入力データ105に類似するように変換することによって、正解が付与され、かつ、入力データ105に類似する画像を含む類似入力データ710が得られる。類似入力データ710を用いることによって、入力データ105に対する推論の確からしさを評価できる。
【0102】
なお、色や形状など被写体そのものの性質を変換してしまうと正解が変わる可能性があるため、これらの要素についての変換は実施せず、撮影条件に起因する要素のみを変換する。例えば、車体の色を加工すると、レアで人気のある色であった場合は流通価格が大幅に高くなる可能性があり、元々付与されている学習データの正解が実体に合わなくなる。
【0103】
なお、類似入力データ生成部701は、類似入力データ710を生成する代わりに、入力データ105に含まれる画像と類似する画像を含む学習データを類似入力データ710として検索してもよい。また、学習部150に格納される学習データが少ない場合、類似入力データ生成部701は、入力データ105との類似を判定せず、すべての学習データを類似入力データ710としてもよい。
【0104】
類似入力データ生成部701は、ルール型推論部131およびデータ型推論部132に、類似入力データ710を入力する。ルール型推論部131およびデータ型推論部132は、類似入力データ710に対して推論を行い、ルール型推論結果510およびデータ型推論結果610を出力する。
【0105】
正解率算出部702は、ルール型推論結果510および類似入力データ710に付与される正解を比較することによって、ルール型推論部131による各推論項目の推論の正解率を算出する。また、正解率算出部702は、データ型推論結果610および類似入力データ710に付与される正解を比較することによって、データ型推論部132による各推論項目の推論の正解率を算出する。正解率算出部702は、推論の正解率を信頼度判定結果720として出力する。
【0106】
例えば、100件の推論結果にうち、90件が正解と一致した場合、正解率、すなわち、信頼度は90%となる。ただし、類似入力データ710の数が少ない場合、正解率そのものの信頼性が低い。例えば、類似入力データ710が9件であり、全ての推論結果が正解と一致した場合、正解率は100%となるが、偶然一致した可能性を否定できない。そこで、正解率算出部702は、Rule of Three(3の法則)などを用いて、信頼区間95%で確からしいと言える正解率を再計算し、それを信頼度とすることができる。例えば、正解率が9/9(100%)である場合、エラー数は0件となるが、3の法則によると、エラーが0件であったときのエラー率は0%ではなく、エラー数が3であったとみなすことでエラー率が信頼区間95%に含まれることが示されている。すなわち、エラー数3をデータ数9で割った1/3(約33.3%)が信頼区間95%で確からしいと言えるエラー率と言える。従って正解率は2/3(約66.7%)となる。このような計算によりデータが少ない場合に無用に信頼度が高まることを防止することができる。
【0107】
また、正解率を算出するにあたり、車種の推論など正解が唯一決定できる推論項目については結果の一致/不一致で正解率を割り出すことができるが、自動車の位置推論またはセグメンテーション結果のように、連続値として結果が得られる場合、その誤差を正解率として用いることができる。例えば、査定額であれば、推論結果が80万円で正解が100万円であれば信頼度は80%と算出することができ、自動車の位置であれば推論結果と正解の自動車のバウンディングボックスの両者の重なり度合に基づいて算出されるIoU(Intersection over Union)を用いることができる。
【0108】
信頼度判定結果720は、ルール型推論部131の推論の正確性、または、データ型推論部132の学習の進捗率等を把握するための情報として活用できる。また、判定者104は、信頼度を確認しながら推論結果の採用または棄却の判断ができる。さらには上述の通り、信頼度が一定以上の場合、入力データ105に対する推論結果が十分に信頼できるものとして、自動的にアノテーション情報を付与できる。また、最終的な推論結果である買取査定額が十分信頼できる場合、人手による修正を行わず、買取査定額を利用者に出力することによって、業務の自動化を実現できる。
【0109】
図8は、実施例1のサーバ100が判定者104に提示する画面の一例を示す図である。
【0110】
画面800は、推論結果判定部140の推論結果表示部142によって提示される。データ入力部143は、画面800を介して確認および修正の操作を受け付ける。画面800には、入力データ105および推論結果が整理して表示される。具体的には、画面800は、表示欄801、表示欄802、操作ボタン803、および操作ボタン804を含む。
【0111】
表示欄801は、入力データ105を表示する欄である。表示欄802は、推論結果を表示する欄である。表示欄802には、推論項目毎の推論結果および信頼度が表示される。表示欄802では、推論項目の種別等に基づいて、推論結果が整理して表示される。なお、サーバ100は、ルール型推論部131およびデータ型推論部132のどちらの推論結果であるかを内部的に区別できるため、どちらの推論結果であるかを表示してもよい。
【0112】
判定者104は、画面800を参照して推論結果を確認する。具体的には、判定者104は、表示欄801に表示される画像、センサデータ等を確認し、必要に応じて、他の情報経路から取得した情報を参考に、推論結果の評価を行う。
【0113】
判定者104は、推論結果の信頼度が低い場合(例えば、80%以下)、推論結果を修正する。また、判定者104は、信頼度の値にかかわらず、明らかに間違っている推論結果を修正する。具体的には、判定者104は、表示欄802に表示されるテーブルまたは画像を操作し、修正ボタンを押下することによって修正を行う。また、判定者104は、正解を判断できない推論項目については、判定困難フラグを付与する。
【0114】
なお、信頼度が低い推論項目について、判定者104が修正の必要ないと判断した場合、修正ボタンを押下することによって内容を確認したことになる。
【0115】
ここで、
図8における判定者104の操作について説明する。
【0116】
「概略推定」において、査定額の推論結果が「80.5万円」となっており、その信頼度は「60%」となっている。判定者104は、各種情報を総合的に考慮した結果、査定額が「90万円」と判断し、査定額を修正している。判定者104は、画像から寸法を正しく読み取れないため、寸法に対して判定困難フラグを付与している。左側の画像には、自動車の位置を示す点線のボックスが2つ表示されている。1つの点線のボックスは、自動車の実際の位置からずれており、もう1つの点線のボックスは、背景の家を示している。例えば、前者の点線ボックスはルール型推論部131によって推論された自動車の位置であり、後者の点線のボックスはデータ型推論部132によって推論された自動車の位置である。いずれの点線のボックスも実際の自動車の位置からずれているため、判定者104は、自動車の位置を示す実線のボックスを正解として入力する。
【0117】
「パーツ推定」において、左側の画像にはパーツのセグメンテーション結果が表示されている。ドアミラーの位置の推論結果の信頼度は38%と低く、画像中においても、ドアウインドウの部分が誤ってドアミラーとして検知されている。そこで、判定者104は、左側の画像におけるドアミラーの位置を修正している。セグメンテーションの結果は主にピクセル単位で正解を与えることが多いため、例えば、ペイントツールのような特定の領域を自由曲線で囲んでその内部領域をドアミラーと再定義するようなアノテーション機能を持たせることで、判定者104は修正作業が実施しやすくなる。タイヤ(前)およびフロントドアは、信頼度が高い推論結果であるため、データ入力部143は、修正を受け付けないように制御している。なお、修正を行えるようにしてもよい。
【0118】
「異常推定」において、左側の画像には「キズ1」および「凹み1」が推論結果として表示されている。判定者104は、左側の画像を確認することによって、「キズ1」の存在を目視できるため修正を行っていない。ただし、キズのサイズについては画像から判断できないため、キズのサイズに対して判定困難フラグを付与している。凹みについては、画像からは凹みの存在が確認できないため、凹みは「なし」に修正されている。
【0119】
判定者104は、推論結果に対する確認および修正を実施した後、操作ボタン804を押下することによって最終的な買取査定額が確定し、利用者103にフィードバックする。利用者103には、買取査定額とともに、その他の予め設定した補足情報がフィードバックされてもよい。
【0120】
データ入力部143は、操作ボタン804が押下された場合に、信頼度が低い推論結果について確認が実施されていない場合、警告を表示し、推論結果を確定しないようにしてもよい。すなわち、信頼度が低い推論結果については、確認および修正が求められる。これによって、信頼性が高い推論結果を学習データとして蓄積することができる。
【0121】
なお、最終結果である査定額については信頼度が十分高い場合、判定者104の確認を待たずに自動推論後に利用者にフィードバックしてもよい。そしてこの結果のフィードバックに並行して、判定者104によって修正されたデータが学習データとして学習部150の学習データ蓄積部151に蓄積される。
【0122】
本実施例では、推論結果を判定者104が確認、修正して、利用者103に結果をフィードバックする作業そのものが、学習データを生成における正解付けであるアノテーション作業になっており、迅速な判定結果のフィードバックと学習データの生成とを両立している。
【0123】
なお、部品ごとのセグメンテーションの修正は作業時間が長くなることが多いため、短時間で修正できる情報のみを修正して利用者103へのフィードバックを行い、セグメンテーションに関するアノテーション作業は後からバッチ処理で実施してもよい。これによって専門性の不要なアノテーション作業を後に別の人員が実施することができるようになり、判定者104の作業負荷を減らす効果が得られる。
【0124】
また、判定者104は、操作ボタン803を押下することで新しい推論項目を追加することができる。例えば、「異常推定」において傷の修理費を推論したい場合、操作ボタン803の押下し、推論項目の名称、推論タイプ、入力する画像や情報、および修理費の情報を設定情報として与える。この場合、学習データにそれらの情報が蓄積されるとともに、修理費を推論する推論モデルを用いるデータ型推論モジュール601がデータ型推論部132に追加される。なお、修理費を推論するために適した推論モデルは、前述の推論タイプの指定によって適切な推論モデルが自動的に選ばれる。例えば、推論タイプが「セグメンテーション」であればFCNが選ばれ、推論タイプが「3次元再構成」であればNeRF(Neural Radiance Fields)が選ばれる。また、項目を追加した直後の推論精度は低いが、後述の学習処理によって徐々に精度が向上する。
図6Bで示したように、追加された推論項目の推論結果は、最終結果である買取査定額の推論にも利用されるため、推論項目を追加し、かつその信頼度が向上すれば買取査定額の推論精度も向上する。
【0125】
図9は、実施例1の学習データ蓄積部151に格納される学習データの一例を示す図である。
【0126】
図8で説明したように、判定者104は、推論結果を確認し、必要に応じて修正し、操作ボタン804を押下する。判定結果処理部144は、入力データ105に推論結果をアノテーション情報として付与することによって、
図9に示すような学習データ900を生成し、学習部150に出力する。学習部150の学習データ蓄積部151は、学習データ900を格納する。
【0127】
図9に示す学習データ900は、判定者104による確認および修正が行われた推論結果の一部を示している。
【0128】
学習データ900には、データIDが付与され、利用者103から収集した単位で管理されている。学習データ900は、画像200-1、画像200-2、センサ情報201-1、センサ情報201-1、および付帯情報202を入力データ105として含む。画像200-1、画像200-2、センサ情報201-1、センサ情報201-1、および付帯情報202は、
図2A、
図2B、および
図2Cに示したものである。
【0129】
学習データ900は、概況推定の結果を推論結果1として含む。当該推論結果には、査定額および車種など、主に自動車の属性、機能、ステータス、性質などを示す推論項目の推論結果が含まれる。ここには推論項目ではないものが含まれる場合もあり、例えば、走行距離は推論項目ではないため信頼度は空欄の状態となっており、正解として利用者の入力した情報がそのまま入力されている。また、修正されずに確定した推論結果については、
図8の状態に比べて信頼度が10%上方修正されている。つまり、判定者104が正しいと判断した推論結果はより信頼度が高まったものとして管理される。
【0130】
後述の通り、信頼度の高い推論結果だけを学習に利用するため、判定者104が確認した推論結果であれば信頼度を上昇させることによって、効率的な学習を実施できる。なお、信頼度の修正の度合は任意に設定でき、例えば、判定者104が正しいと判断した推論結果は信頼度を100%としてもよい。ここでは、徐々に信頼度を上げることによって、何度も確認された推論結果の信頼度が向上するため、品質の高い学習データを用いた学習効率の高い学習を行うことができる効果がある。
【0131】
学習データ900は、パーツ推定および異常推定の結果を推論結果2および推論結果3として含む。各推論結果には、推論結果(正解)が関連付けられている画像が含まれる。例えば、自動車の位置の推論では、俯瞰した画像に対して自動車の位置を示すボックスが表示されており、その他の画像からは自動車位置が検出できなかったことを示す。検出できなかったものについては図示していないが、検出できないという正解が付与されてることになる(負の事例)。同様にパーツセグメンテーションの正解についてもそれぞれの画像に対するセグメンテーションの正解が付与されている。また異常検出についても同様に、全体を俯瞰した画像からはキズは検出できなかったため画像は含まれておらず、キズの位置およびサイズが正解として関連付けられた画像のみを含む。このとき、キズの大きさについては判定者104が正解を判断できなかったので、判定困難フラグが付与されている。判定困難フラグが付与された推論結果は正確性が保証できないため、学習には活用せず、また、信頼度を上昇させる制御は行われない。
【0132】
なお、
図9では、自動車位置の正解を画像として表現しているが、実際には自動車を内包するバウンディングボックスの座標情報でもよく、実際のデータ構造を必ずしも正確に表現しているものではない。各推論項目に適切なデータ構造でデータを保持することができる。
【0133】
図10は、実施例1のサーバ100が実行する学習処理の一例を説明するフローチャートである。
【0134】
本実施例では、データ型推論モジュール601が使用する推論モデルおよび補正モジュール502が使用する推論モデルの推論パラメータを更新するための学習処理が実行される。学習処理では、信頼度が高く、かつ、判定困難フラグが付与されていない推論結果(正解)が用いられる。学習処理では、実運用前に収集した学習データを用いた事前学習と、運用中に収集した入力データ105から生成された学習データを用いた逐次学習とが実行される。
【0135】
運用開始前の設計段階では入力データ105は存在しないため、まず、学習部150は、類似タスクで使用される画像等から生成された学習データの登録を受け付ける(ステップS1001)。
【0136】
例えば、本実施例のように自動車を対象とするタスクの場合、自動車の画像等は比較的容易に収集できるため、設計者は、外部の協力者に依頼して大量の画像を収集する。ヘリコプタ、潜水艦、半導体SEM画像等、一般的に収集が困難な画像の場合、設計者は、類似する画像を収集し、または、模型等を撮影することによって画像を収集する。設計者は、収集した画像に対してアノテーション作業を行うことによって学習データを生成し、サーバ100に登録する。
【0137】
学習部150の学習データ生成部152、学習データを生成する(ステップS1002)。
【0138】
具体的には、学習データ生成部152は、分析対象の3Dモデルおよびその背景画像を生成し、3Dシミュレータなどを活用し、3Dモデルを背景画像とともに3次元空間にマッピングして3DCGを生成する。一般的に広く知られているUnityなどを用いることで、例えば、撮影角度の変化による照明条件の変化も再現されるため、比較的リアルの画像に近く、かつ様々なアングルから撮影された画像を自動的に多数生成できる。画像に対するアノテーション作業は設計者によって行われる。
【0139】
学習部150のパラメータ更新部153は、学習データを用いてデータ型推論部132が使用する推論モデルの学習(初期学習)を実行する(ステップS1003)。パラメータ更新部153は、データ型推論部132の推論パラメータ格納部602に推論パラメータを出力する。
【0140】
なお、実運用データの取得が難しく、また、学習データが少ない場合、一般的に広く知られている少量データ学習である、転移学習またはFew-shot Learning等手法を用いて学習を行ってもよい。
【0141】
データ型推論部132が使用する推論モデルの学習では、学習データに含まれる入力データをデータ型推論モジュール601に入力して得られた出力と、学習データに含まれる正解との誤差を表すロス関数が最小化されるように、バックプロパゲーション等の手法を用いて推論モデルの推論パラメータが更新される。なお、推論モデルに合わせて適宜学習の手法を選択できる。
【0142】
学習部150の学習データ蓄積部151は、システムの運用開始後、学習データを蓄積する(ステップS1004)。
【0143】
なお、学習部150は、システムの運用中に学習データを自動生成してもよい。このときの学習データの自動生成は、上述のように3DCGを生成してもよいし、取得した画像に類似する画像を上述の3Dシミュレータで生成してもよいし、またGANなどの生成モデルを用いて取得した画像に類似する画像を生成してもよい。ただし、GANなどで学習データを生成する場合、上述の通り色の変化に伴って査定価格が変わるなど、正解が変化する可能性があるため、撮影条件を変化する程度に留めることが重要である。例えば、NeRFを用いて被写体の3次元形状を単一画像から推定して被写体の撮影角度を変えた画像を生成するなどが実施できる。
【0144】
学習部150は、蓄積された学習データの数がある閾値より大きいか否かを判定する(ステップS1005)。
【0145】
蓄積された学習データの数が閾値以下の場合、学習部150はステップS1004に戻る。
【0146】
蓄積された学習データの数が閾値より大きい場合、学習部150のパラメータ更新部153は、ルール型推論部131およびデータ型推論部132が使用する推論モデルの学習(逐次学習)を実行する(ステップS1006)。パラメータ更新部153は、データ型推論部132の推論パラメータ格納部602およびルール型推論部131の推論パラメータ格納部503に推論パラメータを出力する。
【0147】
学習方法は、ステップS1003と同一である。ただし、当該学習では、新たに蓄積または生成された学習データも用いられる点が異なる。学習では、学習データに含まれる正解のうち、信頼度が一定値より低い正解および判定困難フラグが付与された正解は使用されない。追加された学習データを含む学習データに対する推論の正解率が高くなるように推論パラメータが更新される。
【0148】
ルール型推論部131に含まれる補正モジュール502については、特に学習データ数が少ない場合は学習が不安定となり、補正によって推論結果が改悪される可能性もあるため、できるだけ改悪とならないよう学習を行う。その一実施例としては、初期学習では入力と出力とが一致するように学習し、逐次学習では、蓄積された学習データに対する推論を行った結果、補正前の信頼度の平均値の方が補正後よりも高くなる場合は学習結果を棄却してパラメータを元に戻す方法がある。これによって、改悪の可能性がある学習結果の反映を行わないようにでき、結果が改悪されることを防止しながら学習を進めることができるようになる。
【0149】
システム運用中は、ステップS1004からステップS1006の処理が繰り返し実行される。サーバ100は、システム運用を終了するか否かを判定する(ステップS1007)。
【0150】
システム運用を継続する場合、サーバ100はステップS1004に戻る。システム運用を修了する場合、サーバ100は学習処理を終了する。
【0151】
本発明は、自動車の買取査定のユースケースに限らず、上述の課題を含む他のユースケースについても適用できる。例えば、製造ラインにおける検品、製造設備の点検保守、自動車の物損事故に対する保険料の見積もり、ならびに、飛行機および人工衛星等の保守点検等に関する推論を行うシステムにも応用できる。
【0152】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0153】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、およびそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0154】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラムまたはスクリプト言語で実装できる。
【0155】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0156】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。