C 呼叫tensorflow模型EAST識別文字

2021-09-25 07:37:24 字數 1671 閱讀 3292

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

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.io;

using system.drawing;

using emgu;

using emgu.cv;

using emgu.util;

using emgu.cv.structure;

using emgu.cv.dnn;

using emgu.cv.util;

namespace emgucv_east

else

cvinvoke.imshow("result", frame);

}cvinvoke.waitkey();

}//decode

}public class decode

//cv_assert(scores.dims == 4); cv_assert(geometry.dims == 4); cv_assert(scores.size[0] == 1);

//cv_assert(geometry.size[0] == 1); cv_assert(scores.size[1] == 1); cv_assert(geometry.size[1] == 5);

//cv_assert(scores.size[2] == geometry.size[2]); cv_assert(scores.size[3] == geometry.size[3]);

cvexception.equals(scores.dims, 4);

cvexception.equals(geometry.dims, 4);

var s =scores.sizeofdimension;

var sdata = scores.getdata();

//var x = sdata.getvalue(0,0,0,0);

var gdata = geometry.getdata();

//var y = sdata.getvalue(0, 0, 0, 0);

listt_detections = new list();

listt_confidences = new list();

listr_detections = new list();

for (int y = 0; y < s[2]; ++y)

{for (int x = 0; x < s[3]; x++)

{float score = (float)sdata.getvalue(0, 0, y, x);

if (score思路和c++版本一樣,只是有些資料型別什麼的比較不一樣,稍微麻煩點,最後識別效果

nms的問題只能自己手寫了。。。。

c 呼叫Tensorflow模組

最近在搞kinect人體骨架識別的研究,因為姿勢識別要用到深度學習方面的東西,而現在比較流行的深度學習框架是tensorflow,對python支援的相當好,我的專案是用c 寫的,難免這兩種語言做互動,接下來我就c 如何調python做一下總結。一,建乙個win32控制台專案c tensorflow...

c 呼叫tensorflow的例子

乙個很簡單的例子,使用c 呼叫tensorflow。首先需要安裝windows 版本的tensowflow,使用64位的python3.5,如果沒有安裝,需要首先安裝python3.5 然後以管理員方式進入命令列,執行 pip install tensorflow starcorefactory s...

onnx模型轉tensorflow模型

onnx是開源神經網路交換平台,有了它基本上不用糾結用什麼深度學習框架的問題了。我現在記錄一下怎麼將onnx模型轉換成tensorflow模型。1 安裝tensorflow和onnx 我是通過anaconda安裝的。詳情 這個部落格記載了安裝anaconda和onnx的詳情,安裝好anaconda後...