{"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/roto-translation-equivariant-convolutional","title":"Roto-Translation Equivariant Convolutional Networks: Application to Histopathology Image Analysis","arxiv_id":"2002.08725","date":"2020-02-20","proceeding":null,"authors":["Maxime W. Lafarge","Erik J. Bekkers","Josien P. W. Pluim","Remco Duits","Mitko Veta"],"abstract":"Rotation-invariance is a desired property of machine-learning models for medical image analysis and in particular for computational pathology applications. We propose a framework to encode the geometric structure of the special Euclidean motion group SE(2) in convolutional networks to yield translation and rotation equivariance via the introduction of SE(2)-group convolution layers. This structure enables models to learn feature representations with a discretized orientation dimension that guarantees that their outputs are invariant under a discrete set of rotations. Conventional approaches for rotation invariance rely mostly on data augmentation, but this does not guarantee the robustness of the output when the input is rotated. At that, trained conventional CNNs may require test-time rotation augmentation to reach their full capability. This study is focused on histopathology image analysis applications for which it is desirable that the arbitrary global orientation information of the imaged tissues is not captured by the machine learning models. The proposed framework is evaluated on three different histopathology image analysis tasks (mitosis detection, nuclei segmentation and tumor classification). We present a comparative analysis for each problem and show that consistent increase of performances can be achieved when using the proposed framework.","url_abs":"https://arxiv.org/abs/2002.08725v1","url_pdf":"https://arxiv.org/pdf/2002.08725v1.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":"roto-translation-equivariant-convolutional","repo_url":"https://github.com/tueimage/se2cnn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"breast-tumour-classification","task_name":"Breast Tumour Classification"},{"task_slug":"colorectal-gland-segmentation","task_name":"Colorectal Gland Segmentation:"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"medical-image-analysis","task_name":"Medical Image Analysis"},{"task_slug":"mitosis-detection","task_name":"Mitosis Detection"},{"task_slug":"multi-tissue-nucleus-segmentation","task_name":"Multi-tissue Nucleus Segmentation"},{"task_slug":"translation","task_name":"Translation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/breast-tumour-classification-on-pcam","task":"Breast Tumour Classification","dataset":"PCam","model":"G-CNN (C8)","rank_in_archive_order":5,"of":16,"metrics":{"AUC":"0.968"},"uses_additional_data":false},{"leaderboard":"/sota/breast-tumour-classification-on-pcam","task":"Breast Tumour Classification","dataset":"PCam","model":"G-CNN (C12)","rank_in_archive_order":9,"of":16,"metrics":{"AUC":"0.962"},"uses_additional_data":false},{"leaderboard":"/sota/colorectal-gland-segmentation-on-crag","task":"Colorectal Gland Segmentation:","dataset":"CRAG","model":"G-CNN (C8)","rank_in_archive_order":7,"of":15,"metrics":{"Dice":"0.866","F1-score":"0.837","Hausdorff Distance (mm)":"157.4"},"uses_additional_data":false},{"leaderboard":"/sota/colorectal-gland-segmentation-on-crag","task":"Colorectal Gland Segmentation:","dataset":"CRAG","model":"G-CNN (C12)","rank_in_archive_order":11,"of":15,"metrics":{"Dice":"0.834","F1-score":"0.818","Hausdorff Distance (mm)":"192.2"},"uses_additional_data":false},{"leaderboard":"/sota/multi-tissue-nucleus-segmentation-on-kumar","task":"Multi-tissue Nucleus Segmentation","dataset":"Kumar","model":"G-CNN (C12)","rank_in_archive_order":7,"of":18,"metrics":{"Dice":"0.814","Hausdorff Distance (mm)":"53.4"},"uses_additional_data":false},{"leaderboard":"/sota/multi-tissue-nucleus-segmentation-on-kumar","task":"Multi-tissue Nucleus Segmentation","dataset":"Kumar","model":"G-CNN (C12)","rank_in_archive_order":9,"of":18,"metrics":{"Dice":"0.811","Hausdorff Distance (mm)":"51.9"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2002.08725","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.08725"}},"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/tueimage/se2cnn","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":"b6acdd3f853d8884","entry":"CoordRotationInv","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/rotation_matrix.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/rotation_matrix.py","link_basis":"harvester_set","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":"b6acdd3f853d8884"}},{"code_sha256_prefix":"14b669b1c60bc1ef","entry":"LinIntIndicesAndWeights","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/rotation_matrix.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/rotation_matrix.py","link_basis":"harvester_set","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":"14b669b1c60bc1ef"}},{"code_sha256_prefix":"dcd0c4c769494f73","entry":"ToLinearIndex","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/rotation_matrix.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/rotation_matrix.py","link_basis":"harvester_set","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":"dcd0c4c769494f73"}},{"code_sha256_prefix":"38519922bb8f23b9","entry":"se2n_se2n","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/layers.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/layers.py","link_basis":"harvester_set","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":"38519922bb8f23b9"}},{"code_sha256_prefix":"a8a721cdc3c98204","entry":"spatial_max_pool","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/layers.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/layers.py","link_basis":"harvester_set","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":"a8a721cdc3c98204"}},{"code_sha256_prefix":"cc67386b2aff8d51","entry":"z2_se2n","repo":"tueimage/se2cnn","repo_kind":"official","path":"se2cnn/layers.py","file_url":"https://github.com/tueimage/se2cnn/blob/HEAD/se2cnn/layers.py","link_basis":"harvester_set","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":"cc67386b2aff8d51"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}