Jetson TX2のセットアップに役立つリンク集
最近バイトでJetsonを使っているので役立ったサイトのリンクをまとめます。
セットアップに役立つサイト
nvidia公式ユーザーガイド
インストール手順(スクショあり)
インストール手順(スクショなし)
インストール動画
セットアップ後に役立ちそうなサイト
caffeのインストール(めっちゃ簡単)
http://www.jetsonhacks.com/2017/03/24/caffe-deep-learning-framework-nvidia-jetson-tx2/
faster R-CNN (caffeの実装) のセットアップ(めっちゃわかりやすかった)
https://github.com/eiichiromomma/CVMLAB/wiki/DeepLearning-py-faster-rcnn
各種デモ
カメラモジュールの販売について
インストール後の作業
高速化
ディープラーニング セグメンテーション手法のまとめ
Fully Convolutional Networks for Semantic Segmentation
SegNet
一つはネットワーク構造にあります。FCNのネットワークの、全結合層を畳み込み層に置き換えた部分は計算量が多くなっていて学習に時間がかかったりメモリを多くとる原因となっていました。SegNetでは全結合層だった部分を削除したEncoder-Decoder構造を採用しています。これによって高速化、省メモリ化を達成できたようです。
SegNetの工夫は右半分のDecoder部分にもあります。Decoder部分のMaxPoolingで採用した値の場所を記録し、upsampling時にその場所を使って特徴マップを拡大します。これにより位置情報を正確化させているのです。
追記
先日さらにSegNetの論文を読み直したところ、実験上の工夫を発見しました。
セグメンテーションの課題ではどうしてもクラスごとにピクセル数の偏りが出てしまいます。そこで、採用されたのがClass balancing と言う手法です。クロスエントロピー誤差を取る時に各クラスのピクセル数に応じてその大きさを重み付けします。SegNetの論文では各クラスのピクセル数とその中央値の割合を使って行っています。これを行わないと各クラスのピクセル数の割合が事前確率のようになってしまい結果が引っ張られてしまいます。
U-net
U-netは医療画像のセグメンテーションのために提案されました 。セグメンテーションのタスクにおいて現時点でのstate-of-the-artと言われていてKaggleコンテストの優勝者が使っていたりします。
U-netではSegNetのようなEncoder-Decoder構造をしていて、Encoder部分とDecoder部分の対応した解像度の特徴マップをつないでいます。論文では図がU型に配置されていてこれがU-netの名前の由来だそうです。
その他の工夫としては、重み付けロスの採用があります。
医療画像のセグメンテーションにおいてオブジェクト同士の境界をはっきり出すことは重要です。そのため、境界部分のロスを大きくし、はっきりと判読できるよう工夫しています。つまり、タスクの目的にあった画像の前処理が必要ということです。かなり骨の折れる(辛い)作業になりそうですが、ディープラーニングの課題において前処理は重要なんですね。