boostcampaitech3 / final-project-level3-cv-16

👀 너의 알약이 보여 💊 : 알약 이미지 분류 프로젝트
5 stars 6 forks source link

[ML][Experiment] Pytesseract를 이용한 OCR 검출 및 추출 #19

Closed seoulsky-field closed 2 years ago

seoulsky-field commented 2 years ago

What

Pytesseract를 이용해서 알약 속 text를 검출합니다.

Why

Data를 다시 색상에 대해서 EDA하면서 색상을 메인으로 하여 분류하는 것은 불가능하다고 판단하였습니다. 따라서, 성상을 이용한 image-to-text와 단순 text 검출이라는 두 가지 방법에 대해 생각하였습니다. 하지만 저희 데이터를 보면 텍스트가 굉장히 중요한 역할을 하는 것을 확인할 수 있었고 image-to-text를 통해 도출된 성상만으로는 분류할 수 없을 것으로 보였습니다. (이유는 아래의 사진과 같이 성상이 동일하고 모양, 색상도 동일할 때 text가 굉장히 중요하게 작용하였습니다.)

스크린샷 2022-05-23 오후 5 17 07

따라서 text를 검출하는 방법으로 결정하되 일반적인 OCR을 사용하려면 annotation이 필요하였고 갖고있는 데이터에는 annotation이 존재하지 않는 점과 시간적 요소를 모두 고려하였을 때 Pytesseract를 이용하는 것이 제일 합리적이라는 판단을 하게 되었습니다.

How

Pytesseract를 이용하여 텍스트를 검출합니다. 단, 특수 문자에 대해서는 어떻게 해야할지 의논해보아야 할 것 같습니다.

seoulsky-field commented 2 years ago

Pytesseract를 이용하여 image에서 text가 나오는지에 대해 시도해보았고 아래 이미지에 대해 성공적으로 text를 검출하는 것을 확인하였습니다. image

다만 알약만을 crop하여 test했을 때 알약에 글자가 없는 경우 제대로 글자 없음을 인식했지만 글자가 있는 경우에도 흐릿하여 인식을 제대로 못하기에 이 부분을 augmentation으로 처리해 줄 생각입니다.

seoulsky-field commented 2 years ago

pytesseract의 경우 이미지를 알약 부분만 crop한 경우와 augmentation을 이용하여 pre-processing한 경우 모두에 대해서 알약의 음각 글자와 캡슐에 출력된 글자 모두 제대로 인식하지 못하였습니다. 자세한 실험은 https://seoulsky-field.notion.site/b010489647974363bc34d3c257904ec6 을 참고하십시오. 이로 인해서 Pytesseract 사용은 일시 중지하고 인식하기 위한 다른 방면을 찾아보아야 할 것으로 보입니다.