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