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 trực quan. Công nghệ này đã dọn đườ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ợ xe 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: phân đoạn (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 model chuyên biệt cho tác vụ segmentation.
Một trong những model đó là U-Net. Mặc dù các model mới hơn và 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ẽ tìm hiểu kỹ hơn về U-Net architecture, cách thức hoạt động, các ứng dụng thực tế và cách nó so sánh với các segmentation model hiện đại hơn ngày nay.

Hình 1. Ví dụ về segmentation sử dụng deep learning model U-Net. (Source)
Lịch sử của image segmentation#
Trước khi đi sâu vào U-Net là gì, hãy cùng tìm hiểu rõ hơn về cách các image segmentation model đã tiến hóa 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ự bùng nổ của deep learning vào 2012, các nhà nghiên cứu đã giới thiệu khái niệm mạng tích chập toàn phần (FCN) vào năm 2014 cho các tác vụ như phân đoạn ngữ nghĩa (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 xử lý toàn bộ hình ảnh cùng một lúc, thay vì chia nhỏ thành các phần nhỏ hơn. Điều này giúp model tạo ra các bản đồ chi tiết thể hiện rõ ràng các thành phần có trong hình ảnh.

Hình 2. Sự tiến hóa của các thuật toán segmentation dựa trên deep learning. (Source)
Dựa trên nền tảng của FCN, U-Net được giới thiệu bởi các nhà nghiên cứu tại Đại học Freiburg vào năm 2015. Ban đầu, nó được thiết kế cho biomedical image segmentation. Cụ thể, U-Net được thiết kế để hoạt động hiệu quả trong các tình huống dữ liệu được gán nhãn (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.
U-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 dành riêng 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.
Tổ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 hình ả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)
Tìm hiểu sự khác biệt giữa ViT và U-Net#
Khi tìm hiểu về 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), vốn 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ấu trúc 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.
Cá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.
Phâ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 phân đoạn cấp độ pixel đối với các medical images phức tạp, đặc biệt trong thời kỳ đỉnh cao nghiên cứu của nó. Nó được các nhà nghiên cứu sử dụng để làm nổi bật các vùng quan trọng trong ảnh quét y tế, chẳng hạn như khối u và các 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à tối ưu 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. Phân đoạn các tổn thương đột quỵ xuất huyết sử dụng 3D U-Net. (Source)
Segmentation 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ư mờ do chuyển động trong hình ảnh máy bay không người lái, các nhà nghiên cứu đã cải tiến U-Net với các kỹ thuật image deblurring. Điều này đảm bảo quá trình segmentation rõ ràng hơn, ngay cả khi thu thập dữ liệu trong lúc di chuyển, chẳng hạn như trong các chuyến khảo sát trên không.

Hình 5. Tách cây trồng khỏi cỏ dại trên đồng ruộng bằng U-Net. (Source)
Xe tự hành#
Trước khi các AI model tiên tiến hơn xuất hiện, U-Net đóng vai trò thiết yếu trong việc khám phá cách mà segmentation có thể nâng cao hệ thống lái tự động. Trong 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 đi, phương tiện, người đi bộ và vạch kẻ đườ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. Cảnh đường phố với khu vực có thể lái xe được segment bằng U-Net. (Source)
Ư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 lớn và được hỗ trợ bởi một cộng đồng lớn gồm các developer và nhà 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.
Cá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 project 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 qua các licensing options của chúng tôi. Tìm hiểu cách computer vision in healthcare đang cải thiện hiệu suất 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! Tham gia community đang phát triển của chúng tôi ngay bây giờ!






