Tautan kertas: Versi TPAMI terbaru kami dengan perbaikan dan ekstensi ( versi ICCV sebelumnya ).
Oleh Zilong Huang, Xinggang Wang, Yunchao Wei, Lichao Huang, Chang Huang, Humphrey Shi, Wenyu Liu dan Thomas S. Huang.
2021/02: Implementasi Python murni CCNET dirilis dalam cabang murni-python. Terima kasih Serge-Weihao.
2019/08: Versi baru CCNET dirilis di cabang Pytorch-1..1 yang mendukung Pytorch 1.0 atau yang lebih baru dan didistribusikan pelatihan multiprosesing dan menguji kode saat ini adalah implementasi dari eksperimen pada Cityscapes dalam versi CCNET ICCV. Kami mengimplementasikan metode kami berdasarkan Open Source Pytorch Segmentation Toolbox.
2018/12: Perbarui kode dan rilis model terlatih dengan r = 1,2. Model terlatih dengan r = 2 mencapai 79,74% pada set Val dan 79,01% pada set tes dengan pengujian skala tunggal.
2018/11: Kode dirilis.
Ketergantungan jarak jauh dapat menangkap informasi kontekstual yang berguna untuk menguntungkan masalah pemahaman visual. Dalam karya ini, kami mengusulkan jaringan silang-silang (CCNET) untuk mendapatkan informasi penting seperti itu melalui cara yang lebih efektif dan efisien. Secara konkret, untuk setiap piksel, CCNET kami dapat memanen informasi kontekstual dari piksel di sekitarnya di jalur silang-silang melalui modul perhatian novel-silang. Dengan mengambil operasi berulang lebih lanjut, setiap piksel akhirnya dapat menangkap ketergantungan jarak jauh dari semua piksel. Secara keseluruhan, CCNET kami dengan manfaat berikut:
Tinjauan umum CCNET yang diusulkan untuk segmentasi semantik. Perhatian silang-silang berulang yang diusulkan mengambil sebagai peta fitur input dan peta fitur output h '' yang mendapatkan informasi kontekstual yang kaya dan padat dari semua piksel. Modul perhatian silang-silang berulang dapat dibuka ke r = 2 loop, di mana semua modul perhatian silang-silang berbagi parameter.
Untuk mendapatkan pemahaman yang lebih dalam tentang RCCA kami, kami memvisualisasikan topeng perhatian yang dipelajari seperti yang ditunjukkan pada gambar. Untuk setiap gambar input, kami memilih satu titik (Green Cross) dan menunjukkan peta perhatian yang sesuai ketika r = 1 dan r = 2 di kolom 2 dan 3 masing -masing. Pada gambar, hanya informasi kontekstual dari jalur silang dari titik target yang ditangkap ketika r = 1 . Dengan mengadopsi satu lagi modul silang-silang, yaitu, r = 2 RCCA akhirnya dapat mengumpulkan informasi kontekstual yang lebih padat dan lebih kaya dibandingkan dengan r = 1 . Selain itu, kami mengamati bahwa modul perhatian dapat menangkap kesamaan semantik dan ketergantungan jarak jauh.
CCNET dirilis di bawah lisensi MIT (lihat file lisensi untuk detailnya).
Jika Anda menemukan CCNET berguna dalam penelitian Anda, harap pertimbangkan mengutip:
@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 } } Untuk menginstal pytorch == 0.4.0 atau 0.4.1, silakan merujuk ke https://github.com/pytorch/pytorch#installation.
4 x 12g GPU ( misalnya 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 install Plesae Unduh Dataset CityScapes dan unzip dataset ke YOUR_CS_PATH .
Silakan unduh mit imagenet pretrained resnet101-imagenet.pth, dan masukkan ke folder dataset .
Skrip pelatihan.
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【 Rekomendasikan 】 Anda juga dapat membuka bendera OHEM untuk mengurangi kesenjangan kinerja antara Val dan set tes.
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 100000Skrip evaluasi.
python evaluate.py --data-dir ${YOUR_CS_PATH} --restore-from snapshots/CS_scenes_60000.pth --gpu 0 --recurrence 2Semua dalam satu.
./run_local.sh YOUR_CS_PATHKami menjalankan CCNET dengan R = 1,2 tiga kali pada dataset CityScape secara terpisah dan melaporkan hasilnya di tabel berikut. Harap dicatat ada beberapa masalah tentang kesenjangan akurasi set validasi/pengujian (1 ~ 2%). Anda perlu berjalan beberapa kali untuk mencapai celah kecil atau menyalakan bendera Ohem. Menghidupkan bendera Ohem juga dapat meningkatkan kinerja pada set Val. Secara umum, saya sarankan Anda menggunakan ohem dalam langkah pelatihan.
Kami melatih semua model pada set pelatihan yang bagus dan menggunakan skala tunggal untuk pengujian. Model terlatih dengan r = 2 79,74 juga dapat mencapai sekitar 79,01 MIOU pada tes CityScape dengan pengujian skala tunggal (untuk menghemat waktu, kami menggunakan seluruh gambar sebagai input).
| R | MIOU ON CityScape Val Set (skala tunggal) | Link |
|---|---|---|
| 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 |
Kami berterima kasih kepada NSFC, ARC Decra DE190101315, ARC DP200100938, Hust-Horizon Computer Vision ResearchCenter, dan IBM-Illinois Center for Cognitive Computingsystems Research (C3SR).
Metode terkait perhatian diri:
Jaringan konteks objek
Jaringan Perhatian Ganda
Kotak alat segmentasi semantik:
Pytorch-Semmentation-Toolbox
semantik-segmentasi-pytorch
Pytorch-encoding