4 Star 14 Fork 3

Gitee 极速下载 / Msnhnet

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/msnh2012/Msnhnet
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

🔥Msnhnet(V2.0 偏向于于机器人视觉发展)🔥

English| 中文 |CSDN

一款轻量的用于推理pytorch模型的框架,该框架受darknet启发.

License c++ Msnhnet Ps: 目前本框架在持续开发中,由于是业余时间开发,更新速度不会很快。也欢迎有志之士一块维护本框架. 欢迎三连.

目前测试过的操作系统 (你可以自己测试下mac os)

windows linux mac Loongnix
checked Windows Windows OSX Loongson
gpu Windows Linux Mac Loongson

目前测试过的CPU (其它U出现BUG可以在issue提出)

Intel i7 raspberry 3B raspberry 4B Jeston NX 龙芯
checked i7 3B 4B NX 龙芯

特点

  • 由纯c++编写完成, 不依赖其它第三方计算库, 同时也支持OpenBlas库.
  • 支持目前主流的操作系统,Windows, linux(Ubuntu测试), mac os(未测试).
  • 支持目前主流的cpu芯片, Intel X86,AMD(未测试) 和ARM.
  • 支持x86结构avx2加速(持续优化中)。
  • 支持arm结构neon加速(持续优化中)。
  • 自带一套cv库,类似Opencv.
  • conv2d 3x3s1 3x3s2 winograd3x3s1支持(Arm)
  • GPU cuda支持. (测试过的显卡 GTX1080Ti, Jetson NX)
  • GPU cudnn支持. (测试过的显卡 GTX1080Ti, Jetson NX)
  • GPU fp16支持.(测试过的显卡 GTX1080Ti, Jetson NX)
  • ps. 请检查你的显卡是否支持fp16双倍加速.
  • 该框架自带一套类似netron的可视化工具, 可在编写Msnhnet文件时清晰掌握网络结构.
  • 支持keras转Msnhnet. (Keras 2 and tensorflow 1.x, 部分op)
  • 支持pytorch一键转msnhnet(目前只支持部分Op, 持续更新中)。
  • 支持c_api。
  • 支持C#语言,MsnhnetSharppic
  • 支持msnhnet可视化,类似netron。 pic
  • 持续开发中...(也就晚上有时间... (╮(╯_╰)╭))

已测试的网络

Yolo测试

  • Win10 MSVC 2017 I7-10700F (Linux平台大约比Win快10~20%,当然不是所有网络)

    net yolov3 yolov3_tiny yolov4
    time 380ms 50ms 432ms
  • ARM(Yolov3Tiny cpu)

    cpu raspberry 3B raspberry 4B Jeston NX
    with neon asm ? 0.432s ?

Yolo GPU 测试

  • Ubuntu16.04 GCC Cuda10.1 GTX1080Ti

    net yolov3 yolov3_tiny yolov4
    time 30ms 8ms 30ms
  • Jetson NX

    net yolov3 yolov3_tiny yolov4
    time 200ms 20ms 210ms

Yolo GPU cuDnn FP16 测试

  • Jetson NX
    net yolov3 yolov4
    time 115ms 120ms

Yolov5s GPU 测试

  • Ubuntu18.04 GCC Cuda10.1 GTX2080Ti
    net yolov5s yolov5s_fp16
    time 9.57ms 8.57ms

Mobilenet Yolo GPU cuDnn 测试

  • Jetson NX
    net yoloface100k yoloface500k mobilenetv2_yolov3_nano mobilenetv2_yolov3_lite
    time 7ms 20ms 20ms 30ms

DeepLabv3 GPU 测试

  • Ubuntu18.04 GCC Cuda10.1 GTX2080Ti
    net deeplabv3_resnet101 deeplabv3_resnet50
    time 22.51ms 16.46ms

依赖

视频教程(B站)

如何编译

  • CMake要求: CMake 3.15+
  • 注意Viewer不能在GPU模式下编译

ps. 你可以在CMakeLists.txt:52设置最大OMP占用线程, 默认是OMP使用所有CPU线程.(需取消勾选OMP_MAX_THREAD)

  • Windows平台编译(MSVC)

    • 1.使用CMake编译安装OpenCV4 (可选).
    • 2.在环境变量中添加"OpenCV_DIR", 并设置变量内容为每个库的CMake目录 (可选).
    • 3.下载安装Qt5 (可选).
    • 4.把Qt5的bin目录添加环境变量Path (可选).
    • 5.下载glew(win32). http://glew.sourceforge.net/ (可选).
    • 6.下载glfw3(源码).https://www.glfw.org/ (可选).
    • 7.解压glew,添加glew目录到系统环境变量"CMAKE_PREFIX_PATH" (可选).
    • 8.使用cmake编译glfw3, 添加glfw3的cmake文件夹路径到系统环境变量"GLFW_DIR" (可选).
    • 9.最后使用CMake GUI工具配置Msnhnet然后使用Visual Studio编译安装.
  • Linux(Ubuntu ) 注意: 构建NX的GPU版本取消勾选NEON OPENBLAS.

    sudo apt-get install build-essential
    sudo apt-get install qt5-default      #可选
    sudo apt-get install libqt5svg5-dev   #可选
    sudo apt-get install libopencv-dev    #可选
    sudo apt-get install libgl1-mesa-dev libglfw3-dev libglfw3 libglew-dev #可选
    
    
    #config 
    sudo echo /usr/local/lib > /etc/ld.so.conf.d/usrlib.conf
    sudo ldconfig
    
    # build Msnhnet
    git clone https://github.com/msnh2012/Msnhnet.git
    mkdir build 
    
    cd Msnhnet/build
    cmake -DCMAKE_BUILD_TYPE=Release ..  
    make -j4
    sudo make install
    
    vim ~/.bashrc # Last line add: export PATH=/usr/local/bin:$PATH
    sudo ldconfig

测试

  • 1.首先下载预训练模型并解压. eg.D:/models.
  • 2.打开终端或CMD, cd到安装目录. eg. D:/Msnhnet/bin
  • 3.测试 yolov3 yolov3 D:/models
  • 4.测试 yolov3tiny_video yolov3tiny_video D:/models
  • 5.测试 classify classify D:/models

使用MsnhnetViewer查看网络结构

  • 1.打开终端或CMD, cd到安装目录 eg. D:/Msnhnet/bin
  • 2.运行 "MsnhnetViewer"
  • Ps. "ResBlock Res2Block AddBlock ConcatBlock"为网络层的封装, 你可以双击该块查看详细内容.

各个封装的结构 ResBlock

Res2Block

AddBlock

ConcatBlock

如何转换模型

  • pytorch2msnhnet
  • ps.
  • 在转换之前,请务必检查下你的模型所用的算子被pytorch2Msnhnet支持。
  • 可能有些模型转换不成功。
  • 如果你的模型包含非常复杂的前处理和后处理,请先转backbone,再手动添加OP.
  • 对于u版yolov3和yolov4.参考这个视频。视频中的工具迁移至此.

关于训练

Enjoy it! :D

感谢

Msnhnet参考了以下框架:

第三方库

加群交流

MIT License Copyright (c) 2020 msnh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Msnhnet 是一个受 Darknet 启发的小型 PyTorch 推理框架 展开 收起
C/C++ 等 6 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C/C++
1
https://gitee.com/mirrors/Msnhnet.git
git@gitee.com:mirrors/Msnhnet.git
mirrors
Msnhnet
Msnhnet
master

搜索帮助