用紙リンク:改善と拡張機能を備えた最新のTPAMIバージョン(以前のICCVバージョン)。
Zilong Huang、Xinggang Wang、Yunchao Wei、Lichao Huang、Chang Huang、Humphrey Shi、Wenyu Liu、Thomas S. Huang。
2021/02:CCNETの純粋なPython実装は、Branch Pure-Pythonでリリースされます。 Serge-Weihaoに感謝します。
2019/08:新しいバージョンのCCNETは、Pytorch 1.0以降をサポートするBranch Pytorch-1.1でリリースされ、マルチプロセッシングトレーニングとテストの分散この現在のコードは、CCNET ICCVバージョンの都市景観に関する実験の実装です。オープンソースのPytorchセグメンテーションツールボックスに基づいてメソッドを実装します。
2018/12:コードを更新し、r = 1,2でトレーニングモデルをリリースします。 R = 2の訓練されたモデルは、VALセットで79.74%、テストセットで79.01%を単一スケールテストで達成します。
2018/11:コードがリリースされました。
長距離依存関係は、視覚的な理解の問題に役立つ有用なコンテキスト情報をキャプチャできます。この作業では、このような重要な情報をより効果的で効率的な方法で取得するためのCriss-Cross Network(CCNET)を提案します。具体的には、各ピクセルについて、私たちのCCNETは、新しいCriss-Crossの注意モジュールを通るCriss-Crossパス上の周囲のピクセルのコンテキスト情報を収穫できます。さらに再発操作を行うことにより、各ピクセルは最終的にすべてのピクセルから長距離依存関係をキャプチャできます。全体として、私たちのCCNETは次のメリットを備えています。
セマンティックセグメンテーションのための提案されたCCNETの概要。提案された再発性の断点の注意は、入力機能マップHおよび出力機能マップH ''として、すべてのピクセルから豊富で密なコンテキスト情報を取得します。再発性交差注意モジュールは、r = 2ループに展開できます。このループでは、すべてのCRISS-CROSS ATTENTIONモジュールがパラメーターを共有します。
RCCAをより深く理解するために、図に示すように、学習した注意マスクを視覚化します。各入力画像について、1つのポイント(緑色のクロス)を選択し、列2と3のr = 1とr = 2の場合、対応する注意マップを表示します。図では、ターゲットポイントの交差点パスからのコンテキスト情報のみが、r = 1の場合にキャプチャされます。もう1つのCRISS-CROSSモジュールを採用することにより、つまり、 r = 2 RCCAは、 r = 1のものと比較して、最終的に密度が高いコンテキスト情報を集計できます。また、注意モジュールがセマンティックな類似性と長距離依存関係をキャプチャできることを観察します。
CCNETはMITライセンスの下でリリースされます(詳細については、ライセンスファイルを参照してください)。
CCNETが研究で役立つと思う場合は、引用を検討してください。
@article { huang2020ccnet ,
author = { Huang, Zilong and Wang, Xinggang and Wei, Yunchao and Huang, Lichao and Shi, Humphrey and Liu, Wenyu and Huang, Thomas S. } ,
journal = { IEEE Transactions on Pattern Analysis and Machine Intelligence } ,
title = { CCNet: Criss-Cross Attention for Semantic Segmentation } ,
year = { 2020 } ,
month = { } ,
volume = { } ,
number = { } ,
pages = { 1-1 } ,
keywords = { Semantic Segmentation;Graph Attention;Criss-Cross Network;Context Modeling } ,
doi = { 10.1109/TPAMI.2020.3007032 } ,
ISSN = { 1939-3539 } }
@article { huang2018ccnet ,
title = { CCNet: Criss-Cross Attention for Semantic Segmentation } ,
author = { Huang, Zilong and Wang, Xinggang and Huang, Lichao and Huang, Chang and Wei, Yunchao and Liu, Wenyu } ,
booktitle = { ICCV } ,
year = { 2019 } }pytorch == 0.4.0または0.4.1をインストールするには、https://github.com/pytorch/pytorch#installationを参照してください。
4 x 12g gpus(例:Titan XP)
Python 3.6
GCC(GCC)4.8.5
CUDA 8.0
# Install **Pytorch**
$ conda install pytorch torchvision -c pytorch
# Install **Apex**
$ git clone https://github.com/NVIDIA/apex
$ cd apex
$ pip install -v --no-cache-dir --global-option= " --cpp_ext " --global-option= " --cuda_ext " ./
# Install **Inplace-ABN**
$ git clone https://github.com/mapillary/inplace_abn.git
$ cd inplace_abn
$ python setup.py installplesaeはcityscapesデータセットをダウンロードし、データセットをYOUR_CS_PATHに解凍します。
MIT Imagenet事前に処理されたResnet101-Imagenet.pthをダウンロードして、 datasetフォルダーに入れてください。
トレーニングスクリプト。
python train.py --data-dir ${YOUR_CS_PATH} --random-mirror --random-scale --restore-from ./dataset/resnet101-imagenet.pth --gpu 0,1,2,3 --learning-rate 1e-2 --input-size 769,769 --weight-decay 1e-4 --batch-size 8 --num-steps 60000 --recurrence 2balとテストセットのパフォーマンスギャップを削減するために、 OHEMフラグを開くこともできます。
python train.py --data-dir ${YOUR_CS_PATH} --random-mirror --random-scale --restore-from ./dataset/resnet101-imagenet.pth --gpu 0,1,2,3 --learning-rate 1e-2 --input-size 769,769 --weight-decay 1e-4 --batch-size 8 --num-steps 60000 --recurrence 2 --ohem 1 --ohem-thres 0.7 --ohem-keep 100000評価スクリプト。
python evaluate.py --data-dir ${YOUR_CS_PATH} --restore-from snapshots/CS_scenes_60000.pth --gpu 0 --recurrence 2すべて1つ。
./run_local.sh YOUR_CS_PATHCityScape DatasetでR = 1,2でCCNETを個別に実行し、次の表に結果を報告します。検証/テストセット精度ギャップ(1〜2%)についていくつかの問題があることに注意してください。小さなギャップを達成するか、OHEMフラグをオンにするために複数回走る必要があります。 OHEMフラグをオンにすると、VALセットのパフォーマンスが向上する可能性があります。一般的に、トレーニングステップでOHEMを使用することをお勧めします。
ファイントレーニングセットですべてのモデルをトレーニングし、テストに単一スケールを使用します。 r = 2 79.74の訓練されたモデルは、シングルスケールテストでCityscapeテストで約79.01 miouを達成することもできます(時間を節約するには、画像全体を入力として使用します)。
| r | Cityscape valセットのmiou(単一スケール) | リンク |
|---|---|---|
| 1 | 77.31& 77.91 &76.89 | 77.91 |
| 2 | 79.74 &79.22&78.40 | 79.74 |
| 2+ohem | 78.67& 80.00 &79.83 | 80.00 |
NSFC、ARC Decra DE190101315、ARC DP200100938、Hust-Horizon Computer Vision ResearchCenter、およびIBM-Illinois Center for Cognitive Computingsystems Research(C3SR)に感謝します。
自己関節に関連する方法:
オブジェクトコンテキストネットワーク
デュアル注意ネットワーク
セマンティックセグメンテーションツールボックス:
Pytorch-Segmentation-Toolbox
セマンティックセグメンテーション-Pytorch
Pytorch-Encoding