Hướng dẫn về kiến trúc U-Net và các ứng dụng của nó
Tìm hiểu về kiến trúc U-Net, cách nó hỗ trợ phân đoạn hình ảnh, các ứng dụng của nó và tại sao nó lại quan trọng trong quá trình phát triển của thị giác máy tính.

Computer vision là một nhánh của trí tuệ nhân tạo (AI) tập trung vào việc phân tích dữ liệu hình ảnh. Nó đã mở đường cho nhiều hệ thống tiên tiến, chẳng hạn như tự động hóa quy trình kiểm tra sản phẩm trong nhà máy và hỗ trợ các phương tiện tự hành điều hướng trên đường.
Một trong những tác vụ computer vision phổ biến nhất là object detection. Tác vụ này cho phép các model định vị và nhận diện đối tượng trong ảnh bằng cách sử dụng các bounding box. Mặc dù bounding box hữu ích cho nhiều ứng dụng khác nhau, nhưng chúng chỉ cung cấp ước tính thô về vị trí của đối tượng.
Tuy nhiên, trong các lĩnh vực như chăm sóc sức khỏe, nơi độ chính xác là rất quan trọng, các trường hợp sử dụng vision AI không chỉ dừng lại ở việc nhận diện đối tượng. Thông thường, chúng cũng đòi hỏi thông tin liên quan đến hình dạng và vị trí chính xác của các đối tượng.
Đó chính là mục đích của tác vụ computer vision, segmentation. Thay vì sử dụng bounding box, các segmentation model phát hiện đối tượng ở cấp độ pixel. Qua nhiều năm, các nhà nghiên cứu đã phát triển các computer vision models chuyên dụng cho segmentation.
Một model như vậy là U-Net. Mặc dù các model mới hơn, tiên tiến hơn đã vượt qua hiệu suất của nó, U-Net vẫn giữ một vị trí quan trọng trong history of computer vision. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về U-Net architecture, cách nó hoạt động, những nơi nó đã được sử dụng và cách nó so sánh với các segmentation model hiện đại hơn hiện nay.

Hình 1. Ví dụ về segmentation sử dụng deep learning model U-Net. (Source)
Link to this sectionLịch sử của image segmentation#
Trước khi đi sâu vào U-Net là gì, trước tiên hãy tìm hiểu rõ hơn về cách các model image segmentation đã phát triển như thế nào.
Ban đầu, computer vision dựa vào các kỹ thuật truyền thống như phát hiện cạnh (edge detection), ngưỡng hóa (thresholding) hoặc phát triển vùng (region growing) để tách các đối tượng trong ảnh. Các kỹ thuật này được sử dụng để phát hiện ranh giới đối tượng bằng các cạnh, tách các vùng theo cường độ pixel và nhóm các pixel tương tự lại với nhau. Chúng hoạt động tốt cho các trường hợp đơn giản nhưng thường thất bại khi ảnh bị nhiễu, hình dạng chồng chéo hoặc ranh giới không rõ ràng.
Sau sự trỗi dậy của deep learning vào năm 2012, các nhà nghiên cứu đã giới thiệu khái niệm fully convolutional networks (FCNs) vào năm 2014 cho các tác vụ như semantic segmentation. Các model này thay thế một số phần của convolutional network để cho phép máy tính nhìn vào toàn bộ hình ảnh cùng một lúc, thay vì chia nhỏ nó thành các phần nhỏ hơn. Điều này giúp model có thể tạo ra các bản đồ chi tiết hiển thị những gì có trong ảnh một cách rõ ràng hơn.

