Chuyển đến nội dung chính

Nhìn Như Máy: Hướng Dẫn Nhập Môn Phân Tích Ảnh trong Machine Learning

Khám phá cách máy tính ‘nhìn’ và diễn giải hình ảnh, các kỹ thuật thao tác ảnh, và cách machine learning đã thay đổi cuộc chơi.
Đã cập nhật 5 thg 10, 2026  · 15 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Hình ảnh và video hiện diện khắp nơi. Là con người, chúng ta dựa vào thị giác cho nhiều nhiệm vụ, như lái xe, nhận ra bạn bè, và chẩn đoán vấn đề. Khi máy tính ngày càng tham gia sâu vào công việc hằng ngày, việc chúng cũng có thể sử dụng hình ảnh càng trở nên quan trọng. Phân tích ảnh là cách giúp máy tính “nhìn thấy” và hiểu một hình ảnh. Khi phân tích ảnh được vận hành bởi machine learning, chúng ta gọi đó là thị giác máy tính (computer vision).

Hướng dẫn này sẽ đưa bạn qua cách máy tính “nhìn” ảnh, trình bày những cơ bản của thao tác ảnh, và cuối cùng, thảo luận cách machine learning và AI sinh tạo được áp dụng cho hình ảnh. Bắt đầu thôi!

Nếu bạn quan tâm tìm hiểu thêm về phân loại ảnh, hãy xem buổi code-along của chúng tôi về Image Classification with Hugging Face. 

Computer Vision là gì?

Computer Vision là một lĩnh vực của trí tuệ nhân tạo cho phép máy tính và hệ thống rút ra thông tin có ý nghĩa từ hình ảnh số, video và các đầu vào trực quan khác. Đây là khoa học và công nghệ về những cỗ máy có thể nhìn. Với tư cách là một ngành khoa học, computer vision tìm cách áp dụng các lý thuyết và mô hình của mình để xây dựng các hệ thống thị giác máy tính.

Cốt lõi của computer vision là diễn giải dữ liệu thị giác. Nó bao gồm việc thu nhận, xử lý, phân tích và hiểu ảnh số để trích xuất dữ liệu có số chiều cao từ thế giới thực nhằm tạo ra thông tin dạng số hoặc ký hiệu mà máy có thể sử dụng. Lĩnh vực này sử dụng nhiều phương pháp và kỹ thuật từ các ngành khác nhau như vật lý, toán học, kỹ thuật điện và khoa học máy tính.

Giới thiệu về Phân tích Ảnh

Ở mức thấp nhất, máy tính vận hành với các số 1 và 0. Làm việc với hình ảnh cũng không khác. Máy tính có thể biểu diễn một bức ảnh như một ma trận các số 1 và 0. Khi một máy tính hiển thị ảnh, nó hiển thị một lưới điểm ảnh (pixel), mỗi điểm được tô một màu. Hãy xét một hình rất đơn giản, như tam giác đen dưới đây.

Hình 2: Tam giác đen với từng pixel được viền.

Hình 1: Một tam giác đơn giản, độ phân giải thấp gồm 28 pixel.

Hình này gồm 28 pixel: 16 pixel đen và 12 pixel trắng. Bạn có thể thấy mỗi pixel được viền trong hình dưới.

Hình 2: Tam giác đen với từng pixel được viền.

Nhưng hình ảnh này chỉ là biểu diễn của ma trận số được máy tính lưu trữ.

Hình 3: Minh họa các số 1 và 0 trong ma trận cấu thành ảnh tam giác.

Hình 3: Minh họa các số 1 và 0 trong ma trận cấu thành ảnh tam giác.

Điều này khá đơn giản với ảnh chỉ có hai màu: đen và trắng. Nếu ảnh của bạn là các mức xám, bạn cần thêm độ tinh tế. Khi đó, bạn có thể có các số như 0.015 trong các ô. Con số này về cơ bản cho máy tính biết độ chói cần gán cho mỗi pixel trên màn hình. Nó xác định một giá trị giữa đen (1) và trắng (0).

Phân tích ảnh màu

Nhưng ảnh hiếm khi buồn tẻ như vậy. Máy tính xử lý ảnh đầy màu sắc như thế nào? Hãy biến tam giác này thành màu xanh lục!

Hình 4: Cùng tam giác 28 pixel như trước, nhưng có thêm sắc màu!

Hình 4: Cùng tam giác 28 pixel như trước, nhưng có thêm sắc màu!

Trong trường hợp này, bạn không thể dùng một số giữa 0 và 1 để mô tả màu này. Có quá nhiều màu để có thể gán thực tế cho mỗi màu một con số duy nhất mang tính trực quan.

Thay vào đó, một vài hệ thống đã được phát triển để tách các thành phần riêng lẻ của một màu và gán số cho từng thành phần.

Ví dụ, bạn có thể đã nghe về RGB. Đây là mô hình màu tách mỗi màu thành lượng đỏ, xanh lá và xanh dương tương ứng, kết hợp để tạo ra màu bạn muốn.

