D3V1L1810 commited on
Commit
7990fe7
·
verified ·
1 Parent(s): a696303

Upload 4 files

Browse files
Covid_Positive_Negative_Classify_v1.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef5b9e503f812a5c30fa5471c00ce287e77dbd311f353d2ae2cb8b98afc402ed
3
+ size 31685401
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("Covid_Positive_Negative_Classify_v1.pt")
11
+
12
+ def detect_objects(images):
13
+ results = model(images)
14
+ classes={0:"covid -ve", 1:"covid +ve"}
15
+ names=[]
16
+ probss=[]
17
+ for result in results:
18
+ probs = result.probs.top1
19
+ probss.append(probs)
20
+
21
+ arr=[]
22
+ arr.append(classes[probs])
23
+ names.append(arr)
24
+ return names, probss
25
+
26
+ def create_solutions(image_urls, names, probss):
27
+ solutions = [] #list to store all the objects
28
+
29
+ for image_url, class_name, prob in zip(image_urls, names, probss):
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, probss = detect_objects(images) # Perform object detection
65
+ solutions = create_solutions(image_urls, names, probss) # 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="Covid +ve -ve Classification with API Integration")
76
+ application.launch()
covid190042.png ADDED
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ ultralytics