{"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/challenges-in-multi-centric-generalization","title":"Challenges in Multi-centric Generalization: Phase and Step Recognition in Roux-en-Y Gastric Bypass Surgery","arxiv_id":"2312.11250","date":"2023-12-18","proceeding":null,"authors":["Joel L. Lavanchy","Sanat Ramesh","Diego Dall'Alba","Cristians Gonzalez","Paolo Fiorini","Beat Muller-Stich","Philipp C. Nett","Jacques Marescaux","Didier Mutter","Nicolas Padoy"],"abstract":"Most studies on surgical activity recognition utilizing Artificial intelligence (AI) have focused mainly on recognizing one type of activity from small and mono-centric surgical video datasets. It remains speculative whether those models would generalize to other centers. In this work, we introduce a large multi-centric multi-activity dataset consisting of 140 videos (MultiBypass140) of laparoscopic Roux-en-Y gastric bypass (LRYGB) surgeries performed at two medical centers: the University Hospital of Strasbourg (StrasBypass70) and Inselspital, Bern University Hospital (BernBypass70). The dataset has been fully annotated with phases and steps. Furthermore, we assess the generalizability and benchmark different deep learning models in 7 experimental studies: 1) Training and evaluation on BernBypass70; 2) Training and evaluation on StrasBypass70; 3) Training and evaluation on the MultiBypass140; 4) Training on BernBypass70, evaluation on StrasBypass70; 5) Training on StrasBypass70, evaluation on BernBypass70; Training on MultiBypass140, evaluation 6) on BernBypass70 and 7) on StrasBypass70. The model's performance is markedly influenced by the training data. The worst results were obtained in experiments 4) and 5) confirming the limited generalization capabilities of models trained on mono-centric data. The use of multi-centric training data, experiments 6) and 7), improves the generalization capabilities of the models, bringing them beyond the level of independent mono-centric training and validation (experiments 1) and 2)). MultiBypass140 shows considerable variation in surgical technique and workflow of LRYGB procedures between centers. Therefore, generalization experiments demonstrate a remarkable difference in model performance. These results highlight the importance of multi-centric datasets for AI model generalization to account for variance in surgical technique and workflows.","url_abs":"https://arxiv.org/abs/2312.11250v1","url_pdf":"https://arxiv.org/pdf/2312.11250v1.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":"challenges-in-multi-centric-generalization","repo_url":"https://github.com/camma-public/multibypass140","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"activity-recognition","task_name":"Activity Recognition"}],"methods":[],"datasets_introduced":[{"slug":"multibypass140","name":"MultiBypass140","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.11250","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.11250"}},"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/camma-public/multibypass140","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":7},"by_repo_kind":{"official":{"samples":7,"ran":7,"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":7,"samples":[{"code_sha256_prefix":"9d55a941a2e82755","entry":"compute_class_weights","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/utils.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9d55a941a2e82755"}},{"code_sha256_prefix":"926dad3993f1f906","entry":"compute_metrics","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/results_collator.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/results_collator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"926dad3993f1f906"}},{"code_sha256_prefix":"75246c393d4ce5fe","entry":"compute_video_metrics","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/results_collator.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/results_collator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"75246c393d4ce5fe"}},{"code_sha256_prefix":"375920237b2e0e92","entry":"get_augment_transforms","repo":"camma-public/multibypass140","repo_kind":"official","path":"loaders/data_loader_cnn.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/loaders/data_loader_cnn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"375920237b2e0e92"}},{"code_sha256_prefix":"08749355551ba4ec","entry":"init_classification_loss","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/utils.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"08749355551ba4ec"}},{"code_sha256_prefix":"7f5b6a0fd6de7ea2","entry":"parse_config","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/utils.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7f5b6a0fd6de7ea2"}},{"code_sha256_prefix":"e0957150f7569dda","entry":"read_pkl_data","repo":"camma-public/multibypass140","repo_kind":"official","path":"util/data_reader.py","file_url":"https://github.com/camma-public/multibypass140/blob/HEAD/util/data_reader.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e0957150f7569dda"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}