Mô hình RGB bắt nguồn từ việc sử dụng các màn hình có pixel đỏ, xanh lá và xanh dương, như TV. Mô hình này cho phép kiểu trộn màu cộng (additive) được sử dụng bởi ánh sáng trong các thiết bị này.

Trong hệ này, đỏ, xanh dương và xanh lá được gọi là “kênh”. Với ảnh 8-bit, mỗi kênh được gán một giá trị từ 0 đến 255 (là giá trị tối đa của một số nhị phân 8 bit).

Hãy xem điều này có ý nghĩa gì với tam giác xanh lục đơn giản của chúng ta.

Các giá trị RGB cho sắc xanh lục này lần lượt là 154, 205 và 50. Lưu ý nếu là xanh lục tinh khiết, kênh đỏ và xanh dương sẽ đều là 0. Biểu diễn RGB này cho thấy có khá nhiều đỏ và một chút xanh dương trộn vào xanh lục để tạo ra sắc độ này. Mỗi pixel có ba kênh giá trị mô tả nó. Mỗi pixel màu xanh lục được biểu diễn bởi 154, 205, 50, và mỗi pixel trắng được biểu diễn bởi 0, 0, 0.

Điều đó có nghĩa tam giác xanh lục 28 pixel đơn giản này được biểu diễn bằng ba ma trận 7x4.

Bạn có thể hình dung ba ma trận này xếp chồng lên nhau để tạo ra bức ảnh.

Hình 5

Hình 5: Với tam giác xanh lục đơn giản này, mỗi kênh màu trong hệ RGB chứa một ma trận giá trị pixel biểu diễn ảnh. Khi kết hợp, ba ma trận này xếp lại để tạo thành một ảnh!

Bạn có thể thấy ảnh có thể nhanh chóng chiếm nhiều không gian trong máy tính nếu mỗi pixel cần ba con số để định nghĩa. Hãy thử nghĩ xem một bức ảnh độ phân giải cao, ví dụ ảnh 4K (có 4.000 pixel), sẽ gồm bao nhiêu con số.

RGB không phải là hệ duy nhất dùng để gán màu cho ảnh. Bạn có thể đã nghe về CYMK, dùng bốn số để mô tả mỗi màu. Mô hình này dùng bốn màu: lục lam, đỏ tươi, vàng và đen. Điều này hữu ích trong các tình huống cần mô hình màu trừ (subtractive), ví dụ trong in ấn.

Mỗi hệ màu có ưu và nhược điểm riêng, và đáng để bạn tìm hiểu vài hệ nếu gặp vấn đề bộ nhớ khi phân tích ảnh. Trong phạm vi hướng dẫn này, chúng ta sẽ gắn với RGB.

Vậy bạn có thể làm gì với các ma trận giá trị pixel này?

Kỹ thuật Phân tích Ảnh Thủ công

Cô lập Đối tượng bằng Ngưỡng hóa (Thresholding)

Máy tính xác định pixel nào biểu diễn khuôn mặt hay đối tượng khác như thế nào? Ngày nay, phần lớn công việc nhận dạng đó được thực hiện bằng các mô hình machine learning. Nhưng để hiểu được chúng, trước hết hữu ích là hiểu cách thủ công cô lập một hình trong ảnh.

Hãy tưởng tượng bạn có một video gồm hai con thằn lằn trên nền sáng. Để đơn giản, bạn chuyển video sang thang xám, nên chỉ có một kênh cần xét. Bạn quan tâm theo dõi chuyển động của thằn lằn trong video.

Video chỉ là một chuỗi ảnh (hoặc khung hình) xếp chồng. Vậy việc đầu tiên là tách chuỗi đó và lấy từng ảnh một. Giờ bạn có một ảnh thang xám, bạn cần cho máy tính biết phần nào của ảnh là thằn lằn và phần nào không.

Về lý thuyết, bạn có thể dùng chuột để chỉ vào từng pixel tạo nên con thằn lằn và gán nhãn “thằn lằn”. Nhưng với độ phân giải của hầu hết ảnh và việc bạn có nhiều ảnh tạo thành video, đó là đề xuất không khả thi.

Thay vào đó, bạn có thể đưa ra một quy tắc nói cho máy tính biết đâu là phần của thằn lằn và đâu không phải. Cách đơn giản nhất là dùng ngưỡng hóa.

Hình 6: Để đơn giản hóa, chúng ta sẽ làm việc với bức ảnh này ở dạng thang xám.

Hình 6: Để đơn giản hóa, chúng ta sẽ làm việc với bức ảnh này ở dạng thang xám.

Ngưỡng hóa là gì?

Ngưỡng hóa là quá trình phân đoạn một ảnh dựa trên giá trị số gán cho mỗi pixel. Nhìn lại ảnh thang xám của các con thằn lằn. Hãy để ý các con thằn lằn tối hơn nền. Trong nhiều ảnh, sẽ có sự khác biệt về độ chói giữa đối tượng ta muốn cô lập và nền của nó.

