• 検索結果がありません。

要 旨 題目深層学習による人物検出学籍番号 T 氏名海住嘉希指導教員白井英俊近年 深層学習による画像認識が高い精度で成果を挙げていることで注目されている 本研究では 深層学習によって物体認識を行う三つの手法を用いて実装を行った そして 三つの手法の実装結果から人物検出に焦点をあて これら

N/A
N/A
Protected

Academic year: 2021

シェア "要 旨 題目深層学習による人物検出学籍番号 T 氏名海住嘉希指導教員白井英俊近年 深層学習による画像認識が高い精度で成果を挙げていることで注目されている 本研究では 深層学習によって物体認識を行う三つの手法を用いて実装を行った そして 三つの手法の実装結果から人物検出に焦点をあて これら"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)2016 年度 卒業論文. 深層学習による人物検出 指導教員 白井英俊 教授. 中京大学. 工学部 電気電子工学科. 学籍番号. T213021. 氏名 海住 嘉希. (2017 年 1 月).

(2) 要 旨 題目 学籍番号. 深層学習による人物検出 T213021. 氏名. 海住. 嘉希. 指導教員. 白井. 英俊. 近年、深層学習による画像認識が高い精度で成果を挙げていることで注目されている。 本研究では、深層学習によって物体認識を行う三つの手法を用いて実装を行った。そし て、三つの手法の実装結果から人物検出に焦点をあて、これらの検出精度と実行時間の 比較を行ったものである。人物検出に焦点をあてた理由は、安全面や防犯面でこのよう な機器が使われ始めており、人を検出する技術がますます重要になっているためである。 本研究では、Faster R-CNN (Faster Region-with Convolution Neural Network), YOLO (You Only Look Once), SSD (Single Shot MultiBox Object Detector)という、三つの深層学習による物体. 検出手法 (いずれも 2016 年 11 月時点で最先端の技術)を実装し、同じデータに適用して これらの手法の精度と実行時間を比較した。なおこれには人も含めた 20 種類の物体 (PASCAL VOC2007 データ, PASCAL VOC2012 データ)の検出をするよう学習されたモ デルを用いたが、対象としたデータは人物だけを検出するものとした。また人物検出に 適し、深層学習以前に最先端とされていた HOG 特徴量を比較材料に用いた。 Faster R-CNN は、畳み込み層(CNN)の上に 2 層の畳み込み層を追加して領域提案 ネットワーク(RPN)と呼ばれるネットワークを構築し、物体検出を行うシステムであ る。YOLO は物体の領域とその物体の種類の予測を同時に行って物体検出を行うシステ ムである。また SSD は YOLO と同様に領域の予測と物体の種類の予測を単一のネット ワークで実現するシステムで、前処理として CNN を行って得られた特徴地図を利用し ている。HOG 特徴量は、画像の局所領域(セル)から、輝度の勾配方向と強度という特徴 量を得て物体検出を行うシステムである。初めにこれら 4 つの手法を同じプラットフォ ームの上で実装した。 次に人物画像のデータベース INRIA Person Dataset から、100 枚の画像データをラン ダムに取得し、評価に使用した。4 つの手法それぞれの画像 1 枚あたりの平均実行時間 と、人物の検出精度(検出した人数の割合)とを比較した。その結果、平均実行時間は HOG 特徴量が 0.21s、SSD が 11.19s、YOLO が 12.34s、Faster R-CNN が 25.28s であった。 検出精度は YOLO が 92.24%、Faster R-CNN が 86.78%、SSD が 63.98%、HOG 特徴量が 54.33%であった。 HOG は速いが検出精度が低いことが明らかになった。3 種の深層学習手法では、Faster R-CNN は複数のネットワークを使用して物体検出するため、単一のネットワークで検 出する YOLO と SSD よりかなり遅いという結果が得られたのは妥当であろう。また検 出精度が低くなったのは、評価データとして多様な人の姿勢や向きのある画像データセ ット INRIA Person Dataset を使用したためであると考える。特に SSD が 3 種の深層学習 の中で低いのはそのせいであろう。.

(3) 展望として、検出物を人物と人物以外の 2 種に限定した学習モデルを作成すれば、 速度を維持しつつ検出精度を高めることができるのではないだろうか。特に YOLO を ベースとして GPU を使用すれば、実時間で人物検出が加納なシステムが実現できると 考える。.

