File size: 1,932 Bytes
863aaff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import tensorflow as tf
from tensorflow import keras
import numpy as np
import gradio as gr

model = keras.models.load_model("Model.keras")

classnames = [
    "Acacia",
    "Adenanthera microsperma",
    "Adenium species",
    "Anacardium occidentale",
    "Annona squamosa",
    "Artocarpus altilis",
    "Artocarpus heterophyllus",
    "Barringtonia acutangula",
    "Cananga odorata",
    "Carica papaya",
    "Casuarina equisetifolia",
    "Cedrus",
    "Chrysophyllum cainino",
    "Citrus aurantiifolia",
    "Citrus grandis",
    "Cocos nucifera",
    "Dalbergia oliveri",
    "Delonix regia",
    "Dipterocarpus alatus",
    "Erythrina fusca",
    "Eucalyptus",
    "Ficus microcarpa",
    "Ficus racemosa",
    "Gmelina arborea Roxb",
    "Hevea brasiliensis",
    "Hopea",
    "Khaya senegalensis",
    "Khaya senegalensis A.Juss",
    "Lagerstroemia speciosa",
    "Magnolia alba",
    "Mangifera",
    "Melaleuca",
    "Melia azedarach",
    "Musa",
    "Nephelium lappaceum",
    "Persea",
    "Polyalthia longifolia",
    "Prunnus",
    "Prunus salicina",
    "Psidium guajava",
    "Pterocarpus macrocarpus",
    "Senna siamea",
    "Spondias mombin L",
    "Syzygium nervosum",
    "Tamarindus indica",
    "Tectona grandis",
    "Terminalia catappa",
    "Veitchia merrilli",
    "Wrightia",
    "Wrightia religiosa",
]


def predict(path):
    image = path.reshape((224, 224, 3))
    image = tf.keras.utils.img_to_array(image)
    image = np.expand_dims(image, axis=0)
    pred = model.predict(image, verbose=0)
    pred = pred[0]
    confidences = {classnames[i]: round(float(pred[i]), 2) for i in range(50)}
    return confidences


gr.Interface(
    fn=predict,
    inputs=gr.Image(shape=(224, 224)),
    outputs=gr.Label(num_top_classes=5),
    examples=[
        "Dalbergia oliveri.JPG",
        "Eucalyptus.JPG",
        "Khaya senegalensis.JPG",
        "Syzygium nervosum.JPG",
        
    ],
).launch()