| import gradio as gr |
| import os |
| |
| os.system("pip -qq install yoloxdetect") |
| import torch |
| import json |
| import yoloxdetect2.helpers as yoloxdetectow |
| |
|
|
|
|
| |
| torch.hub.download_url_to_file('https://github.com/ultralytics/yolov5/raw/master/data/images/zidane.jpg', 'zidane.jpg') |
| torch.hub.download_url_to_file('https://raw.githubusercontent.com/obss/sahi/main/tests/data/small-vehicles1.jpeg', 'small-vehicles1.jpeg') |
| torch.hub.download_url_to_file('https://raw.githubusercontent.com/Megvii-BaseDetection/YOLOX/main/assets/dog.jpg', 'dog.jpg') |
|
|
| model = yoloxdetectow.YoloxDetector2('kadirnar/yolox_s-v0.1.1', 'configs.yolox_s', device="cpu", hf_model=True) |
|
|
| def yolox_inference( |
| image_path: gr.inputs.Image = None, |
| model_path: gr.inputs.Dropdown = 'kadirnar/yolox_s-v0.1.1', |
| config_path: gr.inputs.Textbox = 'configs.yolox_s', |
| image_size: gr.inputs.Slider = 640 |
| ): |
| """ |
| YOLOX inference function |
| Args: |
| image: Input image |
| model_path: Path to the model |
| config_path: Path to the config file |
| image_size: Image size |
| Returns: |
| Rendered image |
| """ |
|
|
| |
| |
| pred2 = [] |
| if model : |
| model.torchyolo = True |
| pred2 = model.predict(image_path=image_path, image_size=image_size) |
| |
| |
| |
| |
| |
|
|
| |
| tensor = { |
| "tensorflow": [ |
| ] |
| } |
|
|
| if pred2 is not None: |
| |
| for i, element in enumerate(pred2[0]): |
| object = {} |
| itemclass = round(pred2[2][i].item()) |
| object["classe"] = itemclass |
| object["nome"] = pred2[3][itemclass] |
| object["score"] = pred2[1][i].item() |
| object["x"] = element[0].item() |
| object["y"] = element[1].item() |
| object["w"] = element[2].item() |
| object["h"] = element[3].item() |
| tensor["tensorflow"].append(object) |
| |
| |
|
|
| text = json.dumps(tensor) |
| return text |
| |
|
|
| inputs = [ |
| gr.inputs.Image(type="filepath", label="Input Image"), |
| gr.inputs.Textbox(lines=1, label="Model Path", default="kadirnar/yolox_s-v0.1.1"), |
| gr.inputs.Textbox(lines=1, label="Config Path", default="configs.yolox_s"), |
| gr.inputs.Slider(minimum=320, maximum=1280, default=640, step=32, label="Image Size"), |
| ] |
|
|
| outputs = gr.outputs.Image(type="filepath", label="Output Image") |
| title = "SIMULADOR PARA RECONHECIMENTO DE IMAGEM" |
|
|
| examples = [ |
| ["small-vehicles1.jpeg", "kadirnar/yolox_m-v0.1.1", "configs.yolox_m", 640], |
| ["zidane.jpg", "kadirnar/yolox_s-v0.1.1", "configs.yolox_s", 640], |
| ["dog.jpg", "kadirnar/yolox_tiny-v0.1.1", "configs.yolox_tiny", 640], |
| ] |
|
|
| demo_app = gr.Interface( |
| fn=yolox_inference, |
| inputs=inputs, |
| outputs=["text"], |
| title=title, |
| examples=examples, |
| cache_examples=True, |
| live=True, |
| theme='huggingface', |
| ) |
| demo_app.launch(debug=True, enable_queue=True) |