File size: 1,468 Bytes
9990b11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastai.vision.all import *
import gradio as gr

labels = [
    "20km/h",
    "30km/h",
    "50km/h",
    "60km/h",
    "70km/h",
    "80km/h",
    "80km/h aufgehoben",
    "100km/h",
    "120km/h",
    "Überholverbot",
    "Überholverbot (nur LKW)",
    "Vorfahrt an der nächsten Kreuzung",
    "Vorfahrtsstraße",
    "Vorfahrt gewähren",
    "Stop",
    "Einfahrt verboten",
    "Einfahrt verboten (LKW)",
    "Durchfahrt verboten",
    "Gefahr",
    "scharfe Kurve (links)",
    "scharfe Kurve (rechts)",
    "kurvige Strecke",
    "Bodenwellen",
    "Schleudergefahr",
    "verengte Fahrbahn (rechts)",
    "Bauarbeiten",
    "Ampel",
    "Zebrastreifen (Achtung)",
    "spielende Kinder",
    "Fahrradfahrer",
    "Glätte",
    "Wildwechsel",
    "Aufhebung aller Beschränkungen",
    "Nur rechts abbiegen",
    "Nur links abbiegen",
    "Nur geradeaus",
    "Nur geradeaus / rechts",
    "Nur geradeaus / links",
    "Rechts vorbeifahren",
    "Links vorbeifahren",
    "Kreisverkehr",
    "Ende Überholverbot",
    "Ende Überholverbot (LKW)",
]


def get_y(y):
    idx = int(parent_label(y))
    return labels[idx]


learner = load_learner("model.pkl")


lables = learner.dls.vocab


def predict(img):
    img = PILImage.create(img)
    pred, pred_idx, probs = learner.predict(img)
    return {lables[i]: float(probs[i]) for i in range(len(lables))}


gr.Interface(
    fn=predict, inputs=gr.Image(), outputs=gr.Label(num_top_classes=3)
).launch()