So khớp mẫu là gì? Hướng dẫn nhanh
Khám phá kỹ thuật xử lý hình ảnh được gọi là so khớp mẫu (template matching), cách nó hoạt động và tầm quan trọng của nó trong lịch sử thị giác máy tính

Hình ảnh thường chứa đựng nhiều chi tiết nhỏ mà con người có thể dễ dàng nhận ra. Tuy nhiên, đối với máy tính, tác vụ này không hề đơn giản. Máy tính nhận diện hình ảnh kỹ thuật số dưới dạng một lưới các giá trị pixel, và ngay cả những thay đổi nhỏ về ánh sáng, góc độ, tỷ lệ hoặc độ sắc nét cũng có thể gây nhầm lẫn.
Khả năng phân tích hình ảnh của máy tính thường đến từ hai lĩnh vực khoa học máy tính có liên quan mật thiết: xử lý ảnh và computer vision. Mặc dù chúng thường hoạt động cùng nhau, nhưng chúng lại có mục đích cốt lõi khác nhau.
Image processing tập trung vào hình ảnh như dữ liệu thô. Nó có thể nâng cao chất lượng hình ảnh, nhưng không cố gắng hiểu nội dung bên trong. Đó là nơi computer vision tạo ra sự khác biệt. Computer vision là một nhánh của artificial intelligence (AI) cho phép máy tính hiểu được hình ảnh và video.
Xử lý ảnh cơ bản đã tồn tại từ nhiều năm nay, nhưng các đổi mới computer vision hiện đại thì mới hơn nhiều. Một cách tuyệt vời để hiểu lịch sử của lĩnh vực này là nhìn lại cách chúng ta đã từng giải quyết các vấn đề này bằng những phương pháp cũ hơn, truyền thống hơn.
Ví dụ như image matching. Đây là một tác vụ thị giác phổ biến, nơi hệ thống phải tìm xem một đối tượng hoặc mẫu cụ thể có tồn tại trong một hình ảnh lớn hơn hay không.
Ngày nay, việc này có thể được thực hiện dễ dàng và chính xác bằng cách sử dụng AI và deep learning. Tuy nhiên, trước khi mạng thần kinh hiện đại ra đời vào những năm 2010, phương pháp phổ biến nhất là một kỹ thuật đơn giản hơn nhiều gọi là template matching.

Hình 1. Một ví dụ về template matching (Nguồn)
Template matching là một kỹ thuật xử lý ảnh, trong đó một ảnh mẫu nhỏ (template) được trượt qua một ảnh lớn hơn theo từng pixel. Quá trình trượt giống như phép tích chập (convolution) này cho phép thuật toán tìm ra vị trí khớp nhất với mẫu cụ thể đó.
Trong bài viết này, chúng ta sẽ khám phá template matching là gì và các cải tiến hiện đại giúp nó trở nên đáng tin cậy hơn trong các tình huống thực tế như thế nào. Hãy bắt đầu thôi!
Link to this sectionTemplate matching là gì?#
Template matching còn có thể được gọi là một kỹ thuật computer vision cổ điển, nghĩa là nó làm việc trực tiếp với các pixel hình ảnh (đơn vị nhỏ nhất của hình ảnh kỹ thuật số). Nó được sử dụng để tìm kiếm một mẫu nhỏ hơn bên trong một hình ảnh lớn hơn.
Các phương pháp như thế này được xác định bằng hình học, quang học và các quy tắc toán học thay vì huấn luyện các model lớn trên các tập dữ liệu khổng lồ. Nói cách khác, hệ thống template matching so sánh độ sáng, màu sắc và các thông tin pixel khác giữa hai đầu vào: ảnh đầu vào (ảnh lớn hơn) và một ảnh mẫu nhỏ hơn (mẫu cần tìm).

