boostcampaitech3 / final-project-level3-cv-05

부스트캠프 AI Tech 3기 최종프로젝트 _ Post OCR Parsing 명함
1 stars 2 forks source link

[구현] OCR API output 전처리 #9

Closed dudskrla closed 2 years ago

dudskrla commented 2 years ago

OCR API output 전처리

1) 원본 이미지 Untitled 2) OCR API에서 나온 bbox를 반영한 이미지 Untitled

해야 할 일

하위 이슈

6

dudskrla commented 2 years ago

방법1

1. 띄어쓰기와 높이 비율을 모두 고려하여 합치기

전체 텍스트를 대상으로

2. 특수문자가 포함된 텍스트 합치기

3. 이름/회사명 합치기

ex. |가| |나| |다| → |가 나 다|

4. 같은 카테고리끼리 합치기 😥

dudskrla commented 2 years ago

방법1의 결과

Problem 1) 잘못 합쳐진 내용은 분리 2) 합쳐지지 않은 내용은 합치기

Solution

문제의 방향을 한 가지로 제한하고자, 잘못 합쳐지는 일이 없도록 작은 단위부터 합쳐나가는 방식을 떠올렸습니다.

dudskrla commented 2 years ago

방법2

1. 글자 단위

같은 단어에 포함되어야 하는 글자가 분리된 경우, 이를 합쳐줍니다

구현 내용

두 단어 사이의 간격이 한 단어의 세로 길이의 0.3 배 이하이면, 같은 단어 내에 포함된다고 가정하여 합쳐줍니다.

참고

차량 운행제한 공고 표지 설치규정 (단, 참고에서는 0.2배로 표기되었으나, 0.2배로 적용하면 합쳐지는 경우가 거의 없는 것으로 판단되어, 여기에서는 0.3배로 적용)

2. 글자 단위

이름/회사명과 같이 한 글자씩 간격이 넓게 벌어진 경우, 이를 합쳐줍니다.

구현 내용

1) 이름/회사명에 해당하는지 확인 2) 두 단어 사이의 간격과 폰트 세로 길이의 비율 확인

위의 조건을 모두 만족하면, 하나의 단어로 합쳐줍니다. (단, 한 글자씩 곧바로 합치는 대신, 각 글자를 모아서 추후 한 번에 합쳐줍니다.)

3. 단어 단위

같은 카테고리에 포함되어야 하는 단어가 분리된 경우, 이를 합쳐줍니다.

구현 내용

1) 두 단어 사이의 간격 <= 두 폰트 가로 길이 크기의 평균

위의 조건을 모두 만족하면, 하나의 카테고리로 생각하고 합쳐줍니다.

+ 글자 단위

특수 문자 한 글자가 존재하는 경우, 이를 제거합니다.

dudskrla commented 2 years ago

방법2의 결과

1. '잘못 합쳐진 내용은 분리' 문제 해결

Before (방법1)

**After (방법2)**
### 2. '**합쳐지지 않은 내용은 합치기**' 문제 해결 - 회사 소개 : 다른데서는 절대 알 수 없는 특별하고 효율적인 교육 과정 > **Before (방법1)** > **After (방법2)** ### 결론 방법1에서 발생했던 두 가지 문제 모두 방법2에서는 개선되는 현상을 보였습니다.