D3V1L1810 commited on
Commit
91eec32
·
verified ·
1 Parent(s): 1e883e3

Upload 5 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ Negative.jpg filter=lfs diff=lfs merge=lfs -text
37
+ Positive.jpg filter=lfs diff=lfs merge=lfs -text
ART_Positive_Negative_Detection_v1.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42af7ad577a211f82b0c2c6d8afef8b2654c3291d81ddca93d13857a782ffab6
3
+ size 52034945
Negative.jpg ADDED

Git LFS Details

  • SHA256: 130a9a1e5b69f7ae4abb5f104370a83e2250b2b5e96720d7cc1a98df53dd7dd6
  • Pointer size: 133 Bytes
  • Size of remote file: 17.2 MB
Positive.jpg ADDED

Git LFS Details

  • SHA256: 9e7ff41d114b767c827834d230cee8b18db9717c93506d98352c0c3c34c670bd
  • Pointer size: 133 Bytes
  • Size of remote file: 17.1 MB
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image
3
+ from ultralytics import YOLO
4
+ import requests
5
+ import json
6
+ import logging
7
+
8
+ logging.basicConfig(level=logging.INFO)
9
+
10
+ model = YOLO("ART_Positive_Negative_Detection_v1.pt")
11
+
12
+ def detect_objects(images):
13
+ results = model(images)
14
+ classes={ 0: "Positive", 1: "Negative"}
15
+ names = []
16
+ results = model(images, conf=0.3)
17
+ for result in results:
18
+ if len(result.boxes) > 0:
19
+ class_index = result.boxes.cls[0].item()
20
+ class_name = classes[class_index]
21
+ names.append([class_name])
22
+ else:
23
+ names.append(['None'])
24
+ return names
25
+
26
+ def create_solutions(image_urls, names):
27
+ solutions = [] #list to store all the objects
28
+
29
+ for image_url, class_name in zip(image_urls, names):
30
+ obj = {"url": image_url, "answer": [class_name] }
31
+ solutions.append(obj)
32
+ return solutions
33
+
34
+ # def send_results_to_api(data, result_url):
35
+ # # Example function to send results to an API
36
+ # headers = {"Content-Type": "application/json"}
37
+ # response = requests.post(result_url, json=data, headers=headers)
38
+ # if response.status_code == 200:
39
+ # return response.json() # Return any response from the API if needed
40
+ # else:
41
+ # return {"error": f"Failed to send results to API: {response.status_code}"}
42
+
43
+ def process_images(params):
44
+ try:
45
+ params = json.loads(params)
46
+ except json.JSONDecodeError as e:
47
+ logging.error(f"Invalid JSON input: {e.msg} at line {e.lineno} column {e.colno}")
48
+ return {"error": f"Invalid JSON input: {e.msg} at line {e.lineno} column {e.colno}"}
49
+
50
+ image_urls = params.get("urls", [])
51
+ # api = params.get("api", "")
52
+ # job_id = params.get("job_id", "")
53
+
54
+ if not image_urls:
55
+ logging.error("Missing required parameters: 'urls'")
56
+ return {"error": "Missing required parameters: 'urls'"}
57
+
58
+ try:
59
+ images = [Image.open(requests.get(url, stream=True).raw) for url in image_urls] # images from URLs
60
+ except Exception as e:
61
+ logging.error(f"Error loading images: {e}")
62
+ return {"error": f"Error loading images: {str(e)}"}
63
+
64
+ names = detect_objects(images) # Perform object detection
65
+ solutions = create_solutions(image_urls, names) # Create solutions with image URLs and bounding boxes
66
+
67
+ # result_url = f"{api}/{job_id}"
68
+ # send_results_to_api(solutions, result_url)
69
+
70
+ return json.dumps({"solutions": solutions})
71
+
72
+ inputt = gr.Textbox(label="Parameters (JSON format) Eg. img_url:['','']")
73
+ outputs = gr.JSON()
74
+
75
+ application = gr.Interface(fn=process_images, inputs=inputt, outputs=outputs, title="ART +ve -ve Detection with API Integration")
76
+ application.launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ ultralytics