物体検出による視覚補助システム T215085 若松大仁 白井研究室
研究目的 目が不自由な人が安全に歩行移動を行うための 支援システムの作製 目が不自由な人が安全に歩行移動を行うための 支援システムの作製 検出速度に優れたtinyYOLOv3を用いることで歩行時 に必要となる情報を取得し、歩行者に知らせる 身近になったスマートフォンアプリを媒体にすることで 誰でも簡単に使用できるようにする
研究手順 [1] 歩行者用信号機と点字ブロックなどを学習したYOLOモデルを作成 [2] macOS/iOSで使用できる形式へと変換し、Xcodeでコンパイルを行い iPhoneアプリを作成 [3] PC上で動画を再生し、その動画を入力とすることで動作確認 [4] 協力者数名にiPhoneをもって歩いてもらい、アンケートにより評価
物体検出システムYOLO YOLO(You Only Look Once)はリアルタイムで物体検出可能なアルゴリズム 従来の方式は、物体候補がある領域を特定(オブジェクト検出)し、 その後にそれぞれの領域に対しクラス分類を行っていた YOLOでは一度の特徴抽出によってオブジェクト検出とクラス分類を行う https://pjreddie.com/darknet/yolo/
YOLOの仕組み YOLOv1では、入力画像に対して 7×7個のセルに分割 (v2では13x13) 7×7個のセルに分割 (v2では13x13) 各セルごとに2個の小領域を設定(v2では5個)、 オブジェクト候補それぞれに対し位置情報を推定 分割したセルごとにクラス確率を計算 この2つの予測から、オブジェクト位置とそのクラスの決定を行う。 https://arxiv.org/pdf/1506.02640.pdf
[1] YOLOモデルの作成 YOLOモデルを作成するために 歩行者用信号機と点字ブロックの画像を 名古屋市周辺を歩いて約750枚ほど収集 収集した画像に対してアノテーション 右図のように対象物をマークし、「青信号」と ラベル付けする
[1] YOLOモデルの作成 アノテーション付きの画像データセットPASCALのVOC2007と ➁で作成したデータを合わせた計約5,500枚を学習用データとした 学内GPUサーバーにおいてYOLO Keras版を用いて学習させる。得られたモデ ルはHDF5形式で保存 学習モデルに対してテストデータにて確認を行う 145枚5クラス分類で精度 86.6%
[2] iPhoneアプリ化 学習したモデルHDF5をCoreMLで使用できる形式である.mlmodelへと変換 Xcodeにてプロジェクトを作成し、変換した.mlmodelをXcodeにドロップ することで自動的にSwift言語用のクラスなどを生成 XcodeでビルドすることでiPhoneなどで使用できるアプリが作れる ネットワークの状態に関わらず使用可能
アプリ化の問題発生 tinyYOLOv3はオブジェクト検出を行う層とクラス分類を行う層の 統合を行っている。Kerasではこの層の統合にLambda層を用いている。 Kerasの学習モデルであるHDF5はAppleが提供しているcoremltools というモジュールによって変換を行っている。現在のcoremltoolsは Lambdaに対応しておらず変換をすることが不可能 Appleアプリのプログラミング言語であるSwiftでLambda層の実装を 試みているが、時間がかかり、未完成
代替案 Lambda層の変換問題が未解決のため、 CoreMLで一般的に使われているモデルの採用を考えた 物体検出ではなく物体認識で代用 物体検出とは異なり、物体認識では位置情報を取得することはできない しかしクラス情報は取得可能 = 信号機や点字ブロックの認識が可能 モデルとして、一般的に用いられるVGG16を採用しファインチューニングする
VGG16 VGG16とは、16層からなる畳み込み ニューラルネットワーク VGG16は1000のクラスを分類することが 可能 出力層は識別したいクラス数に変更 学習用のデータセットを与えて再学習を行う ⇒ 少ないデータと時間で学習可能
car bb person tl_red tl_blue 結果 165枚5クラス分類で 精度は90.9%
今後の展望 音声によって使用者へ情報をアナウンスできるようにする リアルタイムでの補助システムが目的であるため、 SSDなど他の物体検出アルゴリズムでも試す CoreMLの利点はネットワーク環境に依存しない点であるため、 地下鉄内での点字ブロックによる階段等の誘導などにも反映
以上で発表を終わります。 質問、コメントをお願いします