在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EAST模型結構

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-08-17 10:08 ? 次閱讀

EAST模型

EAST( An Efficient and Accurate Scene Text Detector)是標題的英文首字母縮寫,模型出自曠視科技。相比其他幾種場景文字檢測模型,表現開掛。在ICDAR 2015數據集上表現優異,見下圖:

88ab2dcc-1d6b-11ed-ba43-dac502259ad0.jpg

可以看到紅色點標記EAST模型的速度與性能超過之前的模型。EAST模型是一個全卷積神經網絡(FCN)它會預測每個像素是否是TEXT或者WORDS,對比之前的一些卷積神經網絡剔除了區域候選、文本格式化等操作,簡潔明了,后續操作只需要根據閾值進行過濾以及通過非最大抑制(NMS)得到最終的文本區域即可,EAST模型結構如下:

88c3c6e8-1d6b-11ed-ba43-dac502259ad0.jpg

其中stem網絡是一個基于ImageNet預訓練的卷積神經網絡(CNN)比如VGG-16,剩下的分別是通過卷積不斷降低尺度大小,再通過不同層的反卷積進行合并,這個有點像UNet圖像分割網絡,最后輸出層,通過1x1的卷積分別得到score、RBOX、QUAD,輸出參數的解釋如下:

88e71620-1d6b-11ed-ba43-dac502259ad0.jpg

OpenCV DNN使用

OpenCV4.0 的深度神經網絡(DNN)模塊能力大大加強,不僅支持常見的圖像分類、對象檢測、圖像分割網絡,還實現了自定義層與通用網絡模型支持,同時提供了非最大抑制相關API支持,使用起來十分方便。EAST模型的tensorflow代碼實現參見如下:

https://github.com/argman/EAST

下載預訓練模型,生成pb文件,OpenCV DNN中導入tensorflow模型的API如下:

Netcv::readNet(
constString&model,
constString&config="",
constString&framework=""
)
model表示模型路徑
config表示配置文件,缺省為空
framework表示框架,缺省為空,根據導入模型自己決定

OpenCV DNN已經實現非最大抑制算法,支持的API調用如下:

voidcv::NMSBoxes(
conststd::vector&bboxes,
conststd::vector&scores,
constfloatscore_threshold,
constfloatnms_threshold,
std::vector&indices,
constfloateta=1.f,
constinttop_k=0
)
Bboxes表示輸入的boxes
Score表示每個box得分
score_threshold表示score的閾值
nms_threshold表示非最大抑制閾值
indices表示輸出的結果,是每個box的索引index數組
eta表示自適應的閾值nms閾值方式
top_k表示前多少個,為0表示忽略

代碼實現

首先加載模型,然后打開攝像頭,完成實時檢測,C++的代碼如下:

#include>
#include

usingnamespacecv;
usingnamespacecv::dnn;

voiddecode(constMat&scores,constMat&geometry,floatscoreThresh,
std::vector&detections,std::vector&confidences);

intmain(intargc,char**argv)
{
floatconfThreshold=0.5;
floatnmsThreshold=0.4;
intinpWidth=320;
intinpHeight=320;
Stringmodel="D:/python/cv_demo/ocr_demo/frozen_east_text_detection.pb";

//Loadnetwork.
Netnet=readNet(model);

//Openacamerastream.
VideoCapturecap(0);

staticconststd::stringkWinName="EAST:AnEfficientandAccurateSceneTextDetector";
namedWindow(kWinName,WINDOW_AUTOSIZE);

std::vectorouts;
std::vectoroutNames(2);
outNames[0]="feature_fusion/Conv_7/Sigmoid";
outNames[1]="feature_fusion/concat_3";

Matframe,blob;
while(waitKey(1)>frame;
if(frame.empty())
{
waitKey();
break;
}

blobFromImage(frame,blob,1.0,Size(inpWidth,inpHeight),Scalar(123.68,116.78,103.94),true,false);
net.setInput(blob);
net.forward(outs,outNames);

Matscores=outs[0];
Matgeometry=outs[1];

//Decodepredictedboundingboxes.
std::vectorboxes;
std::vectorconfidences;
decode(scores,geometry,confThreshold,boxes,confidences);

//Applynon-maximumsuppressionprocedure.
std::vectorindices;
NMSBoxes(boxes,confidences,confThreshold,nmsThreshold,indices);

//Renderdetections.
Point2fratio((float)frame.cols/inpWidth,(float)frame.rows/inpHeight);
for(size_ti=0;ilayersTimes;
doublefreq=getTickFrequency()/1000;
doublet=net.getPerfProfile(layersTimes)/freq;
std::stringlabel=format("Inferencetime:%.2fms",t);
putText(frame,label,Point(0,15),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0,255,0));

imshow(kWinName,frame);
}
return0;
}

