File size: 2,625 Bytes
0f7e74b
fee4ed8
0f7e74b
 
fee4ed8
0f7e74b
047d5b0
 
8dd6822
45f8c23
047d5b0
cc65489
13e77a1
6fd8316
45f8c23
047d5b0
73bea8b
b4a533c
62fbd16
6b42839
047d5b0
29401a0
fa64131
22b8a05
 
76c42c2
 
 
 
 
d49d91f
 
9cedd16
 
d49d91f
76c42c2
 
 
 
 
 
 
d49d91f
76c42c2
a587147
047d5b0
88c1db0
 
62fbd16
aad65ce
d862984
aad65ce
 
 
 
49572dd
aad65ce
49572dd
 
aad65ce
 
49572dd
aad65ce
49572dd
 
aad65ce
 
 
 
 
d49d91f
49572dd
6fd8316
 
d49d91f
88c1db0
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
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
            "Nunt/backup_leonardo_2024-02-06"
]
DATASETS = [
            "Nunt/testedata",
            "Nunt/backup_leonardo"       
]           
MAX_N_LABELS = 5
SPLIT_TO_CLASSIFY = 'pasta'

COLS = st.columns([0.75, 0.25]) 
SCROLLABLE_TEXT = COLS[1].container(height=500)


def classify_full_dataset(shosen_dataset_name, chosen_model_name):
    image_count = 0
     
    #modle instance
    classifier_pipeline = pipeline('image-classification', model=chosen_model_name)    
        
    #dataset
    dataset = load_dataset(shosen_dataset_name,"testedata_readme") 
     
    for i in range(len(dataset)):
        SCROLLABLE_TEXT.write("i-1:" + str(i-1))
        image_object = dataset['pasta'][i-1]["image"]
        SCROLLABLE_TEXT.image(image_object, caption="Uploaded Image", width=300)
        #classification
        classification_result = classifier_pipeline(image_object)
        SCROLLABLE_TEXT.write(classification_result)
        #TODO save classification result in dataset
        image_count += 1
        SCROLLABLE_TEXT.write(f"Image count" + str(image_count))
        #SCROLLABLE_TEXT.write(image_count)    
 


def main():
     
    COLS[0].write("# Bulk Image Classification App")
      
    #with CONTAINER_BODY:
    with COLS[0]:
        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 = COLS[0].selectbox("Select the model to use",  MODELS, index=0)
    if chosen_model_name is not None:
        COLS[0].write("You selected")
        COLS[0].write(chosen_model_name)
        
    #Dataset
    shosen_dataset_name = COLS[0].selectbox("Select the dataset to use",  DATASETS, index=0)
    if shosen_dataset_name is not None:
        COLS[0].write("You selected")
        COLS[0].write(shosen_dataset_name)
        
    #click to classify
    if chosen_model_name is not None and shosen_dataset_name is not None:
        if COLS[0].button("Classify images"):
        
            classify_full_dataset(shosen_dataset_name, chosen_model_name)
            COLS[0].write("Classification result {classification_result}")
            COLS[0].write("--- END ---")
            #COLS[0].write(classification_result)
 
                  
if __name__ == "__main__":
    main()