[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hunglc007--tensorflow-yolov4-tflite":3,"tool-hunglc007--tensorflow-yolov4-tflite":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":79,"owner_website":83,"owner_url":84,"languages":85,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":10,"env_os":102,"env_gpu":103,"env_ram":104,"env_deps":105,"category_tags":112,"github_topics":113,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":122,"updated_at":123,"faqs":124,"releases":153},3050,"hunglc007\u002Ftensorflow-yolov4-tflite","tensorflow-yolov4-tflite","YOLOv4, YOLOv4-tiny, YOLOv3, YOLOv3-tiny Implemented in Tensorflow 2.0, Android. Convert YOLO v4 .weights tensorflow, tensorrt and tflite","tensorflow-yolov4-tflite 是一个基于 TensorFlow 2.0 实现的开源项目，旨在让强大的 YOLOv4、YOLOv3 及其轻量版（tiny）模型能够轻松部署在多种平台上。它核心解决了目标检测模型从训练环境到实际落地之间的格式壁垒问题，支持将 Darknet 框架下的原始权重文件无缝转换为 TensorFlow SavedModel、TensorFlow Lite（适用于移动端和嵌入式设备）以及 TensorRT（适用于 NVIDIA GPU 加速）等多种格式。\n\n该项目特别适合 AI 开发者、算法工程师及研究人员使用，尤其是那些需要将高精度目标检测模型部署到 Android 手机、边缘计算设备或追求极致推理速度场景的技术人员。其独特亮点在于提供了完整的量化支持，用户可以将模型转换为 FP16 或 INT8 精度，从而在几乎不损失检测精度的前提下，显著提升推理速度并降低资源消耗。此外，项目还内置了针对 COCO 数据集的评估脚本和性能基准测试工具，方便用户直观对比不同模型版本在不同输入分辨率下的表现。通过简洁的命令行操作，用户即可完成从模型转换、量化优化到","tensorflow-yolov4-tflite 是一个基于 TensorFlow 2.0 实现的开源项目，旨在让强大的 YOLOv4、YOLOv3 及其轻量版（tiny）模型能够轻松部署在多种平台上。它核心解决了目标检测模型从训练环境到实际落地之间的格式壁垒问题，支持将 Darknet 框架下的原始权重文件无缝转换为 TensorFlow SavedModel、TensorFlow Lite（适用于移动端和嵌入式设备）以及 TensorRT（适用于 NVIDIA GPU 加速）等多种格式。\n\n该项目特别适合 AI 开发者、算法工程师及研究人员使用，尤其是那些需要将高精度目标检测模型部署到 Android 手机、边缘计算设备或追求极致推理速度场景的技术人员。其独特亮点在于提供了完整的量化支持，用户可以将模型转换为 FP16 或 INT8 精度，从而在几乎不损失检测精度的前提下，显著提升推理速度并降低资源消耗。此外，项目还内置了针对 COCO 数据集的评估脚本和性能基准测试工具，方便用户直观对比不同模型版本在不同输入分辨率下的表现。通过简洁的命令行操作，用户即可完成从模型转换、量化优化到最终推理演示的全流程，极大地降低了高性能目标检测模型的工程化门槛。","# tensorflow-yolov4-tflite\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](LICENSE)\n\nYOLOv4, YOLOv4-tiny Implemented in Tensorflow 2.0. \nConvert YOLO v4, YOLOv3, YOLO tiny .weights to .pb, .tflite and trt format for tensorflow, tensorflow lite, tensorRT.\n\nDownload yolov4.weights file: https:\u002F\u002Fdrive.google.com\u002Fopen?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT\n\n\n### Prerequisites\n* Tensorflow 2.3.0rc0\n\n### Performance\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_b5ab2c3e8630.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### Demo\n\n```bash\n# Convert darknet weights to tensorflow\n## yolov4\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 \n\n## yolov4-tiny\npython save_model.py --weights .\u002Fdata\u002Fyolov4-tiny.weights --output .\u002Fcheckpoints\u002Fyolov4-tiny-416 --input_size 416 --model yolov4 --tiny\n\n# Run demo tensorflow\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg\n\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-tiny-416 --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg --tiny\n\n```\nIf you want to run yolov3 or yolov3-tiny change ``--model yolov3`` in command\n\n#### Output\n\n##### Yolov4 original weight\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_b242c8b64191.png\" width=\"640\"\\>\u003C\u002Fp>\n\n##### Yolov4 tflite int8\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_2e1a638043b8.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### Convert to tflite\n\n```bash\n# Save tf model for tflite converting\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 --framework tflite\n\n# yolov4\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416.tflite\n\n# yolov4 quantize float16\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416-fp16.tflite --quantize_mode float16\n\n# yolov4 quantize int8\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416-int8.tflite --quantize_mode int8 --dataset .\u002Fcoco_dataset\u002Fcoco\u002Fval207.txt\n\n# Run demo tflite model\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416.tflite --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg --framework tflite\n```\nYolov4 and Yolov4-tiny int8 quantization have some issues. I will try to fix that. You can try Yolov3 and Yolov3-tiny int8 quantization \n### Convert to TensorRT\n```bash# yolov3\npython save_model.py --weights .\u002Fdata\u002Fyolov3.weights --output .\u002Fcheckpoints\u002Fyolov3.tf --input_size 416 --model yolov3\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov3.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov3-trt-fp16-416\n\n# yolov3-tiny\npython save_model.py --weights .\u002Fdata\u002Fyolov3-tiny.weights --output .\u002Fcheckpoints\u002Fyolov3-tiny.tf --input_size 416 --tiny\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov3-tiny.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov3-tiny-trt-fp16-416\n\n# yolov4\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4.tf --input_size 416 --model yolov4\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov4.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov4-trt-fp16-416\n```\n\n### Evaluate on COCO 2017 Dataset\n```bash\n# run script in \u002Fscript\u002Fget_coco_dataset_2017.sh to download COCO 2017 Dataset\n# preprocess coco dataset\ncd data\nmkdir dataset\ncd ..\ncd scripts\npython coco_convert.py --input .\u002Fcoco\u002Fannotations\u002Finstances_val2017.json --output val2017.pkl\npython coco_annotation.py --coco_path .\u002Fcoco \ncd ..\n\n# evaluate yolov4 model\npython evaluate.py --weights .\u002Fdata\u002Fyolov4.weights\ncd mAP\u002Fextra\npython remove_space.py\ncd ..\npython main.py --output results_yolov4_tf\n```\n#### mAP50 on COCO 2017 Dataset\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3      | 55.43   | 52.32   |         |\n| YoloV4      | 61.96   | 57.33   |         |\n\n### Benchmark\n```bash\npython benchmarks.py --size 416 --model yolov4 --weights .\u002Fdata\u002Fyolov4.weights\n```\n#### TensorRT performance\n \n| YoloV4 416 images\u002Fs |   FP32   |   FP16   |   INT8   |\n|---------------------|----------|----------|----------|\n| Batch size 1        | 55       | 116      |          |\n| Batch size 8        | 70       | 152      |          |\n\n#### Tesla P100\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 40.6    | 49.4    | 61.3    |\n| YoloV4 FPS  | 33.4    | 41.7    | 50.0    |\n\n#### Tesla K80\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 10.8    | 12.9    | 17.6    |\n| YoloV4 FPS  | 9.6     | 11.7    | 16.0    |\n\n#### Tesla T4\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 27.6    | 32.3    | 45.1    |\n| YoloV4 FPS  | 24.0    | 30.3    | 40.1    |\n\n#### Tesla P4\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 20.2    | 24.2    | 31.2    |\n| YoloV4 FPS  | 16.2    | 20.2    | 26.5    |\n\n#### Macbook Pro 15 (2.3GHz i7)\n\n| Detection   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  |         |         |         |\n| YoloV4 FPS  |         |         |         |\n\n### Traning your own model\n```bash\n# Prepare your dataset\n# If you want to train from scratch:\nIn config.py set FISRT_STAGE_EPOCHS=0 \n# Run script:\npython train.py\n\n# Transfer learning: \npython train.py --weights .\u002Fdata\u002Fyolov4.weights\n```\nThe training performance is not fully reproduced yet, so I recommended to use Alex's [Darknet](https:\u002F\u002Fgithub.com\u002FAlexeyAB\u002Fdarknet) to train your own data, then convert the .weights to tensorflow or tflite.\n\n\n\n### TODO\n* [x] Convert YOLOv4 to TensorRT\n* [x] YOLOv4 tflite on android\n* [ ] YOLOv4 tflite on ios\n* [x] Training code\n* [x] Update scale xy\n* [ ] ciou\n* [ ] Mosaic data augmentation\n* [x] Mish activation\n* [x] yolov4 tflite version\n* [x] yolov4 in8 tflite version for mobile\n\n### References\n\n  * YOLOv4: Optimal Speed and Accuracy of Object Detection [YOLOv4](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.10934).\n  * [darknet](https:\u002F\u002Fgithub.com\u002FAlexeyAB\u002Fdarknet)\n  \n   My project is inspired by these previous fantastic YOLOv3 implementations:\n  * [Yolov3 tensorflow](https:\u002F\u002Fgithub.com\u002FYunYang1994\u002Ftensorflow-yolov3)\n  * [Yolov3 tf2](https:\u002F\u002Fgithub.com\u002Fzzh8829\u002Fyolov3-tf2)\n","# tensorflow-yolov4-tflite\n[![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](LICENSE)\n\nYOLOv4、YOLOv4-tiny 基于 TensorFlow 2.0 实现。\n将 YOLO v4、YOLOv3、YOLO tiny 的 .weights 文件转换为适用于 TensorFlow、TensorFlow Lite 和 TensorRT 的 .pb、.tflite 和 trt 格式。\n\n下载 yolov4.weights 文件：https:\u002F\u002Fdrive.google.com\u002Fopen?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT\n\n\n### 先决条件\n* TensorFlow 2.3.0rc0\n\n### 性能\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_b5ab2c3e8630.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### 演示\n\n```bash\n# 将 Darknet 权重转换为 TensorFlow 模型\n## yolov4\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 \n\n## yolov4-tiny\npython save_model.py --weights .\u002Fdata\u002Fyolov4-tiny.weights --output .\u002Fcheckpoints\u002Fyolov4-tiny-416 --input_size 416 --model yolov4 --tiny\n\n# 运行 TensorFlow 演示\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg\n\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-tiny-416 --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg --tiny\n\n```\n如果要运行 yolov3 或 yolov3-tiny，只需在命令中将 ``--model yolov3`` 更改为 ``--model yolov3`` 即可。\n\n#### 输出\n\n##### Yolov4 原始权重\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_b242c8b64191.png\" width=\"640\"\\>\u003C\u002Fp>\n\n##### Yolov4 tflite int8\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_readme_2e1a638043b8.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### 转换为 tflite\n\n```bash\n# 保存用于 tflite 转换的 TF 模型\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 --framework tflite\n\n# yolov4\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416.tflite\n\n# yolov4 量化为 float16\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416-fp16.tflite --quantize_mode float16\n\n# yolov4 量化为 int8\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416-int8.tflite --quantize_mode int8 --dataset .\u002Fcoco_dataset\u002Fcoco\u002Fval207.txt\n\n# 运行 tflite 模型演示\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416.tflite --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg --framework tflite\n```\nYolov4 和 Yolov4-tiny 的 int8 量化目前仍存在一些问题，我正在努力修复。您可以尝试 Yolov3 和 Yolov3-tiny 的 int8 量化。\n### 转换为 TensorRT\n```bash\n# yolov3\npython save_model.py --weights .\u002Fdata\u002Fyolov3.weights --output .\u002Fcheckpoints\u002Fyolov3.tf --input_size 416 --model yolov3\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov3.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov3-trt-fp16-416\n\n# yolov3-tiny\npython save_model.py --weights .\u002Fdata\u002Fyolov3-tiny.weights --output .\u002Fcheckpoints\u002Fyolov3-tiny.tf --input_size 416 --tiny\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov3-tiny.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov3-tiny-trt-fp16-416\n\n# yolov4\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4.tf --input_size 416 --model yolov4\npython convert_trt.py --weights .\u002Fcheckpoints\u002Fyolov4.tf --quantize_mode float16 --output .\u002Fcheckpoints\u002Fyolov4-trt-fp16-416\n```\n\n### 在 COCO 2017 数据集上评估\n```bash\n# 运行 \u002Fscript\u002Fget_coco_dataset_2017.sh 脚本下载 COCO 2017 数据集\n# 预处理 COCO 数据集\ncd data\nmkdir dataset\ncd ..\ncd scripts\npython coco_convert.py --input .\u002Fcoco\u002Fannotations\u002Finstances_val2017.json --output val2017.pkl\npython coco_annotation.py --coco_path .\u002Fcoco \ncd ..\n\n# 评估 yolov4 模型\npython evaluate.py --weights .\u002Fdata\u002Fyolov4.weights\ncd mAP\u002Fextra\npython remove_space.py\ncd ..\npython main.py --output results_yolov4_tf\n```\n#### COCO 2017 数据集上的 mAP50\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3      | 55.43   | 52.32   |         |\n| YoloV4      | 61.96   | 57.33   |         |\n\n### 基准测试\n```bash\npython benchmarks.py --size 416 --model yolov4 --weights .\u002Fdata\u002Fyolov4.weights\n```\n#### TensorRT 性能\n\n| YoloV4 416 张\u002F秒 |   FP32   |   FP16   |   INT8   |\n|---------------------|----------|----------|----------|\n| 批量大小 1        | 55       | 116      |          |\n| 批量大小 8        | 70       | 152      |          |\n\n#### Tesla P100\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 40.6    | 49.4    | 61.3    |\n| YoloV4 FPS  | 33.4    | 41.7    | 50.0    |\n\n#### Tesla K80\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 10.8    | 12.9    | 17.6    |\n| YoloV4 FPS  | 9.6     | 11.7    | 16.0    |\n\n#### Tesla T4\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 27.6    | 32.3    | 45.1    |\n| YoloV4 FPS  | 24.0    | 30.3    | 40.1    |\n\n#### Tesla P4\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  | 20.2    | 24.2    | 31.2    |\n| YoloV4 FPS  | 16.2    | 20.2    | 26.5    |\n\n#### Macbook Pro 15 (2.3GHz i7)\n\n| 检测模型   | 512x512 | 416x416 | 320x320 |\n|-------------|---------|---------|---------|\n| YoloV3 FPS  |         |         |         |\n| YoloV4 FPS  |         |         |         |\n\n### 训练您自己的模型\n```bash\n# 准备您的数据集\n# 如果您想从头开始训练：\n在 config.py 中将 FISRT_STAGE_EPOCHS 设置为 0 \n# 运行脚本：\npython train.py\n\n# 迁移学习：\npython train.py --weights .\u002Fdata\u002Fyolov4.weights\n```\n目前训练性能尚未完全复现，因此建议使用 Alex 的 [Darknet](https:\u002F\u002Fgithub.com\u002FAlexeyAB\u002Fdarknet) 来训练您自己的数据，然后再将 .weights 文件转换为 TensorFlow 或 TensorFlow Lite 格式。\n\n\n\n### 待办事项\n* [x] 将 YOLOv4 转换为 TensorRT\n* [x] YOLOv4 tflite 在 Android 上运行\n* [ ] YOLOv4 tflite 在 iOS 上运行\n* [x] 训练代码\n* [x] 更新尺度 xy\n* [ ] ciou\n* [ ] Mosaic 数据增强\n* [x] Mish 激活函数\n* [x] YOLOv4 tflite 版本\n* [x] YOLOv4 in8 tflite 版本，适用于移动端\n\n### 参考文献\n\n  * YOLOv4：目标检测的最佳速度与精度 [YOLOv4](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.10934)。\n  * [darknet](https:\u002F\u002Fgithub.com\u002FAlexeyAB\u002Fdarknet)\n  \n   我的项目受到以下优秀 YOLOv3 实现的启发：\n  * [Yolov3 tensorflow](https:\u002F\u002Fgithub.com\u002FYunYang1994\u002Ftensorflow-yolov3)\n  * [Yolov3 tf2](https:\u002F\u002Fgithub.com\u002Fzzh8829\u002Fyolov3-tf2)","# tensorflow-yolov4-tflite 快速上手指南\n\n本指南帮助开发者快速在 TensorFlow 2.0 环境下部署 YOLOv4 及 YOLOv4-tiny 模型，支持转换为 `.pb`、`.tflite` (移动端) 和 TensorRT (边缘计算) 格式。\n\n## 环境准备\n\n*   **操作系统**: Linux \u002F macOS \u002F Windows\n*   **Python 版本**: 推荐 Python 3.6 - 3.8\n*   **核心依赖**:\n    *   TensorFlow 2.3.0rc0 (或兼容的 TF 2.x 版本)\n    *   OpenCV-python\n    *   NumPy\n*   **硬件要求**:\n    *   训练或转换大型模型建议使用 NVIDIA GPU (需安装 CUDA 和 cuDNN)。\n    *   仅推理可使用 CPU。\n\n**安装依赖命令：**\n```bash\npip install tensorflow==2.3.0rc0\npip install opencv-python numpy\n```\n\n> **提示**：国内用户建议使用清华源或阿里源加速安装：\n> `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple tensorflow==2.3.0rc0 opencv-python numpy`\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fhunglc007\u002Ftensorflow-yolov4-tflite.git\n    cd tensorflow-yolov4-tflite\n    ```\n\n2.  **下载预训练权重**\n    从 Google Drive 下载 YOLOv4 权重文件 (`yolov4.weights`) 并放入 `.\u002Fdata\u002F` 目录。\n    \n    *   **官方链接**: https:\u002F\u002Fdrive.google.com\u002Fopen?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT\n    *   **国内加速建议**: 若下载缓慢，可搜索\"YOLOv4 weights 百度网盘”获取国内镜像资源，下载后重命名为 `yolov4.weights` 并存入 `data` 文件夹。\n\n## 基本使用\n\n以下流程演示如何将 Darknet 权重转换为 TensorFlow 模型并进行图像检测。\n\n### 1. 转换权重 (.weights -> .pb)\n将下载的 Darknet 权重转换为 TensorFlow SavedModel 格式。\n\n**YOLOv4 标准版：**\n```bash\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 \n```\n\n**YOLOv4-Tiny 轻量版：**\n```bash\npython save_model.py --weights .\u002Fdata\u002Fyolov4-tiny.weights --output .\u002Fcheckpoints\u002Fyolov4-tiny-416 --input_size 416 --model yolov4 --tiny\n```\n\n### 2. 运行检测 Demo\n使用转换好的模型对图片进行目标检测。\n\n**检测示例：**\n```bash\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg\n```\n\n*   输出结果图片将保存在项目根目录下。\n*   若使用 Tiny 模型，请添加 `--tiny` 参数并指向对应的权重路径。\n\n### 3. (可选) 转换为 TFLite 格式\n适用于 Android\u002FiOS 等移动端部署。\n\n**转换为标准 TFLite：**\n```bash\npython save_model.py --weights .\u002Fdata\u002Fyolov4.weights --output .\u002Fcheckpoints\u002Fyolov4-416 --input_size 416 --model yolov4 --framework tflite\npython convert_tflite.py --weights .\u002Fcheckpoints\u002Fyolov4-416 --output .\u002Fcheckpoints\u002Fyolov4-416.tflite\n```\n\n**运行 TFLite 模型检测：**\n```bash\npython detect.py --weights .\u002Fcheckpoints\u002Fyolov4-416.tflite --size 416 --model yolov4 --image .\u002Fdata\u002Fkite.jpg --framework tflite\n```\n\n> **注意**：目前 YOLOv4 的 INT8 量化版本可能存在精度问题，建议优先尝试 FP16 量化或使用 YOLOv3 系列进行 INT8 量化测试。","某初创团队正在开发一款运行在老旧安卓手机上的实时垃圾分类助手，需要在离线状态下精准识别多种垃圾类型。\n\n### 没有 tensorflow-yolov4-tflite 时\n- **模型部署困难**：团队虽能训练出高精度的 YOLOv4 模型，但缺乏流畅的工具将其从 Darknet 权重转换为安卓端可用的 TensorFlow Lite 格式，导致算法无法落地。\n- **推理速度缓慢**：直接在移动端运行未优化的浮点模型，帧率低于 5 FPS，用户移动手机时画面严重卡顿，无法实现“实时”检测体验。\n- **资源占用过高**：原始模型体积过大且内存消耗高，导致低配安卓设备频繁闪退或发热严重，难以覆盖目标用户群体。\n- **量化流程复杂**：若想通过 INT8 量化压缩模型，需手动编写复杂的校准脚本和数据集预处理流程，开发周期被大幅拉长。\n\n### 使用 tensorflow-yolov4-tflite 后\n- **一键格式转换**：利用工具提供的 `convert_tflite.py` 脚本，团队仅需几条命令即可将 YOLOv4 权重直接转为 `.tflite` 格式，无缝集成到 Android 项目中。\n- **性能显著提升**：通过启用 FP16 或 INT8 量化模式，模型在安卓端的推理速度提升至 25+ FPS，实现了流畅的实时视频流检测。\n- **极致轻量部署**：量化后的模型体积缩小了 75%，内存占用大幅降低，使得千元级的老旧安卓手机也能稳定运行而不闪退。\n- **简化量化链路**：工具内置了对 COCO 数据集的预处理支持和量化参数配置，团队无需深究底层细节即可快速完成模型压缩与精度验证。\n\ntensorflow-yolov4-tflite 通过打通从训练权重到移动端高效推理的全链路，让高性能目标检测算法得以在资源受限的边缘设备上真正落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhunglc007_tensorflow-yolov4-tflite_b5ab2c3e.png","hunglc007","Việt Hùng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhunglc007_1bfb5490.jpg",null,"VNPTAI","Hanoi, VietNam","hunglc007@gmail.com","https:\u002F\u002Ficenter.ai\u002Fen\u002Fduongviethung","https:\u002F\u002Fgithub.com\u002Fhunglc007",[86,90,94],{"name":87,"color":88,"percentage":89},"Python","#3572A5",55.4,{"name":91,"color":92,"percentage":93},"Java","#b07219",44.1,{"name":95,"color":96,"percentage":97},"Shell","#89e051",0.6,2266,1224,"2026-04-02T08:40:06","MIT","Linux, macOS","TensorRT 转换和基准测试需要 NVIDIA GPU（文中提及 Tesla P100, K80, T4, P4），CUDA 版本未明确说明但需匹配 TensorFlow 2.3.0rc0","未说明",{"notes":106,"python":107,"dependencies":108},"该工具主要用于将 YOLOv4\u002FYOLOv3 Darknet 权重转换为 TensorFlow、TFLite 和 TensorRT 格式。官方明确指出训练性能尚未完全复现，建议使用 AlexeyAB 的 Darknet 进行训练后再转换权重。YOLOv4 的 int8 量化存在已知问题，建议尝试 YOLOv3 的 int8 量化。运行评估脚本需自行下载并预处理 COCO 2017 数据集。","未说明 (需兼容 TensorFlow 2.3.0rc0)",[109,110,111],"tensorflow==2.3.0rc0","tensorflow-lite","tensorrt",[13,14],[114,115,116,117,118,119,111,120,121],"yolov4","yolov3","tflite","object-detection","tensorflow","tf2","yolov3-tiny","android","2026-03-27T02:49:30.150509","2026-04-06T07:15:11.417573",[125,130,135,140,145,149],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},14041,"训练过程中损失值（loss）变为 NaN 是什么原因？","当损失值变为 NaN 时，通常是因为 GPU 显存已完全占满。该错误通常仅在使用 GPU 训练时出现，使用 CPU 训练则正常。建议检查显存使用情况，尝试减小 batch size 或优化数据加载流程以避免显存溢出。此外，如果是从头训练自定义数据，请确保配置文件中的 `TRAIN.FISRT_STAGE_EPOCHS` 设置正确，并确认权重文件路径设置无误。","https:\u002F\u002Fgithub.com\u002Fhunglc007\u002Ftensorflow-yolov4-tflite\u002Fissues\u002F14",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},14042,"如何将 Darknet 权重转换为 TensorFlow Lite 模型时避免 'is not immutable' 错误？","在将 SavedModel 转换为 TFLite 时若遇到 `batch_normalization\u002Fmoving_mean is not immutable` 错误，可以尝试运行 `tf-saved-model-optimize-global-tensors` 工具来证明张量是不可变的。另外，务必检查转换命令中的参数是否与模型架构匹配（如是否添加了 `--tiny` 标志）。如果问题依旧，建议使用 Netron (https:\u002F\u002Fnetron.app\u002F) 查看模型的输入输出尺寸，确认模型结构是否正确转换。","https:\u002F\u002Fgithub.com\u002Fhunglc007\u002Ftensorflow-yolov4-tflite\u002Fissues\u002F285",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},14043,"模型预测结果正常但边界框（bbox）位置偏移或错误怎么办？","边界框位置错误通常是由于坐标缩放（rescaling）代码处理不当引起的。请检查 `detect.py` 中绘制边界框前的坐标还原逻辑。如果是从 Darknet 转换的模型，确保在保存模型时使用了正确的 `filter_boxes` 函数，该函数会根据输入形状（input_shape）对边界框进行过滤和校正。更新代码至最新版本，确认 `save_model.py` 中包含类似 `boxes, pred_conf = filter_boxes(pred_bbox, pred_prob, score_threshold=..., input_shape=...)` 的逻辑。如果仍存在问题，可尝试使用 `tf.image.draw_bounding_boxes` 原生函数排查是否是绘图逻辑导致的视觉偏差。","https:\u002F\u002Fgithub.com\u002Fhunglc007\u002Ftensorflow-yolov4-tflite\u002Fissues\u002F129",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},14044,"在 Raspberry Pi 上运行 convert_tflite.py 时进程被中止（Aborted）如何解决？","在资源受限设备（如 Raspberry Pi）上转换模型时发生中止，通常是因为内存不足或 TensorFlow 未针对该硬件编译优化。日志显示 `Number of eligible GPUs ... 0` 且未编译 CUDA 支持是正常的，但需确保系统有足够的 swap 空间。建议尝试降低量化精度（如使用 `--quantize_mode float16` 或 `int8`），或者在拥有更大内存的机器上完成模型转换后再部署到树莓派。如果必须在本机转换，请关闭其他占用内存的应用程序。","https:\u002F\u002Fgithub.com\u002Fhunglc007\u002Ftensorflow-yolov4-tflite\u002Fissues\u002F166",{"id":146,"question_zh":147,"answer_zh":148,"source_url":134},14045,"如何验证 TensorFlow Lite 模型是否转换成功以及输入输出维度是否正确？","推荐使用 Netron 模型可视化工具（https:\u002F\u002Fnetron.app\u002F）来验证转换后的 `.tflite` 文件。上传模型文件后，检查模型的输入节点（Input）和输出节点（Output）的维度（Shape）和数据类型（Type）是否符合预期（例如输入是否为 [1, 416, 416, 3]）。这有助于排查因维度不匹配导致的推理错误或边界框计算异常。",{"id":150,"question_zh":151,"answer_zh":152,"source_url":139},14046,"自定义数据集训练时，如何正确配置 Anchor Boxes 和输入尺寸？","训练自定义数据集前，必须先使用 Darknet 二进制文件重新计算 Anchor Boxes，并将结果更新到 `config.py` 配置文件中。同时，确保 `detect.py` 中的 `--size` 参数与训练时的输入尺寸一致（例如 320 或 416）。如果模型在 Darknet 下工作正常但在 TensorFlow 下边界框错位，很可能是 Anchor 配置或坐标缩放比例（如除以 960 还是 416）不匹配导致的，需仔细核对代码中的缩放逻辑。",[]]