ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OCR] Annotation 가이드
    CS 공부/AI 2023. 5. 24. 21:53

    가이드라인이란?

    • 좋은 데이터를 확보하기 위한 과정을 정리해 놓은 문서
    • 좋은 데이터 = 골고루 분포된 raw data + 일정하게 라발링된 GT
    • 특이 경우를 발견하고 해당 샘플들을 확보하려고 노력해야하며, 이를 포함한 라벨링 가이드를 만들어야함

     

    • 가이드라인의 필요성
      • 학습목적에 따라 Annotation 방식이 달라질 수 있음
      • 데이터의 일관성: 원하는 작업을 명확하게 언급하는 것이 일관성 측면에서 더 좋음

     

    • 가이드 라인 작성시 중요한 요소
      • 특이 케이스: 가능하면 특이 케이스가 다 고려된 가이드라인
      • 단순함: 가이드라인이 너무 장황하면 안됨
      • 명확함: 다른 해석이 안되도록 명확하게 작성

     

    데이터셋 제작 파이프라인

    1. 서비스 요구 사항 ex. 영수증 인식에 사용할 OCR 엔진 개발
    2. 제작 목적 설정: 목적과 타겟 모델의 in/out
    3. 가이드라인 제작: 어떤 이미지 수집하고 라벨링 할지
    4. Raw image 수집: 크롤링, 크라우드 소싱
      • crawl images(크롤링): 원하는 이미지가 나올법한 키워드 설정
        • License 확인, 이미지 출처도 크롤링, 이미지 크기는 되도록 크게
      • filter images(크롤링): 불필요한 이미지 처리
        • 글자 없는, 너무 작은, 중복 이미지, 디지털 이미지 등
      • 크라우드 소싱: 특이 케이스 수집에 유리, 시간 비용이 많이 들긴하지만 개인정보, 저작권 이슈에서 자유로움

     

    가이드라인 작성법

    1. 가이드 작성
    2. 가이드 교육
    3. 라벨링
    4. 라벨링 검수: 라벨링 노이즈 관점에서의 검수
    5. 데이터 검수 by AI 팀: 데이터 분포와 라벨링 노이즈 관점에서의 검수
    • 가이드라인 Versioning이 중요 (수정 사항 tracking이 가능해야함)
    • 가이드라인 구축 전에 직접 라벨링을 해보는 것이 필수적
      • labelme, label studio, segements.ai, cvat

     

    가이드라인 구성 요소

    기본 용어

    • HOLD: 작업을 진행하지 않고, 이미지 전체를 제외하는 처리
      • 이미지 내에 글자 영역이 존재하지 않는 이미지
      • 이미지의 모든 글자 영역 속 글자를 알아보기 어려운 경우
      • 같은 글자 혹은 패턴이 5회 이상 반복되는 이미지
      • 영어, 한국어가 아닌 외국어가 1/3 이상인 이미지
      • 개인정보가 포함된 이미지
      • Born-Digital 이미지

     

    • Points: 글자 영역에 대한 표시 방법
      • 최소한 해당 글자들이 다 포함되는 영역으로 지정 (타이트하게)
      • 회전되어있으나 정방향시 가로로 읽으면 가로쓰기이다
      • 구부러진 글자는 위아래 쌍을 이루게 사각형 모양으로 (최대 점의 개수는 12개로 제한)

    최대 점의 개수는 12개로 제한

    • Transcription: Points 안에 존재하는 글자 시퀀스
    • illegibillity: 글자를 정확히 알아보기 힘들 경우 모델이 의도적으로 무시하도록 표시
    • Image_tags: 이미지 자체에 특이사항 있는 경우, 내용 표시
    • Word_tags: 글자 영역의 특이사항이 있는 경우, 내용 표시
    • <UNK>: 글자 영역 내에 글자가 있지만, 매우 특수하거나 실제로 인식하여 출력하기 어려울 때 입력해주는 값

     

    • 작업 불가 영역 (don't care 영역)
      • Rule1: 글자가 알아보기 어려울 정도로 밀도가 높거나, 글자가 일부 뭉개져서 알아보기 힘든 영역에 대해서 illegibillity=True
      • Rule2: 글자가 존재하지만, 글자가 겹쳐져 있거나 잘려있어 아라보기 힘들면 illegibillity=True

     

    • 최종 포맷
      • 업스테이지의 경우 UFO format 활용
      • 데이터 포맷이 변경되면, 이전에 작업된 파일들도 최신 포맷으로 변경되어야 함

     

    • 일관성
      • Data quality에서 가장 중요한 것은 일관성이다. 같은 케이스를 같게 처리해야 나중에 프로그래밍으로 한번에 수정 가능
      • 정량적, 객관적 표현 사용 (공백의 크기가 글자 폭의 1/2 이상인지)
      • 동일한 글자이지만 서로 다르게 생긴 경우로 손글씨로 판단

     

    • 우선순위
      1. 읽을 수 있는 글자 영역 전부 Points 표시
      2. Points 표시의 일관성 유지 및 transcription 정확히 하기
      3. 글자는 존재하지만 육안상 알아보기 어려운 illegibility=True 영역 annotation
      4. 각종 태그 

     

    라벨링 검수

    1. 감독자 전수 검사: 한 감독자가 본인에게 할당된 작업자의 결과물 모두 시각화하고 문제 있는 부분 기록하여 다른 작업자에게 할당
    2. Peer check: 끝난 작업물을 다른 작업자에게 할당하여 틀린 부분 고치게 함
    3. 다수결: 여러 사람이 동일한 작업을 진행하고 그 결과를 프로그래밍적으로 하나로 합침

    'CS 공부 > AI' 카테고리의 다른 글

    Annotation 도구 소개  (0) 2023.05.25
    [OCR] 성능 평가 방식  (0) 2023.05.25
    [OCR] Data Collection  (0) 2023.05.24
    [OCR] Text Detection  (0) 2023.05.24
    OCR  (0) 2023.05.23
Designed by Tistory.