본문 바로가기

딥러닝

이미지 객체 인식 DarkNet (Yolo4)

728x90
  • DarkNet은 Yolo4 개발자가 만든 프레임워크로 아주 간편하게 객체 인식을 수행할 수 있다.
  • 아무래도 StyleGAN2,3 Pixel2Style2Pixel, DOMIAS 등 올려져있는 깃허브를 활용하는 것 조차 어려움이 많았기 때문에 이번에도 어렵지 않을까 생각했는데 만들어진 툴들이 아주 좋아서 어렵지 않았다.

라벨링

학습 준비

  • 먼저 data/list 파일을 하나 만들고 세개의 txt파일을 만든다. 각 txt파일에는 test, train, valid할 이미지의 경로가 있다. 그리고 각 경로에는 라벨링한 txt파일과 이미지 파일이 1대1 대응으로 존재해야한다.

  • custom을 위한 파라미터 변경
    • 매우 중요한 부분이라 집중해야한다. 여기서 잘못되면 학습이 잘 안되거나 실행이 안될 수 있다.
    • darknet/cfg/yolo4-tiny-custom.cfg 파일을 열고 수정한다.
      1. 7번 줄 subdivisions - 배치사이즈 64를 얼마나 나누어 학습할 것인지의 대한 값을 조정한다. 배치사이즈가 64이고 서브디비전이 16이면 64 / 16 = 4개의 이미지를 한번에 학습하게 된다. 아마 많은 사람들이 코랩에서 학습하게 될탠데 무료 코랩의 메모리는 좋은 편이 아니기 때문에 서브디비전을 16~32로 조정해주는 것이 좋다.
      2. 20번 줄 max_batches - 클래스의 수 * 2000이 해당 값이다.
      3. 22번 줄 step - 배치 사이즈의 80%와 90%
      4. 110,269줄 classes - 각자 설정한 클래스의 수
      5. 212,263 줄 filters - (n + 5) * 3 으로 변경 만약 클래스 수가 2이면 21
  • 학습 명령어
!time ./darknet detector train data/Dental_test.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29

본인이 설정한 darknet 위치로 이동하여 위 명령어를 실행하면 된다.

'딥러닝' 카테고리의 다른 글

StyleGAN2 Pytorch 사용법  (0) 2023.10.16