Hình 2. Sự phát triển của các thuật toán segmentation dựa trên deep learning. (Source)
Dựa trên FCNs, U-Net được các nhà nghiên cứu tại Đại học Freiburg giới thiệu vào năm 2015. Nó ban đầu được thiết kế cho biomedical image segmentation. Cụ thể, U-Net được thiết kế để hoạt động tốt trong các tình huống mà dữ liệu được chú thích (annotated data) bị hạn chế.
Trong khi đó, các phiên bản sau này như UNet++ và TransUNet đã bổ sung các nâng cấp như attention layer và khả năng trích xuất đặc trưng (feature extraction) tốt hơn. Các attention layer giúp model tập trung vào các vùng quan trọng, trong khi khả năng trích xuất đặc trưng nâng cao giúp thu thập thông tin chi tiết hơn.
Link to this sectionU-Net là gì và các đặc trưng luân chuyển qua model như thế nào?#
U-Net là một deep learning model được xây dựng chuyên biệt cho image segmentation. Nó nhận đầu vào là một hình ảnh và tạo ra một segmentation mask phân loại từng pixel theo đối tượng hoặc vùng mà nó thuộc về.
Model này lấy tên từ kiến trúc hình chữ U của nó. Nó bao gồm hai phần chính: một encoder nén hình ảnh và học các đặc trưng của nó, và một decoder mở rộng nó trở lại kích thước ban đầu. Thiết kế này tạo ra một hình chữ U đối xứng, giúp model hiểu cả cấu trúc tổng thể của hình ảnh và các chi tiết nhỏ hơn.
Một đặc trưng quan trọng của U-Net là việc sử dụng skip connection, cho phép thông tin từ encoder được truyền trực tiếp đến decoder. Điều này có nghĩa là model có thể bảo toàn các chi tiết quan trọng vốn có thể bị mất đi khi hình ảnh được nén.
Link to this sectionTổng quan về kiến trúc của U-Net#
Dưới đây là sơ lược về cách kiến trúc của U-Net hoạt động:
- Input image: U-Net bắt đầu với một hình ảnh 2D, chẳng hạn như ảnh quét y tế hoặc satellite photo. Mục tiêu là gán nhãn lớp cho mỗi pixel trong ảnh.
- Downsampling: Hình ảnh đi qua các convolutional layer để học các đặc trưng thị giác quan trọng. Khi hình ảnh di chuyển qua các layer khác nhau, độ phân giải của nó giảm dần và model xác định các mẫu hình rộng hơn.
- Bottleneck layer: Ở trung tâm của mạng, các bản đồ đặc trưng (feature maps) đạt độ phân giải không gian nhỏ nhất trong khi thu thập các đặc trưng ngữ nghĩa mức cao. Nói một cách đơn giản, đại diện nén này của các feature maps chính là bối cảnh tổng thể của đầu vào.
- Upsampling: Sau đó, mạng tái tạo hình ảnh bằng cách tăng dần độ phân giải. Transposed convolution giúp mở rộng các feature maps trở lại kích thước ban đầu.
- Skip connections: Các feature maps từ đường dẫn downsampling được nối (concatenate) với các feature maps trong đường dẫn upsampling. Điều này giúp bảo toàn các chi tiết không gian tinh vi trong khi vẫn tích hợp thông tin ngữ cảnh mức cao.
- Đầu ra là một segmentation map: Đầu ra cuối cùng là một segmentation mask ở cấp độ pixel phù hợp với kích thước đầu vào. Mỗi pixel được phân loại thành một danh mục như đối tượng, nền hoặc vùng quan tâm.

