[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Adamdad--keras-YOLOv3-mobilenet":3,"tool-Adamdad--keras-YOLOv3-mobilenet":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 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[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":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":10,"env_os":92,"env_gpu":93,"env_ram":92,"env_deps":94,"category_tags":102,"github_topics":103,"view_count":32,"oss_zip_url":113,"oss_zip_packed_at":113,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":167},7198,"Adamdad\u002Fkeras-YOLOv3-mobilenet","keras-YOLOv3-mobilenet","I transfer the backend of yolov3 into Mobilenetv1，VGG16，ResNet101 and ResNeXt101","keras-YOLOv3-mobilenet 是一个基于 Keras 框架（TensorFlow 后端）的目标检测开源项目。它在经典 YOLOv3 算法的基础上，创新性地将原本厚重的 Darknet53 主干网络替换为更轻量级的架构，包括 Mobilenetv1、VGG16、ResNet101 以及 ResNeXt101。\n\n这一改进主要解决了传统 YOLOv3 模型参数量大、计算资源消耗高，难以在移动端或嵌入式设备上高效运行的痛点。通过引入轻量化骨干网络，keras-YOLOv3-mobilenet 在保持较高检测精度的同时，显著提升了推理速度。实验数据显示，在 VOC 数据集上，其性能表现优于同级别的 MobileNet-SSD 方案，且无需依赖复杂的预训练技巧即可取得良好效果。\n\n该工具非常适合计算机视觉领域的开发者、研究人员以及需要在资源受限环境中部署目标检测应用的技术人员使用。对于希望深入理解模型结构修改、进行自定义训练或探索不同骨干网络对检测性能影响的用户来说，这是一个极具参考价值的实践项目。项目提供了完整的训练、评估及测试代码，支持灵活调整输入尺寸和锚框设置，帮助用户快速","keras-YOLOv3-mobilenet 是一个基于 Keras 框架（TensorFlow 后端）的目标检测开源项目。它在经典 YOLOv3 算法的基础上，创新性地将原本厚重的 Darknet53 主干网络替换为更轻量级的架构，包括 Mobilenetv1、VGG16、ResNet101 以及 ResNeXt101。\n\n这一改进主要解决了传统 YOLOv3 模型参数量大、计算资源消耗高，难以在移动端或嵌入式设备上高效运行的痛点。通过引入轻量化骨干网络，keras-YOLOv3-mobilenet 在保持较高检测精度的同时，显著提升了推理速度。实验数据显示，在 VOC 数据集上，其性能表现优于同级别的 MobileNet-SSD 方案，且无需依赖复杂的预训练技巧即可取得良好效果。\n\n该工具非常适合计算机视觉领域的开发者、研究人员以及需要在资源受限环境中部署目标检测应用的技术人员使用。对于希望深入理解模型结构修改、进行自定义训练或探索不同骨干网络对检测性能影响的用户来说，这是一个极具参考价值的实践项目。项目提供了完整的训练、评估及测试代码，支持灵活调整输入尺寸和锚框设置，帮助用户快速构建高效的目标检测系统。","# keras-yolo3-Mobilenet\n\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](LICENSE)\n\n## Introduction\n\nA Keras implementation of YOLOv3 (Tensorflow backend) inspired by [allanzelener\u002FYAD2K](https:\u002F\u002Fgithub.com\u002Fallanzelener\u002FYAD2K).\n#### And I change the backend of darknet53 into \n- [x] Mobilenet\n- [x] VGG16\n- [x] ResNet101\n- [x] ResNeXt101\n\n## Experiment on open datasets\n\n| Model name | InputSize | TrainSet | TestSet | mAP | Speed | Ps |\n| ----- | ------ | ------ | ------ | ----- | ----- | ----- |\n| YOLOv3-Mobilenet | 320x320 | VOC07 | VOC07 | 64.22% | 29fps | Keras on 1080Ti |\n| YOLOv3-Mobilenet | 320x320 | VOC07+12 | VOC07 | 74.56% | 29fps | Keras on 1080Ti |\n| YOLOv3-Mobilenet | 416x416 | VOC07+12 | VOC07 | 76.82% | 25fps | Keras on 1080Ti |\n| [MobileNet-SSD](https:\u002F\u002Fgithub.com\u002Fchuanqi305\u002FMobileNet-SSD) | 300x300 | VOC07+12+coco | VOC07 | 72.7% | (unknown) ||\n| [MobileNet-SSD](https:\u002F\u002Fgithub.com\u002Fchuanqi305\u002FMobileNet-SSD) | 300x300 | VOC07+12 | VOC07 | 68% | (unknown) ||\n| [Faster RCNN, VGG-16](https:\u002F\u002Fgithub.com\u002FShaoqingRen\u002Ffaster_rcnn)| ~1000x600 | VOC07+12| VOC07 | 73.2% | 151ms | Caffe on Titan X |\n|[SSD,VGG-16](https:\u002F\u002Fgithub.com\u002Fpierluigiferrari\u002Fssd_keras) | 300x300 | VOC07+12 | VOC07\t| 77.5% | 39fps | Keras on Titan X |\n\n#### PS:\n1. Compared with MobileNet-SSD, YOLOv3-Mobilenet is much better on VOC2007 test, even without pre-training on Ms-COCO\n2. I use the default anchor size that the author cluster on COCO with inputsize of 416\\*416, whereas the anchors for VOC 320 input should be smaller. The change of anchor size could gain performance improvement.\n3. Evaluation on https:\u002F\u002Fgithub.com\u002FAdamdad\u002FObject-Detection-Metrics.git\n4. I only use the pure model of YOLOv3-Mobilenet with no additional tricks.\n\n# Guide of keras-yolov3-Mobilenet\n\n1.train_Mobilenet.py \n     \n> * **Code for training**\n> * I change some of the code to read in the annotaions seperately (train.txt and val.txt), remember to change that, and the .txt file are in the same form descibed below\n\n2.yolo3\u002Fmodel_Mobilenet.py \n    \n> * **Model_Mobilenet is the yolo model based on Mobilenet**\n> * If you want to go through the source code,ignore the other function,please see the yolo_body\n(I extract three layers from the Mobilenet to make the prediction)\n\n3.yolo_Mobilenet.py\n    \n > * **Testing on images**\n\n\n###### Be sure that you do not load pretrained model when training because I did it on keras_applications,and the keras will load the pretrained model for you\n##### if you find anything tricky, contact me as you wish\n---\n# Evaluation \n#### Please use this repo to draw the RP curve calculate the MAP https:\u002F\u002Fgithub.com\u002FAdamdad\u002FObject-Detection-Metrics.git\n---\n# Guide of keras-yolov3\n[this is the guide for darknet53 not mobilenet]\n## Quick Start\n\n1. Download YOLOv3 weights from [YOLO website](http:\u002F\u002Fpjreddie.com\u002Fdarknet\u002Fyolo\u002F).\n2. Convert the Darknet YOLO model to a Keras model.\n3. Run YOLO detection.\n\n```\nwget https:\u002F\u002Fpjreddie.com\u002Fmedia\u002Ffiles\u002Fyolov3.weights\npython convert.py yolov3.cfg yolov3.weights model_data\u002Fyolo.h5\npython yolo_video.py [OPTIONS...] --image, for image detection mode, OR\npython yolo_video.py [video_path] [output_path (optional)]\n```\n\nFor Tiny YOLOv3, just do in a similar way, just specify model path and anchor path with `--model model_file` and `--anchors anchor_file`.\n\n### Usage\nUse --help to see usage of yolo_video.py:\n```\nusage: yolo_video.py [-h] [--model MODEL] [--anchors ANCHORS]\n                     [--classes CLASSES] [--gpu_num GPU_NUM] [--image]\n                     [--input] [--output]\n\npositional arguments:\n  --input        Video input path\n  --output       Video output path\n\noptional arguments:\n  -h, --help         show this help message and exit\n  --model MODEL      path to model weight file, default model_data\u002Fyolo.h5\n  --anchors ANCHORS  path to anchor definitions, default\n                     model_data\u002Fyolo_anchors.txt\n  --classes CLASSES  path to class definitions, default\n                     model_data\u002Fcoco_classes.txt\n  --gpu_num GPU_NUM  Number of GPU to use, default 1\n  --image            Image detection mode, will ignore all positional arguments\n```\n---\n\n4. MultiGPU usage: use `--gpu_num N` to use N GPUs. It is passed to the [Keras multi_gpu_model()](https:\u002F\u002Fkeras.io\u002Futils\u002F#multi_gpu_model).\n\n## Training\n\n1. Generate your own annotation file and class names file.  \n    One row for one image;  \n    Row format: `image_file_path box1 box2 ... boxN`;  \n    Box format: `x_min,y_min,x_max,y_max,class_id` (no space).  \n    For VOC dataset, try `python voc_annotation.py`  \n    Here is an example:\n    ```\n    path\u002Fto\u002Fimg1.jpg 50,100,150,200,0 30,50,200,120,3\n    path\u002Fto\u002Fimg2.jpg 120,300,250,600,2\n    ...\n    ```\n\n2. Make sure you have run `python convert.py -w yolov3.cfg yolov3.weights model_data\u002Fyolo_weights.h5`  \n    The file model_data\u002Fyolo_weights.h5 is used to load pretrained weights.\n\n3. Modify train.py and start training.  \n    `python train.py`  \n    Use your trained weights or checkpoint weights with command line option `--model model_file` when using yolo_video.py\n    Remember to modify class path or anchor path, with `--classes class_file` and `--anchors anchor_file`.\n\nIf you want to use original pretrained weights for YOLOv3:  \n    1. `wget https:\u002F\u002Fpjreddie.com\u002Fmedia\u002Ffiles\u002Fdarknet53.conv.74`  \n    2. rename it as darknet53.weights  \n    3. `python convert.py -w darknet53.cfg darknet53.weights model_data\u002Fdarknet53_weights.h5`  \n    4. use model_data\u002Fdarknet53_weights.h5 in train.py\n\n---\n\n## Some issues to know\n\n1. The test environment is\n    - Python 3.5.2\n    - Keras 2.1.5\n    - tensorflow 1.6.0\n\n2. Default anchors are used. If you use your own anchors, probably some changes are needed.\n\n3. The inference result is not totally the same as Darknet but the difference is small.\n\n4. The speed is slower than Darknet. Replacing PIL with opencv may help a little.\n\n5. Always load pretrained weights and freeze layers in the first stage of training. Or try Darknet training. It's OK if there is a mismatch warning.\n\n6. The training strategy is for reference only. Adjust it according to your dataset and your goal. And add further strategy if needed.\n\n7. For speeding up the training process with frozen layers train_bottleneck.py can be used. It will compute the bottleneck features of the frozen model first and then only trains the last layers. This makes training on CPU possible in a reasonable time. See [this](https:\u002F\u002Fblog.keras.io\u002Fbuilding-powerful-image-classification-models-using-very-little-data.html) for more information on bottleneck features.\n\n\n\n\n# Citation\nPlease cite MobileNet-YOLO in your publications if it helps your research:\n```\n@article{MobileNet-Yolov3,\n     Author = {Adam Yang},\n     Year = {2018}\n}\n @article{yolov3,\n     title={YOLOv3: An Incremental Improvement},\n     author={Redmon, Joseph and Farhadi, Ali},\n     journal = {arXiv},\n     year={2018}\n}\n@article{mobilenets,\n     title={MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications},\n     author={Andrew G. Howard, Menglong Zhu, Bo Chen,Dmitry Kalenichenko,Weijun Wang, Tobias Weyand,Marco Andreetto, Hartwig Adam},\n     journal = {arXiv},\n     year = {2017}\n}\n```\n","# keras-yolo3-Mobilenet\n\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](LICENSE)\n\n## 简介\n\n基于 [allanzelener\u002FYAD2K](https:\u002F\u002Fgithub.com\u002Fallanzelener\u002FYAD2K) 的启发，这是一个使用 Keras 实现的 YOLOv3（TensorFlow 后端）。  \n#### 我将 Darknet53 的后端替换为：\n- [x] Mobilenet\n- [x] VGG16\n- [x] ResNet101\n- [x] ResNeXt101\n\n## 开放数据集上的实验\n\n| 模型名称 | 输入尺寸 | 训练集 | 测试集 | mAP | 速度 | 备注 |\n| ----- | ------ | ------ | ------ | ----- | ----- | ----- |\n| YOLOv3-Mobilenet | 320x320 | VOC07 | VOC07 | 64.22% | 29fps | Keras 在 1080Ti 上 |\n| YOLOv3-Mobilenet | 320x320 | VOC07+12 | VOC07 | 74.56% | 29fps | Keras 在 1080Ti 上 |\n| YOLOv3-Mobilenet | 416x416 | VOC07+12 | VOC07 | 76.82% | 25fps | Keras 在 1080Ti 上 |\n| [MobileNet-SSD](https:\u002F\u002Fgithub.com\u002Fchuanqi305\u002FMobileNet-SSD) | 300x300 | VOC07+12+coco | VOC07 | 72.7% | （未知）||\n| [MobileNet-SSD](https:\u002F\u002Fgithub.com\u002Fchuanqi305\u002FMobileNet-SSD) | 300x300 | VOC07+12 | VOC07 | 68% | （未知）||\n| [Faster RCNN, VGG-16](https:\u002F\u002Fgithub.com\u002FShaoqingRen\u002Ffaster_rcnn)| ~1000x600 | VOC07+12| VOC07 | 73.2% | 151ms | Caffe 在 Titan X 上 |\n|[SSD,VGG-16](https:\u002F\u002Fgithub.com\u002Fpierluigiferrari\u002Fssd_keras) | 300x300 | VOC07+12 | VOC07\t| 77.5% | 39fps | Keras 在 Titan X 上 |\n\n#### 备注：\n1. 与 MobileNet-SSD 相比，YOLOv3-Mobilenet 在 VOC2007 测试集上的表现更好，即使没有在 Ms-COCO 数据集上进行预训练。\n2. 我使用了作者在 COCO 数据集上聚类得到的默认锚框尺寸，输入尺寸为 416×416；而对于 VOC 数据集，输入尺寸为 320 时，锚框应更小。调整锚框尺寸可能会进一步提升性能。\n3. 评估基于 https:\u002F\u002Fgithub.com\u002FAdamdad\u002FObject-Detection-Metrics.git。\n4. 我仅使用纯 YOLOv3-Mobilenet 模型，未采用任何额外技巧。\n\n# keras-yolov3-Mobilenet 使用指南\n\n1. train_Mobilenet.py \n\n> * **训练代码**\n> * 我修改了一些代码，以便分别读取标注文件（train.txt 和 val.txt），请务必相应修改，并确保 .txt 文件格式与下文描述一致。\n\n2. yolo3\u002Fmodel_Mobilenet.py \n\n> * **model_Mobilenet 是基于 Mobilenet 的 YOLO 模型**\n> * 如果您想深入研究源代码，请重点关注 yolo_body 函数。（我从 Mobilenet 中提取了三层用于预测）\n\n3. yolo_Mobilenet.py\n\n > * **图像检测**\n\n###### 请注意，在训练时不要加载预训练模型，因为我是在 keras_applications 中完成的，Keras 会自动为您加载预训练模型。\n##### 如果您遇到任何问题，请随时联系我。\n---\n# 评估 \n#### 请使用此仓库绘制 PR 曲线并计算 MAP：https:\u002F\u002Fgithub.com\u002FAdamdad\u002FObject-Detection-Metrics.git\n---\n# keras-yolov3 使用指南\n[这是针对 Darknet53 的指南，而非 Mobilenet]\n## 快速入门\n\n1. 从 [YOLO 官网](http:\u002F\u002Fpjreddie.com\u002Fdarknet\u002Fyolo\u002F) 下载 YOLOv3 权重。\n2. 将 Darknet YOLO 模型转换为 Keras 模型。\n3. 运行 YOLO 检测。\n\n```\nwget https:\u002F\u002Fpjreddie.com\u002Fmedia\u002Ffiles\u002Fyolov3.weights\npython convert.py yolov3.cfg yolov3.weights model_data\u002Fyolo.h5\npython yolo_video.py [选项...] --image，用于图像检测模式，或\npython yolo_video.py [视频路径] [输出路径（可选）]\n```\n\n对于 Tiny YOLOv3，操作类似，只需通过 `--model 模型文件` 和 `--anchors 锚点文件` 指定模型和锚点路径即可。\n\n### 使用方法\n使用 `--help` 查看 yolo_video.py 的用法：\n```\n用法: yolo_video.py [-h] [--model MODEL] [--anchors ANCHORS]\n                     [--classes CLASSES] [--gpu_num GPU_NUM] [--image]\n                     [--input] [--output]\n\n位置参数:\n  --input        视频输入路径\n  --output       视频输出路径\n\n可选参数:\n  -h, --help         显示此帮助信息并退出\n  --model MODEL      模型权重文件路径，默认为 model_data\u002Fyolo.h5\n  --anchors ANCHORS  锚点定义文件路径，默认为\n                     model_data\u002Fyolo_anchors.txt\n  --classes CLASSES  类别定义文件路径，默认为\n                     model_data\u002Fcoco_classes.txt\n  --gpu_num GPU_NUM  使用的 GPU 数量，默认为 1\n  --image            图像检测模式，将忽略所有位置参数\n```\n\n---\n\n4. 多 GPU 使用：使用 `--gpu_num N` 可以启用 N 个 GPU。该参数会传递给 [Keras 的 multi_gpu_model()](https:\u002F\u002Fkeras.io\u002Futils\u002F#multi_gpu_model)。\n\n## 训练\n\n1. 生成您自己的标注文件和类别名称文件。  \n    每行对应一张图像；  \n    行格式：`图像文件路径 box1 box2 ... boxN`；  \n    框格式：`x_min,y_min,x_max,y_max,class_id`（无空格）。  \n    对于 VOC 数据集，可以尝试使用 `python voc_annotation.py`。  \n    示例：\n    ```\n    path\u002Fto\u002Fimg1.jpg 50,100,150,200,0 30,50,200,120,3\n    path\u002Fto\u002Fimg2.jpg 120,300,250,600,2\n    ...\n    ```\n\n2. 确保已运行 `python convert.py -w yolov3.cfg yolov3.weights model_data\u002Fyolo_weights.h5`。  \n    文件 model_data\u002Fyolo_weights.h5 用于加载预训练权重。\n\n3. 修改 train.py 并开始训练。  \n    `python train.py`  \n    在使用 yolo_video.py 时，可以通过命令行选项 `--model 模型文件` 使用您训练好的权重或检查点权重。  \n    请记得根据需要修改类别路径或锚点路径，使用 `--classes 类别文件` 和 `--anchors 锚点文件`。\n\n如果您想使用 YOLOv3 的原始预训练权重：  \n    1. `wget https:\u002F\u002Fpjreddie.com\u002Fmedia\u002Ffiles\u002Fdarknet53.conv.74`  \n    2. 重命名为 darknet53.weights  \n    3. `python convert.py -w darknet53.cfg darknet53.weights model_data\u002Fdarknet53_weights.h5`  \n    4. 在 train.py 中使用 model_data\u002Fdarknet53_weights.h5。\n\n---\n\n## 需要注意的一些问题\n\n1. 测试环境为：\n    - Python 3.5.2\n    - Keras 2.1.5\n    - tensorflow 1.6.0\n\n2. 使用的是默认锚点。如果您使用自定义锚点，可能需要进行一些调整。\n\n3. 推理结果与 Darknet 不完全相同，但差异较小。\n\n4. 速度比 Darknet 慢。用 opencv 替代 PIL 或许能稍微提升速度。\n\n5. 始终建议加载预训练权重并在训练的第一阶段冻结层。或者直接使用 Darknet 进行训练。如果出现不匹配警告也无需担心。\n\n6. 训练策略仅供参考，应根据您的数据集和目标进行调整。如有必要，可进一步补充训练策略。\n\n7. 为了加快训练速度，可以使用 train_bottleneck.py 方法。它会先计算冻结模型的瓶颈特征，然后再只训练最后几层。这样可以在 CPU 上以合理的时间完成训练。更多信息请参阅 [这篇博客文章](https:\u002F\u002Fblog.keras.io\u002Fbuilding-powerful-image-classification-models-using-very-little-data.html)，了解关于瓶颈特征的详细内容。\n\n# 引用\n如果您在研究中使用了 MobileNet-YOLO，请在您的出版物中引用它：\n```\n@article{MobileNet-Yolov3,\n     Author = {Adam Yang},\n     Year = {2018}\n}\n @article{yolov3,\n     title={YOLOv3：一项渐进式改进},\n     author={Redmon, Joseph 和 Farhadi, Ali},\n     journal = {arXiv},\n     year={2018}\n}\n@article{mobilenets,\n     title={MobileNets：用于移动视觉应用的高效卷积神经网络},\n     author={Andrew G. Howard、Menglong Zhu、Bo Chen、Dmitry Kalenichenko、Weijun Wang、Tobias Weyand、Marco Andreetto、Hartwig Adam},\n     journal = {arXiv},\n     year = {2017}\n}\n```","# keras-YOLOv3-mobilenet 快速上手指南\n\n本指南基于 `keras-YOLOv3-mobilenet` 项目，帮助开发者快速在 Keras (TensorFlow 后端) 环境下部署基于 MobileNet、VGG16 或 ResNet 骨干网络的 YOLOv3 目标检测模型。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux \u002F Windows \u002F macOS\n*   **Python**: 3.5+ (推荐 3.6 或 3.7)\n*   **核心依赖**:\n    *   TensorFlow 1.6.0+ (GPU 版本推荐)\n    *   Keras 2.1.5+\n    *   OpenCV-python (可选，用于提升推理速度)\n    *   Pillow\n    *   h5py\n    *   numpy\n\n**安装依赖命令：**\n```bash\npip install tensorflow-gpu==1.12.0 keras==2.2.4 opencv-python h5py pillow numpy\n```\n> **提示**：国内用户建议使用清华或阿里镜像源加速安装：\n> `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple \u003C包名>`\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet.git\n    cd keras-YOLOv3-mobilenet\n    ```\n\n2.  **准备预训练权重（可选但推荐）**\n    如果您想直接使用官方提供的 Darknet53 预训练权重并转换为 Keras 格式（用于对比或作为其他骨干网络的参考），执行以下命令：\n    ```bash\n    wget https:\u002F\u002Fpjreddie.com\u002Fmedia\u002Ffiles\u002Fyolov3.weights\n    python convert.py yolov3.cfg yolov3.weights model_data\u002Fyolo.h5\n    ```\n    *注意：本项目核心特色是支持 **MobileNet** 等轻量级骨干网络。训练 MobileNet 版本时，通常利用 `keras_applications` 自动下载对应的 ImageNet 预训练权重，无需手动转换 Darknet 权重文件。*\n\n## 基本使用\n\n### 1. 图像检测测试\n\n使用默认的 MobileNet 模型对单张图片进行检测：\n\n```bash\npython yolo_Mobilenet.py --image path\u002Fto\u002Fyour_image.jpg\n```\n\n若需检测视频文件：\n```bash\npython yolo_video.py [video_path] [output_path (optional)]\n```\n\n**常用参数说明：**\n*   `--model`: 指定模型权重文件路径 (默认: `model_data\u002Fyolo.h5` 或对应 MobileNet 权重)\n*   `--anchors`: 指定锚框文件路径 (默认: `model_data\u002Fyolo_anchors.txt`)\n*   `--classes`: 指定类别文件路径 (默认: `model_data\u002Fcoco_classes.txt`)\n*   `--gpu_num`: 指定使用的 GPU 数量\n\n### 2. 训练自定义数据集\n\n若要训练自己的数据集（例如 VOC 格式），请按以下步骤操作：\n\n**第一步：生成标注文件**\n准备 `train.txt` 和 `val.txt`，每行格式如下：\n`图片路径 xmin,ymin,xmax,ymax,class_id xmin,ymin,xmax,ymax,class_id ...`\n\n示例 (`train.txt`)：\n```text\npath\u002Fto\u002Fimg1.jpg 50,100,150,200,0 30,50,200,120,3\npath\u002Fto\u002Fimg2.jpg 120,300,250,600,2\n```\n对于 VOC 数据集，可直接运行脚本生成：\n```bash\npython voc_annotation.py\n```\n\n**第二步：修改配置并开始训练**\n编辑 `train_Mobilenet.py` 确保数据读取路径正确（指向生成的 txt 文件）。\n> **重要提示**：训练 MobileNet 版本时，代码会自动通过 `keras_applications` 加载预训练权重。**请勿**在训练脚本中强制加载非 MobileNet 的预训练模型（如 darknet53 权重），以免架构不匹配。\n\n启动训练：\n```bash\npython train_Mobilenet.py\n```\n\n**第三步：使用训练好的模型进行预测**\n训练完成后，使用生成的权重文件进行测试：\n```bash\npython yolo_Mobilenet.py --model logs\u002F000\u002Ftrained_weights_final.h5 --image path\u002Fto\u002Ftest.jpg\n```\n*(注：具体权重文件名请以训练输出日志为准)*\n\n### 3. 多 GPU 训练\u002F推理\n\n在命令行中添加 `--gpu_num` 参数即可启用多卡模式：\n```bash\npython train_Mobilenet.py --gpu_num 2\n```","某初创团队正在开发一款运行在边缘计算盒子上的实时零售货架监控系统，需要在有限算力下精准识别商品缺货情况。\n\n### 没有 keras-YOLOv3-mobilenet 时\n- **部署门槛高**：原版 YOLOv3 基于 Darknet 框架，团队需额外搭建复杂环境并编写代码将模型转换为 Keras\u002FTensorFlow 格式，耗时且易出错。\n- **硬件适配难**：Darknet53 主干网络参数量大，在边缘设备的 GPU 上推理延迟高，难以达到实时监控所需的帧率要求。\n- **调优灵活性差**：若尝试替换为 VGG16 或 ResNet 等主干网络以平衡精度与速度，需从零修改底层架构，开发周期漫长。\n- **资源消耗过大**：原有方案显存占用高，导致无法在同一设备上并行运行其他业务逻辑，系统整体稳定性受限。\n\n### 使用 keras-YOLOv3-mobilenet 后\n- **开箱即用**：直接利用其原生 Keras 实现及预训练的 Mobilenet 权重，省去了模型转换步骤，半天内即可完成环境搭建与测试。\n- **端侧高性能**：切换到 Mobilenetv1 主干后，在 1080Ti 甚至更低配设备上实现了 29fps 的推理速度，完美满足视频流实时分析需求。\n- **架构可定制**：团队轻松通过配置切换至 ResNet101 或 VGG16 主干进行对比实验，快速找到了特定光照条件下精度与速度的最佳平衡点。\n- **轻量化集成**：模型体积显著减小，降低了显存压力，使得货架监控算法能与其他库存管理模块稳定共存于同一边缘节点。\n\nkeras-YOLOv3-mobilenet 通过提供多样化的轻量级主干网络支持，让开发者能在 Keras 生态中低成本地实现高精度、实时的端侧目标检测。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAdamdad_keras-YOLOv3-mobilenet_6f2c5772.png","Adamdad","Xingyi Yang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FAdamdad_d4e0cb24.jpg","Assistant Professor @ The Hong Kong Polytechnic University, \r\nPhd @ NUS xML Lab, \r\nVisiting Oxford, Machine learner","Hong Kong Polytechnic University @nus @torrvision @UCSD @seu","hong kong","yxy_adam@qq.com","yxy2168","adamdad.github.io","https:\u002F\u002Fgithub.com\u002FAdamdad",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,562,164,"2025-12-18T23:06:46","MIT","未说明","非必需（支持 CPU 训练），测试环境使用 NVIDIA 1080Ti；CUDA 版本未明确（依赖 TensorFlow 1.6.0）",{"notes":95,"python":96,"dependencies":97},"1. 训练时请勿加载预训练模型，代码会通过 keras_applications 自动加载。2. 推理速度比原生 Darknet 慢，建议将 PIL 替换为 opencv 以提升性能。3. 若需加速训练，可使用 train_bottleneck.py 先计算冻结层的瓶颈特征，这使得在 CPU 上进行合理时间的训练成为可能。4. 默认锚框基于 COCO 数据集聚类，若使用 VOC 等小目标数据集可能需要调整锚框大小。5. 评估 mAP 需借助外部仓库 Object-Detection-Metrics。","3.5.2",[98,99,100,101],"Keras==2.1.5","tensorflow==1.6.0","PIL (Pillow)","opencv-python (可选，用于加速)",[14,15],[104,105,106,107,108,109,110,111,112],"object-detection","yolov3","mobilenet","keras","tensorflow","vgg16","keras-yolov3-mobilenet","yolo","anchor",null,"2026-03-27T02:49:30.150509","2026-04-14T03:12:58.233271",[117,122,127,132,137,142,147,152,157,162],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},32304,"如何使用该项目？是否需要预训练权重？train.txt 和 val.txt 格式是什么？","1. 无需担心预训练权重，因为模型基于 'keras_applications' 构建，创建模型时会自动加载预训练权重。\n2. val.txt 的格式与 train.txt 相同。train.txt 的每一行应包含图片路径和标注信息，例如：data\u002Farmas10.jpg 409,95,697,352,0（图片路径 x1,y1,x2,y2,class_id）。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F1",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},32305,"运行训练时报错 'AssertionError: class id must be less than num_classes' 如何解决？","该错误表示类别 ID 超过了配置的类别数量（num_classes）。请检查以下几点：\n1. 确认使用了正确的 class_name 文件。\n2. 检查 train.txt 文件中每一行的最后一个数字（class_id），确保其小于你在配置文件中设置的 num_classes 值（例如只有 1 个类时，ID 必须为 0）。\n3. 修正数据集中错误的类别 ID 即可解决。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F3",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},32306,"运行视频检测脚本报错 'Couldn't open webcam or video' 怎么办？","这通常是因为 OpenCV 无法找到或打开指定的视频源。建议参考 keras-yolo3 项目的相关讨论进行排查：https:\u002F\u002Fgithub.com\u002Fqqwweee\u002Fkeras-yolo3\u002Fissues\u002F149。常见原因包括视频路径错误、摄像头被占用或 OpenCV 后端配置问题。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F2",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},32307,"加载权重时报错 'ValueError: You are trying to load a weight file containing X layers into a model with Y layers' 是什么原因？","这是因为你尝试直接加载 MobileNet 的原始预训练权重（如 mobilenet_1_0_224_tf.h5）到 YOLOv3 模型中。YOLOv3-MobileNet 在骨干网络后增加了特征融合层，结构与原 MobileNet 不同，因此层数不匹配。\n解决方案：不能直接使用原始权重进行测试，必须先在自己的数据集上对模型进行训练（迁移学习），或者加载已经针对 YOLO 结构训练好的权重文件。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F5",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},32308,"模型的输入尺寸（input_shape）应该是多少？320 还是 416？","代码中使用的典型输入尺寸是 416x416，但这只是为了估算特征大小。输入尺寸的唯一约束是必须是 32 的倍数（如 320, 416, 512 等）。\n注意：较小的输入尺寸（如 320）通常会降低深度学习算法的性能（mAP），如果测试发现 320 的效果比 416 差，这是正常现象。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F41",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},32309,"MobileNet-YOLOv3 与 Tiny-YOLOv3 相比 accuracy 和速度如何？","维护者认为在所有方面 MobileNet 版本都优于 Tiny-YOLO。\n具体场景分析：如果在简单数据集上两者都能达到很高的性能（mAP > 90%），MobileNet 可能是更好的选择，因为其能力足以学习数据模式，而 Darknet53 可能过深。但如果在复杂数据集上 YOLOv3-MobileNet 表现大幅更好，结果可能会令人困惑，建议根据实际数据集进行测试对比。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F4",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},32310,"如何在移动端（Android\u002FiOS）部署该模型？","虽然维护者未亲自验证，但提供了可行的移植方案：\n1. 使用工具将 Keras 的 .h5 模型转换为冻结的 TensorFlow Graph (.pb) 文件，推荐代码库：https:\u002F\u002Fgithub.com\u002Falanswx\u002Fkeras_to_tensorflow\n2. 在 Android 端使用生成的 .pb 文件进行检测，可参考实现：https:\u002F\u002Fgithub.com\u002Fszaza\u002Fandroid-yolo-v2","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F10",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},32311,"如何测试模型的 mAP（平均精度均值）？","推荐使用专门的评估工具来计算 mAP。维护者推荐的最佳工具是：https:\u002F\u002Fgithub.com\u002FAdamdad\u002FObject-Detection-Metrics.git","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F8",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},32312,"tiny_yolo_body 是否使用了 MobileNet 的深度可分离卷积（DepthwiseConv2D）？","没有。在该实现中，`yolo_body` 使用了完整的 MobileNet 架构（包含 DepthwiseConv2D 和 pointwise convolution 以減少计算量），但 `tiny_yolo_body` 仅使用了标准的 Conv2D，并未应用 MobileNet 的核心因子化卷积特性。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F29",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},32313,"项目在公共数据集（如 VOC, COCO）上的表现及 FPS 是多少？","关于 MobileNet-SSD 的 mAP 报告可参考相关复现结果。对于分辨率，常用的是 320。具体的 FPS 取决于硬件（如 1080Ti）和输入分辨率，有用户反馈在 TIAN X 设备上处理一张 1280x720 的图片大约需要 0.4 秒。建议在特定硬件上使用自己的数据集进行基准测试以获取准确数据。","https:\u002F\u002Fgithub.com\u002FAdamdad\u002Fkeras-YOLOv3-mobilenet\u002Fissues\u002F6",[]]