Aml_npu_app/facenet linux-sdk compilation

I found some models in your git repo aml_npu_app. And I’m interested to try some of them (especially facenet and yoloface). I want to try them running on npu.
So following your documentation i need to use linux_sdk. I’m trying to run this scripts but receiving error. Same happens with inceptionv3 demo and yoloface.
Error disappear when I trying /linux_sdk_6.4.2.1, but in this case binary file bin_r/yoloface (or bin_r/facenet) is missing while other files (libnn_yoloface.so vnn_yoloface.o yoloface.o yoloface_process.o) is generated.

ubuntu@ip-xxxxxx:~/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yoloface$ bash build_vx.sh …/…/…/…/…/linux_sdk/linux_sdk_6.4.3/
…/…/…/…/…/linux_sdk/linux_sdk_6.4.3//common.target:85: warning: overriding recipe for target ‘bin_r/libnn_yoloface.so’
…/…/…/…/…/linux_sdk/linux_sdk_6.4.3//common.target:64: warning: ignoring old recipe for target ‘bin_r/libnn_yoloface.so’
COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yoloface/yoloface_process.c
COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yoloface/vnn_yoloface.c
In file included from vnn_yoloface.c:16:
./include/vnn_yoloface.h:15: warning: “VNN_VERSION_MINOR” redefined
15 | #define VNN_VERSION_MINOR 1
|
In file included from vnn_yoloface.c:15:
./include/vnn_global.h:32: note: this is the location of the previous definition
32 | #define VNN_VERSION_MINOR 0
|
In file included from vnn_yoloface.c:16:
./include/vnn_yoloface.h:16: warning: “VNN_VERSION_PATCH” redefined
16 | #define VNN_VERSION_PATCH 1
|
In file included from vnn_yoloface.c:15:
./include/vnn_global.h:33: note: this is the location of the previous definition
33 | #define VNN_VERSION_PATCH 10
|
vnn_yoloface.c: In function ‘vnn_CreateYoloFace’:
vnn_yoloface.c:129:29: warning: unused variable ‘data’ [-Wunused-variable]
129 | uint8_t * data;
| ^~~~
At top level:
vnn_yoloface.c:82:17: warning: ‘load_data’ defined but not used [-Wunused-function]
82 | static uint8_t* load_data
| ^~~~~~~~~
COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yoloface/yoloface.c
In file included from yoloface.c:3:
./include/vnn_yoloface.h:15: warning: “VNN_VERSION_MINOR” redefined
15 | #define VNN_VERSION_MINOR 1
|
In file included from ./include/yoloface.h:4,
from yoloface.c:1:
./include/vnn_global.h:32: note: this is the location of the previous definition
32 | #define VNN_VERSION_MINOR 0
|
In file included from yoloface.c:3:
./include/vnn_yoloface.h:16: warning: “VNN_VERSION_PATCH” redefined
16 | #define VNN_VERSION_PATCH 1
|
In file included from ./include/yoloface.h:4,
from yoloface.c:1:
./include/vnn_global.h:33: note: this is the location of the previous definition
33 | #define VNN_VERSION_PATCH 10
|
LINK libnn_yoloface.so
/usr/lib/gcc-cross/aarch64-linux-gnu/9/…/…/…/…/aarch64-linux-gnu/bin/ld:…/…/…/…/…/linux_sdk/linux_sdk_6.4.3//acuity-ovxlib-dev/lib/libovxlib.so: file format not recognized; treating as linker script
/usr/lib/gcc-cross/aarch64-linux-gnu/9/…/…/…/…/aarch64-linux-gnu/bin/ld:…/…/…/…/…/linux_sdk/linux_sdk_6.4.3//acuity-ovxlib-dev/lib/libovxlib.so:0: syntax error
collect2: error: ld returned 1 exit status
make: *** […/…/…/…/…/linux_sdk/linux_sdk_6.4.3//common.target:86: bin_r/libnn_yoloface.so] Error 1

@Danylo_Hartwig

Can you check this ?

aml_npu_sdk/linux_sdk/linux_sdk_6.4.3/build/sdk/drivers_64$ file libovxlib.so
libovxlib.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3017b9f945336b29b36cbd2926d4e047999f256c, with debug_info, not stripped

Sure, here my output:
ubuntu@ip-xxx-xx-xx-xx:~$ cd linux_sdk/linux_sdk_6.4.3/build/sdk/drivers_64/
ubuntu@ip-xxx-xx-xx-xx:~/linux_sdk/linux_sdk_6.4.3/build/sdk/drivers_64$ file libovxlib.so
libovxlib.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3017b9f945336b29b36cbd2926d4e047999f256c, with debug_info, not stripped

@Danylo_Hartwig I have try to compile it . it work fine…

yan@yan:~/data/git/npu/aml_npu_app/detect_library/model_code/facenet$ ./build_vx.sh ~/data/git/npu/aml_npu_sdk/linux_sdk/linux_sdk
/home/yan/data/git/npu/aml_npu_sdk/linux_sdk/linux_sdk/common.target:85: warning: overriding recipe for target 'bin_r/libnn_facenet.so'
/home/yan/data/git/npu/aml_npu_sdk/linux_sdk/linux_sdk/common.target:64: warning: ignoring old recipe for target 'bin_r/libnn_facenet.so'
  COMPILE /home/yan/data/git/npu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/vnn_facenet.c
In file included from vnn_facenet.c:16:0:
./include/vnn_facenet.h:15:0: warning: "VNN_VERSION_MINOR" redefined
 #define VNN_VERSION_MINOR 1
 
In file included from vnn_facenet.c:15:0:
./include/vnn_global.h:32:0: note: this is the location of the previous definition
 #define VNN_VERSION_MINOR 0
 
In file included from vnn_facenet.c:16:0:
./include/vnn_facenet.h:16:0: warning: "VNN_VERSION_PATCH" redefined
 #define VNN_VERSION_PATCH 1
 
In file included from vnn_facenet.c:15:0:
./include/vnn_global.h:33:0: note: this is the location of the previous definition
 #define VNN_VERSION_PATCH 10
 
vnn_facenet.c: In function ‘vnn_CreateFacenet’:
vnn_facenet.c:129:29: warning: unused variable ‘data’ [-Wunused-variable]
     uint8_t *               data;
                             ^~~~
At top level:
vnn_facenet.c:82:17: warning: ‘load_data’ defined but not used [-Wunused-function]
 static uint8_t* load_data
                 ^~~~~~~~~
  COMPILE /home/yan/data/git/npu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/facenet_process.c
  COMPILE /home/yan/data/git/npu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/facenet.c
In file included from facenet.c:3:0:
./include/vnn_facenet.h:15:0: warning: "VNN_VERSION_MINOR" redefined
 #define VNN_VERSION_MINOR 1
 
In file included from ./include/facenet.h:4:0,
                 from facenet.c:1:
./include/vnn_global.h:32:0: note: this is the location of the previous definition
 #define VNN_VERSION_MINOR 0
 
In file included from facenet.c:3:0:
./include/vnn_facenet.h:16:0: warning: "VNN_VERSION_PATCH" redefined
 #define VNN_VERSION_PATCH 1
 
In file included from ./include/facenet.h:4:0,
                 from facenet.c:1:
./include/vnn_global.h:33:0: note: this is the location of the previous definition
 #define VNN_VERSION_PATCH 10
 
  LINK    libnn_facenet.so
/home/yan/data/git/npu/aml_npu_sdk/linux_sdk/linux_sdk/common.target:85: warning: overriding recipe for target 'bin_r/libnn_facenet.so'
/home/yan/data/git/npu/aml_npu_sdk/linux_sdk/linux_sdk/common.target:64: warning: ignoring old recipe for target 'bin_r/libnn_facenet.so'
make: Nothing to be done for 'all'.

Generally speaking, this error is caused by the use of x86 files, but from your information, it is normal.

Have you made any changes to the SDK and app code repository?

No, i used code from gitlab without any modifications. The same with sdk, version of sdk is 6.4.3. Try to run it on aws server with ubuntu 20.04. Also it really strange that linux sdk 6.4.2.1 is working without error, but not generating binary file.

And for inceprionv3 beta it works perfectly with linix sdk 6.4.2.1.

@Danylo_Hartwig This is different from compiling the app repository. You can run inception with 6.4.2.1 because the driver of your system has not been updated to the latest

If you don’t make any changes, it can be compiled, and many people have tried this.

Can you please give a list of requirements that needed to run Linux_sdk 6.4.3 on aws ubuntu 20.04, I can’t find anything in your documentations.

I understand that it working for someone else and also for you. But in my case it is not working and I can’t understand why. Or maybe it is possible to write some kind of instructions.

Thank you in advance.

Okay
I re-download aml-npu-sdk-6.4.3 and aml-npu-app and now it working. https://docs.khadas.com/vim3/HowToRunNPUDemo.html Now following this I need to use it similar to yolo models? No binary file facenet is needed?

ubuntu@ip-172-31-45-17:~/aml_npu_app/detect_library/model_code/facenet$ bash build_vx.sh ~/aml_npu_sdk_6.4.3/linux_sdk/linux_sdk_6.4.3                          /home/ubuntu/aml_npu_sdk_6.4.3/linux_sdk/linux_sdk_6.4.3/common.target:85: warning: overriding recipe for target 'bin_r/libnn_facenet.so'
/home/ubuntu/aml_npu_sdk_6.4.3/linux_sdk/linux_sdk_6.4.3/common.target:64: warning: ignoring old recipe for target 'bin_r/libnn_facenet.so'
  COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/vnn_facenet.c
In file included from vnn_facenet.c:16:0:                                       ./include/vnn_facenet.h:15:0: warning: "VNN_VERSION_MINOR" redefined             #define VNN_VERSION_MINOR 1
 
In file included from vnn_facenet.c:15:0:                                       ./include/vnn_global.h:32:0: note: this is the location of the previous definition
 #define VNN_VERSION_MINOR 0
 
In file included from vnn_facenet.c:16:0:                                       ./include/vnn_facenet.h:16:0: warning: "VNN_VERSION_PATCH" redefined             #define VNN_VERSION_PATCH 1
 
In file included from vnn_facenet.c:15:0:                                       ./include/vnn_global.h:33:0: note: this is the location of the previous definition
 #define VNN_VERSION_PATCH 10
 
vnn_facenet.c: In function ‘vnn_CreateFacenet’:                                 vnn_facenet.c:129:29: warning: unused variable ‘data’ [-Wunused-variable]            uint8_t *               data;                                                                           ^~~~                                               At top level:
vnn_facenet.c:82:17: warning: ‘load_data’ defined but not used [-Wunused-function]                                                                               static uint8_t* load_data                                                                       ^~~~~~~~~                                                        COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/facenet_process.c
  COMPILE /home/ubuntu/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/facenet/facenet.c
In file included from facenet.c:3:0:                                            ./include/vnn_facenet.h:15:0: warning: "VNN_VERSION_MINOR" redefined             #define VNN_VERSION_MINOR 1
 
In file included from ./include/facenet.h:4:0,                                                   from facenet.c:1:                                              ./include/vnn_global.h:32:0: note: this is the location of the previous definition
 #define VNN_VERSION_MINOR 0
 
In file included from facenet.c:3:0:                                            ./include/vnn_facenet.h:16:0: warning: "VNN_VERSION_PATCH" redefined             #define VNN_VERSION_PATCH 1
 
In file included from ./include/facenet.h:4:0,                                                   from facenet.c:1:                                              ./include/vnn_global.h:33:0: note: this is the location of the previous definition
 #define VNN_VERSION_PATCH 10
 
  LINK    libnn_facenet.so
/home/ubuntu/aml_npu_sdk_6.4.3/linux_sdk/linux_sdk_6.4.3/common.target:85: warning: overriding recipe for target 'bin_r/libnn_facenet.so'
/home/ubuntu/aml_npu_sdk_6.4.3/linux_sdk/linux_sdk_6.4.3/common.target:64: warning: ignoring old recipe for target 'bin_r/libnn_facenet.so'
make: Nothing to be done for 'all'.
ubuntu@ip-172-31-45-17:~/aml_npu_app/detect_library/model_code/facenet$ ls bin_r/
facenet.o  facenet_process.o  libnn_facenet.so  vnn_facenet.o

So I’m trying to run demo with facenet as written im ReadMe.md, but getting error that type 11 not supported. Is there way to fix it?

khadas@Khadas:~/aml_npu_demo_binaries/detect_demo_picture$ ./detect_demo_fb_cv4 11 1080p.bmp 0 not support type=11
khadas@Khadas:~/aml_npu_demo_binaries/detect_demo_picture$ cat README.md ### Install the libraries

$ sudo ./INSTALL

Yoloface demo

$ ./detect_demo 0 1080p.bmp

YoloV2 demo

$ ./detect_demo 1 1080p.bmp

YoloV3 demo

$ ./detect_demo 2 1080p.bmp

YoloTiny demo

$ ./detect_demo 3 1080p.bmp

YoloV4 demo

$ ./detect_demo 4 1080p.bmp

Facenet demo

$ ./detect_demo 11 1080p.bmp  0
$ ./detect_demo 11 1080p.bmp  1

Hi, @Frank 关于Facenet 有2个问题跟此帖讨论相关,就没开新帖。

  1. 是我发现在Github上, demo的运行仓库:GitHub - khadas/aml_npu_demo_binaries 和demo的源码仓库:https://github.com/khadas/aml_npu_app.git,关于执行demo_picture的输入参数,并没有强调要求输入-m和-p, 根据最新demo的源码看,这样会走入错误的分支(图一和图二)。建议能及时更新github上类似的错误,减少给新进入的人员带来困惑。


  2. facenet demo里没有找到 .nb 模型文件,这个demo没办法测试效果。是否有单独的连接?谢谢。

@guofq facenet demo暂时无法使用,请使用其他demo

最好是参考docs,docs的更新频率更好,体系也更完整。

感觉你的反馈,我会尽快修正README的问题