[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-msnh2012--Msnhnet":3,"tool-msnh2012--Msnhnet":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"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":126,"github_topics":127,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":137,"updated_at":138,"faqs":139,"releases":140},9787,"msnh2012\u002FMsnhnet","Msnhnet","🔥 (yolov3 yolov4 yolov5 unet ...)A mini pytorch inference framework which inspired from darknet.","Msnhnet 是一款受 Darknet 启发、专为机器人视觉打造的轻量级 PyTorch 推理框架。它致力于解决深度学习模型在实际部署中依赖庞大环境、跨平台兼容性差以及在嵌入式设备上运行困难等痛点，让算法能更高效地落地。\n\n这款工具非常适合需要在资源受限设备（如树莓派、Jetson NX、龙芯等）上部署视觉应用的开发者与研究人员。无论是进行目标检测（支持 YOLOv3\u002Fv4\u002Fv5）、图像分割（UNet、DeepLabV3），还是经典分类网络（ResNet、MobileNetV2），Msnhnet 都能提供流畅的运行体验。\n\n其核心技术亮点在于纯 C++ 实现，不强制依赖第三方 BLAS 库，并针对 ARM 架构深度优化了 Winograd 卷积加速与 NEON 指令集。同时，它原生支持 CUDA、cuDNN 及 GPU FP16 半精度推理，显著提升了计算速度。Msnhnet 还具备优秀的模型转换能力，可直接加载由 Keras 或部分 PyTorch 导出的模型，并配套提供了类似 Netron 的可视化查看器，极大简化了从训练到端侧部署的全流程工作。","# 🔥 Msnhnet(V2.0 Focusing on Robot Vision)🔥\r\nEnglish| [中文](ReadMe_CN.md) |[CSDN](https:\u002F\u002Fblog.csdn.net\u002FMSNH2012\u002Farticle\u002Fdetails\u002F107216704)\u003C\u002Fbr>\r\n###  A mini pytorch inference framework which inspired from darknet.\r\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green)\r\n![c++](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flauguage-c%2B%2B-green)\r\n![Msnhnet](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMsnh-Msnhnet-blue)\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_b145969099d4.jpg)\u003C\u002Fbr>\r\n**OS supported** (you can check other OS by yourself)\r\n\r\n| |windows|linux|mac|Loongnix|\r\n|:---:|:---:|:---:|:---:|:--:|\r\n|checked|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![OSX](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Loongnix](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|\r\n|gpu|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Linux](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Mac](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-unknown-lightgrey.svg)|![Loongnix](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-unknown-lightgrey.svg)|\r\n\r\n**CPU checked**\r\n| |Intel i7|raspberry 3B|raspberry 4B|Jeston NX|Loongson|\r\n|:---:|:---:|:---:|:---:|:---:|:--:|\r\n|checked|![i7](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![3B](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![4B](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![NX](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Loongson](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|\r\n\r\n**Features**\r\n\r\n- C++ Only. 3rdparty blas lib is optional, also you can use OpenBlas.\r\n- OS supported: Windows, Linux(Ubuntu checked) and Mac os(unchecked).\r\n- CPU supported: Intel X86, AMD(unchecked) and ARM(checked: armv7 armv8 arrch64).\r\n- x86 avx2 supported.(Working....)\r\n- arm neon supported.(Working....)\r\n- A cv lib like opencv is supported for msnhnet.(MsnhCV) \r\n- conv2d 3x3s1 3x3s2 winograd3x3s1 is supported(**Arm**)\r\n- Keras to Msnhnet is supported. (Keras 2 and tensorflow 1.x)\r\n- GPU cuda supported.(Checked GTX1080Ti, Jetson NX)\r\n- GPU cudnn supported.(Checked GTX1080Ti, Jetson NX)\r\n- GPU fp16 mode supported.(Checked GTX1080Ti, Jetson NX.)\r\n- **ps. Please check your card wheather fp16 full speed is supported.**\r\n- c_api supported.\r\n- keras 2 msnhnet supported.(Keras 2 and tensorflow 1.x, part of op)\r\n- pytorch 2 msnhnet supported.(Part of op, working on it)\r\n- [MsnhnetSharp](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnetSharp) supported.\r\n![pic](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_fd79d81a2914.png)\r\n- A viewer for msnhnet is supported.(netron like)\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_363136f6eeff.png)\r\n- Working on it...(**Weekend Only  (╮（╯＿╰）╭)**)\r\n\r\n**Tested networks**\r\n- lenet5\r\n- lenet5_bn\r\n- alexnet(**torchvision**)\r\n- vgg16(**torchvision**)\r\n- vgg16_bn(**torchvision**)\r\n- resnet18(**torchvision**)\r\n- resnet34(**torchvision**)\r\n- resnet50(**torchvision**)\r\n- resnet101(**torchvision**)\r\n- resnet152(**torchvision**)\r\n- darknet53[(Pytorch_Darknet53)](https:\u002F\u002Fgithub.com\u002Fdeveloper0hye\u002FPyTorch-Darknet53)\r\n- googLenet(**torchvision**)\r\n- mobilenetv2(**torchvision**)\r\n- yolov3[(u版yolov3)](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\r\n- yolov3_spp[(u版yolov3)](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\r\n- yolov3_tiny[(u版yolov3)](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\r\n- yolov4[(u版yolov3)](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\r\n- fcns[(pytorch-FCN-easiest-demo)](https:\u002F\u002Fgithub.com\u002Fbat67\u002Fpytorch-FCN-easiest-demo)\r\n- unet[(bbuf keras)](https:\u002F\u002Fgithub.com\u002FBBuf\u002FKeras-Semantic-Segmentation)\r\n- deeplabv3(**torchvision**)\r\n- yolov5s🔥[(U版yolov5, for params)](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FYolov5ForMsnhnet)\r\n- yolov5m🔥[(U版yolov5,for params)](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FYolov5ForMsnhnet)\u003C\u002Fbr>\r\n==============================================================\r\n- mobilenetv2_yolov3_lite (cudnn does not work with GTX10** Pascal Card, please use GPU model only)\r\n- mobilenetv2_yolov3_nano (cudnn does not work with GTX10** Pascal Card, please use GPU model only)\r\n- yoloface100k (cudnn does not work with GTX10** Pascal Card, please use GPU model only)\r\n- yoloface500k (cudnn does not work with GTX10** Pascal Card, please use GPU model only)\r\n- Thanks: https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNetv2-YOLOV3\r\n==============================================================\r\n- **pretrained models**. 链接：https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1mBaJvGx7tp2ZsLKzT5ifOg \r\n提取码：x53z \r\n- **pretrained models**. Link : [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1tgTvA80rUnMqKVhB3Rb8sIGvKS98ARG3?usp=sharing)\r\n- Examples [here](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Fexamples).\r\n\r\n**Yolo Test** \r\n- Win10 MSVC 2017 I7-10700F\r\n\r\n  |net|yolov3|yolov3_tiny|yolov4|\r\n  |:---:|:---:|:---:|:---:|\r\n  |time|380ms|50ms|432ms|\r\n\r\n\r\n- ARM(Yolov3Tiny cpu)\r\n  |cpu|raspberry 3B|raspberry 4B|Jeston NX|\r\n  |:---:|:---:|:---:|:---:|\r\n  |with neon asm|?|0.432s|?|\r\n\r\n**Yolo GPU Test**\r\n- Ubuntu16.04  GCC  Cuda10.1  GTX1080Ti\r\n  |net|yolov3|yolov3_tiny|yolov4|\r\n  |:---:|:---:|:---:|:---:|\r\n  |time|30ms|8ms|30ms|\r\n  \r\n- Jetson NX\r\n  |net|yolov3|yolov3_tiny|yolov4|\r\n  |:---:|:---:|:---:|:---:|\r\n  |time|200ms|20ms|210ms|\r\n  \r\n**Yolo GPU cuDnn FP16 Test**\r\n- Jetson NX\r\n  |net|yolov3|yolov4|\r\n  |:---:|:---:|:---:|\r\n  |time|115ms|120ms|\r\n\r\n**Yolov5s GPU Test**\r\n- Ubuntu18.04  GCC  Cuda10.1  GTX2080Ti\r\n  |net|yolov5s| yolov5s_fp16|\r\n  |:---:|:---:|:---:|\r\n  |time|9.57ms| 8.57ms|\r\n\r\n**Mobilenet Yolo GPU cuDnn Test**\r\n- Jetson NX\r\n  |net|yoloface100k|yoloface500k|mobilenetv2_yolov3_nano|mobilenetv2_yolov3_lite|\r\n  |:---:|:---:|:---:|:---:|:---:|\r\n  |time|7ms|20ms|20ms|30ms|\r\n\r\n**DeepLabv3 GPU Test**\r\n- Ubuntu18.04  GCC  Cuda10.1  GTX2080Ti\r\n  |net|deeplabv3_resnet101|deeplabv3_resnet50|\r\n  |:---:|:---:|:---:|\r\n  |time|22.51ms|16.46ms|\r\n  \r\n**Requirements**\r\n  * OpenCV4 (**optional**) https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv\r\n  * Qt5 (**optional**. for Msnhnet viewer) http:\u002F\u002Fdownload.qt.io\u002Farchive\u002Fqt\u002F\r\n  * opengl(**optional**. for MsnhCV GUI) .\r\n  * glew(**optional**. for MsnhCV GUI) http:\u002F\u002Fglew.sourceforge.net\u002F .\r\n  * glfw3(**optional**. for MsnhCV GUI) https:\u002F\u002Fwww.glfw.org\u002F.\r\n  * cuda10+ cudnn 7.0+.(**optional**. for GPU)\r\n\r\n**Video tutorials(bilibili)**\r\n- [Build on Linux](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1ai4y1g7Nf)\r\n- [Build on Windows](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1DD4y127VB)\r\n- [Pytorch Params to msnhbin](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rh41197L8)\r\n\r\n**How to build**\r\n- With CMake 3.15+\r\n- Viewer can not build with GPU.\r\n- Options\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_32feda76e962.jpg)\u003C\u002Fbr>\r\n**ps. You can change omp threads by unchecking OMP_MAX_THREAD and modifying \"num\" val at CMakeLists.txt:52** \u003C\u002Fbr>\r\n\r\n- Windows\r\n1. Compile opencv4 **(optional)**\r\n2. Config environment. Add \"OpenCV_DIR\" **(optional)**\r\n3. Get qt5 and install. http:\u002F\u002Fdownload.qt.io\u002F **(optional)**\r\n4. Add qt5 bin path to environment **(optional)**.\r\n5. Get glew for MsnhCV Gui.http:\u002F\u002Fglew.sourceforge.net\u002F **(optional)**.\r\n6. Get glfw3 for MsnhCV Gui.https:\u002F\u002Fwww.glfw.org\u002F **(optional)**.\r\n7. Extract glew, add glew path to \"CMAKE_PREFIX_PATH\" **(optional)**.\r\n8. Compile gflw3 with cmake, add gflw3 cmake dir to \"GLFW_DIR\"  **(optional)**.\r\n9. Then use cmake-gui tool and visual studio to make or use vcpkg.\r\n\r\n- Linux(Ubuntu)\r\n\r\nps. If you want to build with Jetson, please uncheck NNPACK, OPENBLAS, NEON.\r\n\r\n```\r\n\r\nsudo apt-get install build-essential\r\nsudo apt-get install qt5-default      #optional\r\nsudo apt-get install libqt5svg5-dev   #optional\r\nsudo apt-get install libopencv-dev    #optional\r\nsudo apt-get install libgl1-mesa-dev libglfw3-dev libglfw3 libglew-dev #optional\r\n\r\n\r\n#config \r\nsudo echo \u002Fusr\u002Flocal\u002Flib > \u002Fetc\u002Fld.so.conf.d\u002Fusrlib.conf\r\nsudo ldconfig\r\n\r\n# build Msnhnet\r\ngit clone https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet.git\r\nmkdir build \r\n\r\ncd Msnhnet\u002Fbuild\r\ncmake -DCMAKE_BUILD_TYPE=Release ..  \r\nmake -j4\r\nsudo make install\r\n\r\nvim ~\u002F.bashrc # Last line add: export PATH=\u002Fusr\u002Flocal\u002Fbin:$PATH\r\nsudo ldconfig\r\n```\r\n\r\n- MacOS(MacOS Catalina) Without viewer\r\n\r\nPS: XCode should be pre-installed. \r\n\r\nPlease download cmake from official website with gui support and the source code of yaml and opencv.\r\n\r\n```\r\n# install cmake\r\n\r\nvim .bash_profile\r\nexport CMAKE_ROOT=\u002FApplications\u002FCMake.app\u002FContents\u002Fbin\u002F\r\nexport PATH=$CMAKE_ROOT:$PATH\r\nsource .bash_profile\r\n\r\n# install brew to install necessary libraries\r\n\r\n\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall.sh)\"\r\n\r\nbrew install wget\r\nbrew install openjpeg\r\nbrew install hdf5\r\nbrew install gflags\r\nbrew install glog\r\nbrew install eigen\r\nbrew install libomp\r\n\r\n# build yaml-cpp\r\ngit clone https:\u002F\u002Fgithub.com\u002Fjbeder\u002Fyaml-cpp.git\r\ncd yaml-cpp\r\nmkdir build\r\nsource .bash_profile\r\ncmake-gui\r\nSet the source code path: .\u002Fyaml-cpp\r\nSet the build binary path: .\u002Fyaml-cpp\u002Fbuild\r\nconfigure\r\nCMAKE_BUILD_TYPE = Release\r\nuncheck YAML_CPP_BUILD_TESTS\r\nconfigure (and continue to debug)\r\ngenerate\r\ncd .\u002Fyaml-cpp\u002Fbuild\r\nsudo make install -j8\r\n\r\n# build opencv\r\n# download opencv.zip from official website(Remember to download opencv-contrib together)\r\ncd opencv-4.4.0\r\nmkdir build\r\nsource .bash_profile\r\ncmake-gui\r\n\r\n\r\nSet the source code path: .\u002Fopencv-4.4.0\r\nSet the build binary path: .\u002Fopencv-4.4.0\u002Fbuild\r\nconfigure (use default)\r\nsearch for OPENCV_ENABLE_NONFREE and enable it\r\nseach for OPENCV_EXTRA_MODULES_PATH to the path of opencv-contrib\r\nconfigure (and continue to debug)\r\ngenerate\r\ncd .\u002Fopencv-4.4.0\u002Fbuild\u002F\r\nsudo make install -j8\r\n\r\n\r\n# build Msnhnet\r\ngit clone https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet.git\r\nmkdir build \r\n\r\ncd Msnhnet\u002Fbuild\r\ncmake -DCMAKE_BUILD_TYPE=Release ..  \r\nmake -j4\r\nsudo make install\r\n```\r\n\r\n**Test Msnhnet**\r\n- 1. Download pretrained model and extract. eg.D:\u002Fmodels. \r\n- 2. Open terminal and cd \"Msnhnet install bin\". eg. D:\u002FMsnhnet\u002Fbin\r\n- 3. Test yolov3 \"yolov3 D:\u002Fmodels\".\r\n- 4. Test yolov3tiny_video \"yolov3tiny_video D:\u002Fmodels\".\r\n- 5. Test classify \"classify D:\u002Fmodels\".\u003C\u002Fbr>\r\n\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_51899350f5b6.png)\u003C\u002Fbr>\r\n\r\n**View Msnhnet**\r\n- 1. Open terminal and cd \"Msnhnet install bin\" eg. D:\u002FMsnhnet\u002Fbin\r\n- 2. run \"MsnhnetViewer\"\r\n\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_cdb98195474c.png)\u003C\u002Fbr>\r\n\r\n**PS. You can double click \"ResBlock Res2Block AddBlock ConcatBlock\"  node to view more detail**\u003C\u002Fbr>\r\n**ResBlock**\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_a21a0428001f.png)\u003C\u002Fbr>\r\n\r\n**Res2Block**\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_4c79a031bce4.png)\u003C\u002Fbr>\r\n\r\n**AddBlock**\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_740861b189d9.png)\u003C\u002Fbr>\r\n\r\n**ConcatBlock**\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_a72e4ef14acd.png)\u003C\u002Fbr>\r\n\r\n**How to convert your own pytorch network**\r\n- [pytorch2msnhnet](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Ftools\u002Fpytorch2Msnhnet)\r\n- **ps:**\r\n- 1 . Please check out OPs which supported by pytorch2msnhnet before trans.\r\n- 2 . Maybe some model can not be translated.\r\n- 3 . If your model contains preprocessors and postprocessors which are quite complicated, please trans backbone first and then add some OPs manually.\r\n- 4 . As for yolov3 & yolov4, just follow this [video](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rh41197L8). You can find \"pytorch2msnhbin\" tool [here](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Ftools\u002Fpytorch2msnhbin).\r\n\r\n**About Train**\r\n- Just use pytorch to train your model, and export as msnhbin.\r\n- eg. yolov3\u002Fv4 [https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\r\n\r\nEnjoy it! :D\r\n\r\n**Acknowledgement**\r\n\r\nMsnhnet got ideas and developed based on these projects：\r\n\r\n- [DarkNet](https:\u002F\u002Fgithub.com\u002Fpjreddie\u002Fdarknet)\r\n- [NCNN](https:\u002F\u002Fgithub.com\u002FTencent\u002Fncnn)\r\n- [ACL](https:\u002F\u002Fgithub.com\u002FARM-software\u002FComputeLibrary)\r\n\r\n**3rdparty Libs**\r\n- [stb_image](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb)\r\n- [yaml-cpp](https:\u002F\u002Fgithub.com\u002Fjbeder\u002Fyaml-cpp)\r\n- [imGui](https:\u002F\u002Fgithub.com\u002Focornut\u002Fimgui)\r\n- [mpeg](https:\u002F\u002Fgithub.com\u002Fphoboslab\u002Fpl_mpeg)\r\n\r\n**加群交流**\u003C\u002Fbr>\r\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_599440d1f4b3.png)\u003C\u002Fbr>\r\n","# 🔥 Msnhnet（V2.0 专注于机器人视觉）🔥\r\n英语| [中文](ReadMe_CN.md) |[CSDN](https:\u002F\u002Fblog.csdn.net\u002FMSNH2012\u002Farticle\u002Fdetails\u002F107216704)\u003C\u002Fbr>\n\n### 一个受 Darknet 启发的迷你 PyTorch 推理框架。\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green)\n![c++](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flauguage-c%2B%2B-green)\n![Msnhnet](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMsnh-Msnhnet-blue)\u003C\u002Fbr>\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_b145969099d4.jpg)\u003C\u002Fbr>\n**支持的操作系统**（您也可以自行检查其他操作系统）\n\n| |windows|linux|mac|Loongnix|\n|:---:|:---:|:---:|:---:|:--:|\n|已测试|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![OSX](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Loongnix](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|\n|GPU|![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Linux](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Mac](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-unknown-lightgrey.svg)|![Loongnix](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-unknown-lightgrey.svg)|\n\n**CPU 已测试**\n| |Intel i7|raspberry 3B|raspberry 4B|Jeston NX|Loongson|\n|:---:|:---:|:---:|:---:|:---:|:--:|\n|已测试|![i7](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![3B](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![4B](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![NX](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|![Loongson](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg)|\n\n**特性**\n\n- 纯 C++ 实现。第三方 BLAS 库为可选，也可使用 OpenBlas。\n- 支持的操作系统：Windows、Linux（已测试 Ubuntu）和 Mac OS（未测试）。\n- 支持的 CPU：Intel x86、AMD（未测试）以及 ARM（已测试：armv7、armv8、aarch64）。\n- 支持 x86 AVX2。（正在进行中……）\n- 支持 ARM NEON。（正在进行中……）\n- MsnhNet 支持类似 OpenCV 的计算机视觉库。（MsnhCV）\n- 支持 3x3 s1 和 3x3 s2 的卷积操作，以及 Winograd 3x3 s1。（仅限 ARM）\n- 支持将 Keras 模型转换为 MsnhNet。（Keras 2 和 TensorFlow 1.x）\n- 支持 GPU CUDA。（已测试 GTX1080Ti 和 Jetson NX）\n- 支持 GPU cuDNN。（已测试 GTX1080Ti 和 Jetson NX）\n- 支持 GPU FP16 模式。（已测试 GTX1080Ti 和 Jetson NX。）\n- **注：请确认您的显卡是否支持 FP16 全速运行。**\n- 支持 C API。\n- 支持 Keras 2 转 MsnhNet。（Keras 2 和 TensorFlow 1.x，部分算子）\n- 支持 PyTorch 2 转 MsnhNet。（部分算子，正在开发中）\n- 支持 [MsnhnetSharp](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnetSharp)。\n![pic](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_fd79d81a2914.png)\n- 支持 MsnhNet 的可视化工具。（类似 Netron）\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_363136f6eeff.png)\n- 正在开发中……（仅周末进行 (╮（╯＿╰）╭)）\n\n**已测试的网络**\n- lenet5\n- lenet5_bn\n- alexnet（torchvision）\n- vgg16（torchvision）\n- vgg16_bn（torchvision）\n- resnet18（torchvision）\n- resnet34（torchvision）\n- resnet50（torchvision）\n- resnet101（torchvision）\n- resnet152（torchvision）\n- darknet53[（Pytorch_Darknet53）](https:\u002F\u002Fgithub.com\u002Fdeveloper0hye\u002FPyTorch-Darknet53)\n- googLenet（torchvision）\n- mobilenetv2（torchvision）\n- yolov3[（u版yolov3）](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\n- yolov3_spp[（u版yolov3）](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\n- yolov3_tiny[（u版yolov3）](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\n- yolov4[（u版yolov3）](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\n- fcns[（pytorch-FCN-easiest-demo）](https:\u002F\u002Fgithub.com\u002Fbat67\u002Fpytorch-FCN-easiest-demo)\n- unet[（bbuf keras）](https:\u002F\u002Fgithub.com\u002FBBuf\u002FKeras-Semantic-Segmentation)\n- deeplabv3（torchvision）\n- yolov5s🔥[（U版yolov5，用于参数提取）](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FYolov5ForMsnhnet)\n- yolov5m🔥[（U版yolov5，用于参数提取）](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FYolov5ForMsnhnet)\u003C\u002Fbr>\n==============================================================\n- mobilenetv2_yolov3_lite（cuDNN 在 GTX10** Pascal 显卡上无法工作，请仅使用 GPU 型号）\n- mobilenetv2_yolov3_nano（cuDNN 在 GTX10** Pascal 显卡上无法工作，请仅使用 GPU 型号）\n- yoloface100k（cuDNN 在 GTX10** Pascal 显卡上无法工作，请仅使用 GPU 型号）\n- yoloface500k（cuDNN 在 GTX10** Pascal 显卡上无法工作，请仅使用 GPU 型号）\n- 感谢：https:\u002F\u002Fgithub.com\u002Fdog-qiuqiu\u002FMobileNetv2-YOLOV3\n==============================================================\n- **预训练模型**。链接：https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1mBaJvGx7tp2ZsLKzT5ifOg 提取码：x53z\n- **预训练模型**。链接：[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1tgTvA80rUnMqKVhB3Rb8sIGvKS98ARG3?usp=sharing)\n- 示例 [在这里](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Fexamples)。\n\n**YOLO 测试**\n- Win10 MSVC 2017 I7-10700F\n\n  |网络|yolov3|yolov3_tiny|yolov4|\n  |:---:|:---:|:---:|:---:|\n  |时间|380ms|50ms|432ms|\n\n- ARM（Yolov3Tiny CPU）\n  |CPU|raspberry 3B|raspberry 4B|Jeston NX|\n  |:---:|:---:|:---:|:---:|\n  |使用 NEON 汇编|？|0.432s|？|\n\n**YOLO GPU 测试**\n- Ubuntu16.04 GCC Cuda10.1 GTX1080Ti\n  |网络|yolov3|yolov3_tiny|yolov4|\n  |:---:|:---:|:---:|:---:|\n  |时间|30ms|8ms|30ms|\n\n- Jetson NX\n  |网络|yolov3|yolov3_tiny|yolov4|\n  |:---:|:---:|:---:|:---:|\n  |时间|200ms|20ms|210ms|\n\n**YOLO GPU cuDNN FP16 测试**\n- Jetson NX\n  |网络|yolov3|yolov4|\n  |:---:|:---:|:---:|\n  |时间|115ms|120ms|\n\n**Yolov5s GPU 测试**\n- Ubuntu18.04 GCC Cuda10.1 GTX2080Ti\n  |网络|yolov5s|yolov5s_fp16|\n  |:---:|:---:|:---:|\n  |时间|9.57ms|8.57ms|\n\n**MobileNet Yolo GPU cuDNN 测试**\n- Jetson NX\n  |网络|yoloface100k|yoloface500k|mobilenetv2_yolov3_nano|mobilenetv2_yolov3_lite|\n  |:---:|:---:|:---:|:---:|:---:|\n  |时间|7ms|20ms|20ms|30ms|\n\n**DeepLabv3 GPU 测试**\n- Ubuntu18.04 GCC Cuda10.1 GTX2080Ti\n  |网络|deeplabv3_resnet101|deeplabv3_resnet50|\n  |:---:|:---:|:---:|\n  |时间|22.51ms|16.46ms|\n\n**要求**\n  * OpenCV4（可选）https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv\n  * Qt5（可选，用于 MsnhNet 查看器）http:\u002F\u002Fdownload.qt.io\u002Farchive\u002Fqt\u002F\n  * OpenGL（可选，用于 MsnhCV GUI）。\n  * GLEW（可选，用于 MsnhCV GUI）http:\u002F\u002Fglew.sourceforge.net\u002F。\n  * GLFW3（可选，用于 MsnhCV GUI）https:\u002F\u002Fwww.glfw.org\u002F。\n  * CUDA 10+ 和 cuDNN 7.0+。（可选，用于 GPU）\n\n**视频教程（哔哩哔哩）**\n- [Linux 构建指南](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1ai4y1g7Nf)\n- [Windows 构建指南](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1DD4y127VB)\n- [PyTorch 参数转 Msnhbin](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rh41197L8)\n\n**构建方法**\n- 使用 CMake 3.15+\n- 查看器无法在 GPU 上构建。\n- 选项\u003C\u002Fbr>\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_32feda76e962.jpg)\u003C\u002Fbr>\n**注：您可以通过取消勾选 OMP_MAX_THREAD，并修改 CMakeLists.txt 第 52 行的“num”值来调整 OpenMP 线程数。** \u003C\u002Fbr>\n\n- Windows\n1. 编译 OpenCV4（可选）\n2. 配置环境变量，添加“OpenCV_DIR”（可选）\n3. 获取并安装 Qt5。http:\u002F\u002Fdownload.qt.io\u002F（可选）\n4. 将 Qt5 的 bin 路径添加到环境变量中（可选）。\n5. 获取 GLEW 用于 MsnhCV GUI。http:\u002F\u002Fglew.sourceforge.net\u002F（可选）。\n6. 获取 GLFW3 用于 MsnhCV GUI。https:\u002F\u002Fwww.glfw.org\u002F（可选）。\n7. 解压 GLEW，将其路径添加到“CMAKE_PREFIX_PATH”中（可选）。\n8. 使用 CMake 编译 GLFW3，并将其 CMake 目录添加到“GLFW_DIR”中（可选）。\n9. 然后使用 CMake-GUI 工具和 Visual Studio 进行构建，或使用 vcpkg。\n\n- Linux（Ubuntu）\n\n**注：如果您想在 Jetson 上构建，请取消勾选 NNPACK、OPENBLAS 和 NEON。**\n\n```bash\nsudo apt-get install build-essential\nsudo apt-get install qt5-default      #可选\nsudo apt-get install libqt5svg5-dev   #可选\nsudo apt-get install libopencv-dev    #可选\nsudo apt-get install libgl1-mesa-dev libglfw3-dev libglfw3 libglew-dev #可选\n\n\n#配置\nsudo echo \u002Fusr\u002Flocal\u002Flib > \u002Fetc\u002Fld.so.conf.d\u002Fusrlib.conf\nsudo ldconfig\n\n# 构建 Msnhnet\ngit clone https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet.git\nmkdir build \n\ncd Msnhnet\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake -j4\nsudo make install\n\nvim ~\u002F.bashrc # 在最后一行添加：export PATH=\u002Fusr\u002Flocal\u002Fbin:$PATH\nsudo ldconfig\n```\n\n- macOS（macOS Catalina）无查看器版\n\n注：需预先安装 Xcode。\n\n请从官网下载支持 GUI 的 CMake，以及 YAML 和 OpenCV 的源代码。\n\n```\n# 安装 CMake\n\nvim .bash_profile\nexport CMAKE_ROOT=\u002FApplications\u002FCMake.app\u002FContents\u002Fbin\u002F\nexport PATH=$CMAKE_ROOT:$PATH\nsource .bash_profile\n\n# 使用 Homebrew 安装必要的库\n\n\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall.sh)\"\n\nbrew install wget\nbrew install openjpeg\nbrew install hdf5\nbrew install gflags\nbrew install glog\nbrew install eigen\nbrew install libomp\n\n# 构建 yaml-cpp\ngit clone https:\u002F\u002Fgithub.com\u002Fjbeder\u002Fyaml-cpp.git\ncd yaml-cpp\nmkdir build\nsource .bash_profile\ncmake-gui\n设置源代码路径：.\u002Fyaml-cpp\n设置构建二进制文件路径：.\u002Fyaml-cpp\u002Fbuild\n配置\nCMAKE_BUILD_TYPE = Release\n取消勾选 YAML_CPP_BUILD_TESTS\n配置（并继续调试）\n生成\ncd .\u002Fyaml-cpp\u002Fbuild\nsudo make install -j8\n\n# 构建 OpenCV\n# 从官网下载 opencv.zip（记得同时下载 opencv-contrib）\ncd opencv-4.4.0\nmkdir build\nsource .bash_profile\ncmake-gui\n\n\n设置源代码路径：.\u002Fopencv-4.4.0\n设置构建二进制文件路径：.\u002Fopencv-4.4.0\u002Fbuild\n配置（使用默认设置）\n搜索 OPENCV_ENABLE_NONFREE 并启用它\n搜索 OPENCV_EXTRA_MODULES_PATH，将其指向 opencv-contrib 的路径\n配置（并继续调试）\n生成\ncd .\u002Fopencv-4.4.0\u002Fbuild\u002F\nsudo make install -j8\n\n\n# 构建 Msnhnet\ngit clone https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet.git\nmkdir build \n\ncd Msnhnet\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake -j4\nsudo make install\n```\n\n**测试 Msnhnet**\n- 1. 下载预训练模型并解压，例如 D:\u002Fmodels。\n- 2. 打开终端，进入“Msnhnet 安装目录下的 bin”文件夹，例如 D:\u002FMsnhnet\u002Fbin。\n- 3. 测试 YOLOv3：“yolov3 D:\u002Fmodels”。\n- 4. 测试 YOLOv3 Tiny 视频检测：“yolov3tiny_video D:\u002Fmodels”。\n- 5. 测试分类任务：“classify D:\u002Fmodels”。\u003C\u002Fbr>\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_51899350f5b6.png)\u003C\u002Fbr>\n\n**查看 Msnhnet**\n- 1. 打开终端，进入“Msnhnet 安装目录下的 bin”文件夹，例如 D:\u002FMsnhnet\u002Fbin。\n- 2. 运行“MsnhnetViewer”。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_cdb98195474c.png)\u003C\u002Fbr>\n\n**注：您可以双击“ResBlock Res2Block AddBlock ConcatBlock”节点以查看更多细节**\u003C\u002Fbr>\n**ResBlock**\u003C\u002Fbr>\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_a21a0428001f.png)\u003C\u002Fbr>\n\n**Res2Block**\u003C\u002Fbr\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_4c79a031bce4.png)\u003C\u002Fbr>\n\n**AddBlock**\u003C\u002Fbr\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_740861b189d9.png)\u003C\u002Fbr>\n\n**ConcatBlock**\u003C\u002Fbr\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_a72e4ef14acd.png)\u003C\u002Fbr>\n\n**如何将您自己的 PyTorch 网络转换为 Msnhnet 格式**\n- [pytorch2msnhnet](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Ftools\u002Fpytorch2Msnhnet)\n- **注：**\n- 1. 转换前请确认 PyTorch 模型支持的算子是否在 pytorch2msnhnet 的支持范围内。\n- 2. 部分模型可能无法成功转换。\n- 3. 如果您的模型包含较为复杂的预处理和后处理操作，请先转换网络主干部分，再手动添加相关算子。\n- 4. 对于 YOLOv3 和 YOLOv4，可参考此[视频](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rh41197L8)。您可以在[这里](https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet\u002Ftree\u002Fmaster\u002Ftools\u002Fpytorch2msnhbin)找到“pytorch2msnhbin”工具。\n\n**关于训练**\n- 您可以使用 PyTorch 训练模型，并将其导出为 msnhbin 格式。\n- 例如 YOLOv3\u002Fv4 [https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov3)\n\n尽情享受吧！:D\n\n**致谢**\n\nMsnhnet 的灵感来源于以下项目，并在此基础上开发：\n\n- [DarkNet](https:\u002F\u002Fgithub.com\u002Fpjreddie\u002Fdarknet)\n- [NCNN](https:\u002F\u002Fgithub.com\u002FTencent\u002Fncnn)\n- [ACL](https:\u002F\u002Fgithub.com\u002FARM-software\u002FComputeLibrary)\n\n**第三方库**\n- [stb_image](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb)\n- [yaml-cpp](https:\u002F\u002Fgithub.com\u002Fjbeder\u002Fyaml-cpp)\n- [imGui](https:\u002F\u002Fgithub.com\u002Focornut\u002Fimgui)\n- [mpeg](https:\u002F\u002Fgithub.com\u002Fphoboslab\u002Fpl_mpeg)\n\n**加群交流**\u003C\u002Fbr\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_readme_599440d1f4b3.png)\u003C\u002Fbr","# Msnhnet 快速上手指南\n\nMsnhnet 是一个受 Darknet 启发的轻量级 C++ PyTorch 推理框架，专注于机器人视觉。它支持 Windows、Linux、Mac 及国产芯片（如龙芯），并兼容 CUDA\u002FcuDNN 加速。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**：Windows, Linux (推荐 Ubuntu), macOS, Loongnix。\n- **构建工具**：CMake 3.15+。\n- **编译器**：MSVC (Windows), GCC (Linux\u002FMac)。\n- **硬件支持**：\n  - CPU: Intel x86 (支持 AVX2), ARM (支持 Neon, 树莓派\u002FJetson\u002F龙芯)。\n  - GPU: NVIDIA CUDA 10+ & cuDNN 7.0+ (可选，用于加速)。\n\n### 前置依赖\n以下依赖均为**可选**，根据需求安装：\n- **OpenCV 4**: 图像处理。\n- **Qt5**: 用于 Msnhnet Viewer 可视化界面。\n- **OpenGL\u002FGLEW\u002FGLFW**: 用于 MsnhCV GUI。\n- **BLAS 库**: OpenBlas 等（框架内置可选）。\n\n#### Linux (Ubuntu) 一键安装依赖\n```bash\nsudo apt-get install build-essential\nsudo apt-get install qt5-default libqt5svg5-dev      # 可选：Viewer 支持\nsudo apt-get install libopencv-dev                   # 可选：OpenCV 支持\nsudo apt-get install libgl1-mesa-dev libglfw3-dev libglfw3 libglew-dev # 可选：GUI 支持\n```\n\n#### macOS 依赖安装\n需预先安装 XCode，并使用 Homebrew 安装基础库：\n```bash\n\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall.sh)\"\nbrew install wget openjpeg hdf5 gflags glog eigen libomp\n# 后续需手动编译 yaml-cpp 和 opencv (参考官方 README 详细步骤)\n```\n\n## 2. 安装步骤\n\n### Linux \u002F macOS 编译安装\n```bash\n# 1. 克隆代码\ngit clone https:\u002F\u002Fgithub.com\u002Fmsnh2012\u002FMsnhnet.git\ncd Msnhnet\n\n# 2. 创建构建目录\nmkdir build && cd build\n\n# 3. 配置 CMake (Release 模式)\n# 注意：若在 Jetson 平台编译，建议在 cmake-gui 中取消勾选 NNPACK, OPENBLAS, NEON\ncmake -DCMAKE_BUILD_TYPE=Release ..\n\n# 4. 编译与安装\nmake -j4\nsudo make install\n\n# 5. 配置环境变量 (将 Msnhnet 添加到 PATH)\necho 'export PATH=\u002Fusr\u002Flocal\u002Fbin:$PATH' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\nsudo ldconfig\n```\n\n### Windows 编译安装\n1. 安装 **CMake** 和 **Visual Studio**。\n2. (可选) 编译 OpenCV 并设置 `OpenCV_DIR` 环境变量。\n3. (可选) 安装 Qt5 并将 bin 路径加入环境变量。\n4. 使用 `cmake-gui` 加载源码目录，设置构建目录。\n   - 点击 `Configure`，选择对应 VS 版本。\n   - 可根据需要勾选\u002F取消勾选 `USE_CUDA`, `USE_OPENCV`, `USE_QT` 等选项。\n   - 点击 `Generate` 生成解决方案文件。\n5. 打开生成的 `.sln` 文件，在 Visual Studio 中选择 `Release` 模式编译 `ALL_BUILD`，然后编译 `INSTALL`。\n\n## 3. 基本使用\n\n### 准备模型\n下载预训练模型（包含 YOLOv3\u002Fv4\u002Fv5, ResNet, MobileNet 等）：\n- **百度网盘**: [链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1mBaJvGx7tp2ZsLKzT5ifOg) 提取码：`x53z`\n- **Google Drive**: [链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1tgTvA80rUnMqKVhB3Rb8sIGvKS98ARG3?usp=sharing)\n\n假设模型解压至 `D:\u002Fmodels` (Windows) 或 `\u002Fhome\u002Fuser\u002Fmodels` (Linux)。\n\n### 运行推理测试\n进入安装后的 bin 目录执行命令：\n\n**1. 图片目标检测 (YOLOv3)**\n```bash\n# Windows 示例\nyolov3 D:\u002Fmodels\n\n# Linux 示例\nyolov3 \u002Fhome\u002Fuser\u002Fmodels\n```\n\n**2. 视频目标检测 (YOLOv3-Tiny)**\n```bash\nyolov3tiny_video D:\u002Fmodels\n```\n\n**3. 图像分类测试**\n```bash\nclassify D:\u002Fmodels\n```\n\n### 使用可视化查看器 (Viewer)\nMsnhnet 提供类似 Netron 的模型结构查看器，支持查看残差块等细节。\n\n```bash\n# 进入 bin 目录后运行\nMsnhnetViewer\n```\n*提示：在查看器中双击 `ResBlock`, `AddBlock` 等节点可查看详细结构。*\n\n### 转换自有 PyTorch 模型\n若需将自己的 PyTorch 模型转换为 `.msnhbin` 格式：\n1. 确认算子支持情况（参考 `tools\u002Fpytorch2Msnhnet`）。\n2. 对于 YOLOv3\u002Fv4，可直接使用官方提供的转换工具：\n   ```bash\n   # 工具位于 tools\u002Fpytorch2msnhbin\n   # 具体用法参考 B 站教程：https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1rh41197L8\n   ```\n3. 复杂模型建议先转换 Backbone，再手动添加前后处理算子。","某嵌入式机器人团队需要在资源受限的 Jetson NX 开发板上部署 YOLOv5 目标检测模型，以实现实时避障与货物识别。\n\n### 没有 Msnhnet 时\n- **依赖沉重**：必须安装完整的 PyTorch 运行时环境，占用大量存储空间且启动缓慢，难以在边缘设备维持轻量化运行。\n- **推理延迟高**：Python 解释器的开销导致帧率不稳定，无法满足机器人高速运动下对毫秒级响应的严苛要求。\n- **跨平台部署难**：从训练服务器（Linux x86）到嵌入式端（ARM64）的迁移过程中，常因算子不支持或环境配置差异导致模型无法运行。\n- **硬件加速受限**：难以直接调用底层 CUDA\u002FcuDNN 进行 FP16 半精度推理，导致 GPU 算力利用率低，功耗过高。\n\n### 使用 Msnhnet 后\n- **极致轻量**：仅需纯 C++ 环境即可运行，去除了 Python 依赖，显著减小了二进制体积并实现了秒级启动。\n- **实时性能飞跃**：利用 Msnhnet 针对 ARM Neon 和 Winograd 算法的优化，结合 FP16 模式，在 Jetson NX 上将 YOLOv5 推理速度提升至流畅的实时帧率。\n- **无缝跨端迁移**：支持直接将 PyTorch 训练的模型转换为 Msnhnet 格式，屏蔽了底层架构差异，实现了“一次训练，多端运行”。\n- **能效比优化**：原生支持 GPU 加速与显存管理，在保持高精度的同时大幅降低了机器人电池的消耗，延长了作业时间。\n\nMsnhnet 通过纯 C++ 的高效推理引擎，成功将复杂的深度学习模型“瘦身”并加速，让高性能视觉算法在低成本嵌入式设备上真正落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmsnh2012_Msnhnet_b1459690.jpg","msnh2012","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmsnh2012_c27d166b.jpg","\r\n    ROS, robot arm, vision, deep learning, Qt \r\n","CASIA","Beijing,China","wwwtyyz@outlook.com",null,"https:\u002F\u002Fgithub.com\u002Fmsnh2012",[81,85,89,93,97,101],{"name":82,"color":83,"percentage":84},"C++","#f34b7d",84.7,{"name":86,"color":87,"percentage":88},"Python","#3572A5",9.2,{"name":90,"color":91,"percentage":92},"C","#555555",2.4,{"name":94,"color":95,"percentage":96},"Cuda","#3A4E3A",2.1,{"name":98,"color":99,"percentage":100},"CMake","#DA3434",1.4,{"name":102,"color":78,"percentage":103},"QMake",0.2,736,145,"2026-04-09T22:54:09","MIT",4,"Windows, Linux, macOS","可选。若需 GPU 加速，需要 NVIDIA 显卡（已测试 GTX1080Ti, GTX2080Ti, Jetson NX），需支持 CUDA 10+ 和 cuDNN 7.0+。部分旧架构显卡（如 GTX10 系列 Pascal 架构）在使用特定模型时可能不支持 cuDNN，建议仅使用 GPU 模式或检查 FP16 支持情况。","未说明",{"notes":113,"python":114,"dependencies":115},"1. 这是一个受 Darknet 启发的迷你 PyTorch 推理框架，核心仅依赖 C++，无需 Python 运行时即可进行推理。\n2. 构建时需要 CMake 3.15+。\n3. 若在 Jetson 平台构建，需在 CMake 中取消勾选 NNPACK、OPENBLAS 和 NEON 选项。\n4. macOS 构建不支持 Viewer 功能，且需手动编译 yaml-cpp 和 OpenCV。\n5. 支持将 Keras (TF 1.x) 和部分 PyTorch 模型转换为 Msnhnet 格式进行推理，训练仍需使用原生 PyTorch。","无要求 (核心为纯 C++ 框架)",[116,117,118,119,120,121,122,123,124,125],"CMake >= 3.15","OpenCV 4 (可选)","Qt5 (可选，用于 Viewer)","OpenGL (可选，用于 MsnhCV GUI)","GLEW (可选，用于 MsnhCV GUI)","GLFW3 (可选，用于 MsnhCV GUI)","CUDA 10+ (可选，用于 GPU)","cuDNN 7.0+ (可选，用于 GPU)","yaml-cpp","OpenBLAS (可选)",[14],[128,129,130,131,132,133,134,135,136],"yolov3","yolov4","yolov5","pytorch","inference-engine","darknet","jetson-nx","mobilenetv2","mobilenetyolo","2026-03-27T02:49:30.150509","2026-04-20T07:17:15.025675",[],[141,146,150],{"id":142,"version":143,"summary_zh":144,"released_at":145},351432,"Version1.0","Msnhnet v1.0 稳定版现已发布，尽情享用吧 :D。","2020-09-01T00:52:48",{"id":147,"version":148,"summary_zh":78,"released_at":149},351433,"Beta","2020-08-13T15:22:21",{"id":151,"version":152,"summary_zh":153,"released_at":154},351434,"v1.0-alpha","框架已经准备好了。还有很长的路要走。","2020-07-08T15:17:20"]