prathampatel1's picture
Update detect.py
6b1c23f verified
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)