Jump to content
  • entries
    2
  • comments
    0
  • views
    6,228

Yerel İkili Model (LBP - Local Binary Pattern)


Doğuhan ELMA

185 views

Yerel İkili Model (LBP), özellikle görüntü işleme ve desen tanıma alanında kullanılan bir özellik çıkarma yöntemidir. Local Binary Pattern, piksellerin etrafındaki komşuluk ilişkilerini kullanarak her bir piksel için bir özellik vektörü oluşturur. LBP, özellikle yüz tanıma, nesne tanıma, tekstür analizi ve benzeri uygulamalarda başarıyla kullanılan bir özellik çıkarma yöntemidir.

İşte LBP'nin temel işleyişini anlatan birkaç ana nokta:

Piksel İnceleme:

LBP, bir görüntüdeki her pikseli ayrı ayrı inceleyerek çalışır.

Bir pikselin 8 komşusu vardır ve bu komşular, merkezi pikselin değeri ile karşılaştırılır.

Piksel Karşılaştırma:

Merkezi piksel değerine göre, her bir komşu pikselin değeri 0 veya 1 olarak etiketlenir.

Eğer bir komşu piksel, merkezi pikselden daha büyük veya eşitse, 1; aksi takdirde, 0 olarak etiketlenir.

Binary Pattern Oluşturma:

Bu karşılaştırmalar sonucunda bir 8-bit ikili sayı elde edilir. Örneğin, 00101110 gibi.

Bu ikili sayı, LBP'nin temel özellik vektörünü temsil eder.

Histogram Oluşturma:

Tüm pikseller için bu işlem uygulanarak bir özellik vektörü oluşturulur.

Bu özellik vektörü genellikle bir histogram olarak temsil edilir.

Visualization-of-calculation-of-Local-Binary-Pattern-LBP-An-example-region-of-the.jpg

LBP'nin avantajları şunlar olabilir:

Hesaplama açısından hızlıdır ve basittir.

Yerel desenlere duyarlıdır, bu nedenle özellikle nesne tanıma uygulamalarında etkilidir.

Işık değişikliklerine karşı dirençlidir.

Ancak, LBP'nin bazı zayıflıkları şunlar olabilir:

Yüksek boyutlu özellik vektörleri elde edilebilir, bu da işlem gücü ve bellek gereksinimlerini artırabilir.

Rotasyon ve ölçek değişikliklerine karşı hassas olabilir.

LBP, genel olarak uygulama bağlamına ve kullanım senaryolarına bağlı olarak etkili bir özellik çıkarma yöntemi olabilir.

 

Python:

Python kullanarak Local Binary Pattern (LBP) uygulamasını göstermektedir. Bu örnek, OpenCV kütüphanesini kullanır, bu nedenle önce OpenCV'yi yüklemeniz gerekebilir. Yüklemek için terminal veya komut istemcisine şu komutu yazabilirsiniz:

pip install opencv-python

Ardından, aşağıdaki Python kodunu kullanabilirsiniz:

import cv2
import numpy as np

def local_binary_pattern(image, P, R):
    # Gri tonlamalı görüntüyü al
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # LBP operatörünü uygula
    lbp = np.zeros_like(gray, dtype=np.uint8)
    for i in range(0, 8):
        x = int(R * np.cos(2 * np.pi * i / 8))
        y = int(R * np.sin(2 * np.pi * i / 8))
        lbp += (gray <= np.roll(np.roll(gray, y, axis=0), x, axis=1)).astype(np.uint8) * (2 ** i)

    return lbp

# Görüntüyü yükle
image = cv2.imread("image.jpg")

# LBP parametrelerini belirle
P = 8  # P sayısı (komşu piksellerin sayısı)
R = 1  # R yarıçapı

# LBP hesapla
lbp_result = local_binary_pattern(image, P, R)

# Görüntüyü ve LBP sonucunu göster
cv2.imshow("Original Image", image)
cv2.imshow("LBP Result", lbp_result)
cv2.waitKey(0)
cv2.destroyAllWindows()

1.png

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...