순서는 데이터수집(aihub)-데이터전처리(labelimg)-yolo모델 이용해서 학습 순서 이다.
데이터 수집은 aihub에 있는 데이터셋을 이용했다.
aihub데이터셋
yaml 파일을 먼저 생성해보았다.
import yaml
data = {
"train" : 'ijaesang/train/',
"val" : 'ijaesang/validation/',
"names" : {0 : '위반', 1 : '정상'}}
with open('yolo.yaml', 'w') as f :
yaml.dump(data, f)
# check written file
with open('yolo.yaml', 'r') as f :
lines = yaml.safe_load(f)
print(lines)
이코드를 작동하면 yaml파일이 작성이된다.
names:
0: "\uC704\uBC18"
1: "\uC815\uC0C1"
train: ijaesang/Documents/train/
val: ijaesang/Documents/validation/
이렇게 나오게 되고 yaml파일을 이용해서 yolo에 커스텀 학습을 해준다.
import torch
from ultralytics import YOLO
device = torch.device("mps")
model = YOLO('yolov8n.pt') # 어떤 모델의 객체를 생성한 뒤
model.train(data='/Users/ijaesang/Documents/yolo.yaml', epochs=100, patience=30, batch=32,imgsz=412,device="mps")
model.export()
그렇게 고생해서 돌린 결과물은 ??
하... 진짜 인생 재밌다 ㅎㅎ;;;;