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

2015 年度 卒業論文 表情認識システム 指導教員白井英俊教授 中京大学情報理工学部機械情報工学科 学籍番号 氏名 H 中川将成 (2016 年 1 月 )

N/A
N/A
Protected

Academic year: 2021

シェア "2015 年度 卒業論文 表情認識システム 指導教員白井英俊教授 中京大学情報理工学部機械情報工学科 学籍番号 氏名 H 中川将成 (2016 年 1 月 )"

Copied!
33
0
0

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

全文

(1)

2015 年度

卒業論文

表情認識システム

指導教員 白井英俊 教授

中京大学 情報理工学部 機械情報工学科

学籍番号 H412074

氏名 中川 将成

(2016 年 1 月)

(2)

卒業論文要旨

題目 表情認識システム

学籍番号 H412074 氏名 中川 将成 指導教員 白井 英俊

近年、笑顔を認識して自動的にシャッターをきる機能を搭載したデジタルカメラが発売 されており、機械が笑顔を認識する機能が実用化されるようになった。それもかなりの精 度で認識してくれたり、笑顔の認識の強さを変更できる機能までついている。しかし、笑 顔以外の表情を認識して何かしてくれる商品はまだ世の中には出回っていないように見受 けられる。そのような笑顔を認識する機能の仕組みに興味が沸いたと同時に、自分で表情 を認識する機能を持ったアプリケーションを作成してみたいと思ったことが本研究を進め るきっかけである。本研究を進めるにあたって、OpenCV という画像処理ライブラリと Labellio という深層学習を用いた Web プラットフォームの 2 つを用いて表情の認識を行っ た。 OpenCV を用いようと思った理由は、フリーソフトでありながら、物体認識の実績をい くつもあげており、ゼミでも導入の部分をふれたことがあったためである。 二つ目に Labellio を用いて研究を進めたが、これは画像分類器を手軽に作成できるとい うのがこれを採用した大きな理由である。 OpenCV の研究は次のように行った。まず分類器で分類するための元となる笑顔の画像 と笑顔ではない人の表情の画像を集め、一枚ずつ分類していく。分類した画像を分類器に 学習させ、出来た分類器に笑顔の画像とそうでない画像を分類器に通してシステム評価を するという流れになる。しかし、分類器がうまく動作せず、笑顔の画像を認識できなかっ た。そこで、白井教授や同期のゼミ生からの紹介で、比較的容易に画像分類器を作成でき る Labellio を用いて分類器を作成するに至った。 この Labellio を用いた研究は、まず笑った顔、悲しそうな顔、驚いている表情、怒って いる表情の 4 種類の画像を各 50 枚ほど用意し、Labellio 上にアップロードする。そしてア ップロードした画像をそれぞれ表情別に分類し、しばらくすると分類器が出来る。出来た 分類器の精度は 59%だったが、表情によって正しく認識される表情と誤って認識される表 情に差が出る結果となった。具体的には笑顔と悲しそうな顔の認識率は 80%だったのに対 し、怒っている顔の認識率は 60%、驚いている顔の認識率は 30%になった。これは怒って いる顔と驚いている顔の部分に似ているところがあり、お互いの認識率を低下させたため だと思われる。 笑顔とそれ以外の表情を認識するという観点では満足いく結果になったが、表情を認識 するという観点ではまだまだ問題が残る結果になった。

(3)
(4)

i

目 次

1. はじめに ... 1 2. 研究の構成 ... 3 2.1 OpenCV ... 3 2.2 OpenCV を用いた表情認識システムの構成 ... 3 3. 画像収集 ... 4 3.1 画像収集 ... 4 3.2 画像の分類 ... 4 4. 分類器の作成 ... 6 4.1 分類器の作成 ... 6 4.2 HAAR-LIKE 特徴量 ... 6 5. システム評価 ... 7 5.1 システム評価 ... 7 6. 考察 ... 8 6.1 考察 ... 8 6.2 改善案 ... 8 7. 修正研究計画 ... 9 7.1 修正研究計画 ... 9 7.2 深層学習 ... 9 7.3 Labellio ... 9 7.4 Labellio を用いた分類器の作成の手順 ... 10 8. Labellio を用いた研究結果 ... 11 8.1 分類器の精度 ... 11 9. 考察、展望 ... 14

