空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

MobileNetV2のお勉強

f:id:robonchu:20181124123412j:plain

やりたいこと

計算処理が軽いDNNの構築。低スペックのPCでもガンガン認識を回したい。

論文

  1. https://arxiv.org/abs/1704.04861

  2. [1801.04381] MobileNetV2: Inverted Residuals and Linear Bottlenecks

MobileNetsの理解

通常のCNNではチャンネル間の特徴・チャンネル内の特徴(画像内の特徴)をフィルターによってまとめて考えるのに対し、MobileNetsではそれらをdepthwiseとpointwiseの畳み込みに分離し、表現しパラメータを削減している。

また、処理速度と精度を調整するためのwidth multiplierとresolution multiplierというパラメータもうまく設計されている。

https://github.com/Zehaos/MobileNet/raw/master/figures/dwl_pwl.png

https://qiita-image-store.s3.amazonaws.com/0/108729/a461dde5-cf55-4e9b-aea0-f58082335001.png

参考: MobileNets: CNNのサイズ・計算コストの削減手法_翻訳・要約 - MUSCLE PROGRAMMER's BLOG

通常のCNN

https://qiita-image-store.s3.amazonaws.com/0/108729/5e4bb20f-127e-4d9e-10fb-110ba4694360.png

Depthwise Separable Convolution

https://qiita-image-store.s3.amazonaws.com/0/108729/72ca6fe6-f6a0-7dd3-3b24-7aa3aa185ab6.png

実装(TBD)

書き次第掲載予定。Tensorflowで書いてみようかな。

https://raw.githubusercontent.com/joshua19881228/my_blogs/master/Computer_Vision/Reading_Note/figures/Reading_Note_20170719_MobileNet_1.png

V2の理解(TBD)

参考スライド

参考ブログ

参考実装

Tensorflow

Pytorch

所感

軽量なDNNの工夫おもしろい。

低スペックPCで認識を回すために引き続きキャッチアップしよう。