madelinegannon / example-mediapipe-udp

Connecting openFrameworks to Google MediaPipe Machine Learning Framework over UDP
305 stars 30 forks source link

Could not find type "type.googleapis.com/mediapipe.GateCalculatorOptions" #7

Open jbest2015 opened 4 years ago

jbest2015 commented 4 years ago

Hi Madeline, First thank you for taking the time to post this great example. I am trying to get it running, and have checked and double checked the changes.. it builds fine, but then I get this error trying to run it. Any help would be much appreciated . I am running MacOs, Catalina 10.15.6. Proto is 3.6.1 .

[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:309] Error parsing text-format mediapipe.CalculatorGraphConfig: 40:59: Could not find type "type.googleapis.com/mediapipe.GateCalculatorOptions" stored in google.protobuf.Any. F20200901 22:07:08.679298 520498624 parse_text_proto.h:32] Check failed: ParseTextProto(input, &result) Check failure stack trace: @ 0x10f9a244f google::LogMessageFatal::~LogMessageFatal() @ 0x10f99ede9 google::LogMessageFatal::~LogMessageFatal() @ 0x10f4fd7bb mediapipe::ParseTextProtoOrDie<>() @ 0x10f4fb899 RunMPPGraph() @ 0x10f4fd815 main zsh: abort sudo GLOG_logtostderr=1

madelinegannon commented 4 years ago

This seems similar to MediaPipe Issue 650 and maybe also Issue 884.

Are you working with the multi-hand example? Do any of the MediaPipe examples run for you?

jbest2015 commented 4 years ago

Hi , I have been continuing to work on it. I want to do the Multi hands in the future but for this, I tried to follow your instructions exactly. before I made any changes I was able to run all of the hand tracking models sucessfully. I wonder if is is related to the PROTOBUFF issue. In your document you stated that MediaPipe runs a different version of protobuf .. you mentioned something about a system wide installation.

madelinegannon commented 4 years ago

Protobuf is backwards compatible, so there shouldn't be an issue there.

Sadly I don't have any definitive answers for you ... I would follow the suggestions in Issue 650: double check your OpenGL version and verify that your .pbtxt binary and graph targets match.

If you're tight on time, you can aways skip using wrapper_hand_tracking.proto, comment out any reference to it in my_pass_through_calculator.cc and just send your own custom formatted string.

For example, something like:

string landmark_list_msg;
for (int i = 0; i < landmarks.landmark_size(); ++i) {
    const NormalizedLandmark& landmark = landmarks.landmark(i);
    landmark_list_msg = "[" + std::to_string(i) + ",{" + std::to_string(landmark.x()) + "," + std::to_string(landmark.y()) + "," + std::to_string(landmark.z()) + "}],";
}
jbest2015 commented 4 years ago

Thank you so much, I am going to give that a shot!