資料集: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...