ĐỒ ÁN TỐT NGHIỆP
Tìm hiểu và thử nghiệm
phương pháp tiên tiến cho
bài toán phân vùng ngữ nghĩa
Sinh viên thực hiện: Nguyễn Thị Phương Hằng
Giảng viên hướng dẫn: TS.Nguyễn Thị Oanh
1
NỘI DUNG
1
4
Tổng quan về bài toán phân vùng ngữ nghĩa
2
Một số phương pháp cho bài toán
3
Cài đặt thử nghiệm, kết quả và đánh giá
Kết luận và hướng phát triển
2
Giới thiệu bài toán phân vùng ngữ nghĩa
Liên kết từng điểm ảnh với nhãn lớp tương ứng mà nó thuộc về, không quan tâm
tới đối tượng
Phân biệt bài toán phân vùng ngữ nghĩa với một số bài toán xử lý ảnh
3
Ứng dụng bài toán trong thực tế
Trong y tế
Trong thị giác robot
Trong giao thông
Hỗ trợ giải quyết vấn đề nóng trên thế giới như đô
thị hóa, nước biển dâng, cháy rừng,..
4
Mục tiêu đồ án tốt nghiệp
Tìm hiểu về các phương pháp tiếp cận bài toán sử dụng mạng noron tích chập
Lựa chọn phương pháp cài đặt
Tiến hành cài đặt, thử nghiệm và đánh giá
5
NỘI DUNG
1
4
Tổng quan về bài toán phân vùng ngữ nghĩa
2
Một số phương pháp cho bài toán
3
Cài đặt thử nghiệm, kết quả và đánh giá
Kết luận và hướng phát triển
6
Phương pháp dựa trên mạng noron tích chập
• Mô hình chung: Encoder- decoder
• Encoder: Mạng noron tích chập (VGG, Googlenet, Resnet, Xception,…) trích xuất đặc
trưng
• Decoder: Thực hiện upsample nhằm khôi phục kích thước ảnh, một số phương pháp
như unpooling, deconvolution, nội suy song tuyến tính,…
7
Một số phương pháp upsampling
Unpooling
Deconvolution
Tính nội suy tại chiều x:
Tính theo chiều y:
F(x,y) ~ f(x,y1) + f(x,y2)
= f(Q11) + f(Q21)) + f(Q12) + f(Q22))
=f(Q11)(x2- x)(y2 -y) + f(Q21)(x-x1)(y2 -y) + f(Q12)(x2 -x)(y-y1) + f(Q22)(x-x1)(y-y1))
=
Nội suy song tuyến tính
8
Một số phương pháp cho bài toán
FCN( fully convolutional network) biến đổi
mạng VGG, sử dụng deconvolution
gồm 3 kiểu:
FCN-32s
FCN-16s
FCN-8s
Mô hình FCN
(1)
Segnet
- Sử dụng 13 tầng trong mạng VGG
- Sử dụng unpooling
Mô hình Segnet
(2)
9
Một số phương pháp cho bài toán
PSPnet
- Nội suy song tuyến tính
- Modun pyramid pooling để tổng hợp
thông tin ngữ cảnh với các cấp kernel
1x1, 2x2, 3x3, 6x6
Mô hình PSPnet
(3)
DeeplabV1 & Deeplab V2
-
atrous convolution
Nội suy song tuyến tính
Fully connected CRF
Sự khác biệt của 2 mô hình:
Deeplab V2 sử dụng atrous
Convolution
Mô hình deeplab V2
(4)
10
Một số phương pháp cho bài toán
• Deeplab V3: Sử dụng ASPP với các rate khác nhau và nội suy tuyến tính để upsample
• Deeplab V3 plus: Dựa trên Deeplab V3, decoder kết hợp kết quả bản đồ tính năng cấp thấp và kết
quả encoder, qua một số conv để kết quả tốt hơn
Deeplab V3
DeeplabV3 plus
11
Kết quả trên tập pascal voc 2012
Mô hình
Kết quả (mIoU,%)
Mạng CNN sử dụng
Năm công bố
FCN
67,2
VGG
2014
Segnet
59,9
VGG
2015
PSPnet
85,4
Resnet
2016
DeeplabV1
71,6
VGG
2014
DeeplabV2
79,7
Resnet
2016
DeeplabV3
85,7
Resnet
2017
DeeplabV3 plus
89
Xception
2018
12
NỘI DUNG
1
4
Tổng quan về bài toán phân vùng ngữ nghĩa
2
Một số phương pháp cho bài toán
3
Cài đặt thử nghiệm, kết quả và đánh giá
Kết luận và hướng phát triển
13
Mô hình cài đặt
Encoder – Deeplab v3 plus
• Dựa trên DeeplabV3, sử dụng Aligned Xception
• Modun ASPP gồm có
(a) 1 conv 1x1, 3 conv 3x3 với rate = (6, 12, 18) khi Output Stride = 16
(b) global average pooling, conv 1x1
14
Mô hình cài đặt
Decoder - Deeplab v3 plus
conv 1x1 làm giảm số kênh của bản đồ tính năng cấp thấp (channels=48) từ modun
encoder
2 conv 3x3 được dùng để có kết quả phân đoạn sắc nét hơn
Sử dụng nội suy tuyến tính để upsampling
Mô hình deeplab V3 plus
(5)
15
Môi trường thử nghiệm
GPU KDE lab: GeForce GTX (11177MiB), NVIDIA-SMI 390.48
Google Colab: GPU Tesla K80 (11.17GiB), giới hạn 12 h
16
Dữ liệu thử nghiệm
• Tập dữ liệu ADE20K gồm 150 lớp và 1 lớp nền:
Training (20210 ảnh)
wall
building
sky
floor
tree
ceiling
road
bed
window
grass
ground
door
table
mountain
plant
chair
car
water
painting
sofa
Validation (2000 ảnh)
17
Quá trình huấn luyện
• Chuyển ảnh gốc sang Tfrecord được hỗ trợ bởi Tensorflow để tăng tốc trong quá trình
huấn luyện
18
Kết quả thu được
ADE20K: mIoU 29,03%
19
Kết quả thu được
20
Kết quả thu được
21
Đánh giá
Kết quả đạt được còn tương đối thấp, đã thực hiện tăng số lần huấn luyện song do
điều kiện phần cứng còn hạn chế
Một số nguyên nhân có sự sai khác:
Đối tượng trong ảnh kiểm tra khác với đối tượng, hoặc không có trong ảnh huấn
luyện
Đối tượng mờ, không rõ ràng
Thời gian, và số lần huấn luyện mô hình chưa đủ để đạt kết quả tốt
22
NỘI DUNG
1
4
Tổng quan về bài toán phân vùng ngữ nghĩa
2
Một số phương pháp cho bài toán
3
Cài đặt thử nghiệm, kết quả và đánh giá
Kết luận và hướng phát triển
23
Kết luận và hướng phát triển
Ưu điểm:
• Tìm hiểu về mạng noron tích chập, tìm hiểu và đánh giá một số phương pháp cho bài
toán phân vùng ngữ nghĩa
• Tiến hành cài đặt và đạt kết quả trên tập dữ liệu ADE20K
Nhược điểm: Kết quả cần cải thiện thêm
Khó khăn: Điều kiện tài nguyên phần cứng còn hạn chế
Hướng phát triển:
• Hướng tới xây dựng ứng dụng phân vùng các món ăn, đã thực hiện trích ra 17 class trên
tập food101, chuyển đổi dữ liệu, và tiến hành huấn luyện
•
Nghiên cứu cải thiện hướng tới mô hình hiệu quả hơn
24
Tài liệu tham khảo
(1) Fully Convolutional Networks for Semantic Segmentation, Jonathan Long, Evan Shelhamer, Trevor Darrell.
(2) SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation, Vijay Badrinarayanan, Alex
Kendall, Roberto Cipolla.
(3) Pyramid Scene Parsing Network, Hengshuang Zhao, Jianping Shi, Xiaojuan Qi, Xiaogang Wang, Jiaya Jia, 2017.
(4) Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs, Liang-Chieh Chen, George
Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille.
DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs,
Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille.
(5) Rethinking Atrous Convolution for Semantic Image Segmentation, Liang-Chieh Chen, George Papandreou, Florian
Schroff, Hartwig Adam,2017.
Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation, Liang-Chieh Chen, Yukun Zhu,
George Papandreou, Florian Schroff, Hartwig Adam,2018.
25