File size: 2,932 Bytes
0f7e74b
fee4ed8
0f7e74b
 
fee4ed8
0f7e74b
047d5b0
 
 
 
cc65489
13e77a1
 
cc65489
047d5b0
 
22b8a05
 
 
cc65489
 
 
 
 
 
 
 
 
 
 
2a6d2ae
cc65489
fa64131
 
 
22b8a05
 
fa64131
 
 
 
22b8a05
 
fa64131
 
 
22b8a05
 
fa64131
22b8a05
fa64131
22b8a05
 
fa64131
22b8a05
 
 
 
 
 
0f7e74b
fa64131
 
 
047d5b0
 
 
 
5523bc2
fa64131
65a0251
 
 
cc65489
fa64131
7c61955
e47de68
cc65489
396ae71
fa64131
 
65a0251
cc65489
22b8a05
 
 
 
 
 
 
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
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

#(image_object, classifier_pipeline)
#def classify_one_image(classifier_model, dataset_to_classify):
def classify_one_image(classifier_model, dataset_to_classify):
       
    for image in dataset:
        st("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")
    #Image teste load 
    image_object = dataset['pasta'][0]["image"]
    st.image(image_object, caption="Uploaded Image", height=300)
    st.write("### FLAG 3")
    
    #modle instance
    classifier_pipeline = pipeline('image-classification', model=chosen_model_name)
    st.write("### FLAG 4")
    
    #classification
    classification_result = classify_one_image(image_object, classifier_pipeline)
    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")
    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()