Ngưỡng hóa là quá trình tìm ranh giới của đối tượng, trong trường hợp này là các con thằn lằn, bằng cách dùng sự khác biệt về độ chói này. Kỹ thuật này hướng tới việc xác định một ngưỡng độ chói phân tách các pixel sáng và tối.

Tạo ảnh nhị phân

Hãy tưởng tượng ma trận số định nghĩa ảnh thang xám này. Mỗi pixel được định nghĩa bởi một số từ 0 đến 255.

Với ngưỡng hóa, bạn có thể định nghĩa một quy tắc rằng bất cứ thứ gì đủ tối là thằn lằn. Ví dụ, bạn có thể nói rằng bất kỳ pixel nào có giá trị từ 130 trở lên là thằn lằn, và bất kỳ giá trị thấp hơn 130 là không phải thằn lằn.

Về kỹ thuật, bạn sẽ đặt mọi thứ có giá trị ngưỡng của chúng ta hoặc cao hơn thành 255 và mọi thứ khác thành 0. Điều này tạo ra một ảnh nhị phân với pixel đen và trắng. Nếu bạn chọn một giá trị ngưỡng tốt, các con thằn lằn sẽ là màu đen trên nền trắng.

Hình 7: Ảnh nhị phân được tạo ra bằng cách đặt ngưỡng 130.

Hình 7: Ảnh nhị phân được tạo ra bằng cách đặt ngưỡng 130.

Trong ví dụ này, chúng ta chỉ chọn ngẫu nhiên một con số làm ngưỡng: 130. Tuy nhiên, để cô lập chính xác các con thằn lằn, bạn sẽ muốn chọn một con số có thể bao phủ phần lớn các con thằn lằn trong khi giảm thiểu các pixel không thuộc về chúng.

Quá trình chọn một giá trị ngưỡng cho toàn bộ ảnh được gọi là ngưỡng hóa toàn cục (global thresholding). Đó là cách thô sơ để cô lập mục tiêu và thường không hoàn hảo. Nếu bạn có một con thằn lằn đổ bóng hoàn hảo trên nền trắng hoàn hảo, ngưỡng hóa toàn cục sẽ hoạt động tuyệt vời. Nhưng như bạn thấy trong ví dụ thằn lằn này, ảnh thực hiếm khi dễ như vậy. Bạn có thể cần một phương pháp ngưỡng hóa phức tạp hơn.

Một phương pháp như vậy gọi là ngưỡng hóa cục bộ (local thresholding). Trong kỹ thuật này, bạn chọn các giá trị ngưỡng khác nhau cho các phần khác nhau của ảnh. Điều này đặc biệt hữu ích khi nền có độ dốc ánh sáng. Có nhiều phương pháp tối ưu hóa khác với mức độ phức tạp khác nhau, và bạn chọn phương pháp nào sẽ tùy hoàn cảnh.

Cũng có thể ngưỡng hóa ảnh màu. Làm như vậy phức tạp hơn nhiều và nằm ngoài phạm vi của hướng dẫn này.

Phân tích Hình thái học (Morphological)

Trong khi ngưỡng hóa có thể giúp bạn đi khá xa trong việc cô lập các con thằn lằn, nó không hoàn hảo. Bạn vẫn có thể gặp tình trạng phần nền bị xác định thành thằn lằn hoặc thiếu một số phần của thằn lằn. Bạn cần một công cụ khác để cô lập thêm. Với ngưỡng hóa, bạn đã định nghĩa quy tắc dựa trên màu hoặc độ chói. Giờ bạn sẽ định nghĩa quy tắc dựa trên hình dạng, sử dụng các phép toán hình thái học.

Định nghĩa hình dạng bằng phần tử cấu trúc

Các phép toán hình thái học sử dụng phần tử cấu trúc (structuring element) để xác định rìa của hình. Một phần tử cấu trúc là một ma trận nhỏ có hình dạng cụ thể, thường là hình vuông, tròn hoặc dấu cộng. Bạn cũng có thể thay đổi kích thước phần tử cấu trúc để đạt các hiệu ứng khác nhau.

Trong một phép toán hình thái học, mỗi pixel được so sánh với các pixel lân cận trong phạm vi hình dạng đó. Có hai phép toán cơ bản bạn có thể dùng để xác định hình dạng của đối tượng hướng tới: giãn (dilation) và xói mòn (erosion).

Giãn (Dilation)

Trong phép giãn, nếu bất kỳ pixel lân cận nào nằm trong giới hạn của phần tử cấu trúc là tối (trong trường hợp này là 1), thì pixel mục tiêu sẽ được chuyển thành 1 cho phù hợp.

Hãy tưởng tượng bạn di chuyển một kính lúp hình vuông trên lưới số. Bạn đặt một con số ở giữa hình vuông rồi nhìn các con số khác trong hình vuông đó. Nếu có bất kỳ con số nào là 1, bạn gán nhãn con số ở giữa là 1, bất kể ban đầu nó là gì.

Theo cách này, phép giãn có thể mở rộng biên của đối tượng hoặc lấp đầy các lỗ.