(5)

ii 9.1 考察 ... 14 9.2 展望 ... 14 謝辞 ... 15 参考文献 ... 16 付録 ... 17

(6)

1

1.

はじめに

近年、笑顔を認識して自動的にシャッターをきる機能を搭載したデジタ ルカメラが発売されており、機械が笑顔を認識する機能が実用化されるよう になった。それもかなりの精度で認識してくれたり、笑顔の認識の強さを変 更できる機能までついている。しかし、笑顔以外の表情を認識して何かして くれる商品はまだ世の中には出回っていないように見受けられる。そのよう な笑顔を認識する機能の仕組みに興味が沸いたと同時に、自分で表情を認識 する機能を持ったアプリケーションを作成してみたいと思ったことが本研 究を進めるきっかけである。本研究を進めるにあたって OpenCV という画像 処理ライブラリと Labellio という深層学習を用いた Web プラットフォームの 2 つを用いて表情の認識を行った。 OpenCV を用いようと思った理由は、フリーソフトでありながら、物体認識 の実績をいくつもあげており、ゼミでも導入の部分をふれたことがあったた めである。 二つ目に Labellio を用いて研究を進めたが、これは画像分類器を手軽に作成 できるというのがこれを採用した大きな理由である。 OpenCV の研究は次のように行った。まず分類器で分類するための元となる 笑顔の画像と笑顔ではない人の表情の画像を集め、一枚ずつ分類していく。 分類した画像を分類器に学習させ、出来た分類器に笑顔の画像とそうでない 画像を分類器に通してシステム評価をするという流れになる。しかし、分類 器がうまく動作せず、笑顔の画像を認識できなかった。そこで、白井教授や 同期のゼミ生からの紹介で、比較的容易に画像分類器を作成できる Labellio を用いて分類器を作成するに至った。 この Labellio を用いた研究は、まず笑った顔、悲しそうな顔、驚いている表 情、怒っている表情の 4 種類の画像を各 50 枚ほど用意し、Labellio 上にアッ プロードする。そしてアップロードした画像をそれぞれ表情別に分類し、し ばらくすると分類器が出来る。出来た分類器の精度は 59%だったが、表情に よって正しく認識される表情と誤って認識される表情に差が出る結果とな った。具体的には笑顔と悲しそうな顔の認識率は 80%だったのに対し、怒っ ている顔の認識率は 60%、驚いている顔の認識率は 30%になった。これは怒 っている顔と驚いている顔の部分に似ているところがあり、お互いの認識率 を低下させたためだと思われる。 笑顔とそれ以外の表情を認識するという観点では満足いく結果になったが、 表情を認識するという観点ではまだまだ問題が残る結果になった。

(7)

2 第 2 章は OpenCV や OpenCV を用いた表情認識システムの構成について 説明する。第 3 章では、画像の収集方法や画像の枚数、画像の分類の仕方に ついて述べる。第 4 章では、分類した画像を用いて分類器を作成する手順や HAAL-LIKE 特徴量、LBP 特徴量、HOG 特徴量について述べる。第 5 章では、 第 4 章で作成した分類器に画像を通したときの反応について述べる。第 6 章 では分類器の問題点や改善案の提起を行う。第 7 章では Labellio や深層学習、 Labellio を用いた分類器を作成する手順を説明する。第 8 章では Labellio を 用いて作成した分類器の精度や各表情の認識率を示す。第 9 章では Labellio を用いて作成した分類器についての考察、展望について述べる。なお、本研 究で OpenCV の分類器を動かすためのプログラムや分類器をテストするた めの画像を付録に載せた。

