[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-v-iashin--video_features":3,"tool-v-iashin--video_features":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 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":77,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":10,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":108,"github_topics":112,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":132,"updated_at":133,"faqs":134,"releases":165},5466,"v-iashin\u002Fvideo_features","video_features","Extract video features from raw videos using multiple GPUs. We support RAFT flow frames as well as S3D, I3D, R(2+1)D, VGGish, CLIP, and TIMM models.","video_features 是一款专为高效提取视频特征设计的开源工具，支持利用多块 GPU 并行处理原始视频数据。它解决了在大规模视频分析中，传统单线程处理方式速度慢、难以同时整合视觉、光流和音频等多模态信息的痛点。\n\n该工具非常适合计算机视觉研究人员、AI 开发者以及需要构建视频理解数据集的团队使用。其核心亮点在于广泛的模型兼容性：不仅内置了 S3D、I3D、R(2+1)D 等主流动作识别模型和 VGGish 音频识别模型，还能提取 RAFT 光流帧，并灵活调用 TIMM 库中的各类前沿架构（如 ViT、Swin）及 CLIP 模型进行逐帧特征提取。\n\n在工程实现上，video_features 具备出色的扩展性与容错机制。用户只需在不同终端指定不同 GPU 运行相同命令，即可轻松实现多卡甚至多节点集群的分布式提取，脚本会自动检测并跳过已完成或损坏的任务，确保大规模数据处理不中断。此外，它提供灵活的输出选项，支持将结果保存为 NumPy、Pickle 或 HDF5 格式，方便直接接入后续的机器学习流程。无论是快速原型验证还是生产级数据预处理，video_features 都能提供稳","video_features 是一款专为高效提取视频特征设计的开源工具，支持利用多块 GPU 并行处理原始视频数据。它解决了在大规模视频分析中，传统单线程处理方式速度慢、难以同时整合视觉、光流和音频等多模态信息的痛点。\n\n该工具非常适合计算机视觉研究人员、AI 开发者以及需要构建视频理解数据集的团队使用。其核心亮点在于广泛的模型兼容性：不仅内置了 S3D、I3D、R(2+1)D 等主流动作识别模型和 VGGish 音频识别模型，还能提取 RAFT 光流帧，并灵活调用 TIMM 库中的各类前沿架构（如 ViT、Swin）及 CLIP 模型进行逐帧特征提取。\n\n在工程实现上，video_features 具备出色的扩展性与容错机制。用户只需在不同终端指定不同 GPU 运行相同命令，即可轻松实现多卡甚至多节点集群的分布式提取，脚本会自动检测并跳过已完成或损坏的任务，确保大规模数据处理不中断。此外，它提供灵活的输出选项，支持将结果保存为 NumPy、Pickle 或 HDF5 格式，方便直接接入后续的机器学习流程。无论是快速原型验证还是生产级数据预处理，video_features 都能提供稳定且高效的支持。","\n\u003Cdiv align=\"center\">\n\n# Video Features\n\n\u003Cimg  src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fv-iashin_video_features_readme_6cc48bee132d.gif\" width=\"300\" \u002F>\n\n`video_features` allows you to extract features from video clips.\nIt supports a variety of extractors and modalities,\ni.e. visual appearance, optical flow, and audio.\nSee more details in [Documentation](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002F).\n\u003C\u002Fdiv>\n\n## Supported Models\n\nAction Recognition\n\n- [S3D (Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fs3d)\n- [R(2+1)d RGB (IG-65M, Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fr21d)\n- [I3D-Net RGB + Flow (Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fi3d)\n\nSound Recognition\n\n- [VGGish (AudioSet)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fvggish)\n\nOptical Flow\n\n- [RAFT (FlyingChairs, FlyingThings3D, Sintel, KITTI)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fraft)\n\nFrame-wise Features\n\n- [All models from TIMM e.g. ViT, ConvNeXt, EVA, Swin, DINO (ImageNet, LAION, etc)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Ftimm)\n- [CLIP](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fclip)\n- [ResNet-18,34,50,101,152 (ImageNet)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fresnet)\n\n\n## Quick Start\n\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1csJgkVQ3E2qOyVlcOM-ACHGgPBBKwE2Y?usp=sharing)\n\nor run with `conda` locally:\n```bash\n# clone the repo and change the working directory\ngit clone https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features.git\ncd video_features\n\n# install environment\nconda env create -f conda_env.yml\n\n# load the environment\nconda activate video_features\n\n# extract r(2+1)d features for the sample videos\n# (defaults to printing; use on_extraction=save_numpy or save_h5 or save_pickle to save to disk)\npython main.py \\\n    feature_type=r21d \\\n    device=\"cuda:0\" \\\n    video_paths=\"[.\u002Fsample\u002Fv_ZNVhz7ctTq0.mp4, .\u002Fsample\u002Fv_GGSY1Qvo990.mp4]\"\n\n# if you have many GPUs, just run this command from another terminal with another device\n# device can also be \"cpu\"\n```\n\nIf you are more comfortable with Docker, there is a\nDocker image with a pre-installed environment that supports all models.\nCheck out the\n[Docker support](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmeta\u002Fdocker).\ndocumentation page.\n\n\n## Multi-GPU and Multi-Node Setups\n\nWith `video_features`, it is easy to parallelize feature extraction among many GPUs.\nIt is enough to start the script in another terminal with another GPU (or even the same one)\npointing to the same output folder and input video paths.\nThe script will check if the features already exist and skip them.\nIt will also try to load the feature file to check if it is corrupted (i.e. not openable).\nThis approach allows you to continue feature extraction if the previous script failed for some reason.\n\nIf you have an access to a GPU cluster with shared disk space you may scale\nextraction with as many GPUs as you can by creating several single-GPU jobs with the same command.\n\nSince each time the script is run the list of input files is shuffled, you don't need to worry that\nworkers will be processing the same video.\nOn a rare occasion when the collision happens, the script will rewrite previously extracted features.\n\n\n## Input\nThe inputs are paths to video files.\nPaths can be passed as a list of paths to videos or as a text file formatted with a single path per line.\n\n## Output\nOutput is defined by the `on_extraction` argument; by default it prints the features to the command line.\nPossible values of output are `['print', 'save_numpy', 'save_pickle', 'save_h5']`.\n\n* **`save_numpy` \u002F `save_pickle`**: Saves the features in the `output_path` folder with the same name as the input video file but with the `.npy` or `.pkl` extension.\n* **`save_h5`**: Saves features into a single HDF5 file per device in the `output_path` (e.g. `video_features_cuda0.h5`) with video path as keys (`\u002F`\u002F`\\\\` replaced by `_`). Structure: `file.h5 \u002F video_key (group) \u002F feature_name (rgb, flow, fps etc)`. Use `utils.py\u002Finspect_h5()` to explore the content.\n\n\n## Used in\n\n* [SpecVQGAN](https:\u002F\u002Farxiv.org\u002Fabs\u002F2110.08791) branch `specvqgan`\n* [BMT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2005.08271) branch `bmt`\n* [MDVC](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.07758) branch `mdvc`\n\nPlease, let me know if you found this repo useful for your projects or papers.\n\n\n## Acknowledgements\n\n- [@Kamino666](https:\u002F\u002Fgithub.com\u002FKamino666): added CLIP model as well as Windows and CPU support (and many other useful things).\n- [@ohjho](https:\u002F\u002Fgithub.com\u002Fohjho): added support of 37-layer R(2+1)d favors.\n- [@borijang](https:\u002F\u002Fgithub.com\u002Fborijang): for solving bugs with file names, I3D checkpoint loading enhancement and code style improvements.\n- [@bjuncek](https:\u002F\u002Fgithub.com\u002Fbjuncek): for helping with timm models and offline discussion.\n- [@VivekNarula7](https:\u002F\u002Fgithub.com\u002FVivekNarula7): for adding support for `.h5` output format.\n\n## Citation\n\nIf you find this project useful in your research, please consider cite:\n\n```bibtex\n@misc{videofeatures2020,\n  title = {Video Features},\n  author = {Vladimir Iashin and other contributors},\n  year = {2020},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features}},\n}\n```\n","\u003Cdiv align=\"center\">\n\n# Video Features\n\n\u003Cimg  src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fv-iashin_video_features_readme_6cc48bee132d.gif\" width=\"300\" \u002F>\n\n`video_features` 允许你从视频片段中提取特征。\n它支持多种提取器和模态，即视觉外观、光流和音频。\n更多详情请参见 [文档](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002F)。\n\u003C\u002Fdiv>\n\n## 支持的模型\n\n动作识别\n\n- [S3D (Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fs3d)\n- [R(2+1)d RGB (IG-65M, Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fr21d)\n- [I3D-Net RGB + Flow (Kinetics 400)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fi3d)\n\n声音识别\n\n- [VGGish (AudioSet)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fvggish)\n\n光流\n\n- [RAFT (FlyingChairs, FlyingThings3D, Sintel, KITTI)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fraft)\n\n帧级特征\n\n- [TIMM 中的所有模型，例如 ViT、ConvNeXt、EVA、Swin、DINO (ImageNet、LAION 等)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Ftimm)\n- [CLIP](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fclip)\n- [ResNet-18,34,50,101,152 (ImageNet)](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmodels\u002Fresnet)\n\n\n## 快速开始\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1csJgkVQ3E2qOyVlcOM-ACHGgPBBKwE2Y?usp=sharing)\n\n或者在本地使用 `conda` 运行：\n```bash\n# 克隆仓库并切换到工作目录\ngit clone https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features.git\ncd video_features\n\n# 安装环境\nconda env create -f conda_env.yml\n\n# 激活环境\nconda activate video_features\n\n# 为示例视频提取 r(2+1)d 特征\n# （默认打印；使用 on_extraction=save_numpy 或 save_h5 或 save_pickle 可以保存到磁盘）\npython main.py \\\n    feature_type=r21d \\\n    device=\"cuda:0\" \\\n    video_paths=\"[.\u002Fsample\u002Fv_ZNVhz7ctTq0.mp4, .\u002Fsample\u002Fv_GGSY1Qvo990.mp4]\"\n\n# 如果你有多块 GPU，只需在另一个终端用另一块 GPU 运行此命令\n# device 也可以是 \"cpu\"\n```\n\n如果你更习惯使用 Docker，我们提供了一个预装了所有模型环境的 Docker 镜像。\n请查看 [Docker 支持](https:\u002F\u002Fv-iashin.github.io\u002Fvideo_features\u002Fmeta\u002Fdocker) 文档页面。\n\n\n## 多 GPU 和多节点设置\n\n借助 `video_features`，可以轻松地在多块 GPU 之间并行化特征提取。\n只需在另一个终端用另一块 GPU（甚至同一块 GPU）运行脚本，并指向相同的输出文件夹和输入视频路径即可。\n脚本会检查特征是否已存在，如果存在则跳过。它还会尝试加载特征文件，以确认文件未损坏（即无法打开）。\n这种方法允许你在之前的脚本因某种原因失败时继续进行特征提取。\n\n如果你可以访问具有共享磁盘空间的 GPU 集群，可以通过创建多个单 GPU 任务来扩展提取规模，每个任务使用相同的命令即可。\n\n由于每次运行脚本时输入文件列表都会被随机打乱，因此无需担心不同工作者会处理同一段视频。\n在极少数发生冲突的情况下，脚本会重新写入之前已提取的特征。\n\n\n## 输入\n输入是视频文件的路径。\n路径可以以视频路径列表的形式传递，也可以以每行一个路径的文本文件形式传递。\n\n## 输出\n输出由 `on_extraction` 参数定义；默认情况下，它会将特征打印到命令行。\n可能的输出值包括 `['print', 'save_numpy', 'save_pickle', 'save_h5']`。\n\n* **`save_numpy` \u002F `save_pickle`**：将特征保存到 `output_path` 文件夹中，文件名与输入视频文件相同，但扩展名为 `.npy` 或 `.pkl`。\n* **`save_h5`**：将特征保存到 `output_path` 下的单个 HDF5 文件中（例如 `video_features_cuda0.h5`），以视频路径作为键（`\u002F`\u002F`\\\\` 替换为 `_`）。结构：`file.h5 \u002F video_key (group) \u002F feature_name (rgb, flow, fps 等)`。使用 `utils.py\u002Finspect_h5()` 可以查看内容。\n\n\n## 应用于\n\n* [SpecVQGAN](https:\u002F\u002Farxiv.org\u002Fabs\u002F2110.08791) 分支 `specvqgan`\n* [BMT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2005.08271) 分支 `bmt`\n* [MDVC](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.07758) 分支 `mdvc`\n\n如果你发现这个仓库对你的项目或论文有所帮助，请告知我。\n\n\n## 致谢\n\n- [@Kamino666](https:\u002F\u002Fgithub.com\u002FKamino666)：添加了 CLIP 模型以及 Windows 和 CPU 的支持（还有许多其他有用的功能）。\n- [@ohjho](https:\u002F\u002Fgithub.com\u002Fohjho)：增加了对 37 层 R(2+1)d 模型的支持。\n- [@borijang](https:\u002F\u002Fgithub.com\u002Fborijang)：解决了文件名相关的问题，增强了 I3D 检查点的加载功能，并改进了代码风格。\n- [@bjuncek](https:\u002F\u002Fgithub.com\u002Fbjuncek)：协助处理 timm 模型并进行了线下讨论。\n- [@VivekNarula7](https:\u002F\u002Fgithub.com\u002FVivekNarula7)：添加了对 `.h5` 输出格式的支持。\n\n## 引用\n\n如果你的研究中使用了该项目，请考虑引用：\n\n```bibtex\n@misc{videofeatures2020,\n  title = {Video Features},\n  author = {Vladimir Iashin 和其他贡献者},\n  year = {2020},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features}},\n}\n```","# video_features 快速上手指南\n\n`video_features` 是一个强大的开源工具，支持从视频片段中提取多种模态的特征，包括视觉外观（Visual Appearance）、光流（Optical Flow）和音频（Audio）。它集成了 S3D、I3D、RAFT、CLIP 等多种主流模型。\n\n## 环境准备\n\n*   **操作系统**：Linux 或 Windows（需安装 WSL 或原生支持）\n*   **硬件要求**：\n    *   推荐使用 NVIDIA GPU（需安装 CUDA 驱动）以加速提取过程。\n    *   也支持 CPU 模式运行。\n*   **前置依赖**：\n    *   [Conda](https:\u002F\u002Fdocs.conda.io\u002F) (推荐用于环境管理)\n    *   Git\n\n> **提示**：国内用户若下载 Conda 包速度较慢，可配置清华或中科大镜像源：\n> ```bash\n> conda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F\n> conda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Ffree\u002F\n> ```\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features.git\n    cd video_features\n    ```\n\n2.  **创建并激活 Conda 环境**\n    使用项目提供的配置文件一键安装所有依赖：\n    ```bash\n    conda env create -f conda_env.yml\n    conda activate video_features\n    ```\n\n3.  **替代方案：Docker**\n    如果您更习惯使用 Docker，可以直接拉取预装好所有模型的镜像（详见官方文档 Docker 部分），无需本地配置环境。\n\n## 基本使用\n\n以下示例演示如何提取样本视频的 **R(2+1)d** 视觉特征。默认情况下，特征会打印到终端；若要保存文件，需指定 `on_extraction` 参数。\n\n### 命令行运行示例\n\n```bash\npython main.py \\\n    feature_type=r21d \\\n    device=\"cuda:0\" \\\n    video_paths=\"[.\u002Fsample\u002Fv_ZNVhz7ctTq0.mp4, .\u002Fsample\u002Fv_GGSY1Qvo990.mp4]\" \\\n    on_extraction=save_numpy\n```\n\n### 参数说明\n*   `feature_type`: 指定模型类型。支持 `r21d`, `i3d`, `s3d`, `raft`, `vggish`, `clip`, `timm` (如 `vit_base_patch16_224`) 等。\n*   `device`: 指定运行设备，如 `\"cuda:0\"` 或 `\"cpu\"`。\n*   `video_paths`: 输入视频路径列表，或用文本文件（每行一个路径）代替。\n*   `on_extraction`: 输出方式。\n    *   `print`: 打印到屏幕（默认）。\n    *   `save_numpy`: 保存为 `.npy` 文件。\n    *   `save_pickle`: 保存为 `.pkl` 文件。\n    *   `save_h5`: 保存为单个 `.h5` 文件（适合多视频批量处理）。\n\n### 多显卡并行加速\n该工具天然支持多卡并行。只需在不同的终端窗口中运行相同的命令，但指定不同的 `device`（例如 `cuda:1`, `cuda:2`），并指向相同的输出文件夹。脚本会自动检测已提取的文件并跳过，断点续传无需额外配置。","某视频内容安全团队需要每日对数万条用户上传的短视频进行违规动作与异常声音的自动化筛查。\n\n### 没有 video_features 时\n- **处理效率极低**：面对海量视频，单 GPU 串行提取 S3D 动作特征或 VGGish 音频特征需耗时数天，无法做到当日数据当日清零。\n- **环境配置繁琐**：团队需分别为光流（RAFT）、视觉（CLIP\u002FTIMM）和音频模型搭建独立的深度学习环境，依赖冲突频发，维护成本高昂。\n- **容错机制缺失**：大规模任务中一旦因断电或显存溢出中断，往往需要从头重新运行脚本，导致算力严重浪费。\n- **多模态融合困难**：缺乏统一接口同时提取视觉外观、光学流动和音频特征，数据格式不统一，后续模型训练预处理复杂。\n\n### 使用 video_features 后\n- **集群并行加速**：利用多卡或多节点轻松并行，将原本数天的特征提取任务压缩至数小时完成，且自动跳过已处理文件。\n- **一站式环境支持**：通过 Docker 或 Conda 一键部署，原生支持从 RAFT 光流到 CLIP、TIMM 等主流模型，无需反复切换环境。\n- **断点续传保障**：脚本自动检测输出文件完整性，任务意外中断后可直接从失败处继续执行，确保大规模任务稳定落地。\n- **标准化多模态输出**：统一命令即可同步提取并保存为 NumPy 或 HDF5 格式的多模态特征，直接对接下游分类器，大幅简化流水线。\n\nvideo_features 通过高效的多 GPU 并行架构与全模型兼容能力，将复杂的视频多模态特征工程转化为简单可靠的标准化流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fv-iashin_video_features_ef2bc81a.png","v-iashin","Vladimir Iashin","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fv-iashin_b67287bd.jpg","Researcher of deep learning. Ex: VGG at University of Oxford. ",null,"Oxford, UK","_iashin","https:\u002F\u002Frobots.ox.ac.uk\u002F~vi","https:\u002F\u002Fgithub.com\u002Fv-iashin",[83,87],{"name":84,"color":85,"percentage":86},"Python","#3572A5",99.5,{"name":88,"color":89,"percentage":90},"Dockerfile","#384d54",0.5,652,110,"2026-04-07T08:33:28","MIT","Linux, Windows","可选（支持 CPU 模式），若使用 GPU 需 NVIDIA 显卡并指定 device（如 cuda:0），具体显存和 CUDA 版本未说明","未说明",{"notes":99,"python":100,"dependencies":101},"推荐使用 Conda 管理环境（conda_env.yml）；支持 Docker 镜像部署；支持多 GPU 和多节点并行提取，脚本会自动处理文件冲突和断点续传；输出格式支持 numpy、pickle 和 h5。","未说明（需通过 conda_env.yml 安装环境）",[102,103,104,105,106,107],"torch","timm","RAFT","VGGish","CLIP","h5py",[14,109,110,111,52],"音频","视频","其他",[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,103,131],"pytorch","multi-gpu","feature-extraction","parallel","video-features","visual-features","audio-features","i3d","vggish","r2plus1d","resnet","raft","optical-flow","ig65m","clip","s3d","laion","swin","vit","2026-03-27T02:49:30.150509","2026-04-08T17:18:16.057425",[135,140,145,150,155,160],{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},24818,"在 Anaconda 环境中运行时报错 OSError: symbol free_gemm_select version libcublasLt.so.11 not defined，但在 Miniconda 中正常，如何解决？","该问题通常由环境依赖冲突引起。维护者指出环境已在 PR #118 中进行了大幅升级，这应该能缓解此问题。建议尝试更新项目依赖或重新创建虚拟环境，确保 CUDA 和 cuBLAS 库版本与 PyTorch 兼容。如果问题依旧，可参考该项目最新的提交记录以获取修复后的环境配置。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F25",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},24819,"设置 extraction_total 参数为 1 提取全局特征时，FFmpeg 报错或提示缺少帧，这会影响特征效果吗？","这通常只是一个警告（Warning）而非错误（Error），代码实际上并未失败。维护者解释称，即使跳过第一帧或中间某帧，对于长视频（如 250 帧）而言，提取的特征位置大致相同，对最终特征效果影响微乎其微。如果没有抛出异常导致程序终止，可以直接忽略该警告。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F86",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},24820,"使用 VGGish 模型时遇到 InvalidArgumentError: Reshape cannot infer the missing input size for an empty tensor 错误，原因是什么？","该错误通常由两个原因导致：1. 特征量化问题：官方 TensorFlow 实现会对输出进行 8-bit 量化和后处理，而本仓库未包含这些步骤，请检查是否混用了不同实现的预处理逻辑；2. 尺寸不匹配：可能是采样率（sampling rate）或频谱图提取超参数不一致。请确保在预处理步骤中正确执行了音频重采样（resample），且未跳过任何必要的预处理环节。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F20",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},24821,"VGGish 模型的采样率可以像 I3D 模型那样通过参数（如 stack_size）自定义修改吗？","虽然从技术上可以通过修改代码使形状匹配来实现自定义采样，但维护者强烈不建议这样做。因为预训练模型是在特定的预处理条件下训练的，如果在推理时改变堆叠大小或采样率，会导致训练与推理的预处理不匹配，从而可能使提取的特征失效或无用。目前该仓库未针对 VGGish 实现此类灵活调整的功能。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F85",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},24822,"在 RTX 3090 GPU 上使用 PWC 模型时出现 CUDNN_STATUS_MAPPING_ERROR 或 CUDA invalid texture reference 错误，如何解决？","维护者已明确表示不再支持该特定配置下的旧版 PWC 实现。建议不要尝试修复当前报错的环境，而是直接使用该项目中最后可用的提交版本（commit hash: bd827df），或者迁移到项目中其他受支持的模型和最新代码分支。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F13",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},24823,"提取视频特征时，输出结果末尾几帧的时间戳（timestamp）显示为 0，这是正常现象吗？","这是由于视频时长无法被采样间隔整除导致的边界情况。当视频剩余帧数不足以构成一个完整的采样窗口时，代码可能会填充零值或重复最后一帧并标记时间为 0。在使用特征时，建议根据实际视频时长过滤掉这些时间戳为 0 的无效帧，仅保留有效时间范围内的特征数据。","https:\u002F\u002Fgithub.com\u002Fv-iashin\u002Fvideo_features\u002Fissues\u002F68",[]]