KT 에이블스쿨 AIVLE school 4기 AI트랙 7주차 후기 | 3차 미니프로젝트

2023. 9. 23. 22:41·KT에이블스쿨

7주차 일정

9/18 - 9/20 시각지능 딥러닝

9/21 - 9/22 미니프로젝트 3차

 

9/18 - 9/20 시각지능 딥러닝

지난주까지는 CNN 중심으로 배웠다면, 이번주는 객체 탐지 그리고 YOLO 모델을 다뤘다.

내가 YOLO를 처음 알게 된 건 작년이었는데, 그때까지만 해도 내 실력으론 저런 건 못하겠지.. 머신러닝 사랑해♡ 하던 내가 YOLO를 만질 수 있다고요?! 진짜 신기합니다. (지금도 학습시켜 놓고 쓰는 중이에요^^!!)

 

Object Detection

  • Object Detection = Classification + Localization
    • Localization: 단 하나의 object 위치를 Bounding Box로 지정하여 찾음
    • Object Detection: 여러 개의 object 위치를 Bounding Box로 지정하여 찾음

 

Bounding Box

하나의 object가 포함된 최소 크기의 box

  • Ground Truth Bounding Box 구성요소: $ x, y, w, h $ 
  • Predicted Bounding Box 구성요소: $ \hat x, \hat y, \hat w, \hat h $
    • $ \hat x, \hat y \approx x, y $ → Bounding Box 꼭짓점 예측 Good
    • $ \hat w, \hat h \approx w, h $ → Bounding Box 크기 예측 Good
    • ⇒ 모델이 object가 있는 위치를 잘 예측했다!

 

Class Classification 

Bounding box에 있는 object가 어떤 클래스인지 알려주는 것

  • Bounding Box 안에 object가 있으면 분류 문제로 접근 가능
  • Label = [1, 0, 0], predict = [0.8, 0.05, 0.15]

 

Confidence score

object가 진짜 Bounding Box안에 있는지에 대한 확신의 정도

  • 1에 가까울수록 object가 Bounding Box안에 있다고 추측
  • 0에 가까울수록 object가 Bounding Box안에 없다고 추측

 

IoU(Intersection over Union)

두 박스의 중복 영역 크기(겹치는 영역)이 넓을수록 좋은 예측

 

NMS(Non-Maximum Suppression)

동일 object에 대한 중복 box 제거

  • IoU가 일정 값 이상이면 같은 Object를 가리키는 것이라고 판단해, 상대적으로 Confidence Score가 낮은 Bounding Box를 제거하는 것
  • Confidence Score 임계치가 높을 수록, IoU 임계치가 낮을수록 박스에 대한 중복 판단이 깐깐해짐

 

Annotation

이미지 내 Detection 정보를 별도의 설명 파일로 제공되는 것

  • object의 bounding box 위치나 object 이름 등을 특정 포맷으로 제공

 

YOLOv8

!pip install ultralytics
from ultralytics import YOLO

# 모델 파일 다운로드
model = YOLO(model='yolov8n.pt', task='detect')

# 학습
model.train(data='coco128.yaml',  # 데이터셋 경로
            epochs=10,            # 학습 횟수
            patience=5,
            save=True,            # 학습 과정 저장 여부
            project='trained',    # 저장 폴더 이름
            name='trained_model', # 세부 폴더 이름
            exist_ok=False,
            pretrained=False,     # 사전 학습 모델 사용 여부
            optimizer='auto',     # 경사하강법 방법
            verbose=False,
            seed=2023,            
            resume=False,         
            freeze=None          
            )

# 예측
model.predict(source='https://ultralytics.com/images/bus.jpg', 
              save=True, 
              save_txt=True, 
              line_width=2)

 

마지막날에는 각자 하고싶은 주제로 객체 탐지를 해볼 수 있어서 일회용 컵이랑 머그컵을 YOLOv8 모델로 구분해 보았다.

종이컵, 플라스틱컵, 머그컵 3개의 클래스로 나눠 학습을 시켰는데 예측에서 플라스틱컵은 잘 찾지 못했다.

그 이유가 뭘까 생각해 봤는데 종이컵에도 컵홀더가 있는 경우가 있어서 그런 것 같다..(그럼 종이컵을 플라스틱컵으로 분류하면 되는 거 아니야? 모르겠다.)

작고 소중한 나의 첫 YOLO 모델 사용기 ༼ ᓄºل͟º ༽ᓄ

 

 

9/21 - 9/22 미니프로젝트 3차

엥? 저번주에 미프를 했는데 또 해요? 네.

겨우 YOLO 모델 걸음마 뗀 사람에게 바로 프로젝트해! 하는 스파르타 훈련 👊

3일 동안 하는 미프지만 사실 이틀 동안 거의 다 했다 ㅎ_ㅎ 월요일에는 발표자료 만들기만 하면 끝 -

이틀동안 무얼 했냐면...

roboflow가 없는 맨땅에서🥶 YOLO 모델에 넣을 데이터 전처리에 하루, 모델 학습 및 예측에 하루가 걸렸다.

 

에이블스쿨에서 코랩 프로 비용을 지원받았는데 시간제한 없이 계속 GPU를 사용할 수 있어서 너무 좋았다!!!!

하지만 난 게임에서 현질 한 것 마냥 너무 아껴서 학습속도가 느렸는데 팀원분들이 제발 고용량 RAM 쓰라고 ㅋ

패트와 매트 마냥 두 분이 앞에서 티키타카 하시는 게 너무 웃겨서 주글뻔했어요 ㅠ

 

근데 학습 속도가 문제가 아니었다.

정확도가 너무 거지 같았다. mAP 0.3을 못 넘기는 YOLO는 왜 존재하죠? 

그야 내가 앞에서 전처리를 잘못했으니까 성능이 이모냥이겠죠;

glob는 순서대로 가져오지 않는다. 메모..📑 랜덤으로 가져오니까 sort를 해주자.. 메모.. 📑

 

아침 9시 반부터 오후 3시 반까지 거북이보다 느린 속도로 몇 번의 학습과 예측을 했는데 성능이 계속 제자리걸음이었는데  sort 해줬더니 성능이 확 올라서 화 X 짜증 O 났습니다.

팀원분들의 도움을 많이 받은 이번 미프..  다들 감사합니달라!!

 

 

자꾸만 정체성을 잃어가는 에이블 후기.

복습도 아니고 일기도 아니고 이게 뭔지 모르겠지만 나만의 스타일이라고 생각합니다 ~.~

저작자표시 (새창열림)
'KT에이블스쿨' 카테고리의 다른 글
  • KT 에이블스쿨 AIVLE school 4기 AI트랙 10주차 후기 | 4차 미니프로젝트
  • KT 에이블스쿨 AIVLE school 4기 AI트랙 8-9주차 후기
  • KT 에이블스쿨 AIVLE school 4기 AI트랙 6주차 후기 | 2차 미니프로젝트
  • KT 에이블스쿨 AIVLE school 4기 AI트랙 5주차 후기 - 2
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (46)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
KT 에이블스쿨 AIVLE school 4기 AI트랙 7주차 후기 | 3차 미니프로젝트
상단으로

티스토리툴바