Xói mòn (Erosion)

Xói mòn hoạt động tương tự giãn nhưng với hiệu ứng ngược lại. Với xói mòn, nếu bất kỳ lân cận nào của một pixel là 0, thì pixel đó sẽ được gán lại thành 0. Điều này có thể giúp tách các đối tượng, giảm nhiễu và tinh chỉnh ranh giới.

Hình 8

Hình 8: Ví dụ trực quan về giãn và xói mòn sử dụng phần tử cấu trúc hình dấu cộng. Trong ví dụ này, chúng ta chỉ thực hiện phép toán hình thái trên hàng thứ hai của ma trận. Trong ảnh thực, nó sẽ được áp dụng cho mọi pixel. Nhưng ngay cả với ví dụ đơn giản này, bạn có thể thấy xói mòn tách rìa của đường trong khi giãn làm dày nó.

Bạn có thể thấy giãn và xói mòn làm thay đổi ảnh nhị phân của thằn lằn như thế nào.

Hình 9: Ví dụ áp dụng xói mòn và giãn lên ảnh thằn lằn. Phần tử cấu trúc sử dụng ở đây là hình vuông 6x6.

Kết hợp giãn và xói mòn

Giãn và xói mòn có thể được dùng lặp đi lặp lại hoặc tuần tự để thay đổi kết quả cuối. Thực hành phổ biến là dùng cả hai để xác định rõ hơn ảnh đã cô lập.

Khi xói mòn theo sau bởi giãn, các phần lồi nhỏ và nhiễu được loại bỏ, và đường viền còn lại được củng cố. Kỹ thuật này gọi là mở (opening).

Khi giãn theo sau bởi xói mòn, các lỗ và khe nhỏ được lấp đầy, và các mép được gọn gàng. Kỹ thuật này gọi là đóng (closing).

Hình 10: Minh họa kỹ thuật mở và đóng sử dụng phần tử cấu trúc hình vuông 6x6 trên ảnh thằn lằn.

Hình 10: Minh họa kỹ thuật mở và đóng sử dụng phần tử cấu trúc hình vuông 6x6 trên ảnh thằn lằn.

Bạn có thể thấy không hình nào trong số này hoàn toàn cô lập được các con thằn lằn khỏi nền. Nhưng với mỗi điều chỉnh và lặp lại, bạn có thể tiến gần hơn.

Ở lần lặp tiếp theo, bạn có thể yêu cầu máy tính bỏ qua bất cứ thứ gì ngoài một khoảng kích thước nhất định. Điều này sẽ loại bỏ hầu hết các đốm và để lại các con thằn lằn nguyên vẹn. Học cách tự mình làm điều này trong khóa Image Processing in Python trên DataCamp!

Với mỗi ảnh hoặc chuỗi ảnh, bạn có thể thiết lập một loạt quy tắc như vậy để nói cho máy tính biết mục tiêu của bạn trông như thế nào. Sau đó máy tính có thể dùng thông tin đó để đưa ra quyết định.

Những quyết định này ảnh hưởng từ việc nhận diện các thiên hà đến việc tìm mô bệnh. Nhưng việc tạo một loạt quy tắc cho từng bức ảnh riêng lẻ rất tốn thời gian và nhàm chán. Đó là lúc machine learning phát huy tác dụng.

Machine Learning Có Giám sát cho Phân tích Ảnh

Huấn luyện Mô hình ML Có Giám sát

Như bạn đã thấy, phân tích ảnh thủ công có thể đòi hỏi nhiều công sức, vì có vô số biến số tác động. May mắn thay, machine learning (ML) có thể giúp tự động hóa quy trình này. Để xem chi tiết về machine learning, bạn có thể tham khảo Machine Learning Scientist with Python hoặc Supervised Machine Learning. Hướng dẫn này chỉ đề cập ngắn gọn các khía cạnh ML hữu ích cho việc hiểu xử lý ảnh.

Có hai nhóm lớn trong ML: ML có giám sát và ML không giám sát.

Với ML có giám sát, về cơ bản bạn cung cấp cho máy tính một số lượng lớn ảnh và gán nhãn trước cho chúng. Nó hơi giống việc dạy một em bé các con vật trông ra sao bằng cách chỉ vào và nói, “Đây là con voi.” Bé sẽ tự tìm ra khuôn mẫu cho những thứ chúng ta gọi là voi và những thứ chúng ta gọi là cá.

Trong ML có giám sát, máy tính đang làm công việc tương tự đứa trẻ đó.

Hình 11

Hình 11: Ảnh do DALLE-E tạo: người mẹ chỉ vào đồ chơi con vật để dạy em bé chúng trông như thế nào. Học có giám sát hoạt động tương tự, nơi các ví dụ kèm đáp án đúng được cung cấp.

Gán nhãn và trích xuất đặc trưng