(4) 目. 次. 第1章. はじめに. ................................................................................................................... 1. 第2章. 本研究の構成 ............................................................................................................... 3. 2.1. 深層学習について .............................................................................................................. 3 2.2. Faster R-CNN (Faster Region-with Convolution Neural Network) ..................................... 4 2.3. YOLO(You Only Look Once) .............................................................................................. 5 2.4. SSD(Single Shot MultiBox Detector) ............................................................................. 7 2.5. HOG(Histograms of Oriented Gradients)特徴量 ................................................................ 8 第3章. 研究計画 .................................................................................................................... 10. 3.1. 開発環境 .......................................................................................................................... 10 3.2. 研究の計画 ...................................................................................................................... 10 第4章. Faster R-CNN , YOLO , SSD , HOG 特徴量システムの実装 ................................ 11. 4.1. Faster R-CNN の実装 ....................................................................................................... 11 4.2. YOLO の実装 ................................................................................................................... 12 4.3. SSD の実装 ...................................................................................................................... 12 4.4. HOG 特徴量による人物検出の実装 ............................................................................. 12 第5章. 検証 ............................................................................................................................ 13. 第6章. 考察とまとめ ............................................................................................................ 17. 参考文献 .................................................................................................................................. 18 謝辞 ............................................................................................................................................ 19 付録 . HOG 特徴量のプログラム .......................................................................................... 20.

(5) 第1章 はじめに 近年、深層学習による画像認識が高い精度で成果を挙げていることで注目されている。 本研究では、深層学習によって物体認識を行う三つの手法を用いて実装を行った。そして、 三つの手法の実装結果から人物検出に焦点をあて、これらの検出精度と実行時間の比較を 行ったものである。人物検出に焦点をあてた理由は、安全面や防犯面でこのような機器が 使われ始めており、人を検出する技術がますます重要になっているためである。 本研究では、Faster R-CNN(Faster Region-with Convolution Neural Network), YOLO(You Only Look Once), SSD(Single Shot MultiBox Object Detector)という、三つの深層学習による物体検 出手法(いずれも 2016 年 11 月時点で最先端の技術)を実装し、同じデータを適用することに より、精度と実行時間の比較をした。ここでは、人も含めた 20 種類の物体(PASCAL VOC2007 データ, PASCAL VOC2012 データ)の検出をするよう学習されたモデルを用いたが、対象と したデータは人物だけを検出するものとした。また人物検出に適し、深層学習以前に最先 端とされていた HOG 特徴量を比較材料に用いた。 Faster R-CNN は、畳み込み層(CNN)の上に 2 層の畳み込み層を追加して領域提案ネット ワーク(RPN)と呼ばれるネットワークを構築し、物体検出を行うシステムである。YOLO は物体の領域とその物体の種類の予測を同時に行って物体検出を行うシステムである。ま た SSD は YOLO と同様に領域の予測と物体の種類の予測を単一のネットワークで実現する システムで、前処理として CNN を行って得られた特徴地図を利用している。HOG 特徴量 は、画像の局所領域(セル)から、輝度の勾配方向と強度という特徴量を得て物体検出を行う システムである。初めにこれら 4 つの手法を同じプラットフォームの上で実装した。 次に人物画像のデータベース INRIA Person Dataset から、100 枚の画像データをランダムに 取得し、評価に使用した。4 つの手法それぞれの画像 1 枚あたりの平均実行時間と、人物の 検出精度(検出した人数の割合)とを比較した。その結果、平均実行時間は HOG 特徴量が 0.21s、SSD が 11.19s、YOLO が 12.34s、Faster R-CNN が 25.28s であった。検出精度は YOLO が 92.24%、Faster R-CNN が 86.78%、SSD が 63.98%、HOG 特徴量が 54.33%であった。 HOG 特徴量は速いが検出精度が低いことが明らかになった。3 種の深層学習手法では、Faster R-CNN は複数のネットワークを使用して物体検出するため、単一のネットワークで検出す る YOLO と SSD よりかなり遅いという結果が得られたのは妥当であろう。また検出精度が 低くなったのは、評価にデータとして多様な人の姿勢や向きのある画像データセット INRIA Person Dataset を使用したためであるとかんがえる。特に SSD が 3 種の中で低いのはそのせ いではないであろう。 展望として、検出物を人物と人物以外の 2 種に限定した学習モデルを作成すれば、速度を 維持しつつ検出精度を高めることができるのではないだろうか。特に YOLO をベースとし て GPU を使用すれば、実時間で人物検出が可能なシステムが実現できると考える。. 1.

