ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : YOLO v5
    Computer Science/ML, DL 2021. 4. 9. 17:18
    728x90

     

     

     

    YOLO : You Only Look Once

     

    1. 이미지 전체를 단 한번만 본다.

    • YOLO의 등장 이전의 모델 중 대표적으로 R-CNN 모델의 경우, 이미지에서 일정한 규칙으로 이미지를 여러장 쪼개서 CNN 모델을 통과시킨다.
    • 때문에, 한 장의 이미지에서 객체 탐지를 수행해도 실제로는 수 천장의 이미지를 모델에 통과시킨다.
    • 반면, YOLO는 이미지 전체를 말 그대로 한 번만 본다.

     

     

    2. 통합된 모델을 사용한다.

    • 다른 객체 탐지 모델들은 다양한 전처리 모델과 인공 신경망을 결합하여 사용한다.
    • 반면, YOLO는 단 하나의 인공 신경망을 사용하여 처리한다.

     

     

    3. 실시간 객체 탐지 모델이다.

    • 높은 성능으로 객체를 탐지하는 모델은 아니지만, 실시간으로 여러장의 이미지를 탐지할 수 있다.
    • Faster R-CNN보다 6배 빠른 성능을 보인다.

     

     


     

     

    YOLO v5 : 사용 과정 (간단)

     

     

    ** 본 블로그의 [project - 유해 이미지 및 개인정보 이미지 탐지 시스템]에도 설명이 있습니다.

    ** URL : kxmjhwn.tistory.com/242?category=1121129

     

    [공모전] 개인 정보 및 유해 이미지 모자이크 처리 시스템

    0. 순서 서비스 소개 시스템 구성 및 구현 테스트 및 시연 영상 예제 소스코드 설명 ** 원본 발표자료의 내용을 요약하여 작성하였습니다. 1. 서비스 소개 1) YoMo ? YoMo = You only Mosaic once YOLO* 알고

    kxmjhwn.tistory.com

     

     

     

    1. YOLO v5 학습 환경 구성

    • colab에서 쉽게 환경을 구성할 수 있다.

     

     

     

     

    2. txt 파일 생성 및 yaml 파일 수정

    • 학습에 사용될 txt 파일을 생성한다.
    • yaml 파일을 구성을 확인하고, 경로 수정을 해준다.

     

     

     

     

    3. 학습 진행

    • 다음과 같은 인자를 설정하여, 학습을 진행한다.
      • img : image의 크기
      • batch : 한 번에 학습할 데이터 사이즈 값
      • epoch : 반복 학습 횟수 값
      • data : dataset 정보가 담긴 yaml 파일 경로
      • cfg : yolo v5의 아키텍처의 yaml 파일 경로
      • weight : pre-trained model 파일 경로 (pre-trained model : 학습 파라미터가 잘 초기화 된 파일)
      • name : 결과 파일 이름

     

     

     

     

    4. 테스트 진행

    • test dataset을 활용하여 model의 최종 성능을 검증한다.
    • 다음과 같은 인자를 설정하여, 테스트를진행한다.
      • source : 테스트 할 데이터의 경로
      • weight : 학습이 완료된 weight 파일의 경로
      • conf : conf_threshold 값 (0~1 사이의 값)

     

     

     


     

     

     

    YOLO v5 : Backbone & Head

     

    ** 다음 블로그를 참고하였고, 일부 재구성하였습니다. 감사합니다. (url : ropiens.tistory.com/44)

     

    1.

    일반적인 detection 모델의 구성과 비슷하다.

    크게, 'Backbone'과 'Head'로 구성되어 있다.

     

     

     

    2. Backbone

    • 이미지로부터 feature map을 추출하는 부분이다.
    • 종류가 4가지이다.

     

     

     

    3. Head

    • 추출된 feature map을 바탕으로, 물체의 위치를 찾는 부분이다.
    • 처음에 Anchor Box(=Default Box)를 설정하고, 이를 이용하여 최종적인 Bounding Box를 생성한다.
    • 3가지 종류의 scale을 가진 Bounding Box를 생성할 수 있고, 각 scale마다 3개의 Anchor Box를 생성할 수 있다. (즉, 총 9개의 Anchor Box)
      • 8 pixel version
      • 16 pixel version
      • 32 pixel version

     

     

     


     

     

    YOLO v5 : files and functions

     

     

    1. /yolov5/models/yolo.py

    • yolo 아키텍처에 관한 코드이다.
    • 이 코드를 통해 yolo의 아키텍처가 생성된다.

     

     

     

     

     

    2. yolov5/model/common.py

    • yolo 아키텍처를 구성하는 모듈(레이어)에 관한 코드이다.
    • 이 코드에 모듈이 구현되어 있다.

     

     

     

     

     

    3. yolov5/model/common.py - BottleneckCSP()

    • yolo v5의 핵심 함수이다.
    • 4개의 conv layer가 생성된다.

     

     

     

     

    4. yolo v5의 backbone을 결정짓는 요소

    • 앞서 설명했듯, yolo v5의 backbone은 4가지이다. (s, m, l, x)
    • s의 backbone 크기가 가장 작고(= layer 수가 작고), x가 가장 크다.
    • 이를 결정짓는 요소는 'Depth_Multiple'과 'Width_Multiple'이다.

     

    • Depth_Multiple 값이 클수록, BottleneckCSP()가 더 많이 반복되어, 더 깊은 모델이 된다.

     

    • Width_Multiple 값이 클수록, 해당 layer의 conv 필터 수가 증가한다.

     

     

    5. yolo v5의 head을 결정짓는 요소

     

    ** 진행 중

    728x90

    'Computer Science > ML, DL' 카테고리의 다른 글

    CS : Deep Learning (2/2)  (0) 2021.04.10
    CS : BERT (2/2)  (0) 2021.04.09
    CS : BERT (1/2)  (0) 2021.04.07
    CS : Deep Learning (1/2)  (0) 2021.04.06

    댓글

kxmjhwn@gmail.com