(57)【特許請求の範囲】
【請求項１】
時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得手段と、
画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得手段と、
前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得手段と、
前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成手段と、
を備えることを特徴とするオブジェクト領域特定装置。
【請求項２】
前記動き情報取得手段は、前記第１フレーム画像における各位置について、前記オブジェクトの移動方向及び移動距離を示す前記動き情報を生成し、
前記領域情報生成手段は、前記位置情報と前記動き情報とを、位置ごとに足し合わせることに基づいて、前記領域情報を生成することを特徴とする請求項１に記載のオブジェクト領域特定装置。
【請求項３】
前記第２フレーム画像のうち、前記生成された領域情報により示される領域の画像を、画像内のオブジェクトを識別する第２モデルに入力することにより、前記第２フレーム画像内のオブジェクトを検出する検出手段を更に備えることを特徴とする請求項１又は２に記載のオブジェクト領域特定装置。
【請求項４】
前記生成された領域情報に基づいて、前記モデルを訓練する訓練手段を更に備えることを特徴とする請求項１乃至３の何れか一項に記載のオブジェクト領域特定装置。
【請求項５】
前記位置情報取得手段は、前記モデルに更に前記第２フレーム画像を入力して、前記第２フレーム画像上の位置であって、前記第２フレーム画像内のオブジェクトの識別に影響を与える位置を示す第２位置情報を取得し、
前記訓練手段は、
前記第２フレーム画像から、前記生成された領域情報により示される領域の第１画像を抽出するする第１抽出手段と、
前記取得された第２位置情報に基づいて、前記第２フレーム画像上の領域であって、前記オブジェクトの識別に影響を与える位置に対応する領域を示す第２領域情報を生成する第２領域情報生成手段と、
前記第２フレーム画像から、前記取得された第２領域情報により示される領域の第２画像を抽出する第２抽出手段と、
前記取得された第１画像及び第２画像に基づいて、前記モデルの重みを更新する更新手段と、
を含むことを特徴とする請求項４に記載のオブジェクト領域特定装置。
【請求項６】
前記訓練手段は、
前記抽出された第１画像の特徴を取得する第１特徴取得手段と、
前記抽出された第２画像の特徴を取得する第２特徴取得手段と、
を更に含み、
前記更新手段は、前記取得された第１特徴及び第２特徴に基づいて、前記モデルの重みを更新することを特徴とする請求項５に記載のオブジェクト領域特定装置。
【請求項７】
前記位置情報は、クラスアクティベーションマップの少なくとも一部であることを特徴とする請求項１乃至６の何れか一項に記載のオブジェクト領域特定装置。
【請求項８】
前記動き情報は、オプティカルフローであることを特徴とする請求項１乃至７の何れか一項に記載のオブジェクト領域特定装置。
【請求項９】
コンピュータにより実行されるオブジェクト領域特定方法において、
時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得ステップと、
画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得ステップと、
前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得ステップと、
前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成ステップと、
を含むことを特徴とするオブジェクト領域特定方法。
【請求項１０】
コンピュータを、
時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得手段と、
画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得手段と、
前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得手段と、
前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成手段と、
として機能させることを特徴とするオブジェクト領域特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識において、オブジェクトのクラスの識別に影響を与える位置をマッピングする技術分野に関する。
【背景技術】
【０００２】
従来、コンピュータビジョンにおいて、畳み込みニューラルネットワーク（ＣＮＮ）を用いた画像認識の研究開発が盛んに行われている。ＣＮＮは、訓練データとなる画像からエンドツーエンドの学習が可能である。その一方で、ＣＮＮを用いたモデルは複雑であることから、モデルの解釈が難しいという面がある。そこで、そのようなモデルの解釈手法の一つとして、クラスアクティベーションマッピング（ＣＡＭ）が登場するに至っている（例えば、非特許文献１）。ＣＡＭは、ＣＮＮが画像からオブジェクトのクラスを識別したとき、その画像において、そのクラスの識別の根拠となる位置を示すクラスアクティベーションマップ（或いは、ヒートマップ、ローカリゼーションマップ）を出力する。このマップは、画像において、識別されたクラスのオブジェクトが存在する場所を大雑把に示していると言うことができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ramprasaath R. Selvaraju1,et al.、“Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization”、［令和2年3月3日検索］、[online]、2016年10月7日、インターネット<URL: https://arxiv.org/abs/1610.02391>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、クラスアクティベーションマップは、識別されたクラスのオブジェクトが存在する場所全体を正確に示すのではなく、他のクラスとの区別がしやすい場所を強調しやすいなどの性質がある。そのため、ＣＡＭを単純に利用しても、画像内のオブジェクトを囲うような領域、例えばバウンディングボックスを、精度よく特定することが難しい。【０００５】
本願発明は以上の点に鑑みてなされてものであり、その課題の一例は、画像においてオブジェクトが存在する位置に対応する領域を精度よく特定することが可能なオブジェクト領域特定装置、オブジェクト領域特定方法、及びオブジェクト領域特定プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一の側面は、時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得手段と、画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得手段と、前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得手段と、前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成手段と、を備えるオブジェクト領域特定装置であることを特徴とする。
【０００７】
この側面によれば、位置情報及び動き情報に基づいて、オブジェクトが存在する位置に対応する領域を示す領域情報が生成される。位置情報は、フレーム画像内のオブジェクトの識別に影響を与える位置を示す。従って、位置情報は、そのオブジェクトが存在する場所のうち、少なくともある程度の範囲の場所を示す蓋然性がある。動き情報は、そのオブジェクトの動きを示す。従って、そのオブジェクトが動いている場合、動き情報は、そのオブジェクトが存在する場所全体を少なくとも示す蓋然性がある。そのため、これらの情報を用いて領域情報を生成することで、画像においてオブジェクトが存在する位置に対応する領域を精度よく特定することができる。【０００８】
本発明の別の側面は、前記オブジェクト領域特定装置において、前記領域情報生成手段は、前記位置情報と前記動き情報とを統合することに基づいて、前記領域情報を生成することを特徴とする。【０００９】
この側面によれば、位置情報と動き情報との統合により、フレーム画像において、動きがある複数の範囲のうち、オブジェクトの識別に影響を与える位置に対応する範囲が特定される。従って、オブジェクトが存在する位置に対応する領域を精度よく特定することができる。【００１０】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記動き情報取得手段は、前記第１フレーム画像における各位置について、前記オブジェクトの移動方向及び移動距離を示す前記動き情報を生成し、前記領域情報生成手段は、前記位置情報と前記動き情報とを、位置ごとに足し合わせることに基づいて、前記領域情報を生成することを特徴とする。【００１１】
この側面によれば、オブジェクトの識別に影響を与える位置が、その位置における移動方向及び移動距離で変更される。【００１２】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記第２フレーム画像のうち、前記生成された領域情報により示される領域の画像を、画像内のオブジェクトを識別する第２モデルに入力することにより、前記第２フレーム画像内のオブジェクトを検出する検出手段を更に備えることを特徴とする。
【００１３】
この側面によれば、フレーム画像において、生成された領域情報により示される領域に対応する画像が、その画像内のオブジェクトを識別するモデルに入力される。従って、フレーム画像内のオブジェクトがこのモデルにより識別される。また、領域情報により、そのオブジェクトの位置に対応する領域が示される。従って、フレーム画像内のオブジェクトを精度よく検出することができる。また、精度の高い領域情報が自動的に生成されるので、人間による領域情報のアノテーションを必要とする機械学習なくして、オブジェクトの検出が可能である。【００１４】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記生成された領域情報に基づいて、前記モデルを訓練する訓練手段を更に備えることを特徴とする。【００１５】
この側面によれば、自動的に生成された領域情報に基づいて、モデルが訓練されるので、オブジェクトの位置に対応する領域を特定するための機械学習のために、人間による領域情報のアノテーションが不要となる。【００１６】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記位置情報取得手段は、前記モデルに更に前記第２フレーム画像を入力して、前記第２フレーム画像上の位置であって、前記第２フレーム画像内のオブジェクトの識別に影響を与える位置を示す第２位置情報を取得し、前記訓練手段は、前記第２フレーム画像から、前記生成された領域情報により示される領域の第１画像を抽出するする第１抽出手段と、前記取得された第２位置情報に基づいて、前記第２フレーム画像上の領域であって、前記オブジェクトの識別に影響を与える位置に対応する領域を示す第２領域情報を生成する第２領域情報生成手段と、前記第２フレーム画像から、前記取得された第２領域情報により示される領域の第２画像を抽出する第２抽出手段と、前記取得された第１画像及び第２画像に基づいて、前記モデルの重みを更新する更新手段と、を含むことを特徴とする。
【００１７】
この発明によれば、第２フレーム画像のうち、位置情報及び動き情報に基づいて生成された領域情報により示される領域の第１画像と、第２フレーム画像のうち、第２位置情報に基づいて生成された第２領域情報により示される領域の第２画像と、に基づいて、モデルの重みが更新される。位置情報により示される位置であって、第１フレーム画像においてオブジェクトの識別に影響を与える位置が、動き情報により示される動きで変更される場合、変更後の位置は、第２フレーム画像において、オブジェクトの識別に影響を与える位置に対応するものと考えられる。そのため、第１画像及び第２画像を用いることで、モデルを適切に訓練することができる。【００１８】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記訓練手段は、前記抽出された第１画像の特徴を取得する第１特徴取得手段と、前記抽出された第２画像の特徴を取得する第２特徴取得手段と、を更に含み、前記更新手段は、前記取得された第１特徴及び第２特徴に基づいて、前記モデルの重みを更新することを特徴とする。【００１９】
この発明によれば、第１画像の特徴及び第２画像の特徴に基づいて、モデルの重みが更新される。第２領域情報は、第２フレーム画像において、オブジェクトの識別に影響を与える位置に対応する領域を示す。従って、その領域から抽出された第２画像の特徴は、検出される対象となるオブジェクトの特徴を示す。そこで、例えば、第１画像の特徴と第２画像の特徴とが互いに近づくように、重みが更新されることにより、モデルを適切に訓練することができる。【００２０】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記位置情報は、クラスアクティベーションマップの少なくとも一部であることを特徴とする。【００２１】
本発明の更に別の側面は、前記オブジェクト領域特定装置において、前記動き情報は、オプティカルフローであることを特徴とする。【００２２】
本発明の更に別の側面は、コンピュータにより実行されるオブジェクト領域特定方法において、時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得ステップと、画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得ステップと、前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得ステップと、前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成ステップと、を含むことを特徴とする。
【００２３】
本発明の更に別の側面は、コンピュータを、時間的に連続する第１フレーム画像及び第２フレーム画像を取得するフレーム画像取得手段と、画像内のオブジェクトを識別するモデルに前記第１フレーム画像を入力して、前記第１フレーム画像上の位置であって、前記第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する位置情報取得手段と、前記第１フレーム画像及び前記第２フレーム画像に基づいて、前記第１フレーム画像内における前記オブジェクトの動きを示す動き情報を取得する動き情報取得手段と、前記取得された位置情報と前記取得された動き情報とを足し合わせることに基づいて、前記第１フレーム画像上の領域であって、前記オブジェクトが存在する位置に対応する領域を示す領域情報を生成する領域情報生成手段と、として機能させるオブジェクト領域特定プログラムであることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、画像においてオブジェクトが存在する位置に対応する領域を精度よく特定することができる。
【図面の簡単な説明】
【００２５】
【図１】一実施形態に係る画像処理装置１の概要構成の一例を示すブロック図である。
【図２】一実施形態に係る画像処理装置１のシステム制御部１１及びＧＰＵ１８の機能ブロックの一例を示す図である。
【図３】モデル２の構成例を示す図である。
【図４】新位置情報５３０の生成例を示す図である。
【図５】オブジェクト１００の位置に対応する領域の推定例を示す図である。
【図６】学習段階における画像処理装置１の処理の流れの一例を示す図である。
【図７】実用段階における画像処理装置１の処理の流れの一例を示す図である。
【図８】画像処理装置１のシステム制御部１１及びＧＰＵ１８による学習処理の一例を示すフローチャートである。
【図９】画像処理装置１のシステム制御部１１及びＧＰＵ１８によるオブジェクト検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態においては、画像からオブジェクトを検出するモデルを生成するための学習の実行と、生成されたモデルを用いてオブジェクトの検出を行う画像処理装置に対して本発明を適用した場合の実施形態である。オブジェクトの検出は、画像内に存在するオブジェクトが存在する位置に対応する領域を特定することを少なくとも含む。オブジェクトの検出は、オブジェクトのクラス及びそのオブジェクトが存在する位置に対応する領域の両方を特定することであってもよいし、特定のオブジェクト若しくは特定のクラスのオブジェクトが存在する位置に対応する領域を特定することであってもよい。なお、学習を実行する装置と、オブジェクト検出を行う装置とは別々の装置であってもよい。
【００２７】
［１．画像処理装置の構成］
先ず、画像処理装置１の構成について、図１を用いて説明する。図１は、本実施形態に係る画像処理装置１の概要構成の一例を示すブロック図である。図１に示すように、画像処理装置１は、システム制御部１１と、システムバス１２と、入出力インターフェース１３と、記憶部１４と、通信部１５と、入力部１６と、表示部１７と、ＧＰＵ（Graphics Processing Unit）１８と、ＧＰＵメモリ１９（または、ビデオＲＡＭ）と、撮像部２０と、を備えている。システム制御部１１と入出力インターフェース１３とは、システムバス１２を介して接続されている。画像処理装置１の例として、サーバ装置、パーソナルコンピュータ等が挙げられる。
【００２８】
システム制御部１１は、ＣＰＵ（Central Processing Unit）１１ａ、ＲＯＭ（Read Only Memory）１１ｂ、ＲＡＭ（Random Access Memory）１１ｃ等により構成されている。
【００２９】
入出力インターフェース１３は、システム制御部１１と、記憶部１４、通信部１５、入力部１６、表示部１７、ＧＰＵ１８、ＧＰＵメモリ１９及び撮像部２０と、の間のインターフェース処理を行う。
【００３０】
記憶部１４は、例えば、ハードディスクドライブ又はソリッドステートドライブ等により構成されている。この記憶部１４には、生成されたモデル２、及びモデル２の生成に用いられる訓練データ等が記憶される。訓練データは、動画データ及びその動画データにより示される動画内に存在するオブジェクトのクラスのラベル（Ground Truth）を含む。動画データのフォーマットの例として、Ｈ．２６４、ＭＰＥＧ−２等が挙げられる。記憶部１４には、更にオペレーティングシステム、モデル生成用のプログラム、オブジェクト検出用のプログラム等が記憶されている。訓練データ及び各種プログラムは、例えば、所定のコンピュータからネットワークを介して取得されるようにしてもよいし、光ディスク、メモリカード、磁気テープ等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。モデル２を生成する装置とオブジェクト検出を行う装置とが別々の装置である場合、生成されたモデル２の受け渡しは、ネットワークを介して行われてもよいし、記録媒体を介して行われてもよい。
【００３１】
通信部１５は、例えばネットワークインターフェースコントローラ等により構成されている。通信部１５は、インターネット、ＬＡＮ（Local Area Network）等の所定のネットワークを介して他のコンピュータと接続し、そのコンピュータとの通信状態を制御する。
【００３２】
入力部１６は、オペレータによる操作を受け付け、操作内容に対応する信号をシステム制御部１１に出力する。入力部１６の例として、キーボード、マウス、タッチパネル等が挙げられる。
【００３３】
表示部１７は、例えば、グラフィックコントローラ及びディスプレイ等により構成されている。表示部１７は、システム制御部１１の制御により、画像、文字等の情報を表示する。ディスプレイのパネルの例として、液晶パネル、有機ＥＬ（Light Emitting）パネル等が挙げられる。
【００３４】
ＧＰＵ１８は、システム制御部１１からの制御により、機械学習における行列演算等を実行する。ＧＰＵ１８は、複数の演算を並列にパイプライン処理する。ＧＰＵ１８とＧＰＵメモリ１９とは接続されている。ＧＰＵメモリ１９は、ＧＰＵ１８による演算に用いられるデータや演算結果を記憶する。なお、システム制御部１１が機械学習における全ての演算を実行する場合、ＧＰＵ１８及びＧＰＵメモリ１９は不要である。
【００３５】
撮像部２０は、例えばＣＣＤ（Charge-Coupled Device）センサ、又はＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサ等を備えるデジタルカメラを含む。撮像部２０は、システム制御部１１による制御に基づき、動画を撮像する。撮像部２０は、撮像された動画を示す動画データをシステム制御部１１又は記憶部１４に出力する。学習を実行する装置と、オブジェクト検出を行う装置とが別々の装置である場合においては、学習を実行する装置は、撮像部２０を備えなくてもよい。また、撮像部２０により撮像される動画からリアルタイムでオブジェクト検出を実行するのではなく、他のコンピュータ又は記録媒体から取得された動画データからオブジェクト検出を実行する場合、画像処理装置１は、撮像部２０を備えなくてもよい。
【００３６】
画像処理装置１自身は、入力部１６、表示部１７、ＧＰＵ１８、ＧＰＵメモリ１９及び撮像部２０の少なくとも何れか一は備えなくてもよい。これらのうち少なくとも一つは、有線又は無線を介して画像処理装置１と接続されてもよい。
【００３７】
［２．システム制御部の機能概要］
次に、図２乃至図７を用いて、システム制御部１１及びＧＰＵ１８の機能概要について説明する。図２は、本実施形態に係る画像処理装置１のシステム制御部１１及びＧＰＵ１８の機能ブロックの一例を示す図である。システム制御部１１及びＧＰＵ１８は、ＣＰＵ１１ａが、記憶部１４に記憶されているプログラムに含まれる各種コード等を読み出し実行することにより、図２に示すように、フレーム取得部１１１、位置情報取得部１１２、動き情報取得部１１３、領域情報生成部１１４、訓練部１１５、検出部１１６等として機能する。
【００３８】
図３は、モデル２の構成例を示す図である。図３に示すように、モデル２は、ＣＡＭ検出部２１０と、フロー検出部２２０と、領域推定アルゴリズム２３０と、を含む。ＣＡＭ検出部２１０は、モデル２１１を含む。
【００３９】
［２−１．基本機能］
フレーム取得部１１１は、時間的に連続するフレーム画像を取得する。フレーム画像は、動画に含まれる静止画である。この動画には、検出される対象であるオブジェクト１００が映っていると想定される。このオブジェクト１００は、動画内で動いていると想定される。動画に含まれるフレーム画像のうち、少なくとも一のフレーム画像は、オブジェクト１００を含まなくてもよい。すなわち、オブジェクト１００がフレームアウトしたりフレームインしたりしてもよい。また、幾つかのフレーム画像間においては、オブジェクト１００が全く動かなくてもよい。この動画は、時間的に連続するフレームを含む。時間的に連続するフレームとは、例えば、撮像時刻が連続するフレームである。例えば、フレームレートが30fpsである場合、30分の1秒間隔でフレームが撮像される。フレーム取得部１１１は、撮像順序に従って、動画データから順次フレーム画像を取得してもよい。図３において、フレーム取得部１１１は、例えばフレームｔ−１及びフレームｔを取得する。フレームｔ−１は、動画に含まれるフレーム画像のうち、撮像順序に従ってｔ−１番目のフレーム画像である。フレームｔは、ｔ番目のフレーム画像である。従って、フレームｔ−１とフレームｔとは時間的に連続する。
【００４０】
位置情報取得部１１２は、モデル２１１に、フレーム取得部１１１により取得されたフレームｔ−１を入力する。これにより、位置情報取得部１１２は、フレームｔ−１上の位置であって、フレームｔ−１内のオブジェクト１００の識別に影響を与える位置を示す位置情報５１０を取得する。モデル２１１は、画像内のオブジェクトを識別する。従って、位置情報５１０は、モデル２１１による識別に影響を与える位置を示す。モデル２１１は、分類器であってもよい。モデル２１１は、例えばＣＮＮであってもよい。例えば、モデル２１１は、畳み込み層、プーリング層、全結合層、ソフトマックス関数等を含んでもよい。モデル２１１において、畳み込み層及びプーリング層は、フレームｔ−１の特徴マップを生成する。全結合層は、特徴マップから、フレームｔ−１の特徴を抽出する。ソフトマックス関数は、抽出された特徴から、フレームｔ−１における各クラスの存在確率を示す値を生成する。ＣＮＮの例として、ResNet、GoogleNet、AlexNet、VGGNet等が挙げられる。ＣＡＭ検出部２１０は、位置情報を生成する。位置情報取得部１１２は、ＣＡＭ検出部２１０から位置情報を取得する。オブジェクト１００の識別に影響を与える位置とは、例えばオブジェクト１００の識別の根拠となる位置であってもよい。また、オブジェクト１００の識別に影響を与える位置とは、オブジェクト１００の識別に重要な位置であってもよい。また、オブジェクト１００の識別に影響を与える位置とは、オブジェクト１００を、そのオブジェクト１００のクラスとは異なるクラスのオブジェクトと区別化する位置であってもよい。また、オブジェクト１００の識別に影響を与える位置とは、モデル２１１が生成する特徴マップにおいて、その位置の値が変化することによって、モデル２１１から出力される確率値が、他の位置の場合と比較して大きく変化することであってもよい。位置情報５１０は、例えばＣＡＭアルゴリズムにより生成されるクラスアクティベーションマップ又はその一部であってもよい。ＣＡＭのアルゴリズムの例として、Ｇｒａｄ−ＣＡＭ、Ｇｒａｄ−ＣＡＭ＋＋、Ｓｍｏｏｔｈ  Ｇｒａｄ等が挙げられる。例えば、ＣＡＭ検出部２１０は、或るオブジェクトのクラスが与えられると、そのクラスに応じて、各特徴マップについて、モデル２１１の最終層の勾配を算出してもよい。ＣＡＭ検出部２１０は、算出された勾配に基づいて、各特徴マップの重みを算出してもよい。ＣＡＭ検出部２１０は、特徴マップに重みを掛けて、これらの特徴マップを足し合わせることにより、位置情報５１０を生成してもよい。位置情報５１０は、例えば識別に対する影響度合い又は重要度を示す値を位置ごとに示す二次元のヒートマップであってもよい。或いは、位置情報５１０は、影響度合い又は重要度合いが所定値以上である位置を示す位置行列であってもよい。すなわち、位置情報５１０は、フレームｔにおいて、オブジェクト１００の識別について重要な位置を示してもよい。位置情報取得部１１２は、アクティベーションマップから、影響度合い又は重要度合いが所定値以上である位置を抽出して、その位置行列を生成してもよい。
【００４１】
動き情報取得部１１３は、フレーム取得部１１１により取得されたフレームｔ−１及びフレームｔに基づいて、フレームｔ−１内におけるオブジェクト１００の動きを示す動き情報５２０を取得する。オブジェクト１００の動きとは、フレームｔ−１とフレームｔとの間での、オブジェクト１００の変位であってもよい。フレームｔ−１とフレームｔとの関係において、フレームｔ−１は、移動前におけるオブジェクト１００に対応し、フレームｔは、移動後におけるオブジェクトに対応する。動き情報５２０は、例えば、移動方向及び移動距離（或いは移動速度）を示してもよい。例えば、動き情報５２０は、フレームｔ−１における各位置について、移動方向及び移動距離を示すベクトルを含んでもよい。例えば、動き情報５２０は、フレームｔ−１の各位置について、その位置の座標と、移動後の座標との差分を示してもよい。例えば、動き情報５２０は、オプティカルフローであってもよい。例えば、動き情報取得部１１３は、フレームｔ−１及びフレームｔをフロー検出部２２０に入力して、フロー検出部２２０から動き情報５２０を取得する。フロー検出部２２０は、例えばＣＮＮを含むモデルであってもよい。フロー検出部２２０の例として、FlowNet、FlowNet 2.0、LiteFlowNet等が挙げられる。フロー検出部２２０として、予め学習済みのモデルが使用されてもよい。フロー検出部２２０は、予め記憶部１４に記憶されてもよく、必要なときにＲＡＭ１４又はＧＰＵメモリ１９にロードされてもよい。オプティカルフローの生成方法として、機械学習を用いない方法が用いられてもよい。そのような方法の例として、ブロックマッチング法、勾配法等が挙げられる。
【００４２】
領域情報生成部１１４は、位置情報取得部１１２により取得された位置情報５１０及び動き情報取得部１１３により取得された動き情報５２０に基づいて、フレーム取得部１１１により取得されたフレームｔ上の領域であって、オブジェクト１００が存在する位置に対応する領域を示す領域情報５４０を生成する。オブジェクト１００が存在する位置に対応する領域とは、例えばオブジェクト１００を囲むような領域であってもよい。領域の形状は、例えば矩形であってもよい。この領域は、例えばバウンディングボックスであってもよい。領域情報５４０は、例えばその領域の座標及びそのサイズを含んでもよい。領域の座標は、中心座標又は何れかの頂点の座標であってもよい。領域のサイズは、領域の高さ及び幅を含んでもよい。
【００４３】
領域情報生成部１１４は、領域推定アルゴリズム２３０に従って、領域情報５４０を生成してもよい。例えば、領域情報生成部１１４は、位置情報５１０と動き情報５２０とを統合することに基づいて、領域情報５４０を生成してもよい。例えば、領域情報生成部１１４は、位置情報５１０と動き情報５２０とを、位置ごとに足し合わせることに基づいて、領域情報５４０を生成してもよい。例えば、領域情報生成部１１４は、位置情報５１０及び動き情報５２０に基づいて、新位置情報５３０を生成してもよい。図４は、新位置情報５３０の生成例を示す図である。図４において、位置情報５１０は、例えば影響度合い又は重要度合いが所定値以上である位置（オブジェクト１００の識別に重要な位置）のＸ座標及びＹ座標をそれぞれ示す位置行列である。図４において、動き情報５２０は、フレームｔ−１における各位置について、その位置のＸ座標及びＹ座標と、移動先の位置のＸ座標及びＹ座標と、の差分を示す位置情報行列である。領域情報生成部１１４は、例えば位置情報５１０の行列と、動き情報５２０の行列とを、要素ごとに足し合わせることにより、新位置情報５３０を生成してもよい。具体的には、位置情報５１０と動き情報５２０との間で座標が一致する要素ごとに、足し合わせが行われてもよい。これにより、フレームｔ−１においてオブジェクト１００の識別に影響を与える位置が、フレームｔにおける移動後の位置に変換されてもよい。その他の位置については、動き情報５２０がそのまま新位置情報５３０に引き継がれてもよい。
【００４４】
領域情報生成部１１４は、新位置情報５３０に基づいて、オブジェクト１００の位置に対応する領域を推定する。例えば、領域情報生成部１１４は、新位置情報５３０において、移動方向及び移動距離が互いに同一又は類似する位置の範囲を、オブジェクトの場所の候補として一又は複数特定してしてもよい。また、領域情報生成部１１４は、新位置情報５３０において、移動後において、識別に影響を与える位置の範囲を特定してもよい。領域情報生成部１１４は、オブジェクトの場所の候補のうち、移動後において、識別に影響を与える位置の範囲を含む候補を、オブジェクト１００の場所と推定してもよい。領域情報生成部１１４は、オブジェクト１００の場所に推定された範囲を外接する領域５３１を設定してもよい。領域情報生成部１１４は、領域５３１を示す領域情報５４０を生成する。
【００４５】
前述したように、位置情報５１０は、オブジェクト１００の識別に影響を与える位置を示す。位置情報５１０においては、オブジェクト１００が他のクラスのオブジェクトと視覚的に区別がしやすい箇所の値が、他の部分の値と比べて高くなりやすい。従って、位置情報５１０は、オブジェクト１００の大雑把な位置又はオブジェクト１００の一部分の位置を示す蓋然性がある。そのため、位置情報５１０は、オブジェクト１００が存在する範囲全体を正確に示すとは限らない。一方、動き情報５２０は、オブジェクト１００の動きを示す。フレームｔ−１とフレームｔとの間でオブジェクト１００が動いていると仮定すれば、動き情報５２０において、オブジェクト１００が存在する範囲全体について、動きがあることが示される蓋然性がある。しかしながら、検出対象であるオブジェクト１００以外に、フレーム画像内に動いているオブジェクトが存在する場合、その範囲についても、動きがあることが示される。そのため、動き情報５２０のみでは、オブジェクト１００の場所を特定することは難しい。オブジェクトが移動する方向及び距離の少なくとも何れか一方は、オブジェクト間で異なる可能性がある。そこで、位置情報５１０と動き情報５２０とを統合することで、フレーム画像において動きがある複数の範囲のうち、オブジェクト１００の識別に影響を与える位置を含む範囲を特定することができる。そのため、新位置情報５３０により、オブジェクト１００が存在する領域を精度よく推定することが可能となる。
【００４６】
図５は、オブジェクト１００の位置に対応する領域の推定例を示す図である。動いているオブジェクト１００、１１０及び１２０が撮像されて、動画データが生成されたとする。オブジェクト１００、１１０及び１２０のクラスは互いに異なる。図５に示すように、フレームｔ−１は、オブジェクト１００、１１０及び１２０を含む。オブジェクト１００のクラスについて、位置情報５１０が生成される場合、その位置情報５１０は、例えばオブジェクト１００が存在する位置のうち、一部の位置３００を、識別に影響を与える位置として示す。フレームｔ−１及びフレームｔに基づいて生成される動き情報５２０において、オブジェクト１００、１１０及び１２０それぞれが存在する範囲４００、４１０及び４２０について、動きがあることを示している。位置情報５１０と動き情報５２０を統合して生成された新位置情報５３０においては、範囲４００、４１０及び４２０のうち、範囲４００が、位置３００と重複している。従って、例えば範囲４００を囲むような領域５３１が推定される。
【００４７】
［２−２．学習段階］
図６は、学習段階における画像処理装置１の処理の流れの一例を示す図である。画像処理装置１は、弱教師あり学習により、オブジェクトを検出するためのモデル２を生成する。通常、オブジェクトを検出するためのモデルを生成する場合、訓練データに入れるラベルとして、領域情報が必要である。領域情報は、人間の手動によるアノテーションが必要である。また、半教師あり学習であっても、手動による領域情報のアノテーションを完全に排除することはできない。これに対して、画像処理装置１は、人間の手動による領域情報のアノテーションなくして、オブジェクトを検出するためのモデルを生成する。これにより、アノテーションによる作業コストを省略することができる。モデル２の生成に必要なラベルは、オブジェクトのクラスである。
【００４８】
学習段階において、フレーム取得部１１１は、訓練データを取得する。訓練データは、動画データ及びクラスのラベルを含む。例えば、訓練データは、記憶部１４に予め記憶されてもよい。
【００４９】
位置情報取得部１１２は、モデル２１１に、フレームｔ−１を入力することにより、フレーム取得部１１１によりラベルとして取得されたクラスに対応する位置情報５１０を、ＣＡＭ検出部２１０から取得する。位置情報取得部１１２は、モデル２１１に、更にフレームｔを入力することにより、ラベルとして取得されたクラスに対応する位置情報５６０を、ＣＡＭ検出部２１０から取得する。位置情報取得部１１２が、動画データから順次フレーム画像を取得し、位置情報取得部１１２が、順次フレーム画像をモデル２１１に入力する場合には、位置情報５６０を取得することは、位置情報５１０を取得することと同一である。
【００５０】
動き情報取得部１１３及び領域情報生成部１１４の機能は、３−１項で述べたとおりである。
【００５１】
訓練部１１５は、領域情報生成部１１４により生成された領域情報５４０に基づいて、モデル２１１を訓練する。
【００５２】
例えば、訓練部１１５は、フレームｔから、領域情報５４０により示される領域５３１の画像５５０を抽出する。
【００５３】
また、訓練部１１５は、位置情報取得部１１２により取得された位置情報５６０に基づいて、フレームｔ上の領域５６１であって、オブジェクト１００の識別に影響を与える位置に対応する領域５６１を示す領域情報５７０を生成する。例えば、訓練部１１５は、位置情報５６０において、影響度合い又は重要度を示す値が所定値以上である範囲を特定してもよい。訓練部１１５は、特定された範囲を外接する領域５６１を設定してもよい。領域５６１の形状は矩形であってもよい。領域情報５７０は、領域５６１の座標及びサイズを含んでもよい。
【００５４】
訓練部１１５は、フレームｔから、領域情報５７０により示される領域５６１の画像５８０を抽出する。
【００５５】
訓練部１１５は、画像５５０及び画像５８０に基づいて、モデル２１１の重みを更新する。モデル２１１のバイアスが更に更新されてもよい。
【００５６】
例えば、訓練部１１５は、画像５５０の特徴を取得する。例えば、訓練部１１５は、画像５５０をモデル２４０に入力することにより、画像５５０の特徴を示す特徴情報５９０を取得してもよい。モデル２４０は、画像の特徴を抽出するモデルである。モデル２４０は、分類器であってもよい。モデル２４０は、ＣＮＮであってもよい。例えば、モデル２４０は、畳み込み層、プーリング層、全結合層及びソフトマックス関数を含んでもよい。モデル２４０において、畳み込み層及びプーリング層は、画像５５０の特徴マップを生成する。全結合層は、生成された特徴マップを変換して、特徴情報５９０を生成する。特徴情報５９０は、例えば一次元のベクトルであってもよい。
【００５７】
また、訓練部１１５は、画像５８０の特徴を取得する。例えば、訓練部１１５は、画像５８０をモデル２６０に入力することにより、画像５８０の特徴を示す特徴情報６００を取得してもよい。モデル２６０の構造及び機能は、モデル２４０の構造及び機能と同一であってもよい。モデル２４０とモデル２６０とは、重みを共有してもよい。或いは、モデル２４０がモデル２６０を兼ねてもよい。
【００５８】
訓練部１１５は、画像５５０の特徴及び画像５８０の特徴に基づいて、モデル２１１の重みを更新してもよい。例えば、訓練部１１５は、特徴情報５９０と特徴情報６００との間の誤差６１０を算出又は取得してもよい。例えば、所定の損失関数を用いて誤差６１０が算出される。訓練部１１５は、算出された誤差６１０に基づいて、モデル２１１の重みを更新してもよい。例えば、訓練部１１５は、誤差６１０を逆伝搬する。これにより、訓練部１１５は、モデル２４０及び２６０の重みを更新し、更にモデル２１１の重みを更新する。誤差逆伝搬により、特徴情報５９０と特徴情報６００とが互いに近づくように、モデル２１１、２４０及び２６０が訓練される。
【００５９】
図４を用いて説明した例において、位置情報５１０と動き情報５２０とを統合することにより、フレームｔ−１においてオブジェクト１００の識別に影響を与える重要な位置に、動きが加わることで、それらの位置が、フレームｔにおける位置に変換されるものと推定される。この観点から、新位置情報５３０により示される重要な位置と、位置情報５６０により示される重要な位置とは、対応するものと想定される。また、領域情報５７０は、フレームｔにおいて、オブジェクト１００の識別に影響を与える位置に対応する領域５６１を示す。従って、領域５６１から抽出された画像５８０の特徴は、オブジェクト１００の特徴を表すと言える。そこで、特徴情報５９０と特徴情報６００とが互いに近づくようにモデル２１１を訓練することで、適切な学習が行われる。そして、新位置情報５３０を用いた、オブジェクト１００が存在する領域５３１の推定精度が、学習前よりも向上する。
【００６０】
訓練部１１５は、ラベルとして取得されたクラスと、モデル２４０によるクラスの識別結果と間の分類誤差に更に基づいて、モデル２４０、２６０及び２１１を訓練してもよい。例えば、訓練部１１５は、分類誤差を逆伝搬することにより、モデル２４０、２６０及び２１１の重みを更新してもよい。
【００６１】
訓練部１１５は、モデル２１１の学習を終えると、モデル２を記憶部１４に記憶させる。モデル２において、学習によりパラメータが更新されるのはモデル２１１であるので、訓練部１１５は、モデル２１１を記憶部１４に記憶させればよい。
【００６２】
［２−３．実用段階］
図７は、実用段階における画像処理装置１の処理の流れの一例を示す図である。
【００６３】
学習終了後の実用段階において、フレーム取得部１１１は、例えば撮像部２０による動画の撮像中に、リアルタイムで撮像部２０から順次フレームのデータを取得してもよい。或いは、フレーム取得部１１１は、記憶部１４に予め記憶されている動画データからフレーム画像のデータを取得してもよい。或いは、フレーム取得部１１１は、ネットワークを介して他のコンピュータからストリーミングで送信されてくる動画データから、フレーム画像のデータを取得してもよい。
【００６４】
位置情報取得部１１２は、モデル２１１に、フレームｔ−１を入力することにより、一又は複数のクラスにそれぞれ対応する位置情報５１０を、ＣＡＭ検出部２１０から取得してもよい。予め定められた一のクラスのオブジェクト１００を検出する場合、位置情報取得部１１２は、そのクラスに対応する位置情報５１０のみを取得してもよい。オブジェクト１００のクラスを識別する場合、位置情報取得部１１２は、例えば全クラスのそれぞれの位置情報５１０を取得してもよい。或いは、位置情報取得部１１２は、例えば識別可能な複数のクラスのうち、モデル２１１から出力される存在確率を示す値が所定値以上である１又は複数のクラスそれぞれについて、位置情報５１０を取得してもよい。
【００６５】
動き情報取得部１１３の機能は、３−１項で述べたとおりである。
【００６６】
領域情報生成部１１４は、動き情報取得部１１３により動き情報５２０が取得された各クラスについて、領域情報５４０を生成する。予め定められた一のクラスのオブジェクト１００を検出する場合、領域情報生成部１１４は、オブジェクト１００の検出結果として、領域情報５４０のみを出力してもよい。
【００６７】
検出部１１６は、フレーム取得部１１１により取得されたフレームｔのうち、領域情報生成部１１４により取得された領域情報５４０により示される領域５３１の画像５５０を、モデル３に入力することにより、オブジェクト１００を検出してもよい。モデル３は、画像内のオブジェクトを識別するモデルである。モデル３は、例えば分類器であってもよい。モデル３は、ＣＮＮであってもよい。モデル３は、学習が完了したモデル２４０であってもよい。モデル３は、画像５５０から、クラス情報６２０を生成する。クラス情報６２０は、画像５５０内のオブジェクトのクラスを示す情報である。例えば、クラス情報６２０は、各クラスのオブジェクトの存在確率を示す値を含んでもよい。或いは、クラス情報６２０は、識別可能な複数のクラスのうち、画像５５０内における存在確率が最も高いオブジェクトのクラスを識別する情報であってもよい。
【００６８】
検出部１１６は、画像５５０が抽出されたクラスごとに、画像５５０をモデル３に入力して、クラス情報を取得してもよい。検出部１１６は、画像５５０が抽出されたクラスごとに、クラス情報からそのクラスの存在確率を特定してもよい。そして、検出部１１６は、存在確率が最も高いクラスのクラス情報及びそのクラスについて生成された領域情報５４０を、オブジェクト１００の検出結果として出力してもよい。或いは、検出部１１６は、存在確率が所定値以上である各クラスについて、クラス情報及び領域情報５４０を出力してもよい。
【００６９】
オブジェクト１００の検出結果の出力先の例としては、ＲＡＭ１１ｃ、記憶部１４、表示部１７、画像処理装置１以外のコンピュータ等が挙げられる。
【００７０】
［３．画像処理装置の動作］
次に、画像処理装置１の動作について、図８及び図９を用いて説明する。図８は、画像処理装置１のシステム制御部１１及びＧＰＵ１８による学習処理の一例を示すフローチャートである。モデル生成用のプログラムに含まれるプログラムコードに従って、システム制御部１１及びＧＰＵ１８は学習処理を実行する。例えば、入力部１６を用いたオペレータからの指示に応じて、学習処理が実行されてもよい。
【００７１】
図８に示すように、フレーム取得部１１１は、記憶部１４に記憶された訓練データに含まれる第一組の動画データ及びクラスのラベルを取得する（ステップＳ１０１）。次いで、フレーム取得部１１１は、フレーム番号ｔを１に設定する（ステップＳ１０２）。フレーム取得部１１１は、取得された動画データから、フレームｔを取得する。次いで、位置情報取得部１１２は、フレームｔをモデル２１１に入力することにより、ラベルとして取得されたクラスに対応する位置情報５１０を取得する（ステップＳ１０３）。
【００７２】
次いで、フレーム取得部１１１は、フレーム番号ｔを１増加させる（ステップＳ１０４）。フレーム取得部１１１は、取得された動画データから、フレームｔを取得する。次いで、動き情報取得部１１３は、フレームｔ−１及びフレームｔをフロー検出部２２０に入力することにより、動き情報５２０を取得する（ステップＳ１０５）。この時点におけるフレームｔ−１は、ステップＳ１０２で取得されたフレームである。
【００７３】
次いで、領域情報生成部１１４は、位置情報５１０と動き情報５２０とを統合して、新位置情報５３０を生成する（ステップＳ１０６）。次いで、領域情報生成部１１４は、生成された新位置情報５３０に基づいて、領域情報５４０を生成する（ステップＳ１０７）。次いで、領域情報生成部１１４は、フレームｔから、領域情報５４０により示される領域５３１により示される領域の画像５５０を抽出する（ステップＳ１０８）。
【００７４】
次いで、訓練部１１５は、フレームｔをモデル２１１に入力することにより、ラベルとして取得されたクラスの位置情報５１０を取得する（ステップＳ１０９）。次いで、訓練部１１５は、取得された位置情報５１０に基づいて、領域情報５７０を生成する（ステップＳ１１０）。次いで、訓練部１１５は、フレームｔから、領域情報５７０により示される領域５６１の画像５８０を抽出する（ステップＳ１１１）。
【００７５】
次いで、訓練部１１５は、抽出された画像５５０をモデル２４０に入力することにより、特徴情報５９０を取得する。また、訓練部１１５は、抽出された画像５８０をモデル２６０に入力することにより、特徴情報６００を取得する。（ステップＳ１１２）。次いで、訓練部１１５は、特徴情報５９０と特徴情報６００との間の誤差６１０を算出する。（ステップＳ１１３）。次いで、訓練部１１５は、算出された誤差６１０を逆伝搬することにより、モデル２４０、２６０及び２１１の重み及びバイアスを更新する（ステップＳ１１４）。なお、説明の便宜上、一フレームごとに重みが更新されているが、例えば所定数のフレームを含むバッチごとに又は動画データごとに重みが更新されてもよい。
【００７６】
次いで、訓練部１１５は、取得された動画データの中に、フレームｔ＋１があるか否かを判定する（ステップＳ１１５）。フレームｔ＋１がある場合（ステップＳ１１５：ＹＥＳ）、処理はステップＳ１０４に進む。一方、フレームｔ＋１がない場合（ステップＳ１１５：ＮＯ）、訓練部１１５は、訓練データの中に次の動画データがあるか否かを判定する（ステップＳ１１６）。次の動画データがある場合（ステップＳ１１６：ＹＥＳ）、フレーム取得部１１１は、訓練データから、次の組の動画データ及びクラスのラベルを取得して（ステップＳ１１７）、処理はステップＳ１０２に進む。一方、次の動画データがない場合（ステップＳ１１６：ＮＯ）、訓練部１１５は、学習を終了させるか否かを判定する（ステップＳ１１８）。例えば、予め設定されたエポック数に相当する回数学習が実行された場合、訓練部１１５は、学習を終了させると判定してもよい。或いは、訓練部１１５は、テストデータを用いてオブジェクトの検出を行うことにより、誤差６１０を算出してもよい。訓練部１１５は、算出された誤差６１０の平均値が所定値未満である場合、学習を終了させると判定してもよい。学習が終了しない場合（ステップＳ１１８：ＮＯ）、処理はステップＳ１０１に進む。学習が終了する場合（ステップＳ１１８：ＹＥＳ）、学習処理は終了する。
【００７７】
図９は、画像処理装置１のシステム制御部１１及びＧＰＵ１８によるオブジェクト検出処理の一例を示すフローチャートである。図９に示す処理例は、撮像部２０により撮像される動画からリアルタイムでオブジェクトを検出する場合の処理例である。例えば、図８に示す学習処理による学習が完了したモデル２１１を用いて、オブジェクト検出処理が実行される。システム制御部１１及びＧＰＵ１８は、オブジェクト検出用のプログラムに含まれるプログラムコードに従って、オブジェクト検出処理を実行する。例えば、システム制御部１１からの指示に基づいて、撮像部２０による動画の撮像が開始されたとき、オブジェクト検出処理が実行されてもよい。
【００７８】
図９に示すように、フレーム取得部１１１は、フレーム番号ｔを０に設定する（ステップＳ２０１）。次いで、フレーム取得部１１１は、フレーム番号ｔを１増加させる（ステップＳ２０２）。次いで、フレーム取得部１１１は、撮像部２０から、最新のフレームを、フレームｔとして取得する（ステップＳ２０３）。
【００７９】
次いで、フレーム取得部１１１は、フレーム番号ｔが１より大きいか否かを判定する（ステップＳ２０４）。フレーム番号ｔが１より大きくはない場合（ステップＳ２０４：ＮＯ）、処理はステップＳ２０２に進む。
【００８０】
一方、フレーム番号ｔが１より大きい場合（ステップＳ２０４：ＹＥＳ）、位置情報取得部１１２は、フレームｔ−１をモデル２１１に入力することにより、位置情報５１０を取得する（ステップＳ２０５）。ここで、位置情報取得部１１２は、モデル２１１から出力される識別結果に基づいて、一又は複数のクラスそれぞれに対応する位置情報５１０を取得する。
【００８１】
次いで、動き情報取得部１１３は、フレームｔ−１及びフレームｔをフロー検出部２２０に入力することにより、動き情報５２０を取得する（ステップＳ２０６）。
【００８２】
次いで、領域情報生成部１１４は、位置情報５１０が取得されたクラスごとに、位置情報５１０と動き情報５２０とを統合して、新位置情報５３０を生成する（ステップＳ２０７）。次いで、領域情報生成部１１４は、新位置情報５３０が生成されたクラスごとに、新位置情報５３０に基づいて、領域情報５４０を生成する（ステップＳ２０８）。次いで、領域情報生成部１１４は、領域情報５４０が生成されたクラスごとに、フレームｔから、領域情報５４０により示される領域５３１の画像５５０を抽出する（ステップＳ２０９）。
【００８３】
次いで、検出部１１６は、画像５５０が生成されたクラスごとに、画像５５０をモデル３に入力することにより、クラス情報６２０を取得する。検出部１１６は、モデル３による識別結果に基づいて、クラス情報６２０及び領域情報５４０を出力する（ステップＳ２１０）。
【００８４】
次いで、検出部１１６は、オブジェクト検出を終了させるか否かを判定する（ステップＳ２１１）。オブジェクト検出が終了する条件は、画像処理装置１の用途に応じて予め定められていてもよい。オブジェクト検出が終了しない場合（ステップＳ２１１：ＮＯ）、処理はステップＳ２０２に進む。一方、オブジェクト検出が終了する場合（ステップＳ２１１：ＹＥＳ）、オブジェクト検出処理は終了する。
【００８５】
以上説明したように、本実施形態によれば、画像処理装置１が、フレームｔ−１及びフレームｔを取得する。また、画像処理装置１が、モデル２１１にフレームｔ−１を入力して、フレームｔ−１上の位置であって、フレームｔ−１内のオブジェクト１００の識別に影響を与える位置を示す位置情報５１０を取得する。また、画像処理装置１が、フレームｔ−１及びフレームｔに基づいて、フレームｔ−１内におけるオブジェクト１００の動きを示す動き情報５２０を取得する。また、画像処理装置１が、取得された位置情報５１０及び動き情報５２０に基づいて、フレームｔ−１上の領域であって、オブジェクト１００が存在する位置に対応する領域を示す領域情報５４０を生成する。従って、位置情報５１０及び動き情報５２０に基づいて、オブジェクト１００が存在する位置に対応する領域を示す領域情報５４０が生成される。位置情報５１０は、フレーム画像内のオブジェクト１００の識別に影響を与える位置を示す。従って、位置情報５１０は、そのオブジェクト１００が存在する場所のうち、少なくともある程度の範囲の場所を示す蓋然性がある。動き情報５２０は、そのオブジェクト１００の動きを示す。従って、そのオブジェクト１００が動いている場合、動き情報５２０は、そのオブジェクト１００が存在する場所全体を少なくとも示す蓋然性がある。そのため、これらの情報を用いて領域情報５４０を生成することで、画像においてオブジェクト１００が存在する位置に対応する領域を精度よく特定することができる。
【００８６】
ここで、画像処理装置１が、位置情報５１０と動き情報５２０とを統合することに基づいて、領域情報５４０を生成してもよい。この場合、位置情報５１０と動き情報５２０との統合により、フレーム画像において、動きがある複数の範囲のうち、オブジェクト１００の識別に影響を与える位置に対応する範囲が特定される。従って、オブジェクト１００が存在する位置に対応する領域を精度よく特定することができる。
【００８７】
ここで、画像処理装置１が、フレームｔ−１における各位置について、オブジェクト１００の移動方向及び移動距離を示す動き情報５２０を生成てもよい。また、画像処理装置１が、位置情報５１０と動き情報５２０とを、位置ごとに足し合わせることにより、領域情報５４０を生成してもよい。この場合、オブジェクト１００の識別に影響を与える位置が、その位置における移動方向及び移動距離で変更される。
【００８８】
また、画像処理装置１が、フレームｔのうち、取得された領域情報５４０により示される領域の画像５５０を、画像内のオブジェクト１００を識別するモデル３に入力することにより、フレームｔのオブジェクト１００を検出してもよい。この場合、フレーム画像において、生成された領域情報５４０により示される領域に対応する画像５５０が、その画像内のオブジェクト１００を識別するモデル３に入力される。従って、フレーム画像内のオブジェクト１００がこのモデル３により識別される。また、領域情報５４０により、そのオブジェクト１００の位置に対応する領域５３１が示される。従って、フレーム画像内のオブジェクト１００を精度よく検出することができる。また、精度の高い領域情報５４０が自動的に生成されるので、人間による領域情報のアノテーションを必要とする機械学習なくして、オブジェクト１００の検出が可能である。
【００８９】
また、画像処理装置１が、生成された領域情報５４０に基づいて、モデル２１１を訓練してもよい。この場合、自動的に生成された領域情報５４０に基づいて、モデル２１１が訓練されるので、オブジェクト１００の位置に対応する領域５３１を特定するための機械学習のために、人間による領域情報のアノテーションが不要となる。
【００９０】
ここで、画像処理装置１が、モデル２１１に更にフレームｔを入力して、フレームｔ上の位置であって、フレームｔ内のオブジェクト１００の識別に影響を与える位置を示す第２位置情報５６０を取得してもよい。また、画像処理装置１が、フレームｔから、取得された領域情報５４０により示される領域５３１の画像５５０を抽出してもよい。また、画像処理装置１が、取得された第２位置情報５１０に基づいて、フレームｔ上の領域５６０であって、オブジェクト１００の識別に影響を与える位置に対応する領域５６０を示す領域情報５７０を生成してもよい。また、画像処理装置１が、フレームｔから、取得された領域情報５７０により示される領域５６１の画像５８０を抽出してもよい。また、画像処理装置１が、取得された画像５５０及び画像５８０に基づいて、モデル２１１の重みを更新してもよい。位置情報５１０により示される位置であって、フレームｔ−１においてオブジェクト１００の識別に影響を与える位置が、動き情報５２０により示される動きで変更される場合、変更後の位置は、フレームｔにおいて、オブジェクト１００の識別に影響を与える位置に対応するものと考えられる。そのため、画像５５０及び画像５８０を用いることで、モデル２１１を適切に訓練することができる。
【００９１】
ここで、画像処理装置１が、抽出された画像５５０の特徴を取得してもよい。また、画像処理装置１が、抽出された画像５８０の特徴を取得してもよい。また、画像処理装置１が、取得されたこれらの特徴に基づいて、モデル２１１の重みを更新してもよい。領域情報５７０は、フレームｔにおいて、オブジェクト１００の識別に影響を与える位置に対応する領域を示す。従って、その領域から抽出された画像５８０の特徴は、検出される対象となるオブジェクト１００の特徴を示す。そこで、例えば、画像５５０の特徴と画像５８０の特徴とが互いに近づくように、重みが更新されることにより、モデル２１１を適切に訓練することができる。
【００９２】
また、位置情報５１０は、クラスアクティベーションマップの少なくとも一部であってもよい。
【００９３】
また、動き情報５２０は、オプティカルフローであってもよい。
【符号の説明】
【００９４】
１  画像処理装置
１１  システム御部
１２  システムバス
１３  入出力インターフェース
１４  記憶部
１５  通信部
１６  入力部
１７  表示部
１８  ＧＰＵ
１９  ＧＰＵメモリ
２０  表示部
１１１  フレーム取得部
１１２  位置情報取得部
１１３  動き情報取得部
１１４  領域情報生成部
１１５  訓練部
１１６  検出部
２、３、２１１、２４０、２６０  モデル
２１０  ＣＡＭ検出部
２２０  フロー検出部
２３０  領域推定アルゴリズム
【要約】
画像においてオブジェクトが存在する位置に対応する領域を精度よく特定することを目的とする。
オブジェクト領域特定装置は、時間的に連続する第１フレーム画像及び第２フレーム画像を取得する。オブジェクト領域特定装置は、画像内のオブジェクトを識別するモデルに第１フレーム画像を入力して、第１フレーム画像上の位置であって、第１フレーム画像内のオブジェクトの識別に影響を与える位置を示す位置情報を取得する。オブジェクト領域特定装置は、第１フレーム画像及び第２フレーム画像に基づいて、第１フレーム画像内におけるオブジェクトの動きを示す動き情報を取得する。オブジェクト領域特定装置は、取得された位置情報及び動き情報に基づいて、第１フレーム画像上の領域であって、オブジェクトが存在する位置に対応する領域を示す領域情報を生成する。【図１】
0006899986.tif 000002
【図２】
0006899986.tif 000003
【図３】
0006899986.tif 000004
【図４】
0006899986.tif 000005
【図５】
0006899986.tif 000006
【図６】
0006899986.tif 000007
【図７】
0006899986.tif 000008
【図８】
0006899986.tif 000009
【図９】
0006899986.tif 000010