Laboro.AI

エンジニアコラム

ディープラーニングによる一般物体認識とビジネス応用<下>物体検出

代表取締役CTO 藤原 弘将
2019.12.7

概 要

一般物体認識について解説する当コラム。前回の「画像分類」に続き、今回は一般物体認識の分野の中でも「物体検出」と呼ばれる領域をテーマに、その概要や実用化のポイントを解説していきます。(*本コラムの内容は、『画像ラボ(2019年1月号)』への寄稿論文を抜粋編集したものです。)

目 次

物体検出の概要
物体検出の代表的なベンチマークと性能
物体検出の実用化の際の検討ポイント
物体検出の実用化事例の紹介
まとめ

物体検出の概要

物体検出とは、画像に写っている物体のカテゴリと共に、その物体が写っている場所をその物体を囲う四角形として出力する問題です。画像分類に比べて場所の推定が必要で、推定すべき項目が多い、一枚の画像に複数種類の物体が登場しうる、画像の一部に小さくしか登場しない物体を検出する必要がある、などの理由で難易度は大きく上がります。

手法としては精度の高いTwo-Stage法と、高速なSingle-Stage法の2種類があります。Two-Stage法は、物体が写っている領域の候補を検出するネットワーク(Region Proposal Network)と、領域候補のカテゴリを識別するネットワーク(前述の画像分類と同じモデルが使われる)を直列にに実行する方法です。代表的なモデルとしてFaster R-CNNやMask R-CNNがあります。Single-Stage法は、一つのネットワークで領域抽出とカテゴリ識別を同時に行う方法で、一般的に高速に動作します。代表的なモデルとしてSSD、YOLO、Retina Netがあります。Single-Stage法とTwo-Stage法は両方ともネットワークの構成要素(バックボーン)として画像分類のモデルを内包しています。原理的にバックボーンを別のものに置き換えることも可能です。例えばFaster R-CMMとSSDではVGG、Mask R-CNNとRetina NetではResNetまたResNeXt、YOLOではDarknetが使われています。

物体検出の代表的なベンチマークと性能

物体検出の代表的なデータセット及びコンペティションとして、Microsoftが開発するMicrosoft COCOのDetection Taskが挙げられます。COCO Detection Taskのデータでは、約20万枚の画像に対して人、自転車、車、信号、鳥、犬、テニスラケット、椅子、鏡などの80カテゴリで領域がアノテーションされています。COCOデータセットとDetection Task用の教師データの例がこれらです。

評価基準としては、mAP(mean Average Precision)と呼ばれる指標が使われます。mAPは、数値の意味の直感的な理解が難しい指標ですが誤解を恐れずに言うと、システムがあるカテゴリの物体だと判断して100検出してきた中で真にそのカテゴリの物体が含まれるものの枚数の平均値です。具体的な定義は下記のように説明できます。物体検出では、適合率(Precision)、すなわちシステムが検出したものの中で正しく検出できていたものの比率、及び再現率(Recall)、すなわち正解ラベルに検出対象が含まれているものの内、システムが正しく検出できないものの比率の2つの指標で評価できます。この指標はトレードオフの関係なり、閾値を調整することで調整できます。この二指標を単一指標で評価するため、閾値を変えて再現率を変化させた時の適合率の平均、すなわちAverage Precision(AP)を計算します。さらに、APを複数の対象カテゴリ毎に平均を取るとmAPが計算できます。

Microsoft COCOに対して、2017年の優勝モデルはmAPが52.5を達成しています。これは4つのモデルのアンサンブルであり、単一モデルの性能では50.5です。一方、論文等で発表され、かつ実装例が普及している有名なモデルでは、Two-Stage法ではMask R-CNNが39.8、Faster R-CNNが36.8、Single-Stage法では、Retina Netが40.8、YOLO v3が33.0、SSDが31.2となっています。

なお、物体検出は実行速度と精度のトレードオフがあり、mAP観点で精度が高いモデルが必ずしも優れているわけではないことに注意が必要です。実行速度としては、Two-Stage法ではMask R-CNNではmAPが38.2のときに一枚の処理時間が195ms、Single-Stage法ではYOLO v3でmAPが33.0のときに一枚の処理時間が51ms、SSDでmAPが28.0のときに61ms、mAPが31.2のときに125ms、RetinaNetはmAPが37.8のときに198msが報告されています。(これらはGPUとしてTesla M40またはTitan X使用時の結果。)

物体検出の実用化の際の検討ポイント

まず、物体検出の問題は、最新の結果でもmAPが50程度(検出してきたものの内、平均して半分は誤っている)であり、画像分類の問題に比べるとまだ精度向上の余地が大きい状況です。実際、COCOのDetection Taskにおいても、2015年から2017年の3年間でmAPが37.3、41.5、52.5と大幅な改善を見せており、領域として発展途上であることが窺えます。私の肌感覚としても、訓練されていない人間にも及ばない程度の結果になることが多く、その観点から、人間のエキスパートを置き換える目的より、例えば大量のカメラの24時間監視など、人間ではコスト的に難しいことを、精度は人間に及ばない前提で任せるといった使い方や、人間の判断材料として使うなどの使い方が向いていると言えます。

