[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1973":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":29,"discoverSource":30},1973,"OmniShotCut","UVA-Computer-Vision-Lab\u002FOmniShotCut","UVA-Computer-Vision-Lab","OmniShotCut is a sensitive and more informative SoTA on Shot Boundary Detection task.","",null,"Python",221,30,3,2,0,5,10,36,15,4.47,false,"main",true,[],"2026-06-12 02:00:35","\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"__assets__\u002Flogo.png\" height=\"100\">\n\u003C\u002Fp>\n\n## OmniShotCut: Holistic Relational Shot Boundary Detection with Shot-Query Transformer\n\nOmniShotCut is a sensitive and more informative SoTA for Shot Boundary Detection. \\\nOmniShotCut can detect shot changes of the video in diverse sources (anime, vlog, game, shorts, sports, screen recording, etc.), and recognize Sudden Jump and Transitions (dissolve, fade, wipe, etc.) by proposing a Shot-Query-based Video Transformer.\n\n\n[![Paper](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Paper-b31b1b?logo=arxiv&logoColor=white)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.24762)\n[![Website](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Website-pink?logo=googlechrome&logoColor=white)](https:\u002F\u002Fuva-computer-vision-lab.github.io\u002FOmniShotCut_website\u002F)\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fuva-cv-lab\u002FOmniShotCut\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=%F0%9F%A4%97%20HF%20Space&message=Online+Demo&color=orange\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fuva-cv-lab\u002FOmniShotCut\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=%F0%9F%A4%97%20HuggingFace&message=Model+Weight&color=orange\">\u003C\u002Fa>\n\n\n🔥 [Update](#Update) **|** 👀 [**Visualization**](#Visualization) **|** 🔧 [Installation](#Installation) **|** 🐍 [Quick Start](#quick_start) **|** ⚡ [Inference](#fast_inference) **|** 💻 [OmniShotCut Benchmark](#evaluation)\n\n\n\n\n## \u003Ca name=\"Update\">\u003C\u002Fa>Update 🔥🔥🔥\n- [x] Release ArXiv paper\n- [x] Release the inference weights\n- [x] Release Gradio demo (with online)\n- [x] Release 'pip install omnishotcut' version\n- [ ] Release the benchmark\n- [ ] Release the training code and curation\n      \n:star: **If you like OmniShotCut, please help ⭐⭐star⭐⭐ this repo. Thanks!** :hugs:\n\n\n\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"__assets__\u002Fteaser.png\" style=\"border-radius: 15px\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"__assets__\u002Fmodel_architecture.png\" style=\"border-radius: 15px\">\n\u003C\u002Fp>\n\n\n\n\n\n## \u003Ca name=\"quick_start\">\u003C\u002Fa> Quick Start 🐍\n\nFirst install PyTorch with CUDA support.\nThen install OmniShotCut:\n```shell\npip install git+https:\u002F\u002Fgithub.com\u002FUVA-Computer-Vision-Lab\u002FOmniShotCut.git\n```\n\nOnce installed, running shot boundary detection is just a few lines:\n\n```python\nimport omnishotcut\n\n# Load model — accepts a local checkpoint path or HuggingFace repo\ncut_model = omnishotcut.load(\"uva-cv-lab\u002FOmniShotCut\", filename = \"OmniShotCut_ckpt.pth\")\n\n# Run on a video file\nranges = cut_model.inference(\"video.mp4\", mode=\"clean_shot\")\n```\n\n`ranges` is a list of `[start_frame, end_frame]` pairs for each detected shot.\nBy default `mode=\"clean_shot\"` returns only clean cuts (no transitions). \nUse `mode=\"default\"` to also get dissolves, wipes, and fades with their labels:\n\n```python\nranges, intra_labels, inter_labels = cut_model.inference(\"video.mp4\", mode=\"default\")\n```\n\nBesides video file paths, `inference()` also accepts **numpy** arrays and **torch** tensors directly — both should be `(T, H, W, 3)` uint8 RGB:\n\n\n\n\n\n## \u003Ca name=\"Installation\">\u003C\u002Fa> Full Local Installation 🔧\n```shell\nconda create -n OmniShotCut python=3.10\nconda activate OmniShotCut\npip install -r requirements.txt\npip install -e .\n```\n\n\n## \u003Ca name=\"fast_inference\">\u003C\u002Fa> Gradio Demo ⚡⚡⚡\nLocal Gradio can be created by simply running the following:\n```shell\npython app.py \n```\nClick \"Running on **public** URL\".\n\n\n\n\n## \u003Ca name=\"inference\">\u003C\u002Fa> Inference ⚡\n\nThis section presents more formal fun and controllable setting in running.\n\nFirst, let us download the checkpoint\n```shell\nmkdir checkpoints\ncd checkpoints\nwget https:\u002F\u002Fhuggingface.co\u002Fuva-cv-lab\u002FOmniShotCut\u002Fresolve\u002Fmain\u002FOmniShotCut_ckpt.pth\n```\n\nWe provide some modes for the inference. 'default' mode will shot the intra and inter label we define.\nHowever, we believe that most users might want the most direct results, which is the general shots without any transitions. \nTo this end, please use '--mode clean_shot'.\n\nExecute the inference by:\n```shell\npython inference.py  --checkpoint_path checkpoints\u002FOmniShotCut_ckpt.pth  --input_video_path __assets__\u002Fdemo_video1.mp4  --overlap_window_length 20  --mode default\n```\n\nResults are saved to `results.json`. Visualization is saved to `demo_video_results\u002F`, where vertical bars with the same color indicate the same shot.\n\n\n\n\n## 📚 Citation\n```bibtex\n@article{wang2026omnishotcut,\n  title={OmniShotCut: Holistic Relational Shot Boundary Detection with Shot-Query Transformer},\n  author={Wang, Boyang and Xu, Guangyi and Tang, Zhipeng and Zhang, Jiahui and Cheng, Zezhou},\n  journal={arXiv preprint arXiv:2604.24762},\n  year={2026}\n}\n```\n\n\n\n\n","OmniShotCut 是一个用于视频镜头边界检测的先进工具。它通过引入基于Shot-Query的视频Transformer，能够敏感且详细地识别不同来源（如动漫、vlog、游戏、短视频、体育赛事、屏幕录制等）视频中的镜头变化，并区分突然跳切和过渡效果（如溶解、淡入淡出、擦拭等）。项目采用Python语言开发，支持从多种格式的数据源中进行高效准确的分析。适用于需要对视频内容进行精细化处理或分析的场景，例如视频编辑软件、内容审核系统或是多媒体研究领域。","2026-06-11 02:47:10","CREATED_QUERY"]