(8)

3

2.研究の構成

本研究は、OpenCV や、Labellio を用いて表情認識を行うシステムについ て述べたものである。本章では、まず OpenCV やそれを用いた表情認識システ ムの構成について説明する。 2.1 OpenCV OpenCV とは、Intel によって開発された、画像認識に関連する機能のライ ブラリのことである。OpenCV は、コンピュータビジョンと呼ばれる画像認識・ 解析に関するコンピューティング技術が主な用途として想定され、画像処理、 モーション解析と物体追跡、パターン認識、機械学習などが実装されている。 2.2 OpenCV を用いた表情認識システムの構成 本研究で設計した表情認識システムの構成を図 1.1 に示す。まずいろいろな 表情の画像を集め、次に集めた画像を検出したい表情(たとえば「笑っている」 顔や「怒っている」顔」)の画像とそれ以外の表情の画像に分類する。この 2 種類 の画像を OpenCV の機械学習により分類器を作成する。そして、この分類器に 画像を与え、検出したい表情の画像かそうでない画像かを判定させる。 ここでは、検出対象の表情を笑顔とした。そのため、笑顔の画像をポジティ ブ、それ以外の画像をネガティブと呼ぶことにする。 画像収集 ↓ 画像の分類 ↓ 分類器の作成 ↓ システム評価 図 2.1 表情認識システムの構成

(9)

4

3. 画像収集と分類

本章では、画像の収集方法とその分類の仕方について述べた章である。 3.1 画像の収集 画像の収集は Google 画像検索を用いて一枚一枚保存していたが、時間と手 間がかかるため、ImageSpider という画像収集アプリケーションを用いた。こ の ImageSpider は収集したい画像のキーワードや画像のサイズ、種類(顔、イラ スト、写真など)、色、取得枚数などを指定すると Google から自動的に画像を 集めてくれるアプリケーションである。これを用いて、ポジティブの画像とネ ガティブの画像をあわせて約 5000 枚ほど集めた。 3.2 画像の分類 集めた画像を SHKH(2012)が提供しているツールを用いてラベル付けして いく。ポジティブの画像であれば、図 3.1 のように顔の部分を囲み、NEXT ボ タンをクリックする。ネガティブの画像であれば何もせず、単に NEXT ボタン をクリックする。これにより、画像ファイルをポジティブとネガティブに分類 すると同時に、識別する顔の範囲が記録されるというツールである。顔に回転 がかかっていたり、顔のイラストになっているものはどちらにも分類せずに除 いて、ポジティブの画像を 702 枚、ネガティブの画像 1255 枚集めた。

(10)

5

(11)

6

4. 分類器の作成

この章では、分類した画像を用いて分類器を作成する手順や HAAL-LIKE 特徴量、LBP 特徴量、HOG 特徴量について述べる。 4.1 分類器の作成 3 章で述べたツールによりラベル付けした画像は、ポジティブの場合は info.dat、ネガティブの場合は bg.txt というフォルダに出力される。そして、ポ ジティブサンプルだけを opencv_createsamples プログラムに渡す。 このプロ グラムによって生成されるファイルに kawaii.vec という名前をつけた。次に、 この kawaii.vec と ネガティブ画像ファイルのリスト bg.txt とをプログラム opencv_traincascade に渡してしばらく待つと分類器ができる。ただし、出力 ファイルが kawaii ディレクトリに保存されるので、プログラムの使用前に kawaii ディレクトリを作っておく必要がある。また、opencv_traincascade は サンプルデータを学習させるためのコマンドであり、分類器に用いる特徴量を HAAL-LIKE、LBP、HOG の中から選択することができる。本研究ではデフォ ルトで設定されている HAAL-LIKE 特徴量を用いた。 4.2 HAAR-LIKE 特徴量 HAAR-LIKE 特徴量とは、物体にある複数の明暗差を検出して、対象を検 出するものである。画像の一部分を切り出し、局所的な明暗差を算出し、 この局所的な特徴をいくつも組み合わせることで、物体を判別できるよう になる。OpenCV で用いられる特徴量は他にも LBP(Local Binary Pattern) 特徴量、HOG(Histogram of Oriented Gradients)特徴量がある。LBP 特徴 量は輝度の分布により特徴を捉え、HOG 輝度の勾配方向の分布により特徴を捉 える。

