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

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

▶ 株式会社日立超エル・エス・アイ・システムズの特許一覧

<>
  • 特許-DNNモデル圧縮システム 図1
  • 特許-DNNモデル圧縮システム 図2
  • 特許-DNNモデル圧縮システム 図3
  • 特許-DNNモデル圧縮システム 図4
  • 特許-DNNモデル圧縮システム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-28
(45)【発行日】2024-06-05
(54)【発明の名称】DNNモデル圧縮システム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240529BHJP
   G06N 3/082 20230101ALI20240529BHJP
   G08G 1/16 20060101ALI20240529BHJP
【FI】
G06T7/00 350C
G06N3/082
G08G1/16 C
【請求項の数】 4
(21)【出願番号】P 2020116945
(22)【出願日】2020-07-07
(65)【公開番号】P2022014569
(43)【公開日】2022-01-20
【審査請求日】2023-02-28
(73)【特許権者】
【識別番号】000233169
【氏名又は名称】株式会社日立ソリューションズ・テクノロジー
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】小野 豪一
(72)【発明者】
【氏名】高武 直弘
(72)【発明者】
【氏名】クレシテリ,ヴィヴィアナ
(72)【発明者】
【氏名】猪貝 光祥
(72)【発明者】
【氏名】北上 純一
【審査官】新井 則和
(56)【参考文献】
【文献】特開2018-207222(JP,A)
【文献】特開2018-129033(JP,A)
【文献】特開2020-098455(JP,A)
【文献】特開2016-031564(JP,A)
【文献】山本 康平 外,ディープラーニングのモデル軽量化技術,OKIテクニカルレビュー 第233号 Vol.86 No.1,2019年05月20日,第86巻
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/082
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
データセットから認識対象種の物体のみを切り出したサブデータセットを生成するサブデータセット生成部と、
前記サブデータセットを用いてDNN(Deep Neural Network)の内部のニューロンの前記物体に対する感度情報を取得する感度解析部と、
前記感度情報およびプルーニング仕様情報を用いてプルーニング前モデルからニューロンを削減したプルーニング後モデルを生成するプルーニング部と、
前記データセットを用いて前記プルーニング後モデルにおける前記物体の認識精度を評価する推論部と、
前記サブデータセット、前記感度情報、前記プルーニング後モデルを格納する格納部と、 を備え、
前記プルーニング部は、前記プルーニング仕様情報に含まれる前記認識対象種ごとの優先度を示すプルーニング優先度に基づき削減対象の前記ニューロンを選択し、
前記推論部は、前記プルーニング優先度が高い前記認識対象種の前記物体の認識精度を評価する、
DNNモデル圧縮システム。
【請求項2】
請求項1に記載のDNNモデル圧縮システムにおいて、
前記プルーニング部は、前記プルーニング仕様情報に含まれる前記プルーニング前モデルのニューロン数に対し削除されるニューロン数の割合を示すプルーニング率に基づき削減対象の前記ニューロンを選択する、
DNNモデル圧縮システム。
【請求項3】
請求項1に記載のDNNモデル圧縮システムにおいて、
前記感度解析部は、前記データセットに含まれる画像データにおける注視領域ごとに前記ニューロンの前記物体に対する感度情報を取得する、
DNNモデル圧縮システム。
【請求項4】
請求項に記載のDNNモデル圧縮システムにおいて、
前記注視領域は、前記画像データにおける前記物体の方向、または撮像位置から前記物体までの距離である、
DNNモデル圧縮システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、DNNモデル圧縮システムに関する。
【背景技術】
【0002】
CNN(Convolutional Neural Network)が組み込まれた組み込みデバイスを用いた画像認識が行われている。CNNが組み込まれた組み込みデバイスは、例えば乗用車、建機、農機等の車両等に搭載され、画像認識を用いた自動運転等に応用されている。
【0003】
例えば特許文献1では、対象物体の特徴点、姿勢又は動作を推定する用に、より好適な推定装置が開示されている。具体的には、画像に映る対象物体の領域における各画素値を、前記画像を表現する全階調域のうちの第1の階調範囲内に圧縮する圧縮処理部(23)と、前記圧縮処理が施された前記画像に対して、学習済みの第1の識別器モデル(Dm1)を用いた画像解析を施して、前記対象物体の特徴点、姿勢又は動作を推定する推定部(24)と、を備え、前記第1の識別器モデル(Dm1)は、前記圧縮処理が施された教師画像と当該教師画像に映る前記対象物体の特徴点、姿勢又は動作とが関連付けられた第1の学習データ(Dt1)を用いて、学習処理が施されている旨、特許文献1には記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-175093号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
CNNのベースモデルを用いれば、画像に含まれるすべての物体を高精度に認識可能である。ただし、演算量が非常に多大になるため、プロセッサに大きな負荷が掛かってしまう。また、CNNよりも層が深いDNN(Deep Neural Network)を用いた場合、CNNよりもさらに演算量が多くなるため、プロセッサに掛かる負荷がさらに増大する。一方、CNNやDNNが搭載される装置(車両等)ごとに必要な情報は異なる。
【0006】
そこで、本発明は、装置の要求仕様に応じたモデル圧縮を行うことが可能なDNNモデル圧縮システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0008】
本発明の代表的な実施の形態によるDNNモデル圧縮システムは、データセットから認識対象種の物体のみを切り出したサブデータセットを生成するサブデータセット生成部と、サブデータセットを用いてDNNの内部のニューロンの物体に対する感度情報を取得する感度解析部と、感度情報およびプルーニング仕様情報を用いてプルーニング前モデルからニューロンを削減したプルーニング後モデルを生成するプルーニング部と、データセットを用いてプルーニング後モデルにおける物体の認識精度を評価する推論部と、サブデータセット、感度情報、プルーニング後モデルを格納する格納部と、を備えている。プルーニング部は、プルーニング仕様情報に含まれる認識対象種ごとの優先度を示すプルーニング優先度に基づき削減対象のニューロンを選択する。
【発明の効果】
【0009】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0010】
すなわち、本発明の代表的な実施の形態によれば、装置の要求仕様に応じたモデル圧縮を行うことが可能となる。
【0011】
上記した以外の課題、構成および効果は、以下の「発明を実施するための形態」の説明により明らかにされる。
【図面の簡単な説明】
【0012】
図1】本発明の一実施の形態に係るDNNモデル圧縮システムの一例を示すブロック図である。
図2】DNNモデル圧縮方法を説明する図である。
図3】本発明の実施の形態1に係るDNNモデル圧縮方法の一例を示すフロー図である。
図4】本発明の実施の形態1による効果を説明する図である。
図5】本発明の実施の形態2に係るDNNモデル圧縮方法の一例を示すフロー図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。実施の形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0014】
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
【0015】
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0016】
(実施の形態1)
<DNNモデル圧縮システムの構成>
図1は、本発明の一実施の形態に係るDNNモデル圧縮システムの一例を示すブロック図である。DNNモデル圧縮システム1は、DNNモデルが搭載される装置の要求仕様に応じて、DNNのベースモデルを圧縮するシステムである。図2は、DNNモデル圧縮方法を説明する図である。
【0017】
DNNモデル圧縮システム1は、例えば計算機においてプログラムを実行することで実現される。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
【0018】
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施例において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0019】
図1に示すように、DNNモデル圧縮システム1は、サブデータセット生成部10、感度解析部20、プルーニング部30、推論部40、格納部50を備えている。
【0020】
また、図1には、プルーニング前の初期モデル情報100が示されている。初期モデル情報100は、例えば図1の格納部50または別の格納部に格納されてもよいし、外部装置に格納されてもよい。初期モデル情報100は、データセット101、プルーニング前モデル103、プルーニング仕様情報105を含む。
【0021】
データセット101は、後述するサブデータの元となるデータであり、認識対象種(以下、クラスと呼ぶ場合がある)の物体が写る複数の画像データを含む。それぞれの画像データは、プルーニング仕様情報105に規定されるすべてのクラスの物体を含んでもよいし、一部の認識対象物の物体のみを含んでもよい。
【0022】
プルーニング前モデル103は、プルーニングの対象すなわち圧縮対象のモデルである。プルーニング前モデル103は、例えばDNNのベースモデルであるが、すでに圧縮されたモデルでも構わない。
【0023】
プルーニング仕様情報105は、プルーニングの仕様を規定する情報である。プルーニング仕様情報105は、例えば、認識対象物ごとのプルーニング優先度105a、ニューロンのプルーニング率105b等を含む。プルーニング率とは、プルーニング前モデル103のニューロン数に対し、削除されるニューロン数の割合を示す。あるいは、プルーニング率は、プルーニング前モデル103のニューロン数に対する、プルーニング後モデルのニューロン数の割合で規定されてもよい。
【0024】
プルーニング優先度とは、クラスごとの優先度を示す情報である。すなわち、プルーニング優先度が高いクラスは、プルーニング後モデルにおける画像認識において物体の認識精度が優先されるクラスである。プルーニング優先度が低いクラスは、プルーニング後モデルにおける画像認識において、プルーニング優先度が高いクラスより物体の認識精度が優先されないクラスである。
【0025】
例えば車両の自動運転に最適化したプルーニング後モデルを生成する場合、例えば車両や歩行者等、自動運転時の安全確保に必要なこれらのクラスについては、高い認識精度が要求される。したがって、これらのクラスに対しては、プルーニング優先度が高く設定される。一方、その他の家屋、田畑および山等の風景や地形等を構成するものについては、高い認識精度を必要としないので、プルーニング優先度が低く設定される。
【0026】
サブデータセット生成部10は、図1に示すデータセット101から認識対象種の物体のみを切り出したサブデータセットを生成する機能ブロックである。具体的に述べると、サブデータセット生成部10は、データセット101のそれぞれの画像データに対する画像認識を行い、画像データに含まれるクラスおよび物体を認識する。そして、サブデータセット生成部10は、認識した物体を元の画像データから抽出し、抽出した物体の画像データをサブデータとして生成する。そして、サブデータセット生成部10は、複数のサブデータからなるサブデータセット51を生成する。生成されたサブデータセット51は、例えば格納部50に格納される。また、生成されたサブデータセット51は、サブデータセット生成部10から感度解析部20へ送信される。
【0027】
また、サブデータセット生成部10は、例えば、プルーニング仕様情報105に基づき、所定のクラスのサブデータのみを含むサブデータセットを生成してもよい。また、これとは逆に、サブデータセット生成部10は、所定のクラスのサブデータを含まないサブデータセットを生成してもよい。
【0028】
それぞれのサブデータは、対応するクラスと関連付けられている。例えば、それぞれのサブデータに、対応するクラスを識別する情報が含まれてもよいし、それぞれのサブデータと、対応するクラスとを一覧にまとめたテーブルが生成されてもよい。このテーブルも、例えば格納部50に格納される。
【0029】
なお、図2では、データセット101から1つのサブデータセットが生成される場合が例示されているがこのような場合に限定されるものではない。サブデータセットは、例えば同じクラスのサブデータのみで構成されてもよい。この場合、クラスごとに対応するサブデータセットが生成されることとなり、1つのデータセット101から複数のサブデータセットが生成される。
【0030】
図2には、データセット101から生成された、車両の複数のサブデータおよび歩行者の複数のサブデータを含むサブデータセット51が示されている。なお、図2では、説明の便宜上2種類のクラスのみが示されているが、実際のサブデータセット51には、他のクラス(例えば道路等)のサブデータも含まれる。
【0031】
感度解析部20は、サブデータセット51を用いて、物体に対するDNN内部のニューロンの物体に対する感度情報を取得する機能ブロックである。具体的に述べると、感度解析部20は、初期モデル情報100のプルーニング前モデル103を読み出す。そして、感度解析部20は、サブデータセット51に含まれる複数のサブデータをプルーニング前モデル103へ入力し、それぞれのサブデータに対する画像認識を実行させる。このとき、感度解析部20は、プルーニング前モデル103の各ニューロンを監視し、各ニューロンの発火情報(例えば発火レベル)を取得する。
【0032】
感度解析部20は、画像の注視領域ごとに各ニューロンの発火情報を取得してもよい。すなわち、感度解析部20は、データセット101に含まれる画像データにおける注視領域ごとにそれぞれのニューロンの物体に対する感度情報を取得してもよい。注視領域は、例えば、画像データにおける物体の方向、撮像位置から物体までの距離等で規定される。
【0033】
感度解析部20は、例えば、画像データの同じ方向にある物体のサブデータに対する各ニューロンの発火情報を抽出してもよい。これにより、特定の方向における認識精度を向上させたプルーニング後モデルを生成することが可能となる。また、感度解析部20は、同じ距離の物体のサブデータに対する各ニューロンの発火情報を抽出してもよい。これにより、特定の距離における認識精度を向上させたプルーニング後モデルを生成することが可能となる。このように、注視領域ごとの発火情報を取得することで、特定の注視領域に最適化したプルーニング後モデルを生成することが可能となる。なお、プルーニング後モデルの生成については、後で詳しく説明する。
【0034】
そして、それぞれのサブデータに対する画像認識が完了すると、感度解析部20は、発火情報に基づきニューロンごとに最も発火したクラスを抽出し、それぞれのニューロンと抽出したクラスとを関連付けた感度情報53を生成する。例えば、感度解析部20は、それぞれのサブデータに対する発火レベルを比較し、発火レベルが最も高かったクラスを抽出することで、それぞれのニューロンと抽出したクラスとを関連付けてもよい。生成された感度情報53は、例えば格納部50に格納される。また、感度情報53は、感度解析部20からプルーニング部30へ送信される。
【0035】
なお、感度解析部20で用いられるサブデータセット51は、サブデータセット生成部10から送信されたものでもよいし、格納部50から読み出されたものでもよい。
【0036】
また、感度解析部20は、例えば、ニューロンごとに、発火レベルと予め設定された発火レベル閾値とを比較し、発火レベルが発火レベル閾値以上となるクラスを抽出してもよい。そして、感度解析部20は、ニューロンと発火レベル閾値を用いて抽出したクラスとを関連付けた感度情報を生成してもよい。この場合、1つのニューロンに複数のクラスが関連付けられてもよい。
【0037】
図2には、車両および歩行者のサブデータを用いた推論結果が示されている。図2において「1」と表示されたニューロンは、車両のサブデータに対して最も発火したニューロンを示している。図2において「2」と表示されたニューロンは、歩行者のサブデータに対して最も発火したニューロンを示している。
【0038】
図2において「3」と表示されたニューロンは、車両および歩行者のサブデータに対して共通に最も発火したニューロンを示している。あるいは、「3」と表示されたニューロンについては、車両および歩行者のサブデータに対して発火レベルが所定の発火レベル閾値以上であるとしてもよい。すなわち、このニューロンは、車両および歩行者の両方に反応したニューロンである。図2において「4」と表示されたニューロンは、車両および歩行者以外のクラスのサブデータに対して最も発火したニューロンを示している。
【0039】
プルーニング部30は、感度情報53を用いてニューロンを削減したプルーニング後モデルを生成する機能ブロックである。プルーニング部30は、プルーニング仕様情報105に基づき、プルーニング前モデル103から削減対象のニューロンを選択し、選択した削減対象のニューロンを削減する。このように、プルーニング部30は、プルーニング後モデル55を生成する。プルーニング部30は、生成したプルーニング後モデル55を格納部50へ格納する。
【0040】
削減対象のニューロンの選択方法について、具体的に述べる。プルーニング部30は、プルーニング仕様情報105に規定される各クラスのプルーニング優先度を参照する。そして、プルーニング部30は、プルーニング優先度の低いクラスと関連付けられたニューロンを削減対象のニューロンとして選択し、プルーニング優先度の高いクラスと関連付けられたニューロンをモデルに残すニューロン、すなわち削減しないニューロンとして選択する。このように、プルーニング部30は、それぞれのニューロンに対し、モデルに残すか、またはモデルから削減するかの選択を行う。その際、プルーニング部30は、例えば、所定のプルーニング優先度閾値以上のプルーニング優先度のクラスと関連付けられたニューロンを残し、プルーニング優先度閾値よりプルーニング優先度が低いクラスと関連付けられたニューロンを削減対象のニューロンとしてもよい。
【0041】
また、プルーニング部30は、プルーニング仕様情報105に規定されたプルーニング率105bに基づき、削減対象のニューロンを選択してもよい。この場合、プルーニング部30は、例えば、プルーニング優先度の最も低いクラスと関連付けられたニューロンから順に、規定されたプルーニング率105bに達するまで削減対象のニューロンを選択する。
【0042】
例えば、図2に示すように、自動運転においては、安全確保に必要な車両の認識精度が優先されるので、車両と関連付けられたニューロン(「1」)は残される。
【0043】
また、歩行者の認識精度も安全確保においては重要であるので、歩行者と関連付けられたニューロン(「2」、「3」)も残されてよい。一方、安全確保に直接影響を与えない風景や地形等に関わるその他のクラスと関連付けられたニューロン(「4」)は削除される。
【0044】
プルーニング部30は、中間層ごとに、削除せずに残したニューロンを用いた全結合層をそれぞれ生成する。このように、プルーニング部30は、プルーニング仕様情報105に含まれるクラスのプルーニング優先度を用いてプルーニング後モデル55を生成する。
【0045】
推論部40は、データセット101を用いて、プルーニング後モデル55における物体の認識精度を評価する機能ブロックである。図2に示すように、推論部40は、プルーニング後モデル55にデータセット101の各画像データを入力し、全結合層における各クラスの認識精度、および各物体の位置や面積等(以下では、ボックスとも呼ぶ)の認識精度を検出し評価する。全結合層における認識精度の検出は、出力層直前の中間層のみに対して行われてもよいし、複数の中間層ひいてはすべての中間層に対して行われてもよい。
【0046】
格納部50は、サブデータセット51、感度情報53、プルーニング後モデル55を格納する記憶装置である。
【0047】
<DNNモデル圧縮方法>
図3は、本発明の実施の形態1に係るDNNモデル圧縮方法の一例を示すフロー図である。図3では、各ステップS10~40とともに、各種情報やデータの流れが示されている。
【0048】
ステップS10において、サブデータセット生成部10は、サブデータセットを生成する。サブデータセット生成部10は、初期モデル情報100からデータセット101を読み出し、データセット101から物体のみを切り出したサブデータを生成する。そして、サブデータセット生成部10は、複数のサブデータからなるサブデータセット51を生成する。
【0049】
そして、ステップS15において、サブデータセット生成部10は、生成したサブデータセット51を感度解析部20へ送信するとともに、格納部50に格納する。
【0050】
ここで、サブデータセット生成部10は、1つのデータセット101から複数のサブデータセットを生成してもよい。例えば、同じクラスのサブデータのみで構成されるサブデータセットが生成されてもよいし、所定数の画像データから生成されるサブデータをまとめたサブデータセットが生成されてもよい。図3では、3つのサブデータセット51_1~51_3が生成された場合が例示されている。
【0051】
ステップS20において、感度解析部20は、サブデータセット生成部10からサブデータセット51(例えば51_1~51_3)を受信し、あるいは格納部50からサブデータセット51を読み出し、サブデータに対するプルーニング前モデル103の各ニューロンの発火情報を取得することで、ニューロンの感度を解析する。また、感度解析部20は、発火情報に基づきニューロンごとに最も発火したクラスを抽出し、それぞれのニューロンと抽出したクラスとを関連付けた感度情報53を生成する。
【0052】
そして、ステップS25において、感度解析部20は、生成した感度情報53をプルーニング部30へ送信するとともに、格納部50に格納する。
【0053】
ステップS30において、プルーニング部30は、感度解析部20から感度情報53を受信し、あるいは格納部50から感度情報53を読み出す。また、プルーニング部30は、初期モデル情報100からプルーニング仕様情報105に含まれるプルーニング優先度105aおよびプルーニング率105bを読み出す。プルーニング部30は、感度情報53、プルーニング優先度105a、およびプルーニング率105bに基づき、プルーニング前モデル103から削除するニューロンを選択し、選択したニューロンをプルーニング前モデル103から削除する。プルーニング部30は、中間層ごとに、残したニューロンを用いた全結合層を生成する。言い換えれば、プルーニング部30は、残したニューロンにより全結合層の再構築を行う。これにより、プルーニング部30は、プルーニング後モデル55を生成する。
【0054】
そして、ステップS35において、プルーニング部30は、生成したプルーニング後モデル55を推論部40へ送信するとともに、格納部50へ格納する。
【0055】
ステップS40において、推論部40は、プルーニング部30からプルーニング後モデル55を受信し、あるいは格納部50からプルーニング後モデル55を読み出す。また、推論部40は、初期モデル情報100からデータセット101を読み出す。推論部40は、プルーニング後モデル55にデータセット101の各画像データを入力し、プルーニング後モデル55に対し、画像データに含まれる物体の認識精度を評価する。
【0056】
その際、推論部40は、物体のクラス、および位置や面積等のボックスについての評価をそれぞれ行う。推論部40は、例えば、プルーニング後モデル55において認識した物体数に対する、クラスを正しく認識できた物体数の割合によりクラスの認識精度を評価する。クラスの認識精度が所定のクラス認識精度閾値より低い場合、推論部40は、クラスの認識精度は十分でないと判断する。
【0057】
一方、推論部40は、例えば、プルーニング後モデル55において認識した物体の位置と、物体の実際の位置(例えば対応する画像データにおける物体の位置)とのずれ量(位置ずれ量)により位置(ボックス)についての認識精度を評価する。具体的には、推論部40は、位置のずれ量に基づき物体ごとに位置ずれ量の可否を判断する。
【0058】
例えば、位置ずれ量が所定の位置ずれ量閾値以内の場合、推論部40は、検出した位置ずれ量は小さいので「可」であると判断する。一方、位置ずれ量が所定の位置ずれ量閾値より大きい場合、推論部40は、検出した位置ずれ量は大きいので「否」であると判断する。そして、推論部40は、プルーニング後モデル55において認識した物体数に対する、位置ずれ量が「否」であると判定した物体数の割合を位置の認識精度として評価する。位置の認識精度が所定の位置認識精度閾値(ボックス認識精度閾値)より低い場合、推論部40は、プルーニング後モデル55の位置(ボックス)の認識精度は十分でないと判断する。
【0059】
また、推論部40は、例えば、プルーニング後モデル55において認識した物体の面積と、物体の実際の面積(例えば対応する画像データにおける物体の面積)とのずれ量により位置(ボックス)についての認識精度を評価する。具体的には、推論部40は、面積のずれ量に基づき物体ごとに面積ずれ量の可否を判断する。
【0060】
例えば、面積ずれ量が所定の面積ずれ量閾値以内の場合、推論部40は、検出した面積ずれ量は小さいので「可」であると判断する。一方、面積ずれ量が所定の面積ずれ量閾値より大きい場合、推論部40は、検出した面積ずれ量は大きいので「否」であると判断する。そして、推論部40は、プルーニング後モデル55において認識した物体数に対する、面積ずれ量が「否」であると判定した物体数の割合を面積の認識精度として評価する。面積の認識精度が所定の面積認識精度閾値(ボックス認識精度閾値)より低い場合、推論部40は、プルーニング後モデル55の面積(ボックス)の認識精度は十分でないと判断する。
【0061】
なお、推論部40は、位置や面積についてのそれぞれの認識精度の評価結果を組み合わせることでボックスについての認識精度の評価を行ってもよい。
【0062】
認識精度の評価は、プルーニング優先度が高く設定されたクラスの物体について行えばよく、プルーニング優先度が低いクラスの物体について行わなくても構わない。プルーニング優先度が低いクラスと関連付けられたニューロンを削除しており、このクラスの物体の認識精度の低下は想定されているからである。
【0063】
したがって、プルーニング後モデル55に対する認識精度の評価対象のクラスの物体をプルーニング優先度に基づき設定してもよい。例えば、プルーニング優先度が、予め設定された評価対象プルーニング優先度以上に設定されたクラスの物体は認識精度の評価対象となる。一方、プルーニング優先度が、評価対象プルーニング優先度より低く設定されたクラスの物体は認識精度の評価対象とはならない。
【0064】
なお、クラスおよびボックスに対する認識精度の評価方法はこれらに限定されるものではない。なお、クラスまたはボックスの認識精度の評価結果が十分でないと判断された場合、作業者により、例えばプルーニング率105bの変更、データセットやサブデータセットの変更等が行われる。
【0065】
<本実施の形態による主な効果>
本実施の形態によれば、プルーニング部30は、プルーニング仕様情報105に含まれるプルーニング優先度105aに基づき削減対象のニューロンを選択する。この構成によれば、プルーニング優先度の高いクラスと関連付けられたニューロンを残しつつ、ニューロンを削減することができるので、装置の要求仕様に応じたモデル圧縮を行うことが可能となる。
【0066】
図4は、本発明の実施の形態1による効果を説明する図である。図4の横軸は、プルーニング後モデルにおける演算量を示す。横軸は、プルーニング前モデルにおける演算量に対する割合を示している。すなわち、横軸の100%は、プルーニング前モデルで構成されたDNNにおける演算量を示している。図4の縦軸は、認識精度を示している。図4において、従来手法における認識精度が破線で示され、本実施の形態(図4では本発明と表記)における認識精度が実線で示されている。
【0067】
図4に示すように、プルーニングにより演算量を減少させつつ、従来手法より認識精度を高く維持できている。このように、本実施の形態によれば、従来手法より認識精度を向上させつつ、装置の要求仕様に応じたモデル圧縮を行うことが可能である。
【0068】
また、本実施の形態によれば、プルーニング部30は、プルーニング率に基づき削減対象のニューロンを選択する。この構成によれば、プルーニング後モデルによる画像認識においてプロセッサに掛かる負荷を考慮したプルーニングを行うことが可能となる。
【0069】
また、本実施の形態によれば、推論部40は、プルーニング後モデル55の全結合層における物体の認識精度を評価する。この構成によれば、プルーニング後モデル55の評価を行うことができる。また、評価結果は、プルーニング後モデル55を再度生成するかどうかの判断に用いられる。
【0070】
また、本実施の形態によれば、推論部40は、物体のクラスの認識精度を評価する。また、推論部40は、物体の位置および面積の認識精度を評価する。この構成によれば、必要な項目に応じてプルーニング後モデル55をそれぞれ評価することが可能となる。
【0071】
また、本実施の形態によれば、推論部40は、プルーニング後モデル55の複数の全結合層に対し、物体の認識精度を評価する。この構成によれば、プルーニング後モデル55に対するより正確な評価を行うことが可能となる。また、全結合層ごとの評価結果を比較し、認識精度が低くなった層を抽出することが可能となる。
【0072】
また、本実施の形態によれば、感度解析部20は、注視領域ごとにニューロンの物体に対する感度情報を取得する。注視領域は、画像データにおける物体の方向、または撮像位置から物体までの距離である。この構成によれば、特定の方向における認識精度を向上させたプルーニング後モデルを生成することが可能となる。また、特定の距離における認識精度を向上させたプルーニング後モデルを生成することが可能となる。このように、注視領域ごとの発火情報を取得することで、特定の注視領域に最適化したプルーニング後モデルを生成することが可能となる。
【0073】
また、本実施の形態によれば、推論部40は、プルーニング優先度が高いクラスの物体の認識精度を評価する。この構成によれば、認識精度の低下が想定されるプルーニング優先度が低いクラスの物体についての評価結果を考慮しなくてよいので、装置の要求仕様に応じた適切な評価を行うことが可能となる。
【0074】
(実施の形態2)
次に、実施の形態2について説明する。本実施の形態では、プルーニング部モデル55に対する評価結果に応じてプルーニング仕様情報105を自動で変更する場合について説明する。なお、以下では、前述の実施の形態と重複する箇所については、説明を適宜省略する。
【0075】
図5は、本発明の実施の形態2に係るDNNモデル圧縮方法の一例を示すフロー図である。図5は、図3のフローに、プルーニング後モデルの評価結果に応じたステップが追加されたものとなっている。
【0076】
ステップS40において、プルーニング後モデル55に対する物体の認識精度を評価すると、ステップS50が実行される。ステップS50において、推論部40は、図3のステップS40にて行ったプルーニング後モデル55に対する評価結果の可否について判定する。ステップS40における評価結果が肯定的な結果である場合(YES)、フローが終了する。すなわち、プルーニング後モデル55における物体の認識精度が所定の認識精度閾値以上である場合、推論部40は、プルーニング後モデル55が十分な認識精度を備えていると判断する。この場合、プルーニング仕様情報の変更は行われない。
【0077】
一方、ステップS40における評価結果が否定的な結果である場合(NO)、ステップS60が実行される。すなわち、プルーニング後モデル55における物体の認識精度が所定の認識精度閾値より低い場合、推論部40は、プルーニング後モデル55が十分な認識精度を備えていないと判断する。例えば、推論部40は、クラスおよびボックスのいずれかについて認識精度が認識精度閾値より低い場合、プルーニング後モデル55が十分な認識精度を備えていないと判断する。あるいは、推論部40は、クラスおよびボックスの両方について認識精度が認識精度閾値より低い場合のみ、プルーニング後モデル55が十分な認識精度を備えていないと判断してもよい。
【0078】
ステップS60において、推論部40は、プルーニング仕様情報(例えばプルーニング率)を変更する。推論部40は、例えば現在のプルーニング率から所定の値または所定の割合だけ変更した値を新たなプルーニング率として算出する。そして、推論部40は、算出した新たなプルーニング率を出力し、現在のプルーニング率を新たなプルーニング率に変更させる。
【0079】
プルーニング仕様情報が変更されると、ステップS30が実行され、プルーニング部30は、変更後のプルーニング仕様情報を用いて新たなプルーニング後モデルを生成する。新たなプルーニング後モデルに対する認識精度の評価結果が否定的な場合、変更後のプルーニング仕様情報の変更が繰り返し行われる。なお、プルーニング仕様情報の変更回数が所定の回数となった場合には、推論部40は、プルーニング仕様情報の変更(ステップS60)を停止してもよい。
【0080】
なお、プルーニング仕様情報の変更は、推論部40以外の機能ブロックで行われてもよい。例えば、図1に示す各部とは別に、プルーニング仕様情報の変更を行う機能ブロックが設けられてもよい。
【0081】
本実施の形態によれば、推論部40は、プルーニング後モデルにおける物体の認識精度が所定の認識精度閾値より低い場合、プルーニング仕様情報(例えばプルーニング率)を変更する。この構成によれば、プルーニング後モデルに対する評価結果に応じて、プルーニング仕様情報を自動で変更することが可能となる。
【0082】
また、プルーニング部30は、変更後のプルーニング仕様情報等を用いて新たなプルーニング後モデルを生成する。この構成によれば、プルーニング後モデルに対する評価結果に応じて、新たなプルーニング後モデルを自動で生成することが可能となる。
【0083】
なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。なお、図面に記載した各部材や相対的なサイズは、本発明を分かりやすく説明するため簡素化・理想化しており、実装上はより複雑な形状となる場合がある。
【符号の説明】
【0084】
1…DNNモデル圧縮システム、10…サブデータセット生成部、20…感度解析部、30…プルーニング部、40…推論部、50…格納部、51…サブデータセット、53…感度情報、55…プルーニング後モデル、100…初期モデル情報、101…データセット、103…プルーニング前モデル、105…プルーニング仕様情報、105a…プルーニング優先度、105b…プルーニング率
図1
図2
図3
図4
図5