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

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

▶ エヌ・ティ・ティ・コムウェア株式会社の特許一覧

特開2022-172625情報処理装置、情報処理方法、およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022172625
(43)【公開日】2022-11-17
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221110BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021078610
(22)【出願日】2021-05-06
(71)【出願人】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(72)【発明者】
【氏名】泉 裕貴
(72)【発明者】
【氏名】赤井 和幸
(72)【発明者】
【氏名】丸山 俊昭
(72)【発明者】
【氏名】日野 直樹
(72)【発明者】
【氏名】井藤 雅稔
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096HA09
5L096HA11
5L096JA03
5L096JA11
(57)【要約】
【課題】複数の機械学習モデルを用いた検出を簡単な操作で利用すること。
【解決手段】本発明の一態様は、利用者の操作を受け付ける受付部と、前記受付部により受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部と、前記設定部により設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させる実行部と、を備える、情報処理装置である。
【選択図】図12
【特許請求の範囲】
【請求項1】
利用者の操作を受け付ける受付部と、
前記受付部により受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部と、
前記設定部により設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させる実行部と、
を備える、情報処理装置。
【請求項2】
前記複数の機械学習モデルはクラス名に対応し、
前記設定部は、前記受付部により指定されたクラス名に基づいて複数の機械学習モデルを特定する、
請求項1に記載の情報処理装置。
【請求項3】
前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの組み合わせにおける処理順序を設定し、
前記実行部は、前記設定部により設定された処理順序に基づいて、前記複数の機械学習モデルに検出処理を実行させる、
請求項1または2に記載の情報処理装置。
【請求項4】
前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの出力結果に基づく結果生成処理を設定し、
前記実行部は、前記設定部により設定された結果生成処理を実行する、
請求項1から3のうち何れか1項に記載の情報処理装置。
【請求項5】
前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの出力結果を処理する後処理を設定し、
前記実行部は、前記設定部により設定された後処理を実行する、
請求項1から4のうち何れか1項に記載の情報処理装置。
【請求項6】
前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルに入力する情報を処理する前処理を設定し、
前記実行部は、前記設定部により設定された前処理を実行し、前記前処理の結果を前記複数の機械学習モデルの入力とする、
請求項1から5のうち何れか1項に記載の情報処理装置。
【請求項7】
前記設定部は、前記受付部により受け付けられた操作に基づいて前記機械学習モデルの組み合わせ、前記機械学習モデルの間の演算、および処理順序を表す式情報を設定し、
前記実行部は、前記式情報に基づいて前記機械学習モデルの処理結果を結合する、
請求項1から6のうち何れか1項に記載の情報処理装置。
【請求項8】
利用者の操作を受け付けるステップと、
受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定するステップと、
設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させるステップと、
を備える、情報処理方法。
【請求項9】
コンピュータに、
利用者の操作を受け付けるステップと、
受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定するステップと、
設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させるステップと、
を含む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
AI(Artificial Intelligence)やDL(Deep Learning(深層学習))技術の進化、OSS(Open Source Software)化、GPU(Graphics Processing Unit)を利用したクラウドなどの整備などを背景として、画像をはじめとした検出技術は急速に普及しつつある。また、点群データを取り扱う機器の普及が進み、点群データは、デジタルツイン技術や自動運転技術などの分野で活用されつつある。
【0003】
さらに、従来より、例えばDL技術を用いて設備等の不具合を管理するシステムが知られている。例えば、特許文献1には、建造物等の面の状態を網羅的に判定するために、面を撮像した画像について、当該面の状態を示す教示データに基づいて、深層学習を行う学習部と、面を含む領域が撮像された画像であって、撮像された位置を示す位置情報と対応付けられた画像を取得する画像取得部と、学習部の学習結果に基づいて、画像取得部が取得した画像中の面の状態を判定する状態判定部と、を備える情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-140334号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した情報処理装置のようにカメラを用いて建造物等を検出することが行われているが、分野や用途に特化した画像処理や深層学習エンジンが組み込まれているため、深層学習エンジンのチューニング等を行うためには専門的知識を持つ技術者が必要である。このため、当該情報処理装置を利用するユーザが深層学習エンジンのチューニング等の設定変更を行うことは困難である。
【0006】
また、DL技術の普及によりDL技術を多くの場面で使用する場合には深層学習エンジンを持つシステムをアンサンブルして利用することがある。この場合でも、深層学習エンジンによって出力形式や出力内容が異なるため、各システムを個別にチューニング等を行ってシステムを構築する必要がある。特に、複数の深層学習エンジン間で出力内容が異なる場合には一つのシステムを汎用的に設計することは不可能であり、各深層学習エンジンのチューニング、深層学習エンジンの変更、または出力結果の組み替えなどを行いたい場合、その都度にシステムの全体を変更する必要がある。
【0007】
本発明は、上記の課題に鑑みてなされたものであって、複数の機械学習モデルを用いた検出を簡単な操作で利用することできる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
(1)本発明の一態様は、利用者の操作を受け付ける受付部と、前記受付部により受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部と、前記設定部により設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させる実行部と、を備える、情報処理装置である。
【0009】
(2)本発明の一態様は、上記の情報処理装置であって、前記複数の機械学習モデルはクラス名に対応し、前記設定部は、前記受付部により指定されたクラス名に基づいて複数の機械学習モデルを特定であってよい。
【0010】
(3)本発明の一態様は、上記の情報処理装置であって、前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの組み合わせにおける処理順序を設定し、前記実行部は、前記設定部により設定された処理順序に基づいて、前記複数の機械学習モデルに検出処理を実行させてよい。
【0011】
(4)本発明の一態様は、上記の情報処理装置であって、前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの出力結果に基づく結果生成処理を設定し、前記実行部は、前記設定部により設定された結果生成処理を実行してよい。
【0012】
(5)本発明の一態様は、上記の情報処理装置であって、前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルの出力結果を処理する後処理を設定し、前記実行部は、前記設定部により設定された後処理を実行してよい。
【0013】
(6)本発明の一態様は、上記の情報処理装置であって、前記設定部は、前記受付部により受け付けられた操作に基づいて、前記複数の機械学習モデルに入力する情報を処理する前処理を設定し、前記実行部は、前記設定部により設定された前処理を実行し、前記前処理の結果を前記複数の機械学習モデルの入力としてよい。
【0014】
(7)本発明の一態様は、上記の情報処理装置であって、前記設定部は、前記受付部により受け付けられた操作に基づいて前記機械学習モデルの組み合わせ、前記機械学習モデル間の演算、および処理順序を表す式情報を設定し、前記実行部は、前記式情報に基づいて前記機械学習モデルの処理結果を結合してよい。
【0015】
(8)本発明の一態様は、利用者の操作を受け付けるステップと、受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定するステップと、設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させるステップと、を備える、情報処理方法である。
【0016】
(9)本発明の一態様は、コンピュータに、利用者の操作を受け付けるステップと、受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定するステップと、設定された組み合わせに基づいて、前記複数の機械学習モデルに検出処理を実行させるステップと、を含む処理を実行させるプログラムである。
【発明の効果】
【0017】
本発明の一態様によれば、複数の機械学習モデルを用いた検出を簡単な操作で利用することできる。
【図面の簡単な説明】
【0018】
図1】第1の実施形態の物体検出システム1の一構成例を示すブロック図である。
図2】アセットおよびデータの構成の一例を示す図である。
図3】可視化部により表示する画面の一例を示す図である。
図4】可視化部により表示する画面の他の一例を示す図である。
図5】学習設定部によるアノテーション設定画面の一例を示す図である。
図6】学習設定部による学習設定画面の一例を示す図である。
図7】学習設定部によるパラメータ設定画面の一例を示す図である。
図8】アノテーション管理部による教師データのマージおよびクラスのマージの設定画面の一例を示す図である。
図9】検出設定部による画像およびパラメータの設定画面の一例を示す図である。
図10】移動経路の設定画面の一例を示す図である。
図11】タスク管理において設定するタスクの一例を示す図である。
図12】タスク管理において設定するロボット用のタスクの一例を示す図である。
図13】第2の実施形態における情報処理装置の一例を示すブロック図である。
図14】情報処理装置における処理単位を説明するためのブロック図である。
図15】前処理部の動作の一例を説明するための図である。
図16】前処理部の動作の他の一例を説明するための図である。
図17】第2の実施形態における情報処理装置のシーケンスの一例を示す図である。
図18】式情報を生成する際にユーザ端末装置700に表示させる画面の一例を示す図である。
図19】分類型の機械学習モデルの入力データおよび出力データの一例を示す図である。
図20】検出型の機械学習モデルの入力データおよび出力データの一例を示す図である。
図21】セグメンテーション型の機械学習モデルの入力データおよび出力データの一例を示す図である。
図22】機械学習モデルの組み合わせおよび結合用の記号に対する、結合部650の処理および出力クラスの一例を示す図である。
図23】機械学習モデルの組み合わせごとの使用例を示す図である。
図24】AND処理の一例を示す図である。
図25】OR処理の一例を示す図である。
図26】DIV処理の一例を示す図である。
図27】NOT処理の一例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【0020】
<第1の実施形態>
[第1の実施形態の概要]
第1の実施形態の物体検出システム1は、AI技術を用いて対象物を検出、領域を検出、または対象物を分類した結果を提供する。利用者は、例えば、AI技術を利用するための機械学習モデルを組み入れた物体検出システム1を購入する。物体検出システム1は、利用者の操作に基づいて機械学習モデルへの学習設定および検出設定を行い、設定した学習設定および検出設定に基づいて構築した機械学習モデルを用いた学習および検出を実行する。利用者が機械学習モデルの設定や管理を行うために、物体検出システム1は、利用者の操作を受け付け、各種の情報を可視化する。これにより、物体検出システム1は、利用者が当該物体検出システム1を導入することで、設備など検出対象物の管理についてコンピュータ及びデータサイエンス等の専門知識がなくても、ユーザが主体的に、機械学習モデルへの学習設定および検出設定から機械学習モデルを用いた学習および検出までを一貫して実施させることができる。さらに、物体検出システム1は、機械学習モデルへの学習設定および検出設定から機械学習モデルを用いた学習および検出のみならず、機械学習モデルの運行管理、機械学習モデルへのデータ投入、検出対象画像の機械学習モデルの作成から検出、可視化までを一貫して実施させることができる。
【0021】
[物体検出システム1の構成]
図1は、第1の実施形態の物体検出システム1の一構成例を示すブロック図である。物体検出システム1は、例えば、Webサーバ部100と、ユーザ端末装置200と、ロボット操作部202と、AI実行部300と、データ管理部400と、データベース402と、システム設定部500とを備える。Webサーバ部100、ユーザ端末装置200、ロボット操作部202、AI実行部300、データ管理部400、データベース402、およびシステム設定部500は、通信ネットワークに接続される。通信ネットワークに接続される各装置は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェースを備えている(図1では不図示)。通信ネットワークは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、セルラー網などを含む。
【0022】
ユーザ端末装置200は、例えばパーソナルコンピュータや、スマートフォンやタブレット端末などの表示デバイスや操作デバイスを有する機器である。ユーザ端末装置200は、例えば物体検出システム1のユーザの操作に基づく情報等をWebサーバ部100に送信し、Webサーバ部100から物体検出システム1のユーザに提示する表示情報等を取得する。
【0023】
ロボット操作部202は、ロボット210を動作させるための操作情報を生成する操作デバイスである。ロボット操作部202は、例えばユーザ端末装置200と一体であってもよい。ロボット210は、カメラ装置および移動機構を備え、自律的に撮影および移動する装置である。ロボット操作部202は、ロボットの移動経路、移動期間および移動速度などを設定してもよい。ロボット操作部202により生成された操作情報は、Webサーバ部100を介してロボット210に供給されるが、ロボット操作部202から直接にロボット210に供給されてもよい。なお、本実施形態ではロボット210を備えるが、これに限定されず、さらには、機械学習モデルの学習および検出のための画像を取得する他の手段があればロボット210を備えていなくてよい。機械学習モデルの学習および検出のための画像を取得する他の手段は、例えばドローンの自動操縦システム等であってよく、物体検出システム1によりドローンの経路等を設定しなくても、物体検出システム1は、自動操縦システムと連携して、ドローンにより撮像した画像を取得してよい。
【0024】
データ管理部400は、例えば汎用のデータベース管理装置であり、データベース402に登録したデータを管理する。データベース402は、例えば、SAN(Storage Area Network)やNAS(Network Attached Storage)や、クラウドを利用したストレージサービス等により実現されてよい。データ管理部400は、データとして、アセットとファイルという2種類のデータを処理対象とする。アセットは、物体検出システム1を管理するためのデータである。ファイルは、物体検出システム1における学習および検出に用いる実ファイルである。実ファイルは、例えば、画像、点群データ、機械学習モデルのチューニングパラメータなどのデータを格納し、ファイルは、例えば、画像、点群データ、チューニングパラメータなどのデータ、学習によって作られたモデルファイル、設定用パラメータなどを格納する。アセットは、例えば、自身のアセットID、親アセットID(複数設定可能、ルートアセットは省略可能、その他は設定必要)、管理用メタデータ(key-value)、および、アセット種別などを含むデータ構造を持つ。ファイルは、例えば、実ファイルのデータ(設定パラメータ等のデータも含む)、自身のファイルID、ファイルが紐づいているアセットID(これも便宜上親アセットとよぶ)、管理用メタデータ(key-value)、および、ファイル種別、位置情報、カメラ撮影向き情報、不具合クラスなどを含むデータ構造を持つ。
【0025】
データ管理部400は、通信インターフェースを介して取得した情報に基づいて、アセットの登録、削除、およびアップデート、アセットIDをキーとした子アセットおよび親アセットの検索などを行う。データ管理部400は、例えば通信インターフェースを介して取得した情報に基づいて、ファイルの登録、削除およびアップデート、ファイルIDをキーとした親アセットの検索、アセットIDをキーとしたファイルの検索、管理用メタデータについてキー-バリュー(key-value)で一致するアセットもしくはファイルの一覧の取得を行う。ファイルとアセットとのそれぞれにアクセス管理用ID(データセットID)を設定し、データ管理部400は、アクセス管理用ID(データセットID)を用いてアセット単位およびファイル単位でアクセス制限を可能にしてよい。
【0026】
図2は、アセットおよびデータの構成の一例を示す図である。データベース402には、ルートに対してロケーションID、建造物、建造物部分、日付の順で階層が設定され、日付に対応して複数の画像データが登録される。また、データベース402には、ルートに対してロケーションID、樹木、日付の順で階層が設定され、日付に対応して複数の画像データが登録される。なお、アセットの階層に制限およびルールは設けなくてもよく、ファイル(画像データ)は最下位層の子アセットに紐づける必要はない。さらに、1つのファイルが複数の親アセットを持つことを許容してよい。例えば、建造物のアセットを選択したことにより建造物部分に対応した点群データを表示し、日付「y2/m2/d2」が選択された場合には日付「y2/m2/d2」に対応した点群データを表示するように切り換えてよい。
【0027】
AI実行部300は、AI技術を利用した処理を担う機器であり、GPUサーバを含んで構成されてよい。実施形態において、AI技術を利用した処理は、機械学習モデルに対する学習処理、および機械学習モデルを用いた検出処理である。なお、検出処理は、認識処理や、分類処理や、判定処理と言い換えてよい。AI実行部300は、例えば、学習部310と、検出部320とを備える。学習部310および検出部320といった機能部は、例えばCPU(Central Processing Unit)等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。プログラムは、例えば、AI実行部300のHDDやフラッシュメモリなどの記憶装置に記憶される。これらの機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0028】
学習部310は、対象物の不具合等を検出する機械学習モデルを構築する。機械学習モデルは、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)であるが、これに限定されず、既知の機械学習モデルであればよい。機械学習モデルは、例えば、Mask R-CNN、YOLO、SSD、DeepLabなどと称されるものがある。検出部320は、機械学習モデルを用いた演算を行って対象物の不具合等を検出する。AI実行部300における機械学習モデルは、物体検出型、分類型、領域検出型の何れであってよい。物体検出型の機械学習モデルは、例えば、対象物としての建造物損傷等の不具合が発生している位置を検出する。分類型の機械学習モデルは、例えば、予め複数の分類を設定しておき、対象物がどの分類に属するかを判定する。領域検出型の機械学習モデルは、例えば、不具合が発生していると推測される領域を可視化したり、不具合が発生している割合(数値)を出力する。学習部310は、教師データを取得し、教師データを機械学習モデルに入力し、適切な出力となるように機械学習モデルにおけるパラメータを更新し、更新したパラメータを学習結果として記憶する。検出部320は、対象物の画像データを機械学習モデルに入力し、機械学習モデルの出力に基づいて対象物の不具合等を検出する。
【0029】
AI実行部300は、例えばデータベース402に登録されたタスク、およびタスクに紐づく親アセット(=タスクアセット)を確認する。AI実行部300は、タスクがある場合に、機械学習モデルの学習および/または検出を実行し、学習結果および/または検出結果をデータベース402に登録する。AI実行部300は、機械学習モデルの学習および/または検出において、1つのGPUサーバに1つのタスクアセットを紐づけてもよいし、1つのGPUサーバに複数のタスクアセットを紐づけてもよい。また、AI実行部300は、複数の機械学習モデルのうちタスクに登録された機械学習モデルについて学習および/または検出を行う。さらに、AI実行部300は、機械学習モデルによる検出において、タスクに対応付けて後述する式情報が登録されている場合、式情報に従って複数の機械学習モデルを用いて検出処理を実行させる。さらに、AI実行部300は、1つの機械学習モデルを複数回用いて検出処理を実行してよい。例えば、AI実行部300は、ある機械学習モデルAによりクラスaの検出処理およびクラスbの検出処理を実行し、クラスaおよびクラスbの同じ出力にしてよく、機械学習モデルAによりクラスaの検出処理の結果、クラスaの確信度の違いによって出力を分けてよい。
【0030】
システム設定部500は、物体検出システム1を利用するユーザの設定などを行う機器である。システム設定部500は、例えば、ユーザ情報の作成および変更、物体検出システム1における機能ごとのアクセス制限等の設定、学習部310や検出部320が利用するサーバの設定などを行い、ユーザ情報や設定情報を図示しないデータベースに登録する。システム設定部500は、AI実行部300のタスクが予定されていない期間においてサーバを一時的に停止させてもよい。システム設定部500は、サーバを一時的に停止させることで、例えば、AI実行部300により時間単位で課金が発生するサーバを用いる場合などにおいて不必要な課金を抑制することができる。
【0031】
Webサーバ部100は、物体検出システム1における各部を制御するサーバ装置である。Webサーバ部100は、例えば、ユーザインターフェース部110と、データ投入部120と、学習設定部130と、検出設定部140と、経路設定部150と、タスク管理部160と、管理部170と、アンサンブル設定部180とを備える。ユーザインターフェース部110は、例えば、操作受付部112と可視化部114とを備える。ユーザインターフェース部110、データ投入部120と、学習設定部130と、検出設定部140と、経路設定部150と、タスク管理部160と、管理部170と、アンサンブル設定部180といった機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。プログラムは、例えば、予めWebサーバ部100のHDDやフラッシュメモリなどの記憶装置に格納される。
【0032】
操作受付部112は、ユーザ端末装置200からの情報に基づいてユーザの操作を受け付ける。可視化部114は、ユーザに提示するための情報を可視化するための処理を行う。
【0033】
可視化部114は、可視化部114は、例えばユーザの操作や、学習や検出の設定のための情報や、学習結果や検出結果を提示するための情報に基づいて、アセットやファイルを表示する。具体的に、可視化部114は、ロボット操作部202から供給された撮影画像、撮影動画、AI実行部300による検出結果(例えば不具合などを検出した画像)、データベース402に登録された点群データやCADモデル等を表示する。可視化部114は、アセットやファイルに位置情報が対応付けられている場合、位置情報に紐付けてアセットやファイルを表示する。位置情報は、例えば、緯度経度情報や高度情報、基準点からXYZ方向だけ離れたことを示す相対座標情報である。物体検出システム1は、位置情報として相対位置情報を保持する場合、基準位置とGPS情報とを紐付ける情報を保持し、当該紐付ける情報に基づいて相対座標とGPS情報を変換することができる。
【0034】
可視化部114は、アセットやファイルが選択された場合に、例えば、アセットやファイルの詳細を表示する処理や、点群や地図の表示位置の切り替え、撮影位置の表示と非表示との切り替え等を行ってよい。また、可視化部114は、点群または地図上の撮影位置が指定された場合に、指定された点群または撮影位置に関連する画像等(撮影画像、不具合検出画像など)を表示してよい。さらに、可視化部114は、元画像とAI実行部300による判定画像を並べて表示し、ユーザの操作に基づいて元画像と判定画像のそれぞれを拡大して表示してよい。さらに、可視化部114は、AI実行部300により不具合が検出されたクラスなどのフィルターを設定することで、アセットやファイルの絞り込みを行ってよく、ユーザの操作に基づいて指定した不具合のみが検出されている撮影位置を地図もしくは点群上に描画してよい。
【0035】
図3は、可視化部により表示する画面の一例を示す図である。可視化部114は、例えば、3Dビューアを用いて点群データ、CAD画像や撮像画像を表示させた状態で、当該点群データまたは画像に関する日付情報等や、レイヤ情報や、アセット情報を可視化する。レイヤ情報は、例えば、3Dビューアにおいて重畳されている画像が、点群データおよびCADモデルであることを示す。これにより、ユーザは、可視化されている点群データ等を教師データとして設定することや、検出対象として設定することを判断することができる。
【0036】
図4は、可視化部により表示する画面の他の一例を示す図である。可視化部114は、例えば、3Dビューアに表示させる点群データとして、アセットおよびデータの階層を表示することができる。可視化部114は、例えば、対象物「朱雀門」の下位層に朱雀門屋根および朱雀門建物部や、複数の街路樹のアセットが登録されていることをユーザに提示し、ユーザにより、当該登録されたアセットに点群データや画像の追加や削除を設定することを判断させることができる。
【0037】
データ投入部120は、例えば、学習時に既にデータベース402に登録された画像データを取得して学習部310に投入する。また、データ投入部120は、例えば、検出時に、ロボット210により撮像された画像データを取得して検出部320に投入する。
【0038】
学習設定部130は、操作受付部112により受け付けた操作に基づいて、対象物を検出するための機械学習モデルに対する学習処理を設定する。学習設定部130は、例えば、学習対象の機械学習モデル、当該機械学習モデルにおいてチューニングの対象となるパラメータ、および当該機械学習モデルに投入する画像などの学習処理に必要な情報を設定する。学習設定部130は、例えば、ロボット210により撮影した画像やデータベース402に登録させた画像を可視化部114により表示させ、ユーザの操作により指定された画像を教師データとして指定する。また、学習設定部130は、ユーザの操作に基づいて、教師データに対して画像を追加または削除させることもできる。
【0039】
さらに、学習設定部130は、パラメータチューニング済の機械学習モデルのテンプレートを用意しておき、当該機械学習モデルを用いて学習および検出させてもよい。チューニングには、例えば、教師データの画像セット、アノテーションのサイズ、画像サイズなどから自動で算出可能な画像であってよい。さらに、学習設定部130は、学習に用いた機械学習モデルの削除などを行ってよい。
【0040】
さらに、学習設定部130は、ユーザの操作に基づいて機械学習モデルの学習処理に用いられる教師データに対する属性の追加および変更を行い、ユーザの操作に基づいて属性を統合するアノテーション管理部132を備える。図5は、学習設定部によるアノテーション設定画面の一例を示す図である。アノテーション管理部132は、教師データを設定する場合に、画像を表示させ、当該画像に含まれる樹木における枯損箇所を選択させることにより、当該枯損の属性を付加した教師データを設定することができる。図6は、学習設定部による学習設定画面の一例を示す図である。アノテーション管理部132は、例えば、剪定痕の属性が付加された画像を表示し、当該画像に、学習設定パターン1、機械学習モデル、および機械学習モデルにおけるパラメータを設定することができる。図7は、学習設定部によるパラメータ設定画面の一例を示す図である。アノテーション管理部132は、ユーザの操作に基づいて、樹木の腐朽菌を検出するために、機械学習モデルとして領域検出型を設定し、さらに、エポック(epoch)数、イテレーション数、バッチサイズ、アンカーサイズ、アンカースケール、イメージサイズ、リサイズモード、データ拡張(アノテーションデータの増加)などの機械学習におけるパラメータを設定することができる。これらの機械学習におけるパラメータは、当該機械学習におけるパラメータごとにテンプレートとしての数値などを用意しておき、ユーザにテンプレートから所望の数値を選択させることにより機械学習におけるパラメータを個別に設定しなくても機械学習モデルの学習処理をチューニングすることができることが望ましい。
【0041】
図8は、アノテーション管理部による教師データのマージおよびクラスのマージの設定画面の一例を示す図である。アノテーション管理部132は、アノテーションのコピーやバックアップ、複数のアノテーションのマージ機能を持つ。アノテーションのマージ機能は、例えば、別々のアノテーションデータを一つのアノテーションデータに統合(マージ)してよく、もしくは、同一のアノテーションデータで定義された別名のクラスを同じクラス名に統合(マージ)することができる。これにより、複数人でアノテーションデータの設定、追加や削除等を分担して作業をした上でアノテーションデータを結合する作業や、最初に細かくクラス分けして学習したものの推定精度を向上しない場合にアノテーションデータのクラスを結合して再学習するといった作業を効率化することが可能となる。アノテーション管理部は、例えば、複数のユーザそれぞれで別々にアノテーション作業した後、アノテーションデータをマージすることや、細かく分類したクラスについて指定したクラス同士を同一クラスに統合し、これにより学習部で統合したクラスとして学習処理を実行させることができる。アノテーション管理部は、例えば、アノテーション作業に基づいてキノコAとキノコBを別々のクラスとしてアノテーションしたが、学習処理時には、どちらもキノコとして統合したクラスとして学習させることができる。さらに、アノテーション管理部は、あるアノテーションデータを設定したところ高い精度で検出した場合に当該アノテーションデータをバックアップしておき、追加でアノテーションデータを再設定してもバックアップしたアノテーションデータを利用することができる。
【0042】
検出設定部140は、操作受付部112により受け付けた操作に基づいて、対象物を検出する処理を設定する。検出設定部140は、撮影した画像や可視化部114により表示している画像などについて、学習部310により作成した機械学習モデルを用いて、検出部320により不具合などの画像の検出を実施させる。検出設定部140は、例えば、検出部320により検出された画像を、検出元画像(教師データ)と関連づけしてデータベース402に保存させ、可視化部114により表示させるといった一連の処理を設定することができる。検出設定部140は、検出元画像に位置情報が付加されている場合、検出画像についても同様に位置情報を付与するよう設定してよい。さらに、検出設定部140は、検出部320の処理結果のうち、一部の画像を削除することを設定してもよい。
【0043】
図9は、検出設定部による画像およびパラメータの設定画面の一例を示す図である。検出設定部140は、検出処理を設定する場合、可視化部114により図9に示す設定画面を表示させる。検出設定部140は、例えば、朱雀門屋根の属性が付加された画像を選択し、機械学習モデルを設定することができる。検出設定部140は、機械学習モデルの検出型、検出結果の信頼度、クラス名を設定してよい。検出設定部140は、パラメータが指定された状態で検出開始ボタンが選択されたことにより、検出部320に検出処理を実行させる。
【0044】
なお、検出設定部140は、1つの検出対象の画像に対して複数の機械学習モデルを用いて検出部320により検出を実行させてよい。この場合、検出設定部140は、例えば、ユーザの操作に基づいてモデル追加ボタンを選択させることにより、複数の機械学習モデルの組み合わせ、当該組み合わせにおける処理順序などを設定することができる。
【0045】
経路設定部150は、地上走行用のロボット210やドローン(不図示)における移動経路を設定する。図10は、移動経路の設定画面の一例を示す図である。経路設定部150は、図10に示すような地図画面を表示させ、地図に対するユーザの操作に基づいて経路を設定する。経路設定部150は、ユーザの操作に基づいてロボット210が移動するエリア、ロボットID、撮影実行/停止などの動作モード、移動速度、撮影ポイント、などのカメラ設定を設定させる。経路設定部150は、静止画を撮像する場合における撮影インターバルをカメラ設定として設定させてよい。経路設定部150は、経路設定に関する情報をデータベース402に登録する。これにより、データベース402に登録された経路設定に関する情報は、ロボット操作部202により取得可能になる。経路設定部150は、走行開始ボタンが選択されたことに応じてロボット210を動作させることができる。
【0046】
タスク管理部160は、機械学習モデルの学習処理および検出処理といったタスクを管理する。図11は、タスク管理において設定するタスクの一例を示す図である。タスク管理部160は、例えば、タスクごとに、優先度、開始時間、終了時間、機械学習モデルのタイプ、機械学習モデルID、クラスID、検出結果、タスクのステータスを登録する。図12は、タスク管理において設定するロボット用のタスクの一例を示す図である。タスク管理部160は、例えば、タスクごとに、優先度、開始時間、終了時間、経路のパラメータ、経路ID、タスクのステータスを登録する。経路のパラメータは、例えば、エリア、ロボットID、ロボット210の動作モード、移動速度、ロボット210に付属もしくはロボット210かネットワークに接続されているカメラ制御の設定、例えば撮影のインターバルやズーム倍率などなどの情報を含む。
【0047】
タスク管理部160は、例えば、登録されたタスクの開始時間が到来した場合に、当該タスクに対応付けられて登録された機械学習モデルにより処理を実行させることにより、処理結果およびステータスを更新する。また、タスク管理部160は、ユーザの操作に応じて実行順序の入れ替えやタスクの削除を行ってよい。さらに、タスク管理部160は、タスクの中断や再開を行ってよい。例えば、タスク管理部160は、システム設定部500と連携し、中断されたタスクおよび未処理のタスクがない場合、機械学習モデルを動作させるための機器を自動的に停止させてよく、タスクが追加された場合に、当該機械学習モデルを動作させるための機器を自動的に開始させてよい。
【0048】
管理部170は、例えばユーザの操作に基づいて物体検出システム1を利用するユーザの設定などを行う機能を持つ。また、管理部170は、例えば、アセットに対するアクセス制限等の設定や変更、アセットに対するアクセス状況の取得および表示、可視化処理におけるデータの修正などを行う。
【0049】
アンサンブル設定部180は、ユーザの操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部の一例である。出力形式は、例えば、検出型の出力、分類型の出力、領域検出型の出力などである。なお、アンサンブル設定部180については第2の実施形態において説明する。
【0050】
<第1の実施形態の効果>
以上説明したように、実施形態の物体検出システム1によれば、利用者の操作を受け付ける操作受付部112と、利用者に情報を提示する可視化部114と、対象物の位置情報を含む画像データおよび点群データを管理するデータ管理部400と、操作受付部112により受け付けた操作に基づいて、対象物を検出するための機械学習モデルに対する学習処理を設定する学習設定部130と、画像データおよび点群データを用いて学習設定部130により設定された機械学習モデルの学習処理を実行し、可視化部114により学習処理結果を可視化させる学習部310と、操作受付部112により受け付けた操作に基づいて、学習部310により学習された機械学習モデルによる検出処理を設定する検出設定部140と、画像データおよび点群データを用いて検出設定部140により設定された検出処理を実行し、可視化部114により検出処理結果を可視化させる検出部320と、を備える、物体検出装置を実現することができる。
【0051】
実施形態の物体検出システム1によれば、機械学習モデルとして、対象物の不具合の有無を検出する検出型の機械学習モデル、対象物を分類する分類型の機械学習モデル、対象物における不具合領域を判定するセグメンテーション型の機械学習モデルの少なくとも一つを利用して、利用者が一貫して管理することができる物体検出装置を実現することができる。
【0052】
実施形態の物体検出システム1によれば、学習設定部130により検出型の機械学習モデル、分類型の機械学習モデル、およびセグメンテーション型の機械学習モデルのそれぞれについて学習処理を設定し、学習部310により、機械学習モデルのそれぞれについて設定された学習処理に基づいて、検出型の機械学習モデル、分類型の機械学習モデル、およびセグメンテーション型の機械学習モデルのそれぞれの学習処理を実行し、検出設定部140により、検出型の機械学習モデル、分類型の機械学習モデル、およびセグメンテーション型の機械学習モデルうち一つについて検出処理を設定し、検出部320により、検出設定部140により設定された一つの機械学習モデルを用いて検出処理を実行する。これにより、物体検出システム1によれば、3種類の機械学習モデルを利用者が一貫して管理して対象物の不具合などを検出することができる。
【0053】
実施形態の物体検出システム1によれば、操作受付部112により受け付けた操作に基づいてロボット210の経路を設定する経路設定部150を更に備え、データ管理部400により、ロボット210から対象物の位置情報を含む画像データおよび点群データを取得することができる。これにより、物体検出システム1によれば、ロボット210の経路についても利用者が一貫して管理することができる。
【0054】
実施形態の物体検出システム1によれば、操作受付部112により受け付けた操作に基づいて、ロボット210のタスク、学習設定部130のタスク、学習部310のタスク、検出設定部140のタスク、および検出部320部のタスクを管理するタスク管理部160を備えるので、これらのタスクを利用者が一貫して管理することができる。
【0055】
<第2の実施形態>
つぎに、第2の実施形態について説明する。第2の実施形態に係る情報処理装置は、例えば、利用者の操作を受け付ける受付部と、受付部により受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部と、設定部により設定された組み合わせに基づいて、複数の機械学習モデルに検出処理を実行させる実行部と、を備える。情報処理装置は、第1の実施形態におけるアンサンブル設定部180に適用されてよいが、これに限定されず、複数の機械学習モデルを利用して情報処理を行うシステムであれば適用可能である。
【0056】
第2の実施形態において、複数の機械学習エンジンの組み合わせおよび処理順序を、式情報により表現する。式情報は、ユーザの操作に基づいて作成される。実施形態において、式情報における機械学習モデルをA,B,C,・・・と記述し、当該機械学習モデルにおいて検出または分類するクラスをa,b,c,・・・と記述する。例えば、機械学習モデルAによりa,b,cというクラスを検出する場合、当該機械学習モデルを、A(a,b,c)と記述する。また、機械学習モデルAによりa,b,cというクラスに分類する場合、当該機械学習モデルも、A(a,b,c)と記述する。
【0057】
クラス「tree」を検出する機械学習モデルAとクラス「tree」を検出する機械学習モデルBのように、機械学習モデルによって検出するクラス名が同じになることがある。この場合、情報処理装置600において、機械学習モデルAのクラス「tree」をA-tree、機械学習モデルBのクラス「tree」をB-treeと区別して登録することが望ましく、実施形態においては簡略化のため機械学習モデルのAとBとが重複しないように説明する。
【0058】
機械学習モデルの出力結果同士の結合処理は、式情報に含まれる結合用記号に基づいて行う。例えば、クラスaを検出した領域とクラスbを検出した領域との重複した領域を出力する結合処理は、結合用記号としての「and」または「*」により表現される。クラスaを検出した領域とクラスbを検出した領域とを合わせた領域を出力する結合処理は、結合用の記号としての「or」または「+」により表現される。クラスaを検出した領域とクラスbを検出した領域とを合わせた領域を除外する結合処理は、結合用の記号としての「not」または「¬」により表現される。実施形態において「and」を「*」、「or」を「+」とで置き換えているが、実施形態における演算の優先度は、実際の線形代数的な演算の優先度とは異なる。すなわち、数学においてa+b*cと記述された場合、b*cを先に演算するが、実施形態においてはa+bを優先して演算する。ただし、式情報にa+(b*c)と記述されている場合にはb*cを優先して演算する。なお、実施形態における結合用記号「div」については後述する。
【0059】
図13は、第2の実施形態における情報処理装置の一例を示すブロック図である。情報処理装置600は、例えば、ユーザ端末装置700と接続される。ユーザ端末装置700は、例えば、上述したユーザ端末装置200に相当する。ユーザ端末装置700は、ユーザの操作に基づく情報を情報処理装置600に提供する。ユーザ端末装置700は、出力形式が異なる複数の機械学習モデルの組み合わせを設定するための情報を情報処理装置600に提供する。出力形式が異なる複数の機械学習モデルの組み合わせを設定するための情報は、後述するように式で表現される情報(以下、式情報と記載する。)である。ユーザ端末装置700は、情報処理装置600の処理結果を表示する。
【0060】
第2の実施形態の情報処理装置は、例えば、データ処理部610と、前処理部620と、DL部630と、後処理部640と、結合部650と、結果生成部660とを備える。情報処理装置600は、前処理部620、DL部630、および結果生成部660をパーツ化し、式情報に基づいて前処理部620、DL部630、および結果生成部660における機能を結合させる。
【0061】
図14は、情報処理装置における処理単位を説明するためのブロック図である。前処理部620は、画像全体に対して前処理を行い、DL部630は、式情報により指定された機械学習モデルごとに画像全体で検出処理を行い、各機械学習モデルがクラス単位で検出結果を結合部650に出力する。結合部650は、クラス単位で検出結果を結合し、DL部630は、クラス単位の処理結果を結合部650に供給し、結合部650は、クラス単位で検出結果を結合し、後処理部640はクラス単位で後処理を実行し、結果生成部660は、画像全体の処理結果を出力する。結果生成部660は、クラス単位で画像全体の処理結果を出力してよく、必要に応じて入力画像に対して後処理の結果を順次上書きした処理結果を出力してよい。
【0062】
データ処理部610は、ユーザ端末装置700から供給された式情報を受け付ける受付部の一例である。データ処理部610は、式情報を、前処理、DL処理、および後処理の処理順序に変換する。データ処理部610は、変換された処理順序で処理を行うように前処理部620、DL部630、および後処理部640を制御する。結合部650は、前処理部620の処理結果をDL部630に提供し、DL部630の処理結果を後処理部640に提供することで、処理結果を結合する。結果生成部660は、結合部650から提供された処理結果をユーザ端末装置700に出力する。
【0063】
前処理部620における前処理は、DL処理の前に実行される処理である。前処理部620により実行される処理は、例えば、ぼけ検出処理622、オルソ変換処理624を含むが、明度や輝度の調整処理や画像の分割処理を含んでいてよい。ぼけ検出処理622は、画像データに対するエッジ検出量が小さいぼけ画像をフィルタリングする処理である。オルソ変換処理624は、所定の変換式を用いた画像の歪み補正処理である。
【0064】
前処理部620は、後段のDL部630、後処理部640、結果生成部660のうち少なくとも一つの処理量(リソース)を調整する処理を行ってよい。例えば、DL部630により複数のDL処理を組み合わせる場合、DL処理の種別によって情報処理装置におけるGPUのスペックによって処理可能な画像サイズ等の上限が異なることがある。この場合、例えば、前処理部620は、DL処理のうち最もリソースの制限が厳しいDL処理が処理可能の上限まで画像を縮小する処理を行ってよく、画像を縮小する処理は、画像を圧縮する処理や、画像をトリミング(crop)する処理などにより画像データ量を低減する処理である。
【0065】
図15は、前処理部の動作の一例を説明するための図である。前処理は、DL部630における機械学習モデルを用いた処理の前に、画像Aの全体に行われる処理として定義される。前処理部620は、例えば、DL部630に供給する画像のうちボケのために高い精度で検出ができない画像を除外する処理や、DL部630に供給する画像のうち歪みのために高い精度で検出ができない画像を除外する処理を行う。前処理の処理内容は、後述するように式情報のヘッダ(header)部に記述する。すなわち、前処理の処理は、式情報において、機械学習モデルの組み合わせを定義する要素とは異なる要素として定義される。なお、前処理の処理結果(例えばボケ画像の検出結果)を結果生成部660から出力し、機械学習モデを用いた処理結果を出力しなくてよい。
【0066】
図16は、前処理部の動作の他の一例を説明するための図である。前処理部620Aは、BBox分解(木検出)処理によって一枚の画像Aを複数枚の画像A-1、A-2、およびA-3に分割してよい。画像A-1は、DL部630-1、結合部650-1、後処理部640-1、および結果生成部660-1により処理され、画像A-2、DL部630-2、結合部650-2、後処理部640-2、および結果生成部660-2により処理され、画像A-3は、DL部630-3、結合部650-3、後処理部640-3、および結果生成部660-3により処理される。前処理部620Aは、所定の規則に従って画像Aを分割してよいが、これに限定されず、機械学習モデルを用いて画像中の所定の対象物を抽出した画像を分割画像として出力してよい。この場合、機械学習モデルの出力形式は、後段のDL部630の出力形式に合わせてもよい。結果生成部660は、分割された複数の画像-1、A-2、およびA-3の処理結果のそれぞれを出力することに加えて、または代えて、分割された複数の画像-1、A-2、およびA-3の処理結果をまとめて出力してよい。
【0067】
後処理部640における後処理は、DL処理の後に実行される処理である。後処理部640により実行される処理は、例えば、フィルタ処理642を含む。フィルタ処理642は、検出領域の大きさに基づく処理であり、例えば、画像全体に対する割合が所定よりも小さい検出領域についてのデータを排除する処理である。また、フィルタ処理642は、検出位置に基づく処理であり、例えば、画像中央から所定だけずれている検出位置についてのデータを排除する処理である。
【0068】
結果生成部660は、情報処理装置600の出力結果を生成する処理である。結果生成部660において実行される処理は、mask生成処理662と、bbox処理664と、モザイク処理666と、データ出力処理668とが含まれる。mask生成処理662は、検出領域に所定の色を塗ったマスクや、検出領域を囲うようなマスクを生成する処理である。bbox処理664は、検出領域を囲う矩形座標を取得する処理である。モザイク処理666は、画像における検出位置や検出領域または検出位置や検出領域以外にモザイク加工を施す処理である。データ出力処理668は、例えば画像のうち検出領域が占める割合や、ある検出領域のうち当該検出領域とは別の検出領域が占める割合などの情報を計算して出力する処理である。データ出力処理668は、例えばDL処理によりTree領域およびキノコ領域を検出する場合において、画像全体に対するTree領域が占める割合や、Tree領域のうちキノコ領域の割合を計算して出力してよい。
【0069】
なお、本実施形態の情報処理装置600は前処理部620および後処理部640を備えるが、備えていなくてもよい。また、前処理部620および後処理部640は、実施形態に説明した処理以外の処理を行ってもよい。
【0070】
DL部630において実行される処理は、分類型、検出型、およびセグメンテーション型という三種類の機械学習モデルに対応し、式情報により機械学習モデルの組み合わせおよび処理順序が定義される。DL部630において実行される処理は、例えば、Deeplab処理631と、MaskRCNN処理633と、SSD処理635と、Yolo処理637と、CNN処理639とを含む。Deeplab処理631は、セグメンテーション型の機械学習モデルを用いたDL処理である。MaskRCNN処理633は、検出型およびセグメンテーション型の機械学習モデルを用いたDL処理である。SSD処理635は、検出型の機械学習モデルを用いたDL処理である。Yolo処理637は、検出型の機械学習モデルを用いたDL処理である。CNN(Convolutional Neural Network)処理639は、検出型および分類型の機械学習モデルを用いたDL処理である。
【0071】
例えば分類型の機械学習モデルA(a)*セグメンテーション型の機械学習モデルB(b)のように、A(a)の検出結果とB(b)の検出結果とをAND結合する場合、結合部650は、機械学習モデルBによりクラスbが検出されており、且つ、クラスaがTrueである場合に、AND結合した出力結果を「True」とする。A(a)*B(b)においてクラスa*クラスbである場合、結合部650はクラスbの領域検出結果を残す。逆に、クラスb*クラスaである場合、結合部650はクラスbの領域データを持たないクラスaの検出結果を出力する。クラスa+クラスbと記述された場合ように、検出結果をor結合する場合において、クラスaが「True」であり、クラスbが「False」である場合、結合部650は、領域データを持たない「True」を出力する。さらに、クラスa*¬クラスbと記述された場合において、クラスaが「True」であり、クラスbが「False」である場合、結合部650は、クラスbの領域が検出されていなければ、領域データを持たない「True」の検出結果を出力し、クラスbの領域が検出されていれば「False」の検出結果を出力する。
【0072】
図17は、第2の実施形態における情報処理装置のシーケンスの一例を示す図である。まず、データ処理部610は、例えばタスクが登録されたことに応じて起動し、式情報、画像データ、設定パラメータ等をダウンロードする。データ処理部610は、データベースにおけるタスクを定期的に監視し、自身が実行するタスクが登録されている場合に起動してよい。
【0073】
先ずデータ処理部610は、式情報に記述されている前処理を順次起動するように前処理部620を制御し、処理結果を取得する。このとき、データ処理部610は、式情報に複数の前処理が含まれている場合、式情報に記述された前処理の順序に従って、順次前処理を実行させる。次にデータ処理部610は、前処理の処理結果としての画像データを、式情報に含まれる全ての機械学習モデルに供給し、全ての機械学習モデルから検出結果を取得する。
【0074】
次にデータ処理部610は、式ごとに結合部650、後処理部640、および結果生成部660に処理を実行させる。先ずデータ処理部610は、結合部650により式情報に従ってクラスを結合させ、後処理部640により式情報に記述された後処理を実行させ、結果生成部660により後処理の結果を上書き(マージ)させる。次にデータ処理部610は、結果生成部660により生成された結果をデータベース等に格納する処理や、結果生成部660により生成された結果をユーザ端末装置700に通知する処理を行う。
【0075】
つぎに、ユーザ端末装置700による式入力、および式に基づく処理の詳細について説明する。
図18は、式情報を生成する際にユーザ端末装置700に表示させる画面の一例を示す図である。ユーザ端末装置700は、式情報を生成する場合に、図18に示すようなアンサンブル設計画面(GUI)を表示する。なお、図18に示すアンサンブル設計画面に限らず、数式を入力することができる画面であれば他の形態の画面であってよい。アンサンブル設計画面には、アンサンブルクラス名(Ensenmble Class名)、後処理の入力欄、複数のパラメータ(Param 1、Param 2)の入力欄、結合用記号の入力欄、モデル名の入力欄、および保存ボタンとが含まれる。アンサンブルクラスは、例えば、結果生成部660からの出力単位ごとに設定される。パラメータ1の入力欄には、機械学習モデルごとに、機械学習モデルの入力欄、クラスの入力欄およびノットフラグの入力欄とが含まれ、さらに、パラメータ1の入力欄に入力された機械学習モデル間の結合用記号の入力欄が含まれる。パラメータ2の入力欄には、機械学習モデルごとに、機械学習モデルの入力欄、クラスの入力欄およびノットフラグの入力欄とが含まれる。さらに、パラメータ1の入力欄とパラメータ2の入力欄との間には、パラメータ1の入力欄に入力された機械学習モデルの検出結果と、パラメータ2の入力欄に入力された機械学習モデルの検出結果とを結合するための結合用記号の入力欄が設けられる。さらに、アンサンブル設計画面には、パラメータ2に続くパラメータに追加ボタン、およびパラメータ1,2とは異なる出力のアンサンブルクラスの追加ボタンが含まれる。なお、後処理および結果生成処理は、DL処理の後に単純に連結するように記述することが許容される。ユーザ端末装置700は、画像全体に対して設定される前処理、およびクラス単位で設定される結合処理および結果出力処理を設定することができる。
【0076】
例えば、機械学習モデルAがクラスa,b,cを出力し、機械学習モデルBがクラスd,e,fを出力し、機械学習モデルCがクラスgを出力し、後処理X,Y、結果生成処理α,βがあるとすると、ユーザ端末装置700は、(a+b)*c*X*Y*αという式は記述できるが、後処理および結果生成処理をDL処理の前に記述することができない。すなわち、ユーザ端末装置700は(a+b*α)*cという式を入力することができないように制限する。
【0077】
結果生成部660における出力の型は、式における後半部分の型と同じ型である。例えば、分類型の機械学習モデルA(a)および検出型の機械学習モデルB(b)を式に含む場合、クラスa+クラスbの出力の型は、クラスbの出力の型(検出の型)となり、クラスb+クラスaの出力の型は、クラスaの出力の型(分類の型)となる。同様に、クラスa*クラスbの出力の型は、クラスbの出力の型(検出の型)となり、クラスb*クラスaの出力の型は、クラスaの出力の型(分類の型)となる。例外として、検出型の機械学習モデルとセグメンテーション型の機械学習モデルとのor演算の出力の型は、検出型とセグメンテーション型との双方の型を併せ持つ。なお、検出型の出力の型をセグメンテーション型の出力の型に変換し、セグメンテーション型に統一する後処理または結果生成処理を追加してよい。
【0078】
ユーザ端末装置700は、式情報の作成において、DL処理の出力の型を変換する機能を追加してもよい。例えば、既存の機械学習モデルを用いて式情報を作成した場合、機械学習モデルの出力に必要なパラメータがそのまま出力できない場合には、当該機械学習モデルの検出処理にパラメータを変換する処理を含めてよい。例えば、bbox型の機械学習モデルの出力を検出型の出力に変換してよく、セグメンテーション型の機械学習モデルの出力をセグメンテーション型の出力のみに変換してよく、分類型の機械学習エンジンの出力を全ての型(検出型、分類型およびセグメンテーション型)で出力するように変換してよい。なお、bbox型の機械学習モデルおよびセグメンテーション型の機械学習モデルは、クラスごとに出力結果が取得できる形式になっている必要がある。また、分類型の機械学習モデルの出力には機械学習モデルが出力する可能性のある全てのクラスが保持され、分類型の機械学習モデルにより認識されたクラスに対応する領域が「True」であり、「True」以外の領域が「False」である。さらに、maskrcnnのような機械学習モデルのようにセグメンテーション型とbbox型の両方の出力の型を持つ場合、両方の型を出力する。なお、セグメンテーション型の出力およびbbox型の出力を併せ持つ出力を許容しない場合、セグメンテーション型の出力のみ出力してよい。
【0079】
図19は、分類型の機械学習モデルにおける入力データおよび出力データの一例を示す図であり、図20は、検出型の機械学習モデルにおける入力データおよび出力データの一例を示す図であり、図21は、セグメンテーション型の機械学習モデルにおける入力データおよび出力データの一例を示す図である。
【0080】
情報処理装置600において、DL部630への入力データおよび出力データは、図19図20、および図21に示すようになる。
分類型の機械学習モデルの入力データは、図19(a)に示すように、例えば、画像データ(image)、クラスリスト[classname1, classname2, classname3]、パラメータ{“confidence”:0.8}、および機械学習モデルに特有のパラメータである。クラスリストは、分類型の機械学習モデルから出力が許容されるクラスの一覧を示し、パラメータは、分類型の機械学習モデルから出力が許容される確信度が0.8であることを示す。分類型の機械学習モデルの出力データは、図19(b)に示すように、例えば、クラス毎の出力データであって、クラス1の検出結果が「True」、クラス2の検出結果が「False」、クラス3の出力結果が「False」であることを示すデータである。
【0081】
検出型の機械学習モデルの入力データは、図20(a)に示すように、例えば、画像データ(image)、クラスリスト[classname1, classname2, classname3]、パラメータ{“confidence”:0.8}および機械学習モデルに特有のパラメータである。クラスリストは、検出型の機械学習モデルから出力が許容されるクラスの一覧を示し、パラメータは、検出型の機械学習モデルから出力が許容される確信度が0.8であることを示す。検出型の機械学習モデルの出力データは、図20(b)および(c)に示すように、例えば、クラス毎の出力データであって、クラス1の検出結果が「True」でありbbox型の2つの矩形の座標値、クラス2の検出結果が「True」でありbbox型の1つの矩形の座標値、クラス3の出力結果が「False」であることを示すデータである。
【0082】
セグメンテーション型の機械学習モデルの入力データは、図21(a)に示すように、例えば、画像データ(image)、クラスリスト[classname1, classname2, classname3]、パラメータ{“confidence”:0.8}および機械学習モデルに特有のパラメータである。クラスリストは、セグメンテーション型の機械学習モデルから出力が許容されるクラスの一覧を示し、パラメータは、セグメンテーション型の機械学習モデルから出力が許容される確信度が0.8であることを示す。セグメンテーション型の機械学習モデルの出力データは、図21(b)および(c)に示すように、例えば、クラス毎の出力データであって、クラス1の検出結果が「True」でありクラス1の領域に対応した行列、クラス2の検出結果が「True」でありクラス2の領域に対応した行列、クラス3の出力結果が「False」であることを示すデータである。
【0083】
式情報は、例えば、前処理部620を定義するヘッダ(header)と、結合部650、後処理部640、および結果生成部660を定義するボディ(body)、ボディおよびヘッダを補足するパラメータ(parameter)を含む。ヘッダは、一つの式情報に含まれる複数の機械学習モデルについて1つだけであり、ボディは検出したいクラスごとに定義される。式情報は、例えば、以下のような形式をもつ。
{header:[X,Y],
body:["x=a+b+c"],["y=c*e"],
parameter:{
name:{"a":["project1","tree"],"b":["project2",mashroom_B"],,,,,}
option:{a:{confidence=0.6}}
}
}
【0084】
上記式において、XおよびYは前処理に対応し、xおよびyは後処理または結果生成処理に対応し、a~eはクラスに対応する。なお、オプションとしてパラメータは確信度“confidence”を設定しているが、確信度はクラス毎に設定してもよく(例えばクラスaの確信度は0.6以上)、確信度の設定ごとにDL処理を行ってよい。
【0085】
ヘッダは、処理順序を定義するために処理に対応した記号に順番を持たせて記述する。例えば、Xをオルソ変換、Yをエッジ検出とすると、header:[X,Y]とheader:[Y,X]とでは処理順序が異なる。ボディは、処理順序に従って処理に対応した記号を記述し、処理に対応した記号間をor“+”およびAND“*”の記号を用いた式で記述する。ボディは、1つの画像について複数の式で定義することができる。パラメータには、例えば、式に含まれるクラス名に対応する機械学習モデルの情報や、機械学習モデルの出力値に確信度(confidence)のフィルタをかけることを示す情報、などが含まれる。
【0086】
なお、ボディは、ヘッダと同様に、クラスの記述順序によって処理順序を変更することができる。例えば、誤検出が少なくなるようにDL処理における確信度のパラメータを調整する作業がある。この作業において、例えば、同じ検出結果について確信度=0.7の領域を赤色に着色し、確信度が0.7から0.8の領域を黄色に着色し、確信度が0.8から0.9の領域を緑色に着色することを定義することで、1枚の画像に対して最初に赤に着色した領域のうち、確信度が0.7から0.8までの領域を黄色に上書きし、確信度が0.8から0.9までの領域を緑色に上書きすることができる。これにより、セグメンテーション型の機械学習モデルの出力結果のようにピクセルごとに確信度を画像に表示することが困難であっても容易に確信度をユーザに提示することができる。この結果、最適なDL処理の確信度を設定する作業を補助することができる。
【0087】
式情報は、例えば、下記のような形式であってよい。この式情報において、ヘッダ内には、処理「リサイズ("process":["resize"])」および当該処理の方法「"param":{"resize":"compression_gpumemory"}」が含まれる。ボディには、後処理および結果生成処理に対応するx1およびx2、x1およびx2に含まれるクラスc1~c4、着色処理に対応するcolor1およびcolor2が含まれる。c1~c4には、例えば、クラスごとに、DL処理を示す"rule":"DL"、DL処理の型を示す"engine":"segmentation2"、機械学習モデルのIDを示す"modelId":3947008441290434,"、クラスを示すclass":"02sonsyou_miki"、確信度を示す"confidence":0.1が含まれる。さらに、color1およびcolor2には、例えば、描画処理を示す"rule":"Draw"、描画処理の方法を示す,"method":"paint"、および色情報を示す"color":[255,0,0]が含まれる。なお、クラスは、塗り込みを示すpaintや、モザイク処理を示すmosaicなどであってよい。
"header":{"process":["resize"],"param":{"resize":"compression_gpumemory"}},
"body":["x1=c1+c2*color1","x2=c3+c4*color2"],
"param":{"name":{"x1":"sonsyo","x2":"hukyu"},"variable":{
"c1":{"rule":"DL","engine":"segmentation2","modelId":3947008441290434,"class":"02sonsyou_miki","confidence":0.1},
"c2":{"rule":"DL","engine":"segmentation2","modelId":5042429856406092,"class":"02sonsyou_eda","confidence":0.7},
"c3":{"rule":"DL","engine":"segmentation2","modelId":1669202033922186,"class":"01fukyu_miki","confidence":0.7},
"c4":{"rule":"DL","engine":"segmentation2","modelId":1669202033922186,"class":"01fukyu_eda","confidence":0.7},
"color1":{"rule":"Draw","method":"paint","color":[255,0,0]},
"color2":{"rule":"Draw","method":"paint","color":[0,255,0]}}
【0088】
図22は、機械学習モデルの組み合わせおよび結合用の記号に対する、結合部650の処理および出力クラスの一例を示す図である。例えば、式情報がcls(分類型の機械学習モデル)*dtc(検出型の機械学習モデル)である場合、結合部650は、分類型の機械学習モデルで指定されたクラスに分類された画像であって、検出型の機械学習モデルで指定されたクラスが検出された画像を処理結果として残し、結果生成部660は、分類型の出力型(dtc)で処理結果を出力する。また、式情報がdtc-dtcである場合、結合部650は、記号「-(dev)」に対応した処理として、検出型の機械学習モデルにより指定されたクラスのうち、双方の検出型の機械学習モデルで重複したクラスの検出結果を消す処理を行う。
【0089】
図23は、機械学習モデルの組み合わせごとの使用例を示す図である。例えば、式情報がcls(分類型の機械学習モデル)*dtc(検出型の機械学習モデル)である場合、指定されたクラスである木建物に分類された画像であって、きのこが検出された画像を検出することができる。
【0090】
図24は、AND処理の一例を示す図である。結合部650は、図24に示すように、AND(*)で接続された2つの機械学習モデル同士の検出結果の双方が重複するように検出結果を結合し、AND(*)の後に定義された機械学習モデルで指定されたクラスに対応した出力の型で出力する。
【0091】
図25は、OR処理の一例を示す図である。結合部650は、図25に示すように、OR(+)で接続された2つの機械学習モデル同士の検出結果の少なくとも一方を含むように検出結果を結合し、AND(*)の後に定義された機械学習モデルで指定されたクラスに対応した出力の型で出力する。
【0092】
図26は、DIV処理の一例を示す図である。結合部650は、図26に示すように、DIV(-)で接続された前部の機械学習モデルの処理結果から後部の機械学習モデルの処理結果を引く処理を行う。
【0093】
図27は、NOT処理の一例を示す図である。結合部650は、図27に示すように、NOT(-)の後部に記述された機械学習モデルの処理結果を反転させた結果を出力する。
【0094】
結合部650は、box型とセグメンテーション型(seg)の両方を保持している(dtc・seg)場合(「・」は任意の結合用の記号)、例えば、式情報が(dtc・seg) + segである場合、( (dtc・seg).bbox or seg.seg ) or ( (dtc・seg).seg or seg.seg )、output: bbox = (dtc・seg).bbox, seg = (dtc・seg).seg, seg.segとなり、dtc+segとseg+segの演算の組み合わせによって結合を実現することができる。
【0095】
結合部650は、例えば、式情報が(dtc・seg) * segである場合、( (dtc・seg).bbox and seg.seg ) or ( (dtc・seg).seg and seg.seg )、output: if (dtc・seg).bbox == seg.seg : seg = seg.segとなり、dtc*segとseg*segの演算の組み合わせによって結合を実現することができる。また、順序が逆になった場合も出力の型が(dtc・seg)となるが、特殊な演算は現れない。
【0096】
さらに、結合部650は、例えば、式情報が(dtc・seg)のように出力形式がbbox型とセグメンテーション型の両方を持つ場合、seg+segに変換し、bbox型の出力形式としての座標値[x1,y1,x2,y2]をセグメンテーション型の出力形式としての行列[x][y]に変換する。これにより、結合部650は、変換したセグメンテーション型の行列同士で演算することができる。
【0097】
第2の実施形態の情報処理装置600によれば、利用者の操作を受け付ける受付部としてのユーザ端末装置700と、ユーザ端末装置700により受け付けられた操作に基づいて、出力形式が異なる複数の機械学習モデルの組み合わせを設定する設定部としてのデータ処理部610と、データ処理部610により設定された組み合わせに基づいて、複数の機械学習モデルに検出処理を実行させる実行部としてのDL部630と、を備える、情報処理装置を実現することができる。さらに、情報処理装置600によれば、利用者の操作に基づいて、複数の機械学習モデルの組み合わせにおける処理順序を設定することにより、設定された処理順序に基づいて、複数の機械学習モデルに検出処理を実行させることができる。さらに、情報処理装置600によれば、利用者の操作に基づいて機械学習モデルの組み合わせ、機械学習モデル間の演算、および処理順序を表す式情報を設定し、式情報に基づいて機械学習モデルの処理結果を結合することができる。この情報処理装置600によれば、例えば、セグメンテーション(領域)型、検出型、分類型といった異なる出力方式を持つ機械学習モデル、および同類の型でも異なる出力形式を持つ機械学習モデルを組み合わせて対象物の検出などを行うことができる。
【0098】
また、情報処理装置600によれば、複数の機械学習モデルをクラス名に対応させ、利用者の操作により指定されたクラス名に基づいて複数の機械学習モデルを特定するので、クラス名を指定するだけで、機械学習モデルを意識することなく簡単に機械学習モデルの組み合わせを利用することができる。
【0099】
さらに、情報処理装置600によれば、利用者の操作に基づいて、複数の機械学習モデルに入力する情報を処理する前処理や後処理や結果生成処理を設定することができるので、機械学習モデルを含めた画像処理技術などをパーツ化して組み合わせることができる。これにより、情報処理装置600によれば、拡張性を高くすることができ、要望に応じてシステム全体を変更することを抑制することができる。
【0100】
なお、各実施形態および変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の1または複数の実施形態や他の1または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。
【0101】
なお、本実施形態における物体検出システム1や情報処理装置600の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、物体検出装置100に係る上述した種々の処理を行ってもよい。
【0102】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリなどの書き込み可能な不揮発性メモリ、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0103】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
【0104】
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0105】
1 物体検出システム
100 Webサーバ部
110 ユーザインターフェース部
112 操作受付部
114 可視化部
120 データ投入部
130 学習設定部
132 アノテーション管理部
140 検出設定部
150 経路設定部
160 タスク管理部
170 管理部
180 アンサンブル設定部
200 ユーザ端末装置
202 ロボット操作部
210 ロボット
300 AI実行部
310 学習部
320 検出部
400 データ管理部
402 データベース
500 システム設定部
600 情報処理装置
610 データ処理部
620 前処理部
630 DL部
640 後処理部
650 結合部
660 結果生成部
700 ユーザ端末装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27