(12)

7

5. OpenCV による分類器の評価

この章では、4 章で作成した分類器の評価を行う 5.1 システム評価 4 章で述べた分類器に、学習させていないポジティブの画像を通して、ポジ ティブかネガティブかを判別できているかをプログラミング言語の Python を 用いて付録.1 のプログラミングで検証する。分類器にポジティブの画像(付録.2) を 10 枚通した結果、10 枚全てが False(認識できていない)という結果になった。

(13)

8

6. 考察と改善案

この章では、なぜ分類器が画像を認識できなかった理由を考察し、表情認 識システムの改良案を提示する。 6.1 考察 分類器が画像を認識できなかった理由としては、学習データが少なかったこ とがまず考えられる。また、ポジティブデータの生成(3 章参照)の際に、顔の領 域として耳や髪を含めるか含めないかという基準がぶれてしまったため、質が 統一できないデータとなったのではないか。このため、表情という小さな変化 に対応できるような HAAR-LIKE 特徴量を抽出できなかったのではないか、と 考えた。 6.2 表情システムの改良案 表情システムの改良案としては、サンプル数の増加、顔を囲うときの基準 を統一する、HAAL-LIKE 特徴量の代わりに第 4 章で説明した LBP 特徴量や HOG 特徴量を用いるということが上げられる。本研究の計画段階ではどの特徴 量が表情認識に向いているかは不明だったので HAAL-LIKE を用いたが、「HoG vs Haar-like feature ベンチマーク」 (http://d.hatena.ne.jp/htee2006/20080228/1204190976)によると、検出率は HOG 特徴量のほうが良いという結果になったという研究報告もある。

(14)

9

7. 修正研究計画

この章では、OpenCV を用いて出来なかった分類器の作成を、Labellio を用いて作成する手順や Labellio の説明、深層学習について述べる。 7.1 修正研究計画 OpenCV を用いて表情認識ができなかったので、今度は比較的容易に分類 器を作成できるという観点から、Labellio という深層学習を用いた Web プラッ トフォームを使って表情の判別を行うことを考えた。 7.2 深層学習 深層学習とは、多層構造のニューラルネットワークの機械学習のことであ る(人工知能学会 2015)。人工知能は人間と同じような計算や認識を機械にさせ る機械学習のことである。人間や動物の脳はニューロンと呼ばれる神経細胞が シナプスと呼ばれる結合部位を介して多層結合してできている、ということが 示されていて、それをニューラルネットワークといい、ニューラルネットワー クをモデルにして学習させるものが深層学習である。深層学習で用いられるニ ューラルネットワークはいくつかあり、以降の章で使用する Labellio では畳み 込みニューラルネットワークが使われている。畳み込みニューラルネットワー クは層の多いニューラルネットワークをうまく学習させるためのもので、タス クに応じた結合構造をあらかじめ作り込むことで、結合重みの自由度を減らし、 学習を容易にさせるというもののことをいう。畳み込みニューラルネットワー クは、ネオコグニトロン(吉塚、庄野、宮本、岡田、福島,2004)という生物の脳 の視覚神経系の構造からヒントを得て、S 層(単純細胞層)と C 層(複雑細胞層)を 組み合わせた 2 層の神経回路を基本モジュールとしたものが元となっている。S 層のノードは直前の層の出力の中に存在する特徴なパターンを検出し、C 層の ノードは S 層の出力を集めて C 層の出力とすることからプーリングと呼ばれる。 7.3 Labellio Labellio(https://www.labell.io/ja)とは、Alpaca 社がリリースした、深層学 習を用いた画像分類器を作成できる Web プラットフォームである。Labellio は、 AWS(Amazon Web Services)の GPU を搭載したマシンの上で動いていて、モデ ル学習自体は Caffe のライブラリで使っている。この Labellio を用いて笑顔や 悲しそうな顔などの表情の画像をもとに分類器を作成する。

(15)

10 7.4 Labellio を用いた分類器の作成の手順 本研究で設計した Labellio を用いた表情認識システムの構成を図 7.1 に示 す。まず、第 3 章で使用した Google 画像検索と ImageSpider で顔の画像を集 める。本研究では、笑顔、悲しそうな顔、怒っている顔、驚いている顔の 4 つ の表情を約 50 枚ずつ集めた。これらの画像を付録 3 に載せる。次に、Labellio に画像をアップロードし、分類するラベルに名前を付ける。最後に、集めた画 像を各表情に手動で分類する。分類が完了し、しばらく待つと分類器が完成す る。 画像の収集 ↓ 4 種類の表情の画像を約 50 枚ずつアップロード ↓ 分類させたいラベルの名前を付ける ↓ 画像をそれぞれのラベルに分別 ↓ システム評価 図.7.1 Labellio を用いた研究計画の流れ

(16)

11

8. Labellio を用いた研究結果

この章では、Labellio を用いた分類器の精度や各表情の認識率について述 べる。 8.1 分類器の精度 分類器が出来ると分類器の精度が出るようになっていて、本研究で作成し た分類器の精度は 59.06%であった。

図 8.1 accuracy が分類器の精度、loss_0 が訓練データ、loss_test がテストデ ータの学習曲線 次に、作成した分類器に各表情の画像を 10 枚ずつ分類器に通して評価した結果 を表に示す。ここで使用した画像は学習用には使用していない画像で、これら の画像を付録 4 に載せる。 表 8.1 Lebellio を用いて作成した表所システムの性能評価結果 出力 入力 8 2 0 0 2 8 0 0 1 1 6 2 3 1 3 3 怒った顔 驚いている顔 悲しそうな顔 笑顔 怒った顔 驚いている顔 笑顔 悲しそうな顔

(17)

12

以下に分類器に画像を通したときの代表例を示す。

(18)

13

図.8.3 驚いている顔の認識率。認識率は Odoroku の 0.50

図.8.4 悲しそうな顔の認識結果。Kanashii の 0.32

(19)

14

9. 考察、展望

この章では、分類器の考察や展望について述べる。 9.1 考察 笑顔や悲しそうな顔の認識率は 80%と高く、怒っている顔は 60%、驚いてい る顔の認識率は 30%という低い結果となった。笑顔や悲しそうな顔は顔のパーツ の変化が大きいため認識率が上がったと思われる。また、怒っている顔と驚い ている顔は似ている部分があり、実際に怒っている顔が驚いている顔に誤認識 されていることが多く、逆に、驚いている顔が怒っている顔に誤認識されてい ることが多かった。 9.2 展望 分類器の精度を向上させるためには、学習させる画像の枚数を増やしたり、 顔の画像に回転がかかっていないものや画質のいいものを使うなどして画像の 質を上げるなどが考えられる。また、Labellio は Caffe という C++で実装され GPU に対応した高速なディープラーニングのライブラリを用いており作成され たネットワーク構造は Caffe を用いてファインチューニングできる。そこで、 Labellio で作成されたネットワークをベースとして、その構造の中間層を増や すなど改造することで精度を向上させることができるかもしれない。

(20)

15

謝辞

本研究を行うにあたり、ご指導いただいた白井 英俊教授に感謝いたします。ま た、ゼミや卒業論文制作で助けていただいたゼミ生の皆様にも感謝いたします。

(21)

16

参考文献・資料

htee HoG vs Haar-like feature ベンチマーク

http://d.hatena.ne.jp/htee2006/20080228/1204190976 (2016年 1 月参

照)Kurima’s Page (2015) ImageSpider http://kurima.sakura.ne.jp/ (2015 年 10 月参照)

Labellio (2015) https://www.labell.io/ja (2015 年 10 月参照)

MkDocs (2015) Labellio とは? https://www.labell.io/static/manual/ja/ (2015 年 10 月

参照)

