{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/volo-vision-outlooker-for-visual-recognition","title":"VOLO: Vision Outlooker for Visual Recognition","arxiv_id":"2106.13112","date":"2021-06-24","proceeding":null,"authors":["Li Yuan","Qibin Hou","Zihang Jiang","Jiashi Feng","Shuicheng Yan"],"abstract":"Visual recognition has been dominated by convolutional neural networks (CNNs) for years. Though recently the prevailing vision transformers (ViTs) have shown great potential of self-attention based models in ImageNet classification, their performance is still inferior to that of the latest SOTA CNNs if no extra data are provided. In this work, we try to close the performance gap and demonstrate that attention-based models are indeed able to outperform CNNs. We find a major factor limiting the performance of ViTs for ImageNet classification is their low efficacy in encoding fine-level features into the token representations. To resolve this, we introduce a novel outlook attention and present a simple and general architecture, termed Vision Outlooker (VOLO). Unlike self-attention that focuses on global dependency modeling at a coarse level, the outlook attention efficiently encodes finer-level features and contexts into tokens, which is shown to be critically beneficial to recognition performance but largely ignored by the self-attention. Experiments show that our VOLO achieves 87.1% top-1 accuracy on ImageNet-1K classification, which is the first model exceeding 87% accuracy on this competitive benchmark, without using any extra training data In addition, the pre-trained VOLO transfers well to downstream tasks, such as semantic segmentation. We achieve 84.3% mIoU score on the cityscapes validation set and 54.3% on the ADE20K validation set. Code is available at \\url{https://github.com/sail-sg/volo}.","url_abs":"https://arxiv.org/abs/2106.13112v2","url_pdf":"https://arxiv.org/pdf/2106.13112v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/rwightman/pytorch-image-models","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/sail-sg/volo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/BR-IDL/PaddleViT/blob/main/image_classification/VOLO","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/volo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":null},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/mindspore-courses/External-Attention-MindSpore/blob/main/model/attention/OutlookAttention.py","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/mindspore-courses/External-Attention-MindSpore/blob/main/model/backbone/VOLO.py","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"volo-vision-outlooker-for-visual-recognition","repo_url":"https://github.com/xmu-xiaoma666/External-Attention-pytorch/blob/master/attention/OutlookAttention.py","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/domain-generalization-on-vizwiz","task":"Domain Generalization","dataset":"VizWiz-Classification","model":"VOLO-D5","rank_in_archive_order":1,"of":90,"metrics":{"Accuracy - All Images":"57.2","Accuracy - Clean Images":"59.7","Accuracy - Corrupted Images":"51.8"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"VOLO-D5","rank_in_archive_order":107,"of":1060,"metrics":{"GFLOPs":"412","Number of params":"296M","Top 1 Accuracy":"87.1%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"VOLO-D4","rank_in_archive_order":123,"of":1060,"metrics":{"GFLOPs":"197","Number of params":"193M","Top 1 Accuracy":"86.8%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"VOLO-D3","rank_in_archive_order":157,"of":1060,"metrics":{"GFLOPs":"67.9","Number of params":"86M","Top 1 Accuracy":"86.3%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"VOLO-D2","rank_in_archive_order":180,"of":1060,"metrics":{"Number of params":"59M","Top 1 Accuracy":"86%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"VOLO-D1","rank_in_archive_order":247,"of":1060,"metrics":{"Number of params":"27M","Top 1 Accuracy":"85.2%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-real","task":"Image Classification","dataset":"ImageNet ReaL","model":"VOLO-D5","rank_in_archive_order":15,"of":57,"metrics":{"Accuracy":"90.6%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-real","task":"Image Classification","dataset":"ImageNet ReaL","model":"VOLO-D4","rank_in_archive_order":18,"of":57,"metrics":{"Accuracy":"90.5%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-v2","task":"Image Classification","dataset":"ImageNet V2","model":"VOLO-D5","rank_in_archive_order":14,"of":33,"metrics":{"Top 1 Accuracy":"78"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-v2","task":"Image Classification","dataset":"ImageNet V2","model":"VOLO-D4","rank_in_archive_order":15,"of":33,"metrics":{"Top 1 Accuracy":"77.8"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-vizwiz-classification","task":"Image Classification","dataset":"VizWiz-Classification","model":"VOLO-D5","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy":"57.2"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-ade20k","task":"Semantic Segmentation","dataset":"ADE20K","model":"VOLO-D5","rank_in_archive_order":62,"of":235,"metrics":{"Validation mIoU":"54.3"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-cityscapes-val","task":"Semantic Segmentation","dataset":"Cityscapes val","model":"VOLO-D4 (MS, ImageNet1k pretrain)","rank_in_archive_order":18,"of":99,"metrics":{"mIoU":"84.3"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-graz-02","task":"Semantic Segmentation","dataset":"Graz-02","model":"VOLO-D5","rank_in_archive_order":1,"of":2,"metrics":{"Pixel Accuracy":"85"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.13112","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.13112"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rwightman/pytorch-image-models","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xmu-xiaoma666/External-Attention-pytorch/blob/master/attention/OutlookAttention.py","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/volo","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mindspore-courses/External-Attention-MindSpore/blob/main/model/backbone/VOLO.py","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sail-sg/volo","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mindspore-courses/External-Attention-MindSpore/blob/main/model/attention/OutlookAttention.py","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/BR-IDL/PaddleViT/blob/main/image_classification/VOLO","reach":null}],"summary":{"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":6,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ba7779c554538760","entry":"outlooker_blocks","repo":"sail-sg/volo","repo_kind":"official","path":"models/volo.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/models/volo.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ba7779c554538760"}},{"code_sha256_prefix":"87a34d0211098d18","entry":"get_block","repo":"sail-sg/volo","repo_kind":"official","path":"models/volo.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/models/volo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"87a34d0211098d18"}},{"code_sha256_prefix":"b66088e90761117d","entry":"rand_bbox","repo":"sail-sg/volo","repo_kind":"official","path":"models/volo.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/models/volo.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b66088e90761117d"}},{"code_sha256_prefix":"b3b01c5690550b6c","entry":"resize_pos_embed","repo":"sail-sg/volo","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b3b01c5690550b6c"}},{"code_sha256_prefix":"e0d164428f4b2b84","entry":"resize_pos_embed_4d","repo":"sail-sg/volo","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e0d164428f4b2b84"}},{"code_sha256_prefix":"6aee19396cb78860","entry":"resize_pos_embed_without_cls","repo":"sail-sg/volo","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/sail-sg/volo/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6aee19396cb78860"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}