Updated paths

This commit is contained in:
Kristofers Solo 2022-12-14 00:31:28 +02:00
parent 5881607373
commit 9341c78ed8
5 changed files with 31 additions and 31 deletions

View File

@ -13,6 +13,6 @@ def detect_traffic_light_color_image() -> None:
model_traffic_lights_nn = keras.models.load_model(str(MODEL_PATH))
# Go through all image files, and detect the traffic light color.
for file in Path.iterdir(IMAGES_IN_PATH):
for file in IMAGES_IN_PATH.iterdir():
image, out, file_name = perform_object_detection(load_ssd_coco(), file, save_annotated=True, model_traffic_lights=model_traffic_lights_nn)
logger.info(f"{file} {out}")

View File

@ -14,7 +14,7 @@ from loguru import logger
@logger.catch
def extract_traffic_lights() -> None:
files = Path.iterdir(INPUT_PATH)
files = INPUT_PATH.iterdir()
# Load the object detection model
this_model = load_ssd_coco()
@ -68,7 +68,7 @@ def extract_traffic_lights() -> None:
traffic_light = cv2.cvtColor(traffic_light, cv2.COLOR_RGB2BGR)
# Store the cropped image in a folder named 'traffic_light_cropped'
cv2.imwrite(str(Path.joinpath(CROPPED_IMAGES_PATH, f"{traffic_light_count}.jpg")), traffic_light)
cv2.imwrite(str(CROPPED_IMAGES_PATH.joinpath(f"{traffic_light_count}.jpg")), traffic_light)
# Increment the number of traffic lights by 1
traffic_light_count += 1

View File

@ -87,7 +87,7 @@ def load_ssd_coco() -> tf.saved_model.LoadOptions:
@logger.catch
def save_image_annotated(image_rgb, file_name: Path, output, model_traffic_lights=None) -> None:
"""Annotate the image with the object types, and generate cropped images of traffic lights."""
output_file = Path.joinpath(IMAGES_OUT_PATH, file_name.name)
output_file = IMAGES_OUT_PATH.joinpath(file_name.name)
# For each bounding box that was detected
for idx, (box, object_class) in enumerate(zip(output["boxes"], output["detection_classes"])):

View File

