TensorFlow Lite example FaceRecognition issue

cancel
Showing results for 
Search instead for 
Did you mean: 

TensorFlow Lite example FaceRecognition issue

1,055 Views
Contributor III

This is a discussion started with vanessamaegima in thread Arm NN support for the i.MX 8 GPUs,

all details can be found there. As i wrote, if you are not able to replicate this issue, i can try to debug application: i need info how to build application and libraries with debug symbols.

Thanks

Damiano

Labels (1)
18 Replies

47 Views
NXP Employee
NXP Employee

Damiano,

I think crash is because of different reason, can you try the hack I suggested previously and see if it works?

Can you try quick hack to see if it works for? There should be data folder. Please delete all the files from there. 

Let me know if it helps.

-Manish

0 Kudos

47 Views
Contributor III

Hi manishbajaj,

you're right, if i start application with acceleration enabled:

  • if data folder is empty, application run
  • if data folder is not empty, application crash

Instead, with acceleration disabled, application run with data folder not empty too.

Thanks

Damiano

0 Kudos

47 Views
NXP Employee
NXP Employee

damiano.cipriani@engicam.com‌ So are you seeing the issue with GPU only or even with CPU? 

0 Kudos

47 Views
Contributor III

Issue happens bot with CPU only and with GPU acceleration (with and without -a 1 option). Here some others info i hope can help you to understand the problem:

  • when crash happens, on console i see following output
[   49.360647] input fmt YUV4
[   49.363359] output fmt BGR3
[   50.089015] input fmt YUV4
[   50.091743] output fmt BGR3
[   50.653013] input fmt YUV4
[   50.655745] output fmt BGR3
  • on following run, when application stucks, i see instead
[  309.744653] input fmt YUV4
[  309.747369] output fmt BGR3

Thanks,

Damiano

0 Kudos

47 Views
NXP Employee
NXP Employee

Damiano,

Can you try quick hack to see if it works for? There should be data folder. Please delete all the files from there. 

Let me know if it helps.

0 Kudos

47 Views
Contributor III

Hi manishbajaj,

all my previous attempts were done with data folder empty.

Now, if data folder contains one or more images (i tried with a jpg and a bmp), both with acceleration enabled and without, application still crashes. This is the output

Enrolling....
Add face 1
image read 1
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.0.1) /usr/src/debug/opencv/4.0.1.imx-r0/git/modules/objdetect/src/cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'

Aborted

But, in this case, crash happens every application run. Instead, if data folder is empty, following run cause application stuck: only a reboot make application crash again.

Hope this can help you

Thanks

Damiano

0 Kudos

47 Views
NXP Employee
NXP Employee

Hi damiano.cipriani@engicam.com‌, 

From the log, it seems that you miss the xml file for face detection. Can you please double check that if you put haarcascade_frontalface_alt.xml in the same path with the FaceRecognition? Please let me know your results.

BTW, GPU doesn't support all of the OPs in the mobilefacenet. So, please just run the demo with CPU backend.

47 Views
Contributor III

Hi devin,

thank you very much, it run! When i rebuilded application outside Yocto, i forget to copy haarcascade_frontalface_alt.xml in the new path (maybe you could to add this step in application README, previous time i understood to copy this file looking in the cpp code).

Before leaving this issue, only another question: when i stop application, to make it run again i have to reboot machine, otherwise it stucks: do you have same behavior on your environment?

Whatabout GPU, you're right: if i start application with acceleration enabled, it crashes.

Thanks

Damiano

0 Kudos

47 Views
NXP Employee
NXP Employee

Hi Damiano,

Good suggestion. We will update the README.

I tried three approaches to stop the app (clicking 'stop' button, clicking 'x' in the surface and ctrl + 'c' in the terminal), but I didn't encounter the stuck issue. The app can be restarted. Note that, if you add a new person to the database, please follow the steps in README. There are two approaches to add a new person.

1. Firstly, enter the person's name by virtual keyboard in the interface. Secondly, click 'Add new person' button. 

2. Firstly, click 'Add new person' button. Secondly, type the new person's name in the terminal.

During adding a new person to the database, the video will be paused. If you click 'Add new person' button firstly, you must input the person's name in the terminal. Before typing the name, clicking any button (including the 'stop' button) in the interface doesn't work at this moment, which looks like a stuck issue. Because the program is waiting for the terminal input info. It will work again after you type the person's name in the terminal. Can you double check if you follow the steps?

0 Kudos

47 Views
Contributor III

Hi devin,

sorry but i explained you quite bad what happens. If i stop application in any of the three approaches, i can start application again, but it stucks before showing camera input on the screen. Normally, when application runs correctly, i see on console

