토이 프로젝트 2 #1 준비

Luuuuucy·2024년 11월 29일

TOY PROJECTS

목록 보기
1/11
post-thumbnail

토이 프로젝트 작성법 written by 김민수 강사님

1. 발표 일정

11월 29일 금요일

준비기간: 11월 27일 수요일 ~ 11월 29일 금요일

2. 데이터 수집처 탐색

Roboflow - 웃긴 데이터가 많음, 약간 러시아 감성
Ai hub - 공공데이터, 데이터 품질이 좋음
Kaggle - 데이터 분석 콘테스트 사이트

3. 문제 정의

한글은 고유의 문자 체계와 구조를 가지고 있기 때문에, 기존의 OCR 기술을 그대로 적용하기 어렵다. 이미지 파일에서 한글 문자를 정확하게 인식하고 분류하는 시스템의 개발이 필요하다.

목표

한글 문서에서 텍스트를 자동으로 인식하고 추출하여 데이터 입력 및 처리의 효율성을 높인다. 이를 통해 문서 작업의 자동화 및 디지털화한다.

과제

문자 인식 정확도

  • 다양한 글꼴, 크기, 굵기에서 한글 문자를 정확히 인식

형태소 분석

  • 한글은 음절 단위로 구성되므로, 형태소 분석 필요

데이터 다양성

  • 손글씨, 인쇄체에서 데이터 처리

4. 데이터 수집

수집 데이터

데이터 소개

원천 데이터 예시

  • 인쇄 데이터

  • 라벨링 데이터 예시

{
  "Annotation": {
    "object_recognition": 1,
    "text_language": 0
  },
  "Dataset": {
    "category": 0,
    "identifier": "OCR(public)",
    "label_path": "OCR(public)/CST/1980/5350108/0002",
    "name": "대규모 OCR 데이터(공공)",
    "src_path": "OCR(public)/CST/1980/5350108/0002",
    "type": 1
  },
  "Images": {
    "acquisition_location": 1,
    "data_captured": "2022.08.09 10:57:13",
    "dpi": 300,
    "group": 1,
    "height": 3504,
    "identifier": "CST_1980_5350108_0002_0001",
    "type": "jpg",
    "width": 2480,
    "writing_style": 3,
    "year": 2
  },
  "Bbox": [
    {
      "data": "다.",
      "id": 1,
      "type": 1,
      "typeface": 1,
      "x": [534, 534, 598, 598],
      "y": [664, 709, 664, 709]
    },
    {
      "data": "가공",
      "id": 2,
      "type": 1,
      "typeface": 1,
      "x": [613, 613, 747, 747],
      "y": [663, 710, 663, 710]
    },
    {
      "data": "금긋기",
      "id": 3,
      "type": 1,
      "typeface": 1,
      "x": [614, 614, 745, 745],
      "y": [727, 778, 727, 778]
    },
    {
      "data": "작업은",
      "id": 4,
      "type": 1,
      "typeface": 1,
      "x": [761, 761, 900, 900],
      "y": [726, 779, 726, 779]
    },
    {
      "data": "공작도,",
      "id": 5,
      "type": 1,
      "typeface": 1,
      "x": [911, 911, 1063, 1063],
      "y": [724, 776, 724, 776]
    },
    {
      "data": "현척도,",
      "id": 6,
      "type": 1,
      "typeface": 1,
      "x": [1080, 1080, 1229, 1229],
      "y": [725, 776, 725, 776]
    },
    {
      "data": "현판,",
      "id": 7,
      "type": 1,
      "typeface": 1,
      "x": [1248, 1248, 1356, 1356],
      "y": [724, 774, 724, 774]
    },
	(이하 중략..) 
  ]
}

5. 전처리 계획

이미 적용된 전처리 내용

  • 이미지 색상: 모든 이미지 데이터는 흑백으로 구성되어 있음.
  • 이미지 사이즈: 이미지 크기는 A4 규격으로 구성되어 있음.

앞으로 적용할 전처리 항목

  • ROI(Region of Interest): 이미지 내에서 텍스트가 포함된 영역만 추출
    • Mask R-CNN 이용
      • 객체 탐지 및 분할을 수행하는 딥러닝 모델
  • 해상도 조정: Tesseract의 권장 입력 크기인 300 DPI로 이미지 해상도를 조정
    • Pillow 라이브러리 이용
      • 300DPI로 조정 후 일정한 사이즈로 resize 수행

6. 모델 선택

CNN 모델

  • 이미지 데이터에서 특징을 추출하고 인식하는 데 최적화된 딥러닝 모델

Tesseract5

  • Tesseract는 Google에서 배포한 광학 문자 인식 엔진
  • 버전 4부터 LSTM 기반의 라인 인식에 초점 맞춤

7. 학습 계획

1. 인쇄 데이터 CNN 모델로 학습

2. Tesseract5 모델로 전이학습

3. 인쇄 데이터 성능 평가

  • Tesseract 5로 인쇄 데이터 테스트 : 전이 학습된 Tesseract 5를 사용하여 인쇄 데이터에 대한 OCR 성능을 평가
  • 성능 지표 : 정확도, 정밀도, 재현율, F1-score 등을 계산

4. 손글씨 데이터 전처리

  • ROI
  • 300DPI로 해상도 조정

5. 손글씨 데이터 CNN 모델로 전이학습

6. Tesseract5 모델로 전이학습

7. 손글씨 데이터 성능 평가

  • Tesseract 5로 손글씨 데이터 테스트: 전이 학습된 Tesseract 5를 사용하여 손글씨 데이터에 대한 OCR 성능을 평가
  • 성능 지표: 정확도, 정밀도, 재현율, F1-score 등을 계산

8.(이후 작업 필요 시 추가) 컬러 데이터 수집 및 전처리

  • 다양한 배경과 컬러가 포함된 데이터를 수집
  • 전처리: 컬러 채널 분리, 이미지 크기 조정 및 노이즈 제거 수행

9. 컬러 데이터 CNN 모델로 전이학습

10. 컬러 데이터 Tesseract5 모델로 전이학습

11. 컬러 데이터 성능 평가

  • Tesseract 5로 컬러 데이터 테스트: 전이 학습된 Tesseract 5를 사용하여 컬러 데이터에 대한 OCR 성능을 평가
  • 성능 지표: 정확도, 정밀도, 재현율, F1-score 등을 계산

성능 평가 이후 매회 결과 분석 및 피드백

각 단계에서 얻은 성능 평가 결과를 분석하고, 필요에 따라 모델 및 데이터 전처리 방법 조정
최종 보고서 작성: 각 단계의 결과와 분석을 포함한 최종 보고서를 작성하여 학습 과정을 정리

profile
Hi, I am Lucy. Welcome to Moon in the Room. 🌝

0개의 댓글