SHKH (2012). OpenCV 2.4.2 で分類器を作る

http://shkh.hatenablog.com/entry/2012/11/03/052251 (2015 年 9 月参照)

桑井 博之、豊沢 聡、永田 雅人 (2014) 『実践 OpenCV for Python』. 東京: カットシステム.

人工知能学会監修. (2015)。『深層学習: Deep Learning』. 東京:近代科学社. 吉塚武治、庄野逸、宮本弘之、岡田真人、福島邦彦(2007)『ネオコグニトロ

(22)

17

付録

1. プログラミング #!/usr/bin/env python import cv, cv2 tar = 'sample.jpg' im = cv2.imread(tar) cascade = cv2.CascadeClassifier('cascade.xml') #分類器の指定 faces = cascade.detectMultiScale(im, 1.1, 3) #物体の検出 for (x, y, w, h) in faces: print x, y, w, h

center = (int(x+w/2), int(y+h/2)) radius = int(w/2+5)

cv2.circle(im, center, radius, cv.RGB(255, 20, 147), thickness=3) #円の描 画

(23)

18

(24)

19 3.1 Labellio の学習用に用いた笑顔の画像

(25)
(26)

21

(27)
(28)

23 3.3 Labellio で学習用に用いた驚いた顔の画像

(29)

