File size: 4,085 Bytes
5f91781
 
a9b715d
 
 
 
3099234
1acfcb4
 
3099234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1acfcb4
3099234
 
1acfcb4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3099234
1acfcb4
3099234
1acfcb4
 
3099234
 
a9b715d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3099234
a9b715d
 
3099234
a9b715d
97609a8
 
3099234
 
 
97609a8
 
a9b715d
 
 
 
 
 
 
97609a8
 
3099234
97609a8
a9b715d
 
 
 
97609a8
 
3099234
a9b715d
 
97609a8
 
3099234
a9b715d
 
3099234
a9b715d
 
 
 
 
97609a8
 
3099234
a9b715d
 
97609a8
 
3099234
a9b715d
 
 
97609a8
 
3099234
97609a8
a9b715d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#import streamlit as st
import gradio as gr
import os
import csv
import time



# Image Classification Using Torch:
import requests
from PIL import Image
from torchvision import transforms
# Download human-readable labels for ImageNet.
response = requests.get("https://git.io/JJkYN")
labels = response.text.split("\n")

def predict(inp):
  inp = transforms.ToTensor()(inp).unsqueeze(0)
  with torch.no_grad():
    prediction = torch.nn.functional.softmax(model(inp)[0], dim=0)
    confidences = {labels[i]: float(prediction[i]) for i in range(1000)}    
  return confidences

import gradio as gr
interface1=gr.Interface(fn=predict, 
             inputs=gr.Image(type="pil"),
             outputs=gr.Label(num_top_classes=3),
             examples=["lion.jpg", "cheetah.jpg"])

# Image Classification Using VIT - Vision Image Transformers Architecture

import gradio as gr
interface2=gr.Interface.load(
             "huggingface/google/vit-base-patch16-224",
             examples=["alligator.jpg", "laptop.jpg"])


# ONNX Model Zoo:

gr.Markdown("""

https://github.com/onnx/models

""")

interface1.launch()
interface2.launch()


uploaded_images = {'characters': {}, 'terrain': {}}

def get_image_path(img, name, image_type):
    file_path = f"data/uploadedImages/{image_type}/{name}/{img.name}"
    os.makedirs(os.path.dirname(file_path), exist_ok=True)
    with open(file_path, "wb") as img_file:
        img_file.write(img.getbuffer())
    return file_path

def update_csv_file(uploaded_file, name, image_type):
    csv_file_path = "Resources.csv"
    with open(csv_file_path, mode='a', newline='') as csv_file:
        csv_writer = csv.writer(csv_file)
        csv_writer.writerow([name, uploaded_file.name, image_type])

def get_uploaded_files_info():
    csv_file_path = "Resources.csv"
    with open(csv_file_path, mode='r') as csv_file:
        csv_reader = csv.reader(csv_file)
        files_info = []
        for row in csv_reader:
            files_info.append(row)
        return files_info

def display_images_from_csv():
    files_info = get_uploaded_files_info()
    for row in files_info:
        if row[2] == 'characters':
            img_path = f"data/uploadedImages/{row[2]}/{row[0]}/{row[1]}"
            #st.sidebar.image(img_path, width=100, caption=row[0])
        else:
            img_path = f"data/uploadedImages/{row[2]}/{row[0]}/{row[1]}"
            #st.image(img_path, width=100, caption=row[0])


# Rewrite for gradio
#image_type = gr.selectbox('Choose image type:', options=['characters', 'terrain'])
#name = gr.text_input('Enter a name for the image:')
#uploaded_files = gr.file_uploader('Upload image(s)', type=['png', 'jpg'], accept_multiple_files=True)



for uploaded_file in uploaded_files:
    if uploaded_file is not None:
        # Get actual image file
        bytes_data = get_image_path(uploaded_file, name, image_type)
        uploaded_images[image_type].setdefault(name, [])
        uploaded_images[image_type][name].append(bytes_data)

        # Rewrite for gradio
        #gr.image(bytes_data, use_column_width=True)
        
        update_csv_file(uploaded_file, name, image_type)

if image_type == 'characters':
    if uploaded_images['characters']:

        # Rewrite for gradio
       # gr.sidebar.write('**Characters**')
        for name, files in uploaded_images['characters'].items():
            for file in files:

                # Rewrite for gradio
                #gr.sidebar.image(file, width=100, caption=name)
else:
    if uploaded_images['terrain']:
        #st.write('**Terrain**')
        row = []
        for name, files in uploaded_images['terrain'].items():
            for file in files:
                row.append(file)
                if len(row) == 3:

                    # Rewrite for gradio
                    #gr.image(row, width=100 * 3)
                    row = []
        if row:

            # Rewrite for gradio
            #gr.image(row, width=100 * len(row)) # Last row, if not complete

while True:
    time.sleep(20)

    # Rewrite for gradio
    #gr.empty()
    
    display_images_from_csv()