import base64 import io import cv2 import requests import json import gradio as gr import os from PIL import Image import numpy as np from PIL import ImageOps # Accessing a specific environment variable api_key = os.environ.get('devisionx') # Checking if the environment variable exists if not api_key: print("devisionx environment variable is not set.") exit() # Define a function to call the API and get the results def base64str_to_PILImage(base64str): base64_img_bytes = base64str.encode('utf-8') base64bytes = base64.b64decode(base64_img_bytes) bytesObj = io.BytesIO(base64bytes) return ImageOps.exif_transpose(Image.open(bytesObj)) def get_results(image, prompt): threshold = 0.5 # Convert the NumPy array to PIL image image = Image.fromarray(image) # Convert the image to base64 string with io.BytesIO() as output: image.save(output, format="JPEG") base64str = base64.b64encode(output.getvalue()).decode("utf-8") # Prepare the payload (Adjust this part according to the API requirements) payload = json.dumps({"base64str": base64str, "classes": prompt}) # Send the request to the API response = requests.put(api_key, data=payload) # Parse the JSON response data = response.json() print(response.status_code) print(data) # Access the values (Adjust this part according to the API response format) output_image_base64 = data['firstName'] # Assuming the API returns the output image as base64 # Convert the output image from base64 to PIL and then to NumPy array output_image = base64str_to_PILImage(output_image_base64) output_image = np.array(output_image) return output_image # Define the input components for Gradio (adding a new input for the prompt) image_input = gr.inputs.Image() text_input = gr.inputs.Textbox(label="Prompt") # New input for the text prompt # Define the output components for Gradio (including both image and text) outputs = gr.Image(type="numpy", label="Output Image") # Define the text description within an HTML
Description:
We present a demo for performing object segmentation with training a Yolov8-seg on wheel Image dataset. The model was trained on 696 training images and validated on 199 images.
Usage:
You can upload wheel Image images, and the demo will provide you with your segmented image.
Dataset:
This dataset comprises a total of 994 images, which are divided into three distinct sets for various purposes:
License: This dataset is made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
To access and download this dataset, please follow this link: Dataset Download
Download Dataset:
To download the dataset we used, you can use the following command in colab:
!wget https://universe.roboflow.com/ds/OPPOJjnJPs?key=5yzDMD610e
Feel free to explore and use this repository for your object segmentation needs. If you have any questions or need assistance, please don't hesitate to reach out.