Hình 2. Hình A và Hình B là ví dụ về các template. (Nguồn)
Mục tiêu chính của template matching là xác định vị trí template xuất hiện trong cảnh lớn hơn và đo lường mức độ khớp của nó với các vùng khác nhau của hình ảnh. Thuật toán template matching thực hiện điều này bằng cách trượt template qua ảnh lớn hơn và tính toán điểm tương đồng tại mọi vị trí.
Các vùng có điểm số cao hơn được coi là khớp nhất, nghĩa là chúng giống với template. Vì phương pháp này dựa trên so sánh từng pixel, nó hoạt động hiệu quả nhất trong các môi trường được kiểm soát, nơi hình dạng của các đối tượng không thay đổi.
Ví dụ, template matching có thể được sử dụng trong các tác vụ xác minh nhãn trong kiểm soát chất lượng. Nó có thể dễ dàng so sánh ảnh template của nhãn với hình ảnh của sản phẩm hoàn thiện để kiểm tra xem nhãn có hiện diện hay không.
Link to this sectionCách thức hoạt động của template matching#
Dưới đây là tổng quan từng bước về cách thức hoạt động của template matching:
-
Bước 1 - Chuẩn bị hình ảnh: Quá trình bắt đầu bằng việc tải ảnh đầu vào và ảnh template, sau đó chuyển đổi cả hai thành hình ảnh thang độ xám (grayscale). Vì template matching dựa trên việc so sánh các giá trị pixel, việc loại bỏ thông tin màu sắc giúp giảm nhiễu và tăng tốc quá trình xử lý ảnh.
-
Bước 2 - Trượt template qua hình ảnh: Tiếp theo, thuật toán template matching trượt template qua hình ảnh lớn hơn theo từng pixel một (bắt đầu từ góc trên bên trái). Mỗi bước trong chuyển động này là một vòng lặp, trong đó thuật toán trích xuất một bản vá hình ảnh (image patch) từ ảnh nguồn khớp với kích thước của template.
-
Bước 3 - Đo lường độ khớp: Mỗi bản vá hình ảnh được so sánh với template bằng phương pháp đối sánh toán học để tạo ra số liệu tương quan hoặc giá trị tương quan cho mọi vị trí có thể. Các phương pháp phổ biến bao gồm bình phương sai biệt (đo khoảng cách số học giữa các cường độ pixel để tính tổng độ lệch), tương quan chéo chuẩn hóa (nhân các giá trị pixel để xác định mức độ căn chỉnh của các mẫu sáng và tối), và hệ số tương quan (trừ độ sáng trung bình để đảm bảo kết quả khớp vẫn chính xác ngay cả khi ánh sáng thay đổi một chút).
-
Bước 4 - Xác định kết quả khớp tốt nhất: Sau khi đánh giá tất cả các vị trí, thuật toán sẽ chọn kết quả khớp tốt nhất bằng cách tìm giá trị cực đại hoặc cực tiểu, tùy thuộc vào phương pháp được sử dụng. Một ngưỡng (threshold) thường được áp dụng cho các kết quả này để đảm bảo rằng chỉ các kết quả khớp có điểm tin cậy đủ cao mới được chấp nhận, từ đó loại bỏ các kết quả phát hiện sai hoặc yếu.
-
Bước 5 - Làm nổi bật kết quả: Cuối cùng, vị trí được phát hiện sẽ được ánh xạ trở lại hình ảnh gốc. Thông thường, một BBox sẽ được vẽ xung quanh vùng khớp, hiển thị rõ ràng nơi template xuất hiện.
Link to this sectionThực hành với template matching#
Mặc dù template matching dựa trên xử lý ảnh thường không được sử dụng trong các triển khai giải pháp computer vision thực tế năng động do những hạn chế của nó, nếu bạn quan tâm đến việc thử nghiệm, các thư viện Python như OpenCV giúp quá trình này trở nên đơn giản và cũng cung cấp các hướng dẫn dễ làm theo. Nó có tính năng matchTemplate tích hợp sẵn giúp xử lý các phép so sánh toán học phức tạp.
Ngoài ra, nó hỗ trợ các hàm khác giúp thực hiện các tác vụ đơn giản như tải ảnh bằng hàm imread và chuyển đổi màu sắc bằng hàm cvtColor để biến đổi hình ảnh sang thang độ xám. Chuyển đổi màu sắc là một bước quan trọng vì việc giảm hình ảnh xuống một kênh cường độ duy nhất giúp việc so sánh toán học trong matchTemplate nhanh hơn và ít nhạy cảm với nhiễu màu hơn.
Sau khi bạn đã tạo bản đồ tương tự (similarity map), OpenCV cũng bao gồm hàm minMaxLoc để hoàn tất quá trình phát hiện. Hàm này có thể được sử dụng để quét toàn bộ bản đồ nhằm xác định các giá trị cực tiểu và cực đại toàn cục cùng với tọa độ chính xác của chúng. Tùy thuộc vào phương pháp khớp được sử dụng, minMaxLoc cho phép bạn xác định ngay lập tức vị trí khớp tốt nhất bằng cách tìm kiếm độ tương quan cao nhất hoặc giá trị sai số thấp nhất trong dữ liệu.
Ngoài OpenCV, các thư viện như NumPy rất cần thiết để xử lý các mảng hình ảnh và áp dụng ngưỡng cho kết quả, trong khi Matplotlib thường được sử dụng để trực quan hóa bản đồ tương đồng và kết quả phát hiện cuối cùng. Cùng nhau, các công cụ này cung cấp một môi trường hoàn chỉnh để xây dựng và gỡ lỗi giải pháp template matching.
Link to this sectionCác ứng dụng thực tế của template matching#
Bây giờ chúng ta đã hiểu rõ hơn về cách template matching hoạt động, hãy xem xét kỹ hơn các ứng dụng của nó trong các tình huống thực tế.
Link to this sectionNhận diện các phong cách kiến trúc truyền thống#
Trong cultural heritage và các nghiên cứu kiến trúc, các nhà nghiên cứu phải phân tích các bức ảnh về các tòa nhà lịch sử, đền thờ và di tích để hiểu các mẫu thiết kế thay đổi như thế nào giữa các vùng. Trước khi các model computer vision tiên tiến được áp dụng rộng rãi, họ đã sử dụng các kỹ thuật image matching để nghiên cứu các cấu trúc như vậy.
Template matching cho phép các nhà nghiên cứu tập trung vào các dấu hiệu kiến trúc cụ thể như đường viền mái nhà, cách sắp xếp cửa sổ hoặc các họa tiết trên tường. Bằng cách trượt các template hoặc hình ảnh tham chiếu qua các hình ảnh lớn hơn, họ có thể nhận diện các hình dạng lặp lại và giảm bớt việc phân tích hình ảnh thủ công vốn có thể mất hàng giờ.
Một ví dụ thú vị đến từ một nghiên cứu liên quan đến Indonesian traditional houses. Các nhà nghiên cứu đã tạo ra các template nhỏ về các đặc điểm tiêu biểu và so sánh chúng với các bức ảnh toàn cảnh. Cách tiếp cận này được sử dụng để làm nổi bật các vùng ảnh khớp với template và phân loại các phong cách kiến trúc giữa các vùng.

