mybYusuf commited on
Commit
8104ee2
·
verified ·
1 Parent(s): 6738ad5

Upload 4 files

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. README.md +39 -13
  3. app_huggingface.py +160 -0
  4. best_model.keras +3 -0
  5. requirements.txt +4 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ 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
+ best_model.keras filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,13 +1,39 @@
1
- ---
2
- title: Animal Image Classifier
3
- emoji:
4
- colorFrom: yellow
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 5.29.0
8
- app_file: app.py
9
- pinned: false
10
- short_description: Classify 90 different animal species
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🦁 Hayvan Görüntü Sınıflandırıcı
2
+
3
+ Bu projede derin öğrenme kullanarak hayvan türlerini sınıflandıran bir web uygulaması geliştirilmiştir. Uygulama, 90 farklı hayvan sınıfını tanıyabilmektedir.
4
+
5
+ ## 🚀 Proje Özellikleri
6
+
7
+ - 90 farklı hayvan türünü sınıflandırma
8
+ - Yükle veya webcam ile resim çekme imkanı
9
+ - En yüksek olasılıklı 3 tahmin sonucunu gösterme
10
+ - Kullanıcı dostu arayüz
11
+ - Hem web hem de masaüstü sürümleri mevcut
12
+
13
+ ## 📋 Nasıl Kullanılır
14
+
15
+ 1. Bir hayvan resmi yükleyin veya webcam ile çekin
16
+ 2. Model otomatik olarak resmi işler ve en olası 3 hayvan türünü gösterir
17
+ 3. Her tahmin için olasılık değeri yüzde olarak gösterilir
18
+
19
+ ## 🧠 Model Hakkında
20
+
21
+ Bu uygulama, TensorFlow ile eğitilmiş bir CNN (Evrişimli Sinir Ağı) kullanmaktadır. Model, hayvan görüntülerinden oluşan kapsamlı bir veri seti üzerinde eğitilmiştir ve %90'ın üzerinde doğruluk oranına sahiptir.
22
+
23
+ ## 💻 Teknik Detaylar
24
+
25
+ - Web uygulaması: Gradio kullanılarak geliştirilmiştir
26
+ - Masaüstü uygulaması: Python ve CustomTkinter ile geliştirilmiştir
27
+ - Derin öğrenme kütüphanesi: TensorFlow
28
+ - Model: CNN mimarisi
29
+
30
+ ## 📱 Demo
31
+
32
+ Uygulamayı denemek için:
33
+ 1. Sağ taraftaki panelden bir görüntü yükleyin
34
+ 2. Veya örnek görüntülerden birini kullanın
35
+ 3. Tahmin sonuçlarını anında görün!
36
+
37
+ ## 📄 Lisans
38
+
39
+ Bu proje MIT lisansı altında lisanslanmıştır. Daha fazla bilgi için lütfen LICENSE dosyasına bakın.
app_huggingface.py ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import numpy as np
4
+ import gradio as gr
5
+ import tensorflow as tf
6
+ from PIL import Image
7
+
8
+ # Sabitler
9
+ IMAGE_SIZE = 128
10
+ MODEL_PATH = "best_model.keras" # Kaydedilmiş model dosyasının yolu
11
+
12
+ # Hayvan sınıfları (90 sınıf)
13
+ class_names = [
14
+ 'antelope', 'badger', 'bat', 'bear', 'bee', 'beetle', 'bison', 'boar', 'butterfly',
15
+ 'cat', 'caterpillar', 'chimpanzee', 'cockroach', 'cow', 'coyote', 'crab', 'crow',
16
+ 'deer', 'dog', 'dolphin', 'donkey', 'dragonfly', 'duck', 'eagle', 'elephant', 'flamingo',
17
+ 'fly', 'fox', 'goat', 'goldfish', 'goose', 'gorilla', 'grasshopper', 'hamster', 'hare',
18
+ 'hedgehog', 'hippopotamus', 'hornbill', 'horse', 'hummingbird', 'hyena', 'jellyfish',
19
+ 'kangaroo', 'koala', 'ladybugs', 'leopard', 'lion', 'lizard', 'lobster', 'mosquito',
20
+ 'moth', 'mouse', 'octopus', 'okapi', 'orangutan', 'otter', 'owl', 'ox', 'oyster',
21
+ 'panda', 'parrot', 'pelecaniformes', 'penguin', 'pig', 'pigeon', 'porcupine',
22
+ 'possum', 'raccoon', 'rat', 'reindeer', 'rhinoceros', 'sandpiper', 'seahorse',
23
+ 'seal', 'shark', 'sheep', 'snake', 'sparrow', 'squid', 'squirrel', 'starfish',
24
+ 'swan', 'tiger', 'turkey', 'turtle', 'whale', 'wolf', 'wombat', 'woodpecker', 'zebra'
25
+ ]
26
+
27
+ # Model yükleme fonksiyonu
28
+ def load_model():
29
+ try:
30
+ if os.path.exists(MODEL_PATH):
31
+ model = tf.keras.models.load_model(MODEL_PATH)
32
+ print("Model başarıyla yüklendi!")
33
+ return model
34
+ else:
35
+ print("Model dosyası bulunamadı. Demo modunda çalışılacak.")
36
+ return None
37
+ except Exception as e:
38
+ print(f"Model yüklenirken hata oluştu: {e}")
39
+ return None
40
+
41
+ # Görüntü ön işleme
42
+ def preprocess_image(img):
43
+ img = img.convert('RGB')
44
+ img = img.resize((IMAGE_SIZE, IMAGE_SIZE))
45
+ img_array = np.array(img)
46
+ img_array = img_array / 255.0 # [0,1] aralığına normalizasyon
47
+ img_array = np.expand_dims(img_array, axis=0) # Batch boyutu ekleme
48
+ return img_array
49
+
50
+ # Tahmin fonksiyonu
51
+ def predict(img):
52
+ model = load_model()
53
+
54
+ if model is None:
55
+ # Demo modu - rastgele tahminler üret
56
+ import random
57
+ predictions = np.zeros(len(class_names))
58
+ for i in range(len(predictions)):
59
+ predictions[i] = random.random()
60
+ predictions = predictions / np.sum(predictions) # 1'e normalize et
61
+ else:
62
+ # Gerçek tahmin
63
+ img_array = preprocess_image(img)
64
+ predictions = model.predict(img_array)[0]
65
+
66
+ # En iyi 3 tahmini al
67
+ top_indices = predictions.argsort()[-3:][::-1]
68
+ top_predictions = predictions[top_indices]
69
+ top_classes = [class_names[i] for i in top_indices]
70
+
71
+ # Sonuçları formatla
72
+ results = {}
73
+ for i, (label, prob) in enumerate(zip(top_classes, top_predictions)):
74
+ results[label] = float(prob)
75
+
76
+ return results
77
+
78
+ # Örnek görseller için bilgi
79
+ examples_info = """
80
+ ### Örnek Görüntüler
81
+ Eğer kendi görüntünüzü yüklemek istemiyorsanız, aşağıdaki örnek görüntülerden birini kullanabilirsiniz:
82
+ - Kedi: Evcil kedi görüntüsü
83
+ - Köpek: Evcil köpek görüntüsü
84
+ - Kelebek: Renkli bir kelebek görüntüsü
85
+ """
86
+
87
+ # Proje başlığı
88
+ title = "🦁 Hayvan Görüntü Sınıflandırıcı"
89
+
90
+ # Proje açıklaması
91
+ description = """
92
+ <div style="text-align: center;">
93
+ <h2>Hayvan Görüntü Sınıflandırma Uygulaması</h2>
94
+ <p>Bu uygulama, derin öğrenme modeli kullanarak hayvan türlerini tanıyabilen bir sınıflandırıcıdır.</p>
95
+ <p>Basitçe bir görüntü yükleyin veya webcam kullanarak fotoğraf çekin, model hangi hayvan olduğunu tahmin edecek!</p>
96
+ <p>Model, <strong>90 farklı hayvan sınıfını</strong> tanıyabilmektedir.</p>
97
+ <hr>
98
+ <p><strong>Nasıl Kullanılır:</strong></p>
99
+ <ol>
100
+ <li>Bir hayvan resmi yükleyin veya webcam ile çekin</li>
101
+ <li>Sonuçları anında görün!</li>
102
+ </ol>
103
+ </div>
104
+ """
105
+
106
+ # Özel CSS stilleri
107
+ css = """
108
+ .gradio-container {
109
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
110
+ background-color: #f8f9fa;
111
+ }
112
+ .footer {
113
+ margin-top: 30px;
114
+ text-align: center;
115
+ color: #666;
116
+ border-top: 1px solid #eee;
117
+ padding-top: 20px;
118
+ }
119
+ .examples {
120
+ margin-top: 20px;
121
+ border: 1px solid #ddd;
122
+ border-radius: 10px;
123
+ padding: 15px;
124
+ background-color: #f5f5f5;
125
+ }
126
+ h1 {
127
+ color: #2C3E50;
128
+ }
129
+ """
130
+
131
+ # Sayfa altı bilgisi
132
+ footer = """
133
+ <div class="footer">
134
+ <p>Bu uygulama TensorFlow ve Gradio kullanılarak geliştirilmiştir.</p>
135
+ <p>Derin öğrenme modeli, hayvan görüntülerinden oluşan kapsamlı bir veri seti üzerinde eğitilmiştir.</p>
136
+ <p>© 2023 Hayvan Sınıflandırıcı</p>
137
+ </div>
138
+ """
139
+
140
+ # Gradio arayüzü oluşturma
141
+ demo = gr.Interface(
142
+ fn=predict,
143
+ inputs=gr.Image(type="pil", label="Hayvan Görüntüsü Yükle"),
144
+ outputs=gr.Label(num_top_classes=3, label="En İyi 3 Tahmin"),
145
+ title=title,
146
+ description=description,
147
+ article=footer,
148
+ examples=[
149
+ ["example_images/cat.jpg"],
150
+ ["example_images/dog.jpg"],
151
+ ["example_images/butterfly.jpg"]
152
+ ],
153
+ css=css,
154
+ theme="huggingface",
155
+ allow_flagging="never"
156
+ )
157
+
158
+ # Uygulamayı başlat
159
+ if __name__ == "__main__":
160
+ demo.launch()
best_model.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:652ad27853134313c67f2ad9ca11241c4f997cc4d55686bd86f7b25876892b98
3
+ size 105994769
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ tensorflow>=2.4.0
2
+ numpy>=1.19.5
3
+ Pillow>=8.0.0
4
+ gradio>=3.0.0