From 96ee97f802d81250da7e90d8f5a3c2c092fe2e9e Mon Sep 17 00:00:00 2001 From: "lamonov.pavel" Date: Tue, 8 Jul 2025 09:09:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B0=D1=82=D0=B0=D1=81=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=20=D1=82=D1=80=D0=B5=D0=BD=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D1=87=D0=BD=D1=8B=D0=B5=20=D0=B8=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/dataset_validation.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/scripts/dataset_validation.py b/scripts/dataset_validation.py index 7cc6a9e..ec2279b 100644 --- a/scripts/dataset_validation.py +++ b/scripts/dataset_validation.py @@ -1,5 +1,6 @@ -import os import cv2 +import os +import random from PIL import Image def rename_files(directory_path: str): @@ -56,11 +57,33 @@ def resize_to_height(dir_path: str, target_height=48): new_width = int(float(img.width) * width_percent) resized_img = img.resize((new_width, target_height), Image.LANZOS) resized_img.save(os.path.join(dir_path, filename)) - - + +def split_dataset(dir_path: str): + images_dir = os.path.join(dir_path, "images") + filenames = os.listdir(images_dir) + dataset_length = len(filenames) + random.shuffle(filenames) + train_ratio = 0.8 + val_ratio = 0.2 + train_files_len = round(dataset_length * train_ratio) + val_files_len = round(dataset_length * val_ratio) + train_files = filenames[:train_files_len] + val_files = filenames[train_files_len:train_files_len+val_files_len] + train_file_path = os.path.join(dir_path, "train.txt") + val_file_path = os.path.join(dir_path, "val.txt") + with open(train_file_path, "w") as train_file: + for filename in train_files: + label, _ = filename.split(".") + train_file.write(f"{filename}\t{label}\n") + + with open(val_file_path, "w") as val_file: + for filename in val_files: + label, _ = filename.split(".") + val_file.write(f"{filename}\t{label}\n") # rename_files("train_data/images/") # check_images("train_data/images/") # check_labels("train_data/images/") # check_symbols("train_data/") # max_height("train_data/images") +split_dataset("train_data/")