[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-bubbliiiing--yolo3-keras":3,"tool-bubbliiiing--yolo3-keras":62},[4,18,26,35,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},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,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"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",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"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",[52,15,13,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},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"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":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"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":98,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":99,"updated_at":100,"faqs":101,"releases":137},8821,"bubbliiiing\u002Fyolo3-keras","yolo3-keras","这是一个yolo3-keras的源码，可以用于训练自己的模型。","yolo3-keras 是基于 Keras 框架实现的 YOLOv3 目标检测开源项目，旨在帮助开发者轻松构建、训练并部署自己的物体识别模型。它解决了通用目标检测算法在自定义数据集上应用门槛高、代码复现难的问题，让用户无需从零编写底层代码即可快速上手。\n\n该项目特别适合具备一定 Python 基础的 AI 开发者、科研人员以及希望将视觉识别功能集成到应用中的工程师使用。无论是进行学术研究还是开发实际产品，yolo3-keras 都提供了完整的流程支持，涵盖数据预处理、模型训练、效果评估及预测推理。\n\n其技术亮点在于高度的可定制性与持续的功能迭代。项目不仅支持多 GPU 加速训练、自适应学习率调整及多种优化器选择，还新增了热力图可视化、视频流实时检测和 FPS 测速等实用功能。通过详细的中文注释和模块化设计，用户可以方便地修改网络结构或调整超参数。此外，项目维护者还提供了从 VOC 格式数据处理到最终模型预测的完整教程，并兼容 YOLOv4、v5、v7 等多个衍生版本，是学习和实践目标检测技术的优质资源。","## YOLOV3：You Only Look Once目标检测模型在Keras当中的实现\n---\n\n## 目录\n1. [仓库更新 Top News](#仓库更新)\n2. [相关仓库 Related code](#相关仓库)\n3. [性能情况 Performance](#性能情况)\n4. [所需环境 Environment](#所需环境)\n5. [文件下载 Download](#文件下载)\n6. [训练步骤 How2train](#训练步骤)\n7. [预测步骤 How2predict](#预测步骤)\n8. [评估步骤 How2eval](#评估步骤)\n9. [参考资料 Reference](#Reference)\n\n## Top News\n**`2022-04`**:**支持多GPU训练，新增各个种类目标数量计算，新增heatmap。**  \n\n**`2022-03`**:**进行了大幅度的更新，修改了loss组成，使得分类、目标、回归loss的比例合适、支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习率根据batch_size自适应调整、新增图片裁剪。**  \nBiliBili视频中的原仓库地址为：https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Ftree\u002Fbilibili\n\n**`2021-10`**:**进行了大幅度的更新，增加了大量注释、增加了大量可调整参数、对代码的组成模块进行修改、增加fps、视频预测、批量预测等功能。**   \n\n## 相关仓库\n| 模型 | 路径 |\n| :----- | :----- |\nYoloV3 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras  \nEfficientnet-Yolo3 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fefficientnet-yolo3-keras  \nYoloV4 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov4-keras\nYoloV4-tiny | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov4-tiny-keras\nMobilenet-Yolov4 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fmobilenet-yolov4-keras\nYoloV5-V5.0 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov5-keras\nYoloV5-V6.1 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov5-v6.1-keras\nYoloX | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolox-keras\nYoloV7 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov7-keras\nYolov7-tiny | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov7-tiny-keras\n\n## 性能情况\n| 训练数据集 | 权值文件名称 | 测试数据集 | 输入图片大小 | mAP 0.5:0.95 | mAP 0.5 |\n| :-----: | :-----: | :------: | :------: | :------: | :-----: |\n| COCO-Train2017 | [yolo_weights.h5](https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Freleases\u002Fdownload\u002Fv1.0\u002Fyolo_weights.h5) | COCO-Val2017 | 416x416 | 38.1 | 66.8\n\n## 所需环境\ntensorflow-gpu==1.13.1  \nkeras==2.1.5  \n\n## 文件下载\n训练所需的yolo_weights.h5可以在Release里面下载。  \nhttps:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Freleases  \n也可以去百度网盘下载  \n\n链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1N5TyQTWDeVsN5h9v-ucpbg    \n提取码: q42w   \n\nVOC数据集下载地址如下，里面已经包括了训练集、测试集、验证集（与测试集一样），无需再次划分：  \n链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F19Mw2u_df_nBzsC2lg20fQA    \n提取码: j5ge    \n\n## 训练步骤\n### a、训练VOC07+12数据集\n1. 数据集的准备   \n**本文使用VOC格式进行训练，训练前需要下载好VOC07+12的数据集，解压后放在根目录**  \n\n2. 数据集的处理   \n修改voc_annotation.py里面的annotation_mode=2，运行voc_annotation.py生成根目录下的2007_train.txt和2007_val.txt。   \n\n3. 开始网络训练   \ntrain.py的默认参数用于训练VOC数据集，直接运行train.py即可开始训练。   \n\n4. 训练结果预测   \n训练结果预测需要用到两个文件，分别是yolo.py和predict.py。我们首先需要去yolo.py里面修改model_path以及classes_path，这两个参数必须要修改。   \n**model_path指向训练好的权值文件，在logs文件夹里。   \nclasses_path指向检测类别所对应的txt。**   \n完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。   \n\n### b、训练自己的数据集\n1. 数据集的准备  \n**本文使用VOC格式进行训练，训练前需要自己制作好数据集，**    \n训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。   \n训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。   \n\n2. 数据集的处理  \n在完成数据集的摆放之后，我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。   \n修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path，classes_path用于指向检测类别所对应的txt。   \n训练自己的数据集时，可以自己建立一个cls_classes.txt，里面写自己所需要区分的类别。   \nmodel_data\u002Fcls_classes.txt文件内容为：      \n```python\ncat\ndog\n...\n```\n修改voc_annotation.py中的classes_path，使其对应cls_classes.txt，并运行voc_annotation.py。  \n\n3. 开始网络训练  \n**训练的参数较多，均在train.py中，大家可以在下载库后仔细看注释，其中最重要的部分依然是train.py里的classes_path。**  \n**classes_path用于指向检测类别所对应的txt，这个txt和voc_annotation.py里面的txt一样！训练自己的数据集必须要修改！**  \n修改完classes_path后就可以运行train.py开始训练了，在训练多个epoch后，权值会生成在logs文件夹中。  \n\n4. 训练结果预测  \n训练结果预测需要用到两个文件，分别是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。  \n**model_path指向训练好的权值文件，在logs文件夹里。  \nclasses_path指向检测类别所对应的txt。**  \n完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。  \n\n## 预测步骤\n### a、使用预训练权重\n1. 下载完库后解压，在百度网盘下载yolo_weights.pth，放入model_data，运行predict.py，输入  \n```python\nimg\u002Fstreet.jpg\n```\n2. 在predict.py里面进行设置可以进行fps测试和video视频检测。  \n### b、使用自己训练的权重\n1. 按照训练步骤训练。  \n2. 在yolo.py文件里面，在如下部分修改model_path和classes_path使其对应训练好的文件；**model_path对应logs文件夹下面的权值文件，classes_path是model_path对应分的类**。  \n```python\n_defaults = {\n    #--------------------------------------------------------------------------#\n    #   使用自己训练好的模型进行预测一定要修改model_path和classes_path！\n    #   model_path指向logs文件夹下的权值文件，classes_path指向model_data下的txt\n    #   如果出现shape不匹配，同时要注意训练时的model_path和classes_path参数的修改\n    #--------------------------------------------------------------------------#\n    \"model_path\"        : 'model_data\u002Fyolo_weights.h5',\n    \"classes_path\"      : 'model_data\u002Fcoco_classes.txt',\n    #---------------------------------------------------------------------#\n    #   anchors_path代表先验框对应的txt文件，一般不修改。\n    #   anchors_mask用于帮助代码找到对应的先验框，一般不修改。\n    #---------------------------------------------------------------------#\n    \"anchors_path\"      : 'model_data\u002Fyolo_anchors.txt',\n    \"anchors_mask\"      : [[6, 7, 8], [3, 4, 5], [0, 1, 2]],\n    #---------------------------------------------------------------------#\n    #   输入图片的大小，必须为32的倍数。\n    #---------------------------------------------------------------------#\n    \"input_shape\"       : [416, 416],\n    #---------------------------------------------------------------------#\n    #   只有得分大于置信度的预测框会被保留下来，置信度门限\n    #---------------------------------------------------------------------#\n    \"confidence\"        : 0.5,\n    #---------------------------------------------------------------------#\n    #   非极大抑制所用到的nms_iou大小\n    #---------------------------------------------------------------------#\n    \"nms_iou\"           : 0.3,\n    #---------------------------------------------------------------------#\n    #   最大目标数量\n    #---------------------------------------------------------------------#\n    \"max_boxes\"         : 100,\n    #---------------------------------------------------------------------#\n    #   该变量用于控制是否使用letterbox_image对输入图像进行不失真的resize，\n    #   在多次测试后，发现关闭letterbox_image直接resize的效果更好\n    #---------------------------------------------------------------------#\n    \"letterbox_image\"   : False,\n}\n```\n3. 运行predict.py，输入  \n```python\nimg\u002Fstreet.jpg\n```\n4. 在predict.py里面进行设置可以进行fps测试和video视频检测。  \n\n## 评估步骤 \n### a、评估VOC07+12的测试集\n1. 本文使用VOC格式进行评估。VOC07+12已经划分好了测试集，无需利用voc_annotation.py生成ImageSets文件夹下的txt。\n2. 在yolo.py里面修改model_path以及classes_path。**model_path指向训练好的权值文件，在logs文件夹里。classes_path指向检测类别所对应的txt。**  \n3. 运行get_map.py即可获得评估结果，评估结果会保存在map_out文件夹中。\n\n### b、评估自己的数据集\n1. 本文使用VOC格式进行评估。  \n2. 如果在训练前已经运行过voc_annotation.py文件，代码会自动将数据集划分成训练集、验证集和测试集。如果想要修改测试集的比例，可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(训练集+验证集)与测试集的比例，默认情况下 (训练集+验证集):测试集 = 9:1。train_percent用于指定(训练集+验证集)中训练集与验证集的比例，默认情况下 训练集:验证集 = 9:1。\n3. 利用voc_annotation.py划分测试集后，前往get_map.py文件修改classes_path，classes_path用于指向检测类别所对应的txt，这个txt和训练时的txt一样。评估自己的数据集必须要修改。\n4. 在yolo.py里面修改model_path以及classes_path。**model_path指向训练好的权值文件，在logs文件夹里。classes_path指向检测类别所对应的txt。**  \n5. 运行get_map.py即可获得评估结果，评估结果会保存在map_out文件夹中。\n\n## Reference\nhttps:\u002F\u002Fgithub.com\u002Fqqwweee\u002Fkeras-yolo3  \nhttps:\u002F\u002Fgithub.com\u002Feriklindernoren\u002FPyTorch-YOLOv3   \nhttps:\u002F\u002Fgithub.com\u002FBobLiu20\u002FYOLOv3_PyTorch\n","## YOLOv3：在Keras中实现的“你只看一次”目标检测模型\n---\n\n## 目录\n1. [仓库更新 Top News](#仓库更新)\n2. [相关仓库 Related code](#相关仓库)\n3. [性能情况 Performance](#性能情况)\n4. [所需环境 Environment](#所需环境)\n5. [文件下载 Download](#文件下载)\n6. [训练步骤 How2train](#训练步骤)\n7. [预测步骤 How2predict](#预测步骤)\n8. [评估步骤 How2eval](#评估步骤)\n9. [参考资料 Reference](#Reference)\n\n## Top News\n**`2022-04`**:**支持多GPU训练，新增各个种类目标数量计算，新增heatmap。**  \n\n**`2022-03`**:**进行了大幅度的更新，修改了loss组成，使得分类、目标、回归loss的比例合适、支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习率根据batch_size自适应调整、新增图片裁剪。**  \nBiliBili视频中的原仓库地址为：https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Ftree\u002Fbilibili\n\n**`2021-10`**:**进行了大幅度的更新，增加了大量注释、增加了大量可调整参数、对代码的组成模块进行修改、增加fps、视频预测、批量预测等功能。**   \n\n## 相关仓库\n| 模型 | 路径 |\n| :----- | :----- |\nYoloV3 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras  \nEfficientnet-Yolo3 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fefficientnet-yolo3-keras  \nYoloV4 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov4-keras\nYoloV4-tiny | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov4-tiny-keras\nMobilenet-Yolov4 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fmobilenet-yolov4-keras\nYoloV5-V5.0 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov5-keras\nYoloV5-V6.1 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov5-v6.1-keras\nYoloX | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolox-keras\nYoloV7 | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov7-keras\nYolov7-tiny | https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolov7-tiny-keras\n\n## 性能情况\n| 训练数据集 | 权值文件名称 | 测试数据集 | 输入图片大小 | mAP 0.5:0.95 | mAP 0.5 |\n| :-----: | :-----: | :------: | :------: | :------: | :-----: |\n| COCO-Train2017 | [yolo_weights.h5](https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Freleases\u002Fdownload\u002Fv1.0\u002Fyolo_weights.h5) | COCO-Val2017 | 416x416 | 38.1 | 66.8\n\n## 所需环境\ntensorflow-gpu==1.13.1  \nkeras==2.1.5  \n\n## 文件下载\n训练所需的yolo_weights.h5可以在Release里面下载。  \nhttps:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Freleases  \n也可以去百度网盘下载  \n\n链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1N5TyQTWDeVsN5h9v-ucpbg    \n提取码: q42w   \n\nVOC数据集下载地址如下，里面已经包括了训练集、测试集、验证集（与测试集一样），无需再次划分：  \n链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F19Mw2u_df_nBzsC2lg20fQA    \n提取码: j5ge    \n\n## 训练步骤\n### a、训练VOC07+12数据集\n1. 数据集的准备   \n**本文使用VOC格式进行训练，训练前需要下载好VOC07+12的数据集，解压后放在根目录**  \n\n2. 数据集的处理   \n修改voc_annotation.py里面的annotation_mode=2，运行voc_annotation.py生成根目录下的2007_train.txt和2007_val.txt。   \n\n3. 开始网络训练   \ntrain.py的默认参数用于训练VOC数据集，直接运行train.py即可开始训练。   \n\n4. 训练结果预测   \n训练结果预测需要用到两个文件，分别是yolo.py和predict.py。我们首先需要去yolo.py里面修改model_path以及classes_path，这两个参数必须要修改。   \n**model_path指向训练好的权值文件，在logs文件夹里。   \nclasses_path指向检测类别所对应的txt。**   \n完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。   \n\n### b、训练自己的数据集\n1. 数据集的准备  \n**本文使用VOC格式进行训练，训练前需要自己制作好数据集，**    \n训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。   \n训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。   \n\n2. 数据集的处理  \n在完成数据集的摆放之后，我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。   \n修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path，classes_path用于指向检测类别所对应的txt。   \n训练自己的数据集时，可以自己建立一个cls_classes.txt，里面写自己所需要区分的类别。   \nmodel_data\u002Fcls_classes.txt文件内容为：      \n```python\ncat\ndog\n...\n```\n修改voc_annotation.py中的classes_path，使其对应cls_classes.txt，并运行voc_annotation.py。  \n\n3. 开始网络训练  \n**训练的参数较多，均在train.py中，大家可以在下载库后仔细看注释，其中最重要的部分依然是train.py里的classes_path。**  \n**classes_path用于指向检测类别所对应的txt，这个txt和voc_annotation.py里面的txt一样！训练自己的数据集必须要修改！**  \n修改完classes_path后就可以运行train.py开始训练了，在训练多个epoch后，权值会生成在logs文件夹中。  \n\n4. 训练结果预测  \n训练结果预测需要用到两个文件，分别是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。  \n**model_path指向训练好的权值文件，在logs文件夹里。  \nclasses_path指向检测类别所对应的txt。**  \n完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。  \n\n## 预测步骤\n### a、使用预训练权重\n1. 下载完库后解压，在百度网盘下载yolo_weights.pth，放入model_data，运行predict.py，输入  \n```python\nimg\u002Fstreet.jpg\n```\n2. 在predict.py里面进行设置可以进行fps测试和video视频检测。  \n### b、使用自己训练的权重\n1. 按照训练步骤训练。  \n2. 在yolo.py文件里面，在如下部分修改model_path和classes_path使其对应训练好的文件；**model_path对应logs文件夹下面的权值文件，classes_path是model_path对应分的类**。  \n```python\n_defaults = {\n    #--------------------------------------------------------------------------#\n    #   使用自己训练好的模型进行预测一定要修改model_path和classes_path！\n    #   model_path指向logs文件夹下的权值文件，classes_path指向model_data下的txt\n    #   如果出现shape不匹配，同时要注意训练时的model_path和classes_path参数的修改\n    #--------------------------------------------------------------------------#\n    \"model_path\"        : 'model_data\u002Fyolo_weights.h5',\n    \"classes_path\"      : 'model_data\u002Fcoco_classes.txt',\n    #---------------------------------------------------------------------#\n    #   anchors_path代表先验框对应的txt文件，一般不修改。\n    #   anchors_mask用于帮助代码找到对应的先验框，一般不修改。\n    #---------------------------------------------------------------------#\n    \"anchors_path\"      : 'model_data\u002Fyolo_anchors.txt',\n    \"anchors_mask\"      : [[6, 7, 8], [3, 4, 5], [0, 1, 2]],\n    #---------------------------------------------------------------------#\n    #   输入图片的大小，必须为32的倍数。\n    #---------------------------------------------------------------------#\n    \"input_shape\"       : [416, 416],\n    #---------------------------------------------------------------------#\n    #   只有得分大于置信度的预测框会被保留下来，置信度门限\n    #---------------------------------------------------------------------#\n    \"confidence\"        : 0.5,\n    #---------------------------------------------------------------------#\n    #   非极大抑制所用到的nms_iou大小\n    #---------------------------------------------------------------------#\n    \"nms_iou\"           : 0.3,\n    #---------------------------------------------------------------------#\n    #   最大目标数量\n    #---------------------------------------------------------------------#\n    \"max_boxes\"         : 100,\n    #---------------------------------------------------------------------#\n    #   该变量用于控制是否使用letterbox_image对输入图像进行不失真的resize，\n    #   在多次测试后，发现关闭letterbox_image直接resize的效果更好\n    #---------------------------------------------------------------------#\n    \"letterbox_image\"   : False,\n}\n```\n3. 运行predict.py，输入  \n```python\nimg\u002Fstreet.jpg\n```\n4. 在predict.py里面进行设置可以进行fps测试和video视频检测。  \n\n## 评估步骤 \n### a、评估VOC07+12的测试集\n1. 本文使用VOC格式进行评估。VOC07+12已经划分好了测试集，无需利用voc_annotation.py生成ImageSets文件夹下的txt。\n2. 在yolo.py里面修改model_path以及classes_path。**model_path指向训练好的权值文件，在logs文件夹里。classes_path指向检测类别所对应的txt。**  \n3. 运行get_map.py即可获得评估结果，评估结果会保存在map_out文件夹中。\n\n### b、评估自己的数据集\n1. 本文使用VOC格式进行评估。  \n2. 如果在训练前已经运行过voc_annotation.py文件，代码会自动将数据集划分成训练集、验证集和测试集。如果想要修改测试集的比例，可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(训练集+验证集)与测试集的比例，默认情况下 (训练集+验证集):测试集 = 9:1。train_percent用于指定(训练集+验证集)中训练集与验证集的比例，默认情况下 训练集:验证集 = 9:1。\n3. 利用voc_annotation.py划分测试集后，前往get_map.py文件修改classes_path，classes_path用于指向检测类别所对应的txt，这个txt和训练时的txt一样。评估自己的数据集必须要修改。\n4. 在yolo.py里面修改model_path以及classes_path。**model_path指向训练好的权值文件，在logs文件夹里。classes_path指向检测类别所对应的txt。**  \n5. 运行get_map.py即可获得评估结果，评估结果会保存在map_out文件夹中。\n\n## Reference\nhttps:\u002F\u002Fgithub.com\u002Fqqwweee\u002Fkeras-yolo3  \nhttps:\u002F\u002Fgithub.com\u002Feriklindernoren\u002FPyTorch-YOLOv3   \nhttps:\u002F\u002Fgithub.com\u002FBobLiu20\u002FYOLOv3_PyTorch","# YOLOv3-Keras 快速上手指南\n\n## 1. 环境准备\n\n本工具基于 TensorFlow 1.x 和 Keras 构建，请确保满足以下系统要求和依赖版本：\n\n*   **操作系统**: Linux \u002F Windows \u002F macOS\n*   **Python**: 建议 3.6 - 3.8\n*   **核心依赖**:\n    *   `tensorflow-gpu==1.13.1` (推荐使用 GPU 版本以获得更佳性能)\n    *   `keras==2.1.5`\n*   **其他依赖**: 安装 TensorFlow 时通常会自动包含 `numpy`, `pillow`, `h5py` 等必要库。\n\n> **提示**: 由于依赖版本较老，建议在独立的虚拟环境（如 `conda` 或 `venv`）中安装，避免与现有项目冲突。\n\n## 2. 安装步骤\n\n### 第一步：克隆仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras.git\ncd yolo3-keras\n```\n\n### 第二步：安装依赖\n推荐使用国内镜像源加速安装：\n```bash\npip install tensorflow-gpu==1.13.1 keras==2.1.5 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n*(注：如果无需 GPU 支持，可将 `tensorflow-gpu` 替换为 `tensorflow`)*\n\n### 第三步：下载预训练权重\n模型运行需要预训练权重文件 `yolo_weights.h5`。你可以从 GitHub Release 或百度网盘下载，并放入项目根目录的 `model_data` 文件夹中。\n\n*   **GitHub 下载**: [Release 页面](https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Freleases)\n*   **百度网盘下载**:\n    *   链接: `https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1N5TyQTWDeVsN5h9v-ucpbg`\n    *   提取码: `q42w`\n\n下载完成后，确保文件路径为：`model_data\u002Fyolo_weights.h5`。\n\n## 3. 基本使用\n\n### 场景 A：直接使用预训练模型进行图片检测\n\n这是最简单的使用方式，无需训练即可检测 COCO 数据集中的 80 类常见物体。\n\n1.  确保 `model_data\u002Fyolo_weights.h5` 已就位。\n2.  运行预测脚本：\n    ```bash\n    python predict.py\n    ```\n3.  根据终端提示输入图片路径，例如：\n    ```text\n    img\u002Fstreet.jpg\n    ```\n4.  程序将输出检测结果图片（默认保存在 `img\u002F` 目录下）。\n\n> **进阶设置**: 如需测试 FPS 或进行视频检测，请直接编辑 `predict.py` 文件中的相关参数配置。\n\n### 场景 B：快速测试自定义数据集（VOC 格式）\n\n如果你有自己的标注数据（VOC 格式），可按以下步骤快速开始训练：\n\n1.  **准备数据**:\n    *   将图片放入 `VOCdevkit\u002FVOC2007\u002FJPEGImages\u002F`\n    *   将标注文件 (.xml) 放入 `VOCdevkit\u002FVOC2007\u002FAnnotations\u002F`\n2.  **配置类别**:\n    *   在 `model_data\u002F` 下创建 `cls_classes.txt`，写入你的类别名称（每行一个），例如：\n        ```text\n        cat\n        dog\n        ```\n    *   修改 `voc_annotation.py`，将 `classes_path` 指向刚才创建的 txt 文件，并将 `annotation_mode` 设为 `2`。\n3.  **生成训练列表**:\n    ```bash\n    python voc_annotation.py\n    ```\n    *(运行后会在根目录生成 `2007_train.txt` 和 `2007_val.txt`)*\n4.  **开始训练**:\n    *   打开 `train.py`，**务必修改** `classes_path` 指向你的 `model_data\u002Fcls_classes.txt`。\n    *   运行训练：\n        ```bash\n        python train.py\n        ```\n    *   训练好的权重将保存在 `logs\u002F` 文件夹中。\n5.  **使用自定义权重预测**:\n    *   修改 `yolo.py` 中的 `_defaults` 字典：\n        ```python\n        \"model_path\"        : 'logs\u002F你的训练权重.h5',  # 指向 logs 下的最新权重\n        \"classes_path\"      : 'model_data\u002Fcls_classes.txt', # 指向你的类别文件\n        ```\n    *   再次运行 `python predict.py` 即可检测自定义目标。","某智慧农业团队需要开发一套系统，自动识别温室大棚中黄瓜叶片上的病斑类型（如霜霉病、白粉病），以指导精准施药。\n\n### 没有 yolo3-keras 时\n- **算法复现困难**：团队需从零编写 YOLOv3 复杂的网络结构代码，极易在损失函数计算或锚框匹配逻辑上出错，导致模型无法收敛。\n- **训练配置繁琐**：缺乏自适应学习率调整和多 GPU 支持，面对大量高清叶片图片时，训练速度极慢且显存容易溢出。\n- **自定义门槛高**：将自有的病斑标注数据转换为模型可用格式缺乏标准脚本，数据预处理耗时耗力，且难以验证数据有效性。\n- **部署预测复杂**：缺少封装好的预测接口，每测试一张新图片都需要重写推理代码，无法快速进行视频流或批量图片的实时检测验证。\n\n### 使用 yolo3-keras 后\n- **开箱即用架构**：直接调用已实现的 Keras 版 YOLOv3 源码，内置完善的分类、回归及目标损失函数，确保模型快速稳定收敛。\n- **高效训练加速**：利用其新增的多 GPU 训练支持和自适应学习率策略，大幅缩短了在大规模叶片数据集上的训练时间，提升迭代效率。\n- **便捷数据适配**：通过自带的 `voc_annotation.py` 脚本，一键将团队整理的病斑标注文件转换为训练列表，并灵活配置 `classes_path` 指定病害类别。\n- **灵活预测评估**：修改 `yolo.py` 中的权重路径后即可运行 `predict.py`，轻松实现单图、批量图片甚至视频流的病斑实时检测与 FPS 测试。\n\nyolo3-keras 通过提供全流程的代码实现与工具链，让农业团队无需深究底层算法细节，即可低成本、高效率地构建专属的作物病害检测模型。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbubbliiiing_yolo3-keras_861a11e2.png","bubbliiiing","Bubbliiiing","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbubbliiiing_ad57dd39.jpg","Bubbliiiing哔哩哔哩空间： \r\nhttps:\u002F\u002Fspace.bilibili.com\u002F472467171   ",null,"https:\u002F\u002Fblog.csdn.net\u002Fweixin_44791964","https:\u002F\u002Fgithub.com\u002Fbubbliiiing",[81],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,533,185,"2025-09-13T15:29:15","MIT",4,"未说明","需要 NVIDIA GPU (由 tensorflow-gpu 推断)，具体型号和显存大小未说明，CUDA 版本需与 tensorflow-gpu==1.13.1 兼容 (通常为 CUDA 10.0)",{"notes":93,"python":94,"dependencies":95},"该工具基于较旧的 TensorFlow 1.x 和 Keras 2.1.5 构建。训练和预测均支持 VOC 格式数据集。使用预训练权重或自定义训练时，务必在 yolo.py 中修改 model_path（权值文件路径）和 classes_path（类别文件路径）。输入图片大小必须为 32 的倍数（默认 416x416）。","未说明 (推测为 Python 3.5-3.7，以适配 TF 1.13)",[96,97],"tensorflow-gpu==1.13.1","keras==2.1.5",[15],"2026-03-27T02:49:30.150509","2026-04-18T09:20:16.690443",[102,107,112,117,122,127,132],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},39546,"计算 IOU 时，为什么 box_mins 和 anchor_mins 会出现负值？这对计算有帮助吗？","这些负值不影响最终结果。该操作的目的是将先验框（anchor）和真实框（ground truth）的中心点强制设置为同一点（即坐标原点 0,0），以便更准确地计算重叠区域。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F30",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},39547,"运行 get_dr_txt.py 脚本没有报错但也没有生成结果文件，可能是什么原因？","这通常是因为输入数据的格式不正确。虽然公开数据集可以正常运行，但如果是自定义数据集，请严格检查标注文件的格式是否符合脚本要求。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F25",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},39545,"迁移到 TensorFlow 2.0 后，自定义数据集编译模型时报错怎么办？","在 loss.py 文件的最后一行缺少了一个 expand_dims 操作。请检查 yolo_loss 函数的返回值，确保维度正确，通常需要添加 tf.expand_dims 来匹配预期形状。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F10",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},39548,"训练速度非常慢且 GPU 利用率低，甚至出现 Loss 变为 NaN 的情况，如何解决？","1. 训练慢可能是因为数据增强在单线程中成为瓶颈，建议在 model.fit_generator 中设置 workers 参数以启用多进程加载数据（注意：Windows 本地可能会因 pickle 报错，建议在 Linux 服务器上使用）。\\n2. Loss 变 NaN 通常与坏样本或学习率过大有关，可以尝试减小学习率或检查数据质量。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F11",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},39549,"如何在视频实时检测中，对检测框内的内容进行边缘检测或模糊处理？","由于检测框在视频中是实时移动的，直接处理较为困难。建议结合卡尔曼滤波（Kalman Filter）等算法来跟踪目标位置，从而稳定地对框内区域进行后续的视觉处理。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F29",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},39550,"运行 predict.py 进行预测时，报错 'TypeError: __array__() takes 1 positional argument but 2 were given' 是怎么回事？","该错误通常发生在将 PIL Image 对象转换为 numpy 数组时。代码中 `np.array(boxed_image, dtype='float32')` 的调用方式可能与当前安装的 Pillow 或 Numpy 版本不兼容。尝试先将图像显式转换为 numpy 数组再转换类型，或者检查相关库的版本兼容性。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F37",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},39551,"预测时遇到 'Failed to get convolution algorithm' 和 'cuDNN failed to initialize' 错误，如何解决？","这是典型的 cuDNN 初始化失败问题，通常由显存不足或 CUDA\u002FcuDNN 版本不匹配引起。解决方法包括：1. 关闭其他占用显存的程序；2. 限制 TensorFlow 的显存增长（设置 allow_growth=True）；3. 检查并重新安装与当前 TensorFlow 版本匹配的 CUDA 和 cuDNN。","https:\u002F\u002Fgithub.com\u002Fbubbliiiing\u002Fyolo3-keras\u002Fissues\u002F21",[138,143,148,153],{"id":139,"version":140,"summary_zh":141,"released_at":142},315478,"v3.2","## 重要更新\n- 增加了训练时评估功能，可在train.py中开关该功能或调整评估周期。\n- 更新了评估代码，支持设置计算召回率（Recall）和精确率（Precision）的阈值。\n- 在summary.py中新增了网络各类参数的计算功能。\n- 增加了保存模型权重的方法，包括保存损失最低时的权重、最近一次保存的权重等。\n- 新增了大量注释。","2022-07-16T08:15:40",{"id":144,"version":145,"summary_zh":146,"released_at":147},315479,"v3.1","## 重要更新\n- 修改了损失函数的组成，使分类损失、目标检测损失和回归损失的比例更加合理。\n- 支持阶梯式和余弦退火两种学习率衰减策略。\n- 支持选择Adam和SGD两种优化器。\n- 支持根据batch_size自动调整学习率。\n- 支持多种预测模式，包括单张图片预测、文件夹内图片批量预测、视频预测、图片裁剪、热力图生成以及各类别目标数量统计。\n- 更新了summary.py文件，用于可视化网络结构。\n- 增加了多GPU训练功能。","2022-02-23T03:31:26",{"id":149,"version":150,"summary_zh":151,"released_at":152},315480,"v2.0","## 重要更新\n- 更新train.py文件，增加了大量的注释，并新增多个可调参数。\n- 更新predict.py文件，增加了大量的注释，并新增fps显示、视频预测、批量预测等功能。\n- 更新yolo.py文件，增加了大量的注释，并新增先验框选择、置信度阈值、非极大值抑制等参数。\n- 将get_dr_txt.py、get_gt_txt.py和get_map.py文件合并，通过一个文件实现数据集的评估。\n- 更新voc_annotation.py文件，新增多个可调参数。\n- 更新kmeans_for_anchors.py文件，用于计算先验框的尺寸。\n- 更新summary.py文件，用于查看网络结构。","2022-02-21T00:19:36",{"id":154,"version":155,"summary_zh":156,"released_at":157},315481,"v1.0","YOLOv3的预训练权重。","2019-11-27T10:31:05"]