diff --git a/breeding_date_set.py b/breeding_date_set.py new file mode 100644 index 0000000..2f39933 --- /dev/null +++ b/breeding_date_set.py @@ -0,0 +1,119 @@ +import math +import datetime +import cv2 +import albumentations as A +import numpy as np +import os +def file_magnification(folder_path): + file_txt = [] + file_jpg = [] + for foldername, subfolders, filenames in os.walk(folder_path): + for filename in filenames: + f = filename.split('.') + + if f[-1] == 'txt': + file_txt.append(filename) + elif f[-1] == 'jpg': + file_jpg.append(filename) + + for k in range(len(file_jpg)): + image = cv2.imread(f'{folder_path}\\{file_jpg[k]}') + annotations = [] + with open(f'{folder_path}\\{file_txt[k]}', 'r') as file: + lines = file.readlines() + for line in lines: + annotations.append(line) + + + main_fillet_yolo_conversion = [] + fillet_yolo_bboxes = [] + fillet_yolo_class = [] + print(annotations) + for ii in range(len(annotations)): + a = annotations[ii].split(' ') + for i in range(len(a)): + try: + main_fillet_yolo_conversion.append(int(a[i])) + except ValueError: + main_fillet_yolo_conversion.append(float(a[i])) + print(main_fillet_yolo_conversion) + fillet_yolo_class.append(main_fillet_yolo_conversion[0]) + del main_fillet_yolo_conversion[0] + fillet_yolo_bboxes.append(main_fillet_yolo_conversion) + main_fillet_yolo_conversion = [] + + for o in range(10): + bboxes = fillet_yolo_bboxes + category_ids = fillet_yolo_class + + transform = A.Compose([ + A.HorizontalFlip(p=0.5), + A.RandomBrightnessContrast(p=0.2), + A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=15, p=0.5), + ], bbox_params=A.BboxParams(format='yolo', label_fields=['category_ids'])) + + transformed = transform(image=image, bboxes=bboxes, category_ids=category_ids) + transformed_image = transformed['image'] + transformed_bboxes = transformed['bboxes'] + transformed_category_ids = transformed['category_ids'] + + cv2.imwrite(f'{folder_path}\\{o}_{file_jpg[k]}', transformed_image) + with open(f'{folder_path}\\{o}_{file_txt[k]}', 'w') as f: + for bbox, category_id in zip(transformed_bboxes, transformed_category_ids): + x_center, y_center, width, height = bbox + cla = category_id + f.write(f"{cla} {x_center} {y_center} {width} {height}\n") +file_txt_1 = [] +file_jpg_1 = [] +file_start = 'Zombobase-'+str(datetime.date.today()) +folder_path = ('train') +for foldername, subfolders, filenames in os.walk(folder_path): + for subfolder in subfolders: + folder_path = (f'train\\{subfolder}') + for foldername, subfolders, filenames in os.walk(folder_path): + for filename in filenames: + + f = filename.split('.') + + if f[-1] == 'txt': + file_txt_1.append(filename) + elif f[-1] == 'jpg': + file_jpg_1.append(filename) + +annotations = [] +os.makedirs(file_start) +file = ['test', 'train'] +percent_fille = [0.20,0.10] +for fi, p_f in zip(file, percent_fille): + os.makedirs(f'{file_start}\\{fi}') + + for i in range(math.ceil(len(file_txt_1)* p_f)): + image = cv2.imread(f'D:\\train\\images\\{file_jpg_1[i]}') + with open(f'D:\\train\\labels\\{file_txt_1[i]}', 'r') as file: + lines = file.readlines() + for line in lines: + annotations.append(line) + cv2.imwrite(f'{file_start}\\{fi}\\{file_jpg_1[i]}', image) + with open(f'{file_start}\\{fi}\\{file_txt_1[i]}', 'w') as f: + for iii in range(len(annotations)): + f.write(annotations[iii]) + + annotations = [] + del file_txt_1[i] + del file_jpg_1[i] + +os.makedirs(f'{file_start}\\validation') +for a, j in zip(file_txt_1, file_jpg_1): + image = cv2.imread(f'D:\\train\\images\\{j}') + with open(f'D:\\train\\labels\\{a}', 'r') as file: + lines = file.readlines() + for line in lines: + annotations.append(line) + cv2.imwrite(f'{file_start}\\Validation\\{j}', image) + with open(f'{file_start}\\Validation\\{a}', 'w') as f: + for iii in range(len(annotations)): + f.write(annotations[iii]) + annotations = [] +file = ['test', 'train','validation'] +for i in file: + file_magnification(f'{file_start}\\{i}') \ No newline at end of file diff --git a/images/Himars_vs_Tulpan_000091.jpg b/images/Himars_vs_Tulpan_000091.jpg new file mode 100644 index 0000000..afc1e60 Binary files /dev/null and b/images/Himars_vs_Tulpan_000091.jpg differ diff --git a/labels/Himars_vs_Tulpan_000091.txt b/labels/Himars_vs_Tulpan_000091.txt new file mode 100644 index 0000000..50d774d --- /dev/null +++ b/labels/Himars_vs_Tulpan_000091.txt @@ -0,0 +1,3 @@ +3 0.41877 0.64332 0.06107 0.07926 +7 0.40442 0.78827 0.06779 0.05212 +7 0.19860 0.90662 0.05314 0.05429 \ No newline at end of file