SIFT LÀ GÌ

     

Scale-Invariant Feature Transform (SIFT) là lời giải trong lĩnh vực Computer Vision, dùng để làm nhận dạng và diễn tả những điểm sệt trưng(local features) trong ảnh. Giải mã lần đầu được reviews bởi David Lowe năm 1999. Lời giải này(cùng cùng với giải thuật anh em là SURF) được ứng dụng rộng thoải mái trong dấn dạng đối tượng(object recognition), quy mô hóa 3D(3D modeling),...

Bạn đang xem: Sift là gì

Điểm đặc trưng của SIFT nằm ngay trong cái brand name của nó Scale-Invariant, tức là nó sẽ chỉ dẫn các tác dụng ổn định với số đông scale của ảnh khác nhau, hình như cũng có thể nói giải thuật này có tính rotation-invariant.

Trong bài báo công nghệ "Distinctive Image Features from Scale-Invariant Keypoints", SIFT được quánh tả rõ nét dưới bốn giai đoạn(stages) bao gồm sau:

Scale-space extrema detection.

Keypoint localization.

Orientation assignment.

Keypoint descriptor.

Sau đây, tôi sẽ trình diễn tư tưởng thông thường của từng giai đoạn:

1. Scale-space extrema detection

Chúng ta cùng để mắt tới ví dụ dưới đây:

*

Note: trong computer vision, bọn họ thường định nghĩa kích cỡ các cửa ngõ sổ(window) rồi quét ảnh với những cửa sổ đó nhằm tìm rất nhiều đặc tính(feature) của ảnh.

Phía mặt trái chúng ta có 1 góc(corner) với size nhỏ, và cửa sổ(window) gồm kích thước hợp lý và phải chăng để nhận biết các keypoint, nhưng với cùng kích thước cửa sổ cùng một góc có kích thước lớn thì đã trở đề nghị bất hợp lý. Vì chưng đó, scale-space filtering được thực hiện để giải quyết vấn đề này. SIFT tính DoG (Difference of Gaussians) bên trên từng pixel bằng cách lấy diff của Gaussian Blur cùng với 2 sigma khác nhau. Sau khi tính được DoG của toàn ảnh, xét trên từng pixel so sánh cùng với 8 neighbors và 9 pixels khớp ứng của scale hình ảnh ngay trên với 9 pixels tương ứng ở scale dưới, nếu px đó là local extrema (lớn nhất) thì nó sẽ được coi như là một trong keypoint sinh hoạt scale đó. (potiental keypoint).

Xem thêm: Giọng Baritone Là Gì - Sự Khác Biệt Giữa Baritone Và Bass

2. Keypoint localization

Khi đã lấy được tất cả những potential keypoints của ảnh, việc cần làm tiếp sau là lọc nhằm ra phần lớn kết quả chính xác hơn, SIFT sử dụng chuỗi Taylor mở rộng để lấy vị trí của extrema đúng đắn hơn, rồi sau đó xét xem nếu như intensity của extrema đó nhỏ tuổi hơn cực hiếm ngưỡng (0.03) thì sẽ các loại keypoint đó.

Bên cạnh đó, DoG cực kỳ nhạy cảm với edge(đường), để loại bỏ edge keypoint, SIFT dùng concept như thể Haris corner detector, nó sử dụng ma trận Hessian 2x2 nhằm tính ra phần nhiều đường cong chính. Lúc eigen value lớn hơn threshold nào đó thì keypoint đó sẽ ảnh hưởng loại.

Như trên, SIFT có thể loại được keypoints có tương phản bội thấp, edge keypoint cùng giữ lại phần đông keypoint hợp lý hơn.

3. Orientation assignment

Một hoặc các orientation (hướng) sẽ tiến hành gắn mang lại từng địa chỉ keypoint dựa trên image gradient. Những phép tính kế tiếp trên ảnh sẽ khớp ứng với từng orientation, scale và vị trí từng feature.

4. Keypoint descriptor

SIFT và tính Keypoint descriptor bằng cách lấy 16x16 neighborhood(điểm ngay tức khắc kề) của keypoint đó, rồi tạo thành 16 sub-blocks với form size 4x4. Với từng sub-block, ta sẽ tạo được 8 bin oritation (như hình dưới). Do đó tất cả sẽ sở hữu 128 bin cực hiếm tương ứng với một vector biểu lộ cho keypoint descriptor.

*

SIFT trong OpenCV

Trong OpenCV có cung ứng của SIFT và SURF (một giải mã có mục đích giống SIFT, hiệu năng giỏi hơn),

SIFT::operator()(InputArray img, InputArray mask, vector& keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)

Parameters:

img – input 8-bit grayscale image

mask – Optional đầu vào mask that marks the regions where we should detect features.

keypoints – The input/output vector of keypoints

descriptors – The output matrix of descriptors. Pass cv::noArray() if you vì not need them.

Xem thêm: Mbi Là Gì ? Management Buy

useProvidedKeypoints – Boolean flag. If it is true, the keypoint detector is not run. Instead, the provided vector of keypoints is used and the algorithm just computes their descriptors.

References

Distinctive Image Features from Scale-Invariant Keypoints

** Trong bài report lần tới, tôi sẽ khởi tạo ứng dụng thực tiễn sử dụng SIFT/SURF ra mắt đến đông đảo người.**