{"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/densehybrid-hybrid-anomaly-detection-for","title":"DenseHybrid: Hybrid Anomaly Detection for Dense Open-set Recognition","arxiv_id":"2207.02606","date":"2022-07-06","proceeding":null,"authors":["Matej Grcić","Petra Bevandić","Siniša Šegvić"],"abstract":"Anomaly detection can be conceived either through generative modelling of regular training data or by discriminating with respect to negative training data. These two approaches exhibit different failure modes. Consequently, hybrid algorithms present an attractive research goal. Unfortunately, dense anomaly detection requires translational equivariance and very large input resolutions. These requirements disqualify all previous hybrid approaches to the best of our knowledge. We therefore design a novel hybrid algorithm based on reinterpreting discriminative logits as a logarithm of the unnormalized joint distribution $\\hat{p}(\\mathbf{x}, \\mathbf{y})$. Our model builds on a shared convolutional representation from which we recover three dense predictions: i) the closed-set class posterior $P(\\mathbf{y}|\\mathbf{x})$, ii) the dataset posterior $P(d_{in}|\\mathbf{x})$, iii) unnormalized data likelihood $\\hat{p}(\\mathbf{x})$. The latter two predictions are trained both on the standard training data and on a generic negative dataset. We blend these two predictions into a hybrid anomaly score which allows dense open-set recognition on large natural images. We carefully design a custom loss for the data likelihood in order to avoid backpropagation through the untractable normalizing constant $Z(\\theta)$. Experiments evaluate our contributions on standard dense anomaly detection benchmarks as well as in terms of open-mIoU - a novel metric for dense open-set performance. Our submissions achieve state-of-the-art performance despite neglectable computational overhead over the standard semantic segmentation baseline.","url_abs":"https://arxiv.org/abs/2207.02606v1","url_pdf":"https://arxiv.org/pdf/2207.02606v1.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":"densehybrid-hybrid-anomaly-detection-for","repo_url":"https://github.com/matejgrcic/DenseHybrid","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"open-set-learning","task_name":"Open Set Learning"},{"task_slug":"scene-segmentation","task_name":"Scene Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/anomaly-detection-on-fishyscapes-1","task":"Anomaly Detection","dataset":"Fishyscapes","model":"DenseHybrid","rank_in_archive_order":5,"of":8,"metrics":{"AP":"72.3","FPR95":"5.5"},"uses_additional_data":true},{"leaderboard":"/sota/anomaly-detection-on-fishyscapes-l-f","task":"Anomaly Detection","dataset":"Fishyscapes L&F","model":"DenseHybrid","rank_in_archive_order":8,"of":18,"metrics":{"AP":"43.9","FPR95":"6.2"},"uses_additional_data":true},{"leaderboard":"/sota/scene-segmentation-on-streethazards","task":"Scene Segmentation","dataset":"StreetHazards","model":"LDN121-DenseHybrid","rank_in_archive_order":3,"of":3,"metrics":{"Open-mIoU":"45.8"},"uses_additional_data":true}],"syntology":{"syntology_url":"https://syntology.ai/paper/2207.02606","atlas_url":"https://app.syntology.ai/?focus=2207.02606","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.02606"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"deterministic:regex_extraction","url":"https://github.com/matejgrcic/DenseHybrid","reach":null}],"summary":{"ran":9,"ran_draft_wrong":3,"unverified":1},"by_repo_kind":{"official":{"samples":13,"ran":12,"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":13,"samples":[{"code_sha256_prefix":"82fa155ecf7dd6ea","entry":"DenseNet","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"82fa155ecf7dd6ea"}},{"code_sha256_prefix":"ff8e4e3cca125ab7","entry":"SPPWrapper","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ff8e4e3cca125ab7"}},{"code_sha256_prefix":"670a3be43c04c03c","entry":"SpatialPyramidPooling","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"670a3be43c04c03c"}},{"code_sha256_prefix":"829101d62a45513f","entry":"UpsampleWrapper","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"829101d62a45513f"}},{"code_sha256_prefix":"4eb447fe1facaf64","entry":"_BNReluConv","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"4eb447fe1facaf64"}},{"code_sha256_prefix":"78a6b14acf189d64","entry":"_DenseBlock","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"78a6b14acf189d64"}},{"code_sha256_prefix":"7590cc05fbd0178e","entry":"_DenseLayer","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"7590cc05fbd0178e"}},{"code_sha256_prefix":"1c790b909fc8f0d1","entry":"_Transition","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1c790b909fc8f0d1"}},{"code_sha256_prefix":"378890a5c1832284","entry":"_Upsample","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"378890a5c1832284"}},{"code_sha256_prefix":"39fa24f2290ebbd3","entry":"_checkpoint_bnreluconv","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"39fa24f2290ebbd3"}},{"code_sha256_prefix":"a6df25fb24ddf178","entry":"_checkpoint_transition","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"a6df25fb24ddf178"}},{"code_sha256_prefix":"9e15f680fc14dc9e","entry":"_checkpoint_unit","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"9e15f680fc14dc9e"}},{"code_sha256_prefix":"77e4e57e31f33c48","entry":"LadderDenseNet","repo":"matejgrcic/DenseHybrid","repo_kind":"official","path":"models/ladder_densenet.py","file_url":"https://github.com/matejgrcic/DenseHybrid/blob/HEAD/models/ladder_densenet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"77e4e57e31f33c48"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}