Giả sử bạn muốn huấn luyện một mô hình machine learning để nhận diện các đối tượng trong một ảnh mà nó chưa từng gặp. Bước đầu tiên trong huấn luyện mô hình ML có giám sát này là chú giải (annotate) và gán nhãn một tập hợp ảnh, gọi là bộ dữ liệu huấn luyện. Chú giải bao gồm việc thủ công xác định và đánh dấu các vùng quan tâm trong ảnh.

Ví dụ, nếu chúng ta muốn huấn luyện một mô hình để phân loại các loại động vật khác nhau, chúng ta sẽ chú giải mỗi ảnh bằng cách vẽ đường bao quanh các con vật có trong ảnh và gán cho chúng nhãn lớp tương ứng, ‘bò’, ‘mèo’, v.v. Bộ dữ liệu đã chú giải này trở thành nền tảng để huấn luyện mô hình. Cũng có rất nhiều bộ dữ liệu đã gán nhãn công khai để bạn sử dụng.

Khi đã có bộ dữ liệu huấn luyện đã gán nhãn, bạn cần trích xuất các đặc trưng liên quan từ ảnh. Trích xuất đặc trưng là việc xác định và nắm bắt các đặc điểm hoặc khuôn mẫu quan trọng phân biệt lớp này với lớp khác.

Trong ví dụ động vật của chúng ta, bạn có thể định nghĩa một đặc điểm quan trọng của bò là có bốn chân và đốm.

Mạng nơ-ron tích chập

Có nhiều kỹ thuật dùng cho trích xuất đặc trưng trong xử lý ảnh, từ các phương pháp đơn giản như biểu đồ màu và mô tả kết cấu đến các phương pháp tiên tiến hơn như mạng nơ-ron tích chập (CNN).

CNN là một thuật toán học có giám sát phổ biến, tự động học các đặc điểm và khuôn mẫu quan trọng từ ảnh có nhãn trong quá trình huấn luyện. Chúng được tạo thành từ các lớp, mỗi lớp thực hiện các phép toán cụ thể trên dữ liệu ảnh.

Các lớp tích chập áp dụng bộ lọc để nắm bắt các khuôn mẫu cục bộ, trong khi các lớp gộp (pooling) giảm kích thước không gian. Các lớp kết nối đầy đủ kết hợp thông tin từ các lớp trước. Thông qua chuỗi phép toán này, mạng trích xuất và kết hợp các đặc trưng để đưa ra dự đoán chính xác về những gì có trong ảnh.

Chọn kiến trúc

Quy trình huấn luyện một mô hình ML có giám sát, như CNN, gồm nhiều bước. Trước hết, dữ liệu cần được tiền xử lý để đảm bảo tính nhất quán và chất lượng. Điều này có thể bao gồm thay đổi kích thước ảnh, chuẩn hóa giá trị pixel, và tăng cường dữ liệu bằng cách áp dụng các biến đổi như xoay hoặc lật để tăng đa dạng.

Tiếp theo, bạn sẽ thiết kế kiến trúc của mô hình CNN. Về bản chất, kiến trúc chỉ là số lượng và loại lớp bạn dùng và cấu hình bạn sử dụng. Kiến trúc nên được chọn cẩn thận để cân bằng giữa phức tạp và đơn giản, cho phép mô hình nắm bắt các đặc trưng cốt yếu trong khi tránh quá khớp (overfitting). Sẽ hữu ích nếu bắt đầu với một kiến trúc đã được thiết lập và điều chỉnh theo nhu cầu. Bạn có thể tìm thấy danh sách kiến trúc hữu ích trong tài liệu bên ngoài.

Hình 12: Ví dụ đơn giản về các kiến trúc CNN.

Hình 12: Ví dụ đơn giản về các kiến trúc CNN.

Quá khớp (Overfitting)

Quá khớp là khi máy tính trở nên rất giỏi gán nhãn các ảnh trong bộ dữ liệu huấn luyện nhưng sau đó không thể nhận diện chính xác các ảnh không nằm trong bộ huấn luyện.

Quá khớp thường xảy ra vì máy tính phát hiện ra một số thiên lệch mà con người vô tình đưa vào bộ huấn luyện vốn không đại diện cho đời thực (ví dụ, hầu hết ảnh mèo có nền xanh). Có nhiều kỹ thuật giúp ngăn mô hình ghi nhớ dữ liệu huấn luyện và thay vào đó khuyến khích học các khuôn mẫu tổng quát hơn.

Huấn luyện mô hình ML có giám sát

Khi kiến trúc mô hình đã được xác định, bạn cần khởi tạo các tham số của mô hình và bắt đầu quá trình huấn luyện.

Trong khi huấn luyện, mô hình điều chỉnh dần các tham số của nó bằng các kỹ thuật tối ưu hóa như hạ dốc (gradient descent) để giảm thiểu chênh lệch giữa dự đoán của nó và nhãn chuẩn mà bạn đã định nghĩa trước đó.

Quy trình này bao gồm tính hàm mất mát, định lượng lỗi dự đoán của mô hình, và cập nhật các tham số tương ứng.

