728x90
반응형
# Yolov10 Custome Data 실습
https://minyeong3.tistory.com/101
Yolov8 학습 과정
Data Preparation (이미지 데이터, 좌표 있는 정답 데이터 필요)
→ Loading Date → Make YAML file → Install Yolov8 → Train model → Prediction
valid 파일에는 train 데이터의 일부를 랜덤하게 split 해서 학습시킴
Yaml 파일
Yolov8 학습과 검증에 필요한 train, valid 데이터의 디렉토리 경로, Detection 하고싶은 클래스 개수, 해당 클래스의 (문자열) 이름 저장
- train : 학습 데이터 폴더 경로 (이미지)
- val : 검증 데이터 폴더 경로 (이미지)
- nc : 학습할 클래스 갯수
- names : 학습할 클래스 이름들
yaml_data = {
"names": classes,
"nc": len(classes),
"path": "/content/drive/MyDrive/data/yolo",
"train": "train",
"val": "valid",
"test": "test"
}
데이터셋
이미지데이터, 텍스트 라벨 파일
(공모전에서는 train에 label을 함께 저장함, val 폴더는 yolo/train 에 한번 더 저장)
weights 폴더 - Pre-Trained 모델 파일 (학습 파라미터 weight, bias가 잘 초기화 된 파일) 저장
▷ 그 중 가장 학습이 잘 된 best.pt 사용
best.pt (가장 성능 좋은 pt 파일)
last.pt (최신 weight 파일)
Yolov5 구조
- Head, Backbone
Backbone
이미지로부터 Feature map을 추출하는 부분, CSP-Darknet를 사용 (YOLO v3의 Backbone은 Darknet53으로 CSP 적용X)
YOLO v5의 backbone 종류가 4가지임. 제일 작고 가벼운 yolo v5-s부터 m, l, x 까지 포함해서 총 4가지 버전
Backbone 종류
- yolo v5는 s, m, l, x의 4가지 버전이 있음
- s가 가장 가벼운 모델
- x가 가장 무거운 모델
- s가 성능이 제일 낮지만 FPS가 가장 높고, x가 성능이 제일 높지만 FPS는 가장 낮음
Head
추출된 Feature map을 바탕으로 물체의 위치를 찾는 부분
Anchor Box(Default Box)를 처음에 설정하고 이를 이용하여 최종적인 Bounding Box를 생성
Yolov5과 Yolov8의 차이점
- C3 모듈을 C2f로 교체
- Backbone에서 첫번째 6x6을 3x3 Conv 로 교체
- 두개 convolution layer 삭제
- ConvBottlenaeck에서 첫번째 1x1 Conv를 3x3 Conv로 교체
- 분리된 head 사용
728x90
반응형
'AI' 카테고리의 다른 글
[OpenCV 오류] module 'cv2' has no attribute 'createThinPlateSplineShapeTransformer' (0) | 2024.01.30 |
---|---|
[머신러닝 프로젝트] LOL 경기 예측 (5) | 2023.12.16 |
[실전! 컴퓨터비전을 위한 머신러닝] 2. 컴퓨터비전에 쓰이는 ML 모델 (0) | 2023.09.12 |
Faster R-CNN (0) | 2023.05.30 |
Teachable Machine을 사용한 쓰러짐 감지 AI 구현 (0) | 2023.01.05 |