@ -5,31 +5,31 @@ from loguru import logger
BASE_PATH = Path(__file__).resolve().parent.parent.parent
MODEL_PATH = Path.joinpath(BASE_PATH, "model.h5")
LOGS_PATH = Path.joinpath(BASE_PATH, ".logs")
ASSETS_PATH = Path.joinpath(BASE_PATH, "assets")
MODEL_PATH = BASE_PATH.joinpath("model.h5")
LOGS_PATH = BASE_PATH.joinpath(".logs")
ASSETS_PATH = BASE_PATH.joinpath("assets")
VALID_PATH = Path.joinpath(ASSETS_PATH, "out_valid")
VALID_PATH = ASSETS_PATH.joinpath("out_valid")
DETECTION_PATH = Path.joinpath(ASSETS_PATH, "detection")
IMAGES_IN_PATH = Path.joinpath(DETECTION_PATH, "images_in")
IMAGES_OUT_PATH = Path.joinpath(DETECTION_PATH, "images_out")
VIDEOS_IN_PATH = Path.joinpath(DETECTION_PATH, "videos_in")
VIDEOS_OUT_PATH = Path.joinpath(DETECTION_PATH, "videos_out")
DETECTION_PATH = ASSETS_PATH.joinpath("detection")
IMAGES_IN_PATH = DETECTION_PATH.joinpath("images_in")
IMAGES_OUT_PATH = DETECTION_PATH.joinpath("images_out")
VIDEOS_IN_PATH = DETECTION_PATH.joinpath("videos_in")
VIDEOS_OUT_PATH = DETECTION_PATH.joinpath("videos_out")
DATESET_PATH = Path.joinpath(ASSETS_PATH, "dataset")
GREEN_PATH = Path.joinpath(DATESET_PATH, "0_green")
YELLOW_PATH = Path.joinpath(DATESET_PATH, "1_yellow")
RED_PATH = Path.joinpath(DATESET_PATH, "2_red")
NOT_PATH = Path.joinpath(DATESET_PATH, "3_not")
DATESET_PATH = ASSETS_PATH.joinpath("dataset")
GREEN_PATH = DATESET_PATH.joinpath("0_green")
YELLOW_PATH = DATESET_PATH.joinpath(DATESET_PATH, "1_yellow")
RED_PATH = DATESET_PATH.joinpath("2_red")
NOT_PATH = DATESET_PATH.joinpath("3_not")
EXTRACTION_PATH = Path.joinpath(ASSETS_PATH, "extraction")
CROPPED_IMAGES_PATH = Path.joinpath(EXTRACTION_PATH, "cropped")
INPUT_PATH = Path.joinpath(EXTRACTION_PATH, "input")
EXTRACTION_PATH = ASSETS_PATH.joinpath("extraction")
CROPPED_IMAGES_PATH = EXTRACTION_PATH.joinpath("cropped")
INPUT_PATH = EXTRACTION_PATH.joinpath("input")
PATHS = (LOGS_PATH, ASSETS_PATH, VALID_PATH, DETECTION_PATH, IMAGES_IN_PATH, IMAGES_OUT_PATH, VIDEOS_IN_PATH, VIDEOS_OUT_PATH,
DATESET_PATH, GREEN_PATH, YELLOW_PATH, RED_PATH, NOT_PATH, EXTRACTION_PATH, CROPPED_IMAGES_PATH, INPUT_PATH)
PATHS = (LOGS_PATH, VALID_PATH, IMAGES_IN_PATH, IMAGES_OUT_PATH, VIDEOS_IN_PATH, VIDEOS_OUT_PATH,
GREEN_PATH, YELLOW_PATH, RED_PATH, NOT_PATH, CROPPED_IMAGES_PATH, INPUT_PATH)
@logger.catch
@ -37,11 +37,11 @@ def create_dirs(fresh: bool = False) -> None:
if fresh:
rmtree(ASSETS_PATH)
rmtree(LOGS_PATH)
Path.unlink(MODEL_PATH)
MODEL_PATH.unlink()
create_dirs()
logger.info("Deleted all dirs")
else:
for path in PATHS:
if not Path.exists(path):
Path.mkdir(path)
if not path.exists():
path.mkdir(parents=True, exist_ok=True)
logger.info(f"Created dir {path}")

View File

@ -130,10 +130,10 @@ def train_traffic_light_color() -> None:
# Load the cropped traffic light images from the appropriate directory
img_0_green = load_rgb_images(Path.iterdir(GREEN_PATH), shape)
img_1_yellow = load_rgb_images(Path.iterdir(YELLOW_PATH), shape)
img_2_red = load_rgb_images(Path.iterdir(RED_PATH), shape)
img_3_not_traffic_light = load_rgb_images(Path.iterdir(NOT_PATH), shape)
img_0_green = load_rgb_images(GREEN_PATH.iterdir(), shape)
img_1_yellow = load_rgb_images(YELLOW_PATH.iterdir(), shape)
img_2_red = load_rgb_images(RED_PATH.iterdir(), shape)
img_3_not_traffic_light = load_rgb_images(NOT_PATH.iterdir(), shape)
# Create a list of the labels that is the same length as the number of images in each
# category
@ -259,7 +259,7 @@ def train_traffic_light_color() -> None:
# Create the name of the directory and the file for the validation data set
# After each run, delete this out_valid/ directory so that old files are not
# hanging around in there.
file_name = str(Path.joinpath(VALID_PATH, f"{idx}_{label}_{np.argmax(str(y_value))}.jpg"))
file_name = str(VALID_PATH.joinpath(f"{idx}_{label}_{np.argmax(str(y_value))}.jpg"))
image = image_as_ar[0]
# Reverse the image preprocessing process