Search
🔵

bc3__4. [info] title: MMOCR 에서 제공하는 recognition 모델을 커스텀 데이터로 학습하기

생성
🚀 prev note
🚀 next note
♻️ next note
14 more properties
전체 목차(from1).

들어가며

MMOCR 은 OCR 문제에서 문자 영역을 검출하는 text detection 과 검출된 영역에서 문자를 읽어내는 text recognition 을 각각 다른 모델로 다루는 프레임워크입니다(from1). 앞선 튜토리얼(from2)에서는 MMOCR 에서 제공하는 모델을 커스텀 detection 모델로 학습할 수 있도록 config 파일을 구성하는 방법을 알아보았습니다. recognition 모델의 경우에도 거의 모든 구성이 비슷합니다. 이 튜토리얼에서는 둘의 차이가 나는 부분과 관련하여, 알아두면 좋을 내용에 대해서만 간단히 짚고 넘어가도록 하겠습니다.

데이터셋 준비

MMOCR 프레임워크에는 recognition 모델 학습을 위한 MMOCR 데이터 표준이 존재합니다. detection MMOCR 데이터 표준 레이블이 bbox 에 대한 정보를 가지고 있는 한편, recognition MMOCR 데이터 표준 레이블은 bbox 에 대한 정보는 없고 label 에 대한 정보만 들고 있습니다. Recognition 모델을 학습하기 위해서는 이 점을 확인해 보아야 합니다.
{ "metainfo": { "dataset_type": "TextRecogDataset", "task_name": "textrecog", }, "data_list": [ { "img_path": "test_img_0_0.jpg", "instances": [ { "text": "GRAND" } ] }, { "img_path": "test_img_0_1.jpg", "instances": [ { "text": "SALE" } ] }, // ... ] }
JSON
복사
recognition 모델 학습을 위한 MMOCR 레이블 데이터 표준 예시
원본 이미지
cropped 예시1
cropped 예시2
Recognition 모델 학습을 위한 MMOCR 데이터 표준의 경우에도 detection 모델 학습을 위한 MMOCR 데이터와 마찬가지로 이미지파일 N개가 1개의 JSON 파일에 대응됩니다. 하지만 각 이미지 파일은 텍스트 영역에 딱 맞게 잘려진(Crop) 이미지라는 차이가 있습니다. 앞선 실습에 사용했던 Aihub 금융 OCR 데이터의 경우에는 1개 이미지당 평균 8개의 텍스트 영역 bounding box 가 등장합니다. recognition 모델 학습을 위한 MMOCR 표준을 준수한다면 1개의 원본 이미지가 8개의 recognition 용 cropped 이미지로 불어나는 셈입니다.

데이터 증강 파이프라인 제작 시 팁

RAW 데이터셋에서 cropped 된 recognition 모델 학습용 MMOCR 데이터 표준 이미지는 상당히 크기가 작고 가로가 길쭉하다는 특징이 있습니다. 따라서 augmentation 파이프라인 설계 시 텍스트 영역이 잘리거나 찌그러져 앨리어싱이 일어나지 않도록 각별한 주의가 필요합니다.
이때 MMOCR 이 제공하는 도구 tools/analysis_tools/browse_dataset.py 가 도움을 줄 수 있습니다.
MMOCR 공식 문서는 browse_dataset 을 다음과 같이 설명하고 있습니다.
browse_datasettrain_dataloader 이 실제로 모델을 학습할 때 사용되는 형태로 변환된 이미지가 어떻게 생겼는지 시각화해볼 수 있도록 도와줍니다. 따라서 데이터가 올바르게 입력되고 있는지 확인해 보려면 이 도구를 사용해 보는 것을 고려해 보세요.
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료들.
1.
None
from : 과거의 어떤 생각이 이 생각을 만들었는가?
1.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는가?
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는가?
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되고 이어지는가?
1.
None
참고 : 레퍼런스