[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-qubvel--ttach":3,"tool-qubvel--ttach":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 真正成长为懂上",150720,2,"2026-04-11T11:33:10",[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":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":76,"owner_email":76,"owner_twitter":78,"owner_website":76,"owner_url":79,"languages":80,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":89,"env_os":90,"env_gpu":91,"env_ram":90,"env_deps":92,"category_tags":97,"github_topics":98,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":109,"updated_at":110,"faqs":111,"releases":141},6683,"qubvel\u002Fttach","ttach","Image Test Time Augmentation with PyTorch!","ttach 是一个基于 PyTorch 的开源库，专注于实现图像领域的“测试时增强”（Test Time Augmentation, TTA）。在模型训练阶段，数据增强常用于提升泛化能力；而 ttach 将这一理念延伸至预测阶段。它通过对测试图像进行翻转、旋转、缩放等多种随机变换，让模型多次处理同一张图的不同版本，最后将这些预测结果进行平均或融合，从而得出更稳定、更准确的最终输出。\n\n这一机制有效解决了单次预测可能因图像角度、光照或噪声干扰导致的误差问题，显著提升了模型在分割、分类及关键点检测等任务中的鲁棒性与精度。ttach 特别适合 AI 开发者与研究人员使用，尤其是那些希望在不重新训练模型的前提下，快速挖掘现有模型潜力、优化竞赛成绩或提升生产环境表现的专业人士。\n\n其技术亮点在于高度模块化与灵活性：不仅提供了水平翻转、90 度旋转、多尺度缩放等丰富的内置变换算子，还支持用户自由组合自定义增强策略。此外，ttach 通过简洁的包装器接口（Wrapper），能够无缝适配分割、分类和关键点检测等多种模型架构，自动处理正向增强与反向还原逻辑，让用户仅需几行代码即可集成强大的 TTA 功能","ttach 是一个基于 PyTorch 的开源库，专注于实现图像领域的“测试时增强”（Test Time Augmentation, TTA）。在模型训练阶段，数据增强常用于提升泛化能力；而 ttach 将这一理念延伸至预测阶段。它通过对测试图像进行翻转、旋转、缩放等多种随机变换，让模型多次处理同一张图的不同版本，最后将这些预测结果进行平均或融合，从而得出更稳定、更准确的最终输出。\n\n这一机制有效解决了单次预测可能因图像角度、光照或噪声干扰导致的误差问题，显著提升了模型在分割、分类及关键点检测等任务中的鲁棒性与精度。ttach 特别适合 AI 开发者与研究人员使用，尤其是那些希望在不重新训练模型的前提下，快速挖掘现有模型潜力、优化竞赛成绩或提升生产环境表现的专业人士。\n\n其技术亮点在于高度模块化与灵活性：不仅提供了水平翻转、90 度旋转、多尺度缩放等丰富的内置变换算子，还支持用户自由组合自定义增强策略。此外，ttach 通过简洁的包装器接口（Wrapper），能够无缝适配分割、分类和关键点检测等多种模型架构，自动处理正向增强与反向还原逻辑，让用户仅需几行代码即可集成强大的 TTA 功能。","# TTAch\nImage Test Time Augmentation with PyTorch!\n\nSimilar to what Data Augmentation is doing to the training set, the purpose of Test Time Augmentation is to perform random modifications to the test images. Thus, instead of showing the regular, “clean” images, only once to the trained model, we will show it the augmented images several times. We will then average the predictions of each corresponding image and take that as our final guess [[1](https:\u002F\u002Ftowardsdatascience.com\u002Ftest-time-augmentation-tta-and-how-to-perform-it-with-keras-4ac19b67fb4d)].  \n```\n           Input\n             |           # input batch of images \n        \u002F \u002F \u002F|\\ \\ \\      # apply augmentations (flips, rotation, scale, etc.)\n       | | | | | | |     # pass augmented batches through model\n       | | | | | | |     # reverse transformations for each batch of masks\u002Flabels\n        \\ \\ \\ \u002F \u002F \u002F      # merge predictions (mean, max, gmean, etc.)\n             |           # output batch of masks\u002Flabels\n           Output\n```\n## Table of Contents\n1. [Quick Start](#quick-start)\n2. [Transforms](#transforms)\n3. [Aliases](#aliases)\n4. [Merge modes](#merge-modes)\n5. [Installation](#installation)\n\n## Quick start\n\n#####  Segmentation model wrapping [[docstring](ttach\u002Fwrappers.py#L8)]:\n```python\nimport ttach as tta\ntta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')\n```\n#####  Classification model wrapping [[docstring](ttach\u002Fwrappers.py#L52)]:\n```python\ntta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())\n```\n\n#####  Keypoints model wrapping [[docstring](ttach\u002Fwrappers.py#L96)]:\n```python\ntta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)\n```\n**Note**: the model must return keypoints in the format `torch([x1, y1, ..., xn, yn])`\n\n## Advanced Examples\n#####  Custom transform:\n```python\n# defined 2 * 2 * 3 * 3 = 36 augmentations !\ntransforms = tta.Compose(\n    [\n        tta.HorizontalFlip(),\n        tta.Rotate90(angles=[0, 180]),\n        tta.Scale(scales=[1, 2, 4]),\n        tta.Multiply(factors=[0.9, 1, 1.1]),        \n    ]\n)\n\ntta_model = tta.SegmentationTTAWrapper(model, transforms)\n```\n##### Custom model (multi-input \u002F multi-output)\n```python\n# Example how to process ONE batch on images with TTA\n# Here `image`\u002F`mask` are 4D tensors (B, C, H, W), `label` is 2D tensor (B, N)\n\nfor transformer in transforms: # custom transforms or e.g. tta.aliases.d4_transform() \n    \n    # augment image\n    augmented_image = transformer.augment_image(image)\n    \n    # pass to model\n    model_output = model(augmented_image, another_input_data)\n    \n    # reverse augmentation for mask and label\n    deaug_mask = transformer.deaugment_mask(model_output['mask'])\n    deaug_label = transformer.deaugment_label(model_output['label'])\n    \n    # save results\n    labels.append(deaug_mask)\n    masks.append(deaug_label)\n    \n# reduce results as you want, e.g mean\u002Fmax\u002Fmin\nlabel = mean(labels)\nmask = mean(masks)\n```\n \n## Transforms\n  \n| Transform      | Parameters                | Values                            |\n|----------------|:-------------------------:|:---------------------------------:|\n| HorizontalFlip | -                         | -                                 |\n| VerticalFlip   | -                         | -                                 |\n| Rotate90       | angles                    | List\\[0, 90, 180, 270]            |\n| Scale          | scales\u003Cbr>interpolation   | List\\[float]\u003Cbr>\"nearest\"\u002F\"linear\"|\n| Resize         | sizes\u003Cbr>original_size\u003Cbr>interpolation   | List\\[Tuple\\[int, int]]\u003Cbr>Tuple\\[int,int]\u003Cbr>\"nearest\"\u002F\"linear\"|\n| Add            | values                    | List\\[float]                      |\n| Multiply       | factors                   | List\\[float]                      |\n| FiveCrops      | crop_height\u003Cbr>crop_width | int\u003Cbr>int                        |\n \n## Aliases\n\n  - flip_transform (horizontal + vertical flips)\n  - hflip_transform (horizontal flip)\n  - d4_transform (flips + rotation 0, 90, 180, 270)\n  - multiscale_transform (scale transform, take scales as input parameter)\n  - five_crop_transform (corner crops + center crop)\n  - ten_crop_transform (five crops + five crops on horizontal flip)\n  \n## Merge modes\n - mean\n - gmean (geometric mean)\n - sum\n - max\n - min\n - tsharpen ([temperature sharpen](https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fseverstal-steel-defect-detection\u002Fdiscussion\u002F107716#latest-624046) with t=0.5)\n \n## Installation\nPyPI:\n```bash\n$ pip install ttach\n```\nSource:\n```bash\n$ pip install git+https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\n```\n\n## Run tests\n\n```bash\ndocker build -f Dockerfile.dev -t ttach:dev . && docker run --rm ttach:dev pytest -p no:cacheprovider\n```\n","# TTAch\n使用 PyTorch 进行测试时数据增强！\n\n与数据增强对训练集的作用类似，测试时数据增强的目的是对测试图像进行随机变换。因此，我们不会只向训练好的模型展示一次常规的“干净”图像，而是会多次展示经过增强后的图像。然后，我们将对每张对应图像的预测结果取平均值，并将其作为最终的预测结果 [[1](https:\u002F\u002Ftowardsdatascience.com\u002Ftest-time-augmentation-tta-and-how-to-perform-it-with-keras-4ac19b67fb4d)]。\n```\n           输入\n             |           # 输入图像批次 \n        \u002F \u002F \u002F|\\ \\ \\      # 应用增强操作（翻转、旋转、缩放等）\n       | | | | | | |     # 将增强后的批次输入模型\n       | | | | | | |     # 对每个批次的掩码\u002F标签进行逆变换\n        \\ \\ \\ \u002F \u002F \u002F      # 合并预测结果（均值、最大值、几何平均等）\n             |           # 输出掩码\u002F标签批次\n           输出\n```\n## 目录\n1. [快速入门](#quick-start)\n2. [变换](#transforms)\n3. [别名](#aliases)\n4. [合并模式](#merge-modes)\n5. [安装](#installation)\n\n## 快速入门\n\n##### 分割模型封装 [[文档字符串](ttach\u002Fwrappers.py#L8)]:\n```python\nimport ttach as tta\ntta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')\n```\n##### 分类模型封装 [[文档字符串](ttach\u002Fwrappers.py#L52)]:\n```python\ntta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())\n```\n\n##### 关键点模型封装 [[文档字符串](ttach\u002Fwrappers.py#L96)]:\n```python\ntta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)\n```\n**注意**: 模型必须以 `torch([x1, y1, ..., xn, yn])` 的格式返回关键点。\n\n## 高级示例\n##### 自定义变换:\n```python\n# 定义了 2 * 2 * 3 * 3 = 36 种增强方式！\ntransforms = tta.Compose(\n    [\n        tta.HorizontalFlip(),\n        tta.Rotate90(angles=[0, 180]),\n        tta.Scale(scales=[1, 2, 4]),\n        tta.Multiply(factors=[0.9, 1, 1.1]),        \n    ]\n)\n\ntta_model = tta.SegmentationTTAWrapper(model, transforms)\n```\n##### 自定义模型（多输入\u002F多输出）\n```python\n# 示例：如何使用 TTA 处理一批图像\n# 其中 `image`\u002F`mask` 是 4D 张量 (B, C, H, W)，`label` 是 2D 张量 (B, N)\n\nfor transformer in transforms: # 自定义变换或例如 tta.aliases.d4_transform() \n    \n    # 增强图像\n    augmented_image = transformer.augment_image(image)\n    \n    # 输入模型\n    model_output = model(augmented_image, another_input_data)\n    \n    # 对掩码和标签进行逆增强\n    deaug_mask = transformer.deaugment_mask(model_output['mask'])\n    deaug_label = transformer.deaugment_label(model_output['label'])\n    \n    # 保存结果\n    labels.append(deaug_mask)\n    masks.append(deaug_label)\n    \n# 按照需求对结果进行聚合，例如取均值\u002F最大值\u002F最小值\nlabel = mean(labels)\nmask = mean(masks)\n```\n \n## 变换\n  \n| 变换      | 参数                | 取值                            |\n|----------------|:-------------------------:|:---------------------------------:|\n| HorizontalFlip | -                         | -                                 |\n| VerticalFlip   | -                         | -                                 |\n| Rotate90       | 角度                    | 列表[0, 90, 180, 270]            |\n| Scale          | 缩放比例\u003Cbr>插值方法   | 列表[浮点数]\u003Cbr>\"nearest\"\u002F\"linear\"|\n| Resize         | 目标尺寸\u003Cbr>原始尺寸\u003Cbr>插值方法   | 列表[元组[int, int]]\u003Cbr>元组[int,int]\u003Cbr>\"nearest\"\u002F\"linear\"|\n| Add            | 值                    | 列表[浮点数]                      |\n| Multiply       | 因子                   | 列表[浮点数]                      |\n| FiveCrops      | 裁剪高度\u003Cbr>裁剪宽度 | 整数\u003Cbr>整数                        |\n \n## 别名\n\n  - flip_transform（水平+垂直翻转）\n  - hflip_transform（水平翻转）\n  - d4_transform（翻转+旋转 0°、90°、180°、270°）\n  - multiscale_transform（尺度变换，可指定缩放比例）\n  - five_crop_transform（四个角裁剪+中心裁剪）\n  - ten_crop_transform（五个角裁剪+水平翻转后的五个角裁剪）\n  \n## 合并模式\n - mean\n - gmean（几何平均）\n - sum\n - max\n - min\n - tsharpen（[温度锐化](https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fseverstal-steel-defect-detection\u002Fdiscussion\u002F107716#latest-624046) 方法，t=0.5）\n \n## 安装\nPyPI:\n```bash\n$ pip install ttach\n```\n源码:\n```bash\n$ pip install git+https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\n```\n\n## 运行测试\n\n```bash\ndocker build -f Dockerfile.dev -t ttach:dev . && docker run --rm ttach:dev pytest -p no:cacheprovider\n```","# ttach 快速上手指南\n\nttach 是一个基于 PyTorch 的图像测试时增强（Test Time Augmentation, TTA）库。它通过对测试图像进行随机变换（如翻转、旋转、缩放等），将增强后的多批次图像输入模型，最后合并预测结果以提升模型性能。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：建议 Python 3.7+\n*   **核心依赖**：\n    *   PyTorch (>= 1.0)\n    *   torchvision\n*   **前置要求**：确保已安装好 PyTorch 深度学习环境，且你的模型能够接受标准的 Tensor 输入并输出预测结果。\n\n## 安装步骤\n\n推荐使用 pip 进行安装。国内用户可使用清华或阿里镜像源加速下载。\n\n**使用官方源安装：**\n```bash\npip install ttach\n```\n\n**使用国内镜像源安装（推荐）：**\n```bash\npip install ttach -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**从源码安装（获取最新开发版）：**\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\n```\n\n## 基本使用\n\nttach 提供了针对不同任务的封装器（Wrapper），只需几行代码即可将现有模型升级为支持 TTA 的模型。\n\n### 1. 语义分割模型 (Segmentation)\n\n使用预定义的 `d4_transform`（包含翻转和 90 度旋转）并将预测结果取平均值：\n\n```python\nimport ttach as tta\n\n# model 为你已经训练好的 PyTorch 分割模型\ntta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')\n\n# 推理过程与普通模型一致\nwith torch.no_grad():\n    prediction = tta_model(input_image)\n```\n\n### 2. 分类模型 (Classification)\n\n使用 `five_crop_transform`（五裁剪增强）：\n\n```python\nimport ttach as tta\n\n# model 为你已经训练好的 PyTorch 分类模型\ntta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())\n\nwith torch.no_grad():\n    prediction = tta_model(input_image)\n```\n\n### 3. 关键点检测模型 (Keypoints)\n\n使用水平翻转增强，注意模型需返回格式为 `torch([x1, y1, ..., xn, yn])` 的关键点：\n\n```python\nimport ttach as tta\n\n# scaled=True 表示关键点坐标会随图像缩放自动调整\ntta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)\n\nwith torch.no_grad():\n    prediction = tta_model(input_image)\n```\n\n### 进阶：自定义增强组合\n\n你可以自由组合多种变换策略。以下示例构建了一个包含 36 种增强组合的策略：\n\n```python\nimport ttach as tta\n\ntransforms = tta.Compose(\n    [\n        tta.HorizontalFlip(),\n        tta.Rotate90(angles=[0, 180]),\n        tta.Scale(scales=[1, 2, 4]),\n        tta.Multiply(factors=[0.9, 1, 1.1]),        \n    ]\n)\n\ntta_model = tta.SegmentationTTAWrapper(model, transforms, merge_mode='mean')\n```\n\n**常用合并模式 (`merge_mode`)：**\n*   `mean`: 算术平均（默认）\n*   `gmean`: 几何平均\n*   `max`: 取最大值\n*   `min`: 取最小值\n*   `tsharpen`: 温度锐化","某医疗影像团队正在开发基于深度学习的肺结节分割系统，需在 CT 扫描中精准定位微小病灶以辅助医生诊断。\n\n### 没有 ttach 时\n- 模型对输入图像的角度和尺度极其敏感，一旦患者体位稍有倾斜或结节大小变化，预测结果便出现严重偏差。\n- 面对噪声干扰或对比度较低的模糊切片，单次推理容易产生断裂的掩码或错误的假阳性区域。\n- 为了提升鲁棒性，开发人员被迫花费数周重新收集数据并调整训练策略，但仍难以覆盖所有临床罕见情况。\n- 最终交付的模型在测试集上波动较大，医生因不信任其稳定性而拒绝在实际诊疗中采纳。\n\n### 使用 ttach 后\n- 通过封装 `SegmentationTTAWrapper` 并应用 `d4_transform`，系统自动对每张 CT 切片执行翻转与旋转，消除了体位角度带来的预测误差。\n- 利用多尺度缩放（Scale）和亮度微调（Multiply）生成多个增强视图，将分散的预测结果取平均，显著修复了模糊区域的掩码断裂问题。\n- 无需重新训练模型或补充数据，仅需几行代码即可在推理阶段集成多种增强策略，快速适应了不同的设备成像风格。\n- 模型输出的置信度更加平稳，分割边界平滑且连续，大幅提升了放射科医生对 AI 辅助结果的信任度。\n\nttach 通过在推理阶段引入“多重视角”验证机制，以零训练成本显著提升了模型在复杂真实场景下的鲁棒性与准确率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fqubvel_ttach_d0888eee.png","qubvel","Pavel Iakubovskii","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fqubvel_5c987df0.png",null,"AI Engineer @ Praktika.ai | ex HuggingFace 🤗","qubvelx","https:\u002F\u002Fgithub.com\u002Fqubvel",[81],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,1027,69,"2026-03-29T02:35:31","MIT",1,"未说明","未说明 (基于 PyTorch，支持 CPU 或 GPU)",{"notes":93,"python":90,"dependencies":94},"该工具是用于图像测试时增强（TTA）的 PyTorch 库，本身不包含模型权重，无需下载大型模型文件。它通过包装现有的分割、分类或关键点检测模型来工作。安装可通过 pip 直接完成。由于依赖 PyTorch，具体的 GPU、CUDA 和 Python 版本需求取决于用户所安装的 PyTorch 版本及其运行的具体模型。",[95,96],"torch","numpy",[14,52,15],[99,100,101,102,103,104,105,106,107,108],"augmentation","deep-learning","test-time-augmentation","tta","tta-wrapper","pytorch","computer-vision","classification","segmentation","keypoint-detection","2026-03-27T02:49:30.150509","2026-04-12T02:34:10.807212",[112,117,122,126,131,136],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},30185,"如何在自己的模型中使用 TTA（测试时增强）？能否提供示例代码？","可以通过包装模型来使用 TTA。具体示例代码如下：\nimport ttach as tta\ntta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')\n其中 model 是你的原始模型，tta.aliases.d4_transform() 定义了变换策略，merge_mode='mean' 表示对预测结果取平均值。","https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fissues\u002F16",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},30186,"TTA 在分割任务中是如何合并预测结果的？是否需要手动反转增强后的图像？","不需要手动操作，TTA 包装器会自动处理所有步骤。其工作流程如下：\n1. 对输入图像应用指定的变换（如翻转、旋转等）；\n2. 将所有变换后的图像传入模型进行预测；\n3. 对输出结果应用反向变换（例如：如果图像被右翻，则对应的掩码会被左翻回原位）；\n4. 收集并平均所有预测结果（可通过 merge_mode 参数配置，默认为 mean）。\n你只需包装模型并按常规方式传入图像即可。","https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fissues\u002F6",{"id":123,"question_zh":124,"answer_zh":125,"source_url":121},30187,"使用 TTA 时是否还需要定义额外的 PyTorch 变换？训练和测试阶段的变换如何区分？","不需要定义额外的变换。你应该在训练阶段使用标准的 PyTorch 变换正常训练模型。在验证和测试阶段，只需定义 TTA 变换（通过 tta.Compose 或 aliases），然后使用 TTA 包装器包裹模型。TTA 变换仅应用于验证和测试数据，包装器会自动处理变换应用与结果合并。",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},30188,"在多 GPU 系统上使用 TTA 时遇到显存不足（OOM）错误，即使其他 GPU 空闲，该如何解决？","该问题通常由 batch_size 设置不当引起。尝试调整 batch_size（例如从 1 改为更大的值或根据显存情况微调），可以有效利用多 GPU 资源并避免单卡显存溢出。有用户反馈通过更改 batch_size 成功解决了该问题。","https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fissues\u002F2",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},30189,"是否可以将 albumentations 库中的自定义变换添加到 TTA 流程中？","不能直接从 albumentations 导入自定义变换到 TTA 管道，但可以参考 ttach 源码中的 transforms.py 文件（https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fblob\u002Fmaster\u002Fttach\u002Ftransforms.py）来适配或实现类似的自定义变换。维护者表示如有具体问题可进一步协助。","https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fissues\u002F1",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},30190,"aliases.py 文件中是否存在拼写错误（如 vlip 应为 vflip）？","是的，该拼写错误已被确认并在主分支（master）中修复。感谢社区反馈。","https:\u002F\u002Fgithub.com\u002Fqubvel\u002Fttach\u002Fissues\u002F10",[142,147,152],{"id":143,"version":144,"summary_zh":145,"released_at":146},214540,"v0.0.3","### 改进：\n- 添加关键点支持（包括变换和 TTA 封装）\n\n感谢 @gavrin-s 的实现！","2020-07-09T14:41:50",{"id":148,"version":149,"summary_zh":150,"released_at":151},214541,"v0.0.2","## 更新\n1. 添加 Resize 变换\n2. 修复 `d4 transform` 别名（移除了重复的增强操作）—— 感谢 @n01z3","2019-11-01T15:11:24",{"id":153,"version":154,"summary_zh":155,"released_at":156},214542,"v0.0.1","## 初始发布！\r\n\r\n - 分割和分类模型的封装器\r\n - 一系列变换（翻转、旋转90度、裁剪、缩放、加法、乘法）","2019-10-02T12:59:37"]