sitammeur commited on
Commit
fb4eeb3
·
verified ·
1 Parent(s): 64ee5b5

Delete src

Browse files
src/__init__.py DELETED
File without changes
src/app/__init__.py DELETED
File without changes
src/app/predict_pose.py DELETED
@@ -1,68 +0,0 @@
1
- import sys
2
- import PIL.Image as Image
3
- from ultralytics import YOLO
4
- import gradio as gr
5
- import spaces
6
-
7
- # Local imports
8
- from src.logger import logging
9
- from src.exception import CustomExceptionHandling
10
-
11
-
12
- @spaces.GPU
13
- def predict_pose(
14
- img: str,
15
- conf_threshold: float,
16
- iou_threshold: float,
17
- max_detections: int,
18
- model_name: str,
19
- ) -> Image.Image:
20
- """
21
- Predicts objects in an image using a YOLOv8 model with adjustable confidence and IOU thresholds.
22
-
23
- Args:
24
- - img (str or numpy.ndarray): The input image or path to the image file.
25
- - conf_threshold (float): The confidence threshold for object detection.
26
- - iou_threshold (float): The Intersection Over Union (IOU) threshold for non-max suppression.
27
- - max_detections (int): The maximum number of detections allowed.
28
- - model_name (str): The name or path of the YOLOv8 model to be used for prediction.
29
-
30
- Returns:
31
- PIL.Image.Image: The image with predicted objects plotted on it.
32
- """
33
- try:
34
- # Check if image is None
35
- if img is None:
36
- gr.Warning("Please provide an image.")
37
-
38
- # Load the YOLO model
39
- model = YOLO(model_name)
40
-
41
- # Predict objects in the image
42
- results = model.predict(
43
- source=img,
44
- conf=conf_threshold,
45
- iou=iou_threshold,
46
- max_det=max_detections,
47
- show_labels=True,
48
- show_conf=True,
49
- imgsz=640,
50
- half=True,
51
- device="cuda:0",
52
- )
53
-
54
- # Plot the predicted objects on the image
55
- for r in results:
56
- im_array = r.plot()
57
- im = Image.fromarray(im_array[..., ::-1])
58
-
59
- # Log the successful prediction
60
- logging.info("Pose estimated successfully.")
61
-
62
- # Return the image
63
- return im
64
-
65
- # Handle exceptions that may occur during the process
66
- except Exception as e:
67
- # Custom exception handling
68
- raise CustomExceptionHandling(e, sys) from e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/exception.py DELETED
@@ -1,50 +0,0 @@
1
- """
2
- This module defines a custom exception handling class and a function to get error message with details of the error.
3
- """
4
-
5
- # Standard Library
6
- import sys
7
-
8
- # Local imports
9
- from src.logger import logging
10
-
11
-
12
- # Function Definition to get error message with details of the error (file name and line number) when an error occurs in the program
13
- def get_error_message(error, error_detail: sys):
14
- """
15
- Get error message with details of the error.
16
-
17
- Args:
18
- - error (Exception): The error that occurred.
19
- - error_detail (sys): The details of the error.
20
-
21
- Returns:
22
- str: A string containing the error message along with the file name and line number where the error occurred.
23
- """
24
- _, _, exc_tb = error_detail.exc_info()
25
-
26
- # Get error details
27
- file_name = exc_tb.tb_frame.f_code.co_filename
28
- return "Error occured in python script name [{0}] line number [{1}] error message[{2}]".format(
29
- file_name, exc_tb.tb_lineno, str(error)
30
- )
31
-
32
-
33
- # Custom Exception Handling Class Definition
34
- class CustomExceptionHandling(Exception):
35
- """
36
- Custom Exception Handling:
37
- This class defines a custom exception that can be raised when an error occurs in the program.
38
- It takes an error message and an error detail as input and returns a formatted error message when the exception is raised.
39
- """
40
-
41
- # Constructor
42
- def __init__(self, error_message, error_detail: sys):
43
- """Initialize the exception"""
44
- super().__init__(error_message)
45
-
46
- self.error_message = get_error_message(error_message, error_detail=error_detail)
47
-
48
- def __str__(self):
49
- """String representation of the exception"""
50
- return self.error_message
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/logger.py DELETED
@@ -1,21 +0,0 @@
1
- # Importing the required modules
2
- import os
3
- import logging
4
- from datetime import datetime
5
-
6
- # Creating a log file with the current date and time as the name of the file
7
- LOG_FILE = f"{datetime.now().strftime('%m_%d_%Y_%H_%M_%S')}.log"
8
-
9
- # Creating a logs folder if it does not exist
10
- logs_path = os.path.join(os.getcwd(), "logs", LOG_FILE)
11
- os.makedirs(logs_path, exist_ok=True)
12
-
13
- # Setting the log file path and the log level
14
- LOG_FILE_PATH = os.path.join(logs_path, LOG_FILE)
15
-
16
- # Configuring the logger
17
- logging.basicConfig(
18
- filename=LOG_FILE_PATH,
19
- format="[ %(asctime)s ] %(lineno)d %(name)s - %(levelname)s - %(message)s",
20
- level=logging.INFO,
21
- )