부스트캠프 12~13주차 공부 정리

TAEJUN YOUN·2022년 12월 18일
0

데이터제작 강의 요약

1강, 2강 - 데이터 제작의 중요성

  • software 1.0의 개발과정 - 어떤 연산을 할 지 사람이 고민해 정함
    1. 문제정의
    2. 큰 문제를 작은 문제들의 집합으로 분해
    3. 개별 문제 별로 알고리즘 설계
    4. 솔루션들을 합쳐 하나의 시스템으로
    • 문제점:객체 검출에서 대응하기 어려운 케이스 많았음
  • software 2.0의 개발과정 - ai모델의 구조로 프로그램의 검색 범위를 한정하고 데이터와 최적화 방법을 통해 최적의 프로그램을 찾는다.
    1. 뉴럴넷의 구조에 의해 검색 영역이 정해짐
    2. 최적화를 통해 사람이 정한 목적에 제일 부합하는 연산의 집합을 찾는다.
    3. 경로와 목적지는 데이터와 최적화 방법에 의해 정해짐

즉 모델의 성능은 코드 + 데이터이므로 데이터 제작이 중요하다.

AI 모델 개발 과정

  1. project setup
    • 모델 요구사항 확정
  2. Data Preparation
    • 데이터셋 준비
  3. Model Training
    • 모델 학습 및 디버깅
  4. Deploying
    • 설치 및 유지보수

하지만! 데이터 구하기 너무 어렵고 데이터를 얻기 어렵다..

이유: 작업기간 오래 걸리고 좋은 데이터를 많이 모으기 어렵고 라벨링 비용이 큼

좋은데이터: 골고루 일정하게 라벨링된 데이터

하지만 모든 작업자의 일관성 있는 데이터를 얻기가 쉽지 않다..

3강 - OCR Technology and Services

OCR service text detector, text recognizer, serializer, text parser등을 필요로 한다.

OCR을 통해 여러 서비스를 제공할 수 있다.

4강 - Text Detection 소개

  • Object detection이 class와 위치를 예측하는 반면 text detection은 위치만 검출하면 된다.
  • 글자영역은
    1. 직사각형
    2. 직사각형 + 각도
    3. 사각형(네점)
    4. 다각형(여러점)
  • Regresssion based
    • 이미지를 입력받아 글자 영역 표현값들을 바로 출력으로
  • Segementatoin based
    • 이미지를 입력받아 글자 영역 표현값들에 사용되는 화소단위 정보를 뽑고 후처리를 통해 최종 글자 영역 표현 값들을 확보
  • EAST
    • 2 staged system
    • fast inference & end to end train
    • output
      • geometry map-어떤 화소가 글자영역이라면 bounding box의 위치는 어디인지
        1. RBOX형식(회전각도 1 channel, Bounding box 4개 경계선 까지의 거리를 예측 4 channel → 5channel)
        2. QUAD(8channel, x1, y1, x2, y2 .. x4, y4)
    • inference
      • post processing
        • locality aware nms
    • training
      • loss terms
        • 직사각형 iou loss + 각도 cosine loss

5강 - 데이터 소개

데이터를 어디서 구할까? - 기간 예산 목적에 따라 public dataset, created dataset을 사용할 수 있음

kaggle, RRC, Arixv, cvpr, icdar

하지만 각각 데이터셋마다 annotation format이 다름!!!

6강 - Annotation Guide

작업자가 일관되게 할 수 있도록 적절한 가이드라인이 필요하다..

7강 - 성능 평가 개요

성능평가는 학습에 사용되지 않은 데이터가 들어왔을 때 얼마나 잘 동작하는가와 같다.

해당 모델이 서비스로 출시 되었을 때 사람들이 체감하는 품질의 정도가 성능이 되야하며 그를 위해 정량평가도 이와 비슷하게 느껴야 한다.

  1. DetEval
  2. IoU
  3. TioU
  4. CLEVal

8강 - Annotation 도구 소개

  1. Labelme
  2. CVAT
  3. Hasty Labeling Tools
  4. UFO

9강 - Advanced Text Detection Models

  1. DBNet
  2. MOST
  3. TextFuseNet

10강 - Bag of Tricks

  1. 합성데이터

    사용법: 합성데이터로 1차학습, train data로 finetuning

  2. data augmentation

    geometric transformation + style transformation

    문제와 데이터에 따라 적합하게 사용할 것!

  3. Multi Scale Training & Inference

    이미지에서 글자의 크기는 다양하기 때문에 다양한 크기로 이미지를 바꿔가주면서 입력한다.


대회 회고

  • 1등 솔루션
    • 다른 데이터를 많이 사용함
    • pretrained 모델 사용한 후 그 후에 finetuning
    • augmentation을 많이 사용하지 않음..

→ 우리는 데이터 검수하는데 시간을 많이 사용했고 결국 검수하는 것 보다 데이터를 많이 모으고 학습시키는 것이 더 좋은 결과를 낳았다. 하지만 우리가 잘못했다고 생각할 순 없다. 우리는 단지 이번 프로젝트에서 양보다 질이 중요하다 생각한 것일 뿐이다.

  • 마스터님 피드백
    • text detection은 검출만 하는 것임을 알았어야 한다.(프로젝트를 진행할 때 본질이 무엇인지 알아야한다.)
    • 대부분의 augmentation은 현업에서 필요없다.
    • 재현성은 중요하다. 코드 뿐만 아니라 데이터에서도 버전관리를 해줘야한다.
    • 새로운 task에 대해서는 앞선 사람들이 고민한 부분부터 시작해보자. 멘땅에 헤딩은 별로 좋지 않다.
    • 대회에서 모델의 크기가 작았기 때문에 무작정 데이터가 많은 것은 좋지 않았다. 사용하고자 하는 모델의 역량이 어떤지 확인해볼 필요가 있다.
profile
Study and Share

0개의 댓글