google-coral / project-posenet

Human Pose Detection on EdgeTPU
Apache License 2.0
553 stars 157 forks source link

Can't run simple_pose.py #52

Closed anoop54 closed 3 years ago

anoop54 commented 3 years ago

OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./posenet_lib/x86_64/posenet_decoder.so)

Any idea on this?

I compiled my own posenet_decoder as well, which results in a different error. Is this .so only working with ubuntu 20?

Namburger commented 3 years ago

That seems like your OS doesn't meet the required GLIBC version for required for that so file. You can check with:

ldd --version

It needs to be 2.29 or above

anoop54 commented 3 years ago

Yeah, mine is 2.27, seems like I'll need to update from Ubuntu 18. Can you explain to me why the version I built does not work? I no longer get the GLIBC error, but get the following when using:

Code import tflite_runtime.interpreter as tflite posenet=tflite.load_delegate('./posenet_lib/x86_64/posenet_decoder.so') interpreter = tflite.Interpreter(model_path='posenet_mobilenet_v1_075_481_641_quant_decoder.tflite',experimental_delegates=[posenet]) interpreter.allocate_tensors()

Output: return self._interpreter.AllocateTensors() RuntimeError: Encountered unresolved custom op: edgetpu-custom-op.Node number 0 (edgetpu-custom-op) failed to prepare.

I build the posenet_decoder.so using the edgetpu repo and the commands you gave here: https://github.com/google-coral/edgetpu/issues/127#issuecomment-636036478

Also the version that gets built is 2.2mb where as the one in the repo is like 200kb.

Namburger commented 3 years ago

@anoop54 well there are 2 libraries that needs to be loaded. Yo built your own lib and it actually works, but now you're having problem with libedgetpu LOL

For libedgetpu, though, it's not as complicated, I think you just have an older version that isn't compatible with the current tflite_runtime package. Try this:

sudo apt install libedgetpu1-std
drimyus commented 3 years ago

Hi @Namburger

I tried to run the simple_pose.py on ubuntu 18.04. I installed pycoral_api, tf_runtime, and libedgetpu. when I execute the simple_pose.py, I got the error message like below.

/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./posenet_lib/x86_64/posenet_decoder.so)
Exception ignored in: <function Delegate.__del__ at 0x7f427220f4d0>
Traceback (most recent call last):
  File "/media/be/67F04CCE6BD713C5/Work/venv/python3.7/site-packages/tflite_runtime/interpreter.py", line 116, in __del__
    if self._library is not None:
AttributeError: 'Delegate' object has no attribute '_library'

I wonder this project is available to run for only ubuntu 19 or higher version?

$ ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.4) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
Namburger commented 3 years ago

@drimyus this is the same issue, you are going to have to build libedgetpu.so that matches your glibc, unfortunately

drimyus commented 3 years ago

@Namburger Thank you for your response, btw can you let me know where I can check the guide to build the libedgetpu.so?

Yaskoga commented 3 years ago

Former version of simple_pose.py could work on raspberry pi OS. But now, newest version of raspberry pi OS have GLIBC 2.28, so current simple_pose.py can't work on any raspberry pi. We need simple_pose.py which can work on raspberry pi OS. Would you give me any good idea?

Namburger commented 3 years ago

@Yaskoga this is an issue with the OS, not an RPI, I think one think you can do is to upgrade glibc on the pi or recompile the armv7 binary with a lower glibc

Yaskoga commented 3 years ago

@Yaskoga this is an issue with the OS, not an RPI, I think one think you can do is to upgrade glibc on the pi or recompile the armv7 binary with a lower glibc

Thanks for your reply. I installed UBUNTU 20.10 desktop which has GLIBC 2.32 to my raspberry pi4. And I tried install posenet. I succeeded to work simple_pose.py.

hjonnala commented 3 years ago

It seems issue was resolved. Feel free to reopen if still exists.