File size: 1,089 Bytes
972c1d0
 
 
 
 
6b1c23f
972c1d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import pandas as pd
from ultralytics import YOLO

class Detection:
    def __init__(self) -> None:
        self.__obd_model = YOLO('model/obd_best.pt')

    def detect_defect(self, image_path) -> pd.DataFrame:
        result_obd = self.__obd_model.predict(image_path, stream=False)  # Adjust paths as needed
        
        # Prepare data for CSV
        data = []
        for result in result_obd:
            cnt = 0
            for i in result_obd[0].boxes.cls.tolist():
                data.append({
                    "Image/File Name": result.path,
                    "Detected Class": self.__obd_model.names[int(i)],
                    "Confidence Score": result.boxes.conf.tolist()[cnt],
                    "x1": result.boxes.xyxy.tolist()[cnt][0],
                    "y1": result.boxes.xyxy.tolist()[cnt][1],
                    "x2": result.boxes.xyxy.tolist()[cnt][2],
                    "y2": result.boxes.xyxy.tolist()[cnt][3]
                    })
                cnt = cnt + 1
        
        # Convert to DataFrame and save as CSV
        return pd.DataFrame(data)