[Python] Gradio + YOLOv8 + Supervision ile domates tespit projesinde Gradio görseli işlemiyor...

Discussão em 'Python' iniciado por Stack, Julho 11, 2025.

  1. Stack

    Stack Membro Participativo

    Merhaba, MacOS (Sonoma) + PyCharm + Python 3.12 ortamında YOLOv8 + Gradio + Supervision kullanarak hatalı domates tespiti projesini geliştiriyorum. Gradio arayüzünde görsel yükleyebiliyorum, anasayfa açılıyor, buraya kadar bir sıkıntı yok. Ancak görsel yüklediğimde: • YOLov8'in görseldeki domatesleri kutucuk içine alıp etiketlemesi ve güven yüzdesi ile göstermesi gerekiyor. • Bunun yerine ya yanlış kutucu çiziyor, yanlış etiketliyor, bazen domateslerin rengini bozuyor veya hiç işlem yapmadan görseli olduğu gibi geri veriyor. Beklediğim: Gradio'da görsel yükleyince, YOLOv8 + denetim boru hattı çalışarak: ✅ Domatesleri doğru kutucuklarla tespit etmesi, ✅ Doğru sınıf etiketi ve yüzde gösterisi, ✅ Gradio'da çıktıyı görüntülüyorum. Şu anki durumda: • Görsel yükleniyor ama YOLO modeli çalışmıyor gibi davranıyor. • İşlem yapılmadan orijinal görsel geri dönüyor. • Bazen hatalı kutu ve yanlış etiket gösteriyor. • Terminalde hata mesajı genel olarak olmuyor, bazen klavye kesintisi ana iş parçacığında... sunucuyu kapatıyor. ile Gradio aniden kapanıyor. Denediğim: • Yolov8 modelimi Ultralytics üzerinden doğru şekilde yükledim. • Supervision ile BoxAnnotator kullanarak açıklamayı denedim. • Gradio'da type="numpy" kullanıyorum. • Terminalden çalıştırmayı denedim ancak durum değişmedi. • Gradio sürümü: 4.20.1, Ultralytics: 8.2. kod örneği; gradio'yu gr olarak içe aktar ultralytics ithalatından YOLO sv olarak ithalat denetimi cv2'yi içe aktar geçici dosyayı içe aktar içe aktarma # Model yükleme model = YOLO("kopya_2_best.pt") # Görsel tahmin fonksiyonu def predict_image(image): sonuçlar = model.predict(image, conf=0.25, iou=0.5, imgsz=416)[0] tespitler = sv.Detections.from_ultralytics(sonuçlar) kutu_annotatör = sv.BoxAnnotator() annotated = box_annotator.annotate(image.copy(), detections) açıklamalı dönüş # Video tahmin fonksiyonu def predict_video(video): temp_dir = tempfile.mkdtemp() kapak = cv2. Video Çekimi (video) fps = cap.get(cv2. KAPAK_PROP_FPS) genişlik = int(cap.get(cv2. CAP_PROP_FRAME_WIDTH)) yükseklik = int(cap.get(cv2. KAPAK_PROP_ÇERÇEVE_YÜKSEKLIĞI)) output_path = os.path.join(temp_dir, "output.mp4") fourcc = cv2. VideoYazar_fourcc(*"mp4v") çıkış = cv2. VideoWriter(output_path, fourcc, fps, (genişlik, yükseklik)) kutu_annotatör = sv.BoxAnnotator() çerçeve_sayısı = 0 Doğru iken: ret, çerçeve = cap.read() ret değilse: mola # Her 3 frame'de bir tahmin yapın (CPU yükünü azaltmak için) eğer çerçeve_sayısı % 3 == 0: sonuçlar = model.predict(frame, conf=0.25, iou=0.5, imgsz=416)[0] tespitler = sv.Detections.from_ultralytics(sonuçlar) annotated_frame = box_annotator.annotate(çerçeve, algılamalar) başka: annotated_frame = çerçeve out.write(annotated_frame) çerçeve_sayısı += 1 cap.release() çıkış.serbest bırakma() return output_path # Gradio arayüzü demo olarak gr.Blocks() ile: gr.Markdown("## Domates Olgunluk ve Çürük Tespiti (YOLOv8 + Supervision)") gr.Tab("Görsel") ile: image_input = gr.Image(type="numpy", label="Görsel Yükle") image_output = gr.Image(label="Etiketlenmiş Çıktı") btn_img = gr.Button("Tahmin Et") btn_img.click(predict_image, inputs=image_input, outputs=image_output) gr.Tab("Video") ile: video_input = gr.Video(label="Video Yükle") video_output = gr.Video(label="Etiketlenmiş Video Çıktısı") btn_vid = gr.Button("Tahmin Et") btn_vid.click(predict_video, inputs=video_input, outputs=video_output) demo.launch() Sorularım:

    1️⃣ Bu durumda Gradio’nun görseli işlememesi veya yanlış çıktı vermesi ne sebepten kaynaklanıyor olabilir? 2️⃣ YOLOv8 + supervision + Gradio entegrasyonunda dikkat etmem gereken ek parametre veya pipeline adımı var mı? 3️⃣ PyCharm + MacOS ortamında Gradio stabil çalışması için önerileriniz nelerdir?

    Yardımcı olursanız çok sevinirim, teşekkürler.

    Continue reading...

Compartilhe esta Página