خواندن فایل میانگین در caffe - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خواندن فایل میانگین در caffe

+1 امتیاز
سلام.من فایل باینری GoogLeNet را دارم حالا چطور فایل باینری میانگین را به تصویر یا  Blob تبدیل کنم ؟
سوال شده تیر 9, 1396  بوسیله ی RaHmAtI (امتیاز 76)   1 17 21

1 پاسخ

+1 امتیاز

می تونید از طریق تابع caffe::ReadProtoFromBinaryFileOrDie این کار قابل انجام بدید.ابتدا فایل باینری میانگین را به caffe::BlobProto تبدیل کنید و سپس BlobProto را به Blob .تبدیل بلاب به تصویر هم که ساده است.به مثال زیر دقت کنید.

std::string mean_file;
BlobProto blob_proto;
  ReadProtoFromBinaryFileOrDie(mean_file.c_str(), &blob_proto);


  Blob<float> mean_blob;
  mean_blob.FromProto(blob_proto);

تبدیل بلاب به تصویر هم به صورت زیر انجام بدید:

 std::vector<cv::Mat> channels;
  float* data = mean_blob.mutable_cpu_data();
  for (int i = 0; i < num_channels_; ++i) {

    cv::Mat channel(mean_blob.height(), mean_blob.width(), CV_32FC1, data);
    channels.push_back(channel);
    data += mean_blob.height() * mean_blob.width();
  }


  cv::Mat mean;
  cv::merge(channels, mean);

 

پاسخ داده شده تیر 9, 1396 بوسیله ی sharp man (امتیاز 179)   3
دوباره نشان داده شد تیر 10, 1396 بوسیله ی مصطفی ساتکی
سلام
میتونم بپرسم دستور mutable_cpu_data(); چه کاری رو انجام میدهد؟
از طریق اشاره گر به ابتدای حافظه blob دسترسی دارید.mutable هم به اینکه قابل تغییر هستش.
...