Huấn luyện một mô hình ML có giám sát cho phân tích ảnh là một quá trình lặp. Bạn huấn luyện mô hình bằng bộ dữ liệu có nhãn, đánh giá hiệu năng của nó trên tập xác thực, và điều chỉnh để cải thiện độ chính xác. Vòng lặp lặp lại cho đến khi mô hình đạt kết quả thỏa đáng.

Ứng dụng của Mô hình ML có Giám sát trong Phân tích Ảnh

Khi mô hình ML có giám sát đã được huấn luyện trên dữ liệu ảnh có nhãn, nó có thể được áp dụng cho nhiều tác vụ trong phân tích ảnh. Dưới đây là một số ứng dụng phổ biến làm nổi bật hiệu quả của các mô hình ML có giám sát trong xử lý ảnh.

Phân loại ảnh

Phân loại ảnh là một tác vụ cơ bản, trong đó mục tiêu là gán một nhãn hoặc lớp cho một ảnh đầu vào.

Chẳng hạn, một mô hình ML có giám sát có thể được huấn luyện để phân loại ảnh động vật vào các nhóm khác nhau, như ‘cá’, ‘thằn lằn’ hoặc ‘bọ cánh cứng’.

Hình 13: Ví dụ về phân loại ảnh. Ảnh này được phân loại là “Bữa tối.”

Hình 13: Ví dụ về phân loại ảnh. Ảnh này được phân loại là “Bữa tối.”

Bằng cách học từ một bộ dữ liệu đa dạng với các ví dụ có nhãn, mô hình có thể khái quát và phân loại ảnh chính xác với độ chính xác cao. Kỹ thuật này có thể dùng cho các nhiệm vụ như xác định bệnh trong ảnh y khoa, nhận diện đối tượng trong ảnh vệ tinh, và thậm chí phân loại cảm xúc từ biểu cảm khuôn mặt. Xem webinar của DataCamp này về chủ đề để biết thêm chi tiết.

Phát hiện đối tượng

Phát hiện đối tượng là một ứng dụng quan trọng khác của mô hình ML có giám sát trong phân tích ảnh. Khác với phân loại ảnh, phát hiện đối tượng không chỉ nhận diện các đối tượng có trong ảnh mà còn định vị chúng bằng cách vẽ hộp bao quanh.

Quy trình này cho phép mô hình nhận diện nhiều đối tượng quan tâm trong một ảnh.

Hình 14: Ví dụ về phát hiện đối tượng. Nhiều đối tượng trong ảnh này đã được nhận diện.

Hình 14: Ví dụ về phát hiện đối tượng. Nhiều đối tượng trong ảnh này đã được nhận diện.

Ứng dụng của phát hiện đối tượng bao gồm lái xe tự hành, nơi các mô hình có thể phát hiện và theo dõi người đi bộ, phương tiện và biển báo giao thông, cũng như các hệ thống giám sát để nhận diện và theo dõi cá nhân hoặc đối tượng quan tâm. Facebook và Instagram cũng dùng phương pháp này khi họ tìm khuôn mặt bạn trong ảnh.

Thách thức của mô hình ML có giám sát

Mặc dù năng lực của các mô hình ML có giám sát trong phân tích ảnh rất ấn tượng, vẫn có những hạn chế và thách thức cần lưu ý.

Một thách thức lớn là cần lượng lớn dữ liệu huấn luyện đã gán nhãn. Quá trình chú giải và gán nhãn ảnh có thể tốn thời gian và tài nguyên.

Các mô hình ML có giám sát cũng nhạy với các thiên lệch có trong dữ liệu huấn luyện, có thể dẫn tới dự đoán thiên lệch hoặc kết quả không công bằng. Việc thích nghi mô hình với miền mới hoặc các loại ảnh mới có thể cần huấn luyện bổ sung hoặc tinh chỉnh.

Ngoài ra, việc diễn giải các biểu diễn đã học và quá trình ra quyết định của các mô hình phức tạp như CNN có thể là thách thức, khiến việc hiểu tại sao mô hình đưa ra một dự đoán cụ thể trở nên khó khăn.

Bất chấp những thách thức này, các mô hình ML có giám sát tiếp tục mở rộng ranh giới của phân tích ảnh, cho phép đạt được những tiến bộ đáng kể trong các lĩnh vực như y tế, nông nghiệp và an ninh.

Khi nghiên cứu và phát triển trong lĩnh vực này tiến triển, giải quyết các thách thức và tinh chỉnh mô hình sẽ mở đường cho các giải pháp xử lý ảnh ngày càng chính xác và đáng tin cậy.

Machine Learning Không Giám sát cho Phân tích Ảnh

Sử dụng Học Không Giám sát

Một lựa chọn thay thế cho học có giám sát là machine learning không giám sát. Khác với học có giám sát, học không giám sát không dựa vào dữ liệu có nhãn mà nhằm khám phá các khuôn mẫu, cấu trúc hoặc mối quan hệ ẩn trong chính dữ liệu.

