Khám phá thuật toán SIFT. Tìm hiểu SIFT là gì, các tính năng mạnh mẽ của nó dành cho thị giác máy tính bất biến tỷ lệ. Nâng cao khả năng xử lý hình ảnh của bạn.

Khám phá thuật toán SIFT. Tìm hiểu SIFT là gì, các tính năng mạnh mẽ của nó dành cho thị giác máy tính bất biến tỷ lệ. Nâng cao khả năng xử lý hình ảnh của bạn.
Ngày nay, nhiều thiết bị thông minh chúng ta sử dụng, từ điện thoại, máy ảnh đến hệ thống nhà thông minh, đều được trang bị các giải pháp AI có khả năng nhận diện khuôn mặt, vật thể và thậm chí toàn bộ khung cảnh. Khả năng này đến từ thị giác máy tính , một lĩnh vực trí tuệ nhân tạo cho phép máy móc hiểu và diễn giải hình ảnh và video.
Ví dụ, nếu bạn chụp ảnh Tháp Eiffel từ bất kỳ góc độ hoặc khoảng cách nào, thiết bị của bạn thường vẫn có thể nhận dạng ảnh bằng công nghệ thị giác máy tính và sắp xếp ảnh vào đúng thư mục trong thư viện ảnh. Nghe có vẻ đơn giản, nhưng việc nhận dạng vật thể không phải lúc nào cũng dễ dàng. Hình ảnh có thể trông rất khác nhau tùy thuộc vào kích thước, góc chụp, tỷ lệ hoặc ánh sáng, khiến máy móc khó có thể nhận dạng chúng một cách nhất quán.
Để giúp giải quyết vấn đề này, các nhà nghiên cứu đã phát triển một thuật toán thị giác máy tính gọi là Scale Invariant Feature Transform (SIFT). Thuật toán này cho phép phát hiện các vật thể trong nhiều điều kiện xem khác nhau. Được David Lowe sáng tạo vào năm 1999, SIFT được thiết kế để tìm và mô tả các điểm chính duy nhất trong ảnh, chẳng hạn như các góc, cạnh hoặc các mẫu hình mà vẫn có thể nhận dạng được ngay cả khi ảnh bị thay đổi kích thước, xoay hoặc chiếu sáng khác nhau.
Trước khi các mô hình thị giác máy tính dựa trên học sâu như Ultralytics YOLO11 trở nên phổ biến, SIFT đã là một kỹ thuật được sử dụng rộng rãi trong thị giác máy tính. Đây là một phương pháp tiếp cận tiêu chuẩn cho các tác vụ như nhận dạng đối tượng, trong đó mục tiêu là xác định một mục cụ thể trong ảnh, và khớp ảnh, trong đó ảnh được căn chỉnh bằng cách tìm các đặc điểm chồng chéo.
Trong bài viết này, chúng ta sẽ khám phá SIFT với tổng quan nhanh về nó, cách thức hoạt động ở cấp độ cao và lý do tại sao nó quan trọng trong sự phát triển của thị giác máy tính. Hãy cùng bắt đầu!
Trong một bức ảnh, một vật thể có thể xuất hiện theo nhiều cách khác nhau. Ví dụ, một chiếc cốc cà phê có thể được chụp từ trên xuống, từ bên cạnh, dưới ánh sáng mặt trời chói chang hoặc dưới ánh đèn ấm áp. Cùng một chiếc cốc cũng có thể trông lớn hơn khi ở gần máy ảnh và nhỏ hơn khi ở xa máy ảnh.
Tất cả những khác biệt này khiến việc dạy máy tính nhận dạng vật thể trở nên phức tạp. Nhiệm vụ thị giác máy tính này, được gọi là phát hiện vật thể , đòi hỏi các mô hình Vision AI phải xác định và định vị vật thể một cách chính xác, ngay cả khi kích thước, góc nhìn hoặc điều kiện ánh sáng của chúng thay đổi.
Để thực hiện điều này, thị giác máy tính dựa vào một quy trình gọi là trích xuất hoặc phát hiện đặc điểm . Thay vì cố gắng hiểu toàn bộ hình ảnh cùng một lúc, mô hình sẽ tìm kiếm các đặc điểm hình ảnh đặc biệt như góc nhọn, hoa văn độc đáo hoặc kết cấu vẫn có thể nhận dạng được ở mọi góc độ, tỷ lệ và điều kiện ánh sáng.
Cụ thể, đây chính là mục đích mà Chuyển đổi Tính năng Bất biến Tỷ lệ (Scale Invariant Feature Transform, hay SIFT) được thiết kế. SIFT là một thuật toán phát hiện và mô tả tính năng có thể nhận dạng các đối tượng trong ảnh một cách đáng tin cậy, bất kể chúng được chụp bằng cách nào.
Thuật toán SIFT có một vài đặc tính quan trọng giúp nó hữu ích trong việc nhận dạng vật thể. Một trong những đặc tính then chốt là tính bất biến tỷ lệ. Điều này có nghĩa là SIFT có thể nhận dạng nhiều bộ phận khác nhau của một vật thể, dù nó trông to lớn và ở gần camera hay nhỏ bé và ở xa. Ngay cả khi vật thể không hoàn toàn hiển thị, thuật toán vẫn có thể chọn ra cùng một điểm chính.
Nó thực hiện điều này bằng cách sử dụng một khái niệm gọi là lý thuyết không gian tỷ lệ. Nói một cách đơn giản, hình ảnh được làm mờ ở các mức độ khác nhau để tạo ra nhiều phiên bản. Sau đó, SIFT sẽ xem xét các phiên bản này để tìm ra các mẫu và chi tiết vẫn giữ nguyên, bất kể hình ảnh thay đổi kích thước hay độ sắc nét như thế nào.
Ví dụ, một biển báo đường bộ được chụp từ khoảng cách vài mét sẽ trông lớn hơn nhiều so với cùng một biển báo được chụp từ xa, nhưng SIFT vẫn có thể phát hiện các đặc điểm nổi bật tương tự. Điều này giúp khớp chính xác hai hình ảnh, ngay cả khi biển báo xuất hiện ở các tỷ lệ rất khác nhau.
Các đối tượng trong ảnh cũng có thể bị xoay, đôi khi thậm chí lộn ngược. SIFT xử lý điều này thông qua một thuộc tính gọi là bất biến xoay. Với mỗi điểm chính được phát hiện, thuật toán sẽ gán một hướng nhất quán dựa trên độ dốc ảnh cục bộ. Bằng cách này, cùng một đối tượng có thể được nhận dạng bất kể nó được xoay như thế nào.
Bạn có thể hình dung nó giống như việc đánh dấu mỗi điểm chính bằng một mũi tên nhỏ cho biết hướng của điểm đó. Bằng cách căn chỉnh các đặc điểm theo các hướng này, SIFT đảm bảo các điểm chính khớp chính xác ngay cả khi đối tượng bị xoay. Ví dụ: một địa danh được chụp trong ảnh phong cảnh vẫn có thể được nhận dạng chính xác ngay cả khi một bức ảnh khác chụp nó với góc nghiêng máy ảnh.
Ngoài kích thước và góc quay, hình ảnh còn có thể thay đổi theo những cách khác, chẳng hạn như thay đổi độ sáng. Ánh sáng trên vật thể có thể chuyển từ sáng sang tối, góc máy ảnh có thể dịch chuyển đôi chút, hoặc hình ảnh có thể bị mờ hoặc nhiễu.
SIFT được xây dựng để xử lý những biến thể này. Nó thực hiện điều này bằng cách tập trung vào các điểm chính đặc trưng và có độ tương phản cao, vì các đặc điểm này ít bị ảnh hưởng bởi sự thay đổi ánh sáng hoặc những thay đổi nhỏ về góc nhìn. Do đó, SIFT thường đáng tin cậy hơn các phương pháp phát hiện cạnh hoặc góc đơn giản, vốn thường thất bại khi điều kiện thay đổi.
Hãy xem xét một bức tranh trong phòng trưng bày. Nó vẫn có thể được nhận ra dù được chụp dưới ánh sáng ban ngày dịu nhẹ, dưới ánh đèn sân khấu nhân tạo sáng chói, hay thậm chí với chuyển động mờ nhẹ từ máy ảnh cầm tay. Các điểm chính vẫn đủ ổn định để khớp chính xác bất chấp những khác biệt này.
Tiếp theo, hãy cùng xem cách thức hoạt động của thuật toán SIFT. Quá trình này có thể được chia thành bốn bước chính: phát hiện điểm chính, định vị điểm chính, gán hướng và mô tả điểm chính.
Bước đầu tiên là tìm và phát hiện các điểm chính, là những điểm đặc biệt trong hình ảnh, chẳng hạn như các góc hoặc những thay đổi rõ nét về kết cấu, giúp theo dõi hoặc nhận dạng một đối tượng.
Để đảm bảo các điểm chính tiềm ẩn này có thể được nhận dạng ở mọi kích thước, SIFT xây dựng một không gian tỷ lệ. Đây là một tập hợp các hình ảnh được tạo ra bằng cách làm mờ dần hình ảnh gốc bằng bộ lọc Gaussian, một kỹ thuật làm mịn, và nhóm các kết quả thành các lớp gọi là quãng tám. Mỗi quãng tám chứa cùng một hình ảnh với mức độ mờ tăng dần, trong khi quãng tám tiếp theo là phiên bản nhỏ hơn của hình ảnh đó.
Bằng cách trừ một hình ảnh mờ khỏi một hình ảnh khác, SIFT tính toán Độ lệch chuẩn Gauss (DoG), làm nổi bật các khu vực có độ sáng thay đổi đột ngột. Những khu vực này được chọn làm điểm chính ứng viên vì chúng vẫn giữ nguyên tính nhất quán khi hình ảnh được phóng to hoặc thu nhỏ.
Không phải tất cả các điểm chính ứng viên đều hữu ích vì một số có thể yếu hoặc không ổn định. Để tinh chỉnh chúng, SIFT sử dụng một phương pháp toán học gọi là Khai triển Chuỗi Taylor, giúp ước tính vị trí chính xác của điểm chính với độ chính xác cao hơn.
Trong bước này, các điểm không đáng tin cậy sẽ bị loại bỏ. Các điểm chính có độ tương phản thấp, dễ hòa lẫn vào môi trường xung quanh, cũng như các điểm nằm ngay trên các cạnh, vì chúng có thể dịch chuyển quá dễ dàng, sẽ bị loại bỏ. Bước lọc này chỉ để lại những điểm chính ổn định và đặc trưng nhất.
Khi các điểm chính ổn định được xác định, SIFT làm cho chúng bất biến khi xoay, nghĩa là chúng vẫn có thể khớp ngay cả khi ảnh bị xoay ngang hoặc lộn ngược. Để làm được điều này, SIFT phân tích cách độ sáng thay đổi xung quanh mỗi điểm chính, được gọi là gradient. Gradient thể hiện cả hướng và cường độ thay đổi cường độ điểm ảnh, và cùng nhau chúng nắm bắt cấu trúc cục bộ xung quanh điểm.
Với mỗi điểm chính, SIFT xem xét các gradient trong một vùng xung quanh và nhóm chúng thành một biểu đồ hướng. Đỉnh cao nhất trong biểu đồ này biểu thị hướng thay đổi cường độ chủ đạo, sau đó được gán làm hướng của điểm chính. Cả hướng gradient, cho biết cường độ thay đổi ở đâu, và độ lớn gradient, cho biết mức độ thay đổi đó mạnh đến mức nào, đều được sử dụng để xây dựng biểu đồ này.
Nếu có các đỉnh khác có cường độ gần bằng, SIFT sẽ gán nhiều hướng cho cùng một điểm chính. Điều này giúp tránh mất các đặc điểm quan trọng khi đối tượng xuất hiện ở các góc bất thường. Bằng cách căn chỉnh từng điểm chính với hướng của nó, SIFT đảm bảo các mô tả được tạo ra ở bước tiếp theo luôn nhất quán.
Nói cách khác, ngay cả khi hai ảnh của cùng một đối tượng được xoay khác nhau, các điểm chính được căn chỉnh theo hướng vẫn sẽ khớp chính xác. Bước này mang lại cho SIFT khả năng xử lý xoay mạnh mẽ và mạnh mẽ hơn nhiều so với các phương pháp phát hiện đặc điểm trước đây.
Bước cuối cùng trong SIFT là tạo mô tả cho từng điểm chính để có thể nhận dạng chúng trong các hình ảnh khác.
SIFT thực hiện điều này bằng cách xem xét một mảng hình vuông nhỏ xung quanh mỗi điểm chính, kích thước khoảng 16 x 16 pixel. Trước tiên, mảng này được căn chỉnh theo hướng của điểm chính để việc xoay không ảnh hưởng đến nó. Sau đó, mảng này được chia thành lưới gồm 4 x 4 ô vuông nhỏ hơn.
Trong mỗi ô vuông nhỏ, SIFT đo lường sự thay đổi độ sáng theo các hướng khác nhau. Những thay đổi này được lưu trữ trong một thứ gọi là biểu đồ histogram, giống như một biểu đồ hiển thị hướng nào phổ biến nhất. Mỗi ô vuông có một biểu đồ histogram riêng, và tổng cộng 16 ô vuông tạo ra 16 biểu đồ histogram.
Cuối cùng, các biểu đồ này được kết hợp thành một danh sách số duy nhất, tổng cộng 128 số. Danh sách này được gọi là vectơ đặc trưng, và nó hoạt động như một dấu vân tay cho điểm chính. Vì nó nắm bắt được kết cấu và cấu trúc độc đáo xung quanh điểm, dấu vân tay này cho phép khớp cùng một điểm chính trên các hình ảnh khác nhau, ngay cả khi chúng được thay đổi kích thước, xoay hoặc chiếu sáng khác nhau.
Bây giờ chúng ta đã hiểu rõ hơn về SIFT là gì và cách thức hoạt động của nó, hãy cùng khám phá một số ứng dụng thực tế của nó trong thị giác máy tính.
Một trong những ứng dụng chính của SIFT là nhận dạng và phát hiện vật thể. Điều này liên quan đến việc dạy máy tính nhận dạng và định vị các vật thể trong hình ảnh, ngay cả khi các vật thể không phải lúc nào cũng giống nhau. Ví dụ, SIFT có thể phát hiện một cuốn sách bất kể nó ở gần máy ảnh, xa hơn hay bị xoay một góc.
Lý do phương pháp này hiệu quả là vì SIFT trích xuất các điểm chính có tính đặc trưng cao và ổn định. Khi các điểm chính này được ghép nối với các mô tả SIFT, chúng tạo thành các đặc trưng SIFT, cung cấp một phương pháp đáng tin cậy để so khớp cùng một đối tượng trên nhiều hình ảnh khác nhau. Các đặc trưng này ghi lại các chi tiết độc đáo của đối tượng và duy trì tính nhất quán, cho phép so khớp đặc trưng đáng tin cậy trên nhiều hình ảnh ngay cả khi kích thước, vị trí hoặc hướng của đối tượng thay đổi.
Trước khi học sâu trở nên phổ biến, SIFT là một trong những phương pháp đáng tin cậy nhất để xây dựng hệ thống nhận dạng đối tượng. Nó được sử dụng rộng rãi trong nghiên cứu và các ứng dụng đòi hỏi phải khớp các đối tượng trên các tập dữ liệu hình ảnh lớn, mặc dù nó thường đòi hỏi tài nguyên tính toán đáng kể.
SIFT cũng có thể được sử dụng để tạo ảnh toàn cảnh, là ảnh góc rộng được tạo ra bằng cách ghép nhiều ảnh lại với nhau. Sử dụng SIFT, các điểm chính đặc trưng được tìm thấy ở các phần chồng chéo của các ảnh khác nhau và sau đó được ghép lại với nhau. Những điểm chính này hoạt động như các mỏ neo, định hướng quá trình ghép ảnh về cách căn chỉnh ảnh.
Sau khi hoàn tất việc ghép ảnh, các thuật toán ghép ảnh có thể được sử dụng để tính toán căn chỉnh chính xác, thường sử dụng các phép biến đổi hình học để ánh xạ một ảnh này sang ảnh khác. Các ảnh sau đó được pha trộn để các đường nối biến mất. Kết quả cuối cùng là một bức ảnh toàn cảnh liền mạch trông giống như một bức ảnh toàn cảnh duy nhất, mặc dù nó được tạo ra từ nhiều bức ảnh.
Một ứng dụng thú vị khác của SIFT là tái tạo 3D, trong đó nhiều ảnh 2D chụp từ nhiều góc độ khác nhau được kết hợp để xây dựng mô hình ba chiều . SIFT hoạt động bằng cách tìm và khớp các điểm giống nhau trên các ảnh này.
Sau khi khớp xong, vị trí 3D của các điểm đó có thể được ước tính bằng phương pháp tam giác hóa, một phương pháp tính toán độ sâu từ các góc nhìn khác nhau. Quá trình này là một phần của cấu trúc chuyển động (SfM), một kỹ thuật sử dụng nhiều hình ảnh chồng chéo để ước tính hình dạng 3D của một cảnh cùng với vị trí của các máy ảnh đã chụp ảnh.
Kết quả thường là một đám mây điểm 3D, một tập hợp các điểm trong không gian phác thảo vật thể hoặc môi trường. SIFT là một trong những công cụ đầu tiên giúp việc xây dựng cấu trúc từ chuyển động trở nên thiết thực. Mặc dù các kỹ thuật mới hơn ngày nay nhanh hơn và phổ biến hơn, SIFT vẫn tiếp tục được áp dụng khi độ chính xác quan trọng hơn tốc độ.
SIFT cũng đã được sử dụng trong robot , đặc biệt là trong SLAM (Định vị và Lập bản đồ Đồng thời). SLAM cho phép robot xác định vị trí của mình đồng thời xây dựng bản đồ môi trường xung quanh.
Các điểm chính SIFT hoạt động như những điểm mốc đáng tin cậy mà robot có thể nhận dạng trên nhiều khung hình, ngay cả khi ánh sáng hoặc góc thay đổi. Bằng cách theo dõi các điểm mốc này, robot có thể ước tính vị trí và cập nhật bản đồ ngay lập tức. Mặc dù các bộ phát hiện đặc điểm nhanh hơn được sử dụng phổ biến hơn trong robot ngày nay, SIFT vẫn đóng một vai trò quan trọng trong các hệ thống SLAM ban đầu và vẫn là chìa khóa trong những trường hợp mà độ bền quan trọng hơn tốc độ.
Mặc dù thuật toán SIFT đã được sử dụng rộng rãi trong thị giác máy tính và được biết đến là một phương pháp đáng tin cậy, nhưng nó cũng đi kèm với một số đánh đổi. Đó là lý do tại sao việc cân nhắc ưu và nhược điểm của nó trước khi quyết định xem nó có phù hợp với một dự án hay không là rất quan trọng. Tiếp theo, hãy cùng tìm hiểu những điểm mạnh và hạn chế chính của nó.
Sau đây là một số ưu điểm của việc sử dụng thuật toán SIFT:
Sau đây là một số nhược điểm khi sử dụng thuật toán SIFT:
Khi tìm hiểu ưu và nhược điểm của SIFT, bạn có thể nhận thấy nhiều hạn chế của nó đã mở đường cho các kỹ thuật tiên tiến hơn. Cụ thể, mạng nơ-ron tích chập (CNN) đã nổi lên như một giải pháp thay thế mạnh mẽ.
CNN là một loại mô hình học sâu lấy cảm hứng từ cách thức hoạt động của hệ thống thị giác con người. Nó xử lý hình ảnh theo từng lớp, bắt đầu từ các mẫu đơn giản như cạnh và kết cấu, rồi dần dần phát triển thành các hình dạng và vật thể phức tạp hơn. Không giống như các quy tắc đặc trưng thủ công của SIFT, CNN học các biểu diễn đặc trưng trực tiếp từ dữ liệu.
Phương pháp học tập dựa trên dữ liệu này cho phép CNN vượt trội hơn SIFT trong các tác vụ so khớp mô tả và phân loại . CNN cũng biểu đạt và mạnh mẽ hơn, thích ứng tốt hơn với tính biến đổi và phức tạp của dữ liệu trực quan.
Ví dụ, các mô hình dựa trên CNN đã đạt được kết quả đột phá trên ImageNet , một bộ dữ liệu chuẩn khổng lồ chứa hàng triệu hình ảnh được gắn nhãn thuộc hàng nghìn danh mục. Được thiết kế để kiểm tra khả năng nhận dạng và phân loại đối tượng của các thuật toán, ImageNet có thể làm nổi bật khoảng cách giữa các phương pháp dựa trên đặc trưng cũ và học sâu.
CNN nhanh chóng vượt qua SIFT bằng cách học các biểu diễn phong phú và linh hoạt hơn nhiều, cho phép chúng nhận dạng các vật thể dưới ánh sáng thay đổi, từ nhiều góc nhìn khác nhau và thậm chí khi bị ẩn một phần, những tình huống mà SIFT thường gặp khó khăn.
Thuật toán Biến đổi Đặc trưng Bất biến Tỷ lệ giữ một vị trí quan trọng trong lịch sử thị giác máy tính. Nó cung cấp một phương pháp đáng tin cậy để phát hiện các đặc trưng ngay cả trong môi trường thay đổi và ảnh hưởng đến nhiều phương pháp được sử dụng ngày nay.
Mặc dù các kỹ thuật mới nhanh hơn và hiệu quả hơn, SIFT đã đặt nền móng cho chúng. SIFT cho thấy sự khởi đầu của tiến bộ trong thị giác máy tính ngày nay và làm nổi bật những tiến bộ vượt bậc của các hệ thống AI tiên tiến.
Tham gia cộng đồng toàn cầu của chúng tôi và xem kho lưu trữ GitHub để tìm hiểu thêm về thị giác máy tính. Khám phá các trang giải pháp của chúng tôi để khám phá những đổi mới như AI trong nông nghiệp và thị giác máy tính trong bán lẻ . Xem qua các tùy chọn cấp phép của chúng tôi và bắt đầu xây dựng mô hình thị giác máy tính của riêng bạn.