Hình 3. Sử dụng template matching để phân loại nhà truyền thống ở Indonesia (Nguồn)
Link to this sectionPhát hiện đối tượng trong các hệ thống thị giác công nghiệp#
Các môi trường công nghiệp có thể hưởng lợi từ các hệ thống thị giác có khả năng phát hiện linh kiện nhanh chóng, xác minh lắp ráp hoặc phát hiện lỗi. Trước khi deep learning trở nên phổ biến trong manufacturing, nhiều đội ngũ đã thử nghiệm các phương pháp image matching để tự động hóa các tác vụ này.
Nói một cách đơn giản, một template tham chiếu linh kiện có thể được sử dụng để quét các hình ảnh từ dây chuyền sản xuất và làm nổi bật các vùng khớp với template. Điều này hoạt động tốt khi các bộ phận xuất hiện ở các vị trí nhất quán và ánh sáng ổn định.
Link to this sectionTemplate matching để phát hiện khối u phổi#
Ngay cả khi công nghệ tiên tiến đang tạo ra tác động trong lĩnh vực chăm sóc sức khỏe, việc chẩn đoán các vấn đề sức khỏe từ medical imaging như chụp CT vẫn còn nhiều thách thức. Theo truyền thống, các bác sĩ chẩn đoán hình ảnh phải xem xét thủ công từng lát cắt quét, một quy trình đòi hỏi sự chính xác cao và tốn đáng kể thời gian.
Trước khi deep learning được áp dụng trong chăm sóc sức khỏe, các nhà nghiên cứu đã cố gắng sử dụng template matching để hợp lý hóa quy trình làm việc và hỗ trợ xác định các bất thường. Một ví dụ điển hình của kỹ thuật này liên quan đến việc phát hiện khối u hoặc nốt phổi.
Trong phương pháp này, các nhà nghiên cứu tạo ra các template tham chiếu đại diện cho hình dạng và cường độ điển hình của một khối u. Sau đó, hệ thống sẽ trượt các template này qua các bản quét của bệnh nhân, đo lường sự tương đồng tại mọi tọa độ.

