Moritz Langer commited on
Commit
93df725
1 Parent(s): 2fd875f
Files changed (1) hide show
  1. app.py +241 -4
app.py CHANGED
@@ -1,9 +1,246 @@
 
1
  import gradio as gr
 
 
 
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
 
6
- iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- iface.launch()
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastai.vision.widgets import *
2
  import gradio as gr
3
+ import numpy as np
4
+ from operator import itemgetter
5
+ from fastai.vision.all import *
6
 
 
 
7
 
8
+ learn = load_learner("./plants_10_epochs.pkl")
 
9
 
10
+ categories = ('Salvia officinalis',
11
+ 'Allium sativum',
12
+ 'Coriandrum sativum',
13
+ 'Myrica gale',
14
+ 'Curcuma longa',
15
+ 'Xylopia aethiopica',
16
+ 'Thymus vulgaris',
17
+ 'Tamarindus indica',
18
+ 'Artemisia pallens',
19
+ 'Lavandula latifolia',
20
+ 'Porophyllum ruderale',
21
+ 'Achillea millefolium',
22
+ 'Tagetes minuta',
23
+ 'Citrus aurantifolia',
24
+ 'Mentha longifolia',
25
+ 'Dictamnus albus',
26
+ 'Cuminum cyminum',
27
+ 'Rosa centifolia',
28
+ 'Pelargonium graveolens',
29
+ 'Rumex acetosa',
30
+ 'Rosa spinossima',
31
+ 'Lavandula stoechas',
32
+ 'Crocus sativus',
33
+ 'Rosmarinus officinalis',
34
+ 'Agastache foeniculum',
35
+ 'Nigella sativa',
36
+ 'Rosa rugosa',
37
+ 'Trigonella caerulea',
38
+ 'Herbs and Spices.',
39
+ 'Capparis spinosa',
40
+ 'Piper longum',
41
+ 'Lippia graveolens',
42
+ 'Helichrysum italicum',
43
+ 'Illicium verum',
44
+ 'Mentha aquatica',
45
+ 'Carum carvi',
46
+ 'Angelica atropurpurea',
47
+ 'Schmeil-Fitschen, Flora von Deutschland',
48
+ 'Agastache mexicana',
49
+ 'Kräuter und Gewürze.',
50
+ 'Aloysia citrodora',
51
+ 'Amomum subulatum',
52
+ 'Rungia klossii',
53
+ 'Dysphania ambrosioides',
54
+ 'Rosa damascena',
55
+ 'Filipendula ulmaria',
56
+ 'Teucrium scorodonia',
57
+ 'Rosa multiflora',
58
+ 'Pimpinella anisum',
59
+ 'Piper cubeba',
60
+ 'Myristica fragrans',
61
+ 'Origanum majorana',
62
+ 'Rosa eglanteria',
63
+ 'Acorus gramineus',
64
+ 'Thymus serpyllum',
65
+ 'Solanum lycopersicum',
66
+ 'Kaempferia galanga',
67
+ 'Monarda citriodora',
68
+ 'Sesamum indicum',
69
+ 'Betonica officinalis',
70
+ 'Mentha sativa',
71
+ 'Artemisia vulgaris',
72
+ 'Melissa officinalis',
73
+ 'Cinnamomum cassia',
74
+ 'Origanum vulgare',
75
+ 'Cryptotaenia japonica',
76
+ 'Glechoma hederacea',
77
+ 'Stachys affinis',
78
+ 'Tasmannia lanceolata',
79
+ 'Hyptis suaveolens',
80
+ 'Nigella damascena',
81
+ 'Tsuga canadensis',
82
+ 'Teucrium chamaedrys',
83
+ 'Solanum melongena',
84
+ 'Cymbopogon citratus',
85
+ 'Vanilla tahitensis',
86
+ 'Satureja montana',
87
+ 'Cananga odorata',
88
+ 'Allium cepa',
89
+ 'Eruca sativa',
90
+ 'Solidago odora',
91
+ 'Nasturtium officinale',
92
+ 'Anthriscus cerefolium',
93
+ 'Cymbopogon flexuosus',
94
+ 'Vanilla planifolia',
95
+ 'Matricaria chamomilla',
96
+ 'Apium graveolens',
97
+ 'Taraxacum officinale',
98
+ 'Chrysanthemum vulgare',
99
+ 'Salvia sclarea',
100
+ 'Oxalis acetosella',
101
+ 'Allium scorodoprasum',
102
+ 'Elettaria cardamomum',
103
+ 'Dianthus caryophyllus',
104
+ 'Allium porrum',
105
+ 'Allium schoenoprasum',
106
+ 'Syzygium aromaticum',
107
+ 'Lepidium latifolium',
108
+ 'Curcuma amada',
109
+ 'Plectranthus amboinicus',
110
+ 'Monarda fistulosa',
111
+ 'Salvia elegans',
112
+ 'Hedeoma pulegioides',
113
+ 'Levisticum officinale',
114
+ 'Monodora myristica',
115
+ 'Thymbra capitata',
116
+ 'Smilax regelii',
117
+ 'Rhus coriaria',
118
+ 'Laserpitium siler',
119
+ 'Trigonella foenum-graecum',
120
+ 'Calendula officinalis',
121
+ 'Zanthoxylum acanthopodium',
122
+ 'Syzygium polyanthum',
123
+ 'Filipendula vulgaris',
124
+ 'Capsicum baccatum',
125
+ 'Picea glauca',
126
+ 'Eryngium foetidum',
127
+ 'Piper nigrum',
128
+ 'Bergera koenigii',
129
+ 'Gaultheria procumbens',
130
+ 'Myrrhis odorata',
131
+ 'Foeniculum vulgare',
132
+ 'Citrus hystrix',
133
+ 'Mentha rotundifolia',
134
+ 'Pastinaca sativa',
135
+ 'Capsicum frutescens',
136
+ 'Vetiveria zizanioides',
137
+ 'Mentha pulegium',
138
+ 'Alpinia galanga',
139
+ 'Allium fistulosum',
140
+ 'Sinapis alba',
141
+ 'Salvia pratensis',
142
+ 'Limnophila aromatica',
143
+ 'Myrtus communis',
144
+ 'Rosa canina',
145
+ 'Cunila origanoides',
146
+ 'Zingiber officinale',
147
+ 'Mentha suaveolens',
148
+ 'Boronia megastigma',
149
+ 'Portulaca sativa',
150
+ 'Perilla frutescens',
151
+ 'Nepeta cataria',
152
+ 'Smallanthus sonchifolia',
153
+ 'Elsholtzia ciliata',
154
+ 'Pimpinella saxifraga',
155
+ 'Cochlearia officinalis',
156
+ 'Allium ursinum',
157
+ 'Symphytum officinale',
158
+ 'Capsicum annuum var. acuminatum',
159
+ 'Mentha arvensis',
160
+ 'Borago officinalis',
161
+ 'Sanguisorba officinalis',
162
+ 'Origanum dictamnus',
163
+ 'Agastache rugosa',
164
+ 'Piper auritum',
165
+ 'Armoracia lapathifolia',
166
+ 'Aframomum melegueta',
167
+ 'Meum athamanticum',
168
+ 'Humulus lupulus',
169
+ 'Thymus mastichina',
170
+ 'Monarda didyma',
171
+ 'Picea mariana',
172
+ 'Satureja hortensis',
173
+ 'Alliaria petiolata',
174
+ 'Chrysanthemum balsamita',
175
+ 'Hyssopus officinalis',
176
+ 'Ocimum viride',
177
+ 'Anethum graveolens',
178
+ 'Valeriana officinalis',
179
+ 'Anthemis nobilis',
180
+ 'Artemisia dracunculus',
181
+ 'Origanum syriacum',
182
+ 'Smilax aristolochiifolia',
183
+ 'Ferula asafoetida',
184
+ 'Marrubium vulgare',
185
+ 'Bixa orellana',
186
+ 'Eutrema japonica',
187
+ 'Cinnamomum verum',
188
+ 'Pimpinella major',
189
+ 'Achillea decolorans',
190
+ 'Schinus molle',
191
+ 'Hierochloe odorata',
192
+ 'Viola odorata',
193
+ 'Aniba rosaeodora',
194
+ 'Zanthoxylum piperitum',
195
+ 'Capsicum chinense',
196
+ 'Galium verum',
197
+ 'Allium tuberosum',
198
+ 'Schinus terebinthifolius',
199
+ 'Rosa gallica',
200
+ 'Laurus nobilis',
201
+ 'Acorus calamus',
202
+ 'Rumex scutatus',
203
+ 'Capsicum annuum',
204
+ 'Capsicum pubescens',
205
+ 'Mentha spicata',
206
+ 'Mentha nemorosa',
207
+ 'Lepidium sativum',
208
+ 'Oxalis violacea',
209
+ 'Brassica nigra',
210
+ 'Juniperus communis',
211
+ 'Parkia biglobosa',
212
+ 'Artemisia abrotanum',
213
+ 'Dipteryx odorata',
214
+ 'Sassafras albidum',
215
+ 'Tropaeolum majus',
216
+ 'Lavandula angustifolia',
217
+ 'Acinos alpinus',
218
+ 'Artemisia absinthium',
219
+ 'Angelica archangelica',
220
+ 'Ruta graveolens',
221
+ 'Bunium persicum',
222
+ 'Vanilla pompona',
223
+ 'Erigeron canadensis',
224
+ 'Curcuma zedoaria',
225
+ 'Pimenta dioica',
226
+ 'Mentha citrata',
227
+ 'Sanguisorba minor',
228
+ 'Rosa moschata',
229
+ 'Galium odoratum',
230
+ 'Ocimum basilicum',
231
+ 'Cannabis sativa',
232
+ 'Trachyspermum ammi',
233
+ 'Persicaria hydropiper')
234
 
235
+ def classify_image(img):
236
+ pred, idx, probs = learn.predict(img)
237
+ dict_all = dict(zip(categories, map(float,probs)))
238
+ n = 5
239
+ dict_n = dict(sorted(dict_all.items(), key=itemgetter(1), reverse=True)[:n])
240
+ return dict_n
241
+
242
+ image = gr.inputs.Image(shape=(192,192))
243
+ label=gr.outputs.Label()
244
+
245
+ intf=gr.Interface(fn=classify_image, inputs=image, outputs=label)
246
+ intf.launch(inline=False)