opencv的文字檢測模組textdetectorcnn中使用了textboxes:具有單個深度神經網路的快速文字檢測器 鏈結位址為:
其中已經訓練過的檔案:
函式名內容
位址modelweightsfilename
描述分類器體系結構的prototxt檔案的相對或絕對路徑。
modelweightsfilename
包含caffe-binary形式的模型的預訓練權重的檔案的相對或絕對路徑。
textboxes_icdar13.caffemodel
cv::mat temp;
src.convertto(temp, cv_8uc3, 1);//src 輸入影象
cv::imshow("src", temp);
dst1 = temp.clone();
cv::ptrdetector= cv::text::textdetectorcnn::create("textbox.prototxt", "textboxes_icdar13.caffemodel");
std::vector < cv::rect > boxes;//識別區域
std::vector < float > sources;//評估分數
detector->detect(temp, boxes, sources);
float threshold = 0.5;
for (int i = 0; i < boxes.size(); i++)
}cv::imshow("text detection result", dst1);
原圖
結果
ocrholisticwordrecognizer類提供了分段詞語的功能。給定預定義的詞彙表,使用dictnet來選擇給定輸入影象的最可能的詞。
wordspotter = (cv::text::ocrholisticwordrecognizer::create("dictnet_vgg_deploy.prototxt", "dictnet_vgg.caffemodel", "dictnet_vgg_labels.txt"));
dst1 = src.clone();
for (size_t i = 0; i < textboxes.size(); i++)
cv::imshow("text recognition", dst1);
結果
與上方的卷積神經網路識別,存在識別不穩定的問題。
void textrecognize(int region_type,int grouping_algorithm)
// detect character groups
std::vector< std::vector> nm_region_groups;
textboxes.clear();
switch (grouping_algorithm)
/*text recognition (ocr)*/
int bottom_bar_height = src.rows / 7;
cv::copymakeborder(src, dst1, 0, bottom_bar_height, 0, 0, cv::border_constant, cv::scalar(150, 150, 150));
float scale_font = (float)(bottom_bar_height / 85.0);
std::vectordetections;//只有字型的
cv::mat temp;
src.convertto(temp, cv_8uc1, 1);
for (int i = 0; i < (int)textboxes.size(); i++)//字型的矩形數量
cv::imshow("text find", dst1);
std::vectoroutputs((int)detections.size());
std::vector< std::vector> boxes((int)detections.size());
std::vector< std::vector> words((int)detections.size());
std::vector< std::vector> confidences((int)detections.size());
float min_confidence1 = 0.f, min_confidence2 = 0.f;
min_confidence1 = 51.f;
min_confidence2 = 60.f;
// parallel process detections in batches of ocrs.size() (== num_ocrs)
for (int i = 0; i < (int)detections.size(); i = i + (int)num_ocrs)
showtext(outputs);
for (int i = 0; i < (int)detections.size(); i++)
}cv::imshow("result", dst1);
} void er_draw(std::vector&channels, std::vector> ®ions, std::vectorgroup, cv::mat& segmentation)
}} bool isrepetitive(const std::string& s)
if ((count > ((int)s.size() + 1) / 2) || (count2 == (int)s.size()) || (count3 > ((int)s.size() * 2) / 3))
return false;
}
原圖
文字定位圖
文字識別圖
opencv人臉識別,瞳孔檢測
include mainwindow.h include opencvcolordetector.h using namespace std using namespace cv cascadeclassifier face cascade,eyes cascade 該類沒有實現,只是在標頭檔案中有...
文字檢測與識別評價標準
多種文字檢測演算法效能對比及演算法介紹 evaluation protocols of icdar 2003 and 2005 定義m如下所示 其中area a b 即矩形a和b相交的面積 如圖中紅色部分 area a and b 代表the minimum bounding rectangle c...
文字識別 文字檢測資料集
1 chinese text in wild ctw 包含平面文字,凸起文字,城市文字,農村文字,低亮度文字,遠處文字,部分遮擋文字。影象大小2048 2048,資料集大小為31gb。8 1 1 比例訓練集 25887張影象,812872個漢字 測試集 3269張影象,103519個漢字 驗證集 3...