Output Tensor Mis-match

The arcface model available in model zoo “arcface_mobilefacenet.hef” has output tensor named " Output arcface_mobilefacenet/fc1 UINT8, NC(512)"

However the post_process filter “libface_recognition_post.so” expects the output tensor to be “arcface_mobilefacenet_v1”

Any clue how to solve for it?

Hi @sanjoyg,
Thanks for rasing this question. Indeed it seems like a problem, but I think that for the time being you can W\A by using this function-name arcface_nv12 on the post-processing library. At the end it can look something like this:
hailofilter function-name=arcface_nv12 so-path=$POSTPROCESS_DIR/libface_recognition_post.so

We’ll take it with our development team.

Thank you. I did resolve it by building tapas from source and changing the #define in arcface.cpp. It does work

1 Like

Sorry to bother you two but i’m facing a similar problem with repvgg expecting tensor with name repvgg_a0_person_reid_2048/fc1 while I’m using repvgg_a0_person_reid_512 (because I couldn’t find any .hef for 2048 for H8L).

I there a straightforward solution for that ? Like is there a precompiled .so I can download or a repvgg_a0_person_reid_2048.hef for H8L ? Or maybe I have to recompile tappas from source, changing the #define like @sanjoyg did (I will probably need guidance for that though).

Thanks in advance.

Let me know what assistance you need. You would have to build tappas from source.

To copy-cat @axplessis solution to your case @sanjoyg, you would need to clone tappas on your system, and edit this file:
tappas/core/hailo/libs/postprocesses/recognition/repvgg.cpp at 0f4813c7683f388886b9900ceaeeb0c4ec49a3f0 · hailo-ai/tappas (github.com)
change the define:
#define OUTPUT_LAYER_NAME "repvgg_a0_person_reid_2048/fc1
to this
#define OUTPUT_LAYER_NAME "repvgg_a0_person_reid_512/fc1"

And compile the package

First thanks to both of you.

I’m actually a bit lost with the tappas compilation process. Is there a documentation on how to compile it ? I’m currently working on a rpi5, using tappas_core with the hailo-all package and I don’t know if there are special things to do other than running the cross_compile_tappas.py script.

hailo-all will install the PCIe driver 4.17.0. When you tappas it expected 4.18.0 and the model zoo public models will run with 4.18.0. Which is why I had to download tappas latest zip file, followed the instructions to git clone hailorrt and build it out. The build is not tuned for RPI5 so some further tweaks are required. If you need instructions let me know I will type up a medium.com blog

Thanks for the proposal, for now I’m trying to avoid that by only compiling the packages that I need (I think I managed to do that, I don’t have errors anymore).

For a bit of context, I’m currently in an internship where my goal is to make a robust tracker on a raspberry pi 5. So far I’ve managed to modify the hailo-rpi5-examples by making the pipeline a cascaded network pipeline. My internship is coming to an end in a few weeks so I’m trying to avoid unnecessary steps in the project.

where can i download the “arcface_mobilefacenet.hef” file

Hi @jiqimaohw,
So the best place to source compiled HEFs is from the Hailo Model zoo. The mode that you’re searching for is a face recognition model, you can search for the relevant Hailo arch on this page.

thanks, i have find it in github
another quesion is : how can i get my hailo hailo Dataflow Compiler version?
i have get my hailorrt-cli version by: hailortcli -v, but i did’t find how to get Dataflow Compiler version

Hi @jiqimaohw,
This is how I use it:

import hailo_sdk_client
print(hailo_sdk_client.__version__)