Hello, I'm trying to test a trained bvlc_caffenet_full_conv.prototxt to retrieve a "heatmap" of the likely location for my only trained class.
I've used
this example, translated into C++, to transfer my training from the regular net to the fully convolutional and seems to work just fine since I can properly load the net with the training data and run forward on an image.
To retrieve the data I based my code on
this sample posted here on
this post. I know the code is outdated and several methods have been deprecated so they have been replaced with the proper methods to be used.
The problem appears when I try to retrieve the convolution result and convert it into a cv::Mat via a Datum.
When running Datum::clear_data() I get the following:
/usr/bin/ld: main.o: undefined reference to symbol '_ZN6google8protobuf8internal12kEmptyStringE'
//usr/lib/x86_64-linux-gnu/libprotobuf.so.8: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Which I believe means it can't find google::protobuf::internal::EmptyString() or something like that. Thinking that maybe it was a mostly trivial step I comment that like but when reaching datum::float_data() in DatumToCvMat I end up getting
/usr/bin/ld: main.o: undefined reference to symbol '_ZN6google8protobuf8internal11LogFinisheraSERNS1_10LogMessageE'
//usr/lib/x86_64-linux-gnu/libprotobuf.so.8: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Meaning there is something wrong with google::protobuf::internal::LogFinisher::LogMessage or something similar
The code is being compiled on ubuntu 14 without GPU, I didn't get any problems building caffe and haven't had any problems with it until now. Any idea on how may I fix this? I think it might be a missing package or some build flag I'm missing but I'm completely at a loss.
Thank you in advance for any help you can provide.