update gitignore

simplify paths
remove runs folder
This commit is contained in:
Alex Bezdieniezhnykh
2024-06-10 09:07:13 +03:00
parent 3bd34134d2
commit 2325fd0916
3 changed files with 15 additions and 22 deletions
+1
View File
@@ -3,4 +3,5 @@
*images/ *images/
datasets/ datasets/
runs/ runs/
models/
*.pt *.pt
-4
View File
@@ -7,7 +7,3 @@ current_dataset_dir = os.path.join('datasets', 'zombobase-current')
current_images_dir = os.path.join(current_dataset_dir, 'images') current_images_dir = os.path.join(current_dataset_dir, 'images')
current_labels_dir = os.path.join(current_dataset_dir, 'labels') current_labels_dir = os.path.join(current_dataset_dir, 'labels')
annotation_classes = AnnotationClass.read_json() annotation_classes = AnnotationClass.read_json()
prefix = 'zombobase-'
today_dataset = os.path.join('datasets', f'{prefix}{datetime.now():%Y-%m-%d}')
+14 -18
View File
@@ -4,23 +4,18 @@ import shutil
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from ultralytics import YOLOv10 from ultralytics import YOLOv10
from constants import current_images_dir, current_labels_dir, annotation_classes, prefix from constants import current_images_dir, current_labels_dir, annotation_classes
prefix = 'zombobase-'
def get_yaml_path(date_str): latest_model = f'models/{prefix}latest.pt'
date_dataset = path.join('datasets', f'{prefix}{date_str}') today_folder = f'{prefix}{datetime.now():%Y-%m-%d}'
date_yaml_path = abspath(path.join(date_dataset, 'data.yaml'))
return date_dataset, date_yaml_path
today_dataset, today_yaml = get_yaml_path(f'{datetime.now():%Y-%m-%d}')
train_set = 70 train_set = 70
valid_set = 20 valid_set = 20
test_set = 10 test_set = 10
def form_dataset(): def form_dataset():
makedirs(today_dataset, exist_ok=True) makedirs(path.join('datasets', today_folder), exist_ok=True)
images = listdir(current_images_dir) images = listdir(current_images_dir)
train_size = int(len(images) * train_set / 100.0) train_size = int(len(images) * train_set / 100.0)
@@ -34,6 +29,7 @@ def form_dataset():
def move_annotations(images, folder): def move_annotations(images, folder):
today_dataset = path.join('datasets', today_folder)
destination_images = path.join(today_dataset, folder, 'images') destination_images = path.join(today_dataset, folder, 'images')
makedirs(destination_images, exist_ok=True) makedirs(destination_images, exist_ok=True)
destination_labels = path.join(today_dataset, folder, 'labels') destination_labels = path.join(today_dataset, folder, 'labels')
@@ -60,6 +56,7 @@ def create_yaml():
lines.append(f'val: valid/images') lines.append(f'val: valid/images')
lines.append('') lines.append('')
today_yaml = abspath(path.join('datasets', today_folder, 'data.yaml'))
with open(today_yaml, 'w', encoding='utf-8') as f: with open(today_yaml, 'w', encoding='utf-8') as f:
f.writelines([f'{line}\n' for line in lines]) f.writelines([f'{line}\n' for line in lines])
@@ -82,13 +79,12 @@ if __name__ == '__main__':
# form_dataset() # form_dataset()
# create_yaml() # create_yaml()
model = YOLOv10('datasets/zombobase-latest.pt' or 'yolov10x.yaml') model = YOLOv10(latest_model or 'yolov10x.yaml')
_, yaml = get_yaml_path('2024-06-09')
results = model.train(data=yaml, epochs=2, batch=10, imgsz=640)
print(results) yaml = abspath(path.join('datasets', today_folder, 'data.yaml'))
res_model = path.join(results['save_dir'], '/weights/best.pt') results = model.train(data=yaml, epochs=100, batch=10, imgsz=640)
print(res_model)
shutil.copy(res_model, 'datasets/zombobase-latest2.pt')
pass shutil.copy(f'{results.save_dir}/weights/best.pt', latest_model)
shutil.copytree(results.save_dir, f'models/{today_folder}')
shutil.rmtree('runs')
shutil.rmtree('models/zombobase-latest')