[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Cartucho--mAP":3,"tool-Cartucho--mAP":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 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[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":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":76,"owner_twitter":76,"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":90,"env_deps":91,"category_tags":97,"github_topics":98,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":143},4898,"Cartucho\u002FmAP","mAP","mean Average Precision - This code evaluates the performance of your neural net for object recognition.","mAP 是一款专为评估物体识别神经网络性能而设计的开源工具。在深度学习领域，开发者训练出模型后，往往难以量化其实际检测效果，mAP 正是为了解决这一痛点，通过计算“平均精度均值”来提供客观、标准的性能评分。分数越高，代表模型在给定真实数据下的表现越出色。\n\n这款工具特别适合人工智能研究人员、算法工程师以及计算机视觉开发者使用。无论是正在调试目标检测模型的学生，还是需要在工业场景中验证算法鲁棒性的专业人士，都能利用它快速获得可靠的评估结果。\n\nmAP 的核心技术亮点在于严格遵循了权威的 PASCAL VOC 2012 竞赛评估标准。它将原本复杂的官方 Matlab 评估代码成功移植为更易用的 Python 版本，确保了计算结果的准确性与一致性。其工作原理是先将模型的检测结果按置信度排序，再基于标签匹配和交并比（IoU≥0.5）判定真假阳性，进而绘制精确率 - 召回率曲线并计算曲线下面积得出各类别的平均精度（AP），最终汇总为整体的 mAP 值。此外，它还支持可选的可视化功能，能够生成直观的图表甚至动画演示，帮助用户更深入地理解模型的误检与漏检情况，从而针对性地优化网络结构。","# mAP (mean Average Precision)\n\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FCartucho\u002FmAP.svg?style=social&label=Stars)](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP)\n\nThis code will evaluate the performance of your neural net for object recognition.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_a074f3a6af27.gif\" width=\"450\" height=\"300\" \u002F>\n\u003C\u002Fp>\n\nIn practice, a **higher mAP** value indicates a **better performance** of your neural net, given your ground-truth and set of classes.\n\n## Citation\n\nThis project was developed for the following paper, please consider citing it:\n\n```bibtex\n@INPROCEEDINGS{8594067,\n  author={J. {Cartucho} and R. {Ventura} and M. {Veloso}},\n  booktitle={2018 IEEE\u002FRSJ International Conference on Intelligent Robots and Systems (IROS)}, \n  title={Robust Object Recognition Through Symbiotic Deep Learning In Mobile Robots}, \n  year={2018},\n  pages={2336-2341},\n}\n```\n\n## Table of contents\n\n- [Explanation](#explanation)\n- [Prerequisites](#prerequisites)\n- [Quick start](#quick-start)\n- [Running the code](#running-the-code)\n- [Authors](#authors)\n\n## Explanation\nThe performance of your neural net will be judged using the mAP criterium defined in the [PASCAL VOC 2012 competition](http:\u002F\u002Fhost.robots.ox.ac.uk\u002Fpascal\u002FVOC\u002Fvoc2012\u002F). We simply adapted the [official Matlab code](http:\u002F\u002Fhost.robots.ox.ac.uk\u002Fpascal\u002FVOC\u002Fvoc2012\u002F#devkit) into Python (in our tests they both give the same results).\n\nFirst (**1.**), we calculate the Average Precision (AP), for each of the classes present in the ground-truth. Finally (**2.**), we calculate the mAP (mean Average Precision) value.\n\n#### 1. Calculate AP\n\nFor each class:\n\nFirst, your neural net **detection-results** are sorted by decreasing confidence and are assigned to **ground-truth objects**. We have \"a match\" when they share the **same label and an IoU >= 0.5** (Intersection over Union greater than 50%). This \"match\" is considered a true positive if that ground-truth object has not been already used (to avoid multiple detections of the same object). \n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_d8b3d02c4f3b.png\" width=\"35%\" height=\"35%\" \u002F>\n\nUsing this criterium, we calculate the precision\u002Frecall curve. E.g:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_48b4c97ce0f9.png\" width=\"45%\" height=\"45%\" \u002F>\n\nThen we compute a version of the measured precision\u002Frecall curve with **precision monotonically decreasing** (shown in light red), by setting the precision for recall `r` to the maximum precision obtained for any recall `r' > r`.\n\nFinally, we compute the AP as the **area under this curve** (shown in light blue) by numerical integration.\nNo approximation is involved since the curve is piecewise constant.\n\n#### 2. Calculate mAP\n\nWe calculate the mean of all the AP's, resulting in an mAP value from 0 to 100%. E.g:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_69155b6c7830.png\"\u002F>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_476996cdcc1e.png\" \u002F>\n\n## Prerequisites\n\nYou need to install:\n- [Python](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n\nOptional:\n- **plot** the results by [installing Matplotlib](https:\u002F\u002Fmatplotlib.org\u002Fusers\u002Finstalling.html) - Linux, macOS and Windows:\n    1. `python -mpip install -U pip`  \n    2.  `python -mpip install -U matplotlib`\n-  show **animation** by installing [OpenCV](https:\u002F\u002Fwww.opencv.org\u002F):\n    1. `python -mpip install -U pip`\n    2. `python -mpip install -U opencv-python`  \n\n## Quick-start\nTo start using the mAP you need to clone the repo:\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\n```\n\n## Running the code\n\nStep by step:\n\n  1. [Create the ground-truth files](#create-the-ground-truth-files)\n  2. Copy the ground-truth files into the folder **input\u002Fground-truth\u002F**\n  3. [Create the detection-results files](#create-the-detection-results-files)\n  4. Copy the detection-results files into the folder **input\u002Fdetection-results\u002F**\n  5. Run the code:\n         ```\n         python main.py\n         ```\n\nOptional (if you want to see the **animation**):\n\n  6. Insert the images into the folder **input\u002Fimages-optional\u002F**\n\n\n#### PASCAL VOC, Darkflow and YOLO users\n\nIn the [scripts\u002Fextra](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Ftree\u002Fmaster\u002Fscripts\u002Fextra) folder you can find additional scripts to convert **PASCAL VOC**, **darkflow** and **YOLO** files into the required format.\n\n#### Create the ground-truth files\n\n- Create a separate ground-truth text file for each image.\n- Use **matching names** for the files (e.g. image: \"image_1.jpg\", ground-truth: \"image_1.txt\").\n- In these files, each line should be in the following format:\n    ```\n    \u003Cclass_name> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom> [\u003Cdifficult>]\n    ```\n- The `difficult` parameter is optional, use it if you want the calculation to ignore a specific detection.\n- E.g. \"image_1.txt\":\n    ```\n    tvmonitor 2 10 173 238\n    book 439 157 556 241\n    book 437 246 518 351 difficult\n    pottedplant 272 190 316 259\n    ```\n\n#### Create the detection-results files\n\n- Create a separate detection-results text file for each image.\n- Use **matching names** for the files (e.g. image: \"image_1.jpg\", detection-results: \"image_1.txt\").\n- In these files, each line should be in the following format:\n    ```\n    \u003Cclass_name> \u003Cconfidence> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom>\n    ```\n- E.g. \"image_1.txt\":\n    ```\n    tvmonitor 0.471781 0 13 174 244\n    cup 0.414941 274 226 301 265\n    book 0.460851 429 219 528 247\n    chair 0.292345 0 199 88 436\n    book 0.269833 433 260 506 336\n    ```\n## Authors:\n* **João Cartucho**\n\n    Feel free to contribute\n\n    [![GitHub contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002FCartucho\u002FmAP.svg)](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fgraphs\u002Fcontributors)\n","# mAP（平均精度均值）\n\n[![GitHub 星标数](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FCartucho\u002FmAP.svg?style=social&label=Stars)](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP)\n\n这段代码将评估您的神经网络在目标识别任务中的性能。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_a074f3a6af27.gif\" width=\"450\" height=\"300\" \u002F>\n\u003C\u002Fp>\n\n在实践中，**更高的 mAP 值** 表示在给定真实标签和类别集合的情况下，您的神经网络具有 **更好的性能**。\n\n## 引用\n\n本项目是为以下论文开发的，请考虑引用该论文：\n\n```bibtex\n@INPROCEEDINGS{8594067,\n  author={J. {Cartucho} and R. {Ventura} and M. {Veloso}},\n  booktitle={2018 IEEE\u002FRSJ 国际智能机器人与系统会议 (IROS)}, \n  title={移动机器人中基于共生深度学习的鲁棒目标识别}, \n  year={2018},\n  pages={2336-2341},\n}\n```\n\n## 目录\n\n- [说明](#explanation)\n- [前提条件](#prerequisites)\n- [快速入门](#quick-start)\n- [运行代码](#running-the-code)\n- [作者](#authors)\n\n## 说明\n您的神经网络性能将使用 [PASCAL VOC 2012 竞赛](http:\u002F\u002Fhost.robots.ox.ac.uk\u002Fpascal\u002FVOC\u002Fvoc2012\u002F) 中定义的 mAP 准则来评判。我们只是将 [官方 MATLAB 代码](http:\u002F\u002Fhost.robots.ox.ac.uk\u002Fpascal\u002FVOC\u002Fvoc2012\u002F#devkit) 转换为 Python（在我们的测试中，两者给出了相同的结果）。\n\n首先 (**1.**)，我们为真实标签中存在的每个类别计算平均精度 (AP)。最后 (**2.**)，我们计算 mAP（平均精度均值）的值。\n\n#### 1. 计算 AP\n\n对于每个类别：\n\n首先，您的神经网络的 **检测结果** 按置信度从高到低排序，并与 **真实标签对象** 进行匹配。当它们具有 **相同的标签且 IoU ≥ 0.5**（交并比大于等于 50%）时，即视为“匹配”。如果该真实标签对象尚未被使用过，则此“匹配”被视为真正例（以避免对同一对象进行多次检测）。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_d8b3d02c4f3b.png\" width=\"35%\" height=\"35%\" \u002F>\n\n利用这一准则，我们计算精确率\u002F召回率曲线。例如：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_48b4c97ce0f9.png\" width=\"45%\" height=\"45%\" \u002F>\n\n然后，我们通过将召回率 `r` 的精确率设置为任何召回率 `r' > r` 所获得的最大精确率，来计算一个 **精确率单调递减** 的测量精确率\u002F召回率曲线版本（显示为浅红色）。\n\n最后，我们通过数值积分计算 AP，即 **该曲线下的面积**（显示为浅蓝色）。由于曲线是分段常数，因此不涉及任何近似。\n\n#### 2. 计算 mAP\n\n我们将所有 AP 的平均值计算出来，得到一个介于 0 到 100% 之间的 mAP 值。例如：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_69155b6c7830.png\"\u002F>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_readme_476996cdcc1e.png\" \u002F>\n\n## 前提条件\n\n您需要安装：\n- [Python](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n\n可选：\n- 如果想 **绘制结果图**，请安装 [Matplotlib](https:\u002F\u002Fmatplotlib.org\u002Fusers\u002Finstalling.html) - Linux、macOS 和 Windows：\n    1. `python -mpip install -U pip`  \n    2.  `python -mpip install -U matplotlib`\n- 如果想展示 **动画效果**，请安装 [OpenCV](https:\u002F\u002Fwww.opencv.org\u002F)：\n    1. `python -mpip install -U pip`\n    2. `python -mpip install -U opencv-python`  \n\n## 快速入门\n要开始使用 mAP，您需要克隆仓库：\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\n```\n\n## 运行代码\n\n逐步操作：\n\n  1. [创建真实标签文件](#create-the-ground-truth-files)\n  2. 将真实标签文件复制到 **input\u002Fground-truth\u002F** 文件夹中。\n  3. [创建检测结果文件](#create-the-detection-results-files)\n  4. 将检测结果文件复制到 **input\u002Fdetection-results\u002F** 文件夹中。\n  5. 运行代码：\n         ```\n         python main.py\n         ```\n\n可选（如果您想查看 **动画效果**）：\n\n  6. 将图像插入 **input\u002Fimages-optional\u002F** 文件夹中。\n\n\n#### PASCAL VOC、Darkflow 和 YOLO 用户\n\n在 [scripts\u002Fextra](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Ftree\u002Fmaster\u002Fscripts\u002Fextra) 文件夹中，您可以找到用于将 **PASCAL VOC**、**darkflow** 和 **YOLO** 文件转换为所需格式的附加脚本。\n\n#### 创建真实标签文件\n\n- 为每张图像创建一个单独的真实标签文本文件。\n- 使用 **匹配的文件名**（例如，图像：“image_1.jpg”，真实标签：“image_1.txt”）。\n- 在这些文件中，每行应采用以下格式：\n    ```\n    \u003Cclass_name> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom> [\u003Cdifficult>]\n    ```\n- `difficult` 参数是可选的，如果您希望计算时忽略某个特定检测，可以使用它。\n- 例如，“image_1.txt”：\n    ```\n    tvmonitor 2 10 173 238\n    book 439 157 556 241\n    book 437 246 518 351 difficult\n    pottedplant 272 190 316 259\n    ```\n\n#### 创建检测结果文件\n\n- 为每张图像创建一个单独的检测结果文本文件。\n- 使用 **匹配的文件名**（例如，图像：“image_1.jpg”，检测结果：“image_1.txt”）。\n- 在这些文件中，每行应采用以下格式：\n    ```\n    \u003Cclass_name> \u003Cconfidence> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom>\n    ```\n- 例如，“image_1.txt”：\n    ```\n    tvmonitor 0.471781 0 13 174 244\n    cup 0.414941 274 226 301 265\n    book 0.460851 429 219 528 247\n    chair 0.292345 0 199 88 436\n    book 0.269833 433 260 506 336\n    ```\n## 作者：\n* **João Cartucho**\n\n欢迎贡献\n\n[![GitHub 贡献者](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002FCartucho\u002FmAP.svg)](https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fgraphs\u002Fcontributors)","# mAP 快速上手指南\n\nmAP (mean Average Precision) 是一个用于评估目标检测神经网络性能的开源工具。它基于 PASCAL VOC 2012 竞赛标准，通过计算平均精度（AP）和平均精度均值（mAP）来量化模型效果。mAP 值越高（0-100%），表示模型性能越好。\n\n## 环境准备\n\n本工具主要依赖 Python 运行，可选安装绘图和动画库以可视化结果。\n\n*   **操作系统**：Linux, macOS, Windows\n*   **核心依赖**：\n    *   [Python](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F) (建议 Python 3.x)\n*   **可选依赖**（用于生成图表和动画）：\n    *   `matplotlib`：用于绘制精度\u002F召回率曲线。\n    *   `opencv-python`：用于生成检测结果的动画演示。\n\n> **国内加速提示**：在中国大陆地区，建议使用国内镜像源安装依赖以提升速度。例如使用清华源：\n> `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple \u003C包名>`\n\n## 安装步骤\n\n1.  **克隆项目仓库**\n    将代码下载到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\n    cd mAP\n    ```\n\n2.  **安装可选依赖**（推荐安装以便查看完整报告）\n    \n    首先升级 pip：\n    ```bash\n    python -mpip install -U pip\n    ```\n\n    安装 Matplotlib（绘图）：\n    ```bash\n    # 通用命令\n    python -mpip install -U matplotlib\n    \n    # 或使用国内镜像\n    python -mpip install -U matplotlib -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n    安装 OpenCV（动画）：\n    ```bash\n    # 通用命令\n    python -mpip install -U opencv-python\n    \n    # 或使用国内镜像\n    python -mpip install -U opencv-python -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n## 基本使用\n\n使用前需准备好两类数据文件：**真实标注文件 (ground-truth)** 和 **检测结果文件 (detection-results)**。\n\n### 1. 准备数据文件\n\n在项目根目录下创建输入文件夹结构（如果不存在）：\n```bash\nmkdir -p input\u002Fground-truth\nmkdir -p input\u002Fdetection-results\nmkdir -p input\u002Fimages-optional  # 可选：放入原图以生成动画\n```\n\n#### A. 制作真实标注文件 (ground-truth)\n为每张测试图片创建一个 `.txt` 文件，文件名需与图片名一致（例如 `image_1.jpg` 对应 `image_1.txt`）。\n将文件放入 `input\u002Fground-truth\u002F` 目录。\n\n**文件格式**（每行一个物体）：\n```text\n\u003Cclass_name> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom> [\u003Cdifficult>]\n```\n*   `\u003Cclass_name>`: 类别名称\n*   `\u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom>`: 边界框坐标\n*   `[\u003Cdifficult>]`: 可选参数，若标记为 `difficult` 则该物体不参与评估\n\n**示例 (`input\u002Fground-truth\u002Fimage_1.txt`)**：\n```text\ntvmonitor 2 10 173 238\nbook 439 157 556 241\nbook 437 246 518 351 difficult\npottedplant 272 190 316 259\n```\n\n#### B. 制作检测结果文件 (detection-results)\n同样为每张测试图片创建一个 `.txt` 文件，文件名与图片名一致。\n将文件放入 `input\u002Fdetection-results\u002F` 目录。\n\n**文件格式**（每行一个检测结果，按置信度排序更佳）：\n```text\n\u003Cclass_name> \u003Cconfidence> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom>\n```\n*   `\u003Cconfidence>`: 模型预测的置信度分数\n\n**示例 (`input\u002Fdetection-results\u002Fimage_1.txt`)**：\n```text\ntvmonitor 0.471781 0 13 174 244\ncup 0.414941 274 226 301 265\nbook 0.460851 429 219 528 247\nchair 0.292345 0 199 88 436\nbook 0.269833 433 260 506 336\n```\n\n> **提示**：如果你使用的是 PASCAL VOC、Darkflow 或 YOLO 格式的数据，可查看 `scripts\u002Fextra` 文件夹中的脚本进行格式转换。\n\n### 2. 运行评估\n\n确保文件已放入对应文件夹后，执行以下命令：\n\n```bash\npython main.py\n```\n\n程序运行结束后，将在终端输出各类别的 AP 值及最终的 mAP 值。如果安装了 `matplotlib` 和 `opencv-python` 并放入了可选图片，还会自动生成精度曲线图和检测动画。","某自动驾驶初创团队正在迭代其车载行人检测模型，急需量化评估新版本算法在复杂路况下的真实表现。\n\n### 没有 mAP 时\n- 团队仅凭肉眼观察测试视频截图来判断模型优劣，主观性强且无法发现细微的性能倒退。\n- 缺乏统一的置信度阈值标准，不同开发人员对“检测成功”的定义不一致，导致沟通成本极高。\n- 无法区分模型是漏检了目标还是产生了大量误报，难以针对性地调整损失函数或数据增强策略。\n- 在向投资人汇报进展时，只能展示几张效果好的图片，缺乏如 PASCAL VOC 标准般权威的量化数据支撑。\n\n### 使用 mAP 后\n- 通过计算平均精度均值（mAP），团队获得了 0 到 100% 的客观评分，能精确对比出新版模型比旧版提升了 3.5%。\n- 利用 IoU≥0.5 的匹配机制和置信度排序，自动识别出模型在远距离小目标上的漏检问题，指导数据收集方向。\n- 生成的精度 - 召回率曲线直观展示了模型在不同阈值下的表现，帮助工程师快速锁定最佳推理阈值。\n- 基于行业通用的评估标准输出详细报告，让技术成果可度量、可复现，显著提升了项目汇报的说服力。\n\nmAP 将模糊的视觉感受转化为精确的数学指标，成为驱动目标检测模型持续优化的核心标尺。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCartucho_mAP_48b4c97c.png","Cartucho","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCartucho_4c5fae40.png","GSoC 2016 and 2017","Imperial College London",null,"https:\u002F\u002Fgithub.com\u002FCartucho\u002Fcurriculum\u002Fblob\u002Fmaster\u002Fjoao_cartucho_cv.pdf","https:\u002F\u002Fgithub.com\u002FCartucho",[80],{"name":81,"color":82,"percentage":83},"Python","#3572A5",100,2974,919,"2026-04-03T04:46:55","Apache-2.0",1,"Linux, macOS, Windows","未说明",{"notes":92,"python":93,"dependencies":94},"该工具主要用于评估目标检测模型的性能（计算 mAP），本身不包含神经网络训练或推理代码，因此无特定 GPU 或大内存需求。核心功能仅需 Python 环境。若需可视化结果或生成动画，需分别安装 Matplotlib 和 OpenCV。提供了将 PASCAL VOC、Darkflow 和 YOLO 格式转换为所需格式的脚本。输入数据需按特定格式整理为文本文件。","未说明具体版本，需安装 Python",[95,96],"matplotlib (可选，用于绘图)","opencv-python (可选，用于动画)",[15,14],[99,100,101,102,103,104,105,106,107,108,109,110],"machine-learning","pascal-voc","average-precision","ground-truth","object-detection","computer-vision","metrics","detection","neural-network","darkflow","yolo","darknet","2026-03-27T02:49:30.150509","2026-04-07T14:37:27.553040",[114,119,124,129,134,139],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},22248,"如何计算对数平均漏检率（log-average miss rate）？","要计算该指标，需确保边界框坐标格式正确。在将数据转换为 MATLAB 格式时，x 和 y 应代表左上角坐标，即 `x = float(left)` 和 `y = float(top)`，而不是中心点坐标 `(left+right)\u002F2`。修复 `convert_for_matlab.py` 中的此错误后，Python 和 MATLAB 计算出的结果将一致。","https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fissues\u002F43",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},22249,"如何将 YOLOv3\u002FDarknet 的测试结果解析为该仓库所需的格式？","可以使用 Python 脚本自动化运行 Darknet 并捕获输出。示例代码如下：\n```python\nimport os, subprocess\ncmd = \".\u002Fdarknet detector test {} {} {} -dont_show \\\"{}\\\"\".format(obj_dat, yolo_cnf, yolo_wghts, im)\np = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, preexec_fn=os.setsid)\n```\n注意需要根据推理速度调整 `time.sleep()` 的时间（例如 RTX 2080 约为 6 秒），或者修改逻辑以等待子进程结束，从而生成包含预测结果的文本文件。","https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fissues\u002F32",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},22250,"如果类别标签中包含空格导致报错，该如何解决？","该问题已被修复。现在的代码支持包含空格的标签名称。如果之前遇到此类错误，请更新到最新版本的代码即可正常处理带有空格的类别标签。","https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fissues\u002F9",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},22251,"如何为自己的图片创建符合格式要求的地面真值（ground-truth）文件？","地面真值文件通常来自测试集标注。如果使用 Keras-YOLO3 格式，文件结构为 `image_file_path x_min,y_min,x_max,y_max,class_id,score ...`。仓库中提供了 `extra\u002Fconvert_keras-yolo3.py` 脚本来处理这种格式的标注。对于自定义图片，你需要先获得标注坐标（左上角 x, y 和右下角 x, y），然后按照 `\u003Cclass_name> \u003Cleft> \u003Ctop> \u003Cright> \u003Cbottom>` 的格式保存每行一个对象。","https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fissues\u002F46",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},22252,"为什么评估结果只显示部分边界框，而不是检测到的所有对象？","这通常不是代码绘图的问题，而是模型本身未能检测到所有对象，或者非极大值抑制（NMS）过滤掉了部分框。建议检查模型的原始输出文件，确认是否所有预期的边界框都已生成。如果输出文件中存在但图中未显示，可能是绘制逻辑问题；如果输出文件中本身就没有，则是检测模型的问题。","https:\u002F\u002Fgithub.com\u002FCartucho\u002FmAP\u002Fissues\u002F35",{"id":140,"question_zh":141,"answer_zh":142,"source_url":123},22253,"如何使用脚本批量处理 YOLOv4 或其他版本的预测结果？","可以编写一个循环脚本读取图像路径列表，并逐个调用 darknet 命令。为了优化效率，不需要每次固定等待时间，可以改为监听子进程退出。示例逻辑：\n```python\nfor im in im_paths:\n    if len(im) == 0: continue\n    cmd = \".\u002Fdarknet detector test %s %s %s -dont_show %s\" % (obj_dat, yolo_cnf, yolo_wghts, im)\n    # 执行命令并处理输出，无需硬编码 sleep 时间\n```\n同时可以将地面真值文件复制到预测目录以便对比。",[144],{"id":145,"version":146,"summary_zh":76,"released_at":147},135963,"v0.0","2018-04-09T15:47:48"]