voiddecode(constMat&scores,constMat&geometry,floatscoreThresh,
std::vector&detections,std::vector&confidences)
{
detections.clear();
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]);

constintheight=scores.size[2];
constintwidth=scores.size[3];
for(inty=0;y(0,0,y);
constfloat*x0_data=geometry.ptr(0,0,y);
constfloat*x1_data=geometry.ptr(0,1,y);
constfloat*x2_data=geometry.ptr(0,2,y);
constfloat*x3_data=geometry.ptr(0,3,y);
constfloat*anglesData=geometry.ptr(0,4,y);
for(intx=0;x

python的代碼實現如下:

if__name__=="__main__":
text_detector=TextAreaDetector("D:/python/cv_demo/ocr_demo/frozen_east_text_detection.pb")
frame=cv.imread("D:/txt.png")
start=time.time()
text_detector.detect(frame)
end=time.time()
print("[INFO]textdetectiontook{:.4f}seconds".format(end-start))
#showtheoutputimage
cv.imshow("TextDetection",frame)
cv.waitKey(0)
cap=cv.VideoCapture(0)
whileTrue:
ret,frame=cap.read()
ifretisnotTrue:
break
text_detector.detect(frame)
cv.imshow("easttextdetectdemo",frame)
c=cv.waitKey(5)
ifc==27:
break
cv.destroyAllWindows()

運行結果

圖書封面 – 圖像檢測

89054e7e-1d6b-11ed-ba43-dac502259ad0.jpg

視頻場景中文字檢測

手寫文本檢測

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4796

    瀏覽量

    102196
  • EAST
    +關注

    關注

    0

    文章

    22

    瀏覽量

    9628
  • 網絡模型
    +關注

    關注

    0

    文章

    44

    瀏覽量

    8655

原文標題:OpenCV4.x的EAST場景文字檢測

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PROFIBUS協議結構及協議模型與ISO/OSI協議模型的關系

    PROFIBUS協議模型與ISO/OSI協議模型的關系  PROFIBUS協議結構
    發表于 11-17 10:33

    結構光成像模型是如何建立的

    【理解】線結構光成像模型
    發表于 06-09 16:48

    如何對雙母線結構模型進行仿真

    怎樣去搭建一種電力電子仿真模型?如何對雙母線結構模型進行仿真?
    發表于 09-24 10:28

    EAST技術診斷系統監控子系統分析和設計

    EAST是為科學研究建造的全超導核聚變實驗裝置。根據EAST的實驗特點和性能要求,技術診斷系統數據監控子系統采用管理層、控制層和現場設備層3 層網絡結構完成對裝置的監控,通
    發表于 04-21 08:59 ?9次下載

    DCS 在EAST 低溫系統中的設計與應用The Desig

    本文介紹了DCS 在EAST 低溫系統中的設計與應用,特別對系統的工藝設計、硬件結構和軟件設計作了詳細介紹。關鍵詞:集散控制系統;EAST;低溫系統;組態軟件 Abstract
    發表于 05-25 11:50 ?20次下載

    小型分布式定時觸發系統在EAST中的應用

    EAST 裝置是一種利用磁場來約束等離子體的受控熱核聚變物理實驗裝置。分布式定時觸發系統是EAST 裝置總控系統的重要組成部分之一,用來為各子系統提供精確的觸發時刻和為數
    發表于 07-07 14:05 ?13次下載

    基于PLC與WINCC的EAST快控電源遠控網絡設計

    EAST快控電源是國家“九五”大科學工程EAST非圓截面大型超導托卡馬克裝置的子系統。為了便于EAST快控電源以及控制系統中的多臺微機及UPS的統一控制,并針對快控電源控制邏輯對
    發表于 07-20 15:28 ?11次下載

    UMTS的物理結構模型

    UMTS的物理結構模型
    發表于 09-18 15:13 ?1431次閱讀

    MPOA的模型結構,MPOA的模型結構是什么?

    MPOA的模型結構,MPOA的模型結構是什么? (1)基本組成 MPOA采用了LANE、NHRP、交換路由器(Switched Router)三種互補的
    發表于 04-07 13:27 ?593次閱讀

    EAST快控電源遠程監控系統的實現_管子平

    EAST快控電源遠程監控系統的實現_管子平
    發表于 03-19 11:26 ?0次下載

    基于富因特網應用的EAST數據采集管理系統_楊育

    基于富因特網應用的EAST數據采集管理系統_楊育
    發表于 03-17 09:42 ?0次下載

    利用符合AUTOSAR的架構描述語言EAST-ADL2開發汽車產品

    ATESST計劃 (www.atesst.org)升級至EAST-ADL2。 本文展示了由EAST-ADL2領域模型帶來的語言擴展的結
    發表于 11-30 11:07 ?0次下載

    基于AUTOSAR的架構描述語言EAST-ADL2開發汽車產品

    ATESST計劃 (www.atesst.org)升級至EAST-ADL2。 本文展示了由EAST-ADL2領域模型帶來的語言擴展的結果
    發表于 12-01 11:43 ?27次下載

    golang的調度模型-GPM 模型的源碼結構

    【導讀】GMP 模型是讓 go 語言輕量快速高效的重要調度模型,本文從 GMP 源碼出發直觀地解析了這一模型。 這篇文章就來看看 golang 的調度模型-GPM
    的頭像 發表于 07-06 11:55 ?2352次閱讀

    手工優化ncnn模型結構

    本文模型結構使用 netron visualizer 截圖展示,支持 onnx 和 ncnn 模型的可視化
    發表于 01-26 18:48 ?0次下載
    手工優化ncnn<b class='flag-5'>模型</b><b class='flag-5'>結構</b>
    主站蜘蛛池模板: 成熟女人免费一级毛片 | 日本www色 | 国产精品视频久久久 | 四虎影院永久免费观看 | 人人澡人人澡人人看青草 | 1024手机在线看永久免费 | 77788色淫网站女女免费视频 | 免费二级c片观看 | 色爱综合网欧美 | 欧美系列在线观看 | 久久人人爽爽爽人久久久 | 婷婷开心激情网 | 99久久国产免费福利 | 欧美全免费aaaaaa特黄在线 | 久久亚洲成人 | 天天做天天爱天天爽综合区 | 韩国三级中文字幕hd | 黄 色 免 费 网站在线观看 | 色综合色综合色综合色综合 | 91精品日本久久久久久牛牛 | 日本大片免费观看视频 | 午夜免费观看福利片一区二区三区 | 狠狠狠色丁香婷婷综合久久五月 | 女人十六毛片 | 日韩第二页 | 91福利专区 | 开心激情五月网 | 天天干天天爽天天操 | 欧美午夜视频一区二区 | 色婷婷综合在线视频最新 | 又粗又大又爽又色又过瘾视频 | 美女黄页在线观看 | 91大神视频网站 | 国模私拍大尺度视频在线播放 | 四虎影院2022 | 手机午夜视频 | 一级毛片免费不卡在线视频 | 欧美精品黑人性xxxx | 欧美黄色免费 | 2021天天干 | 波多野结衣一级特黄毛片 |