KAHRAMAN42's picture
Update app.py
12613c6 verified
raw
history blame
1.61 kB
import cv2
from ultralytics import YOLO
import numpy as np
import os
import gradio as gr
__file__= "HUGGINGFACE _MODELS_AND_SPACES"
current_dırectory= os.path.dirname(os.path.abspath(__file__))
folder= os.path.join(current_dırectory,"Cattle_Detection_with_YOLOV8")
pt= os.path.join(folder, "best.pt")
py= os.path.join(folder, "Detection_Video.py")
rqrmt= os.path.join(folder, "requirements.txt")
example_video= os.path.join(folder, "cows-and-cows-and-cows.mp4")
output_video= os.path.join(folder, "output_video.mp4")
def fonk(video_path):
model=YOLO(pt)
cap=cv2.VideoCapture(video_path)
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
size = (frame_width, frame_height)
output_video= "output_video.mp4"
writer = cv2.VideoWriter(output_video,
cv2.VideoWriter_fourcc(*"DIVX"),
10, size)
while True:
ret, frame= cap.read()
if ret!=True:
break
results= model(frame)
for result in results:
if result.boxes is not None and len(result.boxes):
box = result.boxes
x1, y1, x2, y2 = map(int, box.xyxy[0])
print(x1, y1, x2, y2)
frame = cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
writer.write(frame)
writer.release()
cap.release()
return output_video
demo = gr.Interface(fonk,
inputs= gr.Video(),
outputs=gr.Video(),
examples=[example_video],
title= "cows",
cache_examples=True)
demo.launch()