Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

人脸检测点位的模型无法在60pro上推理正确,在之前安卓上是正常的 #5577

Closed
lshgw14 opened this issue Jul 10, 2024 · 11 comments

Comments

@lshgw14
Copy link

lshgw14 commented Jul 10, 2024

error log | 日志或报错信息 | ログ

context | 编译/运行环境 | バックグラウンド

1、在mate60pro上对比验证推理正确
2、目前通过两种方式进行排查:
a.ncnn基础库在鸿蒙化后本身存在在鸿蒙内核个别测试用例不通过的情况,会显示具体的错误信息,根据错误日志定位到layer层(计算模块,其中包含ncnn的各类算法),但对于ncnn源码不是很了解,需要求助。
b.通过demo打印日志排查出安卓和matepro对比获取值的不同,定位到使用底层ncnn库的具体接口,以及对应的layer层,需求助;

how to reproduce | 复现步骤 | 再現方法

more | 其他 | その他

@lshgw14 lshgw14 changed the title 人脸检测点位的模型无法在60pro(鸿蒙内核)上推理正确,在mate40pro(linux内核)上正常 人脸检测点位的模型无法在60pro上推理正确,在之前安卓上是正常的 Jul 10, 2024
@nihui
Copy link
Member

nihui commented Jul 15, 2024

cpu.cpp get_thread_siblings 返回错误

@leizh007
Copy link

我本地测试,在mate60 pro鸿蒙next系统上,编译的时候需要关闭优化

export CXXFLAGS="-O0"
export CFLAGS="-O0"

并且开启使用vulkan,关闭fp16和bf16

net.opt.use_fp16_arithmetic = false;
net.opt.use_packing_layout = false;
net.opt.use_bf16_storage = false;
net.opt.use_vulkan_compute = true;

可以出来大体正确的结果,其他情况下,结果不对,而且耗时会特别高。

@MadHawkEye
Copy link

请问是怎么在鸿蒙next上实现ncnn的?可以分享一下教程或者工程源码吗?谢谢!

@leizh007
Copy link

leizh007 commented Aug 1, 2024

请问是怎么在鸿蒙next上实现ncnn的?可以分享一下教程或者工程源码吗?谢谢!

你看readme里有编译鸿蒙上用的so啊,直接编译出来放到鸿蒙中用就好了

@MadHawkEye
Copy link

请问是怎么在鸿蒙next上实现ncnn的?可以分享一下教程或者工程源码吗?谢谢!

你看readme里有编译鸿蒙上用的so啊,直接编译出来放到鸿蒙中用就好了

我是按照这个方法做的交叉编译,-DOHOS_STL=c++_static 、-DOHOS_STL=c++_shared 都试了,但是编译出来的是.a静态库文件,不是.sc动态库文件,请问你是怎么编译的?请帮忙po个链接,谢谢!另外问一下你是在linux还是Windows下编译的呢?
image

@leizh007
Copy link

leizh007 commented Aug 8, 2024

请问是怎么在鸿蒙next上实现ncnn的?可以分享一下教程或者工程源码吗?谢谢!

你看readme里有编译鸿蒙上用的so啊,直接编译出来放到鸿蒙中用就好了

我是按照这个方法做的交叉编译,-DOHOS_STL=c++_static 、-DOHOS_STL=c++_shared 都试了,但是编译出来的是.a静态库文件,不是.sc动态库文件,请问你是怎么编译的?请帮忙po个链接,谢谢!另外问一下你是在linux还是Windows下编译的呢? image

额。。。老铁,-DOHOS_STL=c++_static 、-DOHOS_STL=c++_shared你这个链接的是C++的静态库还是C++的动态库啊。。。

我在本地起了个docker,跑的ubuntu20的,用下面这个脚步跑的,路径改成你自己本地的路径

mkdir build && cd build

export CMAKE_FILE_PATH=/home/leizh007/ohos-sdk-windows_linux-public/ohos-sdk/linux/native/build-tools/cmake/bin/cmake
export CMAKE_TOOLCHAIN_FILE_PATH=/home/leizh007/ohos-sdk-windows_linux-public/ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake

export CXXFLAGS="-O0"
export CFLAGS="-O0"

${CMAKE_FILE_PATH} -DBUILD_SHARED_LIBS=ON \
    -DOHOS_STL=c++_shared \
    -DOHOS_ARCH=arm64-v8a \
    -DOHOS_PLATFORM=OHOS \
    -DNCNN_SHARED_LIB=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DNCNN_VULKAN=ON \
    -DNCNN_SIMPLEOMP=ON \
    -DNCNN_OPENMP=ON \
    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE_PATH} .. && make

DEST_DIR=/home/leizh007/ncnn_install
if [ -d ${DEST_DIR} ]; then
    rm -rf ${DEST_DIR}
fi

make install DESTDIR=${DEST_DIR}

@lexuszhi1990
Copy link

lexuszhi1990 commented Aug 16, 2024

@leizh007 老铁,我这边把ncnn模型集成进去以后,在最新的IDE DevEco Studio NEXT Developer Beta3/5.0.3.600 上,debug模式下正常跑通了,然后切换到release模式下
image
,模型推理失败了,表现为耗时几乎为0,不返回结果。

模式 耗时
debug 9.760 ms
release 0.029 ms

关掉代码混淆以后也是这样子,大佬有遇到这种情况吗?

@leizh007
Copy link

@leizh007 老铁,我这边把ncnn模型集成进去以后,在最新的IDE DevEco Studio NEXT Developer Beta3/5.0.3.600 上,debug模式下正常跑通了,然后切换到release模式下 image ,模型推理失败了,表现为耗时几乎为0,不返回结果。

模式 耗时
debug 9.760 ms
release 0.029 ms
关掉代码混淆以后也是这样子,大佬有遇到这种情况吗?

是这样的。。。我这也是这种现象。。。

@lexuszhi1990
Copy link

lexuszhi1990 commented Aug 16, 2024

@leizh007 老铁,我这边把ncnn模型集成进去以后,在最新的IDE DevEco Studio NEXT Developer Beta3/5.0.3.600 上,debug模式下正常跑通了,然后切换到release模式下 image ,模型推理失败了,表现为耗时几乎为0,不返回结果。
模式 耗时
debug 9.760 ms
release 0.029 ms
关掉代码混淆以后也是这样子,大佬有遇到这种情况吗?

是这样的。。。我这也是这种现象。。。

那这可就尴尬了,老铁。。本来已经在写交付文档了...

我在想,debug模式, ncnn_opt.use_fp16_arithmetic = false; 如果这个设置的话,我这边就会直接崩溃掉的。 那release模式下,是不是再去配置一些ncnn的参数,就有可能能规避这个问题.....

@nihui
Copy link
Member

nihui commented Oct 17, 2024

#5740

@nihui
Copy link
Member

nihui commented Oct 17, 2024

fixed in 8105c75

感谢报告

@nihui nihui closed this as completed Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants