天天看點

通用場景OCR文本識别任務-baseline學習(PaddleOCR)一、安裝環境和下載下傳資料集二、訓練模型三、預測結果四、其他連結:

通用場景OCR文本識别任務-baseline學習(PaddleOCR)

  • 一、安裝環境和下載下傳資料集
  • 二、訓練模型
  • 三、預測結果
  • 四、其他連結:

baseline位址

“英特爾創新大師杯”深度學習挑戰賽 賽道1:通用場景OCR文本識别任務 比賽位址

一、安裝環境和下載下傳資料集

1.首先要安裝相應的cuda和cudnn這就不多說了,比如我的是cuda10.2和它對應的cudnn

2.從官網安裝paddlepaddle-gpu, 連結

3.将代碼clone到本地,并進入該目錄

git clone https://gitee.com/coggle/tianchi-intel-PaddleOCR
cd tianchi-intel-PaddleOCR
           

4.下載下傳訓練圖檔和測試圖檔

python down_image.py
           

5.下載下傳預測模型

mkdir inference && cd inference/

# 下載下傳模型
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar

# 解壓模型
tar -xf ch_ppocr_server_v2.0_rec_infer.tar 
tar -xf ch_ppocr_server_v2.0_det_infer.tar
tar -xf ch_ppocr_mobile_v2.0_cls_infer.tar
           

6.嘗試預測模型去預測一張圖檔

在tianchi-intel-PaddleOCR目錄下

7.運作推理檔案如果發生報錯 缺少geos_c.dll

可以參考此連結

8.繼續運作推理檔案果又發生報錯

Segmentation fault
           

9.檢查paddlepaddle-gpu安裝是否正确

import paddle.fluid
paddle.fluid.install_check.run_check()
           

如果安裝正确會出現字樣,

>>> paddle.fluid.install_check.run_check()
Running Verify Fluid Program ...
W0710 09:57:15.796396 13492 device_context.cc:404] Please NOT
E: device: 0, GPU Compute Capability: 7.5, Driver API Version
: 11.2, Runtime API Version: 10.2
W0710 09:57:15.811870 13492 device_context.cc:422] device: 0,
 cuDNN Version: 7.6.
Your Paddle Fluid works well on SINGLE GPU or CPU.
Your Paddle Fluid works well on MUTIPLE GPU or CPU.
Your Paddle Fluid is installed successfully! Let's start deep
 Learning with Paddle Fluid now

           

否則比如這種

RuntimeError: (PreconditionNotMet) The third-party dynamic li
brary (cudnn64_7.dll) that Paddle depends on is not configure
d correctly. (error code is 126)
  Suggestions:
  1. Check if the third-party dynamic library (e.g. CUDA, CUD
NN) is installed correctly and its version is matched with pa
ddlepaddle you installed.
les as follows:
  - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...
`
\Paddle_release3\paddle\fluid\platform\dynload\dynamic_loader
.cc:265)

           

缺少cudnn64_7.dll檔案

根據這個連結可以解決

10.再次運作推理

可以發現運作成功了

[2021/07/10 09:57:40] root INFO: dt_boxes num : 2, elapse : 1
.4339828491210938
[2021/07/10 09:57:40] root INFO: cls num  : 2, elapse : 0.007
935762405395508
[2021/07/10 09:57:40] root INFO: rec_res num  : 2, elapse : 0
.037322998046875
[2021/07/10 09:57:40] root INFO: Predict time of ./1.jpg: 1.5
02s
[2021/07/10 09:57:40] root INFO: 土地整治與土壤修複研究中心,
0.973
[2021/07/10 09:57:40] root INFO: 華南農業大學-東圖, 0.992
[2021/07/10 09:57:40] root INFO: The visualized image saved i
n ./inference_results/1.jpg

           

在目錄inference_results中可以看到預測的結果

二、訓練模型

1.下載下傳預訓練模型

為配置檔案ch_det_res18_db_v2.0.yml的預訓練模型, 進行下載下傳和解壓

cd inference
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar
tar -xf ch_ppocr_server_v2.0_det_train.tar
           

2.訓練預訓練模型

發現卡在這邊不會動了

[2021/07/10 12:15:37] root INFO: During the training process,
after the 100th iteration, an evaluation is run every 1000 ite
rations
[2021/07/10 12:15:37] root INFO: Initialize indexs of datasets
:['./train_data/tianchi/train_list.txt']
Segmentation fault

           

于是在https://github.com/PaddlePaddle/PaddleOCR/issues/2184上找到了解決的辦法,就是修改

num worker

改為0,

batch_size_per_card

也就是batch size改小點。

将目錄下

...\tianchi-intel-PaddleOCR\configs\det\ch_ppocr_v2.0

ch_det_res18_db_v2.0.yml

複制一份為

my_ch_det_res18_db_v2.0.yml

如下圖

通用場景OCR文本識别任務-baseline學習(PaddleOCR)一、安裝環境和下載下傳資料集二、訓練模型三、預測結果四、其他連結:

打開新複制的yml檔案

注意是修改Train:下面的num_workers和batch_size_per_card(批次)

通用場景OCR文本識别任務-baseline學習(PaddleOCR)一、安裝環境和下載下傳資料集二、訓練模型三、預測結果四、其他連結:

将num_workers設定為0

batch_size_per_card設定為比較小的值(比如我這設定了2)

還可以将save_epoch_step設定為1,代表每一周期訓練結束都會儲存一下模型

再次訓練的時候配置檔案改成

my_ch_det_res18_db_v2.0.yml

出現下圖這樣就是已經開始在訓練了

通用場景OCR文本識别任務-baseline學習(PaddleOCR)一、安裝環境和下載下傳資料集二、訓練模型三、預測結果四、其他連結:

三、預測結果

對測試集進行預測

1.将模型導出

python tools/export_model.py -c configs/det/ch_ppocr_v2.0/my_ch_det_res18_db_v2.0.yml -o Global.pretrained_model=output/ch_db_res18/latest  Global.save_inference_dir=output/ch_db_res18/


           

2.對測試集進行預測

python tools/infer/predict_system_tianchi.py  --det_model_dir="output/ch_db_res18/"  --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir='./inference/ch_ppocr_mobile_v2.0_cls_infer/' --use_angle_cls=True --use_space_char=True

           

3.将結果檔案壓縮

将submit.zip送出至天池即可,可以拿到62分左右.

四、其他連結:

飛槳AI Studio 有供應GPU使用,但是隻能使用Paddle架構

飛槳paddlepaddle官網

繼續閱讀