-
[OCR] Annotation 가이드CS 공부/AI 2023. 5. 24. 21:53
가이드라인이란?
- 좋은 데이터를 확보하기 위한 과정을 정리해 놓은 문서
- 좋은 데이터 = 골고루 분포된 raw data + 일정하게 라발링된 GT
- 특이 경우를 발견하고 해당 샘플들을 확보하려고 노력해야하며, 이를 포함한 라벨링 가이드를 만들어야함
- 가이드라인의 필요성
- 학습목적에 따라 Annotation 방식이 달라질 수 있음
- 데이터의 일관성: 원하는 작업을 명확하게 언급하는 것이 일관성 측면에서 더 좋음
- 가이드 라인 작성시 중요한 요소
- 특이 케이스: 가능하면 특이 케이스가 다 고려된 가이드라인
- 단순함: 가이드라인이 너무 장황하면 안됨
- 명확함: 다른 해석이 안되도록 명확하게 작성
데이터셋 제작 파이프라인
- 서비스 요구 사항 ex. 영수증 인식에 사용할 OCR 엔진 개발
- 제작 목적 설정: 목적과 타겟 모델의 in/out
- 가이드라인 제작: 어떤 이미지 수집하고 라벨링 할지
- Raw image 수집: 크롤링, 크라우드 소싱
- crawl images(크롤링): 원하는 이미지가 나올법한 키워드 설정
- License 확인, 이미지 출처도 크롤링, 이미지 크기는 되도록 크게
- filter images(크롤링): 불필요한 이미지 처리
- 글자 없는, 너무 작은, 중복 이미지, 디지털 이미지 등
- 크라우드 소싱: 특이 케이스 수집에 유리, 시간 비용이 많이 들긴하지만 개인정보, 저작권 이슈에서 자유로움
- crawl images(크롤링): 원하는 이미지가 나올법한 키워드 설정
가이드라인 작성법
- 가이드 작성
- 가이드 교육
- 라벨링
- 라벨링 검수: 라벨링 노이즈 관점에서의 검수
- 데이터 검수 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 이상인지)
- 동일한 글자이지만 서로 다르게 생긴 경우로 손글씨로 판단
- 우선순위
- 읽을 수 있는 글자 영역 전부 Points 표시
- Points 표시의 일관성 유지 및 transcription 정확히 하기
- 글자는 존재하지만 육안상 알아보기 어려운 illegibility=True 영역 annotation
- 각종 태그
라벨링 검수
- 감독자 전수 검사: 한 감독자가 본인에게 할당된 작업자의 결과물 모두 시각화하고 문제 있는 부분 기록하여 다른 작업자에게 할당
- Peer check: 끝난 작업물을 다른 작업자에게 할당하여 틀린 부분 고치게 함
- 다수결: 여러 사람이 동일한 작업을 진행하고 그 결과를 프로그래밍적으로 하나로 합침
'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