一.算法理解
此處省略1萬字。。。。。。。。。。。。。。
二.訓練及源碼理解
配置以下3步:
在utils文件夾和utils\bbox文件夾下創建__init__.py文件
在utils\bbox文件夾下執行python setup.py install
將.pyd文件拷貝到utils\bbox文件夾下
- 數據介紹:檢測圖片當中的手寫體區域,圖片不多自己標注了385張,但是圖片中的手寫體區域大約幾千個,后面訓練Faster Rcnn也有用到。
- 數據格式:首先我是用精靈標注手寫體區域存在json文件中,josn解析提取圖片名和標簽坐標存在txt中,格式:768,1622,1124,1622,1124,1750,768,1750,chinese,###。
- 總共4個角8個坐標,還有一個標簽,全部用的chinese,然后用split_label.py將數據拆分成一個個小框,格式:188,399,191,430只有左上角和右下角坐標。將數據image文件夾和label文件夾(拆分后的數據標簽)存放在mlt文件夾里即可。
- main/trian.py即可訓練核心代碼:
bbox_pred, cls_pred, cls_prob = model.model(input_image) 生成預測框,類別得分和概率
lstm_output = Bilstm(rpn_conv, 512, 128, 512, scope_name='BiLSTM') 雙層LSTM,考慮前后特征的聯系
bbox_pred = lstm_fc(lstm_output, 512, 10 * 4, scope_name="bbox_pred")
cls_pred = lstm_fc(lstm_output, 512, 10 * 2, scope_name="cls_pred") 全連接分類得分和候選框預測total_loss, model_loss, rpn_cross_entropy, rpn_loss_box = model.loss(bbox_pred, cls_pred, input_bbox,
input_im_info) 模型的各種損失,交叉熵損失,rpn損失 - demo.py進行預測,包括小框合並,預測結果展示如下