24

(30)
(31)

26

4.1 Labellio を評価する際に用いた笑顔の画像

(32)

27

(33)

28

図 8.1  accuracy が分類器の精度、loss_0 が訓練データ、loss_test がテストデ ータの学習曲線  次に、作成した分類器に各表情の画像を 10 枚ずつ分類器に通して評価した結果 を表に示す。ここで使用した画像は学習用には使用していない画像で、これら の画像を付録 4 に載せる。  表 8.1 Lebellio を用いて作成した表所システムの性能評価結果  出力 入力 8 2 0 0 2 8 0 0 1 1 6 2 3 1 3 3怒った顔 驚いている顔悲しそうな顔笑顔怒った顔驚いてい
図 8.2  笑顔の画像の認識結果。認識率は egao の 1.00

参照

関連したドキュメント

東京大学 大学院情報理工学系研究科 数理情報学専攻. hirai@mist.i.u-tokyo.ac.jp

情報理工学研究科 情報・通信工学専攻. 2012/7/12

関東総合通信局 東京電機大学 工学部電気電子工学科 電気通信システム 昭和62年3月以降

Instagram 等 Flickr 以外にも多くの画像共有サイトがあるにも 関わらず, Flickr を利用する研究が多いことには, 大きく分けて 2

理工学部・情報理工学部・生命科学部・薬学部 AO 英語基準入学試験【4 月入学】 国際関係学部・グローバル教養学部・情報理工学部 AO

学識経験者 小玉 祐一郎 神戸芸術工科大学 教授 学識経験者 小玉 祐 郎   神戸芸術工科大学  教授. 東京都

高機能材料特論 システム安全工学 セメント工学 ハ バイオテクノロジー 高機能材料プロセス特論 焼結固体反応論 セラミック科学 バイオプロセス工学.

講師:首都大学東京 システムデザイン学部 知能機械システムコース 准教授 三好 洋美先生 芝浦工業大学 システム理工学部 生命科学科 助教 中村