|
from fastai.vision.all import * |
|
import gradio as gr |
|
|
|
learn = load_learner("model_2.pkl") |
|
|
|
categories = learn.dls.vocab |
|
for index, category in enumerate(categories): |
|
if category == "Random Anime Photos": |
|
categories[index] = "Others" |
|
|
|
|
|
def classify_image(img): |
|
pred, idx, probs = learn.predict(img) |
|
return dict(zip(categories, map(float, probs))) |
|
|
|
|
|
image = gr.Image() |
|
label = gr.Label() |
|
examples = [ |
|
"Luffy.jpg", |
|
"Naruto-Kurama-Mode.png", |
|
"Goku.jpg", |
|
"Ichigo.jpeg", |
|
"Robin.jpeg", |
|
] |
|
|
|
title = "Top 10 Shounen Anime Protagonists Classifier" |
|
description = "Fine tuned a resnet152 image classifier such that it is able to recognize protagonists of top 10 Shounen Animes." |
|
start_article = ( |
|
"<p> Animes and its protagonists this image classifier will recognize:</p>" |
|
) |
|
anime_characters = [ |
|
"1. One Piece - Monkey D. Luffy<br>", |
|
"2. Naruto: Shippuden - Naruto Uzumaki<br>", |
|
"3. My Hero Academia - Izuku Midoriya<br>", |
|
"4. Dragon Ball Z - Son Goku aka Kakarot<br>", |
|
"5. Fairy Tail - Natsu Dragneel<br>", |
|
"6. Yu Yu Hakusho - Yusuke Urameshi<br>", |
|
"7. Bleach - Ichigo Kurosaki<br>", |
|
"8. Hunter X Hunter - Gon Freecss<br>", |
|
"9. Fullmetal Alchemist - Edward Elric<br>", |
|
"10. Attack on Titan - Eren Yeager<br>", |
|
] |
|
end_article = "<p>Rest all other anime characters will be classified as others.</p>" |
|
final_article = start_article + "".join(anime_characters) + end_article |
|
|
|
intf = gr.Interface( |
|
fn=classify_image, |
|
inputs=image, |
|
outputs=label, |
|
examples=examples, |
|
title=title, |
|
description=description, |
|
article=final_article, |
|
) |
|
intf.launch(inline=False, share=True) |