[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-experiencor--keras-yolo2":3,"tool-experiencor--keras-yolo2":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 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"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":107,"github_topics":108,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":155},9641,"experiencor\u002Fkeras-yolo2","keras-yolo2","Easy training on custom dataset. Various backends (MobileNet and SqueezeNet) supported. A YOLO demo to detect raccoon run entirely in brower is accessible at https:\u002F\u002Fgit.io\u002FvF7vI (not on Windows).","keras-yolo2 是一个基于 Keras 框架实现的 YOLOv2 目标检测开源项目，旨在帮助用户轻松地在自定义数据集上训练高性能的检测模型。它有效解决了传统目标检测算法在特定场景下数据适配难、模型部署门槛高的问题，让开发者能够快速构建从浣熊识别到自动驾驶车辆检测等各类应用。\n\n该工具非常适合具有一定 Python 基础的 AI 开发者、研究人员以及需要快速验证原型的技术团队使用。其核心亮点在于极高的灵活性：不仅支持完整的 YOLOv2 架构，还兼容 MobileNet、SqueezeNet、InceptionV3 和 ResNet50 等多种轻量级或高精度后端网络，方便用户根据实际算力需求进行权衡。此外，keras-yolo2 提供了详尽的数据准备指南和灵活的 JSON 配置文件，支持断点续训与多版本 Python 环境，甚至包含可在浏览器中直接运行的演示案例。无论是学术研究还是工程落地，它都能为用户提供一条从数据标注到模型推理的清晰路径。","# YOLOv2 in Keras and Applications\n\nThis repo contains the implementation of YOLOv2 in Keras with Tensorflow backend. It supports training YOLOv2 network with various backends such as MobileNet and InceptionV3. Links to demo applications are shown below. Check out https:\u002F\u002Fexperiencor.github.io\u002Fyolo_demo\u002Fdemo.html for a Raccoon Detector demo run entirely in brower with DeepLearn.js and MobileNet backend (it somehow breaks in Window). Source code of this demo is located at https:\u002F\u002Fgit.io\u002FvF7vG.\n\n## Todo list:\n- [x] Warmup training\n- [x] Raccoon detection, Self-driving car, and Kangaroo detection\n- [x] SqueezeNet, MobileNet, InceptionV3, and ResNet50 backends\n- [x] Support python 2.7 and 3.6\n- [ ] Multiple-GPU training\n- [ ] Multiscale training\n- [ ] mAP Evaluation\n\n## Some example applications (click for videos):\n\n### Raccon detection\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aibuvj2-zxA\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F6okeDjz.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\nDataset => https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fraccoon_dataset\n\n### Kangaroo detection\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FvjmFzEP1qZw?t=34\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002Fv606VZX.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\nDataset => https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkangaroo\n\n### Self-driving Car\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oYCaILZxEWM\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002FkEc9ptL.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\nDataset => http:\u002F\u002Fcocodataset.org\u002F#detections-challenge2017\n\n### Red blod cell detection\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oYCaILZxEWM\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F1vmIJKL.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\nDataset => https:\u002F\u002Fgithub.com\u002Fcosmicad\u002Fdataset\n\n### Hand detection\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=p3-3kN_fIz0\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F75imQQz.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\nDataset => http:\u002F\u002Fcvrr.ucsd.edu\u002Fvivachallenge\u002Findex.php\u002Fhands\u002Fhand-detection\u002F\n\n## Usage for python code\n\n### 0. Requirement\n\npython 2.7\n\nkeras >= 2.0.8\n\nimgaug\n\n### 1. Data preparation\nDownload the Raccoon dataset from from https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fraccoon_dataset.\n\nOrganize the dataset into 4 folders:\n\n+ train_image_folder \u003C= the folder that contains the train images.\n\n+ train_annot_folder \u003C= the folder that contains the train annotations in VOC format.\n\n+ valid_image_folder \u003C= the folder that contains the validation images.\n\n+ valid_annot_folder \u003C= the folder that contains the validation annotations in VOC format.\n    \nThere is a one-to-one correspondence by file name between images and annotations. If the validation set is empty, the training set will be automatically splitted into the training set and validation set using the ratio of 0.8.\n\n### 2. Edit the configuration file\nThe configuration file is a json file, which looks like this:\n\n```python\n{\n    \"model\" : {\n        \"architecture\":         \"Full Yolo\",    # \"Tiny Yolo\" or \"Full Yolo\" or \"MobileNet\" or \"SqueezeNet\" or \"Inception3\"\n        \"input_size\":           416,\n        \"anchors\":              [0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828],\n        \"max_box_per_image\":    10,        \n        \"labels\":               [\"raccoon\"]\n    },\n\n    \"train\": {\n        \"train_image_folder\":   \"\u002Fhome\u002Fandy\u002Fdata\u002Fraccoon_dataset\u002Fimages\u002F\",\n        \"train_annot_folder\":   \"\u002Fhome\u002Fandy\u002Fdata\u002Fraccoon_dataset\u002Fanns\u002F\",      \n          \n        \"train_times\":          10,             # the number of time to cycle through the training set, useful for small datasets\n        \"pretrained_weights\":   \"\",             # specify the path of the pretrained weights, but it's fine to start from scratch\n        \"batch_size\":           16,             # the number of images to read in each batch\n        \"learning_rate\":        1e-4,           # the base learning rate of the default Adam rate scheduler\n        \"nb_epoch\":             50,             # number of epoches\n        \"warmup_epochs\":        3,              # the number of initial epochs during which the sizes of the 5 boxes in each cell is forced to match the sizes of the 5 anchors, this trick seems to improve precision emperically\n\n        \"object_scale\":         5.0 ,           # determine how much to penalize wrong prediction of confidence of object predictors\n        \"no_object_scale\":      1.0,            # determine how much to penalize wrong prediction of confidence of non-object predictors\n        \"coord_scale\":          1.0,            # determine how much to penalize wrong position and size predictions (x, y, w, h)\n        \"class_scale\":          1.0,            # determine how much to penalize wrong class prediction\n\n        \"debug\":                true            # turn on\u002Foff the line that prints current confidence, position, size, class losses and recall\n    },\n\n    \"valid\": {\n        \"valid_image_folder\":   \"\",\n        \"valid_annot_folder\":   \"\",\n\n        \"valid_times\":          1\n    }\n}\n\n```\n\nThe model section defines the type of the model to construct as well as other parameters of the model such as the input image size and the list of anchors. The ```labels``` setting lists the labels to be trained on. Only images, which has labels being listed, are fed to the network. The rest images are simply ignored. By this way, a Dog Detector can easily be trained using VOC or COCO dataset by setting ```labels``` to ```['dog']```.\n\nDownload pretrained weights for backend (tiny yolo, full yolo, squeezenet, mobilenet, and inceptionV3) at:\n\nhttps:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F10oym4eL2RxJa0gro26vzXK__TtYOP5Ng\n\n**These weights must be put in the root folder of the repository. They are the pretrained weights for the backend only and will be loaded during model creation. The code does not work without these weights.**\n\nThe link to the pretrained weights for the whole model (both frontend and backend) of the raccoon detector can be downloaded at:\n\nhttps:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F10oym4eL2RxJa0gro26vzXK__TtYOP5Ng\n\nThese weights can be used as the pretrained weights for any one class object detectors.\n\n### 3. Generate anchors for your dataset (optional)\n\n`python gen_anchors.py -c config.json`\n\nCopy the generated anchors printed on the terminal to the ```anchors``` setting in ```config.json```.\n\n### 4. Start the training process\n\n`python train.py -c config.json`\n\nBy the end of this process, the code will write the weights of the best model to file best_weights.h5 (or whatever name specified in the setting \"saved_weights_name\" in the config.json file). The training process stops when the loss on the validation set is not improved in 3 consecutive epoches.\n\n### 5. Perform detection using trained weights on an image by running\n`python predict.py -c config.json -w \u002Fpath\u002Fto\u002Fbest_weights.h5 -i \u002Fpath\u002Fto\u002Fimage\u002For\u002Fvideo`\n\nIt carries out detection on the image and write the image with detected bounding boxes to the same folder.\n\n## Usage for jupyter notebook\n\nRefer to the notebook (https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fbasic-yolo-keras\u002Fblob\u002Fmaster\u002FYolo%20Step-by-Step.ipynb) for a complete walk-through implementation of YOLOv2 from scratch (training, testing, and scoring).\n\n## Evaluation of the current implementation:\n\n| Train        | Test          | mAP (with this implementation) | mAP (on released weights) |\n| -------------|:--------------|:------------------------:|:-------------------------:|\n| COCO train   | COCO val      | 28.6 |    42.1 |\n\nThe code to evaluate detection results can be found at https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fbasic-yolo-keras\u002Fissues\u002F27.\n\n## Copyright\n\nSee [LICENSE](LICENSE) for details.\n","# Keras中的YOLOv2及其应用\n\n本仓库包含使用TensorFlow后端在Keras中实现的YOLOv2。它支持使用MobileNet、InceptionV3等多种主干网络训练YOLOv2模型。下方提供了演示应用的链接。请访问https:\u002F\u002Fexperiencor.github.io\u002Fyolo_demo\u002Fdemo.html，查看完全在浏览器中运行、基于DeepLearn.js和MobileNet主干的浣熊检测器演示（该演示在Windows系统下会出错）。此演示的源代码位于https:\u002F\u002Fgit.io\u002FvF7vG。\n\n## 待办事项：\n- [x] 热身训练\n- [x] 浣熊检测、自动驾驶汽车和袋鼠检测\n- [x] SqueezeNet、MobileNet、InceptionV3和ResNet50主干支持\n- [x] 支持Python 2.7和3.6\n- [ ] 多GPU训练\n- [ ] 多尺度训练\n- [ ] mAP评估\n\n## 一些示例应用（点击观看视频）：\n\n### 浣熊检测\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aibuvj2-zxA\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F6okeDjz.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\n数据集 => https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fraccoon_dataset\n\n### 袋鼠检测\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FvjmFzEP1qZw?t=34\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002Fv606VZX.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\n数据集 => https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkangaroo\n\n### 自动驾驶汽车\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oYCaILZxEWM\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002FkEc9ptL.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\n数据集 => http:\u002F\u002Fcocodataset.org\u002F#detections-challenge2017\n\n### 红细胞检测\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oYCaILZxEWM\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F1vmIJKL.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\n数据集 => https:\u002F\u002Fgithub.com\u002Fcosmicad\u002Fdataset\n\n### 手部检测\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=p3-3kN_fIz0\" rel=\"some text\">\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002F75imQQz.jpg\" height=\"300\">\u003C\u002Fp>\u003C\u002Fa>\n\n数据集 => http:\u002F\u002Fcvrr.ucsd.edu\u002Fvivachallenge\u002Findex.php\u002Fhands\u002Fhand-detection\u002F\n\n## Python代码使用说明\n\n### 0. 环境要求\n\nPython 2.7\n\nKeras >= 2.0.8\n\nimgaug\n\n### 1. 数据准备\n从https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fraccoon_dataset下载浣熊数据集。\n\n将数据集整理成4个文件夹：\n\n+ train_image_folder \u003C= 包含训练图像的文件夹。\n+ train_annot_folder \u003C= 包含VOC格式训练标注的文件夹。\n+ valid_image_folder \u003C= 包含验证图像的文件夹。\n+ valid_annot_folder \u003C= 包含VOC格式验证标注的文件夹。\n    \n图像和标注之间按文件名一一对应。如果验证集为空，则训练集会自动按照0.8的比例拆分为训练集和验证集。\n\n### 2. 编辑配置文件\n配置文件为JSON格式，内容如下：\n\n```python\n{\n    \"model\" : {\n        \"architecture\":         \"Full Yolo\",    # \"Tiny Yolo\"或\"Full Yolo\"或\"MobileNet\"或\"SqueezeNet\"或\"Inception3\"\n        \"input_size\":           416,\n        \"anchors\":              [0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828],\n        \"max_box_per_image\":    10,        \n        \"labels\":               [\"raccoon\"]\n    },\n\n    \"train\": {\n        \"train_image_folder\":   \"\u002Fhome\u002Fandy\u002Fdata\u002Fraccoon_dataset\u002Fimages\u002F\",\n        \"train_annot_folder\":   \"\u002Fhome\u002Fandy\u002Fdata\u002Fraccoon_dataset\u002Fanns\u002F\",      \n          \n        \"train_times\":          10,             # 遍历训练集的次数，对小数据集有用\n        \"pretrained_weights\":   \"\",             # 指定预训练权重的路径，但也可以从头开始训练\n        \"batch_size\":           16,             # 每批读取的图像数量\n        \"learning_rate\":        1e-4,           # 默认Adam优化器的基础学习率\n        \"nb_epoch\":             50,             # 训练轮数\n        \"warmup_epochs\":        3,              # 初始几轮强制每个单元格中的5个边界框大小与5个锚框大小匹配，这一技巧在经验上似乎能提高精度\n\n        \"object_scale\":         5.0 ,           # 决定对目标预测器置信度错误预测的惩罚程度\n        \"no_object_scale\":      1.0,            # 决定对非目标预测器置信度错误预测的惩罚程度\n        \"coord_scale\":          1.0,            # 决定对位置和尺寸预测错误的惩罚程度（x, y, w, h）\n        \"class_scale\":          1.0,            # 决定对类别预测错误的惩罚程度\n\n        \"debug\":                true            # 开启或关闭打印当前置信度、位置、尺寸、类别损失及召回率的输出\n    },\n\n    \"valid\": {\n        \"valid_image_folder\":   \"\",\n        \"valid_annot_folder\":   \"\",\n\n        \"valid_times\":          1\n    }\n}\n\n```\n\n模型部分定义了要构建的模型类型以及输入图像尺寸、锚框列表等参数。`labels`设置列出了要训练的标签。只有包含这些标签的图像才会被送入网络，其余图像则会被忽略。通过这种方式，只需将`labels`设置为`['dog']`，即可利用VOC或COCO数据集轻松训练一个狗检测器。\n\n可从以下链接下载各主干网络的预训练权重（tiny yolo、full yolo、squeezenet、mobilenet和inceptionV3）：\n\nhttps:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F10oym4eL2RxJa0gro26vzXK__TtYOP5Ng\n\n**这些权重必须放置在仓库的根目录下。它们仅是主干网络的预训练权重，将在模型创建时加载。没有这些权重，代码将无法运行。**\n\n浣熊检测器的完整模型（包括前端和后端）的预训练权重链接如下：\n\nhttps:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F10oym4eL2RxJa0gro26vzXK__TtYOP5Ng\n\n这些权重可用作任何单类目标检测器的预训练权重。\n\n### 3. 为您的数据集生成锚框（可选）\n\n`python gen_anchors.py -c config.json`\n\n将终端中打印的生成锚框复制到`config.json`中的`anchors`设置中。\n\n### 4. 开始训练过程\n\n`python train.py -c config.json`\n\n训练结束后，代码会将最佳模型的权重保存到文件best_weights.h5（或根据`config.json`中`saved_weights_name`设置指定的名称）。当验证集上的损失连续3个epoch未改善时，训练过程将停止。\n\n### 5. 使用训练好的权重对图像进行检测，运行以下命令：\n`python predict.py -c config.json -w \u002Fpath\u002Fto\u002Fbest_weights.h5 -i \u002Fpath\u002Fto\u002Fimage\u002For\u002Fvideo`\n\n该命令会对图像进行检测，并将带有检测框的图像保存到同一文件夹中。\n\n## Jupyter Notebook 的使用方法\n\n请参阅该笔记本（https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fbasic-yolo-keras\u002Fblob\u002Fmaster\u002FYolo%20Step-by-Step.ipynb），其中提供了从零开始完整实现 YOLOv2 的教程，包括训练、测试和评估。\n\n## 当前实现的评估结果：\n\n| 训练集       | 测试集        | mAP（本实现） | mAP（使用官方权重） |\n| -------------|:--------------|:------------------------:|:-------------------------:|\n| COCO 训练集  | COCO 验证集   | 28.6 |    42.1 |\n\n用于评估检测结果的代码可在 https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fbasic-yolo-keras\u002Fissues\u002F27 找到。\n\n## 版权声明\n\n详情请参阅 [LICENSE](LICENSE) 文件。","# keras-yolo2 快速上手指南\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 下部分演示可能不稳定)\n*   **Python 版本**: 2.7 或 3.6\n*   **核心依赖**:\n    *   Keras >= 2.0.8 (后端需配置为 TensorFlow)\n    *   TensorFlow\n    *   imgaug (用于数据增强)\n\n> **提示**：国内用户建议使用清华源或阿里源加速 Python 包安装。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2.git\n    cd keras-yolo2\n    ```\n\n2.  **安装 Python 依赖**\n    ```bash\n    pip install -r requirements.txt\n    # 如果仓库中无 requirements.txt，请手动安装核心包：\n    pip install keras tensorflow imgaug\n    ```\n\n3.  **下载预训练权重 (必需)**\n    本项目必须下载后端预训练权重才能运行模型。\n    *   **下载地址**: [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F10oym4eL2RxJa0gro26vzXK__TtYOP5Ng)\n    *   **操作**: 下载对应架构（如 `full_yolo_weights.h5`, `mobilenet_weights.h5` 等）的权重文件。\n    *   **放置位置**: 将下载的 `.h5` 文件直接放入项目根目录下。\n\n## 基本使用\n\n以下以训练一个“浣熊检测器”为例，展示最简工作流程。\n\n### 1. 准备数据\n下载 [Raccoon 数据集](https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fraccoon_dataset)，并按以下结构组织文件夹：\n```text\ndata\u002F\n├── train_image_folder\u002F      # 训练图片\n├── train_annot_folder\u002F      # 训练标注 (VOC 格式 XML)\n├── valid_image_folder\u002F      # 验证图片 (可选)\n└── valid_annot_folder\u002F      # 验证标注 (可选)\n```\n*注：若未提供验证集，代码会自动按 8:2 比例分割训练集。*\n\n### 2. 配置模型\n复制并编辑 `config.json` 配置文件。主要修改 `train` 部分的路径和 `model` 部分的标签：\n\n```json\n{\n    \"model\" : {\n        \"architecture\":         \"Full Yolo\",\n        \"input_size\":           416,\n        \"anchors\":              [0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828],\n        \"max_box_per_image\":    10,\n        \"labels\":               [\"raccoon\"]\n    },\n    \"train\": {\n        \"train_image_folder\":   \"\u002Fpath\u002Fto\u002Fyour\u002Fdata\u002Ftrain_image_folder\u002F\",\n        \"train_annot_folder\":   \"\u002Fpath\u002Fto\u002Fyour\u002Fdata\u002Ftrain_annot_folder\u002F\",\n        \"train_times\":          10,\n        \"pretrained_weights\":   \"full_yolo_weights.h5\", \n        \"batch_size\":           16,\n        \"learning_rate\":        1e-4,\n        \"nb_epoch\":             50,\n        \"warmup_epochs\":        3,\n        \"object_scale\":         5.0,\n        \"no_object_scale\":      1.0,\n        \"coord_scale\":          1.0,\n        \"class_scale\":          1.0,\n        \"debug\":                true\n    },\n    \"valid\": {\n        \"valid_image_folder\":   \"\",\n        \"valid_annot_folder\":   \"\",\n        \"valid_times\":          1\n    }\n}\n```\n\n### 3. (可选) 生成自定义 Anchors\n如果您使用的是全新数据集，建议先运行脚本生成适合该数据集的 Anchors，并更新到 `config.json` 中：\n```bash\npython gen_anchors.py -c config.json\n```\n\n### 4. 开始训练\n运行训练脚本，最佳模型权重将自动保存为 `best_weights.h5`：\n```bash\npython train.py -c config.json\n```\n*训练将在验证集损失连续 3 个 epoch 未提升时自动停止。*\n\n### 5. 执行检测\n使用训练好的权重对图片或视频进行检测：\n```bash\npython predict.py -c config.json -w best_weights.h5 -i \u002Fpath\u002Fto\u002Fimage.jpg\n```\n检测结果（带有边界框的图片）将保存在同一文件夹下。","某农业科技公司正在开发一套智能监控系统，旨在自动识别并统计果园中频繁出没、破坏作物的浣熊数量，以指导防护部署。\n\n### 没有 keras-yolo2 时\n- **定制训练门槛高**：团队需从零编写复杂的 YOLOv2 底层代码，难以快速适配仅包含“浣熊”这一特定类别的自定义数据集。\n- **部署灵活性差**：缺乏对 MobileNet 等轻量级后端的支持，导致模型体积过大，无法在边缘设备或浏览器端进行实时推理。\n- **数据准备繁琐**：缺少标准化的 VOC 格式数据加载与增强流程，研究人员需花费大量时间手动处理图像与标注文件的对应关系。\n- **试错成本高昂**：调整锚框（Anchors）和网络架构需反复修改核心源码，严重拖慢了从实验到落地的迭代速度。\n\n### 使用 keras-yolo2 后\n- **开箱即用的定制训练**：只需简单配置 JSON 文件定义标签为\"raccoon\"，即可直接利用内置脚本启动针对浣熊数据集的高效训练。\n- **多后端灵活切换**：轻松切换至 MobileNet 或 SqueezeNet 后端，成功将模型部署于浏览器端，实现了无需服务器支持的实时浣熊检测演示。\n- **标准化数据流水线**：工具自动处理训练集与验证集的划分及 VOC 格式解析，配合 imgaug 增强，大幅缩短了数据预处理周期。\n- **架构调整便捷**：通过修改配置文件即可尝试 Tiny YOLO 或 Full YOLO 等不同架构，快速找到精度与速度的最佳平衡点。\n\nkeras-yolo2 通过极简的配置化流程和多样的后端支持，让开发者能专注于业务数据本身，迅速将自定义物体检测算法从概念验证推向实际应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fexperiencor_keras-yolo2_6a5d2b35.png","experiencor","Huynh Ngoc Anh","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fexperiencor_ff675018.jpg","available for consulting jobs","@Grab ","Singapore","experiencor@gmail.com",null,"https:\u002F\u002Fexperiencor.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fexperiencor",[83,87],{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",96,{"name":88,"color":89,"percentage":90},"Python","#3572A5",4,1735,775,"2026-04-13T12:56:26","MIT","Linux, macOS, Windows","未说明（基于 TensorFlow 后端，通常建议使用 NVIDIA GPU 加速，但 README 未明确指定型号、显存或 CUDA 版本；目前不支持多 GPU 训练）","未说明",{"notes":99,"python":100,"dependencies":103},"1. 必须下载预训练权重文件并放置在仓库根目录，否则代码无法运行。2. 支持多种后端架构（MobileNet, InceptionV3, SqueezeNet, ResNet50, Tiny Yolo, Full Yolo）。3. 数据标注需采用 VOC 格式。4. 浏览器演示项目在 Windows 上可能存在兼容性问题。5. 当前版本尚未支持多 GPU 训练和多尺度训练。",[101,102],"2.7","3.6",[104,105,106],"keras>=2.0.8","tensorflow (作为后端)","imgaug",[14],[109,110,111,112,113],"convolutional-networks","deep-learning","yolo2","realtime","regression","2026-03-27T02:49:30.150509","2026-04-20T04:06:12.984389",[117,122,127,132,137,142,147,151],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},43295,"如何训练 Tiny YOLO 检测多个类别或解决多类别训练困难的问题？","Tiny YOLO 的表达能力较弱，训练多类别比较棘手。建议尝试以下方法：\n1. 调整 4 个尺度（scales）的参数。\n2. 增加 `object_scale` 和 `coord_scale` 的值以帮助收敛。\n3. 使用新的代码生成锚框（anchors），运行 `gen_anchors.py` 脚本根据数据集重新计算锚框。\n4. 如果图像尺寸过小，需要在更大的尺度上训练，或者修改后端（backend）以获得更大的网格，但这可能需要从头开始训练。","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F9",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},43296,"训练多类别时出现形状不匹配的 ValueError (例如 shape (30,) vs (35,)) 怎么办？","这通常是因为预训练权重文件的类别数量与当前配置的类别数量不一致。如果你使用针对单类别训练的预训练权重（如 tiny_yolo_raccoon.h5）去训练多类别，会报错。解决方法包括：\n1. 确保配置文件中的类别列表与预训练权重对应的类别数匹配，或者不使用预训练权重从头训练。\n2. 检查损失函数实现，有些用户通过修改损失函数（如调整 `loss_class` 的权重系数，移除对对象数量的正则化项 `(nb_coord_box + 1e-6)`）改善了多类别训练效果。\n3. 确认锚框（anchors）是基于输入和输出比例生成的，自定义后端可能会产生不同于默认 32 倍下采样的比例。","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F306",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},43297,"VOC 格式的标注文件是如何生成的？标注的具体含义是什么？","VOC 格式的标注通常是 XML 文件，包含图像中物体的边界框坐标和类别标签，而不仅仅是图像标签。你需要使用标注工具（如 labelImg）手动绘制边界框并保存为 VOC XML 格式。生成标注后，需要运行 `gen_anchors.py` 脚本来根据你的数据集更新 `config.json` 文件中的锚框（anchors）参数，以适应你的特定物体尺寸分布。","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F274",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},43298,"遇到 'UnboundLocalError: local variable epoch_logs is not assigned' 错误如何解决？","这个错误通常是由于 Keras 版本不兼容导致的。解决方案是升级 Keras 到最新版本。维护者建议使用 Keras 2.0.8 或 2.1.1 及以上版本。请运行 `pip install --upgrade keras` 更新 Keras，然后重新运行训练脚本。","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F56",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},43299,"这个项目有 Keras 版本的 YOLOv3 吗？","有的。作者已经发布了 Keras 版本的 YOLOv3 实现。你可以访问以下仓库获取代码：\n1. 主仓库：https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo3\n2. 实验性分支代码：https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fbasic-yolo-keras\u002Ftree\u002Fmaster\u002Fexperimental","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F207",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},43300,"运行训练时遇到 'No module named expat' 或 XML 解析错误怎么办？","该错误表明 Python 环境中缺少 `expat` 模块，导致无法解析 VOC 格式的 XML 标注文件。这通常发生在某些精简版的 Python 环境（如 Bitnami 或某些 Docker 镜像）中。解决方法是安装包含 expat 支持的 Python 包，或者在系统层面安装 libexpat。如果是 Ubuntu\u002FDebian 系统，可以尝试运行 `sudo apt-get install python-libxml2` 或重新安装完整的 Python 发行版。此外，检查 `frontend.py` 中是否错误地启用了 `write_batch_performance=True` 参数，有时注释掉该参数也能避免相关初始化错误。","https:\u002F\u002Fgithub.com\u002Fexperiencor\u002Fkeras-yolo2\u002Fissues\u002F69",{"id":148,"question_zh":149,"answer_zh":150,"source_url":131},43301,"如何检测微小物体（如塑料袋、U 盘）？","检测微小物体需要调整网络结构以适应更小的目标：\n1. 如果数据集中的图像尺寸太小，必须在更大的输入尺度上进行训练。\n2. 修改后端（backend）网络以获得更大的特征网格（grid size）。\n3. 注意：修改后端网格大小通常意味着不能使用预训练权重，需要从随机初始化权重开始从头训练（train from scratch）。\n4. 重新运行 `gen_anchors.py` 生成适合小物体的锚框。",{"id":152,"question_zh":153,"answer_zh":154,"source_url":146},43302,"预测时出现 OpenCV 错误 'could not find a writer for the specified extension' 是什么原因？","这个错误是因为 OpenCV 无法识别输出图像的文件扩展名，导致无法保存结果图片。通常是因为输入图像路径的扩展名不被支持或格式不正确。请确保输入图像具有标准的扩展名（如 .jpg, .png），并且你的 OpenCV 安装支持该格式的写入操作。检查 `predict.py` 中保存图像的代码行，确保文件路径拼接正确，扩展名有效。",[156],{"id":157,"version":158,"summary_zh":79,"released_at":159},342996,"v0.1","2018-02-08T04:29:57"]