Mục đích của học không giám sát trong phân tích ảnh là khám phá các cấu trúc và hiểu biết có ý nghĩa từ dữ liệu ảnh không có nhãn. Bằng cách sử dụng các kỹ thuật học không giám sát, bạn có thể trích xuất thông tin giá trị và hiểu sâu hơn về các đặc điểm cơ bản của ảnh.

Học không giám sát có thể giúp xác định các cụm ảnh tương tự nhau, khám phá các khuôn mẫu hoặc kết cấu đặc trưng cho một số lớp ảnh nhất định, và phát hiện các bất thường hoặc ngoại lệ trong dữ liệu.

Học không giám sát khác gì

Nếu học có giám sát giống như bạn nói cho một em bé biết đâu là bò và đâu là cá, thì học không giám sát giống như đưa cho em bé một đống con vật và để em tự sắp xếp theo cách của mình. Em có thể sắp theo kích thước, số chân, kết cấu hay màu sắc.

Kết quả cuối cùng có thể trông giống những gì bạn sẽ có nếu tách theo loài, hoặc có thể rất khác! Nhưng việc xem xét các đặc điểm của các nhóm kết quả vẫn có thể cho bạn thông tin hữu ích.

Hình 15: Ảnh do DALL-E tạo: em bé sắp xếp đồ chơi con vật trong môi trường học không giám sát.

Hình 15: Ảnh do DALL-E tạo: em bé sắp xếp đồ chơi con vật trong môi trường học không giám sát.

Phân tích Ảnh với Mô hình ML Không Giám sát

Các mô hình machine learning không giám sát mở ra những khả năng thú vị cho phân tích ảnh bằng cách cho phép sắp xếp ảnh vào các nhóm hay danh mục mà không cần dữ liệu có nhãn.

Hãy tưởng tượng bạn có một bộ sưu tập ảnh khổng lồ và muốn tổ chức chúng thành các nhóm có ý nghĩa. Các mô hình ML không giám sát có thể phân tích đặc trưng thị giác của ảnh và nhóm chúng dựa trên các đặc điểm chung, như màu sắc hoặc hình dạng. Điều này mang lại hiểu biết giá trị và đơn giản hóa các tác vụ phân tích ảnh.

Thuật toán phân cụm

Thuật toán phân cụm nhóm các ảnh tương tự lại với nhau dựa trên các đặc điểm chung. Một thuật toán phân cụm được dùng rộng rãi là k-means clustering, thuật toán này chia dữ liệu thành một số cụm định trước bằng cách lặp đi lặp lại tối thiểu hóa khoảng cách toán học giữa mỗi ảnh trong một tập.

Phân cụm phân cấp (hierarchical) là một cách tiếp cận khác tạo ra cấu trúc phân cấp của các tập ảnh bằng cách hợp nhất hoặc tách các tập dựa trên độ tương đồng của chúng. Những thuật toán phân cụm này cho phép chúng ta khám phá các nhóm tự nhiên trong các bộ dữ liệu ảnh không nhãn, cung cấp hiểu biết về độ tương đồng và đa dạng của ảnh.

Phân đoạn ảnh

Học không giám sát đặc biệt có giá trị cho phân đoạn ảnh, tức chia một ảnh thành các vùng hoặc đối tượng có ý nghĩa.

Bằng cách áp dụng kỹ thuật phân cụm hoặc các phương pháp học không giám sát khác, bạn có thể tách một ảnh thành các vùng riêng biệt dựa trên màu sắc, kết cấu hoặc đặc điểm khác.

Kỹ thuật này hữu ích trong ảnh y khoa để tìm khối u, trong ảnh vệ tinh để phân loại lớp phủ đất, hoặc trong đồ họa máy tính để tách phần tiền cảnh và hậu cảnh.

Nhận dạng mẫu

Nhận dạng mẫu là một lĩnh vực khác nơi học không giám sát tỏ ra vượt trội.

Các thuật toán học không giám sát có thể học các biểu diễn hoặc đặc trưng nắm bắt các khuôn mẫu hoặc cấu trúc tiềm ẩn trong dữ liệu. Bằng cách trích xuất các đặc trưng đã học này, ảnh có thể được phân loại hoặc nhóm dựa trên các khuôn mẫu chung hoặc sự tương đồng trực quan. Điều này làm cho các nhiệm vụ như truy hồi ảnh hoặc tổng hợp ảnh trở nên khả thi.

Phát hiện bất thường

Học không giám sát cũng được dùng để phát hiện bất thường. Bằng cách học các khuôn mẫu hoặc đặc điểm bình thường của một bộ dữ liệu, các thuật toán không giám sát có thể xác định các ảnh hoặc vùng khác biệt so với phần còn lại. Điều này đặc biệt hữu ích trong các lĩnh vực như giám sát, nơi việc phát hiện hoạt động bất thường hoặc đáng ngờ có thể giúp theo dõi an ninh.

Thách thức của mô hình ML không giám sát

Học không giám sát đối mặt với những thách thức riêng. Một thách thức lớn là hiểu kết quả vì không có sự thật nền (ground truth) hay dữ liệu có nhãn để so sánh.

