(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-20
(45)【発行日】2023-03-29
(54)【発明の名称】ニューラルネットワークアーキテクチャを探索する方法及び装置
(51)【国際特許分類】
G06N 3/0985 20230101AFI20230322BHJP
G06N 3/0464 20230101ALI20230322BHJP
G06T 7/00 20170101ALI20230322BHJP
G06V 10/82 20220101ALI20230322BHJP
【FI】
G06N3/0985
G06N3/0464
G06T7/00 350C
G06V10/82
(21)【出願番号】P 2022500783
(86)(22)【出願日】2019-07-15
(86)【国際出願番号】 CN2019095967
(87)【国際公開番号】W WO2021007743
(87)【国際公開日】2021-01-21
【審査請求日】2022-01-21
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】ジャン・ホォイガン
(72)【発明者】
【氏名】汪 留安
(72)【発明者】
【氏名】孫 俊
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2019/018375(WO,A1)
【文献】特開2012-243256(JP,A)
【文献】Golnaz Ghiasi et al.,"NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection",arXiv.org [online],arXiv:1904.07392v1,Cornell University,2019年04月,[令和5年2月3日検索], インターネット:<URL: https://arxiv.org/pdf/1904.07392v1>
【文献】Barret Zoph et al.,"Learning Transferable Architectures for Scalable Image Recognition",arXiv.org [online],arXiv:1707.07012v4,Cornell University,2018年04月,[令和5年2月3日検索], インターネット:<URL: https://arxiv.org/pdf/1707.07012v4>
【文献】Bichen Wu et al.,"FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search",arXiv.org [online],arXiv:1812.03443v3,Cornell University,2019年05月,[令和5年2月3日検索], インターネット:<URL: https://arxiv.org/pdf/1812.03443v3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00
G06V 10/82
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークアーキテクチャを自動探索する方法であって、
前記ニューラルネットワークアーキテクチャは画像中のオブジェクトの検出のために用いられ、かつバックボーンネットワーク及び特徴ネットワークを含み、
前記方法は、以下のステップを含み、即ち、
(a)前記バックボーンネットワークについての第一探索空間及び前記特徴ネットワークについての第二探索空間をそれぞれ構築し、前記第一探索空間は前記バックボーンネットワークの候補モデルの集合であり、前記第二探索空間は前記特徴ネットワークの候補モデルの集合であり;
(b)第一コントローラーを用いて前記第一探索空間においてバックボーンネットワークモデルをサンプリングし、及び第二コントローラーを用いて前記第二探索空間において特徴ネットワークモデルをサンプリングし;
(c)サンプリングされたバックボーンネットワークモデルとサンプリングされた特徴ネットワークモデルとのエントロピー及び確率の加算をそれぞれ行って前記第一コントローラーと前記第二コントローラーとを組み合わせることで、ジョイントコントローラーを取得し;
(d)前記ジョイントコントローラーを用いてジョイントモデルを取得し、前記ジョイントモデルはバックボーンネットワーク及び特徴ネットワークを含むネットワークモデルであり;
(e)前記ジョイントモデルを評価し、評価結果に基づいて前記ジョイントモデルのパラメータを更新し;
(f)更新されたジョイントモデルの検証精度を決定し、前記検証精度に基づいて前記ジョイントコントローラーを更新し;及び
(g)ステップ(d)-(f)を反復して実行し、所定検証精度に達したジョイントモデルを、探索されたニューラルネットワークアーキテクチャとするステップである、方法。
【請求項2】
請求項1に記載の方法であって、
加算後のエントロピー及び確率に基づいて前記ジョイントコントローラーの勾配を計算し;及び
前記検証精度に基づいて前記勾配に対してスケーリングを行うことで、前記ジョイントコントローラーを更新するステップをさらに含む、方法。
【請求項3】
請求項1に記載の方法であって、
回帰損失、分類損失及び時間損失のうちの1つ又は複数に基づいて前記ジョイントモデルを評価するステップをさらに含む、方法。
【請求項4】
請求項1に記載の方法であって、
前記バックボーンネットワークは複数の層を有する畳み込みニューラルネットワークであり、
各層のチャンネルが、数が等しい第一部分と第二部分に分けられ、
前記第一部分におけるチャンネルに対して操作を実行せず、かつ前記第二部分におけるチャンネルに対して残差計算を選択的に実行する、方法。
【請求項5】
請求項4に記載の方法であって、
畳み込みカーネルのサイズ、残差の拡張比率、及び残差計算の実行の要否を指示するためのマークに基づいて、前記バックボーンネットワークについての前記第一探索空間を構築するステップをさらに含む、方法。
【請求項6】
請求項5に記載の方法であって、
前記畳み込みカーネルのサイズは3*3及び5*5を含み、前記拡張比率は1、3及び6を含む、方法。
【請求項7】
請求項1に記載の方法であって、
合併及びダウンサンプリングを実行することで、前記バックボーンネットワークの出力特徴に基づいて、画像中のオブジェクトを検出するための検出特徴を生成するステップをさらに含む、方法。
【請求項8】
請求項7に記載の方法であって、
合併が必要な2つの特徴のうちの各特徴に対して実行される操作、及び操作結果に対しての合併方法に基づいて、前記特徴ネットワークについての前記第二探索空間を構築する、方法。
【請求項9】
請求項8に記載の方法であって、
前記操作は3*3畳み込み、2層の3*3畳み込み、最大プーリング、平均プーリング及び操作無しのうちの少なくとも1つを含む、方法。
【請求項10】
請求項7に記載の方法であって、
前記バックボーンネットワークの出力特徴は、サイズが逓減するN個の特徴を含み、
前記方法は、
N番目の特徴とN-1番目の特徴との合併を行い、N-1番目の合併特徴を生成し;
前記N-1番目の合併特徴に対してダウンサンプリングを行い、N番目の合併特徴を取得し;
N-i番目の特徴とN-i+1番目の合併特徴との合併を行い、N-i番目の合併特徴を生成し、ここで、i=2、3、…、N-1であり;及び
取得されたN個の合併特徴を前記検出特徴として使用するステップをさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト検出に関し、特に、オブジェクト検出のためのニューラルネットワークアーキテクチャを自動探索する方法及び装置に関する。
【背景技術】
【0002】
オブジェクト検出がコンピュータビジョンタスクの1つであり、その目的は画像において各オブジェクトをポジショニングし、かつそのカテゴリ(クラス)をマークすることにある。今のところ、深層畳み込みネットワークの急速な発展に伴い、オブジェクト検出は精度の面で大幅に向上している。
【0003】
オブジェクト検出のためのほとんどのモデルは、画像分類のために設計されるネットワークをバックボーンネットワークとして使用し、デテクター(検出器)のために異なる特徴表現を開発する。これらのモデルは優れた検出精度を達成することができるが、リアルタイムタスクには適していない。また、中央処理装置(CPU)又は携帯電話プラットフォームに用いられ得る簡略化検出モデルも提案されているが、これらのモデルの検出精度はしばしば不十分である。よって、リアルタイムタスクに直面するときに、従来の検出モデルで遅延と正確度の間の良好なバランスをとることは困難である。
【0004】
さらに、ニューラルネットワークアーキテクチャ探索(NAS)によってオブジェクト検出モデルを構築する方法も提案されている。これらの方法の主眼は、バックボーンネットワークの探索又は特徴ネットワークの探索にある。NASの有効性により、結果の検出精度をある程度向上させることができる。しかし、これらの探索方法は、全体的な検出モデルの一部としてのバックボーンネットワーク又は特徴ネットワークを対象としている。そのため、このような一方的なストラテジーでは、検出精度が依然として失われる恐れがある。
【0005】
従って、既存のオブジェクト検出モデルには次のような欠点が存在する。
【0006】
1)高度な検出モデルは、大量の手動作業及び事前知識に依存しており、優れた検出精度を得ることができるが、リアルタイムタスクには適しておらず;
2)手動設計された簡略化モデル又は縮小型モデルは、リアルタイムタスクを処理することができるが、正確度は要件を満たすのが困難であり;
3)従来のNASベースの方法は、バックボーンネットワーク及び特徴ネットワークのうちの1つが与えられた場合にのみ、もう1つの比較的良いモデルを得ることができる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述の問題に鑑みて、本発明は、少なくとも、エンドツーエンドの全体的なネットワークアーキテクチャを探索し得るNASベースの探索方法を提供することを課題とする。
【課題を解決するための手段】
【0008】
本発明の1つの側面によれば、ニューラルネットワークアーキテクチャを自動探索する方法が提供され、前記ニューラルネットワークアーキテクチャは画像中のオブジェクトの検出のために用いられ、かつバックボーンネットワーク及び特徴ネットワークを含み、前記方法は以下のステップを含み、即ち、
(a)前記バックボーンネットワークについての第一探索空間及び前記特徴ネットワークについての第二探索空間をそれぞれ構築し、そのうち、前記第一探索空間は前記バックボーンネットワークの候補モデルの集合であり、前記第二探索空間は前記特徴ネットワークの候補モデルの集合であり;
(b)第一コントローラー(制御器)を用いて前記第一探索空間内でバックボーンネットワークモデルをサンプリングし、及び第二コントローラーを用いて前記第二探索空間内で特徴ネットワークモデルをサンプリングし;
(c)サンプリングされたバックボーンネットワークモデルとサンプリングされた特徴ネットワークモデルとのエントロピー及び確率の加算を行って前記第一コントローラーと前記第二コントローラーを組み合わせることで、ジョイントコントローラーを取得し;
(d)前記ジョイントコントローラーを用いてジョイントモデルを取得し、前記ジョイントモデルはバックボーンネットワーク及び特徴ネットワークを含むネットワークモデルであり;
(e)前記ジョイントモデルを評価し、かつ評価結果に基づいて前記ジョイントモデルのパラメータを更新し;
(f)更新されたジョイントモデルの検証精度を決定し、かつ前記検証精度に基づいて前記ジョイントコントローラーを更新し;及び
(g)ステップ(d)-(f)を反復して実行し、所定検証精度に達したジョイントモデルを探索されたニューラルネットワークアーキテクチャとするステップである。
【0009】
本発明のもう1つの側面によれば、ニューラルネットワークアーキテクチャを自動探索する装置が提供され、そのうち、前記ニューラルネットワークアーキテクチャは画像中のオブジェクトの検出のために用いられ、かつバックボーンネットワーク及び特徴ネットワークを含み、前記装置は記憶器、及び1つ又は複数の処理器を含み、前記処理器は以下のステップを実行するように構成され、即ち、
(a)前記バックボーンネットワークについての第一探索空間及び前記特徴ネットワークについての第二探索空間をそれぞれ構築し、そのうち、前記第一探索空間は前記バックボーンネットワークの候補モデルの集合であり、前記第二探索空間は前記特徴ネットワークの候補モデルの集合であり;
(b)第一コントローラーを用いて前記第一探索空間内でバックボーンネットワークモデルをサンプリングし、及び第二コントローラーを用いて前記第二探索空間内で特徴ネットワークモデルをサンプリングし;
(c)サンプリングされたバックボーンネットワークモデルとサンプリングされた特徴ネットワークモデルとのエントロピー及び確率の加算を行って前記第一コントローラーと前記第二コントローラーを組み合わせることで、ジョイントコントローラーを取得し;
(d)前記ジョイントコントローラーを用いてジョイントモデルを取得し、前記ジョイントモデルはバックボーンネットワーク及び特徴ネットワークを含むネットワークモデルであり;
(e)前記ジョイントモデルを評価し、かつ評価結果に基づいて前記ジョイントモデルのパラメータを更新し;
(f)更新されたジョイントモデルの検証精度を決定し、かつ前記検証精度に基づいて前記ジョイントコントローラーを更新し;及び
(g)ステップ(d)-(f)を反復して実行し、所定検証精度に達したジョイントモデルを探索されたニューラルネットワークアーキテクチャとするステップである。
【0010】
本発明のもう1つの側面によれば、プログラムを記憶している記録媒体が提供され、前記プログラムはコンピュータにより実行されるときに、コンピュータに、上述したような、ニューラルネットワークアーキテクチャを自動探索する方法を実行させる。
【図面の簡単な説明】
【0011】
【
図1】オブジェクト検出のための検出ネットワークのアーキテクチャを示す図である。
【
図2】本発明によるニューラルネットワークアーキテクチャ探索方法のフローチャートである。
【
図3】バックボーンネットワークのアーキテクチャを示す図である。
【
図4】バックボーンネットワークの出力特徴を示す図である。
【
図5】バックボーンネットワークの出力特徴に基づく検出特徴の生成を示す図である。
【
図6】特徴の合併及び第二探索空間を示す図である。
【
図7】本発明を実現し得るコンピュータハードウェアの構成を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、添付した図面を参照しながら、本発明を実施するための好適な実施例を詳細に説明する。なお、このような実施例は例示に過ぎず、本発明を限定するものでない。
【0013】
図1はオブジェクト検出を行うための検出ネットワークのブロック図である。
図1に示すように、検出ネットワークはバックボーンネットワーク110、特徴ネットワーク120及び検出ユニット130を含む。バックボーンネットワーク110は検出モデルを構成する基礎ネットワークであり、特徴ネットワーク120はバックボーンネットワーク110の出力に基づいてオブジェクトを検出するための特徴表現を生成し、検出ユニット130は特徴ネットワーク120から出力される特徴に基づいて画像中のオブジェクトを検出し、オブジェクトの位置及びカテゴリのマークを取得する。本発明の技術案は主にバックボーンネットワーク110及び特徴ネットワーク120に関し、両者はニューラルネットワークにより実現することができる。
【0014】
従来のNASベースの方法とは異なり、本発明の方法の探索対象はバックボーンネットワーク110及び特徴ネットワーク120からなる全体的なネットワークアーキテクチャである。よって、この方法は“エンドツーエンド”のネットワークアーキテクチャ探索方法とも称される。
【0015】
図2は本発明のニューラルネットワークアーキテクチャを探索する方法のフローチャートである。
図2に示すように、まず、ステップS210では、バックボーンネットワークについての第一探索空間及び特徴ネットワークについての第二探索空間をそれぞれ構築する。第一探索空間はバックボーンネットワークを形成するための複数の候補ネットワークモデルを含み、第二探索空間は特徴ネットワークを形成するための複数の候補ネットワークモデルを含む。なお、第一探索空間及び第二探索空間の構成については後述する。
【0016】
ステップS220では、第一コントローラーを利用して第一探索空間においてバックボーンネットワークモデルをサンプリングし、及び第二コントローラーを利用して第二探索空間において特徴ネットワークモデルをサンプリングする。ここで、“サンプリング”は探索空間のうちから或るサンプル、即ち、或る候補ネットワークモデルを得ると理解されても良い。第一コントローラー及び第二コントローラーは再帰型ニューラルネットワーク(RNN)により実現され得る。コントローラーはニューラルネットワークアーキテクチャ探索の分野における一般的な概念であり、それは探索空間内でより良いネットワーク構造をサンプリングするために用いられる。例えば、Barret Zophらが2017年に「5th International Conference of Learning Representation」で発表した“Neural Architecture Search with Reinforcement Learning”という論文には該コントローラーの一般的な原理、構造及び具体的な実現細部が説明されており、ここではこの論文の内容を参照により援用する。
【0017】
ステップS230では、サンプリングされたバックボーンネットワークモデルとサンプリングされた特徴ネットワークモデルとのエントロピー及び確率の加算を行って第一コントローラーと第二コントローラーを組み合せることで、ジョイントコントローラーを取得する。具体的に言えば、第一コントローラーによりサンプリングされたバックボーンネットワークモデルについて、エントロピー及び確率の値(エントロピー値E1及び確率値P1と記す)をそれぞれ計算し、第二コントローラーによりサンプリングされた特徴ネットワークモデルについても、エントロピー及び確率の値(エントロピー値E2及び確率値P2と記す)をそれぞれ計算する。エントロピー値E1とエントロピー値E2の和を求めることで、全体エントロピー値Eを得る。同様に、確率値P1と確率値P2の加算を行うことで、全体確率値Pを取得する。全体エントロピー値E及び全体確率値Pを使用してジョイントコントローラーの勾配を算出することができる。このような方式により、2つの独立したコントローラーを用いてそれらの組み合わせとしてのジョイントコントローラーを表すことができ、かつ後続のステップS270において該ジョイントコントローラーを更新することができる。
【0018】
次に、ステップS240では、ジョイントコントローラーを利用してジョイントモデルを取得し、該ジョイントモデルはバックボーンネットワーク及び特徴ネットワークを含む全体ネットワークモデルである。
【0019】
その後、ステップS250では、取得されたジョイントモデルを評価する。例えば、回帰損失(RLOSS)、分類損失(FLOSS)及び時間損失(FLOP)のうちの1つ又は複数に基づいて評価を行うことができる。オブジェクト検出では、通常、検出枠を用いて、検出されたオブジェクトの位置を標識する。回帰損失は、検出枠の確定の面での損失を表し、それは、検出枠とオブジェクトの実際の位置との間のマッチング度合いを反映する。分類損失は、オブジェクトのカテゴリのマークの確定の面での損失を表し、それは、オブジェクトを分類する正確度を反映する。時間損失は、演算量又は演算複雑度を反映し、演算複雑度が高いほど、時間損失が大きくなる。
【0020】
ジョイントモデル対しての評価結果として、ジョイントモデルの上述の1つ又は複数の面における損失を決定することができる。その後、損失関数LOSS(m)を最小化する方式でジョイントモデルのパラメータを更新する。損失関数LOSS(m)は以下の式で表すことができる。
【数1】
【0021】
そのうち、重みパラメータλ1及びλ2は具体的な応用に依存する定数であり、重みパラメータλ1及びλ2を適切に設定することにより、上述の3種類の損失による作用の比率を制御することができる。
【0022】
続いて、ステップS260に示すように、検証データセットを使用して更新後のジョイントモデルの検証精度を計算し、そして、該検証精度が所定精度に達したかを判断する。
【0023】
所定精度に達しないと決定したときに(ステップS260における“いいえ”)、ステップS270に示すように、該ジョイントモデルの検証精度に基づいてジョイントコントローラーを更新する。このステップでは、例えば、ステップS230で取得された加算後のエントロピー及び確率に基づいてジョイントコントローラーの勾配を計算し、その後、該ジョイントモデルの検証精度に基づいて、計算された勾配に対してスケーリング(縮小拡大)を行うことで、ジョイントコントローラーを更新することができる。
【0024】
更新後のジョイントコントローラーを得た後に、方法はステップS240に戻り、更新後のジョイントコントローラーを用いて再びジョイントモデルを生成することができる。ステップS240-S270を反復して実行することで、ジョイントモデルの検証精度に基づいてジョイントコントローラーを継続的に更新することができる。これにより、更新後のジョイントコントローラーは、より良いジョイントモデルを生成し、そして、取得したジョイントモデルの検証精度を継続的に向上させることができる。
【0025】
ステップS260で所定精度に達したと決定したときに(ステップS260おける“はい”)、ステップS280に示すように、現在のジョイントモデルを探索されたニューラルネットワークアーキテクチャとする。該ニューラルネットワークアーキテクチャを使用することで、
図1に示すようなオブジェクト検出ネットワークを構築することができる。
【0026】
以下、
図3を参照しながらバックボーンネットワークのアーキテクチャ及びバックボーンネットワークのための第一探索空間を説明する。
図3に示すように、バックボーンネットワークは、複数(N個)の層を有する畳み込みニューラルネットワーク(CNN)として実現されても良く、各層は複数のチャンネルを有する。各層のチャンネルは、数が同じ(等しい)第一部分Aと第二部分Bに分けられる。第一部分Aにおけるチャンネルに対して操作を行わず、第二部分Bにおけるチャンネルに対して残差計算を選択的に実行し、最後に、この2つの部分のチャンネルに対して合併及びランダム変換(shuffle)を行う。
【0027】
特に、選択的な残差計算は、図中で“スキップ”とマークされたライン(接続線)により実現される。“スキップ”ラインが存在するときに、第二部分Bにおけるチャンネルが残差計算を経るので、該層について言えば、残差ポリシーとランダム変換を組み合わせている。“スキップ”ラインが存在しないときに、残差計算を行わないので、該層は1つの通常のランダム変換ユニットである。
【0028】
バックボーンネットワークの各層について言えば、残差計算の実行の要否を指示するマーク(即ち、“スキップ”線の存在又は不存在)以外に、他の設定オプションも存在し、例えば、畳み込みカーネルのサイズ及び残差の拡張比率である。本発明では、畳み込みカーネルのサイズは例えば、3*3又は5*5であっても良く、拡張比率は例えば、1、3又は6であっても良い。
【0029】
畳み込みカーネルのサイズ、残差の拡張比率、及び残差計算の実行の要否を指示するためのマークの異なる組み合わせに基づいて、バックボーンネットワークの1つの層を多様に設定することができる。畳み込みカーネルのサイズが3*3、5*5の2種類を有し、拡張比率が1、3、6の3種類を有し、残差計算の実行の要否を指示するためのマークが0、1の2種類を有するとする場合、各層について言えば、2×3×2=12種類の組み合わせ(設定)が有するため、N層を有するバックボーンネットワークについて言えば、12N種類の可能な候補設定が存在する。この12N種類の候補モデルはバックボーンネットワークのための第一探索空間を構成する。つまり、第一探索空間はバックボーンネットワークのすべての可能な候補設定を含む。
【0030】
図4はバックボーンネットワークの出力特徴の生成方法を示している。
図4に示すように、バックボーンネットワークのN個の層を順次、複数の段に分割し、例えば、層1-層3が第1段に、層4-層6が第2段、…、層(N-2)-層Nが第6段に属するように分割される。なお、
図4は層の分割方法の一例に過ぎず、本発明はこれに限定されず、他の分割方式を採用しても良い。
【0031】
同一段の中の各層が同じサイズの特徴を出力し、かつ最後の1層の出力が該段の出力とされる。また、k個(k=各段に含まれる層の数)の層ごとに1つの特徴削減(減少)処理を行うことで、後の1段の出力する特徴のサイズが前の1段の出力する特徴のサイズよりも小さくなるようにさせることができる。このようにして、バックボーンネットワークは、異なるサイズの特徴を出力することができるため、異なるサイズのオブジェクトの認識に適用することができる。
【0032】
その後、各段(例えば、第1段-第6段)が出力した特徴のうち、サイズが所定閾値よりも小さい1つ又は複数の特徴を選択する。一例として、第4段、第5段及び第6段が出力した特徴を選んでも良い。また、各段が出力した特徴のうち、サイズが最小の特徴に対してダウンサンプリングを行うことで、ダウンサンプリング後の特徴を取得する。オプションとして、さらに、ダウンサンプリング後に得られた特徴に対して再びダウンサンプリングを行うことで、より小さいサイズを有する特徴を取得しても良い。一例として、第6段が出力した特徴に対してダウンサンプリングを行い、第一ダウンサンプリング特徴を取得し、そして、該第一ダウンサンプリング特徴に対してさらにダウンサンプリングを行い、第一ダウンサンプリング特徴よりも小さいサイズの第二ダウンサンプリング特徴を取得することができる。
【0033】
その後、上述の所定閾値よりも小さいサイズの特徴(例えば、第4段-第6段が出力した特徴)及びダウンサンプリングによって得られた特徴(例えば、第一ダウンサンプリング特徴及び第二ダウンサンプリング特徴)をバックボーンネットワークの出力特徴とする。例えば、バックボーンネットワークの出力特徴は、集合{16、32、64、128、256}から選択された特徴ステップ長を有しても良い。該集合内の各数値は、対応する特徴のオリジナル入力画像に対してのスケーリング比率を表す。例えば、16は、対応する出力特徴のサイズがオリジナル画像サイズの1/16であることを表す。バックボーンネットワークの或る層で取得された検出枠をオリジナル画像に適用するプロセッサにおいて、該層に対応する特徴ステップ長により指示される比率に従って検出枠に対してスケーリングを行い、その後、スケーリング後の検出枠を用いてオリジナル画像においてオブジェクトの位置をマークする。
【0034】
バックボーンネットワークの出力特徴はその後、特徴ネットワークに入力され、そして、特徴ネットワークの中でオブジェクト検出用の検出特徴に変換される。
図5は特徴ネットワークの中でバックボーンネットワークの出力特徴に基づいて検出特徴を生成する処理を示している。
図5では、S1-S5は、バックボーンネットワークが出力した、サイズが逓減する5つの特徴を示し、F1-F5は検出特徴を表す。なお、本発明は
図5に示す例に限定されず、他の数の特徴も可能である。
【0035】
まず、特徴S5と特徴S4との合併を行い、検出特徴F4を生成する。なお、特徴の合併操作については
図6に基づいて後述する。
【0036】
次に、取得された検出特徴F4に対してダウンサンプリングを行い、より小さいサイズを有する検出特徴F5を得る。特に、検出特徴F5のサイズは特徴S5のサイズと同じである。
【0037】
その後、特徴S3と、取得された検出特徴F4との合併を行い、検出特徴F3を生成し;特徴S2と、取得された検出特徴F3との合併を行い、検出特徴F2を生成し;特徴S1と、取得された検出特徴F2との合併を行い、検出特徴F1を生成する。
【0038】
このような方式により、バックボーンネットワークの出力特徴S1-S5に対して合併及びダウンサンプリングを行うことで、オブジェクト検出用の検出特徴F1-F5を生成することができる。
【0039】
好ましくは、上述したようなプロセスを繰り返して複数回を行うことで、パフォーマンスがより良い検出特徴を取得することができる。具体的に言えば、例えば、次のような下方式で再び上述の取得された検出特徴F1-F5に対して合併を行っても良く、即ち、特徴F5と特徴F4との合併を行い、新特徴F4’を生成し;新特徴F4’に対してダウンサンプリングを行い、新特徴F5’を取得し;特徴F3と新特徴F4’との合併を行い、新特徴F3’を生成し、…、これに基づいて類推し、新特徴F1’-F5’を取得することができる。さらに、再び新特徴F1’-F5’に対して合併を行い、検出特徴F1’’-F5’’を生成することができる。このプロセスを繰り返して複数回実行することで、最終的に生成された検出特徴がより良いパフォーマンスを有するようにさせることができる。
【0040】
以下、
図6を基に2つの特徴の合併について具体的に説明する。
図6の左の半分は合併方法のフローを示している。S
iはバックボーンネットワークが出力した、サイズが逓減する複数の特徴の1つを示し、S
i+1は特徴S
iと隣接し、かつサイズが特徴S
iよりも小さい特徴を示す(
図5参照)。特徴S
iと特徴S
i+1は、サイズが異なり、かつ含まれるチャンネルの数も異なるので、合併前に、処理を行って、この2つの特徴が同じサイズ及び同じ数のチャンネルを有するようにさせる必要がある。
【0041】
図6に示すように、まず、ステップS610では特徴S
i+1のサイズを調整する。例えば、特徴S
iのサイズが特徴S
i+1のサイズの2倍である場合、ステップS610では特徴S
i+1のサイズを元の2倍に拡大する。
【0042】
また、特徴Si+1に含まれるチャンネル数が特徴Siのチャンネル数の2倍である場合、ステップS620では特徴Si+1のチャンネルを分割し、その半分のチャンネルと特徴Siとの合併を行う。
【0043】
合併は次のような方式で実現されても良く、即ち、ステップS630に示すように、第二探索空間内で最適合併方式を探索し、かつ探索した最適方式に従って特徴Si+1と特徴Siの合併を行う。
【0044】
図6の右の半分は第二探索空間の構成を示している。特徴S
i+1及び特徴S
iのうち各々について、次のような操作のうちの少なくとも1つを実行しても良く、即ち、3*3畳み込み、2層の3*3畳み込み、最大プーリング(max pool)、平均プーリング(ave pool)及び操作無し(id)である。その後、任意の2つの操作の結果の加算(add)を行い、そして、所定数の加算の結果に対して再び加算を行い、特徴F
i’を取得する。
【0045】
第二探索空間は、特徴S
i+1及び特徴S
iに対して行われる各種の操作、及び各種の加算方法を含む。例えば、
図6では、特徴S
i+1に対して行われる2種類の操作(例えば、id及び3*3畳み込み)の結果の加算を行い;特徴S
iに対して行われる2種類の操作(例えば、id及び3*3畳み込み)の結果の加算を行い;特徴S
i+1に対して行われる操作(例えば、平均プーリング)の結果と特徴S
iに対して行われる操作(例えば、3*3畳み込み)の結果の加算を行い;特徴S
i+1に対して行われる一回の操作(例えば、2層の3*3畳み込み)の結果と特徴S
iに対して行われる複数回の操作(例えば、3*3畳み込み及び最大プーリング)の結果の加算を行い;及び、4つの加算結果に対して再び加算を行って特徴F
i’を得ることが示されている。
【0046】
なお、
図6は第二探索空間の構成の一例に過ぎず、実際には、第二探索空間は特徴S
i+1及び特徴S
iに対して行われる操作及び合併のすべての可能な方法を含む。ステップS630の処理は第二探索空間において最適な合併方式を探索し、かつ探索した方式で特徴S
i+1と特徴S
iの合併を行う処理である。また、ここでの各種の可能な合併方式は、上述の
図2に基づいて説明された、第二コントローラーにより第二探索空間内でサンプリングされる1つの特徴ネットワークモデルに対応し、それは、どのノードに対して操作を行うかだけでなく、該ノードに対してどのような操作を行うかにも関する。
【0047】
その後、ステップS640では、取得された特徴Fi’に対してチャンネルランダム変換を行い、検出特徴Fiを取得する。
【0048】
以上、図面を参照しながら本発明の実施形態を詳細に説明した。手動設計された簡略化モデル及び従来のNASベースのモデルに比べて、本発明の探索方法は、全体的なニューラルネットワーク(バックボーンネットワーク及び特徴ネットワークを含む)のアーキテクチャを得ることができ、かつ次のような利点を有し、即ち、バックボーンネットワーク及び特徴ネットワークが同時に更新され得るので、検出ネットワークの全体としての良好な出力を保証することができ;複数の損失(例えば、RLOSS、FLOSS、FLOP)をジョイント使用するので、マルチタスクの問題を処理することができ、探索時に正確度と時間延遅のバランスをとることができ;探索空間が軽量級の畳み込み操作を採用するので、探索したモデルが比較的小さく、移動の環境及びリソース制限の環境に特に適している。
【0049】
上述の方法はソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせにより実現され得る。ソフトウェアに含まれるプログラムは装置の内部又は外部に設置される記憶媒体に事前記憶することができる。一例として、実行期間内で、これらのプログラムはランダムアクセスメモリ(RAM)に書き込まれ、そして、処理器(例えば、CPU)により実行されることで、上述した各種の処理を実現することができる。
【0050】
明らかのように、本発明の方法の各操作プロセスは、各種のマシン可読記憶媒体に記憶されているコンピュータ実行可能なプログラムにより実現され得る。
【0051】
また、本発明の目的は次のような方式で実現されても良く、即ち、上述の実行可能なプログラムコードが記憶されている記憶媒体を直接又は間接的にシステム又は装置に提供し、該システム又は装置におけるコンピュータ又は中央処理ユニット(CPU)は上述のプログラムコードを読み出して実行する。このときに、該システム又は装置がプログラムを実行し得る機能を有すれば、本発明の実施方式はプログラムに限定されず、また、該プログラムは任意の形式、例えば、オブジェクト指向プログラム、インタプリタによって実行されるプログラム、オペレーティングシステムに提供されるスクリプトプログラムなどであっても良い。
【0052】
これらのマシン可読記憶媒体は、各種のメモリ及び記憶ユニット、半導体デバイス、光、磁気、光磁気ディスクなどの磁気ディスク、情報の記憶に適した他の媒体などを含んでも良いが、これに限られない。
【0053】
また、コンピュータは、インターネット上の対応するウェブサイトに接続し、かつ本発明によるコンピュータプログラムコードをコンピュータにダウンローしてインストールし、その後、該プログラムを実行することにより、本発明の技術案を実現することもできる。
【0054】
図7は本発明を実現し得るハードウェア構成(汎用マシン)700の構成図である。
【0055】
汎用マシン700は、例えば、コンピュータシステムであっても良い。なお、汎用マシン700は、例示に過ぎず、本発明による方法及び装置の適応範囲又は機能について限定しない。また、汎用マシン700は、上述の方法及び装置における任意のモジュールやアセンブリなど又はその組み合わせにも依存しない。
【0056】
図7では、中央処理装置(CPU)701は、ROM702に記憶されているプログラム又は記憶部708からRAM703にロッドされているプログラムに基づいて各種の処理を行う。RAM703では、ニーズに応じて、CPU701が各種の処理を行うときに必要なデータなどを記憶することもできる。CPU701、ROM702及びRAM703は、バス704を経由して互いに接続される。入力/出力インターフェース705もバス704に接続される。
【0057】
また、入力/出力インターフェース705には、さらに、次のような部品が接続され、即ち、キーボードなどを含む入力部706、液晶表示器(LCD)などのような表示器及びスピーカーなどを含む出力部707、ハードディスクなどを含む記憶部708、ネットワーク・インターフェース・カード、例えば、LANカード、モデムなどを含む通信部709である。通信部709は、例えば、インターネット、LANなどのネットワークを経由して通信処理を行う。ドライブ710は、ニーズに応じて、入力/出力インターフェース705に接続されても良い。取り外し可能な媒体711、例えば、半導体メモリなどは、必要に応じて、ドライブ710にセットされることにより、その中から読み取られたコンピュータプログラムを記憶部708にインストールすることができる。
【0058】
また、本発明は、さらに、マシン可読指令コードを含むプログラムプロダクトを提供する。このような指令コードは、マシンにより読み取られて実行されるときに、上述の本発明の実施例における方法を実行することができる。それ相応に、このようなプログラムプロダクトをキャリー(carry)する、例えば、磁気ディスク(フロッピーディスク(登録商標)を含む)、光ディスク(CD-ROM及びDVDを含む)、光磁気ディスク(MD(登録商標)を含む)、及び半導体記憶器などの各種記憶媒体も、本発明に含まれる。
【0059】
上述の記憶媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体記憶器などを含んでも良いが、これらに限定されない。
【0060】
また、上述の方法における各操作(処理)は、各種のマシン可読記憶媒体に記憶されているコンピュータ実行可能なプログラムの方式で実現することもできる。
【0061】
また、以上の実施例などに関し、さらに以下のように付記として開示する。
【0062】
(付記1)
ニューラルネットワークアーキテクチャを自動探索する方法であって、
前記ニューラルネットワークアーキテクチャは画像中のオブジェクトの検出のために用いられ、かつバックボーンネットワーク及び特徴ネットワークを含み、前記方法は以下のステップを含み、即ち、
(a)前記バックボーンネットワークについての第一探索空間及び前記特徴ネットワークについての第二探索空間をそれぞれ構築し、そのうち、前記第一探索空間は前記バックボーンネットワークの候補モデルの集合であり、前記第二探索空間は前記特徴ネットワークの候補モデルの集合であり;
(b)第一コントローラーを用いて前記第一探索空間内でバックボーンネットワークモデルをサンプリングし、及び第二コントローラーを用いて前記第二探索空間内で特徴ネットワークモデルをサンプリングし;
(c)サンプリングされたバックボーンネットワークモデルとサンプリングされた特徴ネットワークモデルとのエントロピー及び確率の加算を行って前記第一コントローラーと前記第二コントローラーを組み合わせることで、ジョイントコントローラーを取得し;
(d)前記ジョイントコントローラーを用いてジョイントモデルを取得し、前記ジョイントモデルはバックボーンネットワーク及び特徴ネットワークを含むネットワークモデルであり;
(e)前記ジョイントモデルを評価し、かつ評価結果に基づいて前記ジョイントモデルのパラメータを更新し;
(f)更新されたジョイントモデルの検証精度を決定し、かつ前記検証精度に基づいて前記ジョイントコントローラーを更新し;
(g)ステップ(d)-(f)を反復して実行し、所定検証精度に達したジョイントモデルを探索されたニューラルネットワークアーキテクチャとするステップである、方法。
【0063】
(付記2)
付記1に記載の方法であって、さらに、
加算後のエントロピー及び確率に基づいて前記ジョイントコントローラーの勾配を計算し;及び
前記検証精度に基づいて前記勾配に対してスケーリングを行い、前記ジョイントコントローラーを更新するステップを含む、方法。
【0064】
(付記3)
付記1に記載の方法であって、さらに、
回帰損失、分類損失及び時間損失のうちの1つ又は複数に基づいて前記ジョイントモデルを評価するステップを含む、方法。
【0065】
(付記4)
付記1に記載の方法であって、
前記バックボーンネットワークは複数の層を有する畳み込みニューラルネットワークであり、
そのうち、各層のチャンネルは、数が同じの第一部分と第二部分に分割され、
そのうち、前記第一部分におけるチャンネルに対して操作を行わず、かつ前記第二部分におけるチャンネルに対して残差計算を選択的に行う、方法。
【0066】
(付記5)
付記4に記載の方法であって、さらに、
畳み込みカーネルのサイズ、残差の拡張比率、及び残差計算の実行の要否を指示するためのマークに基づいて、前記バックボーンネットワークについての前記第一探索空間を構築するステップを含む、方法。
【0067】
(付記6)
付記5に記載の方法であって、
前記畳み込みカーネルのサイズは3*3及び5*5を含み、前記拡張比率は1、3及び6を含む、方法。
【0068】
(付記7)
付記1に記載の方法であって、さらに、
合併及びダウンサンプリングを行うことで、前記バックボーンネットワークの出力特徴に基づいて、画像中のオブジェクトを検出するための検出特徴を生成するステップを含む、方法。
【0069】
(付記8)
付記7に記載の方法であって、
合併が必要な2つの特徴のうちの各特徴に対して行われる操作、及び操作結果に対しての合併方式に基づいて、前記特徴ネットワークについての前記第二探索空間を構築する、方法。
【0070】
(付記9)
付記8に記載の方法であって、
前記操作は3*3畳み込み、2層の3*3畳み込み、最大プーリング、平均プーリング及び操作無しのうちの少なくとも1つを含む、方法。
【0071】
(付記10)
付記7に記載の方法であって、
前記バックボーンネットワークの出力特徴は、サイズが逓減するN個の特徴を含み、前記方法は、さらに、
N番目の特徴とN-1番目の特徴との合併を行い、N-1番目の合併特徴を生成し;
前記N-1番目の合併特徴に対してダウンサンプリングを行い、N番目の合併特徴を取得し;
N-i番目の特徴とN-i+1番目の合併特徴との合併を行い、N-i番目の合併特徴を生成し、そのうち、i=2、3、…、N-1であり;及び
取得されたN個の合併特徴を前記検出特徴として使用するステップを含む、方法。
【0072】
(付記11)
付記7に記載の方法であって、さらに、
前記バックボーンネットワークの複数の層を順次、複数の段に分割し、そのうち、同一の段に含まれる各層が同じサイズの特徴を出力し、かつ各段の出力する特徴のサイズが逓減し;
前記各段の出力する特徴のうちの、サイズが所定閾値よりも小さい1つ又は複数の特徴を第一特徴として選択し;
前記各段の出力する特徴のうちの、サイズが最小の特徴に対してダウンサンプリングを行い、かつダウンサンプリングにより得られた特徴を第二特徴とし;及び
前記第一特徴及び前記第二特徴を前記バックボーンネットワークの出力特徴とするステップを含む、方法。
【0073】
(付記12)
付記1に記載の方法であって、
前記第一コントローラー、前記第二コントローラー及び前記ジョイントコントローラーは再帰型ニューラルネットワーク(RNN)により実現される、方法。
【0074】
(付記13)
付記8に記載の方法であって、さらに、
前記2つの特徴の合併を行う前に、処理を行うことで、前記2つの特徴が同じサイズ及び同じ数のチャンネルを有するようにさせるステップを含む、方法。
【0075】
(付記14)
ニューラルネットワークアーキテクチャを自動探索する装置であって、
前記ニューラルネットワークアーキテクチャは画像中のオブジェクトの検出のために用いられ、かつバックボーンネットワーク及び特徴ネットワークを含み、
前記装置は、記憶器、及び1つ又は複数の処理器を含み、
前記処理器は、付記1-13に記載の方法を実行するように構成される、装置。
【0076】
(付記15).
プログラムを記憶している記憶媒体であって、
前記プログラムはコンピュータにより実行されるときに、コンピュータに、付記1-13に記載の方法を実行させる、記憶媒体。
【0077】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は、本発明の技術的範囲に属する。