[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ArrowLuo--CLIP4Clip":3,"tool-ArrowLuo--CLIP4Clip":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":76,"owner_email":75,"owner_twitter":75,"owner_website":77,"owner_url":78,"languages":79,"stars":84,"forks":85,"last_commit_at":86,"license":87,"difficulty_score":88,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":106,"github_topics":109,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":125,"updated_at":126,"faqs":127,"releases":161},7910,"ArrowLuo\u002FCLIP4Clip","CLIP4Clip","An official implementation for \"CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval\"","CLIP4Clip 是一个基于 CLIP 模型的视频 - 文本检索开源项目，旨在实现端到端的视频片段搜索。它主要解决了如何精准理解视频内容并将其与自然语言描述进行高效匹配的问题，让用户能通过文字快速找到对应的视频片段。\n\n该工具特别适合人工智能研究人员、开发者以及对多模态学习感兴趣的技术人员使用。其核心亮点在于深入研究了三种不同的相似度计算方法（无参数型、序列型和紧密型），并在 MSR-VTT、MSVD、ActivityNet 等多个权威数据集上取得了业界领先的成果。此外，CLIP4Clip 灵活支持 ViT-B\u002F32 和 ViT-B\u002F16 等多种预训练模型，并提供了从数据预处理、视频压缩加速到模型训练与评估的完整代码实现。无论是希望复现论文实验的学者，还是想要构建视频搜索应用的工程师，都能利用该项目快速搭建高性能的检索系统。","# CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval\n\n(**July 28, 2021**) Add ViT-B\u002F16 with an extra `--pretrained_clip_name`\n\n(**Apr. 22, 2021**) First version \n\nThe implementation of paper [**CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.08860). \n\nCLIP4Clip is a video-text retrieval model based on [CLIP (ViT-B)](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP). We investigate three similarity calculation approaches: parameter-free type, sequential type, and tight type, in this work. The model achieve SOTA results on MSR-VTT, MSVD, LSMDC, ActivityNet, and DiDeMo.\n\n![CLIP4Clip](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArrowLuo_CLIP4Clip_readme_78d05eca5aed.png)\n\n## Requirement\n```sh\n# From CLIP\nconda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=11.0\npip install ftfy regex tqdm\npip install opencv-python boto3 requests pandas\n```\n\n## Data Preparing\n\n**For MSRVTT**\n\nThe official data and video links can be found in [link](http:\u002F\u002Fms-multimedia-challenge.com\u002F2017\u002Fdataset). \n\nFor the convenience, you can also download the splits and captions by,\n```sh\nwget https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Freleases\u002Fdownload\u002Fv0.0\u002Fmsrvtt_data.zip\n```\n\nBesides, the raw videos can be found in [sharing](https:\u002F\u002Fgithub.com\u002Fm-bain\u002Ffrozen-in-time#-finetuning-benchmarks-msr-vtt) from *Frozen️ in Time*, i.e.,\n```sh\nwget https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~maxbain\u002Ffrozen-in-time\u002Fdata\u002FMSRVTT.zip\n```\n\n**For MSVD**\n\nRaw videos can be download from [link](https:\u002F\u002Fwww.cs.utexas.edu\u002Fusers\u002Fml\u002Fclamp\u002FvideoDescription\u002F). \n\nThe splits and `raw_captions` can be found in the wonderful job [collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Fblob\u002Fmaster\u002Fmisc\u002Fdatasets\u002Fmsvd\u002FREADME.md). For the convenience, you can also download them by,\n```sh\nwget https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Freleases\u002Fdownload\u002Fv0.0\u002Fmsvd_data.zip\n```\n\n**For LSMDC**\n\nYou must obtain permission from MPII to download and use the data. The download link is [here](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fdescribingmovies\u002Fdownload).\nThe 1000 test clips data is [link](http:\u002F\u002Fwww.google.com\u002Furl?q=http%3A%2F%2Fdatasets.d2.mpi-inf.mpg.de%2FmovieDescription%2Fprotected%2Flsmdc2016%2FLSMDC16_challenge_1000_publictect.csv&sa=D&sntz=1&usg=AFQjCNGIaGVhCeb6zNfUs2UL1zNzoEtaSg). Read our paper and the [dataloader](.\u002Fdataloaders\u002Fdataloader_lsmdc_retrieval.py) for more information.\n\n**For ActivityNet**\n\nThe official websit has made the full dataset available on Google and Baidu drives, see more information at [here](http:\u002F\u002Factivity-net.org\u002Fdownload.html) . The splits can be found in the job [collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Ftree\u002Fmaster\u002Fmisc\u002Fdatasets\u002Factivity-net).\n\n**For DiDeMo**\n\nRaw videos can be download from [LisaAnne\u002FLocalizingMoments](https:\u002F\u002Fgithub.com\u002FLisaAnne\u002FLocalizingMoments). The splits can be found in the job [collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Ftree\u002Fmaster\u002Fmisc\u002Fdatasets\u002Fdidemo\u002FREADME.md).\n\n\n## Compress Video for Speed-up (optional)\n```sh\npython preprocess\u002Fcompress_video.py --input_root [raw_video_path] --output_root [compressed_video_path]\n```\nThis script will compress the video to *3fps* with width *224* (or height *224*). Modify the variables for your customization.\n\n## How to Run \n\n>`--features_path` is the video root path\n> \n>`--linear_patch` can be set with `2d` or `3d`\n> \n> `--sim_header` can be set with `meanP`, `seqLSTM`, `seqTransf`, or `tightTransf`\n> \n> `--pretrained_clip_name` can be set with `ViT-B\u002F32` or `ViT-B\u002F16`\n> \n> `--resume_model` can be used to reload the saved optimizer state to continuely train the model, **Note**: need to set the corresponding chechpoint via `--init_model` simultaneously. \n\nread our paper for more details on `--linear_patch` and `--sim_header`. Test more hyperparameters for better performance. \n\nDownload CLIP (ViT-B\u002F32) weight,\n```sh\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af\u002FViT-B-32.pt\n```\nor, download CLIP (ViT-B\u002F16) weight,\n```sh\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f\u002FViT-B-16.pt\n```\n\nThen, run\n\n\n*The CLIP (ViT-B\u002F32) is the default setting in the paper, replacing with the ViT-B\u002F16 for better performance.*\n\n### MSRVTT\n\n```sh\nDATA_PATH=[Your MSRVTT data and videos path]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=0 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--train_csv ${DATA_PATH}\u002FMSRVTT_train.9k.csv \\\n--val_csv ${DATA_PATH}\u002FMSRVTT_JSFUSION_test.csv \\\n--data_path ${DATA_PATH}\u002FMSRVTT_data.json \\\n--features_path ${DATA_PATH}\u002FMSRVTT_Videos \\\n--output_dir ckpts\u002Fckpt_msrvtt_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype msrvtt --expand_msrvtt_sentences  \\\n--feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### MSVD\n```sh\nDATA_PATH=[Your MSVD data and videos path]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FMSVD_Videos \\\n--output_dir ckpts\u002Fckpt_msvd_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype msvd \\\n--feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0 --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### LSMDC\n```sh\nDATA_PATH=[Your LSMDC data and videos path]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FLSMDC_Videos \\\n--output_dir ckpts\u002Fckpt_lsmdc_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype lsmdc --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### ActivityNet\nActivityNet is regarded as video-paragraph retrieval in our setting, thus, need more GPUs (or run with multi-node).\n```sh\nDATA_PATH=[Your ActivityNet data and videos path]\npython -m torch.distributed.launch --nproc_per_node=8 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FActivity_Videos \\\n--output_dir ckpts\u002Fckpt_activity_retrieval_looseType \\\n--lr 1e-4 --max_words 64 --max_frames 64 --batch_size_val 16 \\\n--datatype activity --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### DiDeMo\nDiDeMo is regarded as video-paragraph retrieval in our setting, thus, need more GPUs (or run with multi-node).\n```sh\nDATA_PATH=[Your DiDeMo data and videos path]\npython -m torch.distributed.launch --nproc_per_node=8 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FDiDeMo_Videos \\\n--output_dir ckpts\u002Fckpt_didemo_retrieval_looseType \\\n--lr 1e-4 --max_words 64 --max_frames 64 --batch_size_val 16 \\\n--datatype didemo --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n# Citation\nIf you find CLIP4Clip useful in your work, you can cite the following paper:\n```bibtex\n@Article{Luo2021CLIP4Clip,\n  author  = {Huaishao Luo and Lei Ji and Ming Zhong and Yang Chen and Wen Lei and Nan Duan and Tianrui Li},\n  title   = {{CLIP4Clip}: An Empirical Study of CLIP for End to End Video Clip Retrieval},\n  journal = {arXiv preprint arXiv:2104.08860},\n  year    = {2021},\n}\n```\n\n# Acknowledgments\nOur code is based on [CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) and [UniVL](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FUniVL).\n","# CLIP4Clip：CLIP在端到端视频片段检索中的实证研究\n\n(**2021年7月28日**) 添加了ViT-B\u002F16，并增加了一个`--pretrained_clip_name`参数。\n\n(**2021年4月22日**) 初版\n\n这是论文【**CLIP4Clip：CLIP在端到端视频片段检索中的实证研究**】的实现，该论文发表于[arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.08860)。\n\nCLIP4Clip是一个基于[CLIP (ViT-B)](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP)的视频-文本检索模型。在本工作中，我们探讨了三种相似度计算方法：无参数型、序列型和紧密型。该模型在MSR-VTT、MSVD、LSMDC、ActivityNet和DiDeMo数据集上均取得了当前最优性能。\n\n![CLIP4Clip](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArrowLuo_CLIP4Clip_readme_78d05eca5aed.png)\n\n## 环境要求\n```sh\n# 基于CLIP\nconda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=11.0\npip install ftfy regex tqdm\npip install opencv-python boto3 requests pandas\n```\n\n## 数据准备\n\n**针对MSRVTT**\n\n官方数据及视频链接可在[这里](http:\u002F\u002Fms-multimedia-challenge.com\u002F2017\u002Fdataset)找到。\n\n为方便起见，您也可以通过以下命令下载划分和字幕：\n```sh\nwget https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Freleases\u002Fdownload\u002Fv0.0\u002Fmsrvtt_data.zip\n```\n\n此外，原始视频可从*Frozen in Time*的共享资源中获取，具体如下：\n```sh\nwget https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~maxbain\u002Ffrozen-in-time\u002Fdata\u002FMSRVTT.zip\n```\n\n**针对MSVD**\n\n原始视频可从[这里](https:\u002F\u002Fwww.cs.utexas.edu\u002Fusers\u002Fml\u002Fclamp\u002FvideoDescription\u002F)下载。\n\n划分和`raw_captions`可在优秀的项目[collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Fblob\u002Fmaster\u002Fmisc\u002Fdatasets\u002Fmsvd\u002FREADME.md)中找到。为方便起见，您也可以通过以下命令下载：\n```sh\nwget https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Freleases\u002Fdownload\u002Fv0.0\u002Fmsvd_data.zip\n```\n\n**针对LSMDC**\n\n您必须获得MPII的许可才能下载和使用该数据集。下载链接在此处：[这里](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fdescribingmovies\u002Fdownload)。\n测试集的1000个片段数据可在[这里](http:\u002F\u002Fwww.google.com\u002Furl?q=http%3A%2F%2Fdatasets.d2.mpi-inf.mpg.de%2FmovieDescription%2Fprotected%2Flsmdc2016%2FLSMDC16_challenge_1000_publictect.csv&sa=D&sntz=1&usg=AFQjCNGIaGVhCeb6zNfUs2UL1zNzoEtaSg)找到。更多信息请参阅我们的论文以及[dataloader](.\u002Fdataloaders\u002Fdataloader_lsmdc_retrieval.py)。\n\n**针对ActivityNet**\n\n官方网站已将完整数据集上传至Google Drive和百度网盘，详情请见[这里](http:\u002F\u002Factivity-net.org\u002Fdownload.html)。划分可在[collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Ftree\u002Fmaster\u002Fmisc\u002Fdatasets\u002Factivity-net)项目中找到。\n\n**针对DiDeMo**\n\n原始视频可从[LisaAnne\u002FLocalizingMoments](https:\u002F\u002Fgithub.com\u002FLisaAnne\u002FLocalizingMoments)下载。划分则可在[collaborative-experts](https:\u002F\u002Fgithub.com\u002Falbanie\u002Fcollaborative-experts\u002Ftree\u002Fmaster\u002Fmisc\u002Fdatasets\u002Fdidemo\u002FREADME.md)项目中找到。\n\n## 视频压缩以提升速度（可选）\n```sh\npython preprocess\u002Fcompress_video.py --input_root [原始视频路径] --output_root [压缩后视频路径]\n```\n此脚本会将视频压缩至*3fps*，宽度为*224*（或高度为*224*）。您可以根据需要修改相关参数。\n\n## 运行方法\n\n>`--features_path` 是视频根目录路径\n> \n>`--linear_patch` 可设置为 `2d` 或 `3d`\n> \n> `--sim_header` 可设置为 `meanP`、`seqLSTM`、`seqTransf` 或 `tightTransf`\n> \n> `--pretrained_clip_name` 可设置为 `ViT-B\u002F32` 或 `ViT-B\u002F16`\n> \n> `--resume_model` 可用于重新加载保存的优化器状态，以继续训练模型，**注意**：需同时通过`--init_model`指定相应的检查点。\n\n有关`--linear_patch`和`--sim_header`的更多细节，请参阅我们的论文。尝试调整更多超参数以获得更好的性能。\n\n下载CLIP (ViT-B\u002F32)权重：\n```sh\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af\u002FViT-B-32.pt\n```\n或者，下载CLIP (ViT-B\u002F16)权重：\n```sh\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f\u002FViT-B-16.pt\n```\n\n然后运行：\n\n*论文中默认使用CLIP (ViT-B\u002F32)，但为了获得更好的性能，可以替换为ViT-B\u002F16。*\n\n### MSRVTT\n\n```sh\nDATA_PATH=[您的MSRVTT数据和视频路径]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=0 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--train_csv ${DATA_PATH}\u002FMSRVTT_train.9k.csv \\\n--val_csv ${DATA_PATH}\u002FMSRVTT_JSFUSION_test.csv \\\n--data_path ${DATA_PATH}\u002FMSRVTT_data.json \\\n--features_path ${DATA_PATH}\u002FMSRVTT_Videos \\\n--output_dir ckpts\u002Fckpt_msrvtt_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype msrvtt --expand_msrvtt_sentences  \\\n--feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### MSVD\n```sh\nDATA_PATH=[您的MSVD数据和视频路径]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FMSVD_Videos \\\n--output_dir ckpts\u002Fckpt_msvd_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype msvd \\\n--feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0 --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### LSMDC\n```sh\nDATA_PATH=[您的LSMDC数据和视频路径]\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FLSMDC_Videos \\\n--output_dir ckpts\u002Fckpt_lsmdc_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype lsmdc --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### ActivityNet\n在我们的设置中，ActivityNet被视为视频-段落检索任务，因此需要更多的GPU（或采用多节点运行）。\n```sh\nDATA_PATH=[您的ActivityNet数据和视频路径]\npython -m torch.distributed.launch --nproc_per_node=8 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FActivity_Videos \\\n--output_dir ckpts\u002Fckpt_activity_retrieval_looseType \\\n--lr 1e-4 --max_words 64 --max_frames 64 --batch_size_val 16 \\\n--datatype activity --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### DiDeMo\n在我们的场景中，DiDeMo 被视为视频-段落检索任务，因此需要更多的 GPU（或使用多节点运行）。\n```sh\nDATA_PATH=[您存放 DiDeMo 数据和视频的路径]\npython -m torch.distributed.launch --nproc_per_node=8 \\\nmain_task_retrieval.py --do_train --num_thread_reader=2 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--data_path ${DATA_PATH} \\\n--features_path ${DATA_PATH}\u002FDiDeMo_Videos \\\n--output_dir ckpts\u002Fckpt_didemo_retrieval_looseType \\\n--lr 1e-4 --max_words 64 --max_frames 64 --batch_size_val 16 \\\n--datatype didemo --feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0  --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n# 引用\n如果您在工作中觉得 CLIP4Clip 很有用，可以引用以下论文：\n```bibtex\n@Article{Luo2021CLIP4Clip,\n  author  = {Huaishao Luo 和 Lei Ji 和 Ming Zhong 和 Yang Chen 和 Wen Lei 和 Nan Duan 和 Tianrui Li},\n  title   = {{CLIP4Clip}: 一种针对端到端视频片段检索的 CLIP 实证研究},\n  journal = {arXiv 预印本 arXiv:2104.08860},\n  year    = {2021},\n}\n```\n\n# 致谢\n我们的代码基于 [CLIP](https:\u002F\u002Fgithub.com\u002Fopenai\u002FCLIP) 和 [UniVL](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FUniVL)。","# CLIP4Clip 快速上手指南\n\nCLIP4Clip 是一个基于 CLIP 模型的视频 - 文本检索工具，支持端到端的视频片段检索。它在 MSR-VTT、MSVD、LSMDC、ActivityNet 和 DiDeMo 等多个数据集上取得了 SOTA 结果。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐)\n- **GPU**: 支持 CUDA 的 NVIDIA 显卡（训练建议多卡）\n- **Python**: 3.x\n- **CUDA**: 11.0\n\n### 前置依赖安装\n建议使用 Conda 创建独立环境并安装依赖：\n\n```sh\n# 创建并激活环境（可选）\nconda create -n clip4clip python=3.8\nconda activate clip4clip\n\n# 安装 PyTorch 及相关组件\nconda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=11.0\n\n# 安装其他 Python 依赖\npip install ftfy regex tqdm\npip install opencv-python boto3 requests pandas\n```\n\n> **提示**：国内用户可使用清华或阿里镜像源加速 pip 安装，例如：`pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple \u003Cpackage>`\n\n## 2. 安装步骤\n\n克隆项目代码并下载预训练权重：\n\n```sh\n# 克隆仓库（假设已 git clone 本项目）\ncd CLIP4Clip\n\n# 下载 CLIP (ViT-B\u002F32) 预训练权重（默认）\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af\u002FViT-B-32.pt\n\n# 或者下载性能更好的 CLIP (ViT-B\u002F16) 权重\nwget -P .\u002Fmodules https:\u002F\u002Fopenaipublic.azureedge.net\u002Fclip\u002Fmodels\u002F5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f\u002FViT-B-16.pt\n```\n\n## 3. 数据准备与预处理\n\n### 下载数据集\n以 **MSRVTT** 为例，下载处理好的分割文件和字幕：\n\n```sh\nwget https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Freleases\u002Fdownload\u002Fv0.0\u002Fmsrvtt_data.zip\nunzip msrvtt_data.zip\n```\n\n原始视频需从官方渠道或第三方存储获取（参考 README 中的链接）。其他数据集（MSVD, LSMDC, ActivityNet, DiDeMo）同理。\n\n### 视频压缩（可选，加速读取）\n将视频压缩为 3fps，分辨率宽或高为 224：\n\n```sh\npython preprocess\u002Fcompress_video.py --input_root [raw_video_path] --output_root [compressed_video_path]\n```\n\n## 4. 基本使用\n\n以下是在 **MSRVTT** 数据集上进行训练的最低限度示例命令。请替换 `[Your MSRVTT data and videos path]` 为实际路径。\n\n```sh\nDATA_PATH=[Your MSRVTT data and videos path]\n\npython -m torch.distributed.launch --nproc_per_node=4 \\\nmain_task_retrieval.py --do_train --num_thread_reader=0 \\\n--epochs=5 --batch_size=128 --n_display=50 \\\n--train_csv ${DATA_PATH}\u002FMSRVTT_train.9k.csv \\\n--val_csv ${DATA_PATH}\u002FMSRVTT_JSFUSION_test.csv \\\n--data_path ${DATA_PATH}\u002FMSRVTT_data.json \\\n--features_path ${DATA_PATH}\u002FMSRVTT_Videos \\\n--output_dir ckpts\u002Fckpt_msrvtt_retrieval_looseType \\\n--lr 1e-4 --max_words 32 --max_frames 12 --batch_size_val 16 \\\n--datatype msrvtt --expand_msrvtt_sentences \\\n--feature_framerate 1 --coef_lr 1e-3 \\\n--freeze_layer_num 0 --slice_framepos 2 \\\n--loose_type --linear_patch 2d --sim_header meanP \\\n--pretrained_clip_name ViT-B\u002F32\n```\n\n### 关键参数说明\n- `--features_path`: 视频文件根目录。\n- `--linear_patch`: 特征提取方式，可选 `2d` 或 `3d`。\n- `--sim_header`: 相似度计算方式，可选 `meanP`, `seqLSTM`, `seqTransf`, `tightTransf`。\n- `--pretrained_clip_name`: 预训练模型版本，可选 `ViT-B\u002F32` 或 `ViT-B\u002F16`（推荐后者以获得更好性能）。\n- `--nproc_per_node`: 使用的 GPU 数量。\n\n> **注意**：对于 ActivityNet 和 DiDeMo 等视频 - 段落检索任务，建议增加 `--nproc_per_node` 至 8 或更多，并调整 `--max_words` 和 `--max_frames` 参数。","某视频流媒体平台的内容运营团队需要从海量无标签的视频库中，快速检索出符合特定剧情描述的片段以制作宣传短片。\n\n### 没有 CLIP4Clip 时\n- **检索效率低下**：依赖人工打标签或简单的关键词匹配，无法理解“夕阳下两人奔跑”这类复杂的语义描述，导致大量相关视频被遗漏。\n- **开发成本高昂**：若要构建自定义检索系统，需分别训练视频编码器和文本编码器，并设计复杂的对齐算法，耗时数月且需要大量标注数据。\n- **跨模态鸿沟难越**：传统方法难以捕捉视频画面动态变化与文本描述之间的深层关联，搜索结果的准确度（Recall@1）往往不尽如人意。\n- **泛化能力弱**：针对新领域的视频内容（如从电影切换到体育集锦），模型需要重新收集数据并从头训练，无法直接复用。\n\n### 使用 CLIP4Clip 后\n- **语义检索精准**：利用基于 CLIP 的端到端架构，直接输入自然语言描述即可精准定位视频片段，轻松处理复杂场景和动作描述。\n- **落地速度飞快**：借助预训练的 ViT-B\u002F32 权重和成熟的相似度计算模块（如 seqTransf），团队仅需数天即可完成数据微调并部署上线。\n- **性能达到顶尖**：在 MSR-VTT 等基准测试中验证的 SOTA 效果，显著提升了实际业务中的检索命中率，大幅减少人工二次筛选的工作量。\n- **零样本泛化强**：得益于 CLIP 强大的预训练知识，模型在面对未见过的视频类型时，依然能保持较高的检索鲁棒性，无需频繁重训。\n\nCLIP4Clip 通过将先进的图文预训练模型迁移至视频领域，彻底解决了跨模态视频检索中“理解难、训练慢、精度低”的核心痛点。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FArrowLuo_CLIP4Clip_25514da7.png","ArrowLuo","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FArrowLuo_838ecc14.png","Dig deeper to access water. Be patient and persistent.",null,"CN","https:\u002F\u002Fscholar.google.com\u002Fcitations?user=ni7XNWMAAAAJ&hl=zh-CN","https:\u002F\u002Fgithub.com\u002FArrowLuo",[80],{"name":81,"color":82,"percentage":83},"Python","#3572A5",100,1026,135,"2026-04-08T09:01:45","MIT",4,"Linux","必需 NVIDIA GPU，支持 CUDA 11.0。根据运行命令 (--nproc_per_node=4 或 8)，推荐多卡环境（4-8 张显卡），单卡显存建议 16GB+ 以支持 batch_size=128 的训练","未说明",{"notes":93,"python":94,"dependencies":95},"1. 必须预先下载 CLIP 预训练权重文件 (ViT-B\u002F32 或 ViT-B\u002F16) 到 .\u002Fmodules 目录。\n2. 支持多种视频检索数据集 (MSRVTT, MSVD, LSMDC, ActivityNet, DiDeMo)，部分数据集需单独申请权限或手动下载。\n3. 可选使用脚本压缩视频至 3fps 以提升处理速度。\n4. 对于 ActivityNet 和 DiDeMo 数据集，由于是视频 - 段落检索任务，明确需要更多 GPU (8 卡) 或多节点运行。","未说明 (基于 PyTorch 1.7.1 环境，通常对应 Python 3.6-3.8)",[96,97,98,99,100,101,102,103,104,105],"pytorch==1.7.1","torchvision","cudatoolkit==11.0","ftfy","regex","tqdm","opencv-python","boto3","requests","pandas",[14,107,52,108],"其他","视频",[110,111,112,113,114,115,116,117,118,119,120,121,122,123,124],"video-text-retrieval","multimodal-learning","multimodality","multimodal","search","ranking","retrieval-model","retrieval","msrvtt","lsmdc","msvd","activitynet","didemo","video-clip-retrieval","clip","2026-03-27T02:49:30.150509","2026-04-16T08:14:13.189110",[128,133,138,143,148,152,157],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},35421,"在 ActivityNet 数据集上复现 CLIP4Clip (meanP) 时，性能远低于论文报告值（如 R@1 37.9 vs 40.5），可能是什么原因？","性能差异可能由以下因素导致：\n1. **批次大小 (Batch Size)**：较大的批次大小通常能带来更好的效果。有用户反馈将 batch size 从 64 增加到 128 后，R@1 从较低水平提升到了 39.7-41.0 左右，但仍略低于报告值。\n2. **硬件与环境差异**：不同的 GPU 设备、PyTorch 版本可能导致结果波动。\n3. **数据规模**：数据集大小也可能影响收敛效果。\n建议尝试增大 batch size（如 128），尽管这会显著增加训练成本和时间。","https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Fissues\u002F84",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},35422,"如何获取项目中使用的预训练权重文件 \"cross_pytorch_model.bin\"？","根据维护者回复，该权重文件对应的论文当时仍在期刊审稿中，因此尚未公开提供下载链接。日志中出现的 \"Weight doesn't exsits\" 提示意味着你需要自行训练模型或等待官方后续发布。","https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Fissues\u002F72",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},35423,"在 MSRVTT 数据集上训练时遇到 `subprocess.CalledProcessError` 错误，且退出状态为 1，如何解决？","该错误通常与视频文件的路径或命名格式不正确有关。\n1. **检查目录结构**：确保视频文件位于正确的目录下（例如 `all_videos` 文件夹）。\n2. **检查文件命名**：确认视频文件命名是否符合代码预期（例如 `video0.mp4`, `video1.mp4` ... `video9999.mp4`），或者检查代码是否期望文件夹结构而非直接的文件。\n3. **对比路径配置**：仔细核对命令行参数中的 `--features_path` 和 `--data_path` 是否指向了包含正确结构数据的目录。","https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Fissues\u002F71",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},35424,"在 DiDeMo 数据集上复现 `meanP` 和 `seqTransf` 模型时，结果远低于论文数值（如 R@1 40.5 vs 43.4），有哪些调优建议？","有用户发现调整训练轮数（epochs）可以改善结果。具体来说，将 epoch 数量从 10 减少到 5 后，`seqTransf` 配置的 R@1 从较低值提升到了 41.6。虽然仍略低于论文报告的 42.8，但这表明超参数（特别是训练时长）对最终性能有显著影响，建议尝试不同的 epoch 设置以避免过拟合或欠拟合。","https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Fissues\u002F62",{"id":149,"question_zh":150,"answer_zh":151,"source_url":137},35425,"在新数据集上训练时损失函数不收敛（loss 为 0 或不变），应该如何调整？","当在新数据集上遇到损失不收敛的问题时，建议检查并调整超参数，特别是**学习率 (learning rate)**。尝试降低学习率可能有助于模型收敛。此外，确保数据预处理和加载逻辑与新数据集的特征相匹配。",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},35426,"无法完全复现论文中的 MSRVTT 结果（如 R@1 43.2 vs 44.5），即使配置相同，这是正常现象吗？","维护者表示，如果未修改任何代码但结果仍有差距，这可能是由于复现稳定性问题导致的，这种差距在某些情况下是存在的。建议在研究中如果无法完全复现官方数值，可以如实报告自己在相同环境和数据集下得到的实现结果，并进行对比分析。","https:\u002F\u002Fgithub.com\u002FArrowLuo\u002FCLIP4Clip\u002Fissues\u002F25",{"id":158,"question_zh":159,"answer_zh":160,"source_url":137},35427,"分布式训练 (DDP) 时，每台机器启动的进程数是 GPU 数量的两倍（其中一半休眠），这是什么原因？","这是一个已知但未完全解决的问题。用户观察到在多机多卡环境下，每台机器会先启动与 GPU 数量一致的进程，随后又派生出相同数量的子进程，导致总进程数翻倍且部分休眠。目前社区中尚未给出确切的修复方案，可能与特定的 PyTorch DDP 启动方式或环境配置有关，建议关注官方后续更新或尝试不同的 DDP 启动脚本。",[162],{"id":163,"version":164,"summary_zh":165,"released_at":166},280492,"v0.0","初始化","2021-04-22T08:23:21"]