fpga实战训练精粹pdf_tensorflow版PSENet 文本检测模型训练和测试
向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)???
機(jī)器學(xué)習(xí)AI算法工程?? 公眾號(hào):datayx
psenet核心是為了解決基于分割的算法不能區(qū)分相鄰文本的問(wèn)題,以及對(duì)任意形狀文本的檢測(cè)問(wèn)題。
psenet依然采用基于分割的方式,但是對(duì)文本行不同核大小做預(yù)測(cè),然后采用漸進(jìn)式擴(kuò)展算法擴(kuò)展小尺度kernel到最終的文本行大小。因?yàn)樵谛〕叨萲ernel之間存在比較大的margin,因此能夠很好的區(qū)分相鄰的文本行。最終結(jié)果在icdar2015和icdar2017都取得了sota的效果,而其最大的亮點(diǎn)是在SCUT-CTW1500彎曲文本數(shù)據(jù)集上取得了超過(guò)先前最好算法6.37%的結(jié)果。
從上圖(b)中可以看出基于回歸的方式不能對(duì)彎曲文本做出很好的定位,而從(c)中可以看出基于語(yǔ)義分割的方式雖然可以定位彎曲文本,但是不容易將相鄰的文本區(qū)分開(kāi)來(lái)。而(d)中采用本文提出的漸進(jìn)式擴(kuò)展算法能夠較好的定位彎曲文本,并且能將不同文本實(shí)例區(qū)分開(kāi)來(lái)。
其具體采用的方式是首先預(yù)測(cè)每個(gè)文本行的不同kernels,這些kernels和原始文本行具有同樣的形狀,并且中心和原始文本行相同,但是在尺度上是逐漸遞增的,最大的kernel就是原始文本行大小。之后對(duì)這些kernels采用bfs算法,首先從最小scale的kernel開(kāi)始,逐步對(duì)它進(jìn)行擴(kuò)增到更大的kernel,最終擴(kuò)增到原始文本行大小。而之所以這種方式能夠區(qū)分文本行邊緣像素,是因?yàn)閷?duì)于最小scale的kernel,不同文本行是完全分離開(kāi)的,而在逐漸擴(kuò)展的過(guò)程中是受上一級(jí)kernel監(jiān)督的,因此即使擴(kuò)增到原始文本行大小也能夠?qū)⑦吘壪袼貐^(qū)分開(kāi)來(lái)。網(wǎng)絡(luò)結(jié)構(gòu):文章使用在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的Resnet+fpn作為特征提取的網(wǎng)絡(luò)結(jié)構(gòu)
首先將高層特征和低層特征融合后得到(P2, P3, P4, P5)四個(gè)特征層,其中每個(gè)特征層的channel數(shù)量為256。之后將四個(gè)特種層concat得到F, 其中F=C(P2,P3,P4,P5) = P2 || Upx2(P3) || Upx4(P4) || Upx8(P5),其中的||就代表concat。x2,x4,x8分別代表2倍、4倍和8倍的上采樣。將F送入Conv(3,3)-BN-ReLU層,并將特征層的channel數(shù)量變?yōu)?56。之后再將F送入多個(gè)Conv(1,1)-Up-Sigmod層來(lái)得到n個(gè)分割結(jié)果S1,S2,...Sn,其中的Up代表上采樣。漸進(jìn)式擴(kuò)展算法:漸進(jìn)式擴(kuò)展算法核心思想就是Breadth-First-Search(BFS),這里我們拿3個(gè)分割結(jié)果S={S1,S2,S3}來(lái)舉例。
其中S1(上圖a)代表最小核的分割結(jié)果,它內(nèi)部有四個(gè)連通區(qū)域C={c1,c2,c3,c4}。圖b將這四個(gè)連通區(qū)域使用不同顏色標(biāo)記。之后我們逐步判斷和C相鄰的像素是否在S2中,如果在,則將其合并到圖b中,從而得到合并后的結(jié)果圖c。S3同理,最終我們抽取圖d中不同顏色標(biāo)注的連通區(qū)域作為最后的文本行檢測(cè)結(jié)果。
漸進(jìn)式擴(kuò)展算法的偽代碼見(jiàn)下圖:
其中T、P代表中間結(jié)果,Q是一個(gè)隊(duì)列,Neighbor(.)代表p的相鄰像素。GroupByLabel(.)代表根據(jù)label對(duì)中間結(jié)果T進(jìn)行合并。需要注意的是對(duì)于相鄰連通區(qū)域,在邊緣處合并時(shí)會(huì)產(chǎn)生沖突,因此采用先f(wàn)irst-come-first-served的原則,將會(huì)產(chǎn)生沖突的像素只合并到一個(gè)kernel中去。
標(biāo)簽生成:
為了生成訓(xùn)練時(shí)不同尺寸kernels所對(duì)應(yīng)的ground truths,作者采用Vatti clipping algorithm將原始多邊形pn縮放di個(gè)像素從而得到pi,其中每個(gè)縮放的pi都使用0/1的二進(jìn)制mask來(lái)表示分割后的標(biāo)簽的。
其中m代表最小的縮放比例,值的范圍為(0,1]。因此可以看出ri由超參數(shù)n和m來(lái)決定,當(dāng)i=1時(shí),r1為m,當(dāng)i=n時(shí),rn為1,因此ri的取值范圍為[m,1]。
作者也分別將n和m取不同參數(shù)在icdar2015數(shù)據(jù)集上做了實(shí)驗(yàn),如下圖所示:
固定m=0.5,n從2增加到10,從上圖(a)中可以看出當(dāng)n超過(guò)6以后fscore值基本不再增長(zhǎng)。可以得出多核結(jié)構(gòu)是有效的,但也不需要過(guò)多的kernels。
固定n=6,m從0.1增加到0.9,從上圖(b)中可以看出m過(guò)大和過(guò)小都會(huì)掉點(diǎn)。當(dāng)m過(guò)大時(shí),psenet很難區(qū)分挨得很近的文本實(shí)例,而當(dāng)m過(guò)小時(shí),psenet可能會(huì)把一個(gè)文本行分成不同部分,從而造成訓(xùn)練不同很好的收斂。
tensorflow版 PSENet訓(xùn)練和測(cè)試
項(xiàng)目相關(guān)代碼 和預(yù)訓(xùn)練模型獲取:
關(guān)注微信公眾號(hào) datayx ?然后回復(fù)??pse? 即可獲取。
AI項(xiàng)目體驗(yàn)地址 https://loveai.tech
根據(jù)測(cè)試命令
python eval.py
--test_data_path=./tmp/images/
--gpu_list=0
--checkpoint_path=./resnet_v1_50/
--output_dir=./tmp/
在項(xiàng)目根目錄下創(chuàng)建文件夾tmp,resnet_v1_50,在tmp下創(chuàng)建images文件夾,測(cè)試圖片放在該文件夾下。
運(yùn)行測(cè)試命令,根據(jù)提示缺啥包裝啥包,因?yàn)槲业沫h(huán)境是python3.6,作者用的是python2.7(雖然作者說(shuō)python2和python3都可以),還是會(huì)報(bào)一些錯(cuò),進(jìn)行如下修改:
1.1 utils_tool.py 12行:
import queue改成:
eval.py 228行:
xrange改成range
2.g++版本不夠的話,pse是不能編譯。我是4.8版本的,所以要升級(jí)一下。同時(shí),用python3的話,把pse/Makefile文件中的,
第一行:$(shell python-config --cflags)改成$(shell python3-config --cflags)
第二行:$(shell python-config --ldflags)改成$(shell python3-config --ldflags)
不要去下載源碼編譯,很浪費(fèi)時(shí)間。
https://www.jianshu.com/p/a54c882ac513通過(guò)這個(gè)blog去升級(jí)就行。
3.model下載下來(lái)之后沒(méi)有checkpoint這個(gè)文件,自己新建一個(gè):
模型解壓后的三個(gè)文件放在resnet_v1_50文件夾下
eval.py第172行
model_path = os.path.join(FLAGS.checkpoint_path, os.path.basename(ckpt_state.model_checkpoint_path))
直接換成
model_path = "./resnet_v1_50/model.ckpt"4.數(shù)據(jù)集下下來(lái),放在data/icdar2015下面即可(自己創(chuàng)建這個(gè)文件夾)
閱讀過(guò)本文的人還看了以下文章:
【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
特征提取與圖像處理(第二版).pdf
python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語(yǔ)言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼
《深度學(xué)習(xí)之pytorch》pdf+附書源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開(kāi)源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開(kāi)源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別
yolo3 檢測(cè)出圖像中的不規(guī)則漢字
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過(guò)不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目
特征工程(一)
特征工程(二) :文本數(shù)據(jù)的展開(kāi)、過(guò)濾和分塊
特征工程(三):特征縮放,從詞袋到 TF-IDF
特征工程(四): 類別特征
特征工程(五): PCA 降維
特征工程(六): 非線性特征提取和模型堆疊
特征工程(七):圖像特征提取和深度學(xué)習(xí)
如何利用全新的決策樹(shù)集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
螞蟻金服2018秋招-算法工程師(共四面)通過(guò)
全球AI挑戰(zhàn)-場(chǎng)景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站
中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
?搜索公眾號(hào)添加:?datayx??
QQ群?
333972581
總結(jié)
以上是生活随笔為你收集整理的fpga实战训练精粹pdf_tensorflow版PSENet 文本检测模型训练和测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ftp 上传文件夹_ftp工具哪个好?V
- 下一篇: python画散点图程序实例_【112】