Skip to content

Eliza-and-black/nnie

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

作者用C++重新封装了一下NNIE的代码。把sample里面大部分的那坨垃圾代码全部弃用了,主要贡献如下:

1.高度模块化,主要分三步,1.load_model;2.run_model,3.postprocess。1,2所有的模型共用,通过2可以得到output的tensor,每个模型只需写自己的后处理来解析output的Tensor即可。

2.代码量是sample代码的几十分之一,结构清晰简单易懂

3.yolov3后处理完全自己重写,速度非常快

4.遗弃sample中所有的全局变量,防止多线程跑多个模型时出现的线程安全问题。作者亲测,在多线程跑多个模型正常,互不影响,重构的C++代码是线程安全的。

编译:

1.依赖环境: opencv4.0 需要用海思的检查编译工具编译opencv4.0的库,然后替换掉third_party/opencv4

2.将nnie放在和海思nnie相同的路径下

3.切换到改目录下,make生成可执行文件

4.将可执行文件和模型以及测试图片考到板子上运行。

5.由于楼主精力有限,因此主要是针对yolov3的优化。后期会更新更多的模型。

6.支持yolov3多标签预测,需要将util.h中single-label-prediction部分注释,并将@ymd_add的multiple-label-prediction部分取消注释。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 90.2%
  • C++ 8.6%
  • Makefile 1.2%