Phân loại hình ảnh trong Thị giác máy tính – VinBigdata Product

Phân loại là một trong ba cách phổ biến nhất để xử lý dữ liệu hình ảnh. Nếu tác vụ phát hiện đối tượng (Object detection) nhằm mục tiêu xác định vị trí vật thể bằng cách xây dựng hộp tọa độ (bounding box); phân đoạn ảnh (Image segmentation) cung cấp thông tin chi tiết hơn về kích thước và hình dạng vật thể thì phân loại ảnh (Image classification) giúp tìm ra câu trả lời: Vậy hình ảnh thuộc loại nào?

Sự khác biệt giữa phát hiện đối tượng, phân đoạn ảnh và phân loại ảnh
Sự khác biệt giữa phát hiện đối tượng, phân đoạn ảnh và phân loại ảnh (Nguồn ảnh: Levity)

Phân loại hình ảnh là gì?

Phân loại hình ảnh (Image classification) hay Nhận dạng hình ảnh (Image recognition) là một trong những tác vụ của thị giác máy tính, ở đó thuật toán xem xét và dán nhãn cho hình ảnh từ một tập danh mục được xác định và đào tạo trước.

Ví dụ, với một tập các hình ảnh, mỗi hình ảnh mô tả một con mèo hoặc một con chó, thuật toán sẽ “quan sát” toàn bộ dữ liệu và dựa trên hình dạng, màu sắc để hình thành giả thuyết liên quan đến nội dung của ảnh. Kết quả thu được là từ tập dữ liệu ban đầu, các hình ảnh chó/mèo đã được phân loại một cách tự động.

Thực tế, thị giác góp phần tạo nên 80-85% nhận thức của con người về thế giới. Hàng ngày, mỗi người phải thực hiện phân loại trên bất kỳ dữ liệu hình ảnh nào mà chúng ta bắt gặp.

Do đó, mô phỏng nhiệm vụ phân loại với sự trợ giúp của mạng nơ-ron là một trong những ứng dụng đầu tiên của thị giác máy tính mà các nhà nghiên cứu nghĩ đến.

Các kỹ thuật phân loại ảnh

Có nhiều thuật toán khác nhau được ứng dụng trong việc phân loại hình ảnh. Các thuật toán này được chia thành hai nhóm chính là Học có giám sát (supervised learning) và Học không giám sát (unsupervised learning).

Phân loại có giám sát

Trong học máy có giám sát, thuật toán được huấn luyện trên một tập hình ảnh đã được dán nhãn. Từ dữ liệu mẫu này, thuật toán có thể trích xuất thông tin, phục vụ phân loại ngay cả những hình ảnh chưa từng nhìn thấy trước đó.

Xuyên suốt quá trình đào tạo, đặc điểm của ma trận hình ảnh sẽ được trích xuất dưới dạng dữ liệu quan trọng để đưa vào xử lý. Các đặc điểm này đại diện cho hình ảnh trong không gian chiều thấp (lower-dimensional feature space) và là cơ sở để thuật toán tiến hành phân loại.

Xem thêm  SEO Toolbar by Ahrefs

Trong quá trình đánh giá, các đặc điểm của ảnh thử nghiệm được thu thập và tái phân loại với sự hỗ trợ của mạng thần kinh nhân tạo. Hệ thống lúc này đã có thể nhận biết các đặc điểm điển hình của mọi lớp hình ảnh mà nó được đào tạo.

Các phương pháp phân loại phổ biến dựa trên học có giám sát bao gồm:

  • Support Vector Machines
  • Decision Trees
  • K Nearest Neighbors

Các mạng nơ-ron thường được sử dụng để phân loại hình ảnh có giám sát bao gồm AlexNet, ResNet, DenseNet và Inception.

Đối với phân loại có giám sát, việc dán nhãn dữ liệu đóng vai trò quan trọng. Độ chính xác của dữ liệu được dán nhãn quyết định phần lớn hiệu suất của mô hình học máy. Các thuật toán phân loại có giám sát có thể được chia thành hai mục nhỏ hơn dựa trên nhãn dữ liệu.

Phân loại nhãn đơn

Phân loại nhãn đơn (Single-label classification) là tác vụ phổ biến nhất trong phân loại ảnh có giám sát. Theo đó, mỗi hình ảnh được đại diện bởi một nhãn/chú thích (a single label or annotation). Mô hình xuất ra một giá trị hoặc dự đoán duy nhất cho mỗi hình ảnh mà nó xử lý.

Đầu ra từ mô hình là mã hóa One-hot (từng giá trị được biến đổi thành các đặc trưng nhị phân chỉ chứa giá trị 1 hoặc 0). Mã hóa One-hot có độ dài bằng số lớp và giá trị biểu thị xác suất hình ảnh thuộc về lớp này.

Hàm Softmax được sử dụng để đảm bảo các xác suất tổng bằng một và xác suất tối đa được chọn làm đầu ra của mô hình. Mặc dù Softmax không có giá trị về mặt dự đoán, nhưng nó giúp ràng buộc đầu ra giữa 1 và 0, nhờ vậy, có thể đánh giá độ tin cậy của mô hình từ điểm Softmax.

Một số ví dụ về bộ dữ liệu phân loại nhãn đơn bao gồm MNIST, SVHN, ImageNet, v.v.

Xem thêm  [Lỗi 503 Service Unavailable] - Nguyên nhân và cách sửa lỗi

Phân loại nhãn đơn có thể được xếp vào phân loại đa lớp (Multiclass classification) hoặc phân loại nhị phân (binary classification).

Phân loại đa nhãn

Phân loại đa nhãn là một tác vụ phân loại trong đó mỗi hình ảnh có thể chứa nhiều hơn một nhãn hoặc một số hình ảnh chứa đồng thời tất cả các nhãn.

Phân loại đa nhãn xuất hiện phổ biến trong lĩnh vực xử lý hình ảnh y tế, khi một bệnh nhân có thể được chẩn đoán mắc nhiều bệnh dựa trên dữ liệu chụp X-quang.

Phân loại không giám sát

Trong học máy không giám sát, thuật toán chỉ sử dụng dữ liệu thô để đào tạo.Các nhãn phân loại thường không xuất hiện trong kiểu học này và mô hình học bằng cách nhận dạng các mẫu trong tập dữ liệu huấn luyện.

Giống như phân loại có giám sát, các phương pháp dựa trên không giám sát cũng liên quan đến bước trích xuất đặc điểm với các thông tin chi tiết nhất về hình ảnh. Các đặc điểm này sau đó được xử lý bằng các phương pháp phân cụm tham số (Gaussian Mixture Models) và phi tham số (K-means) hoặc các thuật toán học không giám sát khác.

Các thuật toán và kỹ thuật phân loại của thị giác máy tính không chỉ giới hạn trong dữ liệu hình ảnh 2D đơn giản mà còn mở rộng ra dưới dạng Video và ảnh 3D.

Phân loại video

Khác với Phân loại hình ảnh, vốn chỉ sử dụng các thuật toán Xử lý ảnh và Mạng thần kinh tích chập (CNN), các tác vụ Phân loại video sử dụng cả dữ liệu hình ảnh và dữ liệu tạm thời (liên quan đến thời gian).

Để có thể áp dụng trực tiếp thuật toán phân loại hình ảnh tiêu chuẩn, mô hình phân loại video sẽ khai thác mối quan hệ giữa các khung hình khác nhau. Theo đó, các mạng thần kinh phù hợp với dữ liệu chuỗi thời gian như LSTM (Bộ nhớ ngắn hạn dài) và RNN (Mạng thần kinh hồi quy) sẽ kết hợp với CNN để phân tích mối quan hệ thời gian giữa các khung.

Phân loại 3D

Khác biệt cơ bản của phân loại 3D khi so với phân loại 2D nằm ở cấu trúc của CNN và bản chất chuyển động của hạt nhân trượt (sliding kernel).

Xem thêm  Russian-speaking cybercrime evolution: What changed from 2016 to 2021 | Securelist

Nhân trong phân loại dữ liệu 3D cũng là 3D và di chuyển dọc theo cả ba trục, khác với chuyển động thẳng hai trục trong CNNs 2D. CNN có khả năng nắm bắt dữ liệu không gian rất tốt, và do đó dễ dàng xử lý khi dữ liệu được đặt cách nhau trên ba trục.

Bộ dữ liệu phân loại 3D dễ dàng được tìm thấy trong lĩnh vực y tế (vi dụ: ảnh cộng hưởng từ não) và dữ liệu cấu trúc của các đại phân tử thu được từ Kính hiển vi điện tử lạnh.

Phân loại hình ảnh hoạt động như thế nào?

Máy tính xử lý một hình ảnh dưới dạng pixel. Theo đó, hình ảnh chỉ là một mảng ma trận, và kích thước của ma trận phụ thuộc vào độ phân giải hình ảnh.

Do đó, xử lý hình ảnh là tiến hành phân tích dữ liệu toán học với sự trợ giúp của các thuật toán. Các thuật toán này chia nhỏ hình ảnh thành một tập hợp các đặc điểm nổi bật, giúp giảm khối lượng công việc của bộ phân loại cuối cùng.

Quá trình trích xuất đặc điểm là bước quan trọng nhất trong việc phân loại hình ảnh. Phân loại, đặc biệt là phân loại có giám sát, phụ thuộc phần lớn vào dữ liệu được cung cấp cho thuật toán. Một bộ dữ liệu phân loại tốt phải đảm bảo các yêu cầu về sự cân bằng của dữ liệu, chất lượng của ảnh và chú giải kèm theo.

Ứng dụng trí tuệ nhân tạo, dựa trên nền tảng công nghệ Xử lý ảnh, Thị giác máy tính, Máy học, Học sâu, VinBigData phát triển các mô hình, thuật toán có khả năng thực hiện các nhiệm vụ nhận thức trực quan quan trọng như phân loại, phát hiện, nhận dạng, theo dấu đối tượng, nhận dạng hành động. Trên cơ sở đó, hệ sinh thái VinBase ra đời, cung cấp các sản phẩm Camera thông minh (VinCamAI) và nhận dạng ký tự quang học (VinOCR) giúp nhận diện khuôn mặt, phân tích thông tin khách hàng, nhận diện văn bản, trích xuất thông tin từ văn bản, phân loại phương tiện….