PaddleOCR과 W&B로 여러분의 OCR 모델을 트레이닝 시키고 디버그하세요
Paddle OCR의 W&B 통합을 사용하여 모델 체크포인트와 함께 트레이닝 및 평가 메트릭을 추적하는 방법에 대한 간단한 튜토리얼
Created on June 3|Last edited on June 3
Comment
목차
PaddleOCR의 소개설정W&B SDK의 설치PaddleOCR 설치하기ICDAR2015 데이터 세트를 다운로드하는 방법은 무엇입니까?미리 트레이닝 된MobileNetV3 모델 다운로드모델 트레이닝트레이닝 및 검증 메트릭의 시각화트레이닝 메트릭시스템 메트릭유효성 검사 메트릭트레이닝 받은 모델의 다운로드와 사용추가사항: 주석이 달린 이미지를 W&B 대시보드에 기록하기결론관련된 작업
Run set
11
PaddleOCR의 소개
PaddleOCR은 사용자들이 더 나은 모델을 트레이닝하고 PaddlePaddle을 사용해 실질적으로 적용하는 것을 돕는 다국어, 선도적 그리고 실용적인 OCR 도구를 만드는 것을 목표로 합���다. 라이브러리의 W&B 통합을 통해 여러분이 적절한 메타데이터가 있는 체크포인트와 함께 트레이닝 도중 트레이닝 및 검증 세트의 메트릭을 추적할 수 있습니다.
또한PaddleOCR을 사용하여 작업 코드가 포함된 OCR 파이프라인의 텍스트 감지 모듈을 사용하는 놀라운 콜라브도 있습니다!
이 튜토리얼에서는ICDAR2015 데이터 세트에MobileNetV3 기초를 트레이닝 시킬 예정이며, 데이터 세트는 1,000개의 이미지가 포함된 트레이닝 세트와 웨어러블 카메라로 획득한 500개의 이미지가 포함된 테스트 세트를 내포하고 있습니다.
Run set
11
설정
W&B SDK의 설치
먼저 W&B 계정을 설치하고 로그인하겠습니다.
pip install wandbwandb login
PaddleOCR 설치하기
다음으로PaddlePaddle을 설치하겠습니다.
pip install paddlepaddle-gpu pyclipper attrdict -qqq
이 작업은 패키지 설치를 위한 PaddleOCR GitHub저장소 복제 다음으로 사전 구현된 모델을 트레이닝하기 위한 트레이닝 스크립트를 불러오는 작업 다음으로 실행됩니다.
git clone https://github.com/PaddlePaddle/PaddleOCRcd PaddleOCRpip install -e .
좋아요! 이제 W&B와PaddleOCR을 모두 사용할 수 있으니 데이터 세트를 설정하고 텍스트 탐지 모델을 트레이닝 시키는 단계로 넘어갈 수 있습니다.
ICDAR2015 데이터 세트를 다운로드하는 방법은 무엇입니까?
import wandbapi = wandb.Api()artifact = api.artifact("manan-goel/icdar2015/icdar2015-dataset:latest")artifact.download(root="./train_data/icdar2015")
미리 트레이닝 된MobileNetV3 모델 다운로드
이 튜토리얼의 경우 사전에 트레이닝이 된 MobileNetV3 모델을 텍스트 탐지 모델의 기반으로 사용할 것입니다. 이미지 모델의PaddlePaddle 라이브러리에서 모델 가중치를 가져올 것입니다.
wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams
모델 트레이닝
트레이닝 파이프라인에 대한 W&B를 사용하여 실험 추적을 자동으로 시작하기 위해선 후에 트레이닝 스크립트의 입력으로 사용할 수 있는 스니펫이 구성 yaml 파일에 추가될 수 있습니다.
wandb:project: CoolOCRentity: my_teamname: MyOCRModel
wandb.init에 대한 입력으로 사용되는 모든 인수는 yaml 파일의wandb 헤더 하에 추가될 수 있습니다. 이 튜토리얼의 실험에 사용되는 구성 파일은 여기에서 찾아보실 수 있습니다. 파일 하단에 위의 라인을 추가하면 W&B logger가 활성화됩니다.
이 yaml 파일을 사용하여 모델을 트레이닝 시키려면PaddleOCR 저장소에서 다음 명령을 사용하세요.
python tools/train.py -c configs/det/det_mv3_db.yml \-o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained
트레이닝 및 검증 메트릭의 시각화
마지막으로, 10개의 훈련 단계마다 평가 단계를 거쳐 5 에폭 동안 모델을 트레이닝 시킵니다.
트레이닝 메트릭
시스템 메트릭
또한 W&B는 모든 실행마자 GPU와 CPU 활용 시간을 자동으로 추적합니다!
유효성 검사 메트릭
트레이닝 받은 모델의 다운로드와 사용
체크포인트는 모든 에폭 말기와 모든 모델 저장 단계에서 해당 메타데이터 및 태그와 함께 W&B 아티팩트로 기록됩니다. 다음 스니펫을 사용하여 추가적인 트레이닝 및 평가 목적으로 다운로드할 수 있습니다.
import wandbartifact = wandb.Api().artifact('manan-goel/text_detection/model-2138qk4h:best', type='model')artifact_dir = artifact.download()
훈련된 모델을 텍스트 탐지에 사용하려면 Paddle OCR 보고서의 추론 스크립트를 사용할 수 있습니다.
!python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="./doc/imgs_en/" Global.pretrained_model="./artifacts/model-2138qk4h:v9/model_ckpt"
그러면 ./doc/imgs_en/ 폴더의 모든 이미지에 주석이 달리고 출력 폴더에 저장될 것입니다.
추가사항: 주석이 달린 이미지를 W&B 대시보드에 기록하기
트레이닝이 끝날 때 모델 성능을 시각화 하는 멋진 방법은 입력 및 출력 이미지를 기록하고 이를 W&B 대시보드에 기록하는 것입니다. 먼저, 새로운 W&B 실행을 초기화하고 이미지 경로를 불러오는 것 부터 시작해볼까요:
import wandbimport globwandb.init(project="text_detection")wandb.use_artifact('manan-goel/text_detection/model-2138qk4h:best')table = wandb.Table(columns=["Input Image", "Annotated Image"])inp_imgs = sorted(glob.glob("./doc/imgs_en/*.jpg"), key=lambda x: x.split("/")[-1])out_imgs = sorted(glob.glob("./output/det_db/det_results/*.jpg"), key=lambda x: x.split("/")[-1])
그 후, 이미지를 wandb 테이블에 추가하고 W&B에 기록합니다.
for inp in inp_imgs:for out in out_imgs:if out.split("/")[-1] != inp.split("/")[-1]:continuetable.add_data(wandb.Image(inp),wandb.Image(out))wandb.log({"Predictions": table})wandb.finish()
결론
이번 튜토리얼에서는PaddleOCR과 함께 W&B를 사용하여 OCR 모델 개발의 모든 니즈를 지원하는 방법에 대해 간략하게 설명해봤습니다. 실행 코드가 있는 이 보고서의 버전에 대한colab을 한 번 확인해주세요.
관련된 작업
Information Extraction from Scanned Receipts: Fine-tuning LayoutLM on SROIE
An OCR demo with LayoutLM fine-tuned for information extraction on receipts data.
Information Extraction From Documents Using Machine Learning
In this article, we'll extract information from templated documents like invoices, receipts, loan documents, bills, and purchase orders, using a model.
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.