Mở đầu

Local binary pattern

Local binary pattern nó là một thuật toán mô tả texture(cầu trúc) của một image. Ý tưởng cơ bản của nó là mô phỏng lại cấu trúc cục bộ(local texture) của image bằng cách so sánh mỗi pixel với các pixel lân cận nó(neighbors).Ta sẽ đặt một pixel là trung tâm(center) và so sánhvới các pixel lân cận với nó, nếu pixel trung tâm lớn hơn hoặc bằng pixel lân cận thì nó sẽ trả về giá trị 1, ngược lại 0. Ví dụ chúng talấy bán kính 8 pixel lân cận thì lbp sẽ có dạng 11001111, là một chuỗi nhị phân để đơn giản và dễ đọc hơn ta sẽ chuyển về dạng decimal 207.

Đang xem: Local binary pattern là gì

*

Cách tính này có hạn chế đó là chỉ giới hạn 3×3 pixel không đủ để mô tả các cấu trúc large scale nên người ta mở rộng khái niệm LBP bằng cách định nghĩa thêm 2 tham số là (P,R) trong đó P là số pixel lân cận xem xét và R là bán kính ta quét từ pixel trung tâm. Như hình bên dưới.

Xem thêm: (Tên Cơ Quan Chủ Quản Là Gì ? Nghĩa Của Từ Chủ Quản Trong Tiếng Việt

*

Công thức LBP như sau :

trong đó :

Code trong python với skimage

import numpy as npfrom skimage import iofrom skimage.feature import local_binary_patternfrom matplotlib import pyplot as plt%matplotlib inlineim = io.imread(“image.png”,as_grey=True)lbp = local_binary_pattern(im,8,1,method=”uniform”)plt.figure(figsize=(25,25))plt.subplot(1,3,1)plt.imshow(im,cmap=”gray”)plt.subplot(1,3,2)plt.imshow(lbp,cmap=”gray”)

*

Histogram Oriented of Gradient Histogram Oriented of Gradient (Hog) là một feature descriptor thường được dùng trong object recognition. Như chúng ta đã biết trongimage processing thì khái niệm đạo hàm rất quan trọng. Nó là cơ sở của rất nhiều thuật toán như edge,coner detection. Dựa vào đặc điểm này người ta mới xây dựng nó làm feature trên cơ sở derivative. Đạo hàm của image là một matrix theo ox và oy nó có 2 đặc trưng là độ lớn(magnitude) và hướng(direction). Để làm feature trên image thì không thể để 2 đại lượng này rời rạc được nên người ta mới nghĩ ra phương pháp chuẩn hóa nó (quantization) đó là đưa nó về dạng histogram của magnitude theo direction.Bây giờ ta tìm hiểu các bước tính toán ra hog.

Xem thêm: Home Banking Của Techcombank Là Gì ? Hướng Dẫn Đăng Ký Và Sử Dụng

*

Các bước tính hog cụ thể. Xét trên 1 cell như trong ảnh là 8×8: 1, Tính đạo hàm của image theo x,y 2, Tính magitude $g = sqrt{ g_x^2 + g_y^2 }$ và direction $ heta = arctan{(g_y / g_x)}$ 3, Chia magitude theo 9 bins( có hướng theo direction từ 0-180 mỗi bin 20) 4, Lưu ý trên 1 block 16×16 thì để tránh ảnh hưởng của độ sáng tối ảnh hưởng tới image người ta sẽ chuẩn hóa gradient(Normalizing Gradient Vectors). Vì như chúng ta biết khi chuẩn hóa cộng hoặc trừ 1 đại lượng trên image sẽ ko làm thay đổi gradient.

Ảnh minh họa cách đưa magitude vào bin theo direction

*

Code trong python : Ta có thể dùng opencv hoặc skimage để tính hog. Trong opencv: cv2.HOGDescriptor với các tham số win_size,block_size,block_stride,cell_size,num_bín Trong skimage : fucntion hog với các tham số orientations, pixels_per_cell,cells_per_block

SIFT

Còn sift với các biến thể của nó bổ sung sau
About

A blog about python,machine learning and deep learning theme.

Leave a Reply

Your email address will not be published. Required fields are marked *