(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6856904
(24)【登録日】2021年3月23日
(45)【発行日】2021年4月14日
(54)【発明の名称】物体のスケールに応じてモード転換が可能なCNN基盤の監視用物体検出器の学習方法及び学習装置、そしてこれを利用したテスト方法及びテスト装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20210405BHJP
【FI】
G06T7/00 350C
【請求項の数】28
【全頁数】23
(21)【出願番号】特願2019-239316(P2019-239316)
(22)【出願日】2019年12月27日
(65)【公開番号】特開2020-119520(P2020-119520A)
(43)【公開日】2020年8月6日
【審査請求日】2019年12月27日
(31)【優先権主張番号】16/258,248
(32)【優先日】2019年1月25日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517038176
【氏名又は名称】株式会社ストラドビジョン
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】キム、ケイ − ヒョン
(72)【発明者】
【氏名】キム、ヨンジュン
(72)【発明者】
【氏名】キム、インスー
(72)【発明者】
【氏名】キム、ハク − キョン
(72)【発明者】
【氏名】ナム、ウヒョン
(72)【発明者】
【氏名】ブー、ソッフン
(72)【発明者】
【氏名】ソン、ミュンチュル
(72)【発明者】
【氏名】ヨー、ドンフン
(72)【発明者】
【氏名】リュー、ウジュ
(72)【発明者】
【氏名】チャン、テウン
(72)【発明者】
【氏名】ジョン、キュンチョン
(72)【発明者】
【氏名】チェ、ホンモ
(72)【発明者】
【氏名】チョウ、ホジン
【審査官】
合田 幸裕
(56)【参考文献】
【文献】
特開2020−087355(JP,A)
【文献】
米国特許出願公開第2018/0068198(US,A1)
【文献】
国際公開第2017/079521(WO,A1)
【文献】
米国特許第09953437(US,B1)
【文献】
米国特許第10007865(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
CNN(Convolutional Neural Network)基盤の物体検出器を学習する方法において、
(a)少なくとも一つの物体含むトレーニングイメージが入力されると、学習装置が、少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、前記トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにする段階;
(b)前記学習装置が、(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記特徴マップ上で前記k個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記第2特徴ベクトルをそれぞれ利用して、前記k個のROIそれぞれに対応するそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報とを出力するようにする段階;及び
(c)前記学習装置が、第1ロスレイヤ(Loss Layer)をもって、それぞれの前記クラス情報と、それぞれの前記リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個のROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションを通じて、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習するようにする段階;
を含むことを特徴とする学習方法。
【請求項2】
前記k個のROIは、前記RPNによって予め設定されたROI候補の中から選択されたものであり、
前記(a)段階の後に、
前記学習装置は、第2ロスレイヤをもって、前記ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする請求項1に記載の学習方法。
【請求項3】
前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、
前記(b)段階で、
前記学習装置は、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにk個の前記第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにして第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記第3特徴ベクトルを利用して、前記k個のROIに対応するそれぞれの前記クラス情報と、それぞれの前記リグレッション情報とを出力するようにすることを特徴とする請求項1に記載の学習方法。
【請求項4】
前記(c)段階で、
前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して、前記第1FCレイヤそれぞれを学習するようにすることを特徴とする請求項1に記載の学習方法。
【請求項5】
前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする請求項4に記載の学習方法。
【請求項6】
前記学習装置は、それぞれの前記第1FCレイヤから出力される該当スケールごとに前記第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする請求項1に記載の学習方法。
【請求項7】
前記学習装置は、それぞれの前記第1FCレイヤから出力される前記第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする請求項1に記載の学習方法。
【請求項8】
CNN(Convolutional Neural Network)基盤の物体検出器をテストする方法において、
(a)学習装置が、(1)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの学習用特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記学習用特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにし、(2)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記学習用特徴マップ上で前記k個の学習用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個の学習用ROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記学習用第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ利用して、前記k個の学習用ROIそれぞれに対応するそれぞれの学習用クラス(Class)情報と、それぞれの学習用リグレッション(Regression)情報とを出力するようにし、(3)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記学習用クラス情報と、それぞれの前記学習用リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個の学習用ROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習した状態で、テスト装置が、(i)前記コンボリューションレイヤをもって、テストイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つのテスト用特徴マップを出力するようにし、(ii)前記RPNにをもって前記テスト用特徴マップを用いて前記テストイメージ内のm個のテスト用ROIを出力させる段階;及び
(b)前記テスト装置が、(i)互いに異なるプーリングスケールを有する前記プーリングレイヤそれぞれをもって、該当スケールごとに前記テスト用特徴マップ上で前記m個のテスト用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記m個のテスト用ROIそれぞれに対応するm個のテスト用第1特徴ベクトルそれぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの前記第1FCレイヤをもって、該当スケールごとにm個の前記テスト用第1特徴ベクトルをそれぞれ利用して、該当スケールごとにm個のテスト用第2特徴ベクトルをそれぞれ出力するようにし、(iii)前記第2FCレイヤをもって、該当スケールごとにm個の前記テスト用第2特徴ベクトルをそれぞれ利用して前記m個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス情報と、それぞれのテスト用リグレッション情報とを出力するようにする段階;
を含むことを特徴とするテスト方法。
【請求項9】
前記k個の学習用ROIは、前記RPNにより予め設定された学習用ROI候補の中から選択されたものであり、
前記(1)プロセスの後、
前記学習装置は、第2ロスレイヤをもって、前記学習用ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする請求項8に記載のテスト方法。
【請求項10】
前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、
前記(b)段階で、
前記テスト装置は、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにm個の前記テスト用第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにしてテスト用第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記テスト用第3特徴ベクトルを利用して前記m個のテスト用ROIに対応するそれぞれの前記テスト用クラス情報と、それぞれの前記テスト用リグレッション情報とを出力するようにすることを特徴とする請求項8に記載のテスト方法。
【請求項11】
前記(3)プロセスで、
前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記学習用第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して前記第1FCレイヤそれぞれを学習するようにすることを特徴とする請求項8に記載のテスト方法。
【請求項12】
前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする請求項11に記載のテスト方法。
【請求項13】
前記テスト装置は、それぞれの前記第1FCレイヤから出力される該当スケールごとに前記テスト用第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする請求項8に記載のテスト方法。
【請求項14】
前記テスト装置は、それぞれの前記第1FCレイヤから出力される前記テスト用第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする請求項8に記載のテスト方法。
【請求項15】
CNN(Convolutional Neural Network)基盤の物体検出器を学習する学習装置において、
インストラクションを格納する少なくとも一つのメモリ;及び
(I)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、少なくとも一つの物体を含むトレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにするプロセス、(II)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記特徴マップ上で前記k個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記第2特徴ベクトルをそれぞれ利用して、前記k個のROIそれぞれに対応されるそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報を出力するようにするプロセス、及び(III)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記クラス情報と、それぞれの前記リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個のROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習するようにするプロセスを遂行するための、前記インストラクションを実行するように構成された少なくとも一つのプロセッサ;
を含むことを特徴とする学習装置。
【請求項16】
前記k個のROIは、前記RPNによって予め設定されたROI候補の中から選択されたものであり、
前記(I)プロセスの後、
前記プロセッサは、第2ロスレイヤをもって、前記ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする請求項15に記載の学習装置。
【請求項17】
前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、
前記(II)プロセスで、
前記プロセッサは、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにk個の前記第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにして第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記第3特徴ベクトルを利用して前記k個のROIに対応するそれぞれの前記クラス情報と、それぞれの前記のリグレッション情報とを出力するようにすることを特徴とする請求項15に記載の学習装置。
【請求項18】
前記(III)プロセスで、
前記プロセッサは、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記第2特徴ベクトルそれぞれに対応するそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して、前記第1FCレイヤそれぞれを学習するようにすることを特徴とする請求項15に記載の学習装置。
【請求項19】
前記プロセッサは、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする請求項18に記載の学習装置。
【請求項20】
前記プロセッサは、それぞれの前記第1FCレイヤから出力される該当スケールごとにそれぞれの前記第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする請求項15に記載の学習装置。
【請求項21】
前記プロセッサは、それぞれの前記第1FCレイヤから出力される前記第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする請求項15に記載の学習装置。
【請求項22】
CNN(Convolutional Neural Network)基盤の物体検出器をテストするテスト装置において、
インストラクションを格納する少なくとも一つのメモリ;及び
学習装置が、(1)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの学習用特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記学習用特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにし、(2)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記学習用特徴マップ上で前記k個の学習用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個の学習用ROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記学習用第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ利用して、前記k個の学習用ROIそれぞれに対応するそれぞれの学習用クラス(Class)情報と、それぞれの学習用リグレッション(Regression)情報とを出力するようにし、(3)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記学習用クラス情報と、それぞれの前記学習用リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個の学習用ROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習した状態で、(I)(i)前記コンボリューションレイヤをもって、テストイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つのテスト用特徴マップを出力するようにし、(ii)前記RPNをもって、前記テスト用特徴マップを用いて前記テストイメージ内のm個のテスト用ROIを出力するようにするプロセス、及び(II)(i)互いに異なるプーリングスケール(Pooling Scale)を有する前記プーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記テスト用特徴マップ上で前記m個のテスト用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記m個のテスト用ROIそれぞれに対応するm個のテスト用第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの前記第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにm個の前記テスト用第1特徴ベクトルをそれぞれ利用して該当スケールごとにm個のテスト用第2特徴ベクトルをそれぞれ出力するようにし、(iii)前記第2FCレイヤをもって、該当スケールごとのm個の前記テスト用第2特徴ベクトルをそれぞれ利用して、前記m個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス(Class)情報と、それぞれのテスト用リグレッション(Regression)情報とを出力するようにするプロセスを遂行するための、前記インストラクションを実行するように構成された少なくとも一つのプロセッサ;
を含むことを特徴とするテスト装置。
【請求項23】
前記k個の学習用ROIは、前記RPNにより予め設定された学習用ROI候補の中から選択されたものであり、
前記(1)プロセスの後、
前記学習装置は、第2ロスレイヤをもって、前記学習用ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする請求項22に記載のテスト装置。
【請求項24】
前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、
前記(II)プロセスで、
前記プロセッサは、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにm個の前記テスト用第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにしてテスト用第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記テスト用第3特徴ベクトルを利用して前記m個のテスト用ROIに対応するそれぞれの前記テスト用クラス情報と、それぞれの前記テスト用リグレッション情報とを出力するようにすることを特徴とする請求項22に記載のテスト装置。
【請求項25】
前記(3)プロセスで、
前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記学習用第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記リグレッションロスの少なくとも一部とを利用して前記第1FCレイヤそれぞれを学習するようにすることを特徴とする請求項22に記載のテスト装置。
【請求項26】
前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする請求項25に記載のテスト装置。
【請求項27】
前記プロセッサは、それぞれの前記第1FCレイヤから出力される該当スケールごとにそれぞれの前記テスト用第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする請求項22に記載のテスト装置。
【請求項28】
前記プロセッサは、それぞれの前記第1FCレイヤから出力される前記テスト用第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする請求項22に記載のテスト装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体のスケールに応じてモード転換が可能なCNN(Convolutional Neural Network)基盤の監視用物体検出器の学習方法及び学習装置、そしてこれを利用した利用したテスト方法及びテスト装置に関し、より詳細には、前記CNN(Convolutional Neural Network)基盤の前記物体検出器を学習する方法において、(a)少なくとも一つの物体含むトレーニングイメージが入力されると、学習装置が、少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、前記トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにする段階;(b)前記学習装置が、(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記特徴マップ上で前記k個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記第2特徴ベクトルをそれぞれ利用して、前記k個のROIそれぞれに対応するそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報とを出力するようにする段階;及び(c)前記学習装置が、第1ロスレイヤ(Loss Layer)をもって、それぞれの前記クラス情報と、それぞれの前記リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個のROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習する段階;を含む学習方法及び学習装置、そしてこれを利用したテスト方法及びテスト装置に関する。
【背景技術】
【0002】
機械学習(Machine Learning)において、コンボリューションニューラルネットワーク(Convolutional Neural Network;CNNまたはConvNet)は、視覚的イメージ分析に成功して適用されてきたディープフィードフォワード人工ニューラルネットワーク(Deep Feed−Forward Artificial Neural Network)のクラス(Class)の一つである。
【0003】
図1は、従来の技術に係るCNNを利用した学習プロセスを示した図面である。
【0004】
図1は、学習装置が予測したバウンディングボックス(Bounding Box)を、これに対応するGT(Ground Truth)のバウンディングボックスと比較するプロセスを示した図面である。
図1を参照すれば、従来の学習装置がバウンディンボックスを予測し、この予測されたバウンディンボックスをGTのバウンディンボックスと比較して、少なくとも一つのロス値を取得する。ここで、ロス値は、予測されたバウンディングボックスと、GTのバウンディングボックスとの間の差異値を意味する。例えば、
図1でロス値は、dx
c,dy
c,dw,dhを含み得る。
【0005】
まず、
図1の学習装置は、RGBイメージを取得して、これをコンボリューションレイヤに入力される。RGBイメージがコンボリューションレイヤを通過した後、RGBイメージの幅と高さは縮小されるが、チャネル数は増加するように特徴マップが生成される。
図1の学習装置は、特徴マップをRPN(Region Proposal Network)に入力してプロポーザルボックスを生成し、特徴マップ上のプロポーザルボックスに対応される領域に含まれたピクセルデータに対し、マックスプーリング(Max Pooling)またはアベレージプーリング(Average Pooling)演算のいずれかを適用してプーリング済み特徴マップを生成し得る。ここで、マックスプーリングは、それぞれの細部領域ごとにこれに対応するプロポーザルボックス内の細部領域それぞれから最も大きな値を細部領域ごとに代表値としてそれぞれ選定する方法であり、アベレージプーリングは、それぞれの詳細領域ごとにこれに対応するプロポーザルボックス内の細部領域それぞれに対するそれぞれの平均値をそれぞれの代表値として算出する方法である。
【0006】
次に、
図1の学習装置は、プーリング済み特徴マップをFCレイヤ(Fully Connected Layer)に入力する。その際、学習装置は、FCレイヤをもって、分類演算によって前記RGBイメージ上の物体の種類が何かを確認するようにし得る。プーリング済み特徴マップは、「特徴ベクトル(Feature Vector)」と呼ぶこともできる。
【0007】
また、入力されたRGBイメージ上の少なくとも一つのバウンディングボックスは、FCレイヤ及びロス値によって予測され、前記ロスは、予測されたバウンディングボックスをこれに対応するGT(Ground Truth)のバウンディングボックスと比較して取得される。ここで、GTのバウンディングボックスは、イメージ上の物体を正確に含むバウンディングボックスとして、一般的には人が直接生成できる。
【0008】
最後に、
図1の学習装置は、バックプロパゲーションを遂行しながらロス値を減少させるために、FCレイヤの少なくとも一つのパラメータと、コンボリューションレイヤとの中の少なくとも一つのパラメータを調整し得る。CNNのパラメータが調整された後、テストイメージ上の新しい物体に対応する新しいバウンディングボックスが予測され得る。
【0009】
ただし、コンボリューションレイヤから出力される特徴マップ上でROIに対応する領域が単一スケール(Single Scale)にプーリングされると、単一スケールにプーリングされた特徴マップのみを利用しては、情報を効率的に表現することが限られる。従って、物体をより正確に検出するために多くの特徴(Feature)を利用しなければならず、これによって物体検出のための演算数が多くなるだけでなく、性能が低下するという短所があった。
【0010】
従って、本発明は、互いに異なるスケールを有するプーリングレイヤそれぞれをもって、プーリング演算を遂行するようにして演算数を減らし得る学習方法を提案したい。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、前述した問題点を解決することを目的とする。
また、本発明は、互いに異なるスケールを有するプーリングレイヤそれぞれをもって、それぞれのプーリング演算を遂行するようにして、演算量を減らす学習方法及び学習装置、これを利用したテスト方法及びテスト装置を提供することを他の目的とする。
【課題を解決するための手段】
【0012】
前記のような本発明の目的を達成し、後述する本発明の特徴的な効果を実現するための、本発明の特徴的な構成は下記の通りである。
【0013】
本発明の一態様によれば、CNN(Convolutional Neural Network)基盤の物体検出器を学習する方法において、(a)少なくとも一つの物体含むトレーニングイメージが入力されると、学習装置が、少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、前記トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにする段階;(b)前記学習装置が、(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記特徴マップ上で前記k個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(FullyConnected Layer)それぞれをもって、該当スケールごとにk個の前記第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記第2特徴ベクトルをそれぞれ利用して、前記k個のROIそれぞれに対応するそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報とを出力するようにする段階;及び(c)前記学習装置が、第1ロスレイヤ(Loss Layer)をもって、それぞれの前記クラス情報と、それぞれの前記リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個のROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションを通じて、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習するようにする段階;を含むことを特徴とする。
【0014】
一例として、前記k個のROIは、前記RPNによって予め設定されたROI候補の中から選択されたものであり、前記(a)段階の後に、前記学習装置は、第2ロスレイヤをもって、前記ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする。
【0015】
一例として、前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、前記(b)段階で、前記学習装置は、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにk個の前記第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにして第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記第3特徴ベクトルを利用して、前記k個のROIに対応するそれぞれの前記クラス情報と、それぞれの前記リグレッション情報とを出力するようにすることを特徴とする。
【0016】
一例として、前記(c)段階で、前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して、前記第1FCレイヤそれぞれを学習するようにすることを特徴とする。
【0017】
一例として、前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする。
【0018】
一例として、前記学習装置は、それぞれの前記第1FCレイヤから出力される該当スケールごとに前記第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする。
【0019】
一例として、前記学習装置は、それぞれの前記第1FCレイヤから出力される前記第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする。
【0020】
本発明の他の態様によれば、CNN(Convolutional Neural Network)基盤の物体検出器をテストする方法において、(a)学習装置が、(1)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの学習用特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記学習用特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにし、(2)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記学習用特徴マップ上で前記k個の学習用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個の学習用ROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記学習用第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ利用して、前記k個の学習用ROIそれぞれに対応するそれぞれの学習用クラス(Class)情報と、それぞれの学習用リグレッション(Regression)情報とを出力するようにし、(3)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記学習用クラス情報と、それぞれの前記学習用リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個の学習用ROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習した状態で、テスト装置が、(i)前記コンボリューションレイヤをもって、テストイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つのテスト用特徴マップを出力するようにし、(ii)前記RPNにをもって前記テスト用特徴マップを用いて前記テストイメージ内のm個のテスト用ROIを出力させる段階;及び(b)前記テスト装置が、(i)互いに異なるプーリングスケールを有する前記プーリングレイヤそれぞれをもって、該当スケールごとに前記テスト用特徴マップ上で前記m個のテスト用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記m個のテスト用ROIそれぞれに対応するm個のテスト用第1特徴ベクトルそれぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの前記第1FCレイヤをもって、該当スケールごとにm個の前記テスト用第1特徴ベクトルをそれぞれ利用して、該当スケールごとにm個のテスト用第2特徴ベクトルをそれぞれ出力するようにし、(iii)前記第2FCレイヤをもって、該当スケールごとにm個の前記テスト用第2特徴ベクトルをそれぞれ利用して前記m個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス情報と、それぞれのテスト用リグレッション情報とを出力するようにする段階;を含むことを特徴とする。
【0021】
一例として、前記k個の学習用ROIは、前記RPNにより予め設定された学習用ROI候補の中から選択されたものであり、前記(1)プロセスの後、前記学習装置は、第2ロスレイヤをもって、前記学習用ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする。
【0022】
一例として、前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、前記(b)段階で、前記テスト装置は、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにm個の前記テスト用第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにしてテスト用第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記テスト用第3特徴ベクトルを利用して前記m個のテスト用ROIに対応するそれぞれの前記テスト用クラス情報と、それぞれの前記テスト用リグレッション情報とを出力するようにすることを特徴とする。
【0023】
一例として、前記(3)プロセスで、前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記学習用第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して前記第1FCレイヤそれぞれを学習するようにすることを特徴とする。
【0024】
一例として、前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする。
【0025】
一例として、前記テスト装置は、それぞれの前記第1FCレイヤから出力される該当スケールごとに前記テスト用第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする。
【0026】
一例として、前記テスト装置は、それぞれの前記第1FCレイヤから出力される前記テスト用第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする。
【0027】
本発明のまた他の態様によれば、CNN(Convolutional Neural Network)基盤の物体検出器を学習する学習装置において、インストラクションを格納する少なくとも一つのメモリ;及び(I)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、少なくとも一つの物体を含むトレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにするプロセス、(II)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記特徴マップ上で前記k個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記第2特徴ベクトルをそれぞれ利用して、前記k個のROIそれぞれに対応されるそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報を出力するようにするプロセス及び、(III)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記クラス情報と、それぞれの前記リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個のROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習するようにするプロセスを遂行するための、前記インストラクションを実行するように構成された少なくとも一つのプロセッサ;を含むことを特徴とする。
【0028】
一例として、前記k個のROIは、前記RPNによって予め設定されたROI候補の中から選択されたものであり、前記(I)プロセスの後、前記プロセッサは、第2ロスレイヤをもって、前記ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする。
【0029】
一例として、前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、前記(II)プロセスで、前記プロセッサは、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにk個の前記第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにして第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記第3特徴ベクトルを利用して前記k個のROIに対応するそれぞれの前記クラス情報と、それぞれの前記のリグレッション情報とを出力するようにすることを特徴とする。
【0030】
一例として、前記(III)プロセスで、前記プロセッサは、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記第2特徴ベクトルそれぞれに対応するそれぞれの前記クラスロスと、それぞれの前記のリグレッションロスの少なくとも一部とを利用して、前記第1FCレイヤそれぞれを学習するようにすることを特徴とする。
【0031】
一例として、前記プロセッサは、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする。
【0032】
一例として、前記プロセッサは、それぞれの前記第1FCレイヤから出力される該当スケールごとにそれぞれの前記第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする。
【0033】
一例として、前記プロセッサは、それぞれの前記第1FCレイヤから出力される前記第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする。
【0034】
本発明のまた他の態様によれば、CNN(Convolutional Neural Network)基盤の物体検出器をテストするテスト装置において、インストラクションを格納する少なくとも一つのメモリ;及び学習装置が、(1)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの学習用特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、前記学習用特徴マップを利用して前記トレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにし、(2)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記学習用特徴マップ上で前記k個の学習用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記k個の学習用ROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の前記学習用第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の前記学習用第2特徴ベクトルをそれぞれ利用して、前記k個の学習用ROIそれぞれに対応するそれぞれの学習用クラス(Class)情報と、それぞれの学習用リグレッション(Regression)情報とを出力するようにし、(3)第1ロスレイヤ(Loss Layer)をもって、それぞれの前記学習用クラス情報と、それぞれの前記学習用リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照して前記k個の学習用ROIに対応されるクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、前記クラスロス及び前記リグレッションロスを利用したバックプロパゲーションによって、前記第2FCレイヤと、前記第1FCレイヤと、前記コンボリューションレイヤとを学習した状態で、(I)(i)前記コンボリューションレイヤをもって、テストイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つのテスト用特徴マップを出力するようにし、(ii)前記RPNをもって、前記テスト用特徴マップを用いて前記テストイメージ内のm個のテスト用ROIを出力するようにするプロセス、及び(II)(i)互いに異なるプーリングスケール(Pooling Scale)を有する前記プーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに前記テスト用特徴マップ上で前記m個のテスト用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとに前記m個のテスト用ROIそれぞれに対応するm個のテスト用第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれの前記プーリングレイヤに対応するそれぞれの前記第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにm個の前記テスト用第1特徴ベクトルをそれぞれ利用して該当スケールごとにm個のテスト用第2特徴ベクトルをそれぞれ出力するようにし、(iii)前記第2FCレイヤをもって、該当スケールごとのm個の前記テスト用第2特徴ベクトルをそれぞれ利用して、前記m個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス(Class)情報と、それぞれのテスト用リグレッション(Regression)情報とを出力するようにするプロセスを遂行するための、前記インストラクションを実行するように構成された少なくとも一つのプロセッサ;を含むことを特徴とする。
【0035】
一例として、前記k個の学習用ROIは、前記RPNにより予め設定された学習用ROI候補の中から選択されたものであり、前記(1)プロセスの後、前記学習装置は、第2ロスレイヤをもって、前記学習用ROI候補及びそれに対応する第2GTを参照してROIロスを生成するようにすることで、前記ROIロスを利用したバックプロパゲーションによって前記RPNを学習するようにすることを特徴とする。
【0036】
一例として、前記第2FCレイヤは、第2_1FCレイヤ及び第2_2FCレイヤを含み、前記(II)プロセスで、前記プロセッサは、(i)前記第2_1FCレイヤをもって、前記第1FCレイヤのそれぞれから出力される該当スケールごとにm個の前記テスト用第2特徴ベクトルそれぞれをコンカチネート(Concatenate)するようにしてテスト用第3特徴ベクトルを出力するようにし、(ii)前記第2_2FCレイヤをもって、前記テスト用第3特徴ベクトルを利用して前記m個のテスト用ROIに対応するそれぞれの前記テスト用クラス情報と、それぞれの前記テスト用リグレッション情報とを出力するようにすることを特徴とする。
【0037】
一例として、前記(3)プロセスで、前記学習装置は、前記第1FCレイヤそれぞれから出力された該当スケールごとにk個の前記学習用第2特徴ベクトルそれぞれに対応されるそれぞれの前記クラスロスと、それぞれの前記リグレッションロスの少なくとも一部とを利用して前記第1FCレイヤそれぞれを学習するようにすることを特徴とする。
【0038】
一例として、前記学習装置は、それぞれの前記クラスロス及びそれぞれの前記リグレッションロスに対してそれぞれの重み付け値を適用して、バックプロパゲーションによって前記第1FCレイヤそれぞれを学習し、それぞれの前記重み付け値は、それぞれの前記クラスロスと、それぞれの前記リグレッションロスとに対するそれぞれの前記第1FCレイヤの寄与度に対する情報を参考にして決定されることを特徴とする。
【0039】
一例として、前記プロセッサは、それぞれの前記第1FCレイヤから出力される該当スケールごとにそれぞれの前記テスト用第2特徴ベクトルのチャネル数が互いに同一になるようにすることを特徴とする。
【0040】
一例として、前記プロセッサは、それぞれの前記第1FCレイヤから出力される前記テスト用第2特徴ベクトルの総チャネル数が予め設定された数未満になるようにすることを特徴とする。
【発明の効果】
【0041】
本発明は、互いに異なるプーリングスケールを有するプーリングレイヤそれぞれをもって、特徴マップ上のROIに対応する領域を該当スケールごとにプーリングするようにすることで、多様なスケールに応じてプーリングされた特徴マップ上のより多くの特徴を利用し得る効果がある。
【0042】
本発明は、より少ない数のチャネルを利用して演算を遂行するので、コンピューティング演算性能を向上させ得る他の効果がある。
【0043】
本発明の実施例の説明に利用されるために添付された以下の各図面は、本発明の実施例のうちの一部に過ぎず、本発明が属する技術分野でおいて、通常の知識を有する者(以下「通常の技術者」)は、発明的作業が行われることなくこの図面に基づいて他の図面が得られ得る。
【図面の簡単な説明】
【0044】
【
図1】
図1は、従来の既存の技術に係る学習過程において、学習装置がバウンディンボックスを予測し、この予測されたバウンディンボックスをこれに対応するGTのバウンディンボックスと比較するプロセスを示した図面である。
【
図2】
図2は、本発明の一例に係るCNN基盤の物体検出器を学習する学習装置のブロック図である。
【
図3】
図3は、本発明の一例に係るCNN基盤の物体検出器を学習するプロセスを示した図面である。
【
図4】
図4は、本発明の一例に係るCNN基盤の物体検出器をテストするテスト装置のブロック図である。
【
図5】
図5は、本発明の一例に係るCNN基盤の物体検出器をテストするプロセスを示した図面である。
【発明を実施するための形態】
【0045】
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は当業者が本発明を実施することができるように充分詳細に説明される。本発明の多様な実施例は相互異なるが、相互排他的である必要はないことを理解されたい。例えば、ここに記載されている特定の形状、構造及び特性は一例と関連して、本発明の精神及び範囲を逸脱せず、かつ他の実施例で実装され得る。また、各々の開示された実施例内の個別構成要素の位置または配置は本発明の精神及び範囲を逸脱せずに変更され得ることを理解されたい。従って、後述する詳細な説明は限定的な意味で捉えようとするものではなく、本発明の範囲は、適切に説明されれば、その請求項が主張することと均等なすべての範囲と、併せて添付された請求項によってのみ限定される。図面で類似する参照符号はいくつかの側面にかけて同一か類似する機能を指称する。
【0046】
また、本発明の詳細な説明及び各請求項にわたって、「含む」という単語及びそれらの変形は、他の技術的各特徴、各付加物、構成要素又は段階を除外することを意図したものではない。通常の技術者にとって本発明の他の各目的、長所及び各特性が、一部は本説明書から、また一部は本発明の実施から明らかになるであろう。以下の例示及び図面は実例として提供され、本発明を限定することを意図したものではない。
【0047】
本発明で言及している各種イメージは、舗装または非舗装道路関連のイメージを含み得、この場合、道路環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではなく、本発明で言及している各種イメージは、道路と関係のないイメージ(例えば、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内と関連したイメージ)でもあり得、この場合、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではない。
【0048】
以下、本発明が属する技術分野で通常の知識を有する者が本発明を容易に実施することができるようにするために、本発明の好ましい実施例について添付の図面に基づいて詳細に説明する。
【0049】
図2は、本発明の一例に係る学習装置100のブロック図である。
【0050】
図2に示したように、本発明の一例に係る学習装置100は、通信部110とプロセッサ120とを含み得る。場合によっては、データベース130をさらに含み得る。また、学習装置は、次のプロセスを遂行するためのコンピュータ読込み可読なインストラクション(Instruction)を格納し得るメモリ115をさらに含み得る。一例によれば、プロセッサ、メモリ、媒体などは、統合プロセッサ(Integrated Processor)に統合され得る。
【0051】
この際、本発明の学習装置100は、デジタル機器として、プロセッサを搭載して多様な演算能力を備えたデジタル機器であればいくらでも本発明に係る学習装置100として採択され得る。
【0052】
通信部110は、少なくとも一つの物体を含むトレーニングイメージを取得し得る。この際、トレーニングイメージは、データベース130から取得され得る。
【0053】
プロセッサ120は、(a)少なくとも一つのコンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして少なくとも一つの特徴マップを出力するようにし、RPN(Region Proposal Network)をもって、特徴マップを利用してトレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにするプロセス;(b)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに特徴マップ上でk個のROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとにk個のROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれのプーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の第2特徴ベクトルをそれぞれ出力するようにし、(iii)少なくとも一つの第2FCレイヤをもって、該当スケールごとにk個の第2特徴ベクトルをそれぞれ利用して、k個のROIそれぞれに対応されるそれぞれのクラス(Class)情報と、それぞれのリグレッション(Regression)情報を出力するようにするプロセス;及び(c)第1ロスレイヤ(Loss Layer)をもって、それぞれのクラス情報と、それぞれのリグレッション情報と、これに対応する第1GT(Ground Truth)とを参照してk個のROIに対応されるクラスロス(Class Loss)及びリグレッションロス(Regression Loss)を生成するようにすることで、クラスロス及びリグレッションロスを利用したバックプロパゲーションによって、第2FCレイヤと、第1FCレイヤと、前記コンボリューションレイヤとを学習するようにするプロセス;を遂行し得る。これについては、後から詳しく説明する。
【0054】
ここで、データベース130は、学習装置100の通信部110によってアクセスし得、GT(例えば、物体が自動車であるか、歩行者であるかなどを示すクラス情報)及びバウンディンボックスの位置に対する情報を示すリグレッション情報などが記録され得る。
【0055】
以下に、このように構成された本発明の一例に係る学習装置100を用いて、互いに異なる他のスケールを有するプーリングレイヤそれぞれを利用してCNN基盤の物体検出器を学習する方法を、
図3を参照して説明する。
【0056】
まず、少なくとも一つの物体を含むトレーニングイメージが入力されると、学習装置100は、コンボリューションレイヤ10をもって、トレーニングイメージに対してコンボリューション演算を少なくとも一度適用するようにして、少なくとも一つの特徴マップを出力するようにする。
【0057】
そして、学習装置100はRPN20をもって、特徴マップを利用してトレーニングイメージ内のk個のROIを出力するようにする。ここでk個のROIは、予め設定されたROI候補の中から選ばれたものである。
【0058】
次に、学習装置100は、互いに異なるスケールを有するプーリングレイヤ30それぞれをもって、特徴マップ上でRPN20から出力されたk個のROIそれぞれに対応される領域それぞれを該当スケールごとにプーリングして、該当スケールごとにk個のROIそれぞれに対応するk個の第1特徴ベクトルそれぞれを出力するようにする。この際、
図3の例では、互いに異なるプーリングスケールを有する3つのプーリングレイヤ30それぞれが示されたが、本発明はこれらに限定されない。また、プーリングスケールが大きい第1特徴ベクトルは、プーリングスケールの小さい第1特徴ベクトルに比べてより多くの情報を有し得る。
【0059】
そして、それぞれのプーリングレイヤ30それぞれから、それぞれのスケールごとにk個のROIに対応するk個の第1特徴ベクトルそれぞれが出力されると、学習装置100は、それぞれのプーリングレイヤ30それぞれに対応する第1FCレイヤ40それぞれをもって、該当スケールごとにk個の第1特徴ベクトルそれぞれを利用してk個の該当スケールごとに第2特徴ベクトルそれぞれを出力するようにする。
図3の例では、第1FCレイヤ40の数が3つとなっているが、これはプーリングレイヤ30の数が3つであることに起因しているものであり、当発明はこれに限定されるものではない。
【0060】
また、第1FCレイヤ40それぞれから出力される該当スケールごとの第2特徴ベクトルそれぞれのチャネル数それぞれは、互いに同一であり得る。一例として、
図3に示された通り、第1FCレイヤ40それぞれから出力される第2特徴ベクトルのチャネル数は128であり得るが、これに限定されるものではない。
【0061】
また、第1FCレイヤ40から出力される第2特徴ベクトルの総チャネル数が、予め設定された数未満になるようにし得る。一例として、
図3に示された通り、第1FCレイヤ40それぞれから出力される第2特徴ベクトルのチャネル数は、384(128+128+128)であり得るが、これに限定されるものではない。この場合、一般的に4,096個のチャネルを有する特徴ベクトルを演算する従来の方法に比べて、本発明に係る演算を遂行するチャネル数は384個と少なくなるので、これによって学習装置100の演算能力を上昇させ得るようになる。
【0062】
その後、学習装置100は、k個の第2特徴ベクトルそれぞれを第2FCレイヤ50に入力することにより、第2FCレイヤ50をもって、k個の該当スケールごとの第2特徴ベクトルそれぞれを利用してk個のROIそれぞれに対応するそれぞれのクラス情報とそれぞれのリグレッション情報を出力するようにする。
【0063】
この際、第2FCレイヤ50は、第2_1FCレイヤ51及び第2_2FCレイヤ55を含み得る。第2_1FCレイヤ51は、第1FCレイヤ40それぞれから出力される第2特徴ベクトルそれぞれをコンカチネート(Concatenate)して第3特徴ベクトルを出力し得る。第2_2FCレイヤ55は、第3特徴ベクトルを利用してk個のROIに対応するそれぞれのクラス情報と、それぞれのリグレッション情報とを出力し得る。
【0064】
次に、学習装置100は、第1ロスレイヤ60をもって、それぞれのクラス情報と、それぞれのリグレッション情報と、これに対応する第1GTとを参照してk個のROIに対応するクラスロス及びリグレッションロスを生成するようにし、クラスロス及びリグレッションロスを利用したバックプロパゲーションによって、第2FCレイヤと、第1FCレイヤと、コンボリューションレイヤとを学習し得る。
【0065】
この際、学習装置100は、第1FCレイヤ40それぞれから出力されたk個の該当スケールごとの第2特徴ベクトルそれぞれに対応するそれぞれのクラスロスと、それぞれのリグレッションロスとを利用してそれぞれの第1FCレイヤ40を学習し得る。言い換えれば、学習装置100は、それぞれのクラスロス及びそれぞれのリグレッションロスに対して、それぞれの重み付け値を適用してバックプロパゲーションによって第1FCレイヤ40それぞれを学習し得り、それぞれの重み付け値は、それぞれのクラスロスと、それぞれのリグレッションロスとに対するそれぞれの第1FCレイヤ40の寄与度に対する情報を参考にして決定される。
【0066】
また、学習装置100は、第2ロスレイヤ21をもって、ROI候補及びこれに対応する第2GTを参照してROIのロスを取得するようにし、取得されたROIロスを利用したバックプロパゲーションによってRPNを学習し得る。このようなRPNの学習は、ROI候補群が出力されればいつでも可能である。また、ROIロスは、ROIクラスロスと、ROIリグレッションロスとを含み得る。
【0067】
図4は、本発明の一例に係るCNN基盤の物体検出器をテストするテスト装置400を概略的に示したブロック図である。
【0068】
図4に示したように、本発明の一例に係るテスト装置400は、通信部401と、プロセッサ402とを含み得る。図面では、テスト装置400と学習装置100を区別して表現したが、テスト装置400と学習装置100は同一な装置であり得る。また、学習装置は、次のプロセスを遂行するためのコンピュータ読込み可読なインストラクション(Instruction)を格納し得るメモリ403をさらに含み得る。一例によれば、プロセッサ、メモリ、媒体などは、統合プロセッサ(Integrated Processor)に統合され得る。
【0069】
参考までに、以下の説明において混乱を避けるために、学習プロセスに関連する用語には「学習用」という単語が追加され、テスト用プロセスに関連する用語には「テスト用」という単語が追加された。
【0070】
(1)学習装置が、(i)コンボリューションレイヤ(Convolutional Layer)をもって、トレーニングイメージに対してコンボリューション演算を適用して、学習用特徴マップを出力するようにし、(ii)RPN(Region Proposal Network)をもって、学習用特徴マップを利用してトレーニングイメージ内のk個のROI(Region Of Interest)を出力するようにし、(2)学習装置が、(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとに学習用特徴マップ上でk個の学習用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとにk個の学習用ROIそれぞれに対応するk個の第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれのプーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)それぞれをもって、該当スケールごとにk個の学習用第1特徴ベクトルをそれぞれ利用して該当スケールごとにk個の学習用第2特徴ベクトルをそれぞれ出力するようにし、(iii)第2FCレイヤをもって、該当スケールごとにk個の学習用第2特徴ベクトルをそれぞれ利用して、k個の学習用ROIそれぞれに対応するそれぞれの学習用クラス(Class)情報と、それぞれの学習用リグレッション(Regression)情報とを出力するようにし、(3)第1ロスレイヤ(Loss Layer)をもって、それぞれの学習用クラス情報と、それぞれの学習用リグレッション情報と、これに対応する第1GT(Ground Truth)とを参照してk個の学習用ROIに対応するクラスロス(Class Loss)と、リグレッションロス(Regression Loss)とを生成するようにすることで、クラスロス及びリグレッションロスを利用したバックプロパゲーションによって、第2FCレイヤと、第1FCレイヤと、コンボリューションレイヤとを学習した状態で、通信部401は、少なくとも一つのテスト用物体を含むテストイメージを取得し得る。
【0071】
プロセッサ420は(I)(i)コンボリューションレイヤをもって、テストイメージに対してコンボリューション演算を適用するようにして、少なくとも一つのテスト用特徴マップを出力するようにし、(ii)RPNをもって、テスト用特徴マップを用いてテストイメージ内のm個のテスト用ROIを出力するようにする第1プロセス;及び(2)(i)互いに異なるプーリングスケール(Pooling Scale)を有するプーリングレイヤ(Pooling Layer)それぞれをもって、該当スケールごとにテスト用特徴マップ上でm個のテスト用ROIに対応するそれぞれの領域をプーリングするようにして、該当スケールごとにm個のテスト用ROIそれぞれに対応するm個のテスト用第1特徴ベクトル(Feature Vector)それぞれを出力するようにし、(ii)それぞれのプーリングレイヤに対応するそれぞれの第1FCレイヤ(Fully Connected Layer)をもって、該当スケールごとにm個のテスト用第1特徴ベクトルをそれぞれ利用して該当スケールごとにm個のテスト用第2特徴ベクトルをそれぞれ出力するようにし、(iii)第2FCレイヤをもって、該当スケールごとのm個のテスト用第2特徴ベクトルをそれぞれ利用して、m個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス(Class)情報と、それぞれのテスト用リグレッション(Regression)情報とを出力するようにする第2プロセスを遂行し得る。
【0072】
ここで、テスト装置400においてRPNが出力するROIの数であるm個は、学習装置100においてRPNが出力するROIの数であるk個より小さいか、同じであり得るが、これに限定されるものではない。
【0073】
このように構成されたテスト装置400を利用して、本発明の一例に係る互いに異なるプーリングスケールを有するプーリングレイヤそれぞれを利用してCNN基盤の物体検出器をテストする方法を、
図5を参照にしながら説明する。以下の説明において、学習方法から容易に理解可能な部分については詳細な説明を省略することにする。
【0074】
まず、
図3を参照に説明した学習方法によって、第2FCレイヤ450と、第1FCレイヤ440と、コンボリューションレイヤ410とを学習した状態で、テストイメージが入力されると、テスト装置400は、コンボリューションレイヤ410をもってテストイメージに対してコンボリューション演算を少なくとも一度適用するようにし、少なくとも一つのテスト用特徴マップを出力するようにする。
【0075】
コンボリューションレイヤ410から出力されたテスト用特徴マップをRPN420に入力して、テスト装置400は、RPN420をもって、テスト用特徴マップを利用してテストイメージに対応するm個のテスト用ROIを出力するようにする。
【0076】
次に、テスト装置400は、互いに異なるプーリングスケールを有するプーリングレイヤ430それぞれをもって、テスト用特徴マップ上でm個のテスト用ROIに対応するそれぞれの領域を該当スケールごとにプーリングするようにして、該当スケールごとにm個のテスト用ROIに対応するm個の第1テスト用特徴ベクトルそれぞれを出力するようにする。この際、
図5の例では、互いに異なるプーリングスケールを有する3つのプーリングレイヤ430それぞれが示されたが、本発明はこれらに限定されるわけではない。また、プーリングスケールが大きい第1テスト用特徴ベクトルは、プーリングスケールの小さい第1テスト用特徴ベクトルに比べてより多くの情報を有し得る。
【0077】
そして、テスト装置400は、それぞれのプーリングレイヤ430に対応するそれぞれの第1FCレイヤ440をもって、m個の該当スケールごとに第1テスト用特徴ベクトルそれぞれを利用して、m個の該当スケールごとに第2テスト用特徴ベクトルそれぞれを出力するようにする。
図5の例では、第1FCレイヤ440の数が3つとなっているが、これはプーリングレイヤ430の数が3つであることに起因しているものであり、当発明はこれに限定されるものではない。
【0078】
また、第1FCレイヤ440それぞれから出力される該当スケールごとの第2テスト用特徴ベクトルそれぞれのチャネル数それぞれは、同一であり得る。一例として、
図5に示されたように、第1FCレイヤ440それぞれから出力される該当スケールごとの第2テスト用特徴ベクトルのチャネル数は、それぞれ128であり得るが、これに限定されるものではない。
【0079】
また、第1FCレイヤ440それぞれから出力される第2テスト用特徴ベクトルの総チャネル数が、予め設定された数未満になるようにし得る。一例として、
図5に示された通り、第1FCレイヤ440それぞれから出力される第2テスト用特徴ベクトルの総チャネル数は、384(128+128+128)であり得るが、これに限定されるものではない。この場合、一般的に4,096チャネルを有する特徴ベクトルを演算する従来の方法に比べて、本発明に係る全ての演算を遂行するチャネル数は384個と少なくなるので、これによってテスト装置400の演算能力を上昇させ得るようになる。
【0080】
その後、テスト装置400は、第2FCレイヤをもって、該当スケールごとにm個の第2テスト用特徴ベクトルをそれぞれ利用してm個のテスト用ROIそれぞれに対応するそれぞれのテスト用クラス情報と、それぞれのテスト用リグレッション情報とを出力するようにする。
【0081】
この際、第2FCレイヤ450は、第2_1FCレイヤ451及び第2_2FCレイヤ455を含み得る。第2_1FCレイヤ451は、第1FCレイヤ440それぞれから出力される第2テスト用特徴ベクトルそれぞれをコンカチネート(Concatenate)して第3テスト用特徴ベクトルを出力し得る。第2_2FCレイヤ455は、第3テスト用特徴ベクトルを利用してm個のテスト用ROIに対応するそれぞれのテスト用クラス情報と、それぞれのテスト用リグレッション情報とを出力し得る。
【0082】
本発明に係る学習方法とテスト方法は、物体のスケールによってモードを転換し得るCNNを利用して監視用として利用され得る。モードによって様々なレイヤの重み付け値及び/または多様なロスの重み付け値は調整され得る。
【0083】
また、以上で説明された本発明に係る実施例は、多様なコンピュータ構成要素を通じて遂行できるプログラム命令語の形態で実装されてコンピュータ読み取り可能な記録媒体に記録され得る。前記コンピュータで読み取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含まれ得る。前記コンピュータ判読可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計されて構成されたものか、コンピュータソフトウェア分野の当業者に公知となって使用可能なものでもよい。コンピュータで判読可能な記録媒体の例には、ハードディスク、フロッピィディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスク(flopticaldisk)のような磁気−光媒体(magneto−opticalmedia)、およびROM、RAM、フラッシュメモリなどといったプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードも含まれる。前記ハードウェア装置は、本発明に係る処理を遂行するために一つ以上のソフトウェアモジュールとして作動するように構成され得、その逆も同様である。
【0084】
以上、本発明が具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものであるに過ぎず、本発明が前記実施例に限られるものではなく、本発明が属する技術分野において通常の知識を有する者であれば係る記載から多様な修正及び変形が行われ得る。
従って、本発明の思想は前記説明された実施例に局限されて定められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形されたものすべては、本発明の思想の範囲に属するといえる。
【符号の説明】
【0085】
100:学習装置
110:通信部
120:プロセッサ
130:データベース
400:テスト装置
410:通信部
420:プロセッサ