{"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/collaborative-discrepancy-optimization-for-1","title":"Collaborative Discrepancy Optimization for Reliable Image Anomaly Localization","arxiv_id":"2302.08769","date":"2023-02-17","proceeding":"IEEE Transactions on Industrial Informatics 2023 2","authors":["Yunkang Cao","Xiaohao Xu","Zhaoge Liu","Weiming Shen"],"abstract":"Most unsupervised image anomaly localization methods suffer from overgeneralization because of the high generalization abilities of convolutional neural networks, leading to unreliable predictions. To mitigate the overgeneralization, this study proposes to collaboratively optimize normal and abnormal feature distributions with the assistance of synthetic anomalies, namely collaborative discrepancy optimization (CDO). CDO introduces a margin optimization module and an overlap optimization module to optimize the two key factors determining the localization performance, i.e., the margin and the overlap between the discrepancy distributions (DDs) of normal and abnormal samples. With CDO, a large margin and a small overlap between normal and abnormal DDs are obtained, and the prediction reliability is boosted. Experiments on MVTec2D and MVTec3D show that CDO effectively mitigates the overgeneralization and achieves great anomaly localization performance with real-time computation efficiency. A real-world automotive plastic parts inspection application further demonstrates the capability of the proposed CDO. Code is available on https://github.com/caoyunkang/CDO.","url_abs":"https://arxiv.org/abs/2302.08769v1","url_pdf":"https://arxiv.org/pdf/2302.08769v1.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":"collaborative-discrepancy-optimization-for-1","repo_url":"https://github.com/caoyunkang/CDO","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"anomaly-localization","task_name":"Anomaly Localization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/anomaly-detection-on-mvtec-3d-ad-1","task":"Anomaly Detection","dataset":"MVTEC 3D-AD","model":"CDO","rank_in_archive_order":1,"of":2,"metrics":{"Segmentation AUPRO":"93.75"},"uses_additional_data":true},{"leaderboard":"/sota/anomaly-detection-on-mvtec-ad","task":"Anomaly Detection","dataset":"MVTec AD","model":"CDO","rank_in_archive_order":124,"of":148,"metrics":{"FPS":"79.6 (exclude data inputting time), 18.7 (contain data inputting time)","Segmentation AUPRO":"96.50","Segmentation AUROC":"98.70"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.08769","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.08769"}},"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/caoyunkang/CDO","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":6,"ran":3,"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":"d9def42110729a85","entry":"conv1x1","repo":"caoyunkang/CDO","repo_kind":"official","path":"model/cdo.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/model/cdo.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9def42110729a85"}},{"code_sha256_prefix":"160bb14bd76201b4","entry":"conv3x3","repo":"caoyunkang/CDO","repo_kind":"official","path":"model/cdo.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/model/cdo.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"160bb14bd76201b4"}},{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"caoyunkang/CDO","repo_kind":"official","path":"loss/base_loss.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/loss/base_loss.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"99d9f4c3d26484ea","entry":"compute_lcs_in_chunks","repo":"caoyunkang/CDO","repo_kind":"official","path":"loss/ikd_loss.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/loss/ikd_loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"99d9f4c3d26484ea"}},{"code_sha256_prefix":"443341084ce76798","entry":"create_window","repo":"caoyunkang/CDO","repo_kind":"official","path":"loss/base_loss.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/loss/base_loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"443341084ce76798"}},{"code_sha256_prefix":"bff794bd9bd73f94","entry":"ssim","repo":"caoyunkang/CDO","repo_kind":"official","path":"loss/base_loss.py","file_url":"https://github.com/caoyunkang/CDO/blob/HEAD/loss/base_loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bff794bd9bd73f94"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}