Hình 3. Sơ đồ kiến trúc U-Net. (Source)
Link to this sectionTìm hiểu sự khác biệt giữa ViT và U-Net#
Khi khám phá U-Net, bạn có thể tự hỏi nó khác biệt như thế nào so với các deep learning model khác, chẳng hạn như Vision Transformer (ViT), model cũng có thể thực hiện các tác vụ segmentation. Mặc dù cả hai model đều có thể thực hiện các tác vụ tương tự, chúng khác nhau về cách xây dựng và cách xử lý segmentation.
U-Net hoạt động bằng cách xử lý hình ảnh ở cấp độ pixel thông qua các convolutional layer trong cấu trúc encoder-decoder. Nó thường được sử dụng cho các tác vụ đòi hỏi segmentation chính xác, như ảnh quét y tế hoặc cảnh trong xe tự lái.
Mặt khác, Vision Transformer (ViT) chia hình ảnh thành các patch và xử lý chúng đồng thời thông qua các cơ chế attention. Nó sử dụng self-attention (một cơ chế cho phép model đánh giá tầm quan trọng của các phần khác nhau trong hình ảnh so với nhau) để nắm bắt cách các phần khác nhau của hình ảnh liên quan đến nhau, không giống như cách tiếp cận convolutional của U-Net.
Một sự khác biệt quan trọng khác là ViT thường cần nhiều dữ liệu hơn để hoạt động tốt, nhưng nó lại rất xuất sắc trong việc nắm bắt các mẫu hình phức tạp. Trong khi đó, U-Net hoạt động tốt với các tập dữ liệu nhỏ hơn, huấn luyện nhanh hơn và thường yêu cầu ít thời gian huấn luyện hơn.
Link to this sectionCác ứng dụng của model U-Net#
Bây giờ chúng ta đã hiểu rõ hơn về U-Net là gì và cách nó hoạt động, hãy cùng khám phá cách U-Net đã được áp dụng trong các lĩnh vực khác nhau.
Link to this sectionPhân vùng xuất huyết não trong chẩn đoán hình ảnh y tế#
U-Net đã trở thành một phương pháp đáng tin cậy cho việc segmentation cấp độ pixel đối với các medical images phức tạp, đặc biệt là trong thời kỳ đỉnh cao của nó trong nghiên cứu. Nó được các nhà nghiên cứu sử dụng để làm nổi bật các vùng chính trong ảnh quét y tế, chẳng hạn như các khối u và dấu hiệu xuất huyết nội trong ảnh CT và MRI. Phương pháp này đã cải thiện đáng kể độ chính xác của chẩn đoán và hợp lý hóa việc phân tích dữ liệu y tế phức tạp trong môi trường nghiên cứu.
Một ví dụ về tác động của U-Net trong nghiên cứu chăm sóc sức khỏe là việc sử dụng nó để xác định đột quỵ và xuất huyết não trong các ảnh quét y tế. Các nhà nghiên cứu có thể sử dụng U-Net để phân tích ảnh quét đầu và làm nổi bật các khu vực đáng lo ngại, giúp xác định nhanh hơn các trường hợp cần được chăm sóc ngay lập tức.

Hình 4. Segmentation các tổn thương đột quỵ xuất huyết bằng 3D U-Net. (Source)
Link to this sectionSegmentation cây trồng trong nông nghiệp#
Một lĩnh vực khác mà các nhà nghiên cứu đã sử dụng U-Net là nông nghiệp, đặc biệt là để phân vùng cây trồng, cỏ dại và đất. Nó giúp nông dân theo dõi sức khỏe cây trồng, ước tính năng suất và đưa ra quyết định tốt hơn trên các trang trại lớn. Ví dụ, U-Net có thể tách cây trồng khỏi cỏ dại, giúp việc phun thuốc diệt cỏ hiệu quả hơn và giảm lãng phí.
Để giải quyết các thách thức như nhòe chuyển động (motion blur) trong ảnh drone, các nhà nghiên cứu đã cải thiện U-Net bằng các kỹ thuật image deblurring. Điều này đảm bảo việc segmentation rõ ràng hơn, ngay cả khi dữ liệu được thu thập trong khi di chuyển, chẳng hạn như trong các cuộc khảo sát trên không.

