import os import sys sys.path.append(os.getcwd()) from Lib.Const import COLOR_MAP, LABELS from Lib.DetectFaultOnnx import DetectFaults import cv2 import gradio as gr demoImages = [ "data/DJI_20240905095004_0007_W.JPG", "data/DJI_20240905091530_0003_W.JPG", "data/DJI_20240905094647_0003_W.JPG", "data/DJI_20240905094647_0003_Z.JPG", "data/DJI_20240905101846_0005_W.JPG", "data/16_3450.png", "data/16_3735.png", "data/16_3900.png", "data/19_00350.png", "data/25_00272.png", "data/67_02661.png" ] def Warning(): gr.Info("DGH ARGE YAZILIM DANIŞMANLIK ENERJİ İNŞAAT SAN.TİC.LTD.ŞTİ", duration=0.5) with gr.Blocks(css="footer{display:none !important}") as block: gr.Markdown("## Yüksek Gerilim Hattı İzolatörlerinin Arıza Tespiti - Demo") gr.Markdown("**Ark İzi, Kırık ve Eksik İzolatör Hatalarını Tespit Eder**") with gr.Row(): with gr.Column(): inputImage = gr.Image(label="Fotoğraf") with gr.Column(): thresholdSlider = gr.Slider(0, 1, value=0.25, label="Model Eşik Değeri", info="0 ve 1 arası seçiniz.") iouThresholdSlider = gr.Slider(0, 1, value=0.45, label="IOU (Intersection Over Union) Eşik Değeri", info="0 ve 1 arası seçiniz.") with gr.Accordion("Demo Görsellerden Seçebilirsiniz", open=False): imageGallery = gr.Examples( examples=[ os.path.join("data", img_name) for img_name in sorted(os.listdir("data")) ], inputs=[inputImage], label="Örnekler", cache_examples=False, examples_per_page=7 ) processButton = gr.Button("Tespit Et") results = gr.Textbox(label="Log") gr.HTML("") processedImageGallery = gr.Gallery( label="Sonuçlar", rows=1, columns=2, object_fit="contain", height="auto" ) annotatedImage = gr.AnnotatedImage(color_map=COLOR_MAP) @processButton.click(outputs=[processedImageGallery, annotatedImage, results], inputs=[inputImage, thresholdSlider, iouThresholdSlider]) def Process(image, model_threshold, iouThresholdSlider): if image is None: raise gr.Warning("Lütfen görüntü yükleyiniz veya hazır seçiniz!", duration=3) img0, boxes, labels = DetectFaults(image, model_threshold, iouThresholdSlider) if len(boxes) == 0: raise gr.Error("Bir Hata ile Karşılaşıldı: Görüntüde Tespit Yapılamadı 💥!", duration=5) sections = [] for b, c in zip(boxes, labels): sections+=[(b, LABELS[c])] image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) return [img0], (image, sections), "Görüntü İşlendi!" block.load(Warning) block.queue(max_size=10) block.launch(server_name="0.0.0.0", server_port=1071)