前言
- 由于本人水平有限,難免出現(xiàn)錯(cuò)漏,敬請(qǐng)批評(píng)改正。
- 更多精彩內(nèi)容,可點(diǎn)擊進(jìn)入YOLO系列專欄、自然語(yǔ)言處理
專欄或我的個(gè)人主頁(yè)查看- 基于DETR的人臉偽裝檢測(cè)
- YOLOv7訓(xùn)練自己的數(shù)據(jù)集(口罩檢測(cè))
- YOLOv8訓(xùn)練自己的數(shù)據(jù)集(足球檢測(cè))
- YOLOv5:TensorRT加速YOLOv5模型推理
- YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
- 玩轉(zhuǎn)Jetson Nano(五):TensorRT加速YOLOv5目標(biāo)檢測(cè)
- YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力機(jī)制
- YOLOv5:yolov5s.yaml配置文件解讀、增加小目標(biāo)檢測(cè)層
- Python將COCO格式實(shí)例分割數(shù)據(jù)集轉(zhuǎn)換為YOLO格式實(shí)例分割數(shù)據(jù)集
- YOLOv5:使用7.0版本訓(xùn)練自己的實(shí)例分割模型(車輛、行人、路標(biāo)、車道線等實(shí)例分割)
前提條件
- 熟悉Python
相關(guān)介紹
- Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。最初被設(shè)計(jì)用于編寫自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越多被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。
- PaddleOCR(全稱:Paddle Optical Character Recognition)是一個(gè)基于PaddlePaddle深度學(xué)習(xí)框架開發(fā)的開源OCR(光學(xué)字符識(shí)別)工具。OCR是一種技術(shù),用于將印刷體或手寫體的文本內(nèi)容轉(zhuǎn)換為可編輯的電子文本。PaddleOCR旨在通過深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)高精度的文本檢測(cè)、文本識(shí)別和版面分析等功能。
- PaddleOCR項(xiàng)目提供了一個(gè)端到端的OCR解決方案,涵蓋了以下主要功能:
- 文本檢測(cè)(Text Detection):識(shí)別圖像中的文本區(qū)域,通常以矩形邊界框表示。
- 文本識(shí)別(Text Recognition):對(duì)于檢測(cè)到的文本區(qū)域,進(jìn)一步識(shí)別其中的字符和單詞,將圖像中的文本內(nèi)容轉(zhuǎn)化為可編輯的文本。
- 版面分析(Layout Analysis):分析文檔的版面結(jié)構(gòu),包括段落、標(biāo)題、表格等,從而更好地理解文檔的組織結(jié)構(gòu)。
- PaddleOCR項(xiàng)目使用深度學(xué)習(xí)模型,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),來(lái)訓(xùn)練和優(yōu)化用于文本檢測(cè)和文本識(shí)別的模型。該項(xiàng)目的優(yōu)勢(shì)在于它能夠處理多種語(yǔ)言和不同領(lǐng)域的文本,同時(shí)提供了易于使用的API和命令行界面,使開發(fā)者能夠輕松地集成OCR技術(shù)到自己的應(yīng)用中。
- 總之,PaddleOCR是一個(gè)開源的、基于PaddlePaddle的OCR工具,旨在提供高精度的文本檢測(cè)、文本識(shí)別和版面分析功能,以滿足不同應(yīng)用領(lǐng)域?qū)CR技術(shù)的需求。
PaddleOCR
- 項(xiàng)目地址:https://github.com/PaddlePaddle/PaddleOCR.git
- PaddleOCR官方教程文檔:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/README_ch.md
- 注:PaddleOCR官方教程文檔寫得十分詳盡,有興趣者,可自行查閱。之所以寫這篇文章,是本人查閱完P(guān)addleOCR官方教程文檔后,對(duì)自己的項(xiàng)目需求,進(jìn)行快速應(yīng)用實(shí)現(xiàn)、部署的一次小記錄。本文旨在快速應(yīng)用實(shí)現(xiàn),不究原理,后續(xù)有空再寫。
環(huán)境要求
- paddleocr==2.7.0.0
- paddlepaddle==2.4.2
- paddleslim: 2.2.2
- shapely
- scikit-image
- imgaug
- pyclipper
- lmdb
- tqdm
- numpy
- visualdl
- rapidfuzz
- opencv-python<=4.6.0.66
- opencv-contrib-python<=4.6.0.66
- cython
- lxml
- premailer
- openpyxl
- attrdict
- PyMuPDF<1.21.0
- Pillow>=10.0.0
車牌檢測(cè)識(shí)別
準(zhǔn)備數(shù)據(jù)集
這里以公開CCPD2020車牌數(shù)據(jù)集作為主要數(shù)據(jù)集進(jìn)行訓(xùn)練,但此公開數(shù)據(jù)集并不是PaddleOCR所要求的數(shù)據(jù)集格式,所以需要轉(zhuǎn)化。
- 該數(shù)據(jù)集可以從這里下載 https://aistudio.baidu.com/aistudio/datasetdetail/101595
- PaddleOCR數(shù)據(jù)格式制作,后續(xù)有空再寫。詳細(xì)可查閱 PaddleOCR官方教程文檔:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/README_ch.md
車牌文本檢測(cè)
下載預(yù)訓(xùn)練模型
- 下載地址:https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_distill_train.tar
下載完成后,解壓放到PaddleOCR/models目錄下
微調(diào)、訓(xùn)練車牌檢測(cè)數(shù)據(jù)集
python tools/train.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.pretrained_model=models/ch_PP-OCRv3_det_distill_train/student.pdparams Global.save_model_dir=output/CCPD/det Global.eval_batch_step="[0, 772]" Optimizer.lr.name=Const Optimizer.lr.learning_rate=0.0005 Optimizer.lr.warmup_epoch=0 Train.dataset.data_dir=../../datasets/CCPD2020/ccpd_green Train.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/train/det.txt] Eval.dataset.data_dir=../../datasets/CCPD2020/ccpd_green Eval.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/test/det.txt]
評(píng)估訓(xùn)練好的模型
python tools/eval.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.pretrained_model=output/CCPD/det/best_accuracy.pdparams Eval.dataset.data_dir=../../datasets/CCPD2020/ccpd_green Eval.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/test/det.txt]
導(dǎo)出模型
python tools/export_model.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.pretrained_model=output/CCPD/det/best_accuracy.pdparams Global.save_inference_dir=output/det/infer
車牌文本識(shí)別
下載預(yù)訓(xùn)練模型
- 下載地址:https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_train.tar
下載完成后,解壓放到PaddleOCR/models目錄下
微調(diào)、訓(xùn)練車牌識(shí)別數(shù)據(jù)集
python tools/train.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml -o Global.pretrained_model=models/ch_PP-OCRv3_rec_train/student.pdparams Global.save_model_dir=output/CCPD/rec/ Global.eval_batch_step="[0, 90]" Optimizer.lr.name=Const Optimizer.lr.learning_rate=0.0005 Optimizer.lr.warmup_epoch=0 Train.dataset.data_dir=../../datasets/CCPD2020/PPOCR Train.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/train/rec.txt] Eval.dataset.data_dir=../../datasets/CCPD2020/PPOCR Eval.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/test/rec.txt]
評(píng)估訓(xùn)練好的模型
python tools/eval.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml -o Global.pretrained_model=output/CCPD/rec/best_accuracy.pdparams Eval.dataset.data_dir=../../datasets/CCPD2020/PPOCR Eval.dataset.label_file_list=[../../datasets/CCPD2020/PPOCR/test/rec.txt]
導(dǎo)出模型
python tools/export_model.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml -o Global.pretrained_model=output/CCPD/rec/best_accuracy.pdparams Global.save_inference_dir=output/CCPD/rec/infer
進(jìn)行預(yù)測(cè)
python tools/infer/predict_system.py --det_model_dir=output/CCPD/det/infer/ --rec_model_dir=output/CCPD/rec/infer/ --image_dir="test.jpg"
測(cè)試結(jié)果圖
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-647390.html
參考
[1] https://github.com/PaddlePaddle/PaddleOCR.git
[2] https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/README_ch.md
[3] https://github.com/detectRecog/CCPD文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-647390.html
- 由于本人水平有限,難免出現(xiàn)錯(cuò)漏,敬請(qǐng)批評(píng)改正。
- 更多精彩內(nèi)容,可點(diǎn)擊進(jìn)入YOLO系列專欄、自然語(yǔ)言處理
專欄或我的個(gè)人主頁(yè)查看- YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力機(jī)制
- YOLOv5:yolov5s.yaml配置文件解讀、增加小目標(biāo)檢測(cè)層
- YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
- YOLOv7訓(xùn)練自己的數(shù)據(jù)集(口罩檢測(cè))
- YOLOv8訓(xùn)練自己的數(shù)據(jù)集(足球檢測(cè))
- 玩轉(zhuǎn)Jetson Nano(五):TensorRT加速YOLOv5目標(biāo)檢測(cè)
- YOLOv5:使用7.0版本訓(xùn)練自己的實(shí)例分割模型(車輛、行人、路標(biāo)、車道線等實(shí)例分割)
- Python將COCO格式實(shí)例分割數(shù)據(jù)集轉(zhuǎn)換為YOLO格式實(shí)例分割數(shù)據(jù)集
- 基于DETR的人臉偽裝檢測(cè)
- 使用Kaggle GPU資源免費(fèi)體驗(yàn)Stable Diffusion開源項(xiàng)目
- YOLOv5:TensorRT加速YOLOv5模型推理
到了這里,關(guān)于基于PaddleOCR的車牌檢測(cè)識(shí)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!