前述のように未だ発展途上の問題であることから、コンペティションの優勝モデルなどの最新手法の精度と数年前の手法の精度に大きな乖離があることにも注意が必要です。そのため精度が求められる場面では、実装例が普及している有名手法では不十分で、最新の論文ベースの手法を実装しなければならず、技術力が重要になります。例えば、SSDは著者がオフィシャルの実装を公開していることなどからビジネス現場でも幅広く使われているものの、Microsoft COCOに対するmAPが31.2と、今日では決して精度が高い手法とは言えません。もちろんSSDは元々高速性に特徴があるSingle-Stageの手法であり、実行速度を重視する場合は問題ありませんが、実行速度より精度が重要な場面には向いていないと言えます。

また、問題設定やデータによってチューニングの余地が大きく、通常の画像分類のモデルに含まれるパラメータに加えて、物体検出特有のパラメータを備えています。そのため、精度を出すためにはアルゴリズムの内容を深く理解する必要があります。例えば、Single-Stage法では、検出対象の物体サイズの縦横比率(アンカーと呼ばれる)をパラメータに持っており、検出対象のサイズに合わせて適切に設定しなければなりません(論文の数値はMicrosoft COCOのデータに最適化されていることが多い)。実際、Facebookが開発したMask R-CNNにおいても、単一モデルの精度が、2017年3月の論文公開時の精度は39.8でしたが、2017年9月のCOCO 2017 Object Detection Taskの投稿時の結果では精度が45.5まで向上しており、チューニングの余地が大きいことが窺えます。

上記を踏まえ、ビジネス現場で使う場合を考えると、①問題設定・使用用途の検討、②速度要件を考慮したモデルの選定、③チューニング、3つが重要です。①については、精度が人間には及ばないことを前提で問題設定を検討する必要があります。②については、物体検出は速度と性能のトレードオフが明確に存在し、必要な実行速度によって達成可能な性能が大きく変わります。例えば、動画をリアルタイムに処理する必要があるような場面では、高速なSingle-Stage法を、場合によってはさらに精度を落として高速化して使う必要がありますし、速度よりも精度が重要な場面では高性能なTwo-Stage法を必要に応じてモデルアンサンブルすることが必要になります。さらに、それぞれのカテゴリの中でもモデルによる性能差は大きく、開発工数との兼ね合いの中でなるべく精度の高いモデルを出すことが重要になります。

物体検出の実用化事例の紹介

物体検出の主要な応用の一つとして、工場等での外観検査があります。様々なベンダーが外観検査向けの物体検出ソリューションを提供しています。生産現場でのカメラ画像から不具合箇所を含む領域を自動で検出するといったものです。

自動運転や自律制御のための基礎技術としても物体検出は重要です。車の自動運転においても、物体検出が使用されます。また、新明和工業(株)は、成田国際空港、チャンギ空港及び徳島阿波踊り空港において、パナソニックの物体検出技術を活用した旅客搭乗橋自動装着システムを導入しました。搭乗橋に設置したカメラが航空機のドアの位置を検出し、機体をドアから10cm手前まで自動走行させるというものです(最終的な装着は手動)。

また、ドローン等での空撮画像とも、物体検出は親和性が高いです。シドニー工科大学と産業用ドローンメーカーのリトルリッパーグループは、ドローンによる近海の空撮画像からサメの存在を検知する技術を開発しました。サメに加えて、イルカやエイなどの他の動物や、ボートなどの物体を対象カテゴリとして検出します。既に実環境で運用されており、90%の確率でサメを正しく認識することに成功しました。他にも、ミツイワ(株)はドローンによる空撮画像からの密漁船の監視サービスにNTTコムウェアの物体検出技術を活用しています。

(引用:scimex

安心・安全の観点からの事故検知にも、物体検出技術が適用可能です。東京急行電鉄(株)は、パナソニックの画像解析技術を活用し、駅のホームでの人物検出により事故軽減を図るシステムを運用しています。具体的には、ホーム上の人を検知することで線路への落下やその可能性のある物を検知し、係員に通知するというものです。

(引用:東京急行電鉄

医療分野にも応用が可能です。ブタペスト大の研究グループはマンモグラフィによるレントゲン写真から、物体検出技術を用いて乳がんの病変領域検出を試みました。アルゴリズムとしてFaster R-CNNを用い、公開データベースに対して95%の識別率(AUC)を達成しました。同様に胸部レントゲン写真からの肺がんの検出や、CT画像からの病変の検出等も行われています。

(引用:Dezso Ribli, et.al., Detecting and classifying lesions in mammograms with Deep Learning, Scientific Reports (2018))

まとめ

上下2本建てでお届けした当コラムでは、一般物体認識と呼ばれる技術領域を対象にディープラーニング技術の概要と、実用化に際しての検討ポイントについて述べてきました。現時点ではディープラーニングを用いた一般物体認識は、訓練されていない人間程度(場合によってはそれ以下)の能力になる場合が多く、それを前提としたビジネス導入のやり方を検討する必要があります。ですが、これまでに述べてきたように、未だ技術は急速に進化しつつあり、データやタスクの難易度によって訓練された人間と同程度の性能を実現できる日も近いと思われます。その時には実用化へのハードルが大きく下がり、活用事例が爆発的に増加することが予想されます。

続けて読む

▶︎ディープラーニングによる一般物体認識とビジネス応用<上>画像分類