روابط الورق: أحدث إصدار من TPAMI مع التحسينات والتمديدات ( إصدار ICCV السابق ).
بقلم Zilong Huang و Xinggang Wang و Yunchao Wei و Lichao Huang و Chang Huang و Humphrey Shi و Wenyu Liu و Thomas S. Huang.
2021/02: تم إصدار تنفيذ Python النقي لـ CCNET في فرع Pure-Python. شكرا سيرج ويهاو.
2019/08: يتم إصدار الإصدار الجديد CCNET على فرع Pytorch-1.1 الذي يدعم Pytorch 1.0 أو الأحدث وتوزيع التدريب متعدد المعالجة واختبار هذا الرمز الحالي هو تطبيق للتجارب على مناظر المدينة في إصدار CCNET ICCV. نقوم بتنفيذ طريقتنا استنادًا إلى صندوق أدوات تجزئة Pytorch مفتوح المصدر.
2018/12: تجديد الكود والإصدار النماذج المدربة مع r = 1،2. يحقق النموذج المدرب مع R = 2 79.74 ٪ على مجموعة VAL و 79.01 ٪ على اختبار الاختبار مع اختبار مقياس واحد.
2018/11: تم إصدار الرمز.
يمكن للتبعيات طويلة المدى التقاط معلومات سياقية مفيدة للاستفادة من مشاكل الفهم البصري. في هذا العمل ، نقترح شبكة متقاطعة (CCNET) للحصول على هذه المعلومات المهمة من خلال طريقة أكثر فعالية وكفاءة. بشكل ملموس ، لكل بكسل ، يمكن لـ CCNET حصاد المعلومات السياقية للبكسلات المحيطة بها على مسار Criss-Cross من خلال وحدة انتباه جديدة من Criss-Cross. من خلال إجراء عملية متكررة أخرى ، يمكن لكل بكسل أن يلتقط التبعيات بعيدة المدى من جميع البكسلات. بشكل عام ، CCNET لدينا مع المزايا التالية:
نظرة عامة على CCNET المقترحة للتجزئة الدلالية. يأخذ الانتباه المتكرر المتكرر المقترح مع خرائط ميزة الإدخال H و MUTTERS MAPS H '' والتي تحصل على معلومات سياقية غنية وكثيفة من جميع البكسلات. يمكن إلغاء وحدة الانتباه المتكررة المتكررة في R = 2 حلقات ، حيث تشترك جميع وحدات الاهتمام المتقاطع في المعلمات.
للحصول على فهم أعمق لـ RCCA لدينا ، نتصور أقنعة الانتباه المستفادة كما هو موضح في الشكل. لكل صورة إدخال ، نختار نقطة واحدة (تقاطع أخضر) ونظهر خرائط الانتباه المقابلة عند r = 1 و r = 2 في الأعمدة 2 و 3 على التوالي. في الشكل ، يتم التقاط المعلومات السياقية فقط من مسار النقطة المستهدفة عند R = 1 . من خلال تبني وحدة واحدة أخرى من الشقوق ، أي ، r = 2 يمكن لـ RCCA أخيرًا تجميع المعلومات السياقية الكثيفة والغنية مقارنة مع R = 1 . علاوة على ذلك ، نلاحظ أن وحدة الانتباه يمكن أن تلتقط التشابه الدلالي وتبعيات طويلة المدى.
يتم إصدار CCNET ضمن ترخيص معهد ماساتشوستس للتكنولوجيا (راجع ملف الترخيص للحصول على التفاصيل).
إذا وجدت 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 × 12G وحدات معالجة الرسومات ( مثل Titan XP)
بيثون 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 قم بتنزيل مجموعة بيانات CityScapes وفك ضغط مجموعة البيانات في YOUR_CS_PATH .
يرجى تنزيل MIT ImageNet PretRained 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 2【 أوصي 】 يمكنك أيضًا فتح علامة OHEM لتقليل فجوة الأداء بين VAL ومجموعة الاختبار.
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الكل في واحد.
./run_local.sh YOUR_CS_PATHنقوم بتشغيل CCNET مع R = 1،2 ثلاث مرات على مجموعة بيانات Cityscape بشكل منفصل ونبلغ عن النتائج في الجدول التالي. يرجى ملاحظة وجود بعض المشكلات حول فجوة مجموعة التحقق/الاختبار (1 ~ 2 ٪). تحتاج إلى تشغيل عدة مرات لتحقيق فجوة صغيرة أو تشغيل علامة OHEM. يمكن تشغيل علامة OHEM أيضًا تحسين الأداء على مجموعة VAL. بشكل عام , أوصيك باستخدام OHEM في خطوة التدريب.
نقوم بتدريب جميع النماذج على مجموعة التدريب الدقيقة ونستخدم المقياس الفردي للاختبار. يمكن أن يحقق النموذج المدرب مع R = 2 79.74 حوالي 79.01 MIOU على اختبار اختبار Cityscape مع اختبار المقياس الفردي (لتوفير الوقت ، نستخدم الصورة بأكملها كمدخل).
| ص | Miou على مجموعة Cityscape Val (مقياس واحد) | وصلة |
|---|---|---|
| 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-Ellinois لأبحاث النظم المعرفية (C3SR).
الأساليب المتعلقة بالاعتداء الذاتي:
شبكة سياق الكائن
شبكة الانتباه المزدوجة
مربعات أدوات التجزئة الدلالية:
pytorch-تجميد toolbox
تجزئة الدلالية بيتورش
ترميز Pytorch