File size: 3,767 Bytes
0f7e74b
fee4ed8
0f7e74b
 
fee4ed8
0f7e74b
047d5b0
 
 
 
cc65489
13e77a1
 
cc65489
047d5b0
73bea8b
047d5b0
22b8a05
 
73bea8b
22b8a05
cc65489
73bea8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a35f404
cc65489
fa64131
 
 
22b8a05
 
fa64131
 
596475f
 
 
 
 
 
fa64131
 
22b8a05
 
fa64131
73bea8b
fa64131
22b8a05
 
fa64131
22b8a05
 
 
 
 
0f7e74b
047d5b0
a35f404
596475f
5523bc2
fffff42
641cb95
fffff42
 
641cb95
 
fffff42
 
596475f
 
 
396ae71
fffff42
596475f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0f7e74b
 
 
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
import streamlit as st
from transformers import pipeline
from PIL import Image
from datasets import load_dataset, Image, list_datasets
from PIL import Image

MODELS = [
            "google/vit-base-patch16-224", #Classifição geral
            "nateraw/vit-age-classifier" #Classifição de idade
]
DATASETS = [
            "Nunt/testedata",
            "Nunt/backup_leonardo_2024-02-01" 
]
MAX_N_LABELS = 5
SPLIT_TO_CLASSIFY = 'pasta'

#(image_object, classifier_pipeline)
#def classify_one_image(classifier_model, dataset_to_classify):
#classify_one_image(image_object, classifier_pipeline)
def classify_one_image(classifier_model, dataset_to_classify):
       
       
          
    #image_object = dataset[SPLIT_TO_CLASSIFY][i]["image"]
    #st.image(image_object, caption="Uploaded Image", width=300)

       
    #for i in range(len(dataset_to_classify)): 
    #for image in dataset_to_classify:
        #image_object = dataset[SPLIT_TO_CLASSIFY][i]["image"]
        #st.image(image_object, caption="Uploaded Image", width=300)
        
        #st.write(f"Image classification: ", image['file'])

        # image_path = image['file']
        # img = Image.open(image_path)
        # st.image(img, caption="Original image", use_column_width=True)
        # results = classifier(image_path, top_k=MAX_N_LABELS)
        # st.write(results)
        # st.write("----")
    
    return "done" 



def classify_full_dataset(shosen_dataset_name, chosen_model_name):
    image_count = 0
     
    #dataset
    dataset = load_dataset(shosen_dataset_name,"testedata_readme")
    with col2:
        #Image teste load 
        image_object = dataset['pasta'][0]["image"]
        st.image(image_object, caption="Uploaded Image", width=300)
        st.write("### FLAG 3")
        
    #modle instance
    classifier_pipeline = pipeline('image-classification', model=chosen_model_name)
    st.write("### FLAG 4")
    
    #classification
    classification_result = classifier_pipeline(image_object)
    st.write(classification_result)
    st.write("### FLAG 5")
    #classification_array.append(classification_result)
    
    #save classification
    
    image_count += 1
    
    return image_count

def main():
    st.title("Bulk Image Classification DEMO")
    col1, col2 = st.columns([3, 1])
    
    # Restart or reset your app
    
    if st.button("Restart"):
    # Code to restart or reset your app goes here
        import subprocess
        subprocess.call(["shutdown", "-r", "-t", "0"])
    
    
    with col1:
        st.markdown("This app uses several 🤗 models to classify images stored in 🤗 datasets.")
        st.write("Soon we will have a dataset template")
        
      
            
        #Model
        chosen_model_name = st.selectbox("Select the model to use",  MODELS, index=0)
        if chosen_model_name is not None:
            st.write("You selected", chosen_model_name) 
            
        #Dataset
        shosen_dataset_name = st.selectbox("Select the dataset to use",  DATASETS, index=0)
        if shosen_dataset_name is not None:
            st.write("You selected", shosen_dataset_name)
            
        #click to classify
        #image_object = dataset['pasta'][0]  
        if chosen_model_name is not None and shosen_dataset_name is not None:
            if st.button("Classify images"):
            
                #classification_array =[]
                classification_result = classify_full_dataset(shosen_dataset_name, chosen_model_name)
                st.write(f"Classification result: {classification_result}")
                #classification_array.append(classification_result)
                #st.write("# FLAG 6")
                #st.write(classification_array)   

if __name__ == "__main__":
    main()