(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】モデル訓練装置、モデル訓練方法、およびプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20241126BHJP
G06N 3/0464 20230101ALI20241126BHJP
【FI】
G06N3/08
G06N3/0464
(21)【出願番号】P 2024518938
(86)(22)【出願日】2021-10-07
(86)【国際出願番号】 JP2021037108
(87)【国際公開番号】W WO2023058181
(87)【国際公開日】2023-04-13
【審査請求日】2024-03-26
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】バギャニー ダーシット
【審査官】今城 朋彬
(56)【参考文献】
【文献】ZHAO, Qijie et al.,M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network,arXiv [online],2019年01月06日,all 8 pages,https://arxiv.org/pdf/1811.04533
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 3/0464
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、前記オブジェクトを検出するのに必要な前記CNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算し、前記オブジェクトについての前記計算されたFPNブロックの数に基づいて、前記CNNモデル内の前記FPNブロックの数のパラメータ値を推定するための推定手段と、
前記推定されたパラメータ値を使用することによって前記CNNモデルを訓練するためのCNNモデル訓練手段と
を備える、モデル訓練装置。
【請求項2】
前記推定手段はさらに、前記FPNブロックの1つが無効化された状態で前記データセットを前記CNNモデルに入力することによって、前記オブジェクトが前記CNNモデルによって検出されるかどうかを決定し、すべての前記FPNブロックに対して個々に前記決定を実行することによって、前記オブジェクトについての前記FPNブロックの数を計算する、
請求項1に記載のモデル訓練装置。
【請求項3】
前記推定手段はさらに、前記オブジェクトについての前記FPNブロックの数の発生率の分布を計算し、前記パラメータ値を推定する、
請求項1または2に記載のモデル訓練装置。
【請求項4】
前記推定手段はさらに、前記分布に基づいて、前記FPNブロックの数が前記パラメータ値以下である場合、前記オブジェクトが検出される確率を計算し、前記パラメータ値を推定する、
請求項3に記載のモデル訓練装置。
【請求項5】
前記CNNモデル内の前記FPNブロックは、前記CNNモデル内のマルチレベル特徴ピラミッドネットワーク(MLFPN)ブロックを構成し、
前記推定されたパラメータ値が示すように、前記CNNモデル訓練手段は、前記CNNモデル内の前記MLFPNブロックを調整する、
請求項1乃至4のいずれか一項に記載のモデル訓練装置。
【請求項6】
畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、前記オブジェクトを検出するのに必要な前記CNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算することと、
前記オブジェクトについての前記計算されたFPNブロックの数に基づいて、前記CNNモデル内の前記FPNブロックの数のパラメータ値を推定することと、
前記推定されたパラメータ値を使用することによって前記CNNモデルを訓練することと
を含む、モデル訓練方法。
【請求項7】
コンピュータに、
畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、前記オブジェクトを検出するのに必要な前記CNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算することと、
前記オブジェクトについての前記計算されたFPNブロックの数に基づいて、前記CNNモデル内の前記FPNブロックの数のパラメータ値を推定することと、
前記推定されたパラメータ値を使用することによって前記CNNモデルを訓練することと
を実行させるためのプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モデル訓練装置、モデル訓練方法、および非一時的コンピュータ可読媒体に関する。
【背景技術】
【0002】
機械学習の時代において、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)モデルは、視覚解析タスクのための最も顕著な解決策の1つである。大規模な公開データセットに対して高い精度を達成する能力は、CNNモデルが成功するための重要な理由である。
【0003】
関連技術の例として、特許文献1(PTL1)は、ニューラルネットワークの最適解を求めるためのニューラルネットワーク最適化方法を開示しており、PTL2は、ニューラルネットワークを使用してディープニューラルネットワーク(Deep Neural Network:DNN)における認識精度を向上させる演算デバイスを開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2021-105950号公報
【文献】特開2020-123270号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特徴ピラミッドネットワーク(Feature Pyramid Network:FPN)ブロックは、様々なスケールおよび複雑さのオブジェクトの特徴を抽出することを担当する特徴抽出器ブロックである。いくつかの数のFPNブロックをスタックすることは、高い精度を得るために有益である。しかし、リアルタイムアプリケーションでは、高速を得るために、より少ない数のFPNブロックをスタックすることが有益である。これにより、トレードオフの問題が存在する。
【0006】
本開示の目的は、CNNモデルの精度と実行速度との間のトレードオフを解決することが可能なモデル訓練装置、モデル訓練方法、および非一時的コンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【0007】
本開示の第1の態様によれば、畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、オブジェクトを検出するのに必要なCNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算し、オブジェクトについての計算されたFPNブロックの数に基づいて、CNNモデル内のFPNブロックの数のパラメータ値を推定するための推定手段と、推定されたパラメータ値を使用することによってCNNモデルを訓練するためのCNNモデル訓練手段とを含む、モデル訓練装置が存在する。
【0008】
本開示の第2の態様によれば、畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、オブジェクトを検出するのに必要なCNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算することと、オブジェクトについての計算されたFPNブロックの数に基づいて、CNNモデル内のFPNブロックの数のパラメータ値を推定することと、推定されたパラメータ値を使用することによってCNNモデルを訓練することとを含む、モデル訓練方法が存在する。
【0009】
本開示の第3の態様によれば、コンピュータに、畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、オブジェクトを検出するのに必要なCNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算することと、オブジェクトについての計算されたFPNブロックの数に基づいて、CNNモデル内のFPNブロックの数のパラメータ値を推定することと、推定されたパラメータ値を使用することによってCNNモデルを訓練することとを実行させるためのプログラムを記憶する、非一時的コンピュータ可読媒体が提供される。
【発明の効果】
【0010】
本開示によれば、CNNモデルの精度と実行速度との間のトレードオフを解決することが可能なモデル訓練装置、モデル訓練方法、および非一時的コンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態によるモデル訓練装置のブロック図の一例を示す図である。
【
図2】第1の実施の形態によるモデル訓練装置の方法の一例を示すフローチャートである。
【
図3】第2の実施の形態によるCNNモデル訓練システムのブロック図の一例を示す図である。
【
図4】第2の実施の形態によるCNNモデルのブロック図の一例を示す図である。
【
図5】第2の実施の形態によるFPNブロックの一例を示す図である。
【
図6】第2の実施の形態による設計空間縮小器(Design Space Reducer:DSR)ユニットのブロック図の一例を示す図である。
【
図7A】第2の実施の形態によるFPN_1を無効としたCNNモデルのブロック図の一例を示す図である。
【
図7B】第2の実施の形態によるFPN_nを無効としたCNNモデルのブロック図の一例を示す図である。
【
図8】第2の実施の形態によるサーベイテーブルの一例を示す図である。
【
図9】第2の実施の形態によるカーディナリティテーブルの一例を示す図である。
【
図10】第2の実施の形態によるCNNモデル訓練システムの全体プロセスの一例を示すフローチャートである。
【
図11A】第2の実施の形態によるサーベイテーブル生成器ユニットのプロセスの一例を示すフローチャートである。
【
図11B】第2の実施の形態によるサーベイテーブル生成器ユニットのプロセスの一例を示すフローチャートである。
【
図12】第2の実施の形態による最適候補推定(Optimal Candidate Estimation:OCE)ユニットのプロセスの一例を示すフローチャートである。
【
図13】実施形態による情報処理装置のブロック図の一例を示す図である。
【発明を実施するための形態】
【0012】
(関連技術の概要)
本開示による実施形態の説明に先立ち、関連技術の概要について説明する。
【0013】
所与のデータセットに対して高精度のCNNモデルを設計するには、専門知識と大量の時間の両方が必要である。特定のCNNモデルは、いくつかの構成可能パラメータと、各構成可能パラメータについてのいくつかの候補とを有する傾向があり、したがって、この場合、非常に大きな設計空間が必要となる。しかし、そのような大きな設計空間内で徹底的に検索を行うことは、計算上非常に高価である。
【0014】
マルチレベル特徴ピラミッドネットワーク(Multi-Level Feature Pyramid Network:MLFPN)ブロックは、CNNモデルの最も重要なブロックの1つである。MLFPNブロックは、複数レベルの特徴ピラミッドネットワーク(FPN)ブロックをスタックすることによって形成される。しかし、上記で説明したように、CNNモデルの精度と実行速度との間にはトレードオフが存在する。
【0015】
また、構成可能パラメータは任意の非負整数値を有することができるため、トレードオフを最適化するために設計空間内のいくつかの候補を探索する必要がある。スタックされるFPNブロックの数は、MLFPNブロック(およびCNNモデル)の重要な構成可能パラメータの1つである。したがって、所与のデータセットについての精度と実行速度のトレードオフを伴って、スタックされるFPNブロックの数のための大きな設計空間を探索することは、最適化問題と呼ぶことができる。
【0016】
ナイーブ解は、設計空間内のすべての候補を網羅的に列挙しているが、大きな算出時間を必要とする。別の解決策は、再施行ベースの最適化であり、最初は少数の候補が試行され、次いでトレイルから取得された知識に基づいて、次の候補がトレイルに対して選択される。しかし、少数の候補を探索するためだけに必要な時間もまた、大きくなる。
【0017】
この関連技術を考慮して、本開示の目的の1つは、FPNブロックパラメータの数のための空間を検索する時間を短縮することである。1つの具体的な解決策は、データセット内の個々のオブジェクトによるFPNブロック要件のサーベイを実施するために設計空間縮小器(DSR)ブロックを用いることであり、サーベイに基づいて、FPNブロックパラメータの数の推定が行われる。
【0018】
(第1の実施の形態)
まず、
図1を参照して、本開示の第1の実施の形態によるモデル訓練装置100について説明する。
【0019】
図1を参照すると、モデル訓練装置100は、推定ユニット101と、畳み込みニューラルネットワーク(CNN)モデル訓練ユニット102とを含む。モデル訓練装置100は、例えば、情報処理装置を有する1つまたは複数のコンピュータまたは機械を含む。一例として、モデル訓練装置100における構成要素の少なくとも1つは、1つまたは複数のメモリと1つまたは複数のプロセッサの組み合わせとしてコンピュータに搭載され得る。
【0020】
推定ユニット101は、CNNモデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、オブジェクトを検出するのに必要なCNNモデル内のFPNブロックの数を計算する。さらに、推定ユニット101は、オブジェクトについての計算されたFPNブロックの数に基づいて、CNNモデル内のFPNブロックの数のパラメータ値を推定する。
【0021】
データセットは、画像と、ラベルとを含むことができる。画像は、CNNモデルによって解析されるオブジェクトを含み、ラベルは、グラウンドトゥルース情報を示す。言い換えれば、ラベルは、訓練済みCNNモデルが出力として生成することを意図された予測である。
【0022】
推定ユニット101がFPNブロックの数を計算する際に対象とされる複数のオブジェクトは、データセットのオブジェクトのすべてまたは一部であってもよい。
【0023】
FPNブロックは、限定はしないが、MLFPN構造、単一ショットマルチボックス検出器(Single Shot Multibox Detector:SSD)スタイルの特徴ピラミッド構造、またはFPNスタイルの特徴ピラミッド構造にスタックすることができる。第2の実施の形態では、MLFPNブロックを含むCNNモデルの構造の一例について説明する。
【0024】
CNNモデル訓練ユニット102は、推定されたパラメータ値を使用することによってCNNモデルを訓練する。
【0025】
次に、
図2のフローチャートを参照して、本実施の形態の動作の一例について説明する。
【0026】
まず、推定ユニット101は、畳み込みニューラルネットワーク(CNN)モデルを訓練するために過去に使用されたデータセット内のオブジェクトについて、オブジェクトを検出するのに必要なCNNモデル内の特徴ピラミッドネットワーク(FPN)ブロックの数を計算する(
図2のステップS11)。次に、推定ユニット101は、オブジェクトについての計算されたFPNブロックの数に基づいて、CNNモデル内のFPNブロックの数のパラメータ値を推定する(
図2のステップS12)。最後に、CNNモデル訓練ユニット102は、推定されたパラメータ値を使用することによってCNNモデルを訓練する(
図2のステップS13)。
【0027】
推定ユニット101がオブジェクトを検出するのに必要なFPNブロックの数に基づいてパラメータ値を推定することにより、CNNモデル訓練ユニット102は、FPNブロックの数が必要最低限になるようにCNNモデルを訓練することができる。したがって、CNNモデルの精度と実行速度との間のトレードオフを解決することが可能なモデル訓練装置および方法を提供することができる。
【0028】
(第2の実施の形態)
次に、本開示の第2の実施の形態について、添付の図面を参照して以下に説明する。この第2の実施の形態は、第1の実施の形態の具体的な例の1つを示すが、第1の実施の形態の具体的な例は、これに限定されない。
【0029】
図3は、第2の実施の形態によるCNNのモデル訓練システム(以下、モデル訓練システムと呼ばれる)を示す。
図3に示すように、モデル訓練システム200は、CNNモデル訓練ユニット210(以下、モデル訓練ユニットと呼ばれる)、訓練済みCNNモデル220(以下、CNNモデルと呼ばれる)、設計空間縮小器(DSR)ユニット230、最適化済みCNNモデル240などを含む。例えば、CNNモデル訓練システム200はまた、後に説明される処理に使用される構成、条件、および閾値を記憶するメモリを備えることができる。また、モデル訓練システム200は、訓練データセットTDを入力とし、CNNモデル220および最適化済みCNNモデル240を出力することができる。
【0030】
モデル訓練システム200は、情報処理装置に搭載されるシステムとして実現することができる。また、モデル訓練システム200は、算出のための他のユニットを含んでもよい。この実施の形態では、モデル訓練システム200を画像認識に適用することができるが、適用は、これに限定されない。
【0031】
訓練データセットTDは、各画像のラベルと共に画像を含む。画像およびラベルの説明は、第1の実施の形態で説明した通りである。
【0032】
モデル訓練ユニット210は、訓練データセットTDを入力とし、訓練データセットTDおよび予め定義された構成に基づいて元のCNNモデルを構築し、元のCNNモデルの訓練を実行し、訓練の結果、すなわちCNNモデル220を出力する。CNNモデル220は、DSRユニット230の入力として使用される。
【0033】
さらに、この第1の訓練後、モデル訓練ユニット210は、訓練データセットTDおよび最適候補値(CNNモデルのFPNブロックの数)を入力とし、FPNブロックの数の値の予め定義された構成ではなく、定義された構成として最適候補値を設定する。最適候補値は、非負整数である。このようにして、モデル訓練ユニット210は、新たな最適候補値を用いて新たなCNNモデルを構築し、次に訓練データセットTDを使用することによって訓練する。
【0034】
この手順において、モデル訓練ユニット210は、新たなCNNモデルの初期重みをCNNモデル220のそれに設定してもよい。その後、モデル訓練ユニット210は、訓練データセットTDを使用した訓練によって、新たなCNNモデルの重みを微調節することが可能である。
【0035】
これにより、モデル訓練ユニット210は、精度の損失が最小となるCNNモデル220と比較して、速度の点で比較的高い性能を有する最適化済みCNNモデル240を出力する。最適候補値情報を生成する方法の詳細については、後述する。
【0036】
図4では、CNNモデル220のブロック図の一例が示されている。CNNモデル220は、
図4に示すように、いくつかのバイタルブロック、具体的にはバックボーンブロック221、直接和(direct sum)ブロック222、マルチレベル特徴ピラミッドネットワーク(MLFPN)ブロック223、および予測器ブロック224を備える。CNNモデル220は、訓練データセットTDの画像IMを入力とし、それを処理し、画像IMに基づいて出力OUを出力する。
【0037】
CNNモデル220内の各ブロックのアーキテクチャは、所与のデータセットに対して高い精度を達成することを目的として設計される。また、リアルタイムアプリケーションのために、CNNモデル220内のアーキテクチャは、所望の実行速度を達成することを追加の目的として設計される。
【0038】
バックボーンブロック221は、バックボーン畳み込みアーキテクチャとして機能し、直接和ブロック222は、バックボーンブロック221から入力されたデータを統合する。MLFPNブロック223は、直接和ブロック222から入力されたデータを処理し、処理されたデータを予測器ブロック224に出力する。予測器ブロック224は、処理されたデータに基づいて画像IMの検出の予測結果を生成し、出力OUとして予測を出力する。
【0039】
MLFPNブロック223は、CNNモデル220における重要な構成要素の1つである。
図4に示すように、MLFPNブロック223は、複数レベルのFPNブロック225をスタックすることによって形成されるため、「マルチレベル特徴ピラミッドネットワークブロック」として知られている。
図4では、n個のFPNブロック、FPN_1、FPN_2…、FPN_nが存在する。
【0040】
FPNブロックは、様々なスケールおよび複雑さのオブジェクトの特徴を抽出することを担当する特徴抽出器ブロックである。FPNブロック225のサンプル例は、
図5に示す通りであるが、これに限定されない。
図5は、レイヤL1、L2、L3、…、L4、L5、…、L6、およびL7を含むFPNブロックのアーキテクチャを示す。ボトムアップステップにおけるレイヤL1~L4の各々は、異なるスケールの特徴マップを生成し、トップダウンステップにおけるレイヤL5~L7の各々は、ボトムアップステップにおける対応するレイヤからの特徴マップに基づいて予測を出力する。例えば、レイヤL5は、レイヤL4からの特徴マップを使用して予測P1を出力し、レイヤL6は、レイヤL3からの特徴マップを使用して予測P2を出力し、レイヤL7は、レイヤL2からの特徴マップを使用して予測P3を出力する。1つのFPNブロック225のアーキテクチャは、専門家によって最適化することができ、次いでそのような最適化済みFPNブロックは、スタックされることでMLFPNブロック223を形成する。
【0041】
多数のFPNブロック225をスタックすることは、高い精度を得るために有益である。しかし、MLFPNブロック223内のFPNブロックのレベルを上げると、CNNモデルの算出の複雑さが大きくなり、それによってCNNモデルの実行時間が長くなる。大きな実行時間は、リアルタイムアプリケーションでは許容できない。また、より少ない算出の複雑さおよびより少ない実行時間(高速)を享受するためにCNNモデル内の1つまたは少数のレベルのFPNブロックをスタックすることは、低精度をもたらし得る。したがって、トレードオフの問題が存在し、MLFPNブロック223内のFPNブロックの数はCNNモデルの重要なパラメータであり、この実施の形態ではFPNカウント値と呼ばれる。所与のリアルタイムアプリケーションおよびデータセットについての精度と算出の複雑さまたは実行時間との間のトレードオフを考慮してFPNカウント値の最適値を決定することは、最適化問題である。この第2の実施の形態は、この問題を解決することができる。
【0042】
DSRユニット230は、訓練データセットTDおよびCNNモデル220を入力とし、CNNモデル220の解析を実施し、最適候補値(CNNモデルのFPNブロックの数)を推定して出力する。上述したように、モデル訓練ユニット210は、最適候補値に基づいて最適化済みCNNモデル240を出力する。
【0043】
図6は、DSRユニット230の詳細を示す。
図6に示すように、DSRユニット230は、サーベイテーブル生成器ユニット231と、最適候補推定(OCE)ユニット232とを含む。両方のユニットの詳細について説明する。
【0044】
サーベイテーブル生成器ユニット231は、訓練データセットTDおよびCNNモデル220を入力とし、出力としてサーベイテーブルを生成する。まず、サーベイテーブル生成器ユニット231は、訓練データセットTD内の各オブジェクトによって、オブジェクトを検出するのに必要なCNNモデル220内のFPNブロックの数のサーベイを実施する。
【0045】
具体的には、サーベイ手順において、サーベイテーブル生成器ユニット231が訓練データセットTD内の各オブジェクトをCNNモデル220に入力すると、サーベイテーブル生成器ユニット231は、0としてMLFPNブロック223内のいずれか1つの特定のFPNブロック225の重みを設定する。言い換えれば、サーベイテーブル生成器ユニット231は、1つの特定のFPNブロック225を無効化する。
【0046】
図7Aは、上述した状況の一例を示し、
図7Aでは、サーベイテーブル生成器ユニット231は、0としてFPN_1の重みを設定し、したがってFPN_1がマスクされる。
図7Aでは、FPN_1は無効であり、一方、FPN_2、…、FPN_nは、訓練データセットTDを使用して画像検出を処理するために有効である。この状態で、サーベイテーブル生成器ユニット231は、訓練済みデータセットTD内のすべての画像を列挙し、すべての画像をCNNモデル220に入力する。
【0047】
FPN_1(特定のFPNブロック)をマスクすることによって、画像内のオブジェクトの一部が検出される可能性があり、他のオブジェクトは検出されない可能性がある。サーベイテーブル生成器ユニット231は、画像の各オブジェクトを検出することができるかどうかを決定することができ、この情報は、「検出」または「検出されず」としてサーベイテーブルの形式で記録される。
【0048】
サーベイテーブル生成器ユニット231は、他のFPN(FPN_2、…、FPN_n)についてもFPN_1と同じ決定を順次実施する。言い換えれば、シーケンスの1つのステップにおいて、サーベイテーブル生成器ユニット231は、画像検出の処理のためにいずれか1つの特定のFPNブロックを無効にし、すべての画像をCNNモデル220に入力し、画像の各オブジェクトを検出することができるかどうかを決定する。
図7Bは、シーケンスの最後のステップの一例を示し、
図7Bでは、サーベイテーブル生成器ユニット231は、0としてFPN_nの重みを設定し、したがってFPN_nがマスクされる。このサーベイ方法は、「重みゼロ化ベースのサーベイ」と呼ぶことができ、これは、サーベイテーブル生成器ユニット231が順番に訓練済みデータセットTD内のすべての画像を推論する方法である。
【0049】
図8は、サーベイテーブルの一例を示す。
図8では、列C0は、すべての画像内のすべてのオブジェクトのリストを示し、列C1は、FPN_1が無効である場合の各オブジェクトの検出結果のリストを示し、列C2は、FPN_2が無効である場合の各オブジェクトの検出結果のリストを示し、列Cnは、FPN_nが無効である場合の各オブジェクトの検出結果のリストを示す。FPN_3からFPN_n-1までの各オブジェクトの検出の結果も列C3~Cn-1としてサーベイテーブルに含まれるが、
図8には示されていない。
【0050】
サーベイテーブル生成器ユニット231は、列C1~Cnの情報を記録し、すべてのFPNブロックが網羅されていることを確認した後、検出することができなかった各オブジェクトにおけるFPNブロックの検出結果の数をカウントする。
【0051】
例えば、画像1_オブジェクト1に関して、サーベイテーブル生成器ユニット231は、同じ行にあるすべてのFPNブロックに対する結果を参照し、「検出されず」と決定された数をカウントする。ここでは、決定された数が4であるため、サーベイテーブル生成器ユニット231は、要件数を4に決定する。この要件数は、画像1_オブジェクト1を検出するのに必要なCNNモデル220内のFPNブロックの数を意味する。画像1_オブジェクト1と同様に、サーベイテーブル生成器ユニット231は、画像1_オブジェクト2の要件数を2に決定し、画像1_オブジェクト3の要件数を3に決定し、以下同様である。
【0052】
図8における「検出」は、基本的に、対応するFPNブロックが対応するオブジェクトを検出するために重要ではないことを意味する。対応するFPNブロックがマスクされる場合であっても、対応するオブジェクトは依然として検出されるため、対応するFPNブロックはオブジェクトを検出する必要はない。しかし、
図8における「検出されず」は、対応するFPNブロックのマスキングがオブジェクトの非検出につながるため、対応するFPNブロックが対応するオブジェクトを検出するのに必要であることを意味する。このため、各行におけるカウントは、それぞれのオブジェクトについての重要なFPNブロックの数を表す。
図8の例では、画像1_オブジェクト1についての重要なFPNブロックの数は4であり、画像1_オブジェクト2についての重要なFPNブロックの数は2であり、画像1_オブジェクト3についての重要なFPNブロックの数は3である。訓練データセットTD内のオブジェクトごとのFPNブロックの数の要件サーベイを行うようなものであるため、このように形成されたテーブルはサーベイテーブルと呼ばれる。
【0053】
このようにして、サーベイテーブルにおける各行について、サーベイテーブル生成器ユニット231は、
図8に示すように、同じそれぞれの行における「検出されず」のエントリの回数をカウントし、それぞれ要件列Cn+1にそのカウント値(要件数)を記録する。完全にサーベイテーブルを生成した後、サーベイテーブル生成器ユニット231は、サーベイテーブルを出力する。
【0054】
OCEユニット232は、サーベイテーブルを入力とし、サーベイテーブルの解析を実施し、最適化済みCNNモデル240の生成に使用されるFPNブロックの数についての最適候補値を推定する。
【0055】
まず、OCEユニット232は、昇順にサーベイテーブルの要件列Cn+1においてすべての固有エントリ(表記値)をリストアップする。要件列Cn+1における各エントリは、新たなテーブル(以下、カーディナリティテーブルと呼ばれる)の形式で記録され、候補値と呼ばれ得る。そして、OCEユニット232は、候補値のデータに基づいて各候補値の発生率(パーセンテージ)を計算し、テーブルに記録する。言い換えれば、OCEユニット232は、発生率の分布を計算する。その後、OCEユニット232は、各候補値のカーディナリティを計算し、テーブルに記録する。各候補値のカーディナリティ(確率)は、それぞれの候補値以下の発生率の累積加算である。
【0056】
図9は、カーディナリティテーブルの一例を示す。
図9では、候補列C10は、昇順に列挙された候補値(固有エントリ)を示し、発生列C11は、各候補値の発生率(パーセンテージ)を示し、カーディナリティ列C12は、各候補値のカーディナリティを示す。OCEユニット232は、ログ手順によりカーディナリティテーブルを生成する。
【0057】
カーディナリティ列C12の各エントリ(値)は、各エントリに対応する候補値(すなわち、各エントリと同じラインに列挙された候補値)がオブジェクトを検出するのに必要なFPNブロックの数である場合、オブジェクトを検出する確率を表す。例えば、
図9は、CNNモデル220におけるFPNブロックの数が1つである場合、43%の割合でオブジェクトを検出することができ、FPNブロックの数が2つである場合、FPNブロックの数が1つである場合よりも25%高い割合でオブジェクトを検出することができることを示す。さらに、FPNブロックの数が3つである場合、FPNブロックの数が2つである場合よりも4%高い割合でオブジェクトを検出することができ、FPNブロックの数が4つである場合、FPNブロックの数が3つである場合よりも13%高い割合でオブジェクトを検出することができる。また、FPNブロックの数が5つである場合、FPNブロックの数が4つである場合よりも3%高い割合でオブジェクトを検出することができ、FPNブロックの数がnである場合、FPNブロックの数がn-1である場合よりも1%高い割合でオブジェクトを検出することができる。
【0058】
特定のデータに基づいて、OCEユニット232は、以下のように各候補値のカーディナリティを計算する:OCEユニット232は、候補値「1」のカーディナリティと同じ数、すなわち43%として候補値「1」のカーディナリティを計算する。次に、OCEユニット232は、候補値「1」および「2」のカーディナリティの累積加算、すなわち68%(43%+25%)として候補値「2」のカーディナリティを計算する。そして、OCEユニット232は、候補値「1」、「2」、および「3」のカーディナリティの累積加算、すなわち72%(43%+25%+4%)として候補値「3」のカーディナリティを計算する。さらに、OCEユニット232は、候補値「1」~「4」のカーディナリティの累積加算、すなわち85%(43%+25%+4%+13%)として候補値「4」のカーディナリティを計算し、候補値「1」~「5」のカーディナリティの累積加算、すなわち88%(43%+25%+4%+13%+3%)として候補値「5」のカーディナリティを計算する。
【0059】
すべての候補値のカーディナリティを計算した後、OCEユニット232は、予め定義された条件に従って、選択される候補値のカーディナリティ値が予め定義された閾値未満であり、予め定義された閾値に最も近い1つの候補値を選択する。予め定義された閾値は、実験結果に関する経験に基づいて設定することができる。そして、OCEユニット232は、CNNモデル220におけるFPNブロックの数についての最適候補値(パラメータ値)としてその1つの候補値を出力する。
【0060】
図9の例では、予め定義された閾値が86%であり、候補値「4」のカーディナリティが上記の条件を満たすため、OCEユニット232は、最適候補値として「4」を選択する。
【0061】
これらの手順の後、モデル訓練ユニット210は、定義された構成としてOCEユニット232から入力された最適候補値を設定し、最適候補値に基づいて最適化済みCNNモデル240を生成する。これにより、最適化済みCNNモデル240は、最適候補値によって示されるように、MLFPNブロックにスタックされるFPNブロックの数が同じとなる。最適候補値は、オブジェクト検出の精度が予め定義された値に近いこと、およびある程度の精度が保証されることだけでなく、最適化済みCNNモデル240内のブロックの数が最小化されることも確実にする。したがって、最適化済みCNNモデル240は、精度の損失が最小となるCNNモデル220と比較して、速度の点で比較的高い性能を有する。
【0062】
次に、
図10のフローチャートを参照して、CNNモデル訓練システム200の全体プロセスの一例について説明する。各手順の詳細については、説明した通りである。
【0063】
まず、モデル訓練ユニット210は、訓練データセットTDおよび予め定義された構成に基づいて元のCNNモデルを構築し、元のCNNモデルを訓練してCNNモデル220を出力する(
図10のステップS21)。次に、DSRユニット230は、サーベイテーブル生成器ユニット231でサーベイを実施し(
図10のステップS22)、OCEユニット232で最適候補値を推定する(
図10のステップS23)。最後に、モデル訓練ユニット210は、新たな最適候補値を用いて新たなCNNモデルを構築し、次に最適化済みCNNモデル240を訓練する(
図10のステップS24)。
【0064】
さらに、
図11Aおよび
図11Bのフローチャートを参照して、サーベイテーブル生成器ユニット231のプロセスの一例について説明する。言い換えれば、ステップS12のプロセスの詳細が以下に示される。
【0065】
まず、サーベイテーブル生成器ユニット231は、0としてCNNモデル220におけるX番目(「X」は、1~nの任意の自然数である)のFPNブロックの重みを設定する(
図11AのステップS31)。そして、サーベイテーブル生成器ユニット231は、訓練データセットTD内の各オブジェクトをCNNモデル220に入力し、画像の各オブジェクトを正確に検出することができるかどうかをサーベイする。すなわち、サーベイテーブル生成器ユニット231は、X番目のFPNブロックをサーベイし、サーベイテーブルにこの情報を記録する(
図11AのステップS32)。
【0066】
その後、サーベイテーブル生成器ユニット231は、すべてのFPNブロックをサーベイ(網羅)したかどうかを確認する(
図11AのステップS33)。そうでない場合には(ステップS33でいいえ)、サーベイテーブル生成器ユニット231は、XをX+1に変更し(
図11AのステップS34)、ステップS31~S33の手順を繰り返す。言い換えれば、サーベイテーブル生成器ユニット231は、X+1番目のFPNブロックをサーベイし、サーベイテーブルにこの情報を記録する。この反復は、すべてのFPNブロックがサーベイされた場合(ステップS33ではい)に終了する。
【0067】
すべてのFPNブロックがサーベイされた場合、言い換えれば、列C1~Cnの情報が既にサーベイされている場合、サーベイテーブル生成器ユニット231は、訓練データセットTD内の各オブジェクトの要件数を計算する(
図11BのステップS35)。最後に、サーベイテーブル生成器ユニット231は、サーベイテーブルに要件数の情報を記録して出力する(
図11BのステップS36)。
【0068】
次に、
図12のフローチャートを参照して、OCEユニット232の全体プロセスの一例について説明する。各手順の詳細については、説明した通りである。
【0069】
まず、OCEユニット232は、候補値の情報を整理し、候補値のデータに基づいてすべての候補値の発生率を計算する(
図12のステップS41)。そして、OCEユニット232は、発生率に基づいてすべての候補値のカーディナリティを計算する(
図12のステップS42)。その後、OCEユニット232は、予め定義された条件に従って1つの最適候補値を選択する(
図12のステップS43)。
【0070】
上記で説明したように、関連技術の課題の1つは、最適化問題である。この実施の形態では、DSRユニット230は、訓練データセットTD内のオブジェクトごとに、オブジェクトを検出するのに必要なCNNモデル220内のFPNブロックの数を計算し、オブジェクトごとの計算されたFPNブロックの数に基づいて、CNNモデル220内のFPNブロックの数の最適候補値(パラメータ値)を推定する。そして、CNNモデル訓練ユニット210は、最適候補値を使用することによって最適化済みCNN240モデルを訓練する。第1の実施の形態で説明したのと同じ理由で、FPNブロックの数のパラメータ値の設計空間を縮小することができ、最適化問題を解決することができる。
【0071】
さらに、DSRユニット230におけるサーベイテーブル生成器ユニット231は、FPNブロックの1つが無効化された状態で訓練データセットTDをCNNモデル220に入力することによって、各オブジェクトがCNNモデル220によって検出されるかどうかを決定し、すべてのFPNブロックに対して個々に決定を実行することによって、オブジェクトごとのFPNブロックの数を計算してもよい。この方法は、計算を単純化することができる。
【0072】
さらに、DSRユニット230におけるOCEユニット232は、オブジェクトに対するFPNブロックの数の発生率の分布を計算し、最適候補値を推定してもよい。具体的には、OCEユニット232は、分布に基づいて、FPNブロックの数が最適候補値以下である場合、各オブジェクトが検出される確率を計算し、パラメータ値を推定してもよい。この方法によれば、上述した効果が得られる精度の高い計算を行うことができ、より短時間で最適候補値を得ることが可能になる。
【0073】
さらに、CNNモデル220内のFPNブロックは、CNNモデル内のMLFPNブロックを構成してもよく、CNNモデル訓練ユニットは、最適候補値が示す通りに最適化済みCNNモデル240内のMLFPNブロックを調整してもよい。したがって、この方法は、MLFPNブロックを含むCNNモデルに有効である。
【0074】
本開示の説明において、単数形「a」、「an」、および「the」によって表される要素は、文脈上特に明記されない限り、単一の要素だけでなく複数の要素であってもよいことに留意されたい。
【0075】
本開示は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜修正可能であることに留意されたい。例えば、算出に対する対象は、画像に限定されない。
【0076】
第2の実施の形態では、訓練データセットTD内のすべてのオブジェクトがDSRユニット230の計算の対象となるが、訓練データセットTD内のすべてのオブジェクト(特に重要なオブジェクト)が、DSRユニット230の計算の対象になるとは限らない。
【0077】
サーベイテーブル生成器ユニット231がFPNブロックをマスクする順序は、第2の実施の形態で説明した方法に限定されない。
【0078】
第2の実施の形態では、OCEユニット232は、選択される候補値のカーディナリティ値が予め定義された閾値を超え、予め定義された閾値に最も近い別の予め定義された条件を採用してもよい。あるいは、予め定義された条件は、選択される候補値のカーディナリティ値が予め定義された閾値に最も近いことであってもよい。予め定義された閾値は、実験結果に関する経験に基づいて設定することができる。
【0079】
さらに別の例として、OCEユニット232は、候補値の発生率の分布を計算し、分布に基づいて最適候補値を推定してもよい。例えば、分布の平均値から一定の偏差(予め定義された閾値)がある値に最も近い最適候補値を選択することができる。最適候補値は、平均値から一定の偏差がある値よりも小さくても大きくてもよいし、平均値から一定の偏差がある値に最も近い値であってもよいことに留意されたい。
【0080】
(ハードウェア構成)
次に、
図13を参照して、上述した複数の実施形態で説明した情報処理装置の構成例について以下で説明する。
【0081】
図13は、情報処理装置の構成例を示すブロック図である。
図13に示すように、情報処理装置90は、ネットワークインターフェース91と、プロセッサ92と、メモリ93とを含む。
【0082】
ネットワークインターフェース91は、通信システムを形成する他のネットワークノード装置との通信に使用される。例えば、ネットワークインターフェース91は、訓練データセットTDを受信することができる。
【0083】
プロセッサ92は、メモリ93からソフトウェア(コンピュータプログラム)をロードし、ロードしたソフトウェアを実行することによって、上述の実施形態において図面を参照して説明したプロセスを実施する。プロセッサ92は、例えば、マイクロプロセッサ、MPU(マイクロ処理装置)、またはCPU(中央処理装置)であってもよい。プロセッサ92は、複数のプロセッサを含んでもよい。この場合、プロセッサの各々は、命令群を含む1つまたは複数のプログラムを実行することにより、コンピュータに図面を参照して上記で説明したアルゴリズムを実施させる。
【0084】
メモリ93は、揮発性メモリまたは不揮発性メモリによって形成されてもよいが、メモリ93は、揮発性メモリと不揮発性メモリの組み合わせによって形成されてもよい。メモリ93は、プロセッサ92から離れて配置された記憶装置を含むことができる。この場合、プロセッサ92は、I/Oインターフェース(図示せず)を通してメモリ93にアクセスすることができる。
【0085】
図13に示す例では、メモリ93は、ソフトウェアモジュール群を記憶するために使用される。プロセッサ92は、メモリ93からソフトウェアモジュール群を読み出し、読み出したソフトウェアモジュールを実行することによって、上述の実施形態で説明したプロセスを実施することができる。また、メモリ93は、上記で説明した予め定義された閾値を記憶することが可能である。
【0086】
上記で説明したように、上述の実施形態における構成の各々は、ハードウェアとソフトウェア(コンピュータプログラム)の組み合わせによって構成されてもよい。しかし、構成の各々は、1つのハードウェアまたはソフトウェアによって構成されてもよいし、複数のハードウェアまたはソフトウェアによって構成されてもよい。
【0087】
プログラムは、コンピュータにロードされると、コンピュータに実施形態で説明した機能の1つまたは複数を実施させる命令(またはソフトウェアコード)を含む。プログラムは、非一時的コンピュータ可読媒体または有形記憶媒体に記憶されてもよい。限定ではなく例として、非一時的コンピュータ可読媒体または有形記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートドライブ(SSD)もしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスク((R):登録商標)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイスを含むことができる。プログラムは、一時的なコンピュータ可読媒体または通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体または通信媒体は、電気的、光学的、音響的、または他の形式の伝搬信号を含むことができる。
【0088】
本開示は、上述した実施形態に限定されるものではなく、本開示の要旨および範囲を逸脱しない範囲において適宜修正可能であることに留意されたい。
【符号の説明】
【0089】
100 モデル訓練装置
101 推定ユニット
102 畳み込みニューラルネットワーク(CNN)モデル訓練ユニット
200 CNNモデル訓練システム
210 畳み込みニューラルネットワーク(CNN)モデル訓練ユニット
220 訓練済みCNNモデル
221 バックボーンブロック
222 直接和ブロック
223 マルチレベル特徴ピラミッドネットワーク(MLFPN)ブロック
224 予測器ブロック
225 FPNブロック
230 設計空間縮小器(DSR)ユニット
231 サーベイテーブル生成器ユニット
232 最適候補推定(OCE)ユニット
240 最適化済みCNNモデル