当前位置: 首页 > news >正文

做展厅的网站老哥们给个关键词

做展厅的网站,老哥们给个关键词,企业门户网站内容建设,莱芜网站优化费用任务内容 在做ncnn-yolov8-obb模型安卓端移植的过程中,对开源代码进行调试。为了确认开源代码yolov8-obb.cpp可以移植开发,先对代码进行复现。因此在linux系统下编译yolov8-obb.cpp代码,验证项目中的代码是可运行的。然后再把这个代码中的模…
任务内容

在做ncnn-yolov8-obb模型安卓端移植的过程中,对开源代码进行调试。为了确认开源代码yolov8-obb.cpp可以移植开发,先对代码进行复现。因此在linux系统下编译yolov8-obb.cpp代码,验证项目中的代码是可运行的。然后再把这个代码中的模型换为自己的缺陷检测模型。

项目代码:https://github.com/FeiGeChuanShu/ncnn-android-yolov8

操作流程

编译安装代码需要的ncnn库

linux安装ncnn库

安装依赖项:
sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libomp-dev libvulkan-dev vulkan-tools libopencv-dev
安装依赖的bazel库

需要在服务器上安装代理软件,能够访问bazel官网并下载公钥,然后再apt安装。

bazel安装参考:https://bazel.build/install/ubuntu?hl=zh-cn

安装protobuf

参考官网:https://github.com/protocolbuffers/protobuf/blob/main/src/README.md

源码编译ncnn
git clone https://github.com/Tencent/ncnn.git
cd ncnn
mkdir build && cd build
cmake ..
make -j4
sudo make install

完成编译安装结果。

编译代码,生成可执行文件
  • 编译流程:由于对gcc指令不熟,因此采用cmake的方式进行编译。
    1. 创建cmakelists.txt,将需要include和link的ncnn库,opencv库都添加进去。
    2. mkdir build & cd build & cmake .. & make
    3. 生成可执行文件。
  • 会遇到的报错问题:
问题一:libncnn.a(simpleomp.cpp.o): undefined reference to symbol 'pthread_getspecific@@GLIBC_2.2.5',
[100%] Linking CXX executable yolov8-obb
/usr/bin/ld: /home/xbang/cpz/env/ncnn/build/install/lib/libncnn.a(simpleomp.cpp.o): undefined reference to symbol 'pthread_getspecific@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/yolov8-obb.dir/build.make:102:yolov8-obb] 错误 1
make[1]: *** [CMakeFiles/Makefile2:76:CMakeFiles/yolov8-obb.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2
    • 原因:是ncnn代码中用了多线程,因此在cmake过程中需要指定多线程参数。
    • 解决方法:在cmakelists.txt中的add_executable()之前增加:
set(CMAKE_CXX_FLAGS -pthread)
message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
问题二:undefined reference to `omp_get_thread_num'等

编译器在链接过程中找不到 GOMP_parallel 这个符号,还有omp_get_num_threads 和 omp_get_thread_num 等。

/usr/bin/ld: celu.cpp:(.text+0x4d): undefined reference to `omp_get_thread_num'
/usr/bin/ld: /home/xbang/cpz/env/ncnn/build/install/lib/libncnn.a(celu.cpp.o): in function `ncnn::CELU::forward_inplace(ncnn::Mat&, ncnn::Option const&) const':
celu.cpp:(.text+0x180): undefined reference to `GOMP_parallel'
/usr/bin/ld: /home/xbang/cpz/env/ncnn/build/install/lib/libncnn.a(shrink.cpp.o): in function `ncnn::Shrink::forward_inplace(ncnn::Mat&, ncnn::Option const&) const [clone ._omp_fn.0]':
shrink.cpp:(.text+0x66): undefined reference to `omp_get_num_threads'
/usr/bin/ld: shrink.cpp:(.text+0x6d): undefined reference to `omp_get_thread_num'
/usr/bin/ld: /home/xbang/cpz/env/ncnn/build/install/lib/libncnn.a(shrink.cpp.o): in function `ncnn::Shrink::forward_inplace(ncnn::Mat&, ncnn::Option const&) const':
shrink.cpp:(.text+0x3ac): undefined reference to `GOMP_parallel'
collect2: error: ld returned 1 exit status报错了
    • 原因:GOMP_parallel ,omp_get_num_threads,omp_get_thread_num 都是是 OpenMP 库中的函数或变量。由于ncnn库本身是使用 OpenMP 编译的。因此是ncnn在编译过程对openMP库的设置出了问题。
    • 解决方法:在cmakelists.txt中option里设置了OPENMP模式为on启用模式。但是文件中另一处使用OPENMP库时,if判断条件and配合了另一个库SIMPLEOMP默认是off模式,因此我把SIMPLEOMP库的option也设置为on模式。然后再次编译ncnn后就不报这个错误了。

问题三:当安装多个版本的opencv时,如果用gcc方式编译就会因为设置不明白opencv的库文件路径报错。
    • 解决方法:在cmakelist中可以通过find_package的方式找到路径。
测试代码

将代码中的读取图像参数设为图像绝对路径,模型文件设为绝对路径,然后运行生成的可执行文件,得到测试结果图如下:

http://www.ds6.com.cn/news/48850.html

相关文章:

  • 重庆公司网站建设价格win10优化大师
  • 福田的网站建设公司今日热搜
  • 建站宝盒模板360优化大师旧版
  • 大型网站建设公司超级外链发布工具
  • 如何做网站的压力测试重庆广告公司
  • 中国建设银行官网站2345网址导航是病毒吗
  • 维度网络做网站广州seo工作
  • 厦门建设管理局网站首页外国网站开放的浏览器
  • 绵阳学校网站建设推介网
  • 一个网站备案多个域名海阳seo排名
  • 外贸网站宗旨google 网站推广
  • 简述网站开发的基本流程昆明做网站的公司
  • 安徽省建设厅网站打不开windows优化大师手机版
  • 联邦快递的网站建设黄山seo排名优化技术
  • 想招代理去什么网站站长工具seo源码
  • 做进口葡萄酒的网站品牌全网推广
  • 正规的网站建设公武汉服装seo整站优化方案
  • 洛江区住房和城乡建设局网站百度经验实用生活指南
  • 东莞石龙网站建设莞网站制作百度推广找谁做靠谱
  • 网站设计应遵循的原则淘宝店铺运营推广
  • 个人主页界面设计二十条优化措施原文
  • 做网站布局流程软文发布软件
  • 网站建设合同违约谷歌网页版入口在线
  • 网站建设哪家公司好成都网站建设在线推广
  • 做家电网是什么网站中国站免费推广入口
  • 做电脑网站用什么软件好用北京搜索关键词优化
  • 网站站点地图电脑培训学校
  • php网站挂到linux服务器上应该这么做昆明百度推广开户
  • 天门网站建设百度网盘下载电脑版官方下载
  • 长沙哪家公司做网站好东莞seo排名优化