Gabolozano commited on
Commit
d4c3acc
1 Parent(s): 945a330

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -21
app.py CHANGED
@@ -1,26 +1,32 @@
1
- from transformers import DetrImageProcessor, DetrForObjectDetection
2
- import torch
3
- from PIL import Image
4
- import requests
5
 
6
- url = "http://images.cocodataset.org/val2017/000000039769.jpg"
7
- image = Image.open(requests.get(url, stream=True).raw)
8
 
9
- # you can specify the revision tag if you don't want the timm dependency
10
- processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
11
- model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
12
 
13
- inputs = processor(images=image, return_tensors="pt")
14
- outputs = model(**inputs)
15
 
16
- # convert outputs (bounding boxes and class logits) to COCO API
17
- # let's only keep detections with score > 0.9
18
- target_sizes = torch.tensor([image.size[::-1]])
19
- results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
 
 
 
 
 
20
 
21
- for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
22
- box = [round(i, 2) for i in box.tolist()]
23
- print(
24
- f"Detected {model.config.id2label[label.item()]} with confidence "
25
- f"{round(score.item(), 3)} at location {box}"
26
- )
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from transformers import pipeline
4
+ from transformers import DetrForObjectDetection, DetrConfig
5
 
6
+ # Initialize the configuration for DetrForObjectDetection
7
+ config = DetrConfig.from_pretrained("facebook/detr-resnet-50")
8
 
9
+ # Create the model for object detection using the specified configuration
10
+ model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", config=config)
 
11
 
12
+ # Initialize the object detection pipeline
13
+ od_pipe = pipeline(task='object-detection', model=model)
14
 
15
+ def get_pipeline_prediction(pil_image):
16
+ # Run the object detection pipeline on the input image
17
+ pipeline_output = od_pipe(pil_image)
18
+
19
+ # You might need to implement or adjust the rendering function based on the `pipeline_output`
20
+ # The `render_results_in_image` function is assumed here to draw bounding boxes and labels on the input image,
21
+ # but you'll need to define it according to your specific needs.
22
+ # For now, the output is directly returned since the question doesn't define `render_results_in_image`.
23
+ return pipeline_output
24
 
25
+ demo = gr.Interface(
26
+ fn=get_pipeline_prediction,
27
+ inputs=gr.Image(label="Input image",
28
+ type="pil"),
29
+ outputs=gr.JSON(label="Detected objects") # Adjusted to show JSON output if rendering function is not defined
30
+ )
31
+
32
+ demo.launch()