《towards accurate scene text recognition with semantic reasoning networks》
paddlepaddle ocr
特徵提取部分:resnet50+fpn
這時候輸出的特徵是[b,t,c](t = imgh/8 * imgw/8)
這時候,每個特徵值乘以 根號下512 ,並加上位置資訊的特徵。
encoder_word_pos [[[0],[1],[2],…[t-1]]]經過乙個embedding層轉換為位置資訊特徵。
輸入兩層的transformer堆疊,8頭注意力,d_key = 512/8, 最後輸出仍舊是512。
這時候得到的是word_features為[b,t,c]
dim2維度上全連線,c到c,然後expand維度1到max_length,得到[b,max_length,t,c](相當於複製max_length份)
gsrm_word_pos[[[0],[1], …, [max_length-1]]]通過embedding層獲得gsrm_pos_embedding,此時的gsrm_pos_embedding是[b,max_length,c],expand dim_2到t,得到[b,max_length,t,c]。
gsrm_pos_embedding加上word_features之後經過tanh計畫函式得到temp,temp通過全連線將將dim_3從c降到1,之後取出dim_3後做softmax獲得attention值。
attention[b,max_lenght,t] dot product wordfeatures[b,t,c]之後得到pvam_features [b,max_length,c],這對這個特徵,左慈全連線到字元個數,之後做softmax,argmax就可以進行字元的判斷。
word_ids [b,max_length,1] ,在dim1的維度上pad 乙個 idx(這個idx相當於是乙個起始符),這時候word_ids是[b,max_length+1,1]。
這裡假設word_ids 是 [[[s], [1], [2], …,[n-1],[n]]], 那麼word_1就是 [[[s], [1], [2], …,[n-1]]],word_2是[[[1], [2], …,[n-1],[n]]]。
之後二者分別過embedding層之後輸入四層的transformer中,注意這裡分別有兩個mask。word 1 的mask 保證字元從先往後計算self attention的時候,attention的權重只有自己和自己之前的。就是說保證字元只能看到自己和自己之前的。word_2的mask就相當於是反向的,第乙個字元就能看到所有的字元。
word_1 的 mask為[[0,-10^9, -10^9, -10^9], [0,0,-10^9, -10^9], [0,0,0,-10^9], [0,0,0,0]],word_2的mask就是為[[0,0,0,0],[0,0,0,-10^9], [0,0, -10^9, -10^9], [0,-10^9, -10^9, -10^9]], qk計算權值之後,mask掉的部分就加上-10^9,這樣後面計算softmax 的時候,就相當於不計算mask掉的部分。
二者通過四層transformer之後,gsrm_feature_2會在最後的位置補零,選擇[1:],獲得的特徵就是字元2 到最後乙個字元加上乙個結尾符。
gsrm_feature_1 [b,max_length,c] + gsrm_feature_2 [b,max_length,c] 得到gsrm_feature,根據這個feature來**字元。相當於起始符和第二個字元的embedding相加來**第乙個字元,結束符和倒數第二個字元的特徵來**最後乙個字元。
gsrm_feature 和 pvam_feature在維度2concat起來,dim2全連線恢復到c。使用sigmoid計算出attention_map,之後這個attention_map*pvam_faatures + (1-attention_map)*gsrm_features得到vsfd_out
pvam_loss+vsfd_loss*2+gsrm_loss*0.15
網路 socket 訪問百度
import viewcontroller.h import 沒注釋 import import inte ce viewcontroller property weak,nonatomic iboutlet uitextfield ipadress property weak,nonatomic ...
百度EdgeBoard設定網路
先檢視系列型別 lsb release d 發現系統型別是petallinux,是xilinx公司推出的嵌入式linux開發工具,專門針對xilinx公司的fpga soc晶元和開發板,參考資料較少。還是直接按照普通linux系統進行配置。具體配置步驟 檢視目前的網路配置 ifconfig 輸出結果...
儲存結構(百度百科)
資料元素之間的關係有兩種不同的表示方法 順序映象和非順序映象,並由此得到兩種不同的儲存結構 順序儲存結構和鏈式儲存結構。資料的儲存結構是指資料的邏輯結構在計算機中的表示。順序儲存方法它是把邏輯上相鄰的結點儲存在物理位置相鄰的 儲存單元裡,結點間的邏輯關係由儲存單元的鄰接關係來體現,由此得到的儲存表示...