c 呼叫ECO pytorch模型做行為識別

2021-09-11 09:03:55 字數 2024 閱讀 7749

資料集:ucf101

演算法模型:eco-pytorch,自己在ucf101做的finetune,top1準確率為75%左右,然後通過pytorch script 將模型轉為c++可呼叫的版本,後續有需求我可以上傳這個模型。

需要的庫:opencv(網上很多教程,不再多說)和libtorch(官網可下)

c++呼叫**

#include // one-stop header.

#include #include #include #include #include #include int main()

else

} int step = framenum / numsegments;

std::vectorinputs;

float *test = new float[8*3*224*224]();

auto tensor = torch::cpu(torch::kfloat32).tensorfromblob(test,);

for (int i = 0; i < numsegments; i++)

);img_tensor = img_tensor.permute();

img_tensor[0] = img_tensor[0].sub_(128).div_(1);

img_tensor[1] = img_tensor[1].sub_(117).div_(1);

img_tensor[2] = img_tensor[2].sub_(104).div_(1);

tensor[i] = img_tensor;

} auto img_var = torch::autograd::make_variable(tensor, false);

inputs.push_back(img_var);

std::vector().swap(images);

// execute the model and turn its output into a tensor.

module->forward(inputs);

auto out_tensor = module->forward(inputs).totensor();

std::tupleresult = out_tensor.sort(-1, true);

torch::tensor top_scores = std::get<0>(result)[0];

torch::tensor top_idxs = std::get<1>(result)[0].totype(torch::kint32);

// load labels

std::string label_file = "../classind.txt";

std::ifstream rf(label_file.c_str());

check(rf) << "unable to open labels file " << label_file;

std::string line;

std::vectorlabels;

while (std::getline(rf, line))

labels.push_back(line);

auto top_scores_a = top_scores.accessor();

auto top_idxs_a = top_idxs.accessor();

for (int i = 0; i < 5; ++i) )

find_package(torch required)

add_executable(call call.cpp)

target_link_libraries(call "$" $)

set_property(target call property cxx_standard 11)

執行結果

C 呼叫tensorflow模型EAST識別文字

主要利用了emgucv這個opencv的c 庫,但是由於emgucv裡的nms只能計算rect不能計算rotaterect所以識別水平文字還行,傾斜的就不行了,如下 寫的不規範什麼的勿噴.如果有什麼問題請告訴我,互相提高嘛 using system using system.collections....

函式呼叫模型

c 編譯器會為每乙個應用程式建立乙個記憶體四區,主函式和被調函式公用一塊記憶體四區。main中可以在棧或者堆中分配記憶體,也可以在全域性區分配記憶體 所以,這些變數可以被fa 和fb 使用 因為main函式還沒執行完,不會被析構掉 堆char fb int num return p1 void ma...

c 呼叫pytorch的模型遇到的問題

最近學習基於pytorch框架下的行為識別演算法 eco 要將訓練好的模型在c 工程中用起來,需要走通c 呼叫pytorch的模型的路。在參考了官網的說明和網上已有的部落格,記錄下遇到的問題。1.網上別人已經寫好的 github和教程 2.官網的介面說明 遇到的問題 cmake時需要指明libtor...