(6) 本書の構成は以下の通りである。第 2 章では前提知識として、本研究に用いた深層学習、 そしてこれを用いた物体検出手法である Faster R-CNN、YOLO、SSD の紹介と、HOG 特. 徴量の説明を行う。第 3 章では本研究をするための開発環境と研究の計画について述べる。 第 4 章では、第 2 章で紹介した物体検出手法の実装方法について説明する。第 5 章では、 この実装を用いて、実行時間と検出精度の比較について述べる。第 6 章では、第 5 章で得 られた結果について考察し、本論文をまとめる。. 2.

(7) 第 2 章 本研究の構成 本研究では、深層学習の三つの手法、Faster R-CNN、YOLO、SSD による物体検出の 実装を行い、検出精度と実行時間の比較を行った。また、深層学習でない手法で、人物 検出をすることができる代表的な手法として HOG 特徴量を用いた人物検出とも比較を 行った。人物に着目した理由としては、深層学習手法は、安全や防犯対策にも使われ始 めている中、人を検出する技術が必要とされていることから人物に着目した。 本章では、初めに深層学習と、その検出手法を学ぶために、深層学習は、浅川(2016) と麻生ほか(2015)、Faster R-CNN は Ren et al (2015)と浅川(2016)、YOLO は Redmon, et al (2016)と藤田・高原(2016)、SSD は Liu et al. (2015)、HOG 特徴量は Dalal & Triggs (2005). と藤吉(2009)を参考にして説明する。. 2.1 深層学習について 深層学習(Deep learning)は、人間や生物の脳神経系の強力な学習能力を持ったメカニ ズムをヒントとした機械学習手法のひとつであり、高い性能が挙げられていることで注 目されている。深層学習は入力層、複数の中間層、出力層からなるニューラルネットワ ークを用いて行われる。ニューラルネットワークのそれぞれの層は複数のユニットから なり、このユニットは次の層のユニットと繋がるという構造をしている。ただしこのニ ューラルネットワークは、ただ層の数が多い(層が深い、という)だけではなく、一つ の層のユニット数が多い(層の幅も広い、という)ため、ユニットとユニット間の重み と呼ばれるパラメータ数が多い。それにより、多数の特徴量を扱うことができるという 特徴を持つ。深層学習の学習は一般的に、入力からニューラルネットワークによって計 算された出力と教師データ(正解に相当する)との差(すなわち誤差)を用いた重みを 更新によって行われる(誤差逆伝播法)。このとき、損失関数と呼ばれる関数が使用さ れ、この損失関数の値を小さくするように学習が行われる。 深層学習は 2010 年代から産業界でも利用され、Google や Microsoft, Facebook などの 画像認識や音声認識、自然言語処理、創薬ゲノミクスなど多くの領域で研究開発が進め られている。 画像認識では、深層学習のうち畳み込みニューラルネットワーク(Convolutional Neural Network、以後 CNN と呼ぶ)が多く利用されている。CNN の特徴は、畳み込み 層とプーリング層と呼ばれる特殊な層を交互に積み重ねた構造を持つことである。. 2.2 Faster R-CNN (Faster Region-with Convolution Neural Network) Ren et al (2015)らによる Faster R-CNN(Faster Region-with Convolution Neural Network) は、深層学習を用いた物体検出手法についての一連の研究 R-CNN、Fast R-CNN、Faster 3.

(8) R-CNN のうちで、もっとも高速で高精度な成果を得ている研究である。 Faster R-CNN では、畳み込み層(CNN)の上に 2 層の畳み込み層を追加して領域提 案ネットワーク(以後、RPN と呼ぶ)と呼ばれるネットワークを構築する。RPN は、 任意の大きさの画像を入力とし、物体が存在する候補領域と、その領域に物体が存在す る可能性を表す数値(物体らしさ)とを出力する。なお候補領域としては、物体検出手 法としては一般的であるが矩形領域だけを考えている。図 2.1 は物体が存在する候補領 域を求めるべく、CNN の出力である特徴地図において、n×n の物体検出用のウィンド ウ(図 2.1 では n=3)による走査(スライディングウィンドウと呼ぶ)を表したものである。 これにより物体の有無をそれぞれの領域ごとに判定し、物体があると判定された領域に 対して物体認識を行う。ここで縦横比が一定のウィンドウをずらしているだけでは、い ろいろな形や大きさの領域候補を調べられない。そのため RPN ではウィンドウごとに アンカーと呼ばれる、大きさや縦横比の異なる複数個の領域を設定し、それぞれの物体 らしさを求める。図 2.1 に即して言えば、ウィンドウごとに k 個(Saito 2016)による実装 では k=9)のアンカーを設定し、それぞれについて 256 次元のベクトルに変換した後に、 物体か背景かを分類する問題(2k 個のクラス分類)と、その領域の座標を求める問題(4k 個の回帰問題)とを(またもや)CNN を用いて解いているのである。. 図 2.1. 畳み込み特徴地図(Ren 2015) Faster R-CNN の学習は、次の 4 段階の手順で学習を行う(図 2.2)。 1. 事前訓練が済んだ CNN を用いて、物体が存在する領域を提案するネットワークで ある RPN の学習を行う。 2. 学習した RPN が出力した候補領域から、ファインチューニングした CNN を用いて 物体認識を学習する(Fast R-CNN 流に)。 3. 上のステップで作成した物体検出ネットワークを用いて「物体認識ネットワークと 共有する」特徴地図を用いて RPN を再学習する。 4.

