GwFirman commited on
Commit
bc966fb
·
verified ·
1 Parent(s): f8168b0

Upload 5 files

Browse files
Files changed (6) hide show
  1. .gitattributes +2 -0
  2. aloevera.jpeg +3 -0
  3. app.py +72 -0
  4. class_names.txt +100 -0
  5. nangkacempedak.jpg +3 -0
  6. requirements.txt +4 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ aloevera.jpeg filter=lfs diff=lfs merge=lfs -text
37
+ nangkacempedak.jpg filter=lfs diff=lfs merge=lfs -text
aloevera.jpeg ADDED

Git LFS Details

  • SHA256: 1d82a3b5d9d197d3f25d726284eb1a33ecfcc01dc81695c172146614c52e6888
  • Pointer size: 131 Bytes
  • Size of remote file: 179 kB
app.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from torchvision import models, transforms
4
+ from PIL import Image
5
+
6
+ # ====================================================================
7
+ # 1. DEFINISIKAN ARSITEKTUR MODEL
8
+ # ====================================================================
9
+ # Arsitektur harus SAMA PERSIS dengan saat Anda training.
10
+ # Muat daftar nama kelas dari file
11
+ with open('class_names.txt', 'r') as f:
12
+ class_names = [line.strip() for line in f.readlines()]
13
+ num_classes = len(class_names)
14
+
15
+ # Inisialisasi model VGG11_bn
16
+ model = models.vgg11_bn(pretrained=False) # Tidak perlu pre-trained karena kita akan load bobot sendiri
17
+ num_ftrs = model.classifier[6].in_features
18
+ model.classifier[6] = torch.nn.Linear(num_ftrs, num_classes)
19
+
20
+ # ====================================================================
21
+ # 2. MUAT BOBOT MODEL (STATE DICTIONARY) DARI FILE .pth
22
+ # ====================================================================
23
+ # Pastikan model.pth ada di path yang benar
24
+ # Hugging Face Spaces akan meletakkannya di direktori yang sama
25
+ MODEL_PATH = 'herbal_vgg11_optimized.pth'
26
+ model.load_state_dict(torch.load(MODEL_PATH, map_location=torch.device('cpu')))
27
+ model.eval() # Set model ke mode evaluasi
28
+
29
+ # ====================================================================
30
+ # 3. DEFINISIKAN FUNGSI PREDIKSI
31
+ # ====================================================================
32
+ # Definisikan transformasi gambar (harus sama dengan transformasi validasi saat training)
33
+ transform = transforms.Compose([
34
+ transforms.Resize((128, 128)),
35
+ transforms.ToTensor(),
36
+ transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
37
+ ])
38
+
39
+ def predict(image):
40
+ """Fungsi untuk memprediksi gambar input."""
41
+ # Proses gambar input
42
+ image = Image.fromarray(image.astype('uint8'), 'RGB')
43
+ image = transform(image).unsqueeze(0)
44
+
45
+ # Lakukan prediksi
46
+ with torch.no_grad():
47
+ outputs = model(image)
48
+ probabilities = torch.nn.functional.softmax(outputs[0], dim=0)
49
+
50
+ # Buat dictionary kepercayaan untuk setiap kelas
51
+ confidences = {class_names[i]: float(probabilities[i]) for i in range(num_classes)}
52
+
53
+ return confidences
54
+
55
+ # ====================================================================
56
+ # 4. BUAT DAN LUNCURKAN ANTARMUKA GRADIO
57
+ # ====================================================================
58
+ interface = gr.Interface(
59
+ fn=predict,
60
+ inputs=gr.Image(label="Unggah Gambar Tanaman Herbal"),
61
+ outputs=gr.Label(num_top_classes=3, label="Hasil Prediksi"),
62
+ title="🌿 Deteksi Tanaman Herbal",
63
+ description="Demo untuk model klasifikasi tanaman herbal menggunakan VGG11. Unggah gambar dan lihat prediksinya.",
64
+ examples=[
65
+ # Anda bisa menambahkan path ke gambar contoh di sini jika Anda mengunggahnya juga
66
+ ["nangkacempedak.jpg"],
67
+ ["aloevera.jpeg"]
68
+ ]
69
+ )
70
+
71
+ # Luncurkan aplikasi
72
+ interface.launch()
class_names.txt ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Abelmoschus Esculentus (Okra)
2
+ Acorus Calamus (Dlingo)
3
+ Aloe Vera (Lidah Buaya)
4
+ Alstonia Scholaris (Pulai)
5
+ Amaranthus Spinosus (Bayam Duri)
6
+ Andrographis Paniculata (Sambiloto)
7
+ Annona Muricata (Sirsak)
8
+ Annona Squamosa (Srikaya)
9
+ Anredera Cordifolia (Binahong)
10
+ Apium Graveolens (Seledri)
11
+ Artocarpus Heterophyllus (Nangka Mini)
12
+ Artocarpus Integer (Nangka Cempedak)
13
+ Averrhoa Bilimbi (Belimbing Wuluh)
14
+ Blumea Balsamifera (Sembung)
15
+ Borreria Hispida (Gempur Batu)
16
+ Caesalpinia Sappan L (Secang)
17
+ Caladium Cicolor (Keladi)
18
+ Calendula Officinalis (Marigold)
19
+ Canangium Odoratum (Kenanga)
20
+ Catharanthus Roseus (Tapak Dara)
21
+ Celosia Cristata (Jengger Ayam)
22
+ Centella Asiatica (Pegagan)
23
+ Cestrum Nocturnum (Sedap Malam)
24
+ Chrysopogon Zizanioides (Akar Wangi)
25
+ Citrus Amblycarpa (Jeruk Limau)
26
+ Clinalanthus Nutans (Dandang Gendis)
27
+ Clitoria Ternatea (Kembang Telang)
28
+ Crinum Asiaticum (Bakung Putih)
29
+ Curcuma Domestica (Kunyit)
30
+ Cyclea Barbata (Cincau Hijau)
31
+ Cymbopogon Nardus (Serai)
32
+ Derris Elliptica (Tuba)
33
+ Desmodium Triquitrum (Daun Duduk)
34
+ Dioscorea Hispida (Gadung)
35
+ Eleutherine Americana (Bawang Dayak)
36
+ Euodia Suaveolens (Zodia)
37
+ Eupatorium Triplinerve (Prasman)
38
+ Euphorbia Tirucalli (Patah Tulang)
39
+ Euphoria Longan (Kelengkeng)
40
+ Ficus Carica (Tin)
41
+ Ficus Septica (Awar-Awar)
42
+ Graptophyllum Pictum (Daun Ungu)
43
+ Gynura Segetum (Daun Dewa)
44
+ Hibiscus Rosa-sinensis (Kembang Sepatu)
45
+ Hibiscus Sabdariffa (Rosela)
46
+ Houttoynia Cordata (Amis-Amisan)
47
+ Hydrocotyle Sibthorpioides (Semanggi Gunung)
48
+ Impatiens Balsamina (Pacar Air)
49
+ Isotoma Longiflora (Ki Tolod)
50
+ Jasminum Sambac (Melati)
51
+ Jatropa Multifida (Betadin)
52
+ Kaempferia Galanga (Kencur)
53
+ Melaleuca Leucadendra (Kayu Putih)
54
+ Melia Azedarach (Mindi)
55
+ Melissa officinalis (Lemon Balm)
56
+ Michelia Alba (Kembang Kantil)
57
+ Mirabilis Jalapa (Bunga Pukul Empat)
58
+ Morinda Citrifolia (Mengkudu)
59
+ Morus Alba (Murbei)
60
+ Muraya Paniculata (Kemuning)
61
+ Murraya Koenigii (Daun Kari)
62
+ Nepeta Cataria (Catnip)
63
+ Nothopanax Scutellarium (Mangkokan)
64
+ Ocimum Americanum (Selasih)
65
+ Ocimum Basilicum (Kemangi)
66
+ Olea Europaea (Zaitun)
67
+ Orthosiphon Spicatus (Kumis Kucing)
68
+ Pandanus Amaryllifolius (Pandan)
69
+ Parameria Laevigata (Kayu Rapet)
70
+ Peperomia Pellucida (Suruhan)
71
+ Phaleria Macrocarpa (Mahkota Dewa)
72
+ Physalis Angulata (Ceplukan)
73
+ Phytolacca Americana (Mrico Kepyar)
74
+ Piper Betle (Sirih)
75
+ Piper Sarmentosum (Cabean)
76
+ Plectranthus Scutellarioides (Miana)
77
+ Pleomele Angustifolia (Suji)
78
+ Pluchea Indica (Beluntas)
79
+ Plumbago Zeylanica (Daun Encok)
80
+ Pogostemon Cablin (Nilam)
81
+ Pouteria Caimito (Abiu)
82
+ Prunus Domestica (Plum)
83
+ Psidium Guajava (Jambu Biji)
84
+ Pyrus Communis (Pir)
85
+ Raulvolvia Serpentina (Pule Pandak)
86
+ Ricinus Communis (Jarak)
87
+ Rosmarinus Officinalis (Rosemary)
88
+ Ruellia Tuberosa (Ceplikan)
89
+ Ruta Angustifolia (Inggu)
90
+ Selaginella Doederleinii (Paku Rane)
91
+ Syzygium Polyanthum (Salam)
92
+ Talinum Triangulare (Som Jawa)
93
+ Tinospora Cordifolia (Brotowali)
94
+ Tithonia Diversifolia (Daun Insulin)
95
+ Typhonium Flagelliforme (Keladi Tikus)
96
+ Vitex Trifolia (Legundi)
97
+ Zephyranthes Candida (Lili Hujan Putih)
98
+ Zingiber Officinale (Jahe)
99
+ Zingiber Zerumbet (Lempuyang Gajah)
100
+ Ziziphus mauritiana Lam. (Bidara)
nangkacempedak.jpg ADDED

Git LFS Details

  • SHA256: 4fe92e6c06ce2b62c49990d40f0690a4d107b7028bef382505afdddf4c1649fe
  • Pointer size: 131 Bytes
  • Size of remote file: 435 kB
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ torch
2
+ torchvision
3
+ gradio
4
+ Pillow