Как выполнить трансферное обучение с YOLOv8
В настоящее время я пытаюсь обучить модель распознавания лиц и использую YOLOv8-face, как показано здесь: https://github.com/akanametov/yolov8-face . Модель работает очень хорошо сама по себе, однако я не могу ее обучить. на моем собственном наборе изображений, не перезаписывая все, что уже знает предварительно обученная модель.
Так что когда бегаю без тренировки, работает отлично, распознает лица. Однако, когда затем тренируюсь на созданном мной наборе данных yaml моих собственных изображений, он внезапно забывает все, что модель уже знала, и получает знания только из моего нового набора данных. Как я могу сохранить все знания предварительно обученных моделей, добавляя к ним и обучая свои собственные изображения, чтобы сделать их более эффективными при обнаружении? вот мой текущий код:
from ultralytics import YOLO
from PIL import Image
import cv2
import numpy as np
import requests
from io import BytesIO
model = YOLO("yolov8n-face.pt") #loading yolov8 face model
dataset = 'path(removed for privacy, but it works)' #specify dataset path
folder_path = 'test5' #specify image folder path
img_path = 'test_images/3251_Out.jpg' #if wanting to only predict single image, #replace folder_path with img_path in predict
print('model loaded')
model.train(data = dataset, epochs = 3, pretrained = True, imgsz=960) #training model
model.val() #evaluating train data
print('val complete')
#add this to predict when predicting on our set imgsize = 2160
results = model.predict(source=folder_path, save=True, conf = 0.33, line_width = 1, imgsz=2160)