[데브코스 자율주행 TIL] DAY 73 (01/08)

happy_quokka·2024년 1월 10일
0
post-thumbnail

2024.01.08 DAY73

YOLO v3의 loss에 대해 궁금증이 생겨서 관련 내용들을 정리하고 알아보았다. 구현까지 다 해보았지만 완벽하게 이해가 된 건 아니었던 것 같다. 날 잡고 YOLO로 관련된 내용들을 정리해야겠다.

data labeling과 augmentation에 대해 배우고 관련된 어떤 tool이 있는지, 그 tool을 사용하는 방법은 무엇인지에 대해 배웠다. 데이터 labeling은 예전에 알바를 해본적이 있어서 그 방법은 알고 있었지만 CVAT에 대해서는 처음 배웠다. 프로젝트를 진행할 때 이 tool을 사용하여 labeling을 진행할테니 익숙해져야겠다는 생각으로 실습을 따라했다.


📝 배운 내용

YOLO v3 loss

  • 3가지 loss 중 objectness loss를 구하는 과정에서 궁금증이 생겼다
  • objectness를 구할 때 object가 있는 경우와 없는 경우를 나누어서 계산한다
  • 또한 이때 IOU를 사용하여 계산한다
  • 그렇다면 object가 없는 경우에는 GT에 bbox에 대한 정보가 없는데 어떻게 GT box와 IOU를 계산하는가????
  • 결론
    • object가 없는 경우에는 IOU를 사용하지 않는다
    • 모델의 결과로 나온 objectness를 그대로 사용한다

Data labeling

  • 기계학습, 딥러닝에서 학습에 필요한 데이터를 만들기 위해 raw data를 유의미하게 만드는 작업이다
  • labeling, annotation, tagging 이라고 부른다
  • classification은 이미지에 해당하는 class 정보를 입력한다
  • detection은 이미지에 대상 object의 bbox와 class 정보를 입력한다
  • 원하는 데이터가 존재하지 않을 수 있기 때문에 직접 labeling을 하는 경우가 있다

CVAT : labeling tool

  • project > task > job으로 구성되어 있다
  • 데이터 배포 시 다양한 포맷의 데이터로 변환이 가능하다
  • docker를 통해 간단하게 설치할 수 있다
  • object detection, segmentation 관련 데이터를 만들 수 있다

Data Augmentation

  • data labeling은 많은 비용과 노력이 필요하기 때문에 data augmentation을 활용하여 이를 해결할 수 있다
  • augmentation은 데이터가 가지고 있는 고유한 특징에 추가, 변경, 제거 등을 통해 새로운 이미지를 만드는 것이다
    • 색공간 변형
    • 기하학적 변형
    • 왜곡
    • 노이즈 추가
  • model에 augmentation을 적용할 때, 언제 적용할 것인지, 모델의 epoch은 어떻게 설정할 것인지를 고려해야한다
  • 보유한 데이터와 모델의 목적을 고려하여 적절한 data augmentation 기법을 적용해야 한다

0개의 댓글