Phân vùng ảnh: Các thuật toán và cơ sở dữ liệu mã nguồn mở hữu ích

Phân vùng ảnh là gì?

Phân vùng ảnh (Image Segmentation) là một phần quan trọng trong lĩnh vực thị giác máy tính (Computer Vision). Nó là quá trình chia nhỏ một bức ảnh thành nhiều phần, với mục tiêu đơn giản hóa hoặc thay đổi biểu diễn của bức ảnh để dễ dàng phân tích. Phân vùng ảnh cũng có một mục tiêu chung với phát hiện vật thể (Object Detection) là phát hiện ra vùng ảnh chứa vật thể và gán nhãn phù hợp cho chúng. Tuy nhiên tiêu chuẩn về độ chính xác của Image Segmentation ở mức cao hơn so với Object Detection khi nó yêu cầu nhãn dự báo đúng tới từng pixel.

Trong quá trình này, mỗi pixel trong hình ảnh được liên kết với một loại đối tượng. Có hai kiểu phân đoạn hình ảnh chính – phân đoạn ngữ nghĩa (semantic segmentation) và phân đoạn cá thể (instance segmentation). Từ đó, Phân vùng ảnh có thể chỉ ra thông tin chi tiết của bức ảnh, bao gồm: Vị trí của vật thể trong ảnh, hình dạng của vật thể và từng pixel nào thuộc về vật thể nào.

Hai kiểu phân đoạn hình ảnh chính là Phân đoạn ngữ nghĩa và phân đoạn cá thể – Anurag Arnab, Shuai Zheng et. al 2018 (nguồn: IEEE)

Kiến trúc hệ thống phân vùng ảnh

Kiến trúc cơ bản trong phân đoạn hình ảnh bao gồm một bộ mã hóa (encoder) và một bộ giải mã (decoder).

 Kiến trúc bộ mã hóa-giải mã phù hợp sâu để phân đoạn hình ảnh (nguồn: Cornell University)

Bộ mã hóa trích xuất các tính năng từ hình ảnh thông qua các bộ lọc. Bộ giải mã chịu trách nhiệm tạo ra đầu ra cuối cùng thường là một mặt nạ phân đoạn chứa đường viền của đối tượng.

Các ứng dụng của phân vùng ảnh

Phân vùng ảnh có rất nhiều các ứng dụng trong y học, xe tự hành, xử lý ảnh vệ tinh,…

  • Y học: Trong y học, thuật toán Image Segmentation có thể hỗ trợ bác sĩ chẩn đoán khối u từ ảnh x-quang. Ưu điểm của Image Segmentation đó là không chỉ cho chúng ta biết vị trí của các khối u trong ảnh mà còn cho chúng ta biết được hình dạng của chúng.
  • Xe tự hành: Xe tự hành đòi hỏi phải liên tục nhận thức, xử lý và lên kế hoạch trong một môi trường luôn có sự thay đổi. Vì yêu cầu an toàn tuyệt đối và độ chính xác cao trong mọi quyết định nên một hệ thống xe tự hành cần phải xác định chính xác các vật thể xuất hiện khi tham gia giao thông như người, đèn tín hiệu, biển báo, vạch kẻ đường, xe cộ.
  • Xử lý ảnh vệ tinh: Các vệ tinh quay quanh trái đất sẽ liên tục thu thập hình ảnh bề mặt trái đất ở những vùng khác nhau. Từ các bức ảnh chụp vệ tinh, mô hình Image Segmentation sẽ phân đoạn hình ảnh thành tuyến đường, khu phố, biển cả, cây cối,….
  • Ứng dụng trong nông nghiệp: Chúng ta có thể tiết kiệm được một lượng lớn thuốc trừ sâu trong nông nghiệp nhờ sử dụng hệ thống phun thuốc trừ sâu tự động có khả năng phân biệt được diện tích cỏ và cây trồng dựa trên thuật toán Image Segmentation. Khi diện tích cỏ lấn át so với cây trồng thì hệ thống sẽ tự động kích hoạt.
  • Cảnh báo cháy rừng: Những hệ thống kiểm soát cháy rừng có thể segment được chính xác vị trí phát sinh các đám cháy từ ảnh chụp vệ tinh. Từ đó đưa ra cảnh báo về quy mô và mức độ lây lan của các đám cháy trên diện rộng.

Một số thuật toán phân vùng ảnh phổ biến

U-Net

U-Net là một mạng nơ-ron tích chập ban đầu được phát triển để phân đoạn các hình ảnh y sinh. Kiến trúc của nó trông giống như chữ U và do đó có tên là U-Net. Kiến trúc của nó được tạo thành từ hai phần, phần bên trái – trích xuất đặc trưng (encoder) và phần bên phải – giải mã đặc trưng (decoder). Mục đích của encoder là cô đọng thông tin ngữ cảnh trong khi vai trò của decoder là giải mã thông tin, xác định chính xác các đối tượng.

Hình ảnh mô tả kiến trúc U-net – Olaf Ronneberger et. al 2015 (nguồn: Cornell University)

FastFCN – Fast Fully Convolutional Network

Trong kiến trúc này, một mô-đun Joint Pyramid Upsampling – JPU được sử dụng để thay thế các khối chập giãn (dilated convolution) vì chúng tiêu tốn rất nhiều bộ nhớ và thời gian. Nó sử dụng một mạng được kết nối đầy đủ tại lõi và sử dụng JPU cho việc giải mã. JPU nâng tần số lấy mẫu bản đồ tính năng có độ phân giải thấp thành bản đồ tính năng có độ phân giải cao.

Kiến trúc của FastFCN – Huikai Wu et.al 2019 (nguồn: Cornell University)

Gated-SCNN

Kiến trúc này bao gồm kiến trúc CNN hai luồng. Trong mô hình này, một nhánh riêng biệt được sử dụng để xử lý thông tin hình dạng ảnh. Luồng hình dạng được sử dụng để xử lý thông tin về ranh giới.

Kiến trúc của Gated – SCNN – Towaki Takikawa et. al 2019 (nguồn: Cornell University)

DeepLab

Trong kiến trúc này, tích chập (convolution) với bộ lọc nâng tần số lấy mẫu được sử dụng cho các tác vụ liên quan đến dự đoán sự dày đặc. Việc phân đoạn các đối tượng ở nhiều tỷ lệ được thực hiện thông qua tính năng gộp kim tự tháp không gian. Cuối cùng, các DCNN được sử dụng để cải thiện việc bản địa hóa các ranh giới đối tượng. Tích lũy hỗn hợp (Atrous convolution) đạt được bằng cách lấy mẫu bộ lọc thông qua việc chèn các số không hoặc lấy mẫu thưa thớt các bản đồ đối tượng địa lý đầu vào.

Kiến trúc của DeepLab – Liang-Chieh Chen et. al 2016 (nguồn: Cornell University)

Mask R-CNN

Trong kiến trúc này, các đối tượng được phân loại và xác định vị trí bằng cách sử dụng khung ô và phân đoạn ngữ nghĩa để phân loại mỗi pixel thành một tập hợp các danh mục. Mỗi vùng quan tâm (region of interest) đều có một mặt nạ phân đoạn. Một nhãn lớp và một khung ô được tạo ra như một đầu ra cuối cùng. Kiến trúc là một phần mở rộng của Faster R-CNN. Faster R-CNN được tạo thành từ một mạng phức hợp sâu đề xuất các vùng quan tâm.

Kiến trúc của Mask R-CNN – Kaiming He et. al 2017 (nguồn: Cornell University)

Bộ dữ liệu mã nguồn mở hỗ trợ xây dựng thuật toán phân vùng ảnh 

1. Coco Dataset

COCO là tập dữ liệu phát hiện, phân đoạn và tạo phụ đề đối tượng quy mô lớn. Tập dữ liệu chứa 91 lớp, bao gồm 250.000 người với những điểm chính. Kích thước tải xuống của nó là 37,57 GiB. Nó chứa 80 loại đối tượng. Trong tập dữ liệu đã kèm theo Giấy phép Apache 2.0.

2. PASCAL VOC

PASCAL có 9963 hình ảnh với 20 lớp khác nhau. Bộ dữ liệu có thể được tải xuống từ trang web chính thức của Pascal VOC.

3. Cityscapes

Bộ dữ liệu này chứa các hình ảnh về khung cảnh của các thành phố. Nó có thể được sử dụng để đánh giá hiệu suất của các thuật toán nhận diện hình ảnh trong các kịch bản đô thị. Bộ dữ liệu có thể được tải xuống từ đây.

4. CamVid

Đây là tập dữ liệu phân đoạn và nhận dạng dựa trên chuyển động. Nó chứa 32 lớp ngữ nghĩa.

Công cụ hỗ trợ phân vùng ảnh

Với từng bộ dữ liệu hình ảnh, chúng ta sẽ cần các công cụ tương ứng để xử lý nó. Dưới đây là một số công cụ VinBigData gợi ý cho bạn:

  • Thư viện FastAI – với một hình ảnh, thư viện này có thể tạo một mặt nạ của các đối tượng trong hình ảnh.
  • Công cụ phân đoạn hình ảnh Sefexa – Sefexa là một công cụ miễn phí có thể được sử dụng để phân đoạn hình ảnh bán tự động, phân tích hình ảnh và tạo ra sự thật cơ bản
  • Deepmask – Deepmask của Facebook Research là một kênh triển khai Torch của DeepMask và SharpMask
  • MultiPath – một kênh triển khai Torch của mạng phát hiện đối tượng từ “Mạng đa đường để phát hiện đối tượng”.
  • OpenCV – một thư viện thị giác máy tính mã nguồn mở với hơn 2500 thuật toán được tối ưu hóa.
  • MIScnn – một thư viện mã nguồn mở phân đoạn hình ảnh y tế. Nó cho phép thiết lập các đường ống với mạng nơ-ron phức hợp hiện đại và các mô hình học sâu trong một vài dòng mã.
  • Fritz – cung cấp một số công cụ thị giác máy tính bao gồm các công cụ phân đoạn hình ảnh cho thiết bị di động.

Từ các thuật toán của phân vùng ảnh, VinBigData phát triển sản phẩm xử lý hình ảnh là Vision AI nhằm giúp doanh nghiệp tối ưu hóa hiệu quả sản xuất, kinh doanh. Dựa trên công nghệ trí tuệ nhân tạo (AI), Vision AI sở hữu 4 nhóm tính năng thông minh: Thống kê lưu lượng người, nhận diện khuôn mặt, nhận diện vật thể, phân tích đặc điểm hành vi. Kết quả phân tích dựa trên dữ liệu do Vision AI thu thập cho độ chính xác tới 99%. Sản phẩm có thể tích hợp trong các hệ thống camera thông minh hay phân tích, xác thực khách hàng tại các trung tâm thương mại, khu du lịch, nghỉ dưỡng, nhà thông minh,…

Tìm hiểu thêm về sản phẩm Vision AI: Tại đây

Lược dịch từ Neptune

Bài viết liên quan

    Cảm ơn bạn đã quan tâm và ủng hộ.

    File hiện tại không thể tải xuống
    Vui lòng liên hệ hỗ trợ.

    VinOCR eKYC

    Chọn ảnh từ máy của bạn

    Chọn ảnh demo dưới đây hoặc tải ảnh lên từ máy của bạn

    Tải lên ảnh CMND/CCCD/Hộ chiếu,...

    your image
    Chọn ảnh khác
    Tiến hành xử lý

    Thông tin đã được xử lý

    Mức độ tin cậy: 0%

    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -

    Xác thực thông tin thẻ CMND/CCCD

    Vui lòng sử dụng giấy tờ thật. Hãy đảm bảo ảnh chụp không bị mờ hoặc bóng, thông tin hiển thị rõ ràng, dễ đọc.

    your image
    Chọn ảnh khác

    Ảnh mặt trước CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh mặt sau CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh chân dung

    This site is registered on wpml.org as a development site.