Quay lại ví dụ sắp xếp động vật, bạn có thể kết thúc với một nhóm gồm ngựa, bọ cánh cứng và bạch tuộc đều có màu nâu, trong khi nhóm khác gồm ngựa trắng, thỏ và bông hoa. Vì bạn không chỉ định cách sắp xếp, bạn có thể nhận được các nhóm không quá có ý nghĩa.

Sẽ khó để đánh giá chất lượng và độ chính xác của các cụm hoặc khuôn mẫu được mô hình ML không giám sát phát hiện.

Lợi ích của mô hình ML không giám sát

Các mô hình ML không giám sát mang lại nhiều lợi ích trong xử lý ảnh. Quan trọng nhất, chúng loại bỏ nhu cầu gán nhãn thủ công trên diện rộng, giúp làm việc với các bộ dữ liệu ảnh quy mô lớn dễ dàng và kinh tế hơn.

Hãy tưởng tượng thủ công sắp xếp và gán nhãn từng ảnh trên Instagram. Các mô hình machine learning không giám sát loại bỏ nhu cầu cho một nỗ lực dài và tốn công như vậy.

Các mô hình ML không giám sát cũng có thể tiết lộ các khuôn mẫu và cấu trúc ẩn trong dữ liệu, cho phép con người khám phá những hiểu biết mới và phát hiện các mối quan hệ thị giác có thể không hiển hiện ngay.

Bản chất khám phá của học không giám sát mở ra những hướng đi mới cho phân tích ảnh và có thể dẫn đến đột phá trong nhiều lĩnh vực, bao gồm thám hiểm không gian, robot và y học.

 

ML có giám sát

ML không giám sát

Nhiệm vụ

  • Phân loại ảnh
  • Phát hiện đối tượng
  • Nhận dạng mẫu
  • Phát hiện bất thường

Ưu điểm

  • Kết quả dự đoán được, có ý nghĩa hơn
  • Có thể dùng với bộ dữ liệu nhỏ hơn
  • Ít tốn công sức hơn
  • Có thể hé lộ các khuôn mẫu ẩn và hiểu biết mới

Nhược điểm

  • Tốn công sức hơn
  • Nhạy với thiên lệch trong dữ liệu huấn luyện
  • Các nhóm kết quả có thể kém ý nghĩa
  • Kết quả có thể ngoài dự đoán

Hình 16: So sánh machine learning có giám sát và không giám sát trong xử lý ảnh.

Tạo ảnh mới với AI sinh tạo

Khi một mô hình đã xác định được các đặc điểm tạo nên các đối tượng khác nhau trong ảnh, chúng có thể dùng thông tin đó để tạo ảnh mới.

DALL-E và Midjourney là những ví dụ đáng chú ý về các mô hình ML không giám sát tận dụng sức mạnh của mô hình sinh để tạo ảnh mới. Bằng cách huấn luyện trên các bộ dữ liệu khổng lồ, các mô hình này đã học được các thành phần cần thiết để tạo ra ảnh với những bộ phân loại nhất định.

Vì vậy nếu bạn yêu cầu DALL-E tạo một bức ảnh gấu trúc robot, mô hình sẽ dựa vào định nghĩa nội tại của nó về những gì cấu thành robot và gấu trúc, rồi ghép những mảnh đó lại để tạo ảnh bạn yêu cầu.

Ví dụ, nó có thể xác định rằng robot có kim loại và bánh răng, trong khi gấu trúc có màu đen và trắng. Nó sẽ dùng thông tin này để tạo cho bạn một chú gấu trúc robot bằng kim loại, màu đen trắng, có bánh răng.

Hình 17: Ảnh do DALL-E tạo với gợi ý 'Panda Robot'.

Hình 17: Ảnh do DALL-E tạo với gợi ý 'Panda Robot'.

Kết luận

Hướng dẫn này là phần khám phá ở mức cao về phân tích ảnh nhằm giúp hiểu rõ hơn vai trò của nó trong machine learning. Bạn nên có trực giác tốt hơn về cách máy tính ‘nhìn’ và thao tác ảnh, và có hiểu biết cơ bản về các khái niệm machine learning then chốt như tiền xử lý, trích xuất đặc trưng và thuật toán phân loại.

Xử lý ảnh đóng vai trò rất lớn trong cuộc sống của chúng ta, từ mạng xã hội đến ảnh y khoa, thám hiểm không gian và giám sát. Nếu bạn muốn đi sâu hơn vào chủ đề hấp dẫn này, hãy xem Image Processing with Python, Image Processing with Keras in Python, và Deep Learning for Images with PyTorch trên DataCamp.


Amberle McKee's photo
Author
Amberle McKee
LinkedIn

Tôi là Tiến sĩ với 13 năm kinh nghiệm làm việc với dữ liệu trong môi trường nghiên cứu sinh học. Tôi phát triển phần mềm bằng nhiều ngôn ngữ lập trình, bao gồm Python, MATLAB và R. Tôi đam mê chia sẻ tình yêu học hỏi của mình với mọi người.

Chủ đề
Machine Learning
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm