{"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/uninformed-students-student-teacher-anomaly","title":"Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings","arxiv_id":"1911.02357","date":"2019-11-06","proceeding":"CVPR 2020 6","authors":["Paul Bergmann","Michael Fauser","David Sattlegger","Carsten Steger"],"abstract":"We introduce a powerful student-teacher framework for the challenging problem of unsupervised anomaly detection and pixel-precise anomaly segmentation in high-resolution images. Student networks are trained to regress the output of a descriptive teacher network that was pretrained on a large dataset of patches from natural images. This circumvents the need for prior data annotation. Anomalies are detected when the outputs of the student networks differ from that of the teacher network. This happens when they fail to generalize outside the manifold of anomaly-free training data. The intrinsic uncertainty in the student networks is used as an additional scoring function that indicates anomalies. We compare our method to a large number of existing deep learning based methods for unsupervised anomaly detection. Our experiments demonstrate improvements over state-of-the-art methods on a number of real-world datasets, including the recently introduced MVTec Anomaly Detection dataset that was specifically designed to benchmark anomaly segmentation algorithms.","url_abs":"https://arxiv.org/abs/1911.02357v2","url_pdf":"https://arxiv.org/pdf/1911.02357v2.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":"uninformed-students-student-teacher-anomaly","repo_url":"https://github.com/LuyaooChen/uninformed-students-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"uninformed-students-student-teacher-anomaly","repo_url":"https://github.com/TaikiInoue/STAD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"uninformed-students-student-teacher-anomaly","repo_url":"https://github.com/denguir/student-teacher-anomaly-detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"anomaly-segmentation","task_name":"Anomaly Segmentation"},{"task_slug":"descriptive","task_name":"Descriptive"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"unsupervised-anomaly-detection","task_name":"Unsupervised Anomaly Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/anomaly-detection-on-mvtec-ad","task":"Anomaly Detection","dataset":"MVTec AD","model":"Student–Teacher AD (Multiscale)","rank_in_archive_order":129,"of":148,"metrics":{"Segmentation AP":"45.5","Segmentation AUPRO":"91.4"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-mvtec-ad","task":"Anomaly Detection","dataset":"MVTec AD","model":"Student–Teacher AD (p=33)","rank_in_archive_order":130,"of":148,"metrics":{"Segmentation AUPRO":"90.0"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-mvtec-ad","task":"Anomaly Detection","dataset":"MVTec AD","model":"Student–Teacher AD (p=65)","rank_in_archive_order":132,"of":148,"metrics":{"Segmentation AUPRO":"85.7"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-mvtec-loco-ad","task":"Anomaly Detection","dataset":"MVTec LOCO AD","model":"Student-Teacher","rank_in_archive_order":31,"of":40,"metrics":{"Avg. Detection AUROC":"77.3","Detection AUROC (only logical)":"66.4","Detection AUROC (only structural)":"88.3"},"uses_additional_data":false},{"leaderboard":"/sota/anomaly-detection-on-visa","task":"Anomaly Detection","dataset":"VisA","model":"Student-Teacher","rank_in_archive_order":24,"of":50,"metrics":{"Detection AUROC":"93.2"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1911.02357","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.02357"}},"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/LuyaooChen/uninformed-students-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TaikiInoue/STAD","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/denguir/student-teacher-anomaly-detection","reach":null}],"summary":{"ran_violates":1,"ran_honours":1,"ran_fixture":6},"by_repo_kind":{"listed":{"samples":8,"ran":8,"repositories":2}},"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":3,"samples":[{"code_sha256_prefix":"93047fe2e31f686c","entry":"compactness_loss","repo":"LuyaooChen/uninformed-students-pytorch","repo_kind":"listed","path":"teacher_train.py","file_url":"https://github.com/LuyaooChen/uninformed-students-pytorch/blob/HEAD/teacher_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"93047fe2e31f686c"}},{"code_sha256_prefix":"1df330df12a648c5","entry":"distillation_loss","repo":"LuyaooChen/uninformed-students-pytorch","repo_kind":"listed","path":"teacher_train.py","file_url":"https://github.com/LuyaooChen/uninformed-students-pytorch/blob/HEAD/teacher_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1df330df12a648c5"}},{"code_sha256_prefix":"90288aa22857bfaf","entry":"error","repo":"LuyaooChen/uninformed-students-pytorch","repo_kind":"listed","path":"evaluate.py","file_url":"https://github.com/LuyaooChen/uninformed-students-pytorch/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90288aa22857bfaf"}},{"code_sha256_prefix":"f50afd32cd82ba71","entry":"get_error_map","repo":"denguir/student-teacher-anomaly-detection","repo_kind":"listed","path":"src/anomaly_detection.py","file_url":"https://github.com/denguir/student-teacher-anomaly-detection/blob/HEAD/src/anomaly_detection.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f50afd32cd82ba71"}},{"code_sha256_prefix":"173fea049a824651","entry":"get_variance_map","repo":"denguir/student-teacher-anomaly-detection","repo_kind":"listed","path":"src/anomaly_detection.py","file_url":"https://github.com/denguir/student-teacher-anomaly-detection/blob/HEAD/src/anomaly_detection.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"173fea049a824651"}},{"code_sha256_prefix":"d7ddf620faa7c311","entry":"increment_mean_and_var","repo":"LuyaooChen/uninformed-students-pytorch","repo_kind":"listed","path":"student_train.py","file_url":"https://github.com/LuyaooChen/uninformed-students-pytorch/blob/HEAD/student_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d7ddf620faa7c311"}},{"code_sha256_prefix":"43a43a856335ac7d","entry":"student_loss","repo":"denguir/student-teacher-anomaly-detection","repo_kind":"listed","path":"src/students_training.py","file_url":"https://github.com/denguir/student-teacher-anomaly-detection/blob/HEAD/src/students_training.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"43a43a856335ac7d"}},{"code_sha256_prefix":"7327a71150875464","entry":"variance","repo":"LuyaooChen/uninformed-students-pytorch","repo_kind":"listed","path":"evaluate.py","file_url":"https://github.com/LuyaooChen/uninformed-students-pytorch/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7327a71150875464"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}