TensorFlow #4. Audentes fortuna iuvat | by Judeniz | Apr, 2024


TensorFlow, görüntü işleme ve nesne algılama gibi çeşitli görevler için güçlü bir kütüphanedir. Görüntü işleme ve nesne algılama, bilgisayarlı görü görüntülerdeki nesneleri tanımlama, sınıflandırma ve konumlandırma sürecidir. İşte TensorFlow’un görüntü işleme ve nesne algılama için sınıflandırma ve segmentasyon gibi temel özellikleri:

Görüntü Sınıflandırma:

Görüntü sınıflandırma, bir görüntünün içerdiği nesnenin türünü tanımlama işlemidir. Önceden eğitilmiş bir model kullanılarak, bir görüntüdeki nesnelerin hangi sınıfa ait olduğu belirlenebilir. Örneğin, bir köpek görüntüsünün bir köpek sınıfına ait olduğunu belirlemek için bir görüntü sınıflandırma modeli kullanılabilir.

Nesne Algılama:

Nesne algılama, bir görüntüdeki nesnelerin konumunu ve sınıfını belirleme işlemidir. Bu işlem sırasında, görüntü üzerinde bir veya daha fazla nesne tanımlanır ve her nesne için bir sınıf etiketi ve konum bilgisi sağlanır. Nesne algılama, bir görüntüdeki birden fazla nesneyi tespit etmek için kullanılır ve genellikle nesnelerin sınırlayıcı kutularını çizmek için kullanılan birçok algoritma ve teknik içerir.

Görüntü Segmentasyonu:

Görüntü segmentasyonu, bir görüntüyü piksel seviyesinde farklı bölgelere ayırma işlemidir. Her bir bölge, görüntüde benzer özelliklere sahip piksellerden oluşur. Bu işlem sırasında, bir görüntünün farklı nesne veya özelliklerini belirlemek için kullanılır. Örneğin, bir görüntünün farklı renkli bölgelerini belirlemek için bir görüntü segmentasyon modeli kullanılabilir.

TensorFlow’da Görüntü İşleme ve Nesne Algılama:

TensorFlow, görüntü işleme ve nesne algılama için çeşitli önceden eğitilmiş modeller ve API’ler sunar. Önceden eğitilmiş modeller, görüntü sınıflandırma, nesne algılama ve segmentasyon gibi görevler için kullanılabilir. Ayrıca, TensorFlow’un Keras API’si, özelleştirilmiş görüntü işleme ve nesne algılama modelleri oluşturmayı kolaylaştırır.

TensorFlow’un görüntü işleme ve nesne algılama için sağladığı özellikler, araştırma projelerinden endüstriyel uygulamalara kadar geniş bir kullanım alanına sahiptir. Bu özellikler, görüntü işleme ve nesne algılama alanında çalışan geliştiricilerin ihtiyaçlarını karşılamak için tasarlanmıştır.

güvenlik kameralarının kullanımını düşünelim. Güvenlik kameraları, çeşitli ortamlarda (evler, işyerleri, kamusal alanlar vb.) güvenliği artırmak ve olayları izlemek için yaygın olarak kullanılır.

Örneğin, bir marketin içinde bulunan güvenlik kameraları, mağaza içindeki hareketleri ve olayları izlemek için kullanılır. Bu kameralar, belirli bir alanda yapılan aktiviteleri kaydeder ve varsa herhangi bir şüpheli davranışı veya hırsızlık girişimini tespit eder.

Güvenlik kameraları genellikle nesne algılama ve sınıflandırma tekniklerini kullanır. Örneğin, bir marketteki güvenlik kamerası, insanları, arabaları, alışveriş arabalarını ve diğer nesneleri algılayabilir ve bu nesneleri tanımlayabilir. Bu sayede, market çalışanları veya güvenlik görevlileri, potansiyel olarak tehlikeli durumları veya şüpheli aktiviteleri daha hızlı bir şekilde tespit edebilir ve müdahale edebilirler.

Bu örnekte, güvenlik kameraları günlük hayatta görüntü işleme ve nesne algılama tekniklerini kullanarak güvenlik önlemlerini artırır ve olayları izler. Bu teknoloji, insanların güvenliğini sağlamak için yaygın olarak kullanılmaktadır ve günlük hayatta sık sık karşılaşılan bir örnektir.

import cv2
import numpy as np
import tensorflow as tf
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
from tensorflow.keras.layers import Conv2D, Reshape

# Önceden eğitilmiş MobileNetV2 modelini yükleme
base_model = MobileNetV2(weights='imagenet', include_top=False)
base_model.trainable = False

# Yeni bir model oluşturma
model = tf.keras.Sequential([
base_model,
Conv2D(4, kernel_size=(3, 3), strides=(1, 1), padding='same'),
Reshape((4,))
])

# Modeli ağırlıklarıyla yüklemek
model.load_weights('object_detection_model_weights.h5')

# Etiketler
class_names = ['insan', 'araba', 'kitap', 'sandalye'] # Örnek etiketler

# Görüntüyü yükleme
image_path = 'test_image.jpg'
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = cv2.resize(image, (224, 224))
image = preprocess_input(image)
image = np.expand_dims(image, axis=0)

# Nesne algılama
predictions = model.predict(image)

# Sonuçları işleme
for i in range(len(class_names)):
if predictions[0][i] > 0.5: # Eşik değeri belirleme
print(f"{class_names[i]}: {predictions[0][i]}")

Bu kod örneği, önceden eğitilmiş MobileNetV2 modelini ve bir nesne algılama modelini yükler. Ardından, bir test görüntüsünü işler, nesneleri algılar ve eşiği (threshold) aşan sonuçları yazdırır. Burada, ‘object_detection_model_weights.h5’ dosyası, eğitilmiş modelin ağırlıklarını içeren bir dosyadır.

Bu örnek, belirli bir nesnenin algılanıp algılanmadığını belirleme amacıyla basit bir nesne algılama uygulamasını göstermektedir. Gerçek bir uygulama için, daha karmaşık modellerin ve veri kümelerinin kullanılması ve daha fazla işleme adımının eklenmesi gerekebilir.



Source link

Be the first to comment

Leave a Reply

Your email address will not be published.


*