{"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/videogpt-integrating-image-and-video-encoders","title":"VideoGPT+: Integrating Image and Video Encoders for Enhanced Video Understanding","arxiv_id":"2406.09418","date":"2024-06-13","proceeding":null,"authors":["Muhammad Maaz","Hanoona Rasheed","Salman Khan","Fahad Khan"],"abstract":"Building on the advances of language models, Large Multimodal Models (LMMs) have contributed significant improvements in video understanding. While the current video LMMs utilize advanced Large Language Models (LLMs), they rely on either image or video encoders to process visual inputs, each of which has its own limitations. Image encoders excel at capturing rich spatial details from frame sequences but lack explicit temporal context, which can be important in videos with intricate action sequences. On the other hand, video encoders provide temporal context but are often limited by computational constraints that lead to processing only sparse frames at lower resolutions, resulting in reduced contextual and spatial understanding. To this end, we introduce VideoGPT+, which combines the complementary benefits of the image encoder (for detailed spatial understanding) and the video encoder (for global temporal context modeling). The model processes videos by dividing them into smaller segments and applies an adaptive pooling strategy on features extracted by both image and video encoders. Our architecture showcases improved performance across multiple video benchmarks, including VCGBench, MVBench and Zero-shot question-answering. Further, we develop 112K video-instruction set using a novel semi-automatic annotation pipeline which further improves the model performance. Additionally, to comprehensively evaluate video LMMs, we present VCGBench-Diverse, covering 18 broad video categories such as lifestyle, sports, science, gaming, and surveillance videos. This benchmark with 4,354 question-answer pairs evaluates the generalization of existing LMMs on dense video captioning, spatial and temporal understanding, and complex reasoning, ensuring comprehensive assessment across diverse video types and dynamics. Code: https://github.com/mbzuai-oryx/VideoGPT-plus.","url_abs":"https://arxiv.org/abs/2406.09418v1","url_pdf":"https://arxiv.org/pdf/2406.09418v1.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":"videogpt-integrating-image-and-video-encoders","repo_url":"https://github.com/mbzuai-oryx/videogpt-plus","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"CC-BY-4.0"}}],"tasks":[{"task_slug":"dense-video-captioning","task_name":"Dense Video Captioning"},{"task_slug":null,"task_name":"MVBench"},{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":"vcgbench-diverse","task_name":"VCGBench-Diverse"},{"task_slug":"video-captioning","task_name":"Video Captioning"},{"task_slug":"video-question-answering","task_name":"Video Question Answering"},{"task_slug":"video-understanding","task_name":"Video Understanding"},{"task_slug":"video-based-generative-performance","task_name":"Video-based Generative Performance Benchmarking"},{"task_slug":"video-based-generative-performance-5","task_name":"Video-based Generative Performance Benchmarking (Consistency)"},{"task_slug":"video-based-generative-performance-3","task_name":"Video-based Generative Performance Benchmarking (Contextual Understanding)"},{"task_slug":"video-based-generative-performance-1","task_name":"Video-based Generative Performance Benchmarking (Correctness of Information)"},{"task_slug":"video-based-generative-performance-2","task_name":"Video-based Generative Performance Benchmarking (Detail Orientation))"},{"task_slug":"video-based-generative-performance-4","task_name":"Video-based Generative Performance Benchmarking (Temporal Understanding)"},{"task_slug":"zeroshot-video-question-answer","task_name":"Zero-Shot Video Question Answer"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[{"slug":"vcg-112k","name":"VCG+112K","full_name":"Video Instruction Dataset 112K"}],"methods_introduced":[],"results":[{"leaderboard":"/sota/vcgbench-diverse-on-videoinstruct","task":"VCGBench-Diverse","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":1,"of":6,"metrics":{"Consistency":"2.59","Contextual Understanding":"2.81","Correctness of Information":"2.46","Dense Captioning":"1.38","Detail Orientation":"2.73","Reasoning":"3.63","Spatial Understanding":"2.80","Temporal Understanding":"1.78","mean":"2.47"},"uses_additional_data":false},{"leaderboard":"/sota/video-question-answering-on-mvbench","task":"Video Question Answering","dataset":"MVBench","model":"VideoGPT+","rank_in_archive_order":10,"of":22,"metrics":{"Avg.":"58.7"},"uses_additional_data":false},{"leaderboard":"/sota/video-question-answering-on-tvbench","task":"Video Question Answering","dataset":"TVBench","model":"VideoGPT+","rank_in_archive_order":23,"of":28,"metrics":{"Average Accuracy":"41.7"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance","task":"Video-based Generative Performance Benchmarking","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":7,"of":23,"metrics":{"Consistency":"3.39","Contextual Understanding":"3.74","Correctness of Information":"3.27","Detail Orientation":"3.18","Temporal Understanding":"2.83","mean":"3.28"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance-2","task":"Video-based Generative Performance Benchmarking (Consistency)","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":4,"of":18,"metrics":{"gpt-score":"3.39"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance-3","task":"Video-based Generative Performance Benchmarking (Contextual Understanding)","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":6,"of":18,"metrics":{"gpt-score":"3.74"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance-1","task":"Video-based Generative Performance Benchmarking (Correctness of Information)","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":6,"of":18,"metrics":{"gpt-score":"3.27"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance-4","task":"Video-based Generative Performance Benchmarking (Detail Orientation))","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":3,"of":18,"metrics":{"gpt-score":"3.18"},"uses_additional_data":false},{"leaderboard":"/sota/video-based-generative-performance-5","task":"Video-based Generative Performance Benchmarking (Temporal Understanding)","dataset":"VideoInstruct","model":"VideoGPT+","rank_in_archive_order":3,"of":18,"metrics":{"gpt-score":"2.83"},"uses_additional_data":false},{"leaderboard":"/sota/zeroshot-video-question-answer-on-activitynet","task":"Zero-Shot Video Question Answer","dataset":"ActivityNet-QA","model":"VideoGPT+","rank_in_archive_order":11,"of":28,"metrics":{"Accuracy":"50.6","Confidence Score":"3.6"},"uses_additional_data":false},{"leaderboard":"/sota/zeroshot-video-question-answer-on-msrvtt-qa","task":"Zero-Shot Video Question Answer","dataset":"MSRVTT-QA","model":"VideoGPT+","rank_in_archive_order":12,"of":30,"metrics":{"Accuracy":"60.6","Confidence Score":"3.6"},"uses_additional_data":false},{"leaderboard":"/sota/zeroshot-video-question-answer-on-msvd-qa","task":"Zero-Shot Video Question Answer","dataset":"MSVD-QA","model":"VideoGPT+","rank_in_archive_order":15,"of":28,"metrics":{"Accuracy":"72.4","Confidence Score":"3.6"},"uses_additional_data":false},{"leaderboard":"/sota/zeroshot-video-question-answer-on-tgif-qa","task":"Zero-Shot Video Question Answer","dataset":"TGIF-QA","model":"VideoGPT+","rank_in_archive_order":7,"of":14,"metrics":{"Accuracy":"74.6","Confidence Score":"4.1"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2406.09418","atlas_url":"https://app.syntology.ai/?focus=2406.09418","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.09418"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mbzuai-oryx/videogpt-plus","reach":{"status":"ok","spdx":"CC-BY-4.0"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":8,"ran":6,"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":8,"samples":[{"code_sha256_prefix":"3fc12acfa2e8e18e","entry":"apply_adaptive_avg_pooling","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/arch.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3fc12acfa2e8e18e"}},{"code_sha256_prefix":"c4af2e63b61c4766","entry":"eval_string","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/internvideo/config.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/internvideo/config.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c4af2e63b61c4766"}},{"code_sha256_prefix":"c3ee9d07c900dd55","entry":"load_image_from_base64","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/mm_utils.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/mm_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c3ee9d07c900dd55"}},{"code_sha256_prefix":"e41cae3b88c4eedd","entry":"merge_a_into_b","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/internvideo/config.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/internvideo/config.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e41cae3b88c4eedd"}},{"code_sha256_prefix":"1df990c375318896","entry":"process_images","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/mm_utils.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/mm_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1df990c375318896"}},{"code_sha256_prefix":"75fecde3bc752044","entry":"uniform_sample","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/dataloader.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"75fecde3bc752044"}},{"code_sha256_prefix":"91bc1b8fd39b1a58","entry":"eval_dict_leaf","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/internvideo/config.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/internvideo/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"91bc1b8fd39b1a58"}},{"code_sha256_prefix":"3816500f658b87d1","entry":"load_pretrained_model","repo":"mbzuai-oryx/videogpt-plus","repo_kind":"official","path":"videogpt_plus/model/builder.py","file_url":"https://github.com/mbzuai-oryx/videogpt-plus/blob/HEAD/videogpt_plus/model/builder.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3816500f658b87d1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}