鯨落于北 于 2021-08-23 14:20:56 發(fā)布 https://blog.csdn.net/weixin_42708301/article/details/119868531?spm=1001.2014.3001.5502( PaddleOCR學(xué)習(xí)(二)PaddleOCR檢測(cè)模型訓(xùn)練) 訂閱專(zhuān)欄 各種OCR算法試了一圈,還是PaddleOCR比較完善,集成度高,而且各種調(diào)試、測(cè)試、各種backbone的更改都要方便許多,非常的接地氣。網(wǎng)上也有許多paddleocr的相關(guān)教程,但是說(shuō)實(shí)話,有很多不清晰的地方,像我這樣接觸深度學(xué)習(xí)算法的新手,很多東西都搞不清楚,導(dǎo)致浪費(fèi)不少時(shí)間,趁著網(wǎng)絡(luò)在訓(xùn)練,我想做一份最最詳細(xì)的PaddleOCR算法新手教程,確保初次接觸深度學(xué)習(xí)的新手也能快速搞懂。 一、安裝PaddleOCR 首先去github下載:https://github.com/PaddlePaddle/PaddleOCR,然后找個(gè)文件夾解壓。 接下來(lái)需要配置PaddleOCR所需的環(huán)境,我是win10+anaconda,如果是linux的教程網(wǎng)上也很多,比win10簡(jiǎn)單多了,就不寫(xiě)了。 首先,推薦新建一個(gè)環(huán)境: conda create -n paddle38 python=3.8 1 接下來(lái),安裝PaddlePaddle,推薦使用清華源: pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 1 如果要使用gpu版的,安裝paddlepaddle-gpu: pip install paddlepaddle-gpu 1 然后是安裝shapely,但是需要先從https://www.lfd./~gohlke/pythonlibs/下載shapely安裝包Shapely?1.7.1?cp38?cp38?win_amd64.whl,將其復(fù)制到F:\Anaconda3\envs\paddle38\libs文件夾下(根據(jù)自己新建的環(huán)境的位置修改),然后在anaconda Prompt中,cd到該目錄下,執(zhí)行: pip install Shapely?1.7.1?cp38?cp38?win_amd64.whl 1 最后cd到剛才解壓的PaddleOCR文件夾中,執(zhí)行: pip install -r requirements.txt 1 至此,安裝就完成了,我用的是pycharm,記得到pycharm中,將PaddleOCR項(xiàng)目的環(huán)境改為paddle38。 PaddleOCR-develop文件夾目錄下應(yīng)該有以下文件: ![]()
這是我已經(jīng)安裝完的文件夾,里面有些文件夾是最初沒(méi)有的,比如demo、inference、pretrain_models、results、train_data等,這些后面會(huì)講,不影響。 二、試用官方的模型 完成PaddleOCR安裝之后,推薦先用官方模型對(duì)自己的數(shù)據(jù)進(jìn)行下測(cè)試看看效果,官方預(yù)訓(xùn)練模型的下載地址為: https://github.com/PaddlePaddle/PaddleOCR/blob/develop/README_ch.md ![]()
這里有必要解釋一下,推理模型相當(dāng)于訓(xùn)練完成的模型,直接拿來(lái)就可以進(jìn)行predict;而預(yù)訓(xùn)練模型屬于半成品,用于進(jìn)一步的訓(xùn)練,之后用自己的數(shù)據(jù)訓(xùn)練模型時(shí)需要用到預(yù)訓(xùn)練模型。所以這里應(yīng)該先下載推理模型。 如圖,我下載的是超輕量OCR模型,檢測(cè)、方向分類(lèi)、識(shí)別的推理模型我都下載了,在PaddleOCR目錄下新建一個(gè)inference文件夾,用于存放這些模型: ![]()
接下來(lái)就可以準(zhǔn)備開(kāi)始測(cè)試自己的圖片了,官方也給出了快速開(kāi)始的教程: https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/quickstart_en.md 可以使用如下命令進(jìn)行單張圖片的測(cè)試: 這里有兩種方法: (1)直接在paddle-develop文件夾目錄下打開(kāi)cmd,然后conda activate paddle38,在輸入以下指令; (2)在anaconda Prompt中先conda activate paddle38,再一路cd到paddle-develop文件夾下。 python tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/" --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True 有的網(wǎng)上教程前面是python3開(kāi)頭,不知道為什么,反正在我的環(huán)境里跑不起來(lái),甚至沒(méi)有任何報(bào)錯(cuò)反應(yīng)。 如果不想使用命令運(yùn)行,而是想在pycharm中使用run的話,需要在代碼中進(jìn)行修改,需要修改的代碼在PaddleOCR-develop/tools/infer文件夾下: ![]()
這里面,predict_det是檢測(cè)文本用的,predict_rec是識(shí)別文本用的,而predict_system是既檢測(cè)又識(shí)別。另外,這幾個(gè)預(yù)測(cè)文件共用一個(gè)參數(shù)配置文件utility.py,需要更改的參數(shù)如下: # 注意這些需要修改的參數(shù)在utility文件中不是連續(xù)的 # 是否使用gpu parser.add_argument("--use_gpu", type=str2bool, default=True) # 圖片位置(圖片位置相對(duì)于utility文件位置比較遙遠(yuǎn),也可以使用絕對(duì)路徑) parser.add_argument("--image_dir", type=str, default="../../demo/sample4.jpg") # 檢測(cè)模型路徑 parser.add_argument("--det_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_det_infer/") # 識(shí)別模型路徑 parser.add_argument("--rec_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_rec_infer") # 字典路徑(ic15_dict.txt是英文字典,ppocr_keys_v1.txt是中文字典,檢測(cè)一般不區(qū)分中英文,但是識(shí)別需要區(qū)分中英文) parser.add_argument( "--rec_char_dict_path", type=str, default="../../ppocr/utils/ic15_dict.txt") # 分類(lèi)模型 parser.add_argument("--cls_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_cls_infer") # 字體路徑 def draw_ocr_box_txt(image, boxes, txts, scores=None, drop_score=0.5, font_path="../../doc/simfang.ttf"): # 字體路徑 def text_visual(texts, scores, img_h=400, img_w=600, threshold=0., font_path="../../doc/simfang.ttf"): 修改完這些文件后,運(yùn)行predict_system文件,即可,輸出結(jié)果的位置在predict_system中修改: draw_img_save = "../../results" 1 這樣即可輸出到PaddleOCR-develop/results文件夾中。 同樣的,如果只進(jìn)行文本檢測(cè)(不識(shí)別),運(yùn)行predict_det,輸出結(jié)果同樣修改。 ————— ![]()
——————————— 版權(quán)聲明:本文為CSDN博主「鯨落于北」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/weixin_42708301/article/details/119864744 |
|
來(lái)自: hncdman > 《文字識(shí)別》