(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127172
(43)【公開日】2024-09-20
(54)【発明の名称】変化キャプショニングシステム
(51)【国際特許分類】
G06F 16/908 20190101AFI20240912BHJP
G06F 16/583 20190101ALI20240912BHJP
【FI】
G06F16/908
G06F16/583
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023036143
(22)【出願日】2023-03-09
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】佐藤 拓杜
(72)【発明者】
【氏名】大橋 洋輝
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FB02
5B175FB03
5B175HA02
(57)【要約】
【課題】データシーケンスにおける状態変化の検索とその検索結果を提示とを効果的に行う。
【解決手段】システムがデータシーケンスにおける状態変化を検索する方法であって、データシーケンスにおけるデータを生成順に取得し、各取得したデータと前記取得したデータの過去データとの間の状態遷移及び変化キャプションとを決定し、状態遷移と変化キャプションとによって変化キャプション情報を更新し、状態遷移によって状態遷移情報を更新し、自然言語を含む検索クエリを受け付け、変化キャプション情報から自然言語に対応する変化キャプションを選択し、状態遷移情報において選択した変化キャプションに関連付けられた状態変化の情報を提示する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
変化キャプショニングシステムであって、
演算装置と、
記憶装置と、を含み、
前記記憶装置は、状態遷移に関する状態遷移情報と、変化キャプション情報と、を格納し、
前記状態遷移情報は、状態遷移それぞれの状態変化の情報を含み、
前記変化キャプション情報は、前記状態遷移情報における状態遷移と変化キャプションとを関連付けて格納し、
前記演算装置は、
データシーケンスにおけるデータを生成順に取得し、
各取得したデータと前記取得したデータの過去データとの間の状態遷移及び変化キャプションと、を決定し、
前記状態遷移及び前記変化キャプションによって前記変化キャプション情報を更新し、
前記状態遷移によって前記状態遷移情報を更新し、
自然言語を含む検索クエリを受け付け、
前記変化キャプション情報から前記自然言語に対応する変化キャプションを選択し、
前記状態遷移情報において前記選択した変化キャプションに関連付けられた状態変化の情報を、提示する、変化キャプショニングシステム。
【請求項2】
請求項1に記載の変化キャプショニングシステムであって、
前記検索クエリは指定期間を含み、
前記状態遷移は時間情報と関連付けられ、
前記演算装置は、
前記指定期間に対する一連の状態遷移を前記状態遷移情報から生成し、
前記変化キャプション情報から、前記指定期間に対する状態遷移及び前記自然言語に対応する変化キャプションを選択する、変化キャプショニングシステム。
【請求項3】
請求項1に記載の変化キャプショニングシステムであって、
前記演算装置は、前記選択された変化キャプションに関連付けられた状態変化の時間情報を提示する、変化キャプショニングシステム。
【請求項4】
請求項2に記載の変化キャプショニングシステムであって、
前記演算装置は、
前記状態遷移情報を参照して、前記指定期間における最古状態において継続している状態変化を決定し、
前記継続している状態変化の情報を提示する、変化キャプショニングシステム。
【請求項5】
請求項1に記載の変化キャプショニングシステムであって、
前記状態遷移情報は、状態変化と変化キャプションとの関連付け情報を含み、
前記演算装置は、
前記状態遷移情報の更新において、前記関連付け情報を参照して、変化キャプションの類似度に基づいて、前記取得したデータの状態変化が新規の状態変化か判定し、
前記関連付け情報の更新において、新規の状態変化と対応する変化キャプションの追加と共に、前記新規の状態変化の逆方向の状態変化と対応する変化キャプションの情報を追加する、変化キャプショニングシステム。
【請求項6】
請求項5に記載の変化キャプショニングシステムであって、
前記関連付け情報における状態変化の情報は、データ内の変化位置を含む、変化キャプショニングシステム。
【請求項7】
請求項5に記載の変化キャプショニングシステムであって、
前記演算装置は、前記取得したデータの状態変化が前記関連付け情報における逆方向の状態変化と一致し、前記逆方向の状態変化に対応する順方向の状態変化が継続している場合、前記順方向の状態変化が終了したと判定する、変化キャプショニングシステム。
【請求項8】
システムがデータシーケンスにおける状態変化を検索する方法であって、
前記システムは、状態遷移に関する状態遷移情報と、変化キャプション情報と、を格納し、
前記状態遷移情報は、状態遷移それぞれの状態変化の情報を含み、
前記変化キャプション情報は、前記状態遷移情報における状態遷移と変化キャプションとを関連付けて格納し、
方法は、前記システムが、
データシーケンスにおけるデータを生成順に取得し、
各取得したデータと前記取得したデータの過去データとの間の状態遷移及び変化キャプションと、を決定し、
前記状態遷移及び前記変化キャプションによって前記変化キャプション情報を更新し、
前記状態遷移によって前記状態遷移情報を更新し、
自然言語を含む検索クエリを受け付け、
前記変化キャプション情報から前記自然言語に対応する変化キャプションを選択し、
前記状態遷移情報において前記選択した変化キャプションに関連付けられた状態変化の情報を、提示する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変化キャプショニングシステムに関する。
【背景技術】
【0002】
目視確認による異常発見や建設物の進捗確認など、過去の情報と現在の情報の差分をとるシーンが多々ある。監視カメラや巡回ロボットから得られる大量の画像の差分説明文を自動生成し、あとから検索や報告書などへの加工ができると業務効率化への貢献が期待できる。
【0003】
これまで差分情報を自然言語での検索対象にするには、人間が手動で説明文(キャプション)を与えデータベースに登録する必要があった。しかし、近年、Change Captioningという「変化をとらえつつ変化の説明文を自動生成する」技術分野が登場し、登録作業を自動化できる可能性が生まれた。
【0004】
このほか、特開2020-134955号公報は、「検査報告書支援システム1はデータ処理サーバ3を有する。データ処理サーバ3が、対象の撮影で得られた多数の画像を結合し、検査対象の全体と異なる部分とを表した複数の画像を作成し、ユーザ端末7から要求された画像とコメント入力ツールとを表示した検査作業画面をユーザ端末7に表示する。ユーザにより作業画面に入力されたコメントが、表示された画像に関連付けられて保存される。データ処理サーバ3は、保存されたコメントと、それに関連付けられた画像とを用いて、報告書フォームに従って、報告書を自動的に作成する。」ことを開示する(要約)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-134955号公報号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
差分情報を自然言語での検索対象にするには、検索対象となる自然言語の文章を生成しておく方法が問題となる。予め蓄積データの全ペアについてChange Captioningを適用して検索対象の文章を生成しておくことは、処理コストからして非現実的である。そのため、各データと最も日時が近いペアのみChange Captioningにより文章を生成しておき、検索対象としての準備をし、準備した検索対象から見つかった文章を羅列することが考えられる。しかし、この手法は、検出すべき状態変化を見過ごし得、また、整理されていない状態変化の情報が提示され得る。
【0007】
従って、データシーケンスにおける状態変化の検索とその検索結果を提示とを効果的に行うことができる技術が望まれる。
【課題を解決するための手段】
【0008】
本発明の一態様は、変化キャプショニングシステムであって、演算装置と、記憶装置と、を含み、前記記憶装置は、状態遷移に関する状態遷移情報と、変化キャプション情報と、を格納し、前記状態遷移情報は、状態遷移それぞれの状態変化の情報を含み、前記変化キャプション情報は、前記状態遷移情報における状態遷移と変化キャプションとを関連付けて格納し、前記演算装置は、データシーケンスにおけるデータを生成順に取得し、各取得したデータと前記取得したデータの過去データとの間の状態遷移及び変化キャプションと、を決定し、前記状態遷移と前記変化キャプションとによって前記変化キャプション情報を更新し、前記状態遷移によって前記状態遷移情報を更新し、自然言語を含む検索クエリを受け付け、前記変化キャプション情報から前記自然言語に対応する変化キャプションを選択し、前記状態遷移情報において前記選択した変化キャプションに関連付けられた状態変化の情報を、提示する。
【発明の効果】
【0009】
本発明の一態様によれば、データシーケンスにおける状態変化の検索とその検索結果を提示とを効果的に行うことができる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】本明細書の一実施例に係る変化キャプショニングシステムの論理構成例を模式的に示す。
【
図2】変化キャプショニングシステムに利用可能のハードウェア構成例を示す。
【
図3】キャプションログDBに含まれるキャプションログ情報の構成例を示す。
【
図4】有限オートマトンでモデル化された状態遷移の例を示す。
【
図7】変化キャプショニングシステムによる、取得画像に対する概要処理のフローチャートを示す。
【
図8】2つの画像入力から各変化領域を特定する変化検知処理を実行する構成例を示す。
【
図9】検知された領域から変化キャプション文章を生成する処理を実行する構成例を示す。
【
図10】変化キャプションテンプレートの例を示す。
【
図11】テキスト表現及び変化マスクの条件から、変化を判定する規則の例を示す。
【
図16】
図15に示す変化IDリストを更新した変化IDリストを示す。
【
図17】状態S2が追加された状態遷移モデルを示す。
【
図18】状態S2が追加された状態-変化対応情報を示す。
【
図20】状態S3の情報が追加された状態遷移モデルを示す。
【
図21】状態S3の情報が追加された状態-変化対応情報を示す。
【
図22】出力生成部110の処理例のフローチャートを示す。
【
図23】収集された、変化IDの、指定期間内での有無、出現時刻、終了時刻の情報の例を示す。
【
図25】変化キャプション検索結果表示用UIの例を示す。
【発明を実施するための形態】
【0011】
以下、本発明の実施例について図面を用いて詳細に説明する。便宜上その必要があるときは、複数のセクション又は実施例に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部又は全部の変形例、詳細、補足説明等の関係にある。また、以下において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0012】
本明細書の一実施例のシステムは、物理的な計算機システム(一つ以上の物理的な計算機)でもよいし、クラウド基盤のような計算リソース群(複数の計算リソース)上に構築されたシステムでもよい。計算機システムあるいは計算リソース群は、1以上のインタフェース装置(例えば通信装置及び入出力装置を含む)、1以上の記憶装置(例えば、メモリ(主記憶)及び補助記憶装置を含む)及び1以上の演算装置を含むことができる。
【0013】
命令コードを含むプログラムが演算装置によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインタフェース装置等を用いながら行われるため、機能は演算装置の少なくとも一部とされてもよい。機能を主語として説明された処理は、演算装置あるいはその演算装置を有するシステムが行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。
【0014】
プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記憶媒体(例えば計算機読み取り可能な非一過性記憶媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0015】
以下において、本明細書の一実施例に係る変化キャプショニングシステムを説明する。変化キャプショニングシステムは、過去に計算した変化キャプション内容を自然言語で検索する機能を持つ。変化キャプショニングシステムは、過去に計算された一連の変化を状態遷移として記録する。変化キャプショニングシステムは、検索クエリに応じた検索処理を実行し、検索結果として表示する情報を生成する。
【0016】
図1は、本明細書の一実施例に係る変化キャプショニングシステムの論理構成例を模式的に示す。変化キャプショニングシステムは、取得データ制御部104、変化キャプショニング計算部106、変化状態管理部107、出力生成部110、検索情報入出力部111を含む。変化キャプショニングシステムは、取得データ保存データベース(DB)105、キャプションログDB108、状態遷移情報DB109を格納している。
【0017】
図2は、変化キャプショニングシステムに利用可能のハードウェア構成例を示す。変化キャプショニングシステムは、一般的な計算機構成を有し、プロセッサ321、主メモリ322、補助メモリ323、入力装置324、出力装置325、ネットワークインタフェース327を含む。変化キャプショニングシステムの各部分はバス326等の通信手段を介して互いに通信可能に接続されている。なお、変化キャプショニングシステムは、構成の全部又は一部がクラウドサーバのような仮想的な資源によって実現されるものであってもよい。
【0018】
プロセッサ321は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を用いて構成される。プロセッサ321が、主メモリ322に格納されているプログラムを読み出して実行することにより、変化キャプショニングシステムが備える機能が実現される。
【0019】
主メモリ322は、プログラムやデータを記憶する装置であり、ROM(Read Only Memory)、RAM(Random Access Memory)、NVRAM(Non Volatile RAM)等である。
【0020】
補助メモリ323は、例えば、SSD(Solid State Drive)、SDメモリカード等のNVRAM、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光学式記憶装置、HDD(Hard Disc Drive)、クラウドサーバの記憶領域等である。補助メモリ323は、プログラム及びデータを格納する非一過性記憶媒体を含む。補助メモリ323に格納されているプログラムやデータは主メモリ322に随時読み込まれる。
【0021】
例えば、補助メモリ323は、取得データ制御部104、変化キャプショニング計算部106、変化状態管理部107、出力生成部110、検索情報入出力部111のそれぞれに対応するプログラムが格納し得る。加えて、取得データ保存データベース(DB)105、キャプションログDB108、状態遷移情報DB109を格納し得る。
【0022】
入力装置324は、情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、マイクロフォン等である。又は、変化キャプショニングシステムが何らかの通信手段を介して他の装置との間で情報の入力を受け付ける構成としてもよい。
【0023】
出力装置325は、各種の情報を出力するインタフェースであり、例えば、液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等の画面表示装置、印字装置、スピーカ等の音声出力装置等である。又は、変化キャプショニングシステムが、何らかの通信手段を介して他の装置との間で情報の出力を行う構成としてもよい。ネットワークインタフェース327は、変化キャプショニングシステムが他の装置と通信を行うための装置である。
図1に示す構成要素の一部は省略され得、また、他の構成要素が追加され得る。
【0024】
変化キャプショニングシステムは、1又は複数の計算機により構成することができる。このように、変化キャプショニングシステムは、1以上のプロセッサ及び1以上の記憶装置を含むことができる。1以上のプロセッサは、1以上の記憶装置に格納されているプログラムを実行することで所定の機能部として動作する。
【0025】
図1に戻って、取得データと共に外部から入力される取得データ位置時刻情報101は、取得データ102がどこで取得されたか、いつ取得されたかを示す情報を含む。位置情報の例は、現場地図上に割り当てられた座標情報やGPS情報、又は監視カメラ等に割り振られたIDなどである。
【0026】
本明細書の一実施例は、取得データ102に対して、過去に蓄積された全データの総当りで変化キャプショニングを行うのではなく、取得データ102に対応するシーンや機器ごとに集積されたデータを変化キャプショニングの対象とする。取得データ位置時刻情報101は、取得データ102に対応するシーンや機器を選別するのに活用される。なお、設計によっては、取得データの順序が維持されていれば、取得データ位置時刻情報101が省略されてもよい。取得データの時刻に従った順序はデータの生成順序である。
【0027】
取得データ102は、変化キャプショニング計算部106への入力の1つとなるデータである。システム外から、カメラ、マイク等のセンサによって取得された各種データが該当する。変化キャプショニングは、静止画(動画から抽出された静止画を含む)、3D点群、音データなど様々な種類のデータが対象になり得る。以下の説明においては、データ種別を静止画として記載する。変化キャプショニング計算部106での計算前に、取得データ制御部104での保存処理が行われる。
【0028】
比較用データ103は、取得データ102と同様に変化キャプショニング計算部106への入力となるデータである。変化キャプショニング技術は同種の2つのデータを比べて変化を見出すため、取得データ102と比較用データ103は、同種データ(静止画、音、etc)である。
【0029】
比較用データ103として、例えば、取得データ位置時刻情報101に基づき、過去に集積された同位置(画像取得位置)に対応するデータのうち最も新しいものが引き出される。変化検出の観点から許容されるのであれば、比較用データ103は直前のデータでなくてもよい。取得データ制御部104は、位置情報の読解とデータの引き出し処理を担う。取得データ保存DB105は、その引き出し元となるデータベースである。
【0030】
取得データ制御部104は、取得データ保存DB105に対するデータ引き出し及び書き込みを行う。処理ケースの一つは、比較用データ103の引き出しである。また別の処理ケースは、取得データ102を、取得データ位置時刻情報101と共に、最新のデータとして取得データ保存DB105に書き込む。
【0031】
さらに、取得データ制御部104は、検索機能の実行時、検索結果に対応する保存データを引き出すため、出力生成部110からのデータ引き出しのアクセスを処理する。取得データ制御部104は、各データの保存時に固有のデータIDを振る。この情報は取得データ保存DB105に保存されるほか、取得データ102及び比較用データ103も、その付属情報として保持する。
【0032】
取得データ保存DB105は、取得データ位置時刻情報101をもとに、位置の観点から選別できる形式で、取得データ102を保存しているデータベースである。書き込み・引き出しの機能は、取得データ制御部104が担う。
【0033】
変化キャプショニング計算部106は、取得データ102と比較用データ103を入力として受け取り、変化位置の検出及び自然言語で記述された変化内容の推定を実行した後、変化状態管理部107に同データを送信する。変化キャプショニング計算部106の処理の詳細は後述する。
【0034】
変化状態管理部107は、変化キャプショニング計算部106からの出力(変化検出位置及び変化に関する記述を含む)と、取得データ位置時刻情報101と、取得データ102及び比較用データ103の各データに付随していたデータID情報を、入力として受け取る。そして、当該データ取得位置での状態変化の更新処理を行い、キャプションログDB108と状態遷移情報DB109に各種情報を保存する。変化状態管理部107の処理の詳細は後述する。
【0035】
キャプションログDB108は、変化状態管理部107が出力するデータを保存するデータベースの1つであり、変化キャプションの情報を格納する。キャプションログDB108が管理する情報は、位置時刻情報、状態遷移情報、変化キャプション出力である。このように、状態遷移と変化キャプションとが関連付けて格納されている。
【0036】
図3は、キャプションログDB108に含まれるキャプションログ情報181の構成例を示す。
図3に示す構成例において、キャプションログDB108は、データ取得位置ごとに、表形式データを保存する。
図3のキャプションログ情報181は、データの取得位置IDが「1」であるキャプションログを示す。
【0037】
キャプションログDB108は、取得データ及び比較用データの各ペアについての、取得位置ID、取得時刻、状態遷移情報、データID、及び変化キャプション出力を格納する。取得時刻は、取得データを取得した時刻を示す。状態遷移情報は、比較用データと取得データとの間の状態遷移(遷移状態のペア)を示す。データIDは、取得データと比較用データのIDを示す。
【0038】
状態遷移情報DB109は、変化状態管理部107が出力するデータを保存するデータベースの1つである。保存されるデータの対象は、データ取得位置ごとに定義される状態遷移モデル(例:有限オートマトン)、状態遷移モデルの状態変化を表す状態-変化対応情報、その変化を管理する変化IDリストを含む。状態遷移モデルは、どのようなフォーマットで表されてもよく、時刻の情報を含んでよい。状態遷移モデルによって表される状態Sに、重複のないID(状態ID)が振られる。そのIDは、キャプションログDB108における状態遷移情報の記述と対応する。
【0039】
状態遷移は、変化する状態に着目した情報であって、開始状態と終了状態の状態ペアで表すことができる。状態遷移は、同一状態間でも定義し得る。状態変化は、異なる状態間の状態遷移における変化の内容に着目した情報であって、本明細書において、変化キャプション、又は変化キャプションと画像内変化位置によって区別され得る。状態遷移又は状態変化に関する情報は、状態遷移及び状態変化を示し得る。
【0040】
図4は、有限オートマトンでモデル化された状態遷移190の例を示す。円内の符号は、状態IDを示す。
図5は、状態遷移モデル190の状態-変化対応情報191の例を示す。状態-変化対応情報191は、各状態IDが持つ変化IDを示す。各状態IDが持つ変化IDは、初期状態から当該状態に至るまでの間で終了していない変化のIDのリストである。
図6は、変化IDリスト192の例を示す。変化IDリスト192は、変化IDそれぞれの、変化の方向、キャプションとその埋め込みベクトル、及び変化位置を管理する。変化位置は、後述する変化マスク画像間の関係で表される。埋め込みベクトルと変化位置の異なるペアに対して、異なる変化IDが与えられる。このように、変化IDリスト192は、状態変化と変化キャプションとの関連付け情報を格納している。
【0041】
状態遷移情報DB109は状態遷移情報であって、状態遷移モデル190、その状態-変化対応情報191及び変化IDリスト192を含む。状態遷移モデル及び変化IDリストの内容及び活用例は、変化状態管理部107の具体的処理の説明において述べる。
【0042】
出力生成部110は、検索情報入出力部111からの検索クエリ(検索する時刻範囲、検索する変化を表現する自然言語)を受け取り、該当するデータを探索、出力を再び検索情報入出力部111へ返す。処理の詳細は後述する。
【0043】
検索情報入出力部111は、ユーザに対して検索用ユーザインタフェース(UI)を表示し、同様に検索結果を提示する機能を持つ。検索用UIの例は後述する。検索UIにおいて、変化検索の期間指定及び自然言語指定が可能である。また検索結果は、指定期間中の変化の有無や完了不完了を確認できる時系列チャートを含むことができる。
【0044】
本明細書の一実施例に係る変化キャプショニングシステムは、おおまかな処理フローとして(I)外部からの画像取得時の処理と、(II)検索機能を実行する時の処理との、2つの処理を実行する。まず、(I)外部から画像取得があった際の処理フローを説明する。
【0045】
(I)外部から画像取得があった際の処理
図7は、変化キャプショニングシステムによる、取得画像に対する概要処理のフローチャートを示す。変化キャプショニングシステムは、外部から、取得データ位置時刻情報101と取得データ102を取得する(S11)。
【0046】
取得データ制御部104は、取得データ位置時刻情報101と取得データ102を受け取る(S12)。取得データ制御部104は、取得データ保存DB105に取得データを保存する。このとき固有のデータIDを発行し取得データ102に付与する(S13)。取得データ制御部104は、取得データ位置時刻情報101を参照し、取得データ102と最も時刻の近い比較用データ103を、取得データ保存DB105からロードする(S14)。
【0047】
変化キャプショニング計算部106は、取得データ102及び比較用データ103を受け取り、変化キャプション等のデータを変化状態管理部107に出力する(S15)。
【0048】
変化状態管理部107は、変化キャプショニング計算部106の出力と共に、取得データ位置時刻情報101を受け取り、対応する情報をキャプションログDB108と状態遷移情報DB109からロードする(S16)。変化状態管理部107は、状態の更新処理を実行し、結果をキャプションログDB108と状態遷移情報DB109に保存する(S17)。
【0049】
以下において、変化キャプショニング計算部106による処理S15の詳細を説明する。処理の例として、取得データ102及び比較用データ103が、静止画であるケースを説明する。なお、ここで説明する変化キャプショニング手法以外でも、2つの静止画を入力として受け取り、出力としてデータ間の変化箇所及び変化内容の説明文を生成することのできる手法であれば、任意の処理方法が適応可能である。
【0050】
本実施例では、変化キャプショニングをCLIP(Contrastive Language-Image Pre-Training)と呼ばれる認識モデルを使って実現する方法について説明する。CLIPは、画像とその説明文(キャプション)のペアデータ数億件で学習された認識モデルであり、同じベクトル空間へ特徴を埋め込むことができる画像エンコーダとテキストエンコーダを有する。本説明では、画像エンコーダとしてVisionTransformerを採用した前提で行う。
【0051】
CLIPを使った変化キャプショニング手法の処理は、(i)2つの画像入力から各変化領域を特定する変化検知処理と、(ii)検知された領域から変化キャプション文章を生成する処理の2つに分かれる。
【0052】
図8は、処理(i)を実行する構成図を示す。入力データI
A401、I
B402は静止画である。例えば、入力データI
A401は比較用画像103に対応し、入力データI
B402は取得画像102に対応する。これらをCLIPの画像エンコーダ411を通じて、ベクトルV
A、V
Bにそれぞれ変換する。
図8は、図示の容易のため、一つの画像エンコーダ411が、二つのブロックで表されている。なお、二つの画像エンコーダが用意されてもよい。次に、COSINE相違度計算部422は、ベクトル間の類似度指標としてコサイン相違度を以下の式にて計算する。
【0053】
【0054】
次に、変化領域推定部421は、計算したコサイン相違度に対する微分を計算する。微分は以下の式に従って行う。
図8は、図示の容易のため、一つの変化領域推定部421が、二つのブロックで表されている。なお、二つの変化領域推定部が用意されてもよい。
【0055】
【0056】
ここで、AnとBnは、各CLIP411内の、VisionTransformerの最終AttentionLayer(AL)415において、Attentionの計算を行う前(1回めのLayerNorm直後)のベクトルを抽出したものである。この計算の意味は、画像内で相違度を高める領域、つまり変化となる領域を特定することにある。
【0057】
GradientA、GradientBは、それぞれ変化領域推定部421において、0-1の値域への正規化と入力データIA401、IB402とサイズを合わせるためのベクトルの内挿及び整形処理が行われる。その後、変化領域推定部421は、閾値を使用した2値化を行う。最終的にGradientAからは画像IA401の変化位置と同位置が値1で他は値0の変化マスク画像DA431が生成される。GradientBからは、同様の変化マスク画像DB432が生成される。ここまでが変化検知の処理である。
【0058】
次に、(ii)検知された領域から変化キャプション文章を生成する処理について説明する。処理(ii)は、処理(i)で得られた各変化領域を最も適切に表現するテキストと、変化の有無や種別の表現テキストをそれぞれ得た後、それらを予め定義された変化キャプションテンプレートに当てはめることで、変化キャプションを生成する。
【0059】
図9は、処理(ii)を実行する構成例を示す。画像切り出し部451は、変化マスク画像D
A431に基づき、入力画像I
A401中の変化領域のみを切り出す。それをCLIPの画像エンコーダ411に入力し、切り出し領域に関する出力ベクトルV
cropAを得る。さらに、画像切り出し部451は、変化マスク画像D
B432に基づき、入力画像I
B402中の変化領域のみを切り出す。それをCLIPの画像エンコーダ411に入力し、切り出し領域に関する出力ベクトルV
cropBを得る。なお、図示の容易のため、一つの画像切り出し部451及び一つの画像エンコーダ411が、それぞれ二つのブロックで表されている。なお、二つの画像切り出し部及び二つの画像エンコーダが用意されてもよい。
【0060】
並行して、変化領域を表す表現テキストの集合となっているテキスト表現データ454を、CLIPのテキストエンコーダ463に入力し、表現テキストに関するCLIP出力ベクトルMtextを得る。テキスト表現データの1つは、たとえば「黒い帽子をかぶった人間」、「茶色い液体」、「青い物体」など名詞のみあるいは修飾語と名詞の組み合わせで構成される物体的記述であり、変化キャプション中に出現してほしい表現を、数に制限なく自由に含めることができる。
【0061】
また、後述する変化の分類(出現・消滅・移動・属性変化・変化なし)を行うために、背景的な記述も含めてよい。たとえば、壁・地面・空といった領域を表現した文章である。出現・消滅の変化パターンでは、出力ベクトルVcropA、VcropBのどちらかが背景を指す情報であるため、どちらが背景であったかを明らかにすることで出現の変化なのか消滅の変化なのかを区別できる。
【0062】
1つのテキスト表現Tiに対するCLIPテキストエンコーダの出力ベクトルをVtext_iとしたとき、表現テキストの集合St∋Ti(i=1…n)のCLIPテキストエンコーダからの出力Mtextは次式で定義される。
【0063】
【0064】
Mtextは、切り出した画像のCLIP出力ベクトルVcropA、VcropBそれぞれと共に、画像-テキスト類似度計算部471に入力される。画像-テキスト類似度計算部471は、出力ベクトルVcropA、VcropBに最も近しい表現をMtextから選別する。
【0065】
出力ベクトルVcropに対する具体的な計算としては、まずmax(Vcrop、MT
text)により、Mtextを構成するVtext_iとVcropとの最大内積値を求める。その後、最大内積値を与えたVtext_iの元となったテキスト表現Tiを、テキスト表現データ集合St454より得る。この処理によりVcropA、VcropBに対してそれぞれ得られた最良のテキスト表現を、TextA、TextBと表記する。
【0066】
最後に、最終出力となる変化キャプションCC481を得る方法を説明する。変化キャプションCC481は、変化キャプション生成部475の出力として得られる。変化キャプション生成部475への入力として、最良のテキスト表現TextA、TextBと、変化マスク画像DA、DB、そして変化キャプションテンプレートデータの5つが与えられる。
【0067】
図10は、変化キャプションテンプレートの例を示す。変化キャプションテンプレートは、例えば
図10に示すように、出現、消滅、移動、属性変化、変化なしといった5つの基本変化に対応した穴あき付き文章の集合である。変化キャプション生成部475は、この基本変化のいずれに該当するかを見極めたのち、文章の穴あきの部分を最良のテキスト表現Text
A、Text
Bで埋めたものを出力する。
【0068】
なお、
図10は、シンプルな例を示している。テンプレートは1つの種別に対して複数あってもよい。たとえば、「出現した」「消滅した」などの動詞を別の表現に置き換えたり、変化マスク画像D
A、D
Bの対応関係から得られる変化の位置情報を移動変化のテンプレート文章に加えたりといったことである。その場合の最終的な出力文章は、文章の自然さを推定する既存の手法を利用して最も自然と評価されたものを出力するなどの処理を経て決定してもよい。
【0069】
基本変化の見極めについては、単純な方法として、最良のテキスト表現Text
A、Text
B、及び、変化マスク画像D
A、D
Bから得られる情報に基づく場合分けで決定することができる。
図11は、テキスト表現Text
A、Text
B、及び、変化マスク画像D
A、D
Bの条件から、変化を判定する規則の例を示す。なおこの見極め処理の高精度化のために、単純な場合分けではなくニューラルネットワークに代表される識別モデルに見極めのパターンを学習させて利用することは自然な拡張として考えられる。
【0070】
変化キャプショニング計算部106が変化状態管理部107に送る出力は、変化キャプションCC及び変化検出位置を示す変化マスク画像DA、DB、そして入力された取得データ102及び比較用データ103に付随していたデータIDである。
【0071】
なおここまでの説明は、1つのデータ中に1つの変化のみが含まれる前提で行った。もし1つのデータ中に複数の変化が含まれる場合は、102と103各データの時空間的な位置合わせ(画像であれば、画像間の対応付処理等)を前処理として行った後、変化マスク画像DA、DBで検出された複数の変化位置、及びその変化位置の画像内容に応じて、変化位置のペアリングを実施し、変化位置ペアごとに、変化キャプショニング計算部106の処理を行えばよい。その場合、変化キャプショニング計算部106の各出力は、変化位置のペア数分だけ増加する。
【0072】
以下において、変化状態管理部107による処理S17の詳細を説明する。変化状態管理部107の主な処理は、(i)変化状態の更新処理と、(ii)キャプションログDB108と状態遷移情報DB109に各種情報を保存する処理である。処理(ii)は、処理(i)で更新した情報を元の保存場所に上書きすればよい。以下では処理(i)について説明する。
【0073】
この処理では、まず入力として受け取った取得データ位置時刻情報101をもとに、キャプションログDB108から対応する位置のキャプションログ情報181を、状態遷移情報DB109から対応する位置の状態遷移モデル190、状態-変化対応情報191及び変化IDリスト192を引き出す。
【0074】
図12は引き出されたキャプションログ情報181の例を示し、
図13、14及び15は、引き出された状態遷移モデル190、その状態-変化対応情報191、及びその変化IDリスト192の例を示す。
図12から15に示す情報を読み解くと、状態S1で定義される「黒い服の男が出現している状態」が、対応位置の最新状態であるとわかる。
【0075】
ここで、新たに入力として受け取った変化キャプションが「青い飛来物が出現」だったとする。まず、変化状態管理部107は、変化IDリスト192を参照し、この変化が既知のものか未知のものかを確認する。その際に使用するのは、変化キャプションのテキストをCLIPのテキストエンコーダ等に入力して生成した埋め込みベクトルVcである。
【0076】
入力された変化キャプションの埋め込みベクトルをVc_inputとしたとき、変化状態管理部107は、変化IDリスト192が保持している各Vcに対してcosine類似度を計算する。cosine類似度が所定の閾値以上であれば入力された変化は既知であり、そうでなければ未知と判定する。この判定は、意味合いが似ている文章の埋め込みベクトル同士の類似度は高い性質を利用する。文章を直接比較せず埋め込みベクトル同士の類似度を参照することで、文章表現のぶれをある程度吸収できる。
【0077】
このケースでは変化IDリスト192が保持している各VcとVc_inputの類似度は低く、入力された変化は未知であると判定される。なお、もし類似度が高い変化IDが複数見つかった場合、あくまでcosine類似度の高さで変化IDを1つ定めることも可能であるし、一定以上のcosine類似度を満たす複数の変化IDのなかでの変化位置の合致度(例えば距離)で変化IDを1つに定めることも可能である。この選択については,監視対象ごと(例えば工場などの建築物)に定めることができる。
【0078】
ここでは未知の変化と判定されたため、変化状態管理部107は、まず変化IDリスト192に新たな変化として、入力された変化を登録する。その際、入力された変化キャプションに対して逆方向の変化についても、その推定キャプション(C*-inverse)とその埋め込みベクトル(Vc*_i)を登録する。逆変化のキャプションは、順変化のキャプションを意味的に反転して作成する。例えば、出現と消滅が入れ替えられ、移動位置や属性変化の順序が逆転される。この情報を利用することで、未来で生じた変化が、既知の変化を完了させるものか、全く新規の変化なのかを、区別できる。
【0079】
図16は、
図15に示す変化IDリスト192を更新した変化IDリスト192を示す。上述のように、変化IDが「C2-forward」のレコードと、「C2-inverse」のレコードが追加されている。
【0080】
次に、変化状態管理部107は、新規状態の登録処理に移行する。状態S1に接続した位置に、状態S1からの遷移条件をC2-forwardとした新規状態S2を定義する。
図17は、新規状態S2が追加された状態遷移モデル190を示す。状態S2から状態S1の遷移条件は、C2-inverseである。変化状態管理部107は、さらに、状態-変化対応情報191に状態S2を追加し、保持変化IDリストを[C1-forward、C2-forward]とする。
【0081】
図18は、状態S2が追加された状態-変化対応情報191を示す。保持変化IDリストは、状態S0から状態S1への変化ID「C1-forward」と、状態S1から状態S2への変化ID「C2-forward」を示す。
【0082】
最後に、キャプションログ情報181(状態遷移リスト)を更新する。
図19は、更新されたキャプションログ情報181を示す。状態S1から状態S2への状態遷移を示す3つ目のレコードが追加されている。
【0083】
次に、既知の変化(変化IDリスト192に対応する変化が含まれている)が発生した際の処理について説明する。既知の変化が発生した場合、(i)既知の状態に移行するケースと、(ii)未知の状態に移行するケースの2つのケースに分かれる。後者の場合は上記状態S2の追加ケースと同様に、新規状態を定義する必要がある。ケース(i)とケース(ii)の区別は、既知の変化を現在の状態に反映した結果がもつ保持変化IDリストに対して、状態-変化対応情報191がもつ各状態の保持変化IDリストの中で合致するものが存在するか否か、で行う。
【0084】
例えば、上記状態S2の追加ケースに続いて、C2-inverseに対応する変化が発生したとする。このように既知のinverse変化が発生した場合、現在の状態の保持変化IDリストから対応する順方向の変化C2-forwardを削除する。すると更新後の保持変化IDリストは[C1-forward]となるので、これは既存状態S1に合致するので新規状態追加の必要はなく、C2-inverseに対応する状態遷移は状態S2から状態S1となる。
【0085】
別のケースとして、状態S2においてC1-inverseに対応する変化が発生したとする。この場合、変化自体は既知であるが、更新後の保持変化IDリスト[C2-forward]に対応する状態が状態-変化対応情報191には存在しないため、新規状態S3が保持変化IDリスト[C2-forward]と共に追加される。
図20は状態S3の情報が追加された状態遷移モデル190を示し、
図21は、状態S3の情報が追加された状態-変化対応情報191を示す。
【0086】
基本的には更新のたびに前述の処理を繰り返すが、時間経過によって検知ミスやキャプションミスによる誤った状態が蓄積されていく場合がある。それに対して、過去の状態遷移モデルや付随するデータとは切り離した形式で新規に状態遷移モデル等を用意し、現状態を初期状態として登録するなど、手動リセット機能を設けることも可能である。
【0087】
また、1つのデータに複数の変化が含まれている場合、変化キャプショニング計算部106からの出力変化キャプションが変化数と同数になる。この場合、前述した変化状態管理部107の処理を1つの変化ずつ行い、すべての変化に対する処理が完了した時点を最終的な状態とする。上記例は、画像取得に応じて状態変化や変化キャプションの登録を行う。他の例は、特定期間内で取得され、データベースに登録された画像シーケンスの各画像について、上記処理を実行してもよい。
【0088】
(I)の最後に、変化種別が「移動変化」の場合に対する特殊設定について説明する。変化する対象が人間や動物などの場合、画面内などを頻繁に動くなどして、高頻度に移動変化が観測されうる。移動変化のinverse変化は順変化とは逆方向の座標変化として定義されるが、変化対象によってはinverse変化の条件が満たされにくく移動のたびに大量の新規状態を定義してしまい、状態管理に必要なデータ量を肥大化させる可能性がある。これを防ぐための特殊設定として、変化種別が「移動」と判定された場合については、変化種別の既知・未知の判定や新規状態か否かの判定処理を行わず、その時点に属している状態Snから同状態Snへの自己遷移が発生したとすることが可能である。この場合、状態遷移モデル、状態―変化対応情報、変化IDリストは更新せず、変化キャプションログ情報のみを更新する。この設定下では新規状態の乱立を防ぎつつ、変化キャプションログに記録された変化キャプション出力に対する検索機能を維持することができる。
【0089】
(II)検索機能を実行する時の処理
以下において、検索機能を使う際の処理を説明する。検索機能を使う際の処理は、出力生成部110の処理と略一致する。出力生成部110は、変化キャプション検索用UIから検索クエリを入力として受け取る。さらに、取得データ保存DB105、キャプションログDB108、状態遷移情報DB109から該当するデータを収集し、各変化の時系列チャートと詳細情報を含む出力を生成する処理を実行する。これら情報は、例えば、変化キャプション検索結果表示用UIで表示される。
【0090】
図22は、出力生成部110の処理例のフローチャートを示す。出力生成部110は、検索情報入出力部111からユーザが入力した検索クエリを受け取る(S31)。次に、出力生成部110は、キャプションログDB108と状態遷移情報DB109から、検索クエリのうち指定期間、データ種別、指定場所に該当する情報を引き出す(S32)。具体的には、キャプションログ情報、状態遷移モデル、状態-変化対応情報、変化IDリストが引き出される。なお、指定期間、データ種別、指定場所の指定がなければ、全期間、全データ、全場所が対象になる。
【0091】
次に、出力生成部110は、指定場所ごとの状態遷移モデルにおいて、指定期間における最古の状態をスタートとし、最新の状態をエンドとし、スタートからエンドに至る状態遷移を再現する。その中で、各変化IDの、指定期間内での有無、出現時刻、終了時刻の情報を集める(S33)。
【0092】
図23は状態遷移の再現結果として得られる情報の例であり、各変化IDの、指定期間内での有無、出現時刻、終了時刻を示している。もし指定期間内の最古の状態Sが初期状態S
0と異なる場合、状態Sが保持している変化IDに該当する変化は指定期間開始時点からすでに起こっていたものであると記録される(既出)。逆に,指定期間内の最新の状態S’がS
0と異なる場合は、状態S’が保持している変化IDに該当する変化は指定期間終了時点でも継続しているものであると記録される(継続)。このようにして出力生成部110は、指定期間外で出現・終了する変化も含めて,指定期間内における既出・出現・終了・継続といった時系列的な情報を変化IDごとに得る。
【0093】
次に、出力生成部110は、前処理で収集した各変化ID情報のうち、検索クエリの指定キーワードに該当しないものを削除する(S34)。なお、指定キーワードが存在しない場合は特に処理を行わない。
【0094】
次に、出力生成部110は、前処理で残った各変化ID情報から、
図25に示す変化キャプション検索結果表示用UI上部に表示する時系列チャートを生成する(S35)。さらに、出力生成部110は、前処理で残った各変化ID情報を基に、キャプションログや取得データ保存DBから必要な情報を収集し、
図25に示す検索結果表示用UIの下部に表示する詳細情報を生成する(S36)。最後に、出力生成部110は、検索情報入出力部111に結果を出力する(S37)。
【0095】
図24は、変化キャプション検索用UIの例を示す。ユーザは、変化キャプション検索用UIにおいて、検索対象の期間、文章内の語句、対象のデータ種類、及びデータの場所を指定して、検索を要求する。場所の指定のため、例えば、地図上にDB登録された各データ取得位置が表示され、クリックで指定する機能を持つ領域が表示される。
【0096】
図25は、変化キャプション検索結果表示用UIの例を示す。上部は、対象期間中に含まれている該当変化の時系列チャートを示す。チャートは、
図23のステップS35で生成される。チャートの横軸は日時を示す。各棒は、一つの変化の継続期間を表す。例えば、番号「1」の変化は、対象期間内で発生し、対象期間内で終了している。番号「2」の変化は、対象期間内で発生し、対象期間内では終了していない。変化「3」は、対象期間前に発生し、対象期間内で終了している。
図25では明示していないが、各棒の上に該当する変化キャプションを重畳表示してよい。
【0097】
下部は、各変化の詳細情報を提示する。詳細情報は、
図23のステップS36で生成される。例えば、詳細情報は、対象画像の取得場所、対象期間内での変化(事象)の発生時刻及び終了時刻(存在する場合)、その変化キャプション及び、対象期間内での変化の発生前後及び終了前後の画像(存在する場合)を示してもよい。詳細情報の一部は省略されてもよく、他の情報が提示されてもよい。
【0098】
変化キャプション検索結果表示用UIによって、ユーザは、対象位置において発生した事象の期間の情報を、対象期間を超えて得ることができる。また、事象の詳細を知ることができる。
【0099】
以上のように、本明細書の一実施例によれば、検索のための事前処理量を抑制し、検索クエリに対して画像を使わない軽量な処理で出力すべき情報を生成することができる。また、検索の指定期間外で発生し、指定期間内でも継続している状態変化を検出して、ユーザに提示することができる。加えて、指定期間が長い場合であっても、異なる状態変化毎に区別して、その開始と終了の情報が提示される。ユーザが容易に状態変化の情報を認識することができる。
【0100】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0101】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、演算装置がそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード等の記録媒体に置くことができる。
【0102】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0103】
101 取得データ位置時刻情報
102 取得データ
103 比較用データ
104 取得データ制御部
105 取得データ保存DB
106 変化キャプショニング計算部
107 変化状態管理部
108 キャプションログDB
109 状態遷移情報DB
110 出力生成部
111 検索情報入出力部