(9) 4. さらに「物体認識ネットワークと共有する」特徴地図を用いて物体認識レイヤーを ファインチューニングする。. 図 2.2.Faster R-CNN の構成(麻生ら 2015) かくして、入力データから CNN によって得られる同じ特徴地図を用いて、物体領域提 案と物体認識とが学習され、それにより物体検出が行われる。 この方式は、物体領域提案と物体認識とを別々の CNN で行っているため、後で紹介 する二つの方式と比べ、計算コストが高くなっている。それでもこの方式が提案された 時点では最速であり、PASCAL VOC2007 (Everingham 2007)データに対して 1 秒あたり 5 フレームの処理速度、73.2% mAP (mean Average Precision)と報告されている。. 2.3 YOLO(You Only Look Once) Redmon, et al (2016)による YOLO(You Only Look Once)は、C 言語で作成されたフレー ムワークの darknet の機能の一つとして提供されている。YOLO は、深層学習による物 体検出手法であり検出精度が高い。また、動画に対してリアルタイムに物体検出を行う 機能もあり、処理時間が速い手法である。物体の領域とその物体の種類の予測を同時に 行うという特徴がある。 図 2.3 に YOLO の学習の概要図を示す。初めに CNN に 448×448 にリサイズされた入 力画像を入力し、画像全体は S×S の固定サイズの領域(グリッド)に分割される。本研究 は、20 種類の物体が含まれている PASCAL VOC データを学習データとして用いている。 この場合は、S=7 であり、7×7 のグリッド数に分割される。次に、図 2.3 の YOLO の学 習概要図から、以下の項目を行って物体の予測をしている。. 5.

(10) 各グリッドの物体らしさの 矩形とその信頼度を求める. 各グリッドの信頼度が高い 物体の種類を求める 図 2.3.YOLO の学習概要図(Redmon, J. . 2016). 各グリッドの物体らしさの矩形とその信頼度を求める CNN に入力し、7×7 グリッドに分割された画像から、物体らしさの矩形を求める。. 方法は、物体らしい中心がグリッドセルに入ったとき、その物体を検出して矩形を求め る。このとき、物体らしい矩形は 7×7×2 個生成され、それぞれの矩形のデータは x 座標、 y 座標、w 座標、h 座標と信頼度の計 5 種類を持っている。セル内に物体が存在しない ௚. 場合、信頼度は 0 となる。物体の信頼度をPrObject ∗

(11) ௕ と定義すると、物体の信頼 度は(2.1)式であり、候補領域 b に対して、セル g がどれだけ含まれているか割合を評価 する。 ௚. PrObject ∗

(12) ௕  PrObject ∗. |b ∩ g| ・・・・・・・2.1. |b ∪ g|. また、それぞれの矩形領域から条件付きクラス確率 C も推測する。   PrClass|Object ・・・・・・・2.2. . 各グリッドの信頼度が高い物体の種類を求める CNN に入力し、7×7 グリッドに分割された画像から、緑の領域は犬、ピンクの領域 は自転車、オレンジの領域は車、青の領域は背景というように、物体ごとの確率が 各グリッドセルに設定される。 YOLO は、24 層の畳み込み層と 2 層の全結合層からなる 26 層のニューラルネットワ. ークで学習を行う。また、Faster R-CNN のように物体領域提案と物体認識とを別々で行 うのではなく、1 回の推測から物体の領域予測と物体の種類の予測を同時に得ることが できるため、高速な処理が可能である。しかし、一つのグリッドで検出できる物体が最 大 2 つという制約があるため、グリッド内に大量の物体が映っている場合に検出が弱い。 6.