Hình 4. Phát hiện khối u phổi sử dụng template matching (Nguồn)
Link to this sectionƯu điểm và nhược điểm của template matching#
Dưới đây là một số lợi ích chính của việc sử dụng template matching:
- Trực quan và dễ hiểu: Template matching rất dễ hiểu và triển khai, trở thành điểm khởi đầu lý tưởng cho những người mới bắt đầu với AI và computer vision.
- Đáng tin cậy trong điều kiện được kiểm soát: Nó hoạt động tốt trên hình ảnh thang độ xám dưới điều kiện ánh sáng nhất quán, mang lại kết quả chính xác khi các mẫu và nền ổn định.
- Dễ dàng tích hợp: Sử dụng các thư viện Python như OpenCV, template matching có thể được áp dụng nhanh chóng vào các dự án thực tế mà không cần thiết lập phức tạp hoặc tính toán nặng nề.
Mặc dù template matching mang lại nhiều lợi ích, nó cũng có những hạn chế. Dưới đây là một vài thách thức cần lưu ý:
- Nhạy cảm với tỷ lệ và xoay: Sự thay đổi về kích thước hoặc hướng của template có thể làm giảm độ chính xác.
- Phụ thuộc vào ánh sáng và độ tương phản: Những thay đổi về ánh sáng hoặc độ tương phản giữa template và hình ảnh có thể dẫn đến sai lệch kết quả hoặc làm cho template khó phát hiện hơn.
- Khả năng thích ứng hạn chế: Không giống như các phương pháp dựa trên AI, template matching không thể học hỏi từ dữ liệu hoặc cải thiện theo thời gian. Nó hoạt động tốt nhất trong các cài đặt được kiểm soát hoặc lặp đi lặp lại.
Link to this sectionCác điểm chính cần lưu ý#
Computer vision là một lĩnh vực rộng lớn và bao gồm nhiều kỹ thuật khác nhau. Tìm hiểu về các kỹ thuật xử lý ảnh truyền thống, như template matching, là một điểm khởi đầu tuyệt vời để hiểu cách phân tích hình ảnh hoạt động. Các đổi mới vision AI tiên tiến được xây dựng dựa trên cùng các khái niệm cốt lõi và giải quyết các vấn đề tương tự.
Bạn muốn khám phá thêm về AI? Hãy tham gia cộng đồng của chúng tôi và kiểm tra kho lưu trữ GitHub của chúng tôi. Tìm hiểu cách AI trong bán lẻ và vision AI trong sản xuất đang thúc đẩy sự thay đổi. Khám phá các tùy chọn cấp phép của chúng tôi để xây dựng với vision AI ngay hôm nay!






