[OCR] 5.7 진행 상황

너덜핑·2025년 5월 6일

프로젝트

목록 보기
3/3

Progress

1. 타각 최소 문자열 구성

  • 데이터셋을 기반으로 중복을 최소화한 대표 문자열을 선정
  • 가능한 모든 문자 조합을 포함하되, 효율적으로 구성
    VSCode 파일 경로 : home/postechuser/ocr/generated_codes.txt
    총 306개의 문자열 선정함

2. PaddleOCR 적용

새로운 데이터셋들을 기존 모델인 PaddleOCR로 inference했을 때, 문자 인식을 아예 못함

위에 두개 이미지 파일 -> 새로운 데이터셋
마지막 한개 이미지 파일 -> 기존 데이터셋

=> 이에 대한 해결책으로 네이버 Clova에서 나온 text recognition 모델을 사용해봄

3. 새로운 모델 적용

네이버 Clova에서 나온 Text Detection 모델(CRAFT)과 Recognition 모델을 사용함
Recognition 모델 깃허브 링크 : page

결과: Detection 모델인 CRAFT와 recognition 모델 모두 문자를 잘 인식하지 못함

세개 모두 새로운 데이터셋으로 잘못 인식하고 있는 결과를 볼 수 있음

4. PaddleOCR을 Finetuning하기

4_1. Text detection model fine-tuning

  1. Dataset Annotation하기

    -> 이런 식으로 각 이미지 파일들의 text와 바운딩 박스 좌표값들을 Annotation File에 입력을 해줘야 함
    직접 다 인식을 하기엔 데이터 양이 많아서, 기존의 pretrain된 아래의 모델 두개를 detection하는 데 사용함

    결과: 새로운 데이터셋에는 detection을 하지 못해 bounding box를 만들지 못함
    기존 데이터셋은 detection은 하지만 정확도가 떨어짐

    -> 밑에 한 개 이미지 파일이 기존 데이터셋

    -> 인식 정확도가 안 좋음

  2. Grounding Dino를 이용한 Object Detection
    (회사 서버에서 돌리려고 하면 ERROR: Could not install packages due to an OSError:No space left on device가 떠서 불가능)
    -> local에서 가상환경을 만들어서 돌림

  • 도색된 경우- bounding box가 정확하게 잘 잡힘
  • 샌딩된 경우, 그냥 raw image에서는 bounding box가 아예 잘못 잡히거나 안 잡힘


    아마 노이즈가 많이 들어간 이미지라서 detection을 잘 못 하는거 같음

=> 이에 대한 해결책으로, 직접 boundingbox를 치는 수 밖에 없을듯..

4_2. Text recognition model fine-tuning

0개의 댓글