[  148.279403] input fmt YUV4
[  148.282126] output fmt BGR3
[  148.999753] input fmt YUV4
[  149.002490] output fmt BGR3
[  149.563721] input fmt YUV4
[  149.566456] output fmt BGR3

Instead, when application stucks, i see only

[  515.793372] input fmt YUV4
[  515.796080] output fmt BGR3

It seems to have problem catching camera input. Hope this explanation can be clear to you.

Whatabout application functionality, i followed steps you described and all works correctly.

Thanks

Damiano

0 Kudos

47 Views
Contributor III

Hi vanessamaegima,

i have done following steps:

  • i checked that my local.conf is correct
  • i commented eiq-sample-apps in local.conf
  • i rebuilded and reinstalled sdk
  • i checked my external version of eiq-sample-apps has last commit (51fc5aae49d01d65a46af68bc14e07fe390d0330)
  • i rebuilded application with new sdk and deployed to device
  • i checked camera is working before starting application

But result is the same: first time i run, application crashes. Following run instead application stucks, and i've found that camera stucks too! I.e., if after application crash i start gst-launch-1.0 v4l2src ! autovideosink, gstreamer start but no camera output is shown on display. Without starting FaceRecognition, camera start every time i run it.

Very strange behaviour, it seems FaceRecognition cause some irreversible error ...

Thanks

Damiano

47 Views
NXP Employee
NXP Employee

Could you please share your compiled binary so I can give it a try this on my setup?
Unfortunately due to NXP guidelines I can't share my working binary with you but let me test yours.

0 Kudos

47 Views
Contributor III

Sure,

in attachment entire folder with sources and binary compiled.

Thanks

Damiano

0 Kudos

47 Views
NXP Employee
NXP Employee

Hi Damiano,

Your binary worked well for us but we could also reproduce your issue with a binary we build using L4.19-warrior toolchain. I guess this might be related to TF versions mismatch but we are still investigating.

Did you build your binary using the project's Makefile (Makefile.linux\src\face_recognition\examples-tflite - eiq_sample_apps - Unnamed repository; edit thi... )?

0 Kudos

47 Views
Contributor I

Hi Vanessa Maegima

    I am using imx8qxp demo board with yocto L4.19.35, i want to build and  run the  "eIQ Sample Apps - Face Recognition using TF Lite" successful . My PC is ubuntu 18.04. Thanks.

   When i run the"eIQ Sample Apps - Face Recognition using TF Lite"  demo which download eiq_sample_apps - Unnamed repository; edit this file 'description' to name the repository. , i found that i can't compile successful. 

1.Could you tell me which version of tensorflow and tensorflow-lite does the "eIQ Sample Apps - Face Recognition using TF Lite" use?

2. Could you help to send me a local.conf which contains the "tensorflow tensorflow-lite" config that i can refer to, in fact, i did add the image by "IMAGE_INSTALL_append += " tensorflow tensorflow-lite""

3. Shoud i download the tensorflow offical source code to build libtensorflow-lite.a by myself ,whether  the yocto will do the tensorflow / tensorflow-lite source code download ,complie , library install  by itself.

my local.conf file as below shown:

MACHINE ??= 'imx8qxpmek'
DISTRO ?= 'fsl-imx-xwayland'
PACKAGE_CLASSES ?= 'package_rpm'
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
PACKAGECONFIG_append_pn-opencv_mx8 = "gtk jasper test"
CONF_VERSION = "1"

CORE_IMAGE_EXTRA_INSTALL += "opencv opencv-samples libopencv-core libopencv-imgproc"
CORE_IMAGE_EXTRA_INSTALL += "libopencv-core-dev libopencv-highgui-dev libopencv-imgproc-dev libopencv-objdetect-dev libopencv-ml-dev"
CORE_IMAGE_EXTRA_INSTALL += "python3-pip"
IMAGE_INSTALL_append += " wget vim git"
IMAGE_INSTALL_append += " tensorflow tensorflow-lite"
#IMAGE_INSTALL_append += " eiq-sample-apps"


DL_DIR="/home/xxx/NXP/downloads"
ACCEPT_FSL_EULA = "1"

when compile face_recognition the  error log as below shown:

root@imx8qxpmek:~/prj/eiq_sample_apps/examples-tflite/face_recognition/src# make
g++ -o FaceRecognition -I /usr/include/tensorflow/contrib/lite/tools/make/downloads/flatbuffers/include/ face_recognition.cpp face_detect_helpers.cpp -ltensorflow-lite -lpthread -ldl -g -lopencv_objdetect -lopencv_highgui -lopencv_imgproc -lopencv_core -lopencv_videoio -lopencv_imgcodecs
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `tflite::facerec::init_interpreter(tflite::facerec::Settings*)':
/home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:149: undefined reference to `tflite::InterpreterBuilder::InterpreterBuilder(tflite::FlatBufferModel const&, tflite::OpResolver const&)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:149: undefined reference to `tflite::InterpreterBuilder::operator()(std::unique_ptr<tflite::Interpreter, std::default_delete<tflite::Interpreter> >*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:149: undefined reference to `tflite::InterpreterBuilder::~InterpreterBuilder()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:156: undefined reference to `tflite::Interpreter::UseNNAPI(bool)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:168: undefined reference to `tflite::Interpreter::SetNumThreads(int)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:184: undefined reference to `tflite::Interpreter::AllocateTensors()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:190: undefined reference to `tflite::PrintInterpreterState(tflite::Interpreter*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:149: undefined reference to `tflite::InterpreterBuilder::~InterpreterBuilder()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `tflite::facerec::get_output_tensor(cv::Mat, tflite::facerec::Settings*)':
/home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:219: undefined reference to `tflite::Interpreter::Invoke()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `tflite::Interpreter::SetTensorParametersReadWrite(int, TfLiteType, char const*, std::vector<int, std::allocator<int> > const&, TfLiteQuprjizationParams, bool)':
/usr/include/tensorflow/contrib/lite/interpreter.h:189: undefined reference to `tflite::Interpreter::SetTensorParametersReadWrite(int, TfLiteType, char const*, unsigned long, int const*, TfLiteQuprjizationParams, bool)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `void tflite::facerec::copy_resize<unsigned char>(unsigned char*, cv::Mat&, int, int, int, bool)':
/home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:60: undefined reference to `tflite::Interpreter::Interpreter(tflite::ErrorReporter*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:65: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:67: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:69: undefined reference to `tflite::Interpreter::SetInputs(std::vector<int, std::allocator<int> >)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:70: undefined reference to `tflite::Interpreter::SetOutputs(std::vector<int, std::allocator<int> >)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:85: undefined reference to `tflite::ops::builtin::BuiltinOpResolver::FindOp(tflite::BuiltinOperator, int) const'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:89: undefined reference to `tflite::Interpreter::AddNodeWithParameters(std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> > const&, char const*, unsigned long, void*, _TfLiteRegistration const*, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:92: undefined reference to `tflite::Interpreter::AllocateTensors()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:106: undefined reference to `tflite::Interpreter::Invoke()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `void tflite::facerec::copy_resize<float>(float*, cv::Mat&, int, int, int, bool)':
/home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:60: undefined reference to `tflite::Interpreter::Interpreter(tflite::ErrorReporter*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:65: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:67: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:69: undefined reference to `tflite::Interpreter::SetInputs(std::vector<int, std::allocator<int> >)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:70: undefined reference to `tflite::Interpreter::SetOutputs(std::vector<int, std::allocator<int> >)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:85: undefined reference to `tflite::ops::builtin::BuiltinOpResolver::FindOp(tflite::BuiltinOperator, int) const'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:89: undefined reference to `tflite::Interpreter::AddNodeWithParameters(std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> > const&, char const*, unsigned long, void*, _TfLiteRegistration const*, int*)'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:92: undefined reference to `tflite::Interpreter::AllocateTensors()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /home/root/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:106: undefined reference to `tflite::Interpreter::Invoke()'
/usr/lib/gcc/aarch64-poky-linux/8.3.0/../../../../aarch64-poky-linux/bin/ld: /tmp/ccxVT0W3.o: in function `std::default_delete<tflite::Interpreter>::operator()(tflite::Interpreter*) const':
/usr/include/c++/8.3.0/bits/unique_ptr.h:81: undefined reference to `tflite::Interpreter::~Interpreter()'
collect2: error: ld returned 1 exit status
make: *** [Makefile:13: FaceRecognition] Error 1

when cross compile face_recognition on PC  the  error log as below shown:

xxx@xxx-HP-ProDesk-400-G2-MT:~/prj/eiq_sample_apps/examples-tflite/face_recognition/src$ make
aarch64-poky-linux-g++ --sysroot=/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/aarch64-poky-linux -o FaceRecognition -I /usr/include/tensorflow/contrib/lite/tools/make/downloads/flatbuffers/include/ face_recognition.cpp face_detect_helpers.cpp -ltensorflow-lite -lpthread -ldl -g -lopencv_objdetect -lopencv_highgui -lopencv_imgproc -lopencv_core -lopencv_videoio -lopencv_imgcodecs
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `tflite::facerec::init_interpreter(tflite::facerec::Settings*)':
/home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:147: undefined reference to `tflite::InterpreterBuilder::InterpreterBuilder(tflite::FlatBufferModel const&, tflite::OpResolver const&)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:147: undefined reference to `tflite::InterpreterBuilder::operator()(std::unique_ptr<tflite::Interpreter, std::default_delete<tflite::Interpreter> >*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:147: undefined reference to `tflite::InterpreterBuilder::~InterpreterBuilder()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:154: undefined reference to `tflite::Interpreter::UseNNAPI(bool)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:166: undefined reference to `tflite::Interpreter::SetNumThreads(int)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:182: undefined reference to `tflite::Interpreter::AllocateTensors()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:188: undefined reference to `tflite::PrintInterpreterState(tflite::Interpreter*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:147: undefined reference to `tflite::InterpreterBuilder::~InterpreterBuilder()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `tflite::facerec::get_output_tensor(cv::Mat, tflite::facerec::Settings*)':
/home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_recognition.cpp:217: undefined reference to `tflite::Interpreter::Invoke()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `tflite::Interpreter::SetTensorParametersReadWrite(int, TfLiteType, char const*, std::vector<int, std::allocator<int> > const&, TfLiteQuprjizationParams, bool)':
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/aarch64-poky-linux/usr/include/tensorflow/lite/interpreter.h:186: undefined reference to `tflite::Interpreter::SetTensorParametersReadWrite(int, TfLiteType, char const*, unsigned long, int const*, TfLiteQuprjizationParams, bool)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `void tflite::facerec::copy_resize<unsigned char>(unsigned char*, cv::Mat&, int, int, int, bool)':
/home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:58: undefined reference to `tflite::Interpreter::Interpreter(tflite::ErrorReporter*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:63: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:65: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:67: undefined reference to `tflite::Interpreter::SetInputs(std::vector<int, std::allocator<int> >)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:68: undefined reference to `tflite::Interpreter::SetOutputs(std::vector<int, std::allocator<int> >)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:83: undefined reference to `tflite::ops::builtin::BuiltinOpResolver::FindOp(tflite::BuiltinOperator, int) const'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:87: undefined reference to `tflite::Interpreter::AddNodeWithParameters(std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> > const&, char const*, unsigned long, void*, _TfLiteRegistration const*, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:90: undefined reference to `tflite::Interpreter::AllocateTensors()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:104: undefined reference to `tflite::Interpreter::Invoke()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `void tflite::facerec::copy_resize<float>(float*, cv::Mat&, int, int, int, bool)':
/home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:58: undefined reference to `tflite::Interpreter::Interpreter(tflite::ErrorReporter*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:63: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:65: undefined reference to `tflite::Interpreter::AddTensors(int, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:67: undefined reference to `tflite::Interpreter::SetInputs(std::vector<int, std::allocator<int> >)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:68: undefined reference to `tflite::Interpreter::SetOutputs(std::vector<int, std::allocator<int> >)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:83: undefined reference to `tflite::ops::builtin::BuiltinOpResolver::FindOp(tflite::BuiltinOperator, int) const'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:87: undefined reference to `tflite::Interpreter::AddNodeWithParameters(std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> > const&, char const*, unsigned long, void*, _TfLiteRegistration const*, int*)'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:90: undefined reference to `tflite::Interpreter::AllocateTensors()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /home/xxx/prj/eiq_sample_apps/examples-tflite/face_recognition/src/face_detect_helpers_impl.h:104: undefined reference to `tflite::Interpreter::Invoke()'
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/real-ld: /tmp/ccSP0U7S.o: in function `std::default_delete<tflite::Interpreter>::operator()(tflite::Interpreter*) const':
/home/xxx/prj/fsl-imx-xwayland/4.19-warrior/sysroots/aarch64-poky-linux/usr/include/c++/8.3.0/bits/unique_ptr.h:81: undefined reference to `tflite::Interpreter::~Interpreter()'
collect2: error: ld returned 1 exit status
Makefile:13: recipe for target 'FaceRecognition' failed
make: *** [FaceRecognition] Error 1

0 Kudos

47 Views
NXP Employee
NXP Employee

Hi,

Sorry for the delay, I was out of office until today. If help is still needed, please open a new issue.

0 Kudos

47 Views
Contributor I

Hi Vanessa Maegima

    Thanks for your relpy. I change the platfrom. I use imx8 mm now, and the eiq-sample-apps runs well in the imx8 mm.

0 Kudos

47 Views
Contributor III

Hi vanessamaegima,

yes i build with project's Makefile.linux (the only difference is in the include directory, i deleted contrib from path to build with warrior).

Let me know when you have some news.

Thanks

Damiano

0 Kudos