2022-04-22 09:33:23 +08:00
|
|
|
import os
|
2021-12-14 14:02:19 +08:00
|
|
|
import requests
|
|
|
|
import tensorflow as tf
|
|
|
|
|
|
|
|
import gradio as gr
|
2022-01-21 21:44:12 +08:00
|
|
|
|
2021-12-14 14:02:19 +08:00
|
|
|
inception_net = tf.keras.applications.MobileNetV2() # load the model
|
|
|
|
|
|
|
|
# Download human-readable labels for ImageNet.
|
|
|
|
response = requests.get("https://git.io/JJkYN")
|
|
|
|
labels = response.text.split("\n")
|
|
|
|
|
2022-01-21 21:44:12 +08:00
|
|
|
|
2021-12-14 14:02:19 +08:00
|
|
|
def classify_image(inp):
|
|
|
|
inp = inp.reshape((-1, 224, 224, 3))
|
|
|
|
inp = tf.keras.applications.mobilenet_v2.preprocess_input(inp)
|
|
|
|
prediction = inception_net.predict(inp).flatten()
|
|
|
|
return {labels[i]: float(prediction[i]) for i in range(1000)}
|
2022-01-21 21:44:12 +08:00
|
|
|
|
2021-12-14 14:02:19 +08:00
|
|
|
|
2022-03-29 05:22:49 +08:00
|
|
|
image = gr.Image(shape=(224, 224))
|
|
|
|
label = gr.Label(num_top_classes=3)
|
2021-12-14 14:02:19 +08:00
|
|
|
|
2022-04-29 09:53:25 +08:00
|
|
|
demo = gr.Interface(
|
2021-12-22 16:45:23 +08:00
|
|
|
fn=classify_image,
|
|
|
|
inputs=image,
|
2022-04-22 09:33:23 +08:00
|
|
|
outputs=label,
|
|
|
|
examples=[
|
|
|
|
os.path.join(os.path.dirname(__file__), "images/cheetah1.jpg"),
|
|
|
|
os.path.join(os.path.dirname(__file__), "images/lion.jpg")
|
|
|
|
]
|
2022-04-29 09:53:25 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
demo.launch()
|
|
|
|
|