(13) 2.4 SSD( (Single Shot MultiBox Detector) ) Liu, et al (2016)による SSD(Single Shot MultiBox Detector)は、2016 年 11 月時点で最新. の深層学習による物体検出法である。ある程度の検出精度を保ち、処理速度が速い。領 域の予測と物体の種類の予測を単一のネットワークで実現している。前処理として CNN を行って得られた特徴地図を利用する。図 2.4 のように、深さの異なる特徴地図を 用い、浅い層は小さい物体、深い層になるに連れ大きい物体の検出を可能としている。. 図 2.4.SSD の構造(Liu et al. 2016) 領域の予測と物体の種類の予測はそれぞれの特徴地図で行われる。図 2.5 にその様子 を示す。. 図 2.5.特徴地図における領域予測と物体予測(Liu et al. 2016) 図 2.5 は CNN を前処理として得られた特徴地図を 8×8 と 4×4 に分割した二つの領域 地図を示している。このように領域地図をいろいろなサイズに分割することで、色々な サイズの物体を検出する(例えば図 2.5 の犬は 8×8 ではなく 4×4 の領域で検出される)。 それぞれの領域には、3×3 のフィルタをかけ、物体の種類の信頼度とその物体の位置の 座標(x,y,w,h)を得る。損失関数は、物体の位置のずれとなる loc (localization loss)と物 体のクラスである conf(confidence loss)を組み合わせたものである。また特徴地図の各領 域では、異なるアスペクト比の領域異種を生成し、いろいろな形状の物体を検出できる 工夫をしている。ここで、m 個の特徴地図を使う場合、k 番目の特徴地図は式(2.3)のス 7.

(14) ケールを持つ大きさの物体を検出する役割を持つこととなる。 ௞ = ௠௜௡ +. ௠௔௫ − ௠௜௡  − 1,  ∈ 1, ・・・・・・・・・・・・(2.3) −1. ௠௔௫ は 0.9、௠௜௡ は 0.2 というスケールである。 また、アスペクト比は. 1 1 ௥ ∈ 1,2,3, , ・・・・・・・・・・・・・(2.4) 2 3 として、式(2.5)と式(2.6)から領域異種のサイズが決まる。また、アスペクト比が 1 の場 合は、式(2.7)によりやや小さめの領域異種を生成している。 ௞௔ = ௞

(15) ௥ ・・・・・・・・・・・・・・・・・・・・・・(2.5) ℎ௞௔ =. ௞ ・・・・・・・・・・・・・・・・・・・・・・・(2.6) √௥. ௞ᇱ =

(16) ௞ ௞ାଵ ・・・・・・・・・・・・・・・・・・・・(2.7). この方式は、以上に説明した YOLO と同様に物体領域予測とその物体の種類を単一 のネットワークで実現しているため、Faster R-CNN より速く検出することができる。 SSD の問題としては、大量なバウンディングボックスが生成されることが考えられるた め、学習時に予測とは正しくないデータ(negative data)が発生する。このために、最後の 出力は conf(confidence loss)を降順に並べ、最も高い信頼度を拾い上げて検出結果として いる。. 2.5 HOG(Histograms of Oriented Gradients)特徴量 特徴量 Dalal &Triggs (2005)による HOG(Histograms of Oriented Gradients)特徴量は、画像の局 所領域(セル)から、輝度の勾配方向と強度により得られる特徴量である。一般的には歩 行者や物体検出に使用されている。以下に方法を示す。 1. 画像をブロックに分割をし、そのブロック内で複数のセルに分割をする。 2. それぞれのブロック内のセルの中における輝度の勾配方向、強度から勾配ヒス トグラムを計算する。ヒストグラムの作成は、0°から 180°までを 20°ずつ 9 方 向に分割する。輝度の勾配方向と強度は以下で求める。 ௙೤ (௫,௬). ・・・・・・・・・・・・・・・・・・・(2.8). 勾配方向. θx, y = tan. 勾配強度. mx, y = ௫ (, )ଶ + ௬ (, )ଶ ・・・・・・・・・・・・・(2.9). ௙ೣ (௫,௬). ௫ ,  =  + 1,  − ( − 1, ) ・・・・・・・・・・・・・・・・(2.10) ௬ ,  = ,  + 1 − (,  − 1). 3.. ブロックごとに正規化して、ヒストグラムの形状を整える。 8.

(17) 正規化は以下で求める。  =. . ௦×௦×ே ∑௞ୀଵ ଶ . +. ・・・・・・・・・・・・・・・・(2.11). s×s はセル、 = 1、N は勾配方向数である。 4.. 得られたヒストグラムを連結し、特徴量を得る。. 以上より、輝度の勾配方向と強度の特徴量を得て検出することができる。 本章では、三つの深層学習手法と、HOG 特徴量を説明した。第 3 章では、上記の手 法を実装して比較研究を行うために研究計画について説明する。. 9.

