[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-facebookresearch--co-tracker":3,"tool-facebookresearch--co-tracker":65},[4,18,32,41,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,3,"2026-04-06T03:28:53",[13,14,15,16],"开发框架","图像","Agent","视频","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[14,27,16,28,15,29,30,13,31],"数据工具","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":38,"last_commit_at":39,"category_tags":40,"status":17},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[30,27,29],{"id":42,"name":43,"github_repo":44,"description_zh":45,"stars":46,"difficulty_score":38,"last_commit_at":47,"category_tags":48,"status":17},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[29,14,27,13],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":10,"last_commit_at":55,"category_tags":56,"status":17},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,30,29],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":17},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75489,"2026-04-13T11:13:28",[30,14,13,29],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":71,"readme_en":72,"readme_zh":73,"quickstart_zh":74,"use_case_zh":75,"hero_image_url":76,"owner_login":77,"owner_name":78,"owner_avatar_url":79,"owner_bio":80,"owner_company":81,"owner_location":81,"owner_email":81,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":10,"env_os":100,"env_gpu":101,"env_ram":102,"env_deps":103,"category_tags":117,"github_topics":118,"view_count":24,"oss_zip_url":81,"oss_zip_packed_at":81,"status":17,"created_at":122,"updated_at":123,"faqs":124,"releases":154},7158,"facebookresearch\u002Fco-tracker","co-tracker","CoTracker is a model for tracking any point (pixel) on a video.","CoTracker 是一款由 Meta AI 与牛津大学联合研发的视频点追踪模型，能够精准跟踪视频中任意像素点的运动轨迹。它主要解决了传统方法在处理复杂运动、遮挡或长序列视频时容易丢失目标、计算效率低下的难题，让计算机能像人眼一样持续“锁定”画面中的细微动态。\n\n无论是手动选取的单个特征点，还是密集采样的成千上万个像素网格，CoTracker 都能实现高效、稳定的联合追踪。其核心技术亮点在于采用了轻量级的 Transformer 架构，并结合创新的“伪标签”训练策略，仅用以往顶尖模型千分之一的数据量便达到了更优的性能。最新的 CoTracker3 版本不仅支持离线与在线处理模式，还能在显存占用更低的情况下，同时追踪高达 265×265 个点位，显著提升了可扩展性。\n\n这款工具非常适合计算机视觉研究人员、视频算法开发者以及需要高精度运动分析的多媒体设计师使用。研究人员可利用其开源代码和预训练模型探索新的视觉任务；开发者能轻松将其集成到视频编辑、增强现实或三维重建项目中；而通过 Hugging Face 空间或 Colab 演示，普通技术爱好者也能直观体验前沿的 AI 追踪能力。CoTra","CoTracker 是一款由 Meta AI 与牛津大学联合研发的视频点追踪模型，能够精准跟踪视频中任意像素点的运动轨迹。它主要解决了传统方法在处理复杂运动、遮挡或长序列视频时容易丢失目标、计算效率低下的难题，让计算机能像人眼一样持续“锁定”画面中的细微动态。\n\n无论是手动选取的单个特征点，还是密集采样的成千上万个像素网格，CoTracker 都能实现高效、稳定的联合追踪。其核心技术亮点在于采用了轻量级的 Transformer 架构，并结合创新的“伪标签”训练策略，仅用以往顶尖模型千分之一的数据量便达到了更优的性能。最新的 CoTracker3 版本不仅支持离线与在线处理模式，还能在显存占用更低的情况下，同时追踪高达 265×265 个点位，显著提升了可扩展性。\n\n这款工具非常适合计算机视觉研究人员、视频算法开发者以及需要高精度运动分析的多媒体设计师使用。研究人员可利用其开源代码和预训练模型探索新的视觉任务；开发者能轻松将其集成到视频编辑、增强现实或三维重建项目中；而通过 Hugging Face 空间或 Colab 演示，普通技术爱好者也能直观体验前沿的 AI 追踪能力。CoTracker 以简洁高效的設計，为视频理解领域提供了强大且易用的基础工具。","# CoTracker3: Simpler and Better Point Tracking by Pseudo-Labelling Real Videos\n\n**[Meta AI Research, GenAI](https:\u002F\u002Fai.facebook.com\u002Fresearch\u002F)**; **[University of Oxford, VGG](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002F)**\n\n[Nikita Karaev](https:\u002F\u002Fnikitakaraevv.github.io\u002F), [Iurii Makarov](https:\u002F\u002Flinkedin.com\u002Fin\u002Flvoursl), [Jianyuan Wang](https:\u002F\u002Fjytime.github.io\u002F), [Ignacio Rocco](https:\u002F\u002Fwww.irocco.info\u002F), [Benjamin Graham](https:\u002F\u002Fai.facebook.com\u002Fpeople\u002Fbenjamin-graham\u002F), [Natalia Neverova](https:\u002F\u002Fnneverova.github.io\u002F), [Andrea Vedaldi](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vedaldi\u002F), [Christian Rupprecht](https:\u002F\u002Fchrirupp.github.io\u002F)\n\n### [Project Page](https:\u002F\u002Fcotracker3.github.io\u002F) | [Paper #1](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.07635) | [Paper #2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.11831) |  [X Thread](https:\u002F\u002Ftwitter.com\u002Fn_karaev\u002Fstatus\u002F1742638906355470772) | [BibTeX](#citing-cotracker)\n\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmain\u002Fnotebooks\u002Fdemo.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"Open In Colab\"\u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker\">\n  \u003Cimg alt=\"Spaces\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Spaces-blue\">\n\u003C\u002Fa>\n\n\u003Cimg width=\"1100\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_co-tracker_readme_78072623120b.png\" \u002F>\n\n**CoTracker** is a fast transformer-based model that can track any point in a video. It brings to tracking some of the benefits of Optical Flow.\n\nCoTracker can track:\n\n- **Any pixel** in a video\n- A **quasi-dense** set of pixels together\n- Points can be manually selected or sampled on a grid in any video frame\n\nTry these tracking modes for yourself with our [Colab demo](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fdemo.ipynb) or in the [Hugging Face Space 🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker).\n\n**Updates:**\n\n- [January 21, 2025] 📦 Kubric Dataset used for CoTracker3 now available! This dataset contains **6,000 high-resolution sequences** (512×512px, 120 frames) with slight camera motion, rendered using the Kubric engine. Check it out on [Hugging Face Dataset](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ffacebook\u002FCoTracker3_Kubric).\n\n- [October 15, 2024] 📣 We're releasing CoTracker3! State-of-the-art point tracking with a lightweight architecture trained with 1000x less data than previous top-performing models. Code for baseline models and the pseudo-labeling pipeline are available in the repo, as well as model checkpoints. Check out our [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.11831) for more details.\n\n- [September 25, 2024]  CoTracker2.1 is now available! This model has better performance on TAP-Vid benchmarks and follows the architecture of the original CoTracker. Try it out!\n\n- [June 14, 2024]  We have released the code for [VGGSfM](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fvggsfm), a model for recovering camera poses and 3D structure from any image sequences based on point tracking! VGGSfM is the first fully differentiable SfM framework that unlocks scalability and outperforms conventional SfM methods on standard benchmarks. \n\n- [December 27, 2023]  CoTracker2 is now available! It can now track many more (up to **265*265**!) points jointly and it has a cleaner and more memory-efficient implementation. It also supports online processing. See the [updated paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.07635) for more details. The old version remains available [here](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Ftree\u002F8d364031971f6b3efec945dd15c468a183e58212).\n\n- [September 5, 2023] You can now run our Gradio demo [locally](.\u002Fgradio_demo\u002Fapp.py).\n\n## Quick start\nThe easiest way to use CoTracker is to load a pretrained model from `torch.hub`:\n\n### Offline mode: \n```pip install imageio[ffmpeg]```, then:\n```python\nimport torch\n# Download the video\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fapple.mp4'\n\nimport imageio.v3 as iio\nframes = iio.imread(url, plugin=\"FFMPEG\")  # plugin=\"pyav\"\n\ndevice = 'cuda'\ngrid_size = 10\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)  # B T C H W\n\n# Run Offline CoTracker:\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_offline\").to(device)\npred_tracks, pred_visibility = cotracker(video, grid_size=grid_size) # B T N 2,  B T N 1\n```\n### Online mode: \n```python\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_online\").to(device)\n\n# Run Online CoTracker, the same model with a different API:\n# Initialize online processing\ncotracker(video_chunk=video, is_first_step=True, grid_size=grid_size)  \n\n# Process the video\nfor ind in range(0, video.shape[1] - cotracker.step, cotracker.step):\n    pred_tracks, pred_visibility = cotracker(\n        video_chunk=video[:, ind : ind + cotracker.step * 2]\n    )  # B T N 2,  B T N 1\n```\nOnline processing is more memory-efficient and allows for the processing of longer videos. However, in the example provided above, the video length is known! See [the online demo](.\u002Fonline_demo.py) for an example of tracking from an online stream with an unknown video length.\n\n### Visualize predicted tracks: \nAfter [installing](#installation-instructions) CoTracker, you can visualize tracks with:\n```python\nfrom cotracker.utils.visualizer import Visualizer\n\nvis = Visualizer(save_dir=\".\u002Fsaved_videos\", pad_value=120, linewidth=3)\nvis.visualize(video, pred_tracks, pred_visibility)\n```\n\nWe offer a number of other ways to interact with CoTracker:\n\n1. Interactive Gradio demo:\n   - A demo is available in the [`facebook\u002Fcotracker` Hugging Face Space 🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker).\n   - You can use the gradio demo locally by running [`python -m gradio_demo.app`](.\u002Fgradio_demo\u002Fapp.py) after installing the required packages: `pip install -r gradio_demo\u002Frequirements.txt`.\n2. Jupyter notebook:\n   - You can run the notebook in\n   [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fdemo.ipynb).\n   - Or explore the notebook located at [`notebooks\u002Fdemo.ipynb`](.\u002Fnotebooks\u002Fdemo.ipynb). \n2. You can [install](#installation-instructions) CoTracker _locally_ and then:\n   - Run an *offline* demo with 10 ⨉ 10 points sampled on a grid on the first frame of a video (results will be saved to `.\u002Fsaved_videos\u002Fdemo.mp4`)):\n\n     ```bash\n     python demo.py --grid_size 10\n     ```\n    - Run an *online* demo:\n\n      ```bash\n      python online_demo.py\n      ```\n\nA GPU is strongly recommended for using CoTracker locally.\n\n\u003Cimg width=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_co-tracker_readme_86ea1fc6845f.gif\" \u002F>\n\n\n## Installation Instructions\nYou can use a Pretrained Model via PyTorch Hub, as described above, or install CoTracker from this GitHub repo.\nThis is the best way if you need to run our local demo or evaluate\u002Ftrain CoTracker.\n\nEnsure you have both _PyTorch_ and _TorchVision_ installed on your system. Follow the instructions [here](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) for the installation.\nWe strongly recommend installing both PyTorch and TorchVision with CUDA support, although for small tasks CoTracker can be run on CPU.\n\n\n\n\n### Install a Development Version\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\ncd co-tracker\npip install -e .\npip install matplotlib flow_vis tqdm tensorboard\n```\n\nYou can manually download all CoTracker3 checkpoints (baseline and scaled models, as well as single and sliding window architectures) from the links below and place them in the `checkpoints` folder as follows:\n\n```bash\nmkdir -p checkpoints\ncd checkpoints\n# download the online (multi window) model\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_online.pth\n# download the offline (single window) model\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_offline.pth\ncd ..\n```\nYou can also download CoTracker3 checkpoints trained only on Kubric:\n```bash\n# download the online (sliding window) model\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fbaseline_online.pth\n# download the offline (single window) model\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fbaseline_offline.pth\n```\nFor old checkpoints, see [this section](#previous-version).\n\n## Evaluation\n\nTo reproduce the results presented in the paper, download the following datasets:\n\n- [TAP-Vid](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet)\n- [Dynamic Replica](https:\u002F\u002Fdynamic-stereo.github.io\u002F)\n\nAnd install the necessary dependencies:\n\n```bash\npip install hydra-core==1.1.0 mediapy\n```\n\nThen, execute the following command to evaluate the online model on TAP-Vid DAVIS:\n\n```bash\npython .\u002Fcotracker\u002Fevaluation\u002Fevaluate.py --config-name eval_tapvid_davis_first exp_dir=.\u002Feval_outputs dataset_root=your\u002Ftapvid\u002Fpath\n```\nAnd the offline model:\n```bash\npython .\u002Fcotracker\u002Fevaluation\u002Fevaluate.py --config-name eval_tapvid_davis_first exp_dir=.\u002Feval_outputs dataset_root=\u002Ffsx-repligen\u002Fshared\u002Fdatasets\u002Ftapvid offline_model=True window_len=60 checkpoint=.\u002Fcheckpoints\u002Fscaled_offline.pth\n```\nWe run evaluations jointly on all the target points at a time for faster inference. With such evaluations, the numbers are similar to those presented in the paper. If you want to reproduce the exact numbers from the paper, add the flag `single_point=True`. \n\nThese are the numbers that you should be able to reproduce using the released checkpoint and the current version of the codebase:\n|  | Kinetics, $\\delta_\\text{avg}^\\text{vis}$ | DAVIS, $\\delta_\\text{avg}^\\text{vis}$ |  RoboTAP, $\\delta_\\text{avg}^\\text{vis}$ | RGB-S, $\\delta_\\text{avg}^\\text{vis}$| \n| :---: |:---: | :---: | :---: | :---: |\n| CoTracker2, 27.12.23 | 61.8 | 74.6 | 69.6 | 73.4 | \n| CoTracker2.1, 25.09.24 | 63 | 76.1 | 70.6 | 79.6 | \n| CoTracker3 offline, 15.10.24 | 67.8 | **76.9** | 78.0 | **85.0** | \n| CoTracker3 online, 15.10.24 | **68.3** | 76.7 | **78.8** | 82.7  | \n\n\n## Training\n\n### Baseline\nTo train the CoTracker as described in our paper, you first need to generate annotations for [Google Kubric](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fkubric) MOVI-f dataset.\nInstructions for annotation generation can be found [here](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet).\nYou can also find a discussion on dataset generation in [this issue](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F8).\n\nOnce you have the annotated dataset, you need to make sure you followed the steps for evaluation setup and install the training dependencies:\n\n```bash\npip install pip==24.0\npip install pytorch_lightning==1.6.0 tensorboard opencv-python\n```\n\nNow you can launch training on Kubric.\nOur model was trained for 50000 iterations on 32 GPUs (4 nodes with 8 GPUs). \nModify _dataset_root_ and _ckpt_path_ accordingly before running this command. For training on 4 nodes, add `--num_nodes 4`. \n\nHere is an example of how to launch training of the online model on Kubric:\n```bash\n python train_on_kubric.py --batch_size 1 --num_steps 50000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 64 \\\n  --eval_datasets tapvid_davis_first tapvid_stacking --traj_per_sample 384 \\\n  --sliding_window_len 16 --train_datasets kubric --save_every_n_epoch 5 \\\n  --evaluate_every_n_epoch 5 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n   --num_nodes 4 --num_virtual_tracks 64 --mixed_precision --corr_radius 3 \\ \n   --wdecay 0.0005 --linear_layer_for_vis_conf --validate_at_start --add_huber_loss\n```\n\nTraining the offline model on Kubric:\n```bash\npython train_on_kubric.py --batch_size 1 --num_steps 50000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 60 \\\n --eval_datasets tapvid_davis_first tapvid_stacking --traj_per_sample 512 \\\n --sliding_window_len 60 --train_datasets kubric --save_every_n_epoch 5 \\\n --evaluate_every_n_epoch 5 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n --num_nodes 4 --num_virtual_tracks 64 --mixed_precision --offline_model \\\n --random_frame_rate --query_sampling_method random --corr_radius 3 \\\n --wdecay 0.0005 --random_seq_len --linear_layer_for_vis_conf \\\n --validate_at_start --add_huber_loss\n```\n\n### Fine-tuning with pseudo labels\nIn order to launch training with pseudo-labelling, you need to collect your own dataset of real videos. There is a sample class available in [`cotracker\u002Fdatasets\u002Freal_dataset.py`](.\u002Fcotracker\u002Fdatasets\u002Freal_dataset.py) with keyword-based filtering that we used for training. Your class should implement loading a video and storing it in the `CoTrackerData` class as a field, while pseudo labels will be generated in `train_on_real_data.py`.\n\nYou should have an existing Kubric-trained model for fine-tuning with pseudo labels. Here is an example of how you can launch fine-tuning of the online model:\n```bash\npython .\u002Ftrain_on_real_data.py --batch_size 1 --num_steps 15000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 64 \\\n --eval_datasets tapvid_stacking tapvid_davis_first --traj_per_sample 384 \\\n --save_every_n_epoch 15 --evaluate_every_n_epoch 15 --model_stride 4 \\\n --dataset_root ${path_to_your_dataset} --num_nodes 4 --real_data_splits 0 \\\n --num_virtual_tracks 64 --mixed_precision --random_frame_rate \\\n --restore_ckpt .\u002Fcheckpoints\u002Fbaseline_online.pth \\\n --lr 0.00005 --real_data_filter_sift --validate_at_start \\\n --sliding_window_len 16 --limit_samples 15000\n\n```\nAnd the offline model:\n```bash\npython train_on_real_data.py --batch_size 1 --num_steps 15000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 80 \\\n --eval_datasets tapvid_stacking tapvid_davis_first --traj_per_sample 384 --save_every_n_epoch 15 \\\n --evaluate_every_n_epoch 15 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n  --num_nodes 4 --real_data_splits 0 --num_virtual_tracks 64 --mixed_precision \\\n  --random_frame_rate --restore_ckpt .\u002Fcheckpoints\u002Fbaseline_offline.pth --lr 0.00005 \\\n  --real_data_filter_sift --validate_at_start --offline_model --limit_samples 15000\n```\n\n\n\n## Development\n\n### Building the documentation\n\nTo build CoTracker documentation, first install the dependencies:\n\n```bash\npip install sphinx\npip install sphinxcontrib-bibtex\n```\n\nThen you can use this command to generate the documentation in the `docs\u002F_build\u002Fhtml` folder:\n\n```bash\nmake -C docs html\n```\n\n\n## Previous versions\n### CoTracker v2\nYou could use CoTracker v2 with torch.hub in both offline and online modes.\n#### Offline mode: \n```pip install imageio[ffmpeg]```, then:\n```python\nimport torch\n# Download the video\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmain\u002Fassets\u002Fapple.mp4'\n\nimport imageio.v3 as iio\nframes = iio.imread(url, plugin=\"FFMPEG\")  # plugin=\"pyav\"\n\ndevice = 'cuda'\ngrid_size = 10\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)  # B T C H W\n\n# Run Offline CoTracker:\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker2\").to(device)\npred_tracks, pred_visibility = cotracker(video, grid_size=grid_size) # B T N 2,  B T N 1\n```\n#### Online mode: \n```python\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker2_online\").to(device)\n\n# Run Online CoTracker, the same model with a different API:\n# Initialize online processing\ncotracker(video_chunk=video, is_first_step=True, grid_size=grid_size)  \n\n# Process the video\nfor ind in range(0, video.shape[1] - cotracker.step, cotracker.step):\n    pred_tracks, pred_visibility = cotracker(\n        video_chunk=video[:, ind : ind + cotracker.step * 2]\n    )  # B T N 2,  B T N 1\n```\n\nCheckpoint for v2 could be downloaded with the following command:\n```bash\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker\u002Fresolve\u002Fmain\u002Fcotracker2.pth\n```\n\n### CoTracker v1\nIt is directly available via pytorch hub:\n```python\nimport torch\nimport einops\nimport timm\nimport tqdm\n\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker:v1.0\", \"cotracker_w8\")\n```\nThe old version of the code is available [here](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Ftree\u002F8d364031971f6b3efec945dd15c468a183e58212).\nYou can also download the corresponding checkpoints:\n```bash\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_4_wind_8.pth\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_4_wind_12.pth\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_8_wind_16.pth\n```\n\n## License\n\nThe majority of CoTracker is licensed under CC-BY-NC, however portions of the project are available under separate license terms: Particle Video Revisited is licensed under the MIT license, TAP-Vid and LocoTrack are licensed under the Apache 2.0 license.\n\n## Acknowledgments\n\nWe would like to thank [PIPs](https:\u002F\u002Fgithub.com\u002Faharley\u002Fpips), [TAP-Vid](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet), [LocoTrack](https:\u002F\u002Fgithub.com\u002Fcvlab-kaist\u002Flocotrack) for publicly releasing their code and data. We also want to thank [Luke Melas-Kyriazi](https:\u002F\u002Flukemelas.github.io\u002F) for proofreading the paper, [Jianyuan Wang](https:\u002F\u002Fjytime.github.io\u002F), [Roman Shapovalov](https:\u002F\u002Fshapovalov.ro\u002F) and [Adam W. Harley](https:\u002F\u002Fadamharley.com\u002F) for the insightful discussions.\n\n## Citing CoTracker\n\nIf you find our repository useful, please consider giving it a star ⭐ and citing our research papers in your work:\n```bibtex\n@inproceedings{karaev23cotracker,\n  title     = {CoTracker: It is Better to Track Together},\n  author    = {Nikita Karaev and Ignacio Rocco and Benjamin Graham and Natalia Neverova and Andrea Vedaldi and Christian Rupprecht},\n  booktitle = {Proc. {ECCV}},\n  year      = {2024}\n}\n```\n```bibtex\n@inproceedings{karaev24cotracker3,\n  title     = {CoTracker3: Simpler and Better Point Tracking by Pseudo-Labelling Real Videos},\n  author    = {Nikita Karaev and Iurii Makarov and Jianyuan Wang and Natalia Neverova and Andrea Vedaldi and Christian Rupprecht},\n  booktitle = {Proc. {arXiv:2410.11831}},\n  year      = {2024}\n}\n```\n","# CoTracker3：通过伪标签真实视频实现更简单、更优秀的点跟踪\n\n**[Meta AI Research, GenAI](https:\u002F\u002Fai.facebook.com\u002Fresearch\u002F)**；**[牛津大学 VGG](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002F)**\n\n[Nikita Karaev](https:\u002F\u002Fnikitakaraevv.github.io\u002F)，[Iurii Makarov](https:\u002F\u002Flinkedin.com\u002Fin\u002Flvoursl)，[Jianyuan Wang](https:\u002F\u002Fjytime.github.io\u002F)，[Ignacio Rocco](https:\u002F\u002Fwww.irocco.info\u002F)，[Benjamin Graham](https:\u002F\u002Fai.facebook.com\u002Fpeople\u002Fbenjamin-graham\u002F)，[Natalia Neverova](https:\u002F\u002Fnneverova.github.io\u002F)，[Andrea Vedaldi](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vedaldi\u002F)，[Christian Rupprecht](https:\u002F\u002Fchrirupp.github.io\u002F)\n\n### [项目页面](https:\u002F\u002Fcotracker3.github.io\u002F) | [论文 #1](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.07635) | [论文 #2](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.11831) |  [X 帖子](https:\u002F\u002Ftwitter.com\u002Fn_karaev\u002Fstatus\u002F1742638906355470772) | [BibTeX](#citing-cotracker)\n\n\u003Ca target=\"_blank\" href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmain\u002Fnotebooks\u002Fdemo.ipynb\">\n  \u003Cimg src=\"https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg\" alt=\"在 Colab 中打开\"\u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker\">\n  \u003Cimg alt=\"Spaces\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Spaces-blue\">\n\u003C\u002Fa>\n\n\u003Cimg width=\"1100\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_co-tracker_readme_78072623120b.png\" \u002F>\n\n**CoTracker** 是一种基于 Transformer 的快速模型，能够跟踪视频中的任意点。它为点跟踪带来了光流的一些优势。\n\nCoTracker 可以跟踪：\n\n- 视频中的 **任意像素**\n- 一组 **准密集** 的像素\n- 点可以手动选择，也可以在任意视频帧中按网格采样\n\n您可以通过我们的 [Colab 示例](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fdemo.ipynb) 或 [Hugging Face Space 🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker) 自行尝试这些跟踪模式。\n\n**更新：**\n\n- [2025年1月21日] 📦 CoTracker3 使用的 Kubric 数据集现已可用！该数据集包含 **6,000 个高分辨率序列**（512×512px，120 帧），具有轻微的相机运动，由 Kubric 引擎渲染。请在 [Hugging Face 数据集](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Ffacebook\u002FCoTracker3_Kubric) 上查看。\n\n- [2024年10月15日] 📣 我们发布了 CoTracker3！采用轻量级架构的最先进点跟踪技术，训练数据仅为先前最佳模型的 1\u002F1000。基准模型和伪标签流水线的代码以及模型检查点均已发布在仓库中。更多详情请参阅我们的 [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.11831)。\n\n- [2024年9月25日] CoTracker2.1 现已发布！该模型在 TAP-Vid 基准测试中表现更好，并沿用了原始 CoTracker 的架构。快来试试吧！\n\n- [2024年6月14日] 我们发布了用于从任意图像序列中基于点跟踪恢复相机位姿和 3D 结构的模型 [VGGSfM](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fvggsfm) 的代码！VGGSfM 是首个完全可微分的 SfM 框架，实现了规模化应用，并在标准基准测试中优于传统 SfM 方法。\n\n- [2023年12月27日] CoTracker2 现已发布！现在它可以同时跟踪更多（最多 **265*265**！）点，并且实现了更简洁、更节省内存的实现方式。它还支持在线处理。更多细节请参阅 [更新后的论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.07635)。旧版本仍可在 [此处](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Ftree\u002F8d364031971f6b3efec945dd15c468a183e58212) 获取。\n\n- [2023年9月5日] 您现在可以在本地运行我们的 Gradio 示例 [app.py](.\u002Fgradio_demo\u002Fapp.py)。\n\n## 快速入门\n使用 CoTracker 最简单的方式是从 `torch.hub` 加载预训练模型：\n\n### 离线模式：\n```pip install imageio[ffmpeg]```, 然后：\n```python\nimport torch\n# 下载视频\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fapple.mp4'\n\nimport imageio.v3 as iio\nframes = iio.imread(url, plugin=\"FFMPEG\")  # plugin=\"pyav\"\n\ndevice = 'cuda'\ngrid_size = 10\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)  # B T C H W\n\n# 运行离线 CoTracker：\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_offline\").to(device)\npred_tracks, pred_visibility = cotracker(video, grid_size=grid_size) # B T N 2,  B T N 1\n```\n### 在线模式：\n```python\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_online\").to(device)\n\n# 运行在线 CoTracker，同一模型但使用不同的 API：\n# 初始化在线处理\ncotracker(video_chunk=video, is_first_step=True, grid_size=grid_size)  \n\n# 处理视频\nfor ind in range(0, video.shape[1] - cotracker.step, cotracker.step):\n    pred_tracks, pred_visibility = cotracker(\n        video_chunk=video[:, ind : ind + cotracker.step * 2]\n    )  # B T N 2,  B T N 1\n```\n在线处理更加节省内存，适合处理较长的视频。不过，在上述示例中，视频长度是已知的！请参阅 [在线演示](.\u002Fonline_demo.py) 以了解如何从长度未知的在线流中进行跟踪。\n\n### 可视化预测轨迹：\n在 [安装](#installation-instructions) CoTracker 后，您可以使用以下代码可视化轨迹：\n```python\nfrom cotracker.utils.visualizer import Visualizer\n\nvis = Visualizer(save_dir=\".\u002Fsaved_videos\", pad_value=120, linewidth=3)\nvis.visualize(video, pred_tracks, pred_visibility)\n```\n\n我们还提供了其他与 CoTracker 交互的方式：\n\n1. 交互式 Gradio 示例：\n   - 示例可在 [`facebook\u002Fcotracker` Hugging Face Space 🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002Fcotracker) 上找到。\n   - 您也可以在本地运行 Gradio 示例，方法是安装所需包后执行 `python -m gradio_demo.app`：`pip install -r gradio_demo\u002Frequirements.txt`。\n2. Jupyter 笔记本：\n   - 您可以在 [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fdemo.ipynb) 中运行笔记本。\n   - 或者探索位于 [`notebooks\u002Fdemo.ipynb`](.\u002Fnotebooks\u002Fdemo.ipynb) 的笔记本。\n3. 您可以将 CoTracker _本地_ 安装后：\n   - 运行一个 *离线* 示例，从视频的第一帧上按网格采样 10 × 10 个点（结果将保存到 `.\u002Fsaved_videos\u002Fdemo.mp4`）：\n\n     ```bash\n     python demo.py --grid_size 10\n     ```\n    - 或者运行一个 *在线* 示例：\n\n      ```bash\n      python online_demo.py\n      ```\n\n强烈建议使用 GPU 来本地运行 CoTracker。\n\n\u003Cimg width=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_co-tracker_readme_86ea1fc6845f.gif\" \u002F>\n\n## 安装说明\n您可以通过上述方式使用 PyTorch Hub 中的预训练模型，也可以从本 GitHub 仓库安装 CoTracker。如果您需要运行我们的本地演示或对 CoTracker 进行评估\u002F训练，这是最佳方式。\n\n请确保您的系统上已安装 _PyTorch_ 和 _TorchVision_。请按照 [此处](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 的说明进行安装。我们强烈建议同时安装支持 CUDA 的 PyTorch 和 TorchVision，尽管对于小型任务，CoTracker 也可以在 CPU 上运行。\n\n\n\n\n### 安装开发版本\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\ncd co-tracker\npip install -e .\npip install matplotlib flow_vis tqdm tensorboard\n```\n\n您可以手动从以下链接下载所有 CoTracker3 检查点（基准模型和缩放模型，以及单窗口和滑动窗口架构），并将其放置在 `checkpoints` 文件夹中，如下所示：\n\n```bash\nmkdir -p checkpoints\ncd checkpoints\n# 下载在线（多窗口）模型\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_online.pth\n# 下载离线（单窗口）模型\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_offline.pth\ncd ..\n```\n您还可以下载仅在 Kubric 数据集上训练的 CoTracker3 检查点：\n```bash\n# 下载在线（滑动窗口）模型\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fbaseline_online.pth\n# 下载离线（单窗口）模型\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fbaseline_offline.pth\n```\n有关旧版检查点，请参阅 [此部分](#previous-version)。\n\n## 评估\n\n为复现论文中展示的结果，请下载以下数据集：\n\n- [TAP-Vid](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet)\n- [Dynamic Replica](https:\u002F\u002Fdynamic-stereo.github.io\u002F)\n\n并安装必要的依赖项：\n\n```bash\npip install hydra-core==1.1.0 mediapy\n```\n\n然后，执行以下命令以在 TAP-Vid DAVIS 数据集上评估在线模型：\n\n```bash\npython .\u002Fcotracker\u002Fevaluation\u002Fevaluate.py --config-name eval_tapvid_davis_first exp_dir=.\u002Feval_outputs dataset_root=your\u002Ftapvid\u002Fpath\n```\n对于离线模型：\n```bash\npython .\u002Fcotracker\u002Fevaluation\u002Fevaluate.py --config-name eval_tapvid_davis_first exp_dir=.\u002Feval_outputs dataset_root=\u002Ffsx-repligen\u002Fshared\u002Fdatasets\u002Ftapvid offline_model=True window_len=60 checkpoint=.\u002Fcheckpoints\u002Fscaled_offline.pth\n```\n为了加快推理速度，我们会一次性对所有目标点进行联合评估。采用这种评估方式得到的结果与论文中展示的数值相近。如果您希望完全复现论文中的精确数值，请添加 `single_point=True` 标志。\n\n以下是您应能使用发布的检查点和当前代码库版本复现的数值：\n|  | Kinetics, $\\delta_\\text{avg}^\\text{vis}$ | DAVIS, $\\delta_\\text{avg}^\\text{vis}$ | RoboTAP, $\\delta_\\text{avg}^\\text{vis}$ | RGB-S, $\\delta_\\text{avg}^\\text{vis}$| \n| :---: |:---: | :---: | :---: | :---: |\n| CoTracker2, 27.12.23 | 61.8 | 74.6 | 69.6 | 73.4 | \n| CoTracker2.1, 25.09.24 | 63 | 76.1 | 70.6 | 79.6 | \n| CoTracker3 离线版, 15.10.24 | 67.8 | **76.9** | 78.0 | **85.0** | \n| CoTracker3 在线版, 15.10.24 | **68.3** | 76.7 | **78.8** | 82.7  | \n\n\n## 训练\n\n### 基准\n要按照我们论文中的描述训练 CoTracker，您首先需要为 [Google Kubric](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fkubric) MOVI-f 数据集生成标注。\n标注生成说明可在 [此处](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet) 找到。关于数据集生成的讨论也可见于 [此议题](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F8)。\n\n完成标注后，您需要确保已按照评估设置步骤操作，并安装训练所需的依赖项：\n\n```bash\npip install pip==24.0\npip install pytorch_lightning==1.6.0 tensorboard opencv-python\n```\n\n现在您可以开始在 Kubric 数据集上进行训练了。我们的模型是在 32 张 GPU 上（4 个节点，每个节点 8 张 GPU）训练了 50000 次迭代。在运行此命令之前，请相应地修改 _dataset_root_ 和 _ckpt_path_。如果要在 4 个节点上训练，请添加 `--num_nodes 4`。\n\n以下是启动 Kubric 数据集上在线模型训练的示例：\n```bash\n python train_on_kubric.py --batch_size 1 --num_steps 50000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 64 \\\n  --eval_datasets tapvid_davis_first tapvid_stacking --traj_per_sample 384 \\\n  --sliding_window_len 16 --train_datasets kubric --save_every_n_epoch 5 \\\n  --evaluate_every_n_epoch 5 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n   --num_nodes 4 --num_virtual_tracks 64 --mixed_precision --corr_radius 3 \\ \n   --wdecay 0.0005 --linear_layer_for_vis_conf --validate_at_start --add_huber_loss\n```\n\n在 Kubric 数据集上训练离线模型：\n```bash\npython train_on_kubric.py --batch_size 1 --num_steps 50000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 60 \\\n --eval_datasets tapvid_davis_first tapvid_stacking --traj_per_sample 512 \\\n --sliding_window_len 60 --train_datasets kubric --save_every_n_epoch 5 \\\n --evaluate_every_n_epoch 5 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n --num_nodes 4 --num_virtual_tracks 64 --mixed_precision --offline_model \\\n --random_frame_rate --query_sampling_method random --corr_radius 3 \\\n --wdecay 0.0005 --random_seq_len --linear_layer_for_vis_conf \\\n --validate_at_start --add_huber_loss\n```\n\n### 使用伪标签进行微调\n为了启动基于伪标签的训练，你需要收集自己的真实视频数据集。在 [`cotracker\u002Fdatasets\u002Freal_dataset.py`](.\u002Fcotracker\u002Fdatasets\u002Freal_dataset.py) 中提供了一个示例类，其中包含我们用于训练的关键字过滤功能。你的类应该实现加载视频并将视频存储为 `CoTrackerData` 类的一个字段，而伪标签将在 `train_on_real_data.py` 中生成。\n\n你应该有一个已经使用 Kubric 训练好的模型，以便用伪标签进行微调。以下是启动在线模型微调的示例命令：\n```bash\npython .\u002Ftrain_on_real_data.py --batch_size 1 --num_steps 15000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 64 \\\n --eval_datasets tapvid_stacking tapvid_davis_first --traj_per_sample 384 \\\n --save_every_n_epoch 15 --evaluate_every_n_epoch 15 --model_stride 4 \\\n --dataset_root ${path_to_your_dataset} --num_nodes 4 --real_data_splits 0 \\\n --num_virtual_tracks 64 --mixed_precision --random_frame_rate \\\n --restore_ckpt .\u002Fcheckpoints\u002Fbaseline_online.pth \\\n --lr 0.00005 --real_data_filter_sift --validate_at_start \\\n --sliding_window_len 16 --limit_samples 15000\n\n```\n对于离线模型：\n```bash\npython train_on_real_data.py --batch_size 1 --num_steps 15000 \\\n --ckpt_path .\u002F --model_name cotracker_three --save_freq 200 --sequence_len 80 \\\n --eval_datasets tapvid_stacking tapvid_davis_first --traj_per_sample 384 --save_every_n_epoch 15 \\\n --evaluate_every_n_epoch 15 --model_stride 4 --dataset_root ${path_to_your_dataset} \\\n  --num_nodes 4 --real_data_splits 0 --num_virtual_tracks 64 --mixed_precision \\\n  --random_frame_rate --restore_ckpt .\u002Fcheckpoints\u002Fbaseline_offline.pth --lr 0.00005 \\\n  --real_data_filter_sift --validate_at_start --offline_model --limit_samples 15000\n```\n\n\n\n## 开发\n\n### 构建文档\n\n要构建 CoTracker 文档，首先安装依赖项：\n\n```bash\npip install sphinx\npip install sphinxcontrib-bibtex\n```\n\n然后你可以使用以下命令在 `docs\u002F_build\u002Fhtml` 文件夹中生成文档：\n\n```bash\nmake -C docs html\n```\n\n\n## 以前的版本\n### CoTracker v2\n你可以在离线和在线模式下使用 torch.hub 的 CoTracker v2。\n#### 离线模式： \n```pip install imageio[ffmpeg]```, 然后：\n```python\nimport torch\n# 下载视频\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fblob\u002Fmain\u002Fassets\u002Fapple.mp4'\n\nimport imageio.v3 as iio\nframes = iio.imread(url, plugin=\"FFMPEG\")  # plugin=\"pyav\"\n\ndevice = 'cuda'\ngrid_size = 10\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)  # B T C H W\n\n# 运行离线 CoTracker：\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker2\").to(device)\npred_tracks, pred_visibility = cotracker(video, grid_size=grid_size) # B T N 2,  B T N 1\n```\n#### 在线模式： \n```python\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker2_online\").to(device)\n\n# 运行在线 CoTracker，使用不同的 API 的同一模型：\n# 初始化在线处理\ncotracker(video_chunk=video, is_first_step=True, grid_size=grid_size)  \n\n# 处理视频\nfor ind in range(0, video.shape[1] - cotracker.step, cotracker.step):\n    pred_tracks, pred_visibility = cotracker(\n        video_chunk=video[:, ind : ind + cotracker.step * 2]\n    )  # B T N 2,  B T N 1\n```\n\nv2 的检查点可以通过以下命令下载：\n```bash\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker\u002Fresolve\u002Fmain\u002Fcotracker2.pth\n```\n\n### CoTracker v1\n它可以直接通过 pytorch hub 获取：\n```python\nimport torch\nimport einops\nimport timm\nimport tqdm\n\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker:v1.0\", \"cotracker_w8\")\n```\n旧版本的代码可以在这里找到 [here](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Ftree\u002F8d364031971f6b3efec945dd15c468a183e58212)。\n你也可以下载相应的检查点：\n```bash\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_4_wind_8.pth\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_4_wind_12.pth\nwget https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fcotracker\u002Fcotracker_stride_8_wind_16.pth\n```\n\n## 许可证\n\nCoTracker 的大部分内容采用 CC-BY-NC 许可证，但项目的部分内容则采用单独的许可条款：Particle Video Revisited 采用 MIT 许可证，TAP-Vid 和 LocoTrack 则采用 Apache 2.0 许可证。\n\n## 致谢\n\n我们感谢 [PIPs](https:\u002F\u002Fgithub.com\u002Faharley\u002Fpips)、[TAP-Vid](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Ftapnet)、[LocoTrack](https:\u002F\u002Fgithub.com\u002Fcvlab-kaist\u002Flocotrack) 公开发布他们的代码和数据。我们还要感谢 [Luke Melas-Kyriazi](https:\u002F\u002Flukemelas.github.io\u002F) 对论文的校对，以及 [Jianyuan Wang](https:\u002F\u002Fjytime.github.io\u002F)、[Roman Shapovalov](https:\u002F\u002Fshapovalov.ro\u002F) 和 [Adam W. Harley](https:\u002F\u002Fadamharley.com\u002F) 提供的富有洞见的讨论。\n\n## 引用 CoTracker\n\n如果你觉得我们的仓库很有用，请考虑给它一个星 ⭐，同时在你的工作中引用我们的研究论文：\n```bibtex\n@inproceedings{karaev23cotracker,\n  title     = {CoTracker: It is Better to Track Together},\n  author    = {Nikita Karaev and Ignacio Rocco and Benjamin Graham and Natalia Neverova and Andrea Vedaldi and Christian Rupprecht},\n  booktitle = {Proc. {ECCV}},\n  year      = {2024}\n}\n```\n```bibtex\n@inproceedings{karaev24cotracker3,\n  title     = {CoTracker3: Simpler and Better Point Tracking by Pseudo-Labelling Real Videos},\n  author    = {Nikita Karaev and Iurii Makarov and Jianyuan Wang and Natalia Neverova and Andrea Vedaldi and Christian Rupprecht},\n  booktitle = {Proc. {arXiv:2410.11831}},\n  year      = {2024}\n}\n```","# CoTracker3 快速上手指南\n\nCoTracker3 是一款基于 Transformer 的高速视频点跟踪模型，能够跟踪视频中的任意像素点或准密集点集。它结合了光流法的优势，支持离线（整体处理）和在线（流式处理）两种模式。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐) 或 macOS\n- **GPU**: 强烈推荐使用支持 CUDA 的 NVIDIA GPU（本地运行时必需以获得最佳性能）。虽然小任务可在 CPU 运行，但速度较慢。\n- **Python**: 3.8+\n\n### 前置依赖\n确保已安装 **PyTorch** 和 **TorchVision**。建议安装带有 CUDA 支持的版本以加速计算。\n\n请访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 获取适合你环境的安装命令。\n*国内用户建议使用清华源或阿里源加速 PyTorch 安装：*\n```bash\npip install torch torchvision --index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n此外，还需要安装 `ffmpeg` 用于视频读写：\n```bash\n# Ubuntu\u002FDebian\nsudo apt-get update && sudo apt-get install -y ffmpeg\n\n# macOS\nbrew install ffmpeg\n```\n\n## 2. 安装步骤\n\n你可以选择通过 `torch.hub` 直接加载预训练模型（最简单），或者克隆仓库进行本地开发。\n\n### 方式一：直接使用（推荐）\n无需克隆代码，只需安装必要的 Python 库即可通过 `torch.hub` 加载模型。\n\n```bash\npip install imageio[ffmpeg]\n# 国内加速\n# pip install imageio[ffmpeg] -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：本地开发安装\n如果你需要运行本地 Demo、评估或训练模型，请克隆仓库并安装。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\ncd co-tracker\n\n# 安装核心包\npip install -e .\n\n# 安装可视化和辅助工具依赖\npip install matplotlib flow_vis tqdm tensorboard hydra-core==1.1.0 mediapy\n\n# 国内加速\n# pip install -e . matplotlib flow_vis tqdm tensorboard hydra-core==1.1.0 mediapy -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**下载预训练权重（仅本地安装需要）：**\n如果选择本地安装，需手动下载检查点放入 `checkpoints` 文件夹：\n```bash\nmkdir -p checkpoints\ncd checkpoints\n\n# 下载 CoTracker3 在线模式模型 (滑动窗口，适合长视频)\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_online.pth\n\n# 下载 CoTracker3 离线模式模型 (单窗口，精度更高)\nwget https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fcotracker3\u002Fresolve\u002Fmain\u002Fscaled_offline.pth\n\ncd ..\n```\n*(注：国内网络下载 HuggingFace 文件可能较慢，建议使用镜像站或代理)*\n\n## 3. 基本使用\n\n以下示例展示如何加载预训练模型并跟踪视频中的网格点。\n\n### 离线模式 (Offline Mode)\n适用于已知长度的视频，一次性处理所有帧，精度通常更高。\n\n```python\nimport torch\nimport imageio.v3 as iio\n\n# 1. 准备视频数据\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fapple.mp4'\nframes = iio.imread(url, plugin=\"FFMPEG\")  # 读取视频帧\n\ndevice = 'cuda'\ngrid_size = 10  # 在第一帧采样 10x10 的点网格\n# 转换格式为 (B, T, C, H, W) 并移至 GPU\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)\n\n# 2. 加载离线模型\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_offline\").to(device)\n\n# 3. 执行跟踪\n# pred_tracks: (B, T, N, 2) 坐标; pred_visibility: (B, T, N, 1) 可见性\npred_tracks, pred_visibility = cotracker(video, grid_size=grid_size)\n```\n\n### 在线模式 (Online Mode)\n适用于长视频或实时流处理，内存效率更高，分块处理视频。\n\n```python\nimport torch\nimport imageio.v3 as iio\n\n# 准备数据 (同上)\nurl = 'https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fraw\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fapple.mp4'\nframes = iio.imread(url, plugin=\"FFMPEG\")\ndevice = 'cuda'\ngrid_size = 10\nvideo = torch.tensor(frames).permute(0, 3, 1, 2)[None].float().to(device)\n\n# 1. 加载在线模型\ncotracker = torch.hub.load(\"facebookresearch\u002Fco-tracker\", \"cotracker3_online\").to(device)\n\n# 2. 初始化在线处理\ncotracker(video_chunk=video, is_first_step=True, grid_size=grid_size)\n\n# 3. 分步处理视频\n# step 是模型内部处理的步长，按需切片输入\nfor ind in range(0, video.shape[1] - cotracker.step, cotracker.step):\n    pred_tracks, pred_visibility = cotracker(\n        video_chunk=video[:, ind : ind + cotracker.step * 2]\n    )\n```\n\n### 可视化结果\n安装本地版本后，可使用内置可视化工具将跟踪轨迹保存为视频。\n\n```python\nfrom cotracker.utils.visualizer import Visualizer\n\n# 初始化可视器\nvis = Visualizer(save_dir=\".\u002Fsaved_videos\", pad_value=120, linewidth=3)\n\n# 生成视频 (保存至 .\u002Fsaved_videos\u002Fdemo.mp4)\nvis.visualize(video, pred_tracks, pred_visibility)\n```\n\n### 命令行快速演示 (仅限本地安装)\n如果你已完整安装仓库，可直接运行脚本测试：\n\n```bash\n# 运行离线 Demo (网格采样 10x10)\npython demo.py --grid_size 10\n\n# 运行在线 Demo\npython online_demo.py\n```","某影视后期团队正在处理一段手持拍摄的纪录片素材，需要为画面中快速移动的主角添加动态模糊特效和稳定的视觉追踪标记。\n\n### 没有 co-tracker 时\n- **手动逐帧标注效率极低**：动画师必须在每一帧中手动调整跟踪点的位置，面对数百帧的视频，耗时数小时且极易疲劳出错。\n- **遮挡导致跟踪丢失**：当主角被前景物体短暂遮挡后，传统光流法或特征点匹配算法往往无法重新锁定目标，导致轨迹中断，需要人工补全。\n- **密集跟踪计算成本高昂**：若需对人物轮廓进行准稠密（quasi-dense）的全像素级跟踪以生成精确蒙版，现有工具显存占用巨大，普通工作站难以承载。\n- **动态模糊效果生硬**：由于缺乏亚像素级的精准运动矢量，后期合成的动态模糊方向与速度常与实际运动不符，视觉上显得虚假。\n\n### 使用 co-tracker 后\n- **任意点自动持续追踪**：只需在首帧点击主角身上的任意像素，co-tracker 即可利用 Transformer 架构自动推算出全程平滑轨迹，将数小时工作缩短至秒级。\n- **强大的抗遮挡能力**：即使目标被完全遮挡数秒，co-tracker 也能凭借其对视频时序的深度理解，在目标重现时瞬间重新锁定，无需人工干预。\n- **高效准稠密跟踪**：支持同时跟踪数万个像素点，能在消费级显卡上快速生成精细的运动场，轻松提取复杂的人物运动蒙版。\n- **电影级动态效果合成**：基于 co-tracker 提供的高精度像素级运动矢量，合成的动态模糊与镜头运动完美契合，显著提升了画面的真实感。\n\nco-tracker 通过将复杂的视频点跟踪任务转化为高效的自动化流程，让创作者从繁琐的逐帧修图中解放出来，专注于艺术创意的实现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_co-tracker_78072623.png","facebookresearch","Meta Research","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffacebookresearch_449342bd.png","",null,"https:\u002F\u002Fopensource.fb.com","https:\u002F\u002Fgithub.com\u002Ffacebookresearch",[85,89,92],{"name":86,"color":87,"percentage":88},"Jupyter Notebook","#DA5B0B",97.9,{"name":90,"color":91,"percentage":24},"Python","#3572A5",{"name":93,"color":94,"percentage":95},"Shell","#89e051",0,4896,364,"2026-04-12T20:11:00","NOASSERTION","Linux, macOS, Windows","强烈推荐使用支持 CUDA 的 NVIDIA GPU（虽可运行于 CPU，但仅限小型任务）；训练需多卡环境（原文示例为 32 张 GPU），具体显存大小未说明，建议 8GB+ 以处理视频序列","未说明（训练示例使用 4 个节点，推断需要较大内存）",{"notes":104,"python":105,"dependencies":106},"1. 强烈建议安装带有 CUDA 支持的 PyTorch 和 TorchVision，否则仅能处理小型任务。\n2. 可通过 torch.hub 直接加载预训练模型，或从 GitHub 克隆源码进行本地安装。\n3. 训练需要生成 Google Kubric MOVI-f 数据集的标注，且原文示例训练配置为 32 张 GPU（4 节点 x8 卡）。\n4. 提供离线（offline）和在线（online）两种推理模式，在线模式更节省显存，适合长视频。","未说明（需兼容 PyTorch 及 torch.hub）",[107,108,109,110,111,112,113,114,115,116],"torch","torchvision","imageio[ffmpeg]","matplotlib","flow_vis","tqdm","tensorboard","hydra-core==1.1.0","mediapy","pytorch_lightning==1.6.0",[16,29],[119,120,121],"optical-flow","point-tracking","track-anything","2026-03-27T02:49:30.150509","2026-04-13T23:54:31.423498",[125,130,135,140,145,150],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},32143,"使用 24GB 显存的显卡（如 RTX 3090）训练模型时遇到\"CUDA out of memory\"错误，如何解决？","可以通过以下两种方法降低显存占用以成功训练：\n1. 启用 bf16 精度训练：在 train.py 第 612 行设置 `precision=\"bf16\"`。\n2. 使用梯度检查点（Gradient Checkpointing）修改代码：\n   - 将 `cotracker\u002Fmodels\u002Fcore\u002Fcotracker\u002Fcotracker.py` 第 261 行替换为：\n     `fmaps = torch.utils.checkpoint.checkpoint(self.fnet, video.reshape(-1, C, H, W), use_reentrant=False).reshape(B, -1, self.latent_dim, H \u002F\u002F self.stride, W \u002F\u002F self.stride)`\n   - 将同一文件第 146 行替换为：\n     `delta = torch.utils.checkpoint.checkpoint(self.updateformer, x, use_reentrant=False)`","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F65",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},32144,"为什么训练时无法使用大于 1 的 batch_size？如何支持多批次训练？","早期版本代码中存在 `assert B==1` 的限制导致无法使用多批次。维护者已修复该问题（参见提交记录 f084a93）。如果需要手动修复或进行多批次推理，需修改 `predictor.py`：\n1. 在处理 support_grid 时（约第 125-130 行），确保 grid_pts 重复 B 次以匹配维度：`grid_pts = grid_pts.repeat(B, 1, 1)`。\n2. 在处理 mask 时（约第 176 行），修改为支持批量维度：`mask = (arange \u003C queries[:, None, :, 0]).unsqueeze(-1).repeat(1, 1, 1, 2)`。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F36",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},32145,"如何绘制预测点的轨迹图？为什么我的结果与 README 中的示例不同？","如果结果与预期不符，通常是因为输入了分割掩码（segm_mask）。当提供掩码时，模型仅估计物体点的运动，无法利用背景点来补偿相机运动，从而导致轨迹异常。\n解决方法：尝试在不提供掩码的情况下运行，或使用以下命令格式：\n`python demo.py --grid_size 30 --video_path .\u002Fbmx-bumps.mp4 --mask_path .\u002Fmask.png`\n确保 Visualizer 参数设置正确，例如 `tracks_leave_trace=-1` 以保留完整轨迹。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F23",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},32146,"在自动驾驶等场景中，目标被遮挡后跟踪点漂移到其他物体上，有什么解决办法？","这是遮挡情况下的常见挑战。虽然 Issue 中未给出直接的代码修复，但讨论指出在使用特定点数跟踪时，一旦目标被遮挡，模型容易跟随其他物体。建议对比使用“网格点（grid）”与“特定点（points）”的效果。通常情况下，密集网格跟踪能提供更好的上下文信息，可能在遮挡恢复上表现更稳健，具体需根据场景测试哪种方式（点或网格）效果更佳。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F13",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},32147,"如何将 CoTracker 模型转换为 ONNX 格式？遇到断言错误（assert B == 1）怎么办？","转换失败通常是因为代码中包含动态形状判断或断言（如 `assert B == 1`），ONNX 导出器将其视为常量。警告信息表明张量到布尔值的转换会导致追踪不正确。\n解决方法：需要修改源码移除或绕过这些断言和动态判断，使其兼容静态图导出。注意 `queries` 的 N 维度目前可能仍难以设置为动态轴，需进一步调整模型输入处理逻辑以完全支持动态 Batch Size 和点数。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fco-tracker\u002Fissues\u002F10",{"id":151,"question_zh":152,"answer_zh":153,"source_url":129},32148,"训练中的 attention_mask 和 track_mask 有什么作用？可以移除它们吗？","attention_mask 的作用是确保模型仅从查询点所在的窗口开始跟踪，避免模型尝试跟踪未来窗口中才会被查询的点（这些点可能不可见，且会影响性能）。track_mask 用于将查询帧定位在窗口内。根据维护者回复，track_mask 并非绝对必要，可以安全移除；但 attention_mask 对于防止“窥探未来”至关重要，建议保留以保证性能。",[]]