File size: 1,338 Bytes
1913931
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import requests
from PIL import Image
from io import BytesIO
import torch
import streamlit as st

from transformers import ViTFeatureExtractor, ViTForImageClassification

st.title('๋‚˜์ด๋ฅผ ์˜ˆ์ธก')
uploaded_file = st.file_uploader("๋‚˜์ด ์˜ˆ์ธก ์šฉ ํŒŒ์ผ ์—…๋กœ๋“œ")
if uploaded_file is not None:
    im = Image.open(uploaded_file)
    # Get example image from official fairface repo + read it in as an image
    # r = requests.get('https://github.com/dchen236/FairFace/blob/master/detected_faces/race_Asian_face0.jpg?raw=true')
    # im = Image.open(BytesIO(r.content))

    # Init model, transforms
    model = ViTForImageClassification.from_pretrained('nateraw/vit-age-classifier')
    transforms = ViTFeatureExtractor.from_pretrained('nateraw/vit-age-classifier')

    # Transform our image and pass it through the model
    inputs = transforms(im, return_tensors='pt')
    output = model(**inputs)

    # Predicted Class probabilities
    proba = output.logits.softmax(1)

    values, indices = torch.topk(proba, k=5)

    result_dict = {model.config.id2label[i.item()]: v.item() for i, v in zip(indices.numpy()[0], values.detach().numpy()[0])}
    first_result = list(result_dict.keys())[0]

    print(f'predicted result:{result_dict}')
    print(f'first_result: {first_result}')

    st.write(f'์˜ˆ์ธก๋‚˜์ด : {first_result}')