(18) 第 3 章 研究計画 深層学習は、画像認識の分野において高い性能を上げている。また、画像認識は安全 や防犯対策にも使われ始めている中、人を検出する技術が必要とされていることから人 物に着目した。以上より、実行時間がより高速で、検出精度が良い手法が優位であると 考えた。そして、本章では、三つの深層学習手法 Faster R-CNN、YOLO、SSD を実装し、 実行時間と検出精度を比較する概要について説明する。. 3.1 開発環境 本研究をするために、開発環境について説明する。 使用機器は HP 社 Z640、OS は Linux4.2(Ubuntu15.04)、GPU は NVIDIA 社 Quadro M5000 で CUDA7.5、使用言語は python2.7 と python3.4、C 言語を使用した。. 3.2 研究の計画 研究の計画 以下の計画で本研究を行った。 1.. 三つの深層学習手法について実装を行う。 1.1. Faster R-CNN の実装を行う。本研究では chainer-faster-rcnn-master(Saito. 2015)を用いた。これは PASCAL VOC 2007 データで訓練した学習モデルを用い ており、20 種類の物体を検出できるものである。 1.2. YOLO の実装を行う。本研究では、darknet (Redmon 2016)で提供され. ているコードを用いた。これも PASCAL VOC 2007 データで訓練した学習モデル を用いており、20 種類の物体を検出できるものである。 1.3. SSD の実装を行う。本研究では、mxnet-ssd (Zhang 2016)で提供されて. いるコードを用いた。これも PASCAL VOC 2007 データで訓練した学習モデルを 用いており、20 種類の物体を検出できるシステムである。 2.. 以上の三つの深層学習手法と HOG 特徴量に対して人物検出問題のため、人を. 題材とした画像データベースを用いて人物の検出精度と実行時間を求めて比較を 行う。 本章では、本研究を行うための開発環境と研究計画の概要について説明した。第 4 章で は、Faster R-CNN , YOLO , SSD , HOG 特徴量による検出システムの実装について説明す る。. 10.

(19) 第4章 Faster R-CNN , YOLO , SSD , HOG 特徴量システム 特徴量システムの システムの実装 本研究では、深層学習による物体検出手法と検出精度と HOG 特徴量の実行時間の比 較を行うためにシステムを実装する必要がある。本章では、本研究に使用した深層学習 による物体検出手法の Faster R-CNN、YOLO、SSD の三手法と、OpenCV(桑井博之他. 2014)を用いた HOG 特徴量による検出の実装方法について説明する。OpenCV について は本章で説明する。. 4.1 Faster R-CNN の実装 の実装 本節では Faster R-CNN を実装するための方法を説明する。以下の手順で Faster R-CNN の実装を行った。 1. Github にある chainer-faster-rcnn (Saito 2016)を ZIP 形式でダウンロードした後に展 開する。 2. chainer-faster-rcnn の lib のディレクトリに移動をし、extension をビルドする。 以下にコマンドを示す。 cd chainer-faster-rcnn cd lib python setup.py build_ext –i cd .. 3. トレーニング済モデルのダウンロードを行う。以下にコマンドを示す。 wget https://dl.dropboxusercontent.com/u/2498135/faster-rcnn/ VGG16_faster_rcnn_final.model. cd .. 4. 以上の手順が完了したら、プログラムの実行を行う。 python3 forward.py --img_fn [入力画像データ] --out_fn result.jpg 以上より Faster R-CNN の実装を行うことができる。プログラムの実行において 「--img_fn」は入力画像(物体検出させたい画像)の指定、「--out_fn」は出力画像 (物体検出結果)の指定である。それぞれ、ディレクトリを指定することもでき る。また、「--gpu 0」を付け加えることで、GPU が使用できる。. 4.2 YOLO の実装 本節では YOLO を実装するための方法を説明する。 以下の手順で YOLO の実装を行った。 1.. Github にある darknet (Redmond 2016)を ZIP 形式でダウンロードした後、展開して. 11.

(20) make する。 2.. トレーニング済モデルのダウンロードを行う。以下にコマンドを示す。 wget http://pjreddie.com/media/files/yolo.weights. 3.. 以上の手順が完了したら、プログラムの実行を行う。以下のコマンドによりプログ ラムの実行を行う。 ./darknet detector test cfg/voc.data cfg/yolo.cfg yolo.weights [入力画像データ]. 以上より YOLO の実装を行うことができる。. 4.3 SSD の実装 本節では SSD を実装するためのダウンロードから実装するための方法を説明する。 以下の手順で SSD の実装を行った。 1.. Github にある mxnet-ssd (Zhang 2016)を ZIP 形式でダウンロードした後、展開する。 https://github.com/zhreshold/mxnet-ssd. 2.. プログラムを実行する。以下のコマンドにより実行できる。 python demo.py --cpu --images [入力画像データ]. 4.4 HOG 特徴量による 特徴量による人物 による人物検出の実装 人物検出の実装 OpenCV を使用することにより、HOG 特徴量を用いた人物検出の実装を行う。プロ グラムは付録 1 に示す。ここで OpenCV とは、画像や動画の処理を容易にすることがで きる無償のオープンソースである。 本章では、Faster R-CNN , YOLO , SSD , HOG 特徴量による検出システムの実装につい て説明をした。第 5 章では、実装し検証を行った。. 12.

(21) 第 5 章 検証 本章では、4 章で説明した深層学習手法の 3 つに対して INRIA Person dataset を評価デ ータとすることで、実行時間と検出精度の比較を行う。INRIA Person dataset とは、多様 な人の姿勢,向き,視点や背景画像が含まれている、汎用性の高いデータセットである。 この INRIA Person dataset から、100 枚の画像データをランダムに取得して評価に使用し た。なお、閾値の値は 0.6 とした。0.6 が人物であると判断できる最低限の信頼度と考 えた。比較方法と結果は以下である。 . 実行時間 それぞれの検出手法により、100 枚の画像を検出し、1 枚あたりの画像の実行時間 (平均実行速度)を求めた(表 5.1)。. . 検出精度 それぞれの検出手法により、100 枚の画像を検出し、画像中に現れている人数と検 出した人数から精度を算出した(表 5.2)。 表 5.1. 平均の実行速度 Faster R-CNN. YOLO. SSD. HOG特徴量. 25.28. 12.34. 11.19. 0.21. 平均実行速度(s). 表 5.2. 検出精度 Faster R-CNN. YOLO. SSD. HOG特徴量. 86.78. 92.24. 63.98. 54.33. 検出精度(%). 以上の結果より、平均実行速度は深層学習手法ではない HOG 特徴量が最も速いこと、 また深層学習手法の中では SSD が最も速く Faster R-CNN が遅いことがわかった。 つまり以下の順である。 HOG 特徴量 > SSD > YOLO > Faster R-CNN 検出精度は、深層学習手法ではない HOG 特徴量が最も低いこと、また深層学習手法 の中では YOLO が最も高く、SSD が低いことがわかった。つまり以下の順である。 YOLO > Faster R-CNN > SSD > HOG 特徴量 処理前の画像と実装後の画像の例を示す。なお図 5.1 の画像には 6 人いると判断した。. 13.

(22) 図 5.1. 処理前の画像 処理後の画像を示す。なお検出された人は枠で示されている。. 図 5.2. YOLO 実装画像. 14.

(23) 図 5.3. Faster R-CNN 実装画像. 図 5.4. SSD 実装画像 以上の結果より、SSD の精度が低いことから閾値の変更を行ってみた。 15.

(24) 図 5.5 の画像は、閾値が 0.6 としたとき、図 5.6 の画像は閾値を 0.1 のときであり、低い 信頼度でようやく検出され、精度は高くないのではないかと考えられた。. 図 5.5. 閾値 0.6 で SSD 実装. 図 5.6.. 閾値 0.1 で SSD 実装 16.

(25) 第 6 章 考察とまとめ HOG 特徴量は速いが検出精度が低いことが明らかになった。3 種の深層学習手法で は、実行速度は SSD が最も速く Faster R-CNN が遅いことがわかった。考察としては、 Faster R-CNN は複数のネットワークを使用して物体検出するため、単一のネットワーク で検出する YOLO と SSD よりかなり遅いという結果が得られたのは妥当であろう。 また検出精度は、YOLO が最も高く、SSD が低いことがわかった。検出精度が低くな った考察は、評価にデータとして多様な人の姿勢や向きのある画像データセット INRIA Person Dataset を使用したためであると考える。特に SSD が 3 種の中で低いのはそのせ いであろう。 展望として、検出物を人物と人物以外の 2 種に限定した学習モデルを作成すれば、 速度を維持しつつ検出精度を高めることができるのではないだろうか。また、本研究は 画像に対して人物検出を行ったが、最も検出精度が良かった YOLO に対して、GPU を 使用すれば、実時間で人物検出が可能なシステムが実現し、安全面や防犯面など生活の 場で活躍できるのではないか。. 17.

(26) 参考文献 浅川伸一(2016).「Python で体験する深層学習」.コロナ社 麻生英樹他(2015).「深層学習」.近代科学社. 桑井博之他. (2014).「実践 OpenCV 2.4 for Python 映像処理&解析」. カットシステム 藤田一弥・高原歩 (2016)「実装ディープラーニング」.オーム社 藤吉弘亘 (2009). 局所特徴量の関連性に着目した Joint 特徴による物体検出. 情報処理学会 研究報告 CVIM 166. Dalal N. (2005). INRIA Person Dataset. http://pascal.inrialpes.fr/data/human/ (2016 年 9 月参. 照) Dalal N. & Triggs, B. (2005).Histograms of Oriented Gradients for Human Detection. In CVPR’05. pp.886-893. Liu, W., Anguelov, D., Erhan, C. Szegedym, C. & Reed, S. E. (2016). SSD: Single Shot. MultiBox Detector. CoRR.abs/1512.02325. M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn,& A. Zisserman. (2007). The PASCAL Visual Object Classes Challenge 2007 http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html (2016 年 10 月参照) Redmon, J. (2016).. Convolutional. Neural. https://github.com/pjreddie/darknet. Networks. (2016 年 11 月参照). Redmon, J.(2016). YOLO: Real-Time Object Detection http://pjreddie.com/darknet/yolo/ (2016 年 11 月参照) Redmon, J. Girshick, R., Divvala, S. & Farhadi, A. (2016). You Only Look Once:Unified, Real-Time Object Detection. In CVPR. Ren, S., He, K., Girshick, R. & Sun, J. (2015).Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. arXiv:1506.02640. Saito, S. (2016) Object Detection with Faster R-CNN in Chainer https://github.com/mitmul/chainer-faster-rcnn (2016 年 9 月参照). Zhang, J. Z. (2016).. MXNet port of SSD: Single Shot MultiBox Object Detector.. Reimplementation of https://github.com/weiliu89/caffe/tree/ssd https://github.com/zhreshold/mxnet-ssd (2016 年 11 月参照). 18.

(27) 謝辞 本研究においてご指導して頂いた白井英俊教授に心から感謝致します。また、様々な 意見を頂いた白井研究室の皆様に感謝致します。. 19.

(28) 付録 1 . [HOG 特徴量のプログラム] 特徴量のプログラム 「hog.py」 # Python 2/3 compatibility from __future__ import print_function import numpy as np import cv2. def inside(r, q): rx, ry, rw, rh = r qx, qy, qw, qh = q return rx > qx and ry > qy and rx + rw < qx + qw and ry + rh < qy + qh. def draw_detections(img, rects, thickness = 1): for x, y, w, h in rects: # the HOG detector returns slightly larger rectangles than the real objects. # so we slightly shrink the rectangles to get a nicer output. pad_w, pad_h = int(0.15*w), int(0.05*h) cv2.rectangle(img, (x+pad_w, y+pad_h), (x+w-pad_w, y+h-pad_h), (0, 255, 0), thickness). if __name__ == '__main__': import sys from glob import glob import itertools as it print(__doc__) hog = cv2.HOGDescriptor() hog.setSVMDetector( cv2.HOGDescriptor_getDefaultPeopleDetector() ) for fn in it.chain(*map(glob, default + sys.argv[1:])): 20.

(29) print(fn, ' - ',) try: img = cv2.imread(fn) if img is None: print('Failed to load image file:', fn) continue except: print('loading error') continue found, w = hog.detectMultiScale(img, winStride=(8,8), padding=(32,32), scale=1.05) found_filtered = [] for ri, r in enumerate(found): for qi, q in enumerate(found): if ri != qi and inside(r, q): break else: found_filtered.append(r) draw_detections(img, found) draw_detections(img, found_filtered, 3) print('%d (%d) found' % (len(found_filtered), len(found))) cv2.imshow('img', img) ch = 0xFF & cv2.waitKey() if ch == 27: break cv2.destroyAllWindows(). 21.

(30)

参照

関連したドキュメント

仏像に対する知識は、これまでの学校教育では必

○本時のねらい これまでの学習を基に、ユニットテーマについて話し合い、自分の考えをまとめる 学習活動 時間 主な発問、予想される生徒の姿

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

 学部生の頃、教育実習で当時東京で唯一手話を幼児期から用いていたろう学校に配

それに対して現行民法では︑要素の錯誤が発生した場合には錯誤による無効を承認している︒ここでいう要素の錯

1.まえがき 深層混合処理工法による改良柱体の耐久性については、長期にわたる強度の増加が確認されたいくつかの 事例がある1 )

文字を読むことに慣れていない小学校低学年 の学習者にとって,文字情報のみから物語世界