Hình 5. Tách cây trồng khỏi cỏ dại trên các cánh đồng nông nghiệp bằng U-Net. (Source)
Link to this sectionXe tự hành#
Trước khi các AI model tiên tiến hơn được giới thiệu, U-Net đóng một vai trò quan trọng trong việc khám phá cách segmentation có thể tăng cường khả năng lái xe tự động. Trong các autonomous vehicles, semantic segmentation của U-Net có thể được sử dụng để phân loại từng pixel trong hình ảnh thành các danh mục như đường bộ, phương tiện, người đi bộ và vạch kẻ làn đường. Điều này cung cấp cho xe cái nhìn rõ ràng về môi trường xung quanh, hỗ trợ điều hướng an toàn và ra quyết định hiệu quả.

Hình 6. Một cảnh đường phố nơi khu vực có thể lái xe được phân vùng bằng U-Net. (Source)
Link to this sectionƯu và nhược điểm của U-Net#
Ngay cả ngày nay, U-Net vẫn là lựa chọn tốt cho image segmentation đối với các nhà nghiên cứu nhờ sự cân bằng giữa tính đơn giản, độ chính xác và khả năng thích ứng. Dưới đây là một số ưu điểm chính khiến nó trở nên nổi bật:
- Khả năng thích ứng với các phương thức khác nhau: U-Net đã được điều chỉnh cho các loại dữ liệu khác nhau, bao gồm ảnh quét y tế 3D, hình ảnh vệ tinh và thậm chí là các khung hình video.
- Inference nhanh khi được tối ưu hóa: Khi được tinh chỉnh đúng cách, U-Net có thể chạy hiệu quả, khiến nó phù hợp cho các ứng dụng thời gian thực hoặc gần thời gian thực.
- Open-source và cộng đồng: U-Net có sẵn trên các thư viện deep learning chính và được hỗ trợ bởi một cộng đồng lớn các nhà phát triển và nghiên cứu.
Mặc dù U-Net có nhiều điểm mạnh, cũng có một vài hạn chế cần lưu ý. Dưới đây là một số yếu tố cần xem xét:
- Nhạy cảm với chất lượng dữ liệu: Hiệu suất của U-Net có thể bị ảnh hưởng tiêu cực bởi dữ liệu chất lượng kém, chẳng hạn như hình ảnh bị nhiễu hoặc có độ phân giải thấp.
- Dễ bị overfitting với tập dữ liệu nhỏ: Mặc dù U-Net hoạt động tốt với dữ liệu hạn chế, nó vẫn có nguy cơ overfitting nếu không được chính quy hóa (regularized) đúng cách, đặc biệt là khi tập dữ liệu quá nhỏ hoặc thiếu sự đa dạng.
- Tài nguyên tính toán: U-Net có thể đòi hỏi cao về mặt tính toán, đặc biệt là khi làm việc với các tập dữ liệu lớn, đòi hỏi tài nguyên phần cứng đáng kể để huấn luyện.
Link to this sectionCác điểm chính cần lưu ý#
U-Net đã là một cột mốc quan trọng trong sự phát triển của image segmentation. Nó chứng minh rằng các deep learning model có thể mang lại kết quả chính xác bằng cách sử dụng các tập dữ liệu nhỏ hơn, đặc biệt là trong các lĩnh vực như chẩn đoán hình ảnh y tế.
Bước đột phá này đã mở đường cho các ứng dụng tiên tiến hơn trong nhiều lĩnh vực khác nhau. Khi computer vision tiếp tục phát triển, các segmentation model như U-Net vẫn là nền tảng giúp máy móc hiểu và diễn giải dữ liệu hình ảnh với độ chính xác cao.
Bạn đang muốn xây dựng các dự án computer vision của riêng mình? Hãy khám phá GitHub repository của chúng tôi để tìm hiểu sâu hơn về AI và xem các licensing options. Tìm hiểu cách computer vision in healthcare đang cải thiện hiệu quả và khám phá tác động của AI in retail bằng cách truy cập các trang giải pháp của chúng tôi! Hãy tham gia community đang phát triển của chúng tôi ngay bây giờ!






