[Paper Explain] Colonformer: mô hình SOTA thuần việt cho bài toán xử lý ảnh y tế
Bài đăng này đã không được cập nhật trong 2 năm
1. Giới thiệu chung
Áp dụng học sâu vào lĩnh vực xử lý ảnh y tế từ trước tới nay luôn chiếm khá nhiều quan tâm của giới học giả nghiên cứu vì tính thách thức cũng như khả năng ứng dụng thực tế. Chính vì thế mà các mô hình ưu việt cứ cách một khoảng thời gian ngắn lại được đề xuất. Gần đây thầy cô trường đại học Bách Khoa Hà Nội kết hợp với các thầy cô khác đến từ đhqg Hồ Chí Minh và học viện nông nghiệp Việt Nam đã hợp tác nghiên cứu cho ra mô hình segmentation cho bài toán phân đoạn khối u đại tràng (colon polyp segmentation). Mô hình đạt kết quả rất khả quan trên một số tập dữ liệu của bài toán nói trên và hiện đang chiếm giữ top 1 trên tập dữ liệu CVC-ClinicDB. Công trình nghiên cứu có một số đóng góp mới như:
- Đề xuất mô hình mới sử dụng backbone transformer kết hợp phần head có kiến trúc Pyramid CNN
- Kỹ thuật sàng lọc đặc trưng sử dụng module residual attention mới nhằm cải thiện sự kết hợp giữa các feature map và làm mịn đường biên của mask đầu ra.
2. Colonformer
2.1 Encoder
Mô hình sử dụng backbone của Mix Transformer (MiT) đến từ paper "Segformer: Simple and efficient design for semantic segmentation with transformers" làm encoder. MiT có khả năng cho đầu ra là feature map với multi scale giống nhiều mạng CNN hiện nay, kích thước của feature map sẽ giảm dần theo cấp số mũ: , trong đó .
Mỗi block của MiT có 3 phần chính: Multi-head Self-Attention (MHSA) layers, Feed Forward Network (FFN), và Layer Norm. Một lý do khá quan trọng mà nhóm tác giả chọn MiT làm backbone chính là vì Mix - FFN. Thay vì sử dụng Positional Encoding (PE) như Vision Transformer thì FFN lại sử dụng một lớp tích chập . Kích thước dữ liệu đầu vào của PE bắt buộc phải không đổi, do đó nó không thể tận dụng đặc trưng không gian của những tập dữ liệu lớn như ImageNe nếu tập test có kích thước đầu vào khác tập train. Tất nhiên chúng ta có thể resize ảnh về kích thước mong muốn với thuật toán nội suy (interpolate), tuy nhiên việc thêm positional encoding theo một cách "không thống nhất" như vậy vô tình gây nhiễu cho ảnh đầu vào và làm giảm hiệu năng của mô hình. Trong khi đó, với ý tưởng sử dụng lớp tích chập có thể cung cấp thông tin vị trí cho mô hình Transformer, MiT sử dụng trực tiếp một lớp tích chập cho nhiệm vụ này. Độ hiệu quả của sự thay đổi này đã được chỉ rõ trong paper gốc Segformer. Đồng thời rất nhiều mô hình SOTA hiện tại đều lấy backbone Segformer làm encoder, điều này cũng gián tiếp chứng minh sức mạnh của nó. Mix - FFN được thể hiện qua công thức như sau:
2.2 Decoder
2.3 Refinement Module
Như tên gọi của nó thì refinement module có tác dụng chính là làm mịn và cho ra output map chính xác hơn. Khối này bao gồm Channel-wise Feature Pyramid (CFP) module và Reverse attention module kết hợp với residual axial attention block cho nhiệm vụ tịnh tiến gia tăng độ chính xác của đường biên polyp . Thông thường những khối polyp nhỏ rất khó bị phát hiện vì màu của nó gần giống với thành ruột, do đó nhóm tác giả quyết định sử dụng reverse attention để làm nổi bật đường biên bao của polyp, giúp mô hình dễ tập trung hơn vào những khối polyp nhỏ.
Reverse attention bắt nguồn từ paper "Reverse Attention for Salient Object Detection". Ý tưởng của nó là tạo pseudo prediction map từ , lúc đấy thì pixel mà mô hình tự tin sẽ có giá trị cao và ngược lại. Sau đó ouput map này sẽ được đưa qua công thức : để thực hiện bước tạo attention weight ngược vào phần background + biên và supress phần polyp , cuối cùng nhân attention weight vừa tạo với feature map để làm nổi bật phần biên.
2.4 Loss function
ColonFormer sử dụng hàm loss được kết hợp từ 2 hàm loss weighted Focal loss và weighted IoU loss để huấn luyện mô hình. Hàm focal loss sẽ đánh vào phân phối pixel của output map và sẽ quan tâm đến từng pixel một, do bài toán polyp thường cho ra output map bị mất cân bằng. Điều này chủ yếu là vì polyp chỉ chiếm một phần nhỏ trong ảnh đầu vào và phần lớn còn lại là background, vì vậy mà groundtruth map có sự mất cân bằng giữa 2 nhãn {polyp, background}. Ở hướng ngược lại thì weighted iou loss lại là hàm loss đánh vào từng vùng pixel để lấy ra mối tương quan của các pixel ở gần nhau.
Với giả thiết rằng có một số pixel (polyp, đường biên) quan trọng hơn những pixel khác khi đóng góp vào quá trình huấn luyện, nhóm tác giả lấy ý tưởng đánh trọng số cho các pixel trong hàm loss trong paper " net: Fusion, feedback and focus for salient object detection" để giải quyết vấn đề trên. Trọng số cho pixel đại biểu cho mối quan hệ của pixel trung tâm và lân cận của nó:
Trong đó là vùng lân cận của pixel và là nhãn của pixel . Phương pháp đánh trọng số như vậy sẽ cho phép mô hình tập trung nhiều hơn vào vùng biên.
Giả sử là dự đoán xác suất của mô hình cho pixel , ta có :
Như vậy công thức weighted focal loss và weighted iou loss sẽ được biểu diễn như sau :
Trong đó là các tham số có thể tinh chỉnh.
Cuối cùng, hàm loss của Colonformer sẽ được tính dựa trên trung bình cộng của 2 hàm loss kể trên:
Có một điều cần chú ý là mô hình ColonFormer cho nhiều đầu ra với nhiều multi scale, do đó hàm loss trên sẽ được áp dụng cho từng mức scale và cộng tổng lại để tính gradient.
3. Kết quả
4. Kết luận
Mặc dù theo mình thấy thì nhóm tác giả chưa thực sự đưa ra ý tưởng nào mới, chỉ là kết hợp các ý tưởng đã có sẵn, nhưng sự kết hợp này đã tạo nên một mô hình thực sự mạnh. Tuy nhiên trong paper có một số chỗ có thể làm các bạn khó hiểu như sau. Thứ nhất, nhóm tác giả phải huấn luyện mô hình 5 lần và lấy trung bình kết quả, điều này theo như tác giả là vì "các mô hình học sâu có kết quả khác nhau ở những lần train khác nhau (dù cùng 1 config) không phải chuyện hiếm, do đó việc nhóm tác giả huấn luyện 5 lần và đánh giá dựa trên kết quả trung bình là hợp lý và khách quan vì không bị phụ thuộc vào lần train nào" . Thứ hai, mô hình chi train 20 epoch, không augmentation như các bài nghiên cứu khác thường làm, " vì số epoch ngoài phụ thuộc vào độ phức tạp của mô hình, thuật toán tối ưu thì còn phụ thuộc vào kích thước bộ dữ liệu. Trong các bộ dữ liệu tác giả sử dụng để đánh giá, bộ lớn nhất là Kvasir cũng chỉ có 1000 ảnh và thí nghiệm mình sử dụng nhiều mẫu huấn luyện nhất là 1450 mẫu (thí nghiệm 1). Một ví dụ khác là mô hình PraNet cũng chỉ mất 20 epoch để hội tụ. Về phần augment, thông thường việc augment sẽ cải thiện kết quả vì giúp mô hình quan sát nhiều kiểu dữ liệu hơn, tăng tính khái quát hóa. Ở đây mình không sử dụng vì muốn so sánh một cách công bằng với các mô hình PraNet, HarDNet, TransFuse, ... họ đều không augment mà thay vào đó chỉ sử dụng kỹ thuật multi-scale training. Ở đây mình chủ ý so sánh hiệu quả giữa các kiến trúc và không muốn kỹ thuật training ảnh hưởng quá nhiều tới sự so sánh này. " Trong tương lai, nhóm tác giả sẽ hướng đến những mô hình light-weight hay sparse self-attention layer để giảm độ phức tạp tính toán, đồng thời cũng sẽ tìm kiếm các cách kết hợp khác nhau cho transformer và cnn. Bài viết đến đây cũng đã dài, trong quá trình đọc có thấy sai sót mong mọi người tích cực góp ý để mình cải thiện hơn ở các bài viết sau.
Một lần nữa cảm ơn bạn Duc Nguyen Thanh đã kịp thời góp ý để bài viết được hoàn thiện hơn.
Reference
[1]. Nguyen Thanh Duc, Nguyen Thi Oanh, Nguyen Thi Thuy, Tran Minh Triet, and Dinh Viet Sang. Colonformer: An efficient transformer based method for colon polyp segmentation. arXiv preprint arXiv:2205.08473, 2022.
[2] Hengshuang Zhao, Jianping Shi, Xiaojuan Qi, Xiaogang Wang, and Jiaya Jia. Pyramid scene parsing network. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2881–2890, 2017.
All rights reserved