(yolov3 yolov4 yolov5 unet ...)A mini pytorch inference framework which inspired from darknet.
(yolov3 yolov4 yolov5 unet ...)A mini pytorch inference framework which inspired from darknet.
OS supported (you can check other OS by yourself)
| windows | linux | mac | Loongnix | |
|---|---|---|---|---|
| checked | ||||
| gpu |
CPU checked
| Intel i7 | raspberry 3B | raspberry 4B | Jeston NX | Loongson | |
|---|---|---|---|---|---|
| checked |
Features
C++ Only. 3rdparty blas lib is optional, also you can use OpenBlas.
OS supported: Windows, Linux(Ubuntu checked) and Mac os(unchecked).
CPU supported: Intel X86, AMD(unchecked) and ARM(checked: armv7 armv8 arrch64).
x86 avx2 supported.(Working....)
arm neon supported.(Working....)
A cv lib like opencv is supported for msnhnet.(MsnhCV)
conv2d 3x3s1 3x3s2 winograd3x3s1 is supported(Arm)
Keras to Msnhnet is supported. (Keras 2 and tensorflow 1.x)
GPU cuda supported.(Checked GTX1080Ti, Jetson NX)
GPU cudnn supported.(Checked GTX1080Ti, Jetson NX)
GPU fp16 mode supported.(Checked GTX1080Ti, Jetson NX.)
ps. Please check your card wheather fp16 full speed is supported.
c_api supported.
keras 2 msnhnet supported.(Keras 2 and tensorflow 1.x, part of op)
pytorch 2 msnhnet supported.(Part of op, working on it)
MsnhnetSharp supported.
A viewer for msnhnet is supported.(netron like)
Working on it...(Weekend Only (╮(╯_╰)╭))
Tested networks
Yolo Test
Win10 MSVC 2017 I7-10700F
| 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 Test
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 Test
| net | yolov3 | yolov4 |
|---|---|---|
| time | 115ms | 120ms |
Yolov5s GPU Test
| net | yolov5s | yolov5s_fp16 |
|---|---|---|
| time | 9.57ms | 8.57ms |
Mobilenet Yolo GPU cuDnn Test
| net | yoloface100k | yoloface500k | mobilenetv2_yolov3_nano | mobilenetv2_yolov3_lite |
|---|---|---|---|---|
| time | 7ms | 20ms | 20ms | 30ms |
DeepLabv3 GPU Test
| net | deeplabv3_resnet101 | deeplabv3_resnet50 |
|---|---|---|
| time | 22.51ms | 16.46ms |
Requirements
Video tutorials(bilibili)
How to build
ps. You can change omp threads by unchecking OMP_MAX_THREAD and modifying "num" val at CMakeLists.txt:52
ps. If you want to build with Jetson, please uncheck NNPACK, OPENBLAS, NEON.
sudo apt-get install build-essential
sudo apt-get install qt5-default #optional
sudo apt-get install libqt5svg5-dev #optional
sudo apt-get install libopencv-dev #optional
sudo apt-get install libgl1-mesa-dev libglfw3-dev libglfw3 libglew-dev #optional
#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 ldconfigPS: XCode should be pre-installed.
Please download cmake from official website with gui support and the source code of yaml and opencv.
…Test Msnhnet
View Msnhnet
PS. You can double click "ResBlock Res2Block AddBlock ConcatBlock" node to view more detail ResBlock
Res2Block
AddBlock
ConcatBlock
How to convert your own pytorch network
About Train
Enjoy it! :D
Acknowledgement
Msnhnet got ideas and developed based on these projects:
3rdparty Libs
加群交流
No open issues yet, or sync has not completed.