[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-cmdbug--YOLOv5_NCNN":3,"tool-cmdbug--YOLOv5_NCNN":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":77,"owner_url":78,"languages":79,"stars":104,"forks":105,"last_commit_at":106,"license":107,"difficulty_score":108,"env_os":109,"env_gpu":110,"env_ram":111,"env_deps":112,"category_tags":121,"github_topics":122,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":141,"updated_at":142,"faqs":143,"releases":184},7939,"cmdbug\u002FYOLOv5_NCNN","YOLOv5_NCNN","🍅 Deploy ncnn on mobile phones. Support Android and iOS. 移动端ncnn部署，支持Android与iOS。","YOLOv5_NCNN 是一个专为移动端打造的 AI 模型部署项目，旨在让 YOLOv5、YOLOv4-tiny、NanoDet 等多种主流目标检测、姿态估计及图像分割模型，能够高效运行在 Android 和 iOS 设备上。它解决了复杂深度学习模型难以在手机端流畅运行的痛点，通过集成腾讯开源的 ncnn 推理框架，实现了模型在移动芯片上的快速加载与实时推断。\n\n该项目非常适合移动端开发者、算法工程师及 AI 研究人员使用。对于希望将实验室模型转化为实际手机应用的团队，YOLOv5_NCNN 提供了宝贵的实战参考和现成的代码模板。其核心亮点在于广泛的模型兼容性，不仅支持常见的目标检测算法，还涵盖了中文 OCR、人脸关键点检测等实用场景，且同时适配双平台。此外，项目详细记录了从模型转换到工程集成的全流程，包括针对 iOS 的框架替换指南和 Android 的 Vulkan 加速配置建议，帮助用户规避环境配置中的常见陷阱，轻松实现高性能的端侧智能应用开发。","[中文说明](.\u002FREADME_CN.md)\n\n## :rocket: If it helps you, click a star! :star: ##\n\n### Ncnn deployment on mobile,support:YOLOv5s,YOLOv4-tiny,MobileNetV2-YOLOv3-nano,Simple-Pose,Yolact,ChineseOCR-lite,ENet,Landmark106,DBFace,MBNv2-FCN and MBNv3-Seg-small on camera.\n\n## iOS:\n- Xcode 12.4\n- macOS 11.2.3\n- iPhone 6sp 13.5.1\n\n## Android:\n- Android Studio 4.1\n- Win10 20H2\n- CPU:Qualcomm 710 GPU:Adreno 616\n\n> iOS\n```code\nSelect the model to be tested directly on the interface.\n```\n> Android\n```\nSelect the model to be tested directly on the interface.\n```\n### Models\n| model | android | iOS | from | other |\n|-------------------|:--------:|:--------:|:--------:|:--------:|\n| YOLOv5s           | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5)   | [TNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FTNN_Demo) |\n| YOLOv4-tiny       | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)   |\n| YOLOv3-nano       | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| YOLOv5s_custom_op | yes | yes |  [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F275989233)   |\n| NanoDet           | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002FRangiLyu\u002Fnanodet)   | [TNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FTNN_Demo) [MNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FMNN_Demo) |\n| YOLO-Fastest-xl   | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FYolo-Fastest)   |\n| Simple-Pose       | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| Yolact            | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fdbolya\u002Fyolact) [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F128974102)  |\n| ChineseOCR_lite   | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fouyanghuiyu\u002Fchineseocr_lite) [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F113338890)   |\n| ENet              | bug | cancel |  [Github](https:\u002F\u002Fgithub.com\u002Fdavidtvs\u002FPyTorch-ENet)   |\n| Landmark106       | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| DBFace            | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fyuanluw\u002FDBface_ncnn_demo)   |\n| MBNv2-FCN         | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation)   |\n| MBNv3-Seg-small   | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002FTramac\u002FLightweight-Segmentation)   |\n| Light_OpenPose    | yes | yes |  [Github](https:\u002F\u002Fgithub.com\u002FDaniil-Osokin\u002Flightweight-human-pose-estimation.pytorch)   |\n\n\n### iOS:\n- Copy .param and .bin from \"android_YOLOV5_NCNN\\app\\src\\main\\assets\" to \"iOS_YOLOv5NCNN\\YOLOv5NCNN\\res\"\n- If it prompts that net.h can't be found, you need to download it from the ncnn official website or compile .framework(20201208) yourself and replace it in the project. If opencv2.framework(4.3.0) is useful, you need to download it again and replace it in the project.\n- The default library used by iOS does not include vulkan and bitcode.\n- Normally, you need to re-download ncnn.framework\u002Fglslang.framework\u002Fopenmp.framework\u002Fopencv2.framework and replace it with the project.\n- For the configuration of Vulkan, please refer to the general configuration mentioned in Issues.\n\n### Android：\n* Due to factors such as mobile phone performance and image size, FPS varies greatly on different mobile phones. This project mainly tests the use of the NCNN framework. For the conversion of specific models, you can go to the NCNN official to view the conversion tutorial.\n* Because the opencv library is too large, only arm64-v8a\u002Farmeabi-v7a is reserved. If you need other versions, go to the official download.\n* ncnn temporarily uses the vulkan version, and acceleration needs to be turned on before loading, which is not turned on in this project. If you want to use the ncnn version, you need to modify the CMakeLists.txt configuration.\n* Different AS versions may have various problems with compilation. If the compilation error cannot be solved, it is recommended to use AS4.0 or higher to try.\n* ncnn has been updated to a new version, which includes ncnn The official import method of cmake.\n\nThis project is more about practicing the use and deployment of various models, without too much processing in terms of speed. If you have requirements for speed, you can directly obtain data such as YUV for direct input or use methods such as texture and opengl to achieve data input, reducing intermediate data transmission and conversion.\n\nConvert locally(Will not upload model): [xxxx -> ncnn](https:\u002F\u002Fconvertmodel.com\u002F)\n\nMinimal OpenCV:[opencv-mobile](https:\u002F\u002Fgithub.com\u002Fnihui\u002Fopencv-mobile)\n\n:art: Screenshot\u003Cbr\u002F>\n\n| Android | iOS |\n|:-----:|:-----:|\n|\u003Cimg width=\"324\" height=\"145\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_697e231d32f3.jpg\"\u002F>| \u003Cimg width=\"320\" height=\"166\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_63e518db5f2c.jpg\"\u002F> |\n\n> Android\n\n| mbnv2-yolov3-nano | yolov4-tiny | yolov5s |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_156755c4233c.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_a487e34d6997.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_7da54a3b2691.jpg\"\u002F>|\n\n| simple_pose | yolact | chineseocr_lite_01 |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_68eac74c2ae2.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_18b57b6794d6.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c395e5b257f0.jpg\"\u002F>|\n\n| chineseocr_lite_02 | ENet | yoloface500k-landmark106 |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_45592ef99cf8.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_fa370bdf76cf.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_d021ce6a3995.jpg\"\u002F>|\n\n|  dbface | mbnv2_fcn | mbnv3_seg_small |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c12f47265423.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2d7917f30a0a.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_820833daf7f6.jpg\"\u002F>|\n\n|  yolov5s_custom_op | nanodet | yolo-fastest-xl |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_69b2d0aa343d.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_cc1f7e05db1d.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_1216e2a682d8.jpg\"\u002F>|\n\n|  light_openpose  |\n|-------------------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c2b1ad263501.jpg\"\u002F>|\n\n\n> iOS\n\n|  mbnv2-yolov3-nano | yolov4-tiny | yolov5s |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_7ac3d4d8bfdd.jpg\"\u002F> |\u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_3655e543b905.jpg\"\u002F>| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2747c7b84e95.jpg\"\u002F> |\n\n|  yolov5s_custom_op | nanodet | yolo-fastest-xl |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_abd943399617.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_0374633e2f9f.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_3a9f23347ca0.jpg\"\u002F> |\n\n|  mbnv2_fcn | mbnv3_seg_small | simple_pose |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_b03d8ca306dc.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_d6f856c81db6.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2c0fe15944de.jpg\"\u002F> |\n\n| chineseocr_lite_01 | chineseocr_lite_02 | light_openpose |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c7c38bf54a91.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_e1edd7d24180.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_694c06ce9b14.jpg\"\u002F> |\n\n|  yolact | yoloface500k-landmark106 | dbface |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_88e183db67a1.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_f3b7d0e35170.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_756fb8db7d68.jpg\"\u002F> |\n\n\nThanks:\u003Cbr\u002F>\n- sunnyden, dog-qiuqiu, ..., nihui\n- https:\u002F\u002Fgithub.com\u002FTencent\u002Fncnn\n\n","[中文说明](.\u002FREADME_CN.md)\n\n## :rocket: 如果对你有帮助，请点个赞！ :star: ##\n\n### Ncnn在移动端的部署，支持：YOLOv5s、YOLOv4-tiny、MobileNetV2-YOLOv3-nano、Simple-Pose、Yolact、ChineseOCR-lite、ENet、Landmark106、DBFace、MBNv2-FCN以及MBNv3-Seg-small等模型的摄像头端运行。\n\n## iOS:\n- Xcode 12.4\n- macOS 11.2.3\n- iPhone 6sp 13.5.1\n\n## Android:\n- Android Studio 4.1\n- Win10 20H2\n- CPU:Qualcomm 710 GPU:Adreno 616\n\n> iOS\n```code\n直接在界面上选择要测试的模型。\n```\n> Android\n```\n直接在界面上选择要测试的模型。\n```\n### 模型列表\n| 模型 | 安卓 | iOS | 来源 | 其他 |\n|-------------------|:--------:|:--------:|:--------:|:--------:|\n| YOLOv5s           | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5)   | [TNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FTNN_Demo) |\n| YOLOv4-tiny       | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)   |\n| YOLOv3-nano       | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| YOLOv5s_custom_op | 是 | 是 |  [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F275989233)   |\n| NanoDet           | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002FRangiLyu\u002Fnanodet)   | [TNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FTNN_Demo) [MNN](https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FMNN_Demo) |\n| YOLO-Fastest-xl   | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FYolo-Fastest)   |\n| Simple-Pose       | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| Yolact            | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fdbolya\u002Fyolact) [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F128974102)  |\n| ChineseOCR_lite   | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fouyanghuiyu\u002Fchineseocr_lite) [zhihu](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F113338890)   |\n| ENet              | 问题 | 取消 |  [Github](https:\u002F\u002Fgithub.com\u002Fdavidtvs\u002FPyTorch-ENet)   |\n| Landmark106       | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNet-Yolo)   |\n| DBFace            | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fyuanluw\u002FDBface_ncnn_demo)   |\n| MBNv2-FCN         | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation)   |\n| MBNv3-Seg-small   | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002FTramac\u002FLightweight-Segmentation)   |\n| Light_OpenPose    | 是 | 是 |  [Github](https:\u002F\u002Fgithub.com\u002FDaniil-Osokin\u002Flightweight-human-pose-estimation.pytorch)   |\n\n\n### iOS:\n- 将“android_YOLOV5_NCNN\\app\\src\\main\\assets”中的.param和.bin文件复制到“iOS_YOLOv5NCNN\\YOLOv5NCNN\\res”目录下。\n- 如果提示无法找到net.h文件，则需要从ncnn官方网站下载，或自行编译20201208版本的.framework并替换项目中的文件。若opencv2.framework(4.3.0)有用，也需要重新下载并替换到项目中。\n- iOS默认使用的库不包含Vulkan和bitcode。\n- 通常情况下，需要重新下载ncnn.framework\u002Fglslang.framework\u002Fopenmp.framework\u002Fopencv2.framework，并替换到项目中。\n- 关于Vulkan的配置，请参考Issues中提到的一般配置。\n\n### 安卓：\n* 由于手机性能和图片大小等因素，不同手机上的帧率差异较大。本项目主要测试NCNN框架的使用。对于具体模型的转换，可以前往NCNN官方查看转换教程。\n* 由于OpenCV库体积过大，仅保留了arm64-v8a\u002Farmeabi-v7a版本。如果需要其他版本，请前往官方下载。\n* NCNN暂时使用Vulkan版本，加载前需要开启加速功能，但本项目中未开启。若想使用NCNN版本，需修改CMakeLists.txt配置。\n* 不同版本的Android Studio在编译时可能会出现各种问题。若无法解决编译错误，建议使用Android Studio 4.0或更高版本尝试。\n* NCNN已更新至新版本，其中包含了官方提供的CMake导入方式。\n\n本项目更侧重于实践各类模型的使用与部署，在速度方面并未做过多优化。若对速度有要求，可以直接获取YUV等数据进行直接输入，或采用纹理、OpenGL等方式实现数据输入，从而减少中间数据的传输与转换。\n\n本地转换（不会上传模型）：[xxxx -> ncnn](https:\u002F\u002Fconvertmodel.com\u002F)\n\n极简版OpenCV：[opencv-mobile](https:\u002F\u002Fgithub.com\u002Fnihui\u002Fopencv-mobile)\n\n:art: 截图\u003Cbr\u002F>\n\n| 安卓 | iOS |\n|:-----:|:-----:|\n|\u003Cimg width=\"324\" height=\"145\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_697e231d32f3.jpg\"\u002F>| \u003Cimg width=\"320\" height=\"166\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_63e518db5f2c.jpg\"\u002F> |\n\n> 安卓\n\n| mbnv2-yolov3-nano | yolov4-tiny | yolov5s |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_156755c4233c.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_a487e34d6997.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_7da54a3b2691.jpg\"\u002F>|\n\n| simple_pose | yolact | chineseocr_lite_01 |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_68eac74c2ae2.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_18b57b6794d6.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c395e5b257f0.jpg\"\u002F>|\n\n| chineseocr_lite_02 | ENet | yoloface500k-landmark106 |\n|-------------------|-------------|---------|\n|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_45592ef99cf8.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_fa370bdf76cf.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_d021ce6a3995.jpg\"\u002F>|\n\n|  dbface | mbnv2_fcn | mbnv3_seg_small |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c12f47265423.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2d7917f30a0a.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_820833daf7f6.jpg\"\u002F>|\n\n|  yolov5s_custom_op | nanodet | yolo-fastest-xl |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_69b2d0aa343d.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_cc1f7e05db1d.jpg\"\u002F>|\u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_1216e2a682d8.jpg\"\u002F>|\n\n|  light_openpose  |\n|-------------------|\n| \u003Cimg width=\"270\" height=\"500\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c2b1ad263501.jpg\"\u002F>|\n\n\n> iOS\n\n|  mbnv2-yolov3-nano | yolov4-tiny | yolov5s |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_7ac3d4d8bfdd.jpg\"\u002F> |\u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_3655e543b905.jpg\"\u002F>| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2747c7b84e95.jpg\"\u002F> |\n\n|  yolov5s_custom_op | nanodet | yolo-fastest-xl |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_abd943399617.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_0374633e2f9f.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_3a9f23347ca0.jpg\"\u002F> |\n\n|  mbnv2_fcn | mbnv3_seg_small | simple_pose |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_b03d8ca306dc.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_d6f856c81db6.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_2c0fe15944de.jpg\"\u002F> |\n\n| chineseocr_lite_01 | chineseocr_lite_02 | light_openpose |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_c7c38bf54a91.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_e1edd7d24180.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_694c06ce9b14.jpg\"\u002F> |\n\n|  yolact | yoloface500k-landmark106 | dbface |\n|-------------------|-------------|---------|\n| \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_88e183db67a1.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_f3b7d0e35170.jpg\"\u002F> | \u003Cimg width=\"270\" height=\"480\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_readme_756fb8db7d68.jpg\"\u002F> |\n\n\n感谢：\u003Cbr\u002F>\n- sunnyden, dog-qiuqiu, ..., nihui\n- https:\u002F\u002Fgithub.com\u002FTencent\u002Fncnn","# YOLOv5_NCNN 快速上手指南\n\nYOLOv5_NCNN 是一个基于 NCNN 框架的移动端 AI 部署项目，支持在 Android 和 iOS 设备上运行多种轻量级模型（如 YOLOv5s, YOLOv4-tiny, NanoDet, 中文 OCR 等）。\n\n## 1. 环境准备\n\n### 系统要求\n*   **iOS 开发**:\n    *   macOS 11.2.3 或更高版本\n    *   Xcode 12.4 或更高版本\n    *   测试设备：iPhone 6sp (iOS 13.5.1) 及以上\n*   **Android 开发**:\n    *   Windows 10 (20H2) 或 Linux\u002FmacOS\n    *   Android Studio 4.0 或更高版本（推荐 4.1+）\n    *   测试设备：ARM64-v8a 架构手机（如搭载 Qualcomm 710 CPU \u002F Adreno 616 GPU 的设备）\n\n### 前置依赖\n本项目主要依赖以下框架，若编译报错缺失框架，需从 NCNN 或 OpenCV 官方下载并替换到项目中：\n*   **NCNN Framework**: 推荐版本 20201208 或更新（含 Vulkan 支持需自行编译配置）。\n*   **OpenCV Mobile**: 仅保留 `arm64-v8a` 和 `armeabi-v7a` 库以减小体积。\n*   **其他框架** (iOS 可能需要): `glslang.framework`, `openmp.framework`.\n\n> **注意**: iOS 默认库不包含 Vulkan 和 Bitcode，如需启用 GPU 加速或特定架构，请重新下载对应版本的 `.framework` 文件替换项目中的旧文件。\n\n## 2. 安装与构建步骤\n\n### Android 端\n1.  **克隆项目**:\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN.git\n    ```\n2.  **导入项目**:\n    打开 Android Studio，选择 `File` -> `Open`，选中项目根目录。\n3.  **配置构建**:\n    *   确保 `CMakeLists.txt` 配置正确（新版 NCNN 已包含官方 CMake 导入方式）。\n    *   如需启用 Vulkan 加速，需修改 `CMakeLists.txt` 开启相关选项（默认未开启）。\n4.  **编译运行**:\n    连接安卓设备，点击 `Run` 按钮进行编译安装。\n    *   *注*: 不同 AS 版本可能存在兼容性问题，若编译失败，建议尝试 Android Studio 4.0 或 4.1。\n\n### iOS 端\n1.  **准备模型文件**:\n    将 Android 项目中的模型文件复制到 iOS 资源目录：\n    ```bash\n    # 假设已在本地克隆项目\n    cp android_YOLOV5_NCNN\u002Fapp\u002Fsrc\u002Fmain\u002Fassets\u002F*.param iOS_YOLOv5NCNN\u002FYOLOv5NCNN\u002Fres\u002F\n    cp android_YOLOV5_NCNN\u002Fapp\u002Fsrc\u002Fmain\u002Fassets\u002F*.bin iOS_YOLOv5NCNN\u002FYOLOv5NCNN\u002Fres\u002F\n    ```\n2.  **检查依赖框架**:\n    打开 `iOS_YOLOv5NCNN.xcodeproj`。若提示找不到 `net.h` 或缺少 `.framework`：\n    *   前往 [NCNN 官网](https:\u002F\u002Fgithub.com\u002FTencent\u002Fncnn) 或 [OpenCV Mobile](https:\u002F\u002Fgithub.com\u002Fnihui\u002Fopencv-mobile) 下载对应版本。\n    *   替换项目中的 `ncnn.framework`, `opencv2.framework` 等文件。\n3.  **编译运行**:\n    在 Xcode 中选择目标设备，点击 `Run` (⌘R) 进行编译安装。\n\n## 3. 基本使用\n\n本项目旨在演示模型的部署与调用，无需编写复杂代码即可通过界面交互测试。\n\n### 运行流程\n1.  **启动应用**: 在真机上安装并打开 App。\n2.  **选择模型**:\n    *   直接在应用主界面的下拉菜单或列表中，选择需要测试的模型（例如 `YOLOv5s`, `NanoDet`, `ChineseOCR_lite` 等）。\n    *   支持的模型列表参考项目 README 中的 Models 表格。\n3.  **开始检测**:\n    *   授权摄像头权限。\n    *   应用将自动调用摄像头画面进行实时推理，并在屏幕上渲染检测结果（边界框、关键点、分割掩码或文字识别结果）。\n\n### 模型转换（自定义模型）\n如果需要部署自己的模型，请使用在线工具或本地工具转换为 NCNN 格式：\n*   **在线转换**: [https:\u002F\u002Fconvertmodel.com\u002F](https:\u002F\u002Fconvertmodel.com\u002F)\n*   **操作流程**: 上传 PyTorch\u002FCaffe 等源模型 -> 转换为 `.param` 和 `.bin` -> 放入项目的 `assets` (Android) 或 `res` (iOS) 目录 -> 重新编译或在支持动态加载的界面中选择。\n\n### 性能优化提示\n*   当前项目主要用于功能验证，未对数据预处理做极致优化。\n*   若对 FPS 有极高要求，建议直接获取 YUV 数据输入，或利用 Texture\u002FOpenGL 减少中间数据拷贝。","某物流初创团队正开发一款快递员专用的手持扫码 App，需要在离线状态下实时识别包裹上的文字并检测破损区域。\n\n### 没有 YOLOv5_NCNN 时\n- **依赖云端导致延迟高**：必须将摄像头画面上传至服务器进行 OCR 和物体检测，弱网环境下识别延迟高达 2-3 秒，严重影响分拣效率。\n- **机型适配成本巨大**：团队需为不同品牌的安卓手机和 iOS 设备分别维护多套推理代码，且难以在 iPhone 6s 等老旧设备上流畅运行。\n- **功能集成极其繁琐**：想要同时实现“中文文字识别”与“包裹破损检测”，需分别接入多个重型框架，导致安装包体积膨胀超过 200MB。\n- **隐私与稳定性风险**：用户担心包裹面单隐私数据上传云端，且一旦服务器宕机，整个 App 将无法使用。\n\n### 使用 YOLOv5_NCNN 后\n- **毫秒级端侧实时响应**：利用 NCNN 框架直接在手机 CPU\u002FGPU 上运行 YOLOv5s 和 ChineseOCR_lite 模型，识别速度提升至 30FPS+，完全无需联网。\n- **跨平台统一部署**：同一套模型文件（.param\u002F.bin）可无缝部署于 Android 和 iOS 端，甚至在骁龙 710 或 iPhone 6s 等中低端机型上也能稳定跑通。\n- **轻量化多任务并行**：在一个应用内轻松集成目标检测、实例分割（Yolact）及关键点定位（Landmark106），安装包体积控制在 50MB 以内。\n- **数据隐私绝对安全**：所有图像处理均在本地完成，彻底消除了隐私泄露隐患，且无网络依赖保证了业务连续性。\n\nYOLOv5_NCNN 通过将高性能 AI 模型轻量化并原生植入移动端，让资源受限的手机瞬间具备了强大的离线智能感知能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcmdbug_YOLOv5_NCNN_156755c4.jpg","cmdbug","teng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcmdbug_b102653f.jpg","Good Good Study，Day Day Up。",null,"https:\u002F\u002Fgithub.com\u002Fcmdbug",[80,84,88,92,96,100],{"name":81,"color":82,"percentage":83},"C++","#f34b7d",87,{"name":85,"color":86,"percentage":87},"C","#555555",7.9,{"name":89,"color":90,"percentage":91},"Objective-C++","#6866fb",2.9,{"name":93,"color":94,"percentage":95},"CMake","#DA3434",0.9,{"name":97,"color":98,"percentage":99},"Java","#b07219",0.7,{"name":101,"color":102,"percentage":103},"Objective-C","#438eff",0.5,1573,308,"2026-04-13T03:52:06","GPL-3.0",4,"macOS, Windows","非必需。移动端支持 GPU 加速 (Adreno 616 等)，需开启 Vulkan；iOS 默认库不包含 Vulkan。桌面端未指定具体 NVIDIA GPU 或 CUDA 版本要求。","未说明",{"notes":113,"python":111,"dependencies":114},"该项目主要面向移动端 (iOS\u002FAndroid) 部署。iOS 需 macOS 11.2.3+ 和 Xcode 12.4+，若缺少 net.h 或 framework 需手动下载替换；Android 需 Android Studio 4.1+，仅保留 arm64-v8a\u002Farmeabi-v7a 架构的 OpenCV，使用 Vulkan 加速需在 CMakeLists.txt 中配置。不同手机性能会导致 FPS 差异较大。",[115,116,117,118,93,119,120],"ncnn","opencv-mobile (>=4.3.0)","Xcode (>=12.4)","Android Studio (>=4.0)","glslang","openmp",[15],[123,124,125,126,115,127,128,129,130,131,132,133,134,135,136,137,138,139,140],"yolo","yolov5","ios","android","detection","object-detection","yolov4","yolov3","mobilenet","simple-pose","yolact","chineseocr-lite","landmark106","dbface","mobilenetv3","nanodet","yolofastest","openpose","2026-03-27T02:49:30.150509","2026-04-16T08:14:10.990395",[144,149,154,159,164,169,174,179],{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},35547,"Android 编译时报错找不到 libopencv_java4.so 或相关规则缺失怎么办？","这是因为缺少 Android 版的 OpenCV 库。解决方法是：\n1. 前往 OpenCV 官网下载 Android 版本：https:\u002F\u002Fopencv.org\u002Freleases\u002F\n2. 同时需要下载 NCNN 的 Android 库：\n   - 下载 ncnn-android-lib.zip 并解压到项目的 ncnn 目录\n   - 下载 ncnn-android-vulkan-lib.zip 并解压到项目的 ncnnvulkan 目录\n确保路径配置正确后重新编译即可。","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F9",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},35548,"YOLOv5 的其他模型（如 m, l, x）转换成 NCNN 后无法运行，报错不支持 Slice\u002FExpand\u002FScatterND 等操作怎么办？","较新版本的 YOLOv5 包含一些 NCNN 尚未完全支持的算子（如 Slice, Expand, ScatterND）。解决方法包括：\n1. 尝试使用 onnx-simplifier 简化模型：python -m onnxsim input.onnx output_sim.onnx\n2. 如果仍然报错，可能需要修改网络结构，例如将 Slice 操作替换为卷积操作后再转换。\n3. 参考相关教程进行特定版本的转换：https:\u002F\u002Fblog.csdn.net\u002Fqq_33160678\u002Farticle\u002Fdetails\u002F108848264","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F2",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},35549,"替换自定义训练的 YOLOv5 模型后，运行报错 'layer Shape_xxx not exists or registered' 是什么原因？","这通常是因为使用的 YOLOv5 代码版本与 Demo 中集成的后处理逻辑不匹配，或者自定义类别数未正确修改。\n1. 确认训练使用的 YOLOv5 版本，Demo 可能基于特定旧版本。\n2. 如果修改了训练类别数，除了替换 .bin 和 .param 文件外，还需要在代码中修改对应的类别数量参数。\n3. 对于 YOLOv5s 等模型，可能需要手动将后处理逻辑集成到工程中并调整参数。\n4. 如果问题复杂，可以尝试作者推荐的 TNN 版本 Demo：https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FTNN_Demo\u002F","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F37",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},35550,"编译或运行时遇到 'layer YoloV5Focus not exists or registered' 错误如何解决？","这是因为使用的 NCNN 库版本过旧，不支持 YOLOv5 特有的 Focus 层。\n解决方案：\n1. 从 GitHub clone 最新的 NCNN 源码。\n2. 重新编译 NCNN 库（建议编译包含 Vulkan 支持的版本）。\n3. 将编译生成的新库文件替换到项目的 src\u002Fmain\u002Fcpp\u002Fncnn 目录下。\n4. 如果不想自己编译，可以直接使用 nihui 维护的官方示例工程：https:\u002F\u002Fgithub.com\u002Fnihui\u002Fncnn-android-yolov5","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F68",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},35551,"OCR 功能在 Android 上点击后闪退或识别结果为乱码怎么办？","OCR 闪退或乱码可能由以下原因引起：\n1. 个别图片可能导致崩溃，尝试更换其他图片测试。\n2. 如果是必现的闪退或乱码（无论中英文数字都显示奇怪符号），通常是内存或编码问题，建议在 Android Studio 中连接真机进行断点调试定位具体崩溃行。\n3. 确保使用的模型文件与代码版本匹配，且输入图像尺寸符合模型要求。","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F14",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},35552,"如何将 YOLOv4-tiny 或其他非 YOLOv5 模型转换并运行在此项目中？","项目已集成部分其他模型的示例：\n1. YOLOv4-tiny 的后处理逻辑已在 NCNN 内部集成，可直接尝试运行。\n2. 最新代码中包含了 yolov4-tiny 和 mobilenetv2_yolov3_nano 的示例。\n3. 对于 Ultralytics 版本的 YOLOv3\u002Fv4，训练保存为 .pt 文件后，需先转为 .weights 文件，再使用 NCNN 的 darknet2ncnn.cpp 工具进行转换。","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F6",{"id":175,"question_zh":176,"answer_zh":177,"source_url":178},35553,"替换为自己的 Yolact 模型后需要修改哪些参数？","替换 Yolact 模型时，最常见的问题是输入图像尺寸不匹配。\n1. 检查训练时使用的输入尺寸（例如 Yolact 默认可能是 550）。\n2. 在代码中将推理前的图像 Resize 尺寸设置为与训练时一致（如 550x550）。\n3. 确保 .param 和 .bin 文件已正确替换，并根据实际类别数修改代码中的类别定义。","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F78",{"id":180,"question_zh":181,"answer_zh":182,"source_url":183},35554,"替换自己的模型后没有检测到任何框（无输出）怎么办？","这种情况通常由以下原因导致：\n1. 阈值设置过高：检查代码中的置信度阈值（conf_thresh）和 NMS 阈值，适当调低试试。\n2. 类别索引不匹配：自定义模型的类别 ID 可能与代码中硬编码的标签不一致。\n3. 输入预处理错误：确保输入图像的归一化方式、通道顺序（RGB\u002FBGR）与模型训练时一致。\n4. 建议通过邮件或 Issue 提供模型文件给维护者协助排查，或自行打印中间层输出调试。","https:\u002F\u002Fgithub.com\u002Fcmdbug\u002FYOLOv5_NCNN\u002Fissues\u002F89",[]]