You are on page 1of 32

Báo cáo giữa kì

Đề tài: Sử dụng mô hình được đào tạo trước bằng tự


học có giám sát để nhận diện vật thể

Bộ môn: Khai Phá Dữ Liệu


Danh sách thành viên

Nguyễn Trung Hiếu Trưởng nhóm


Mã sinh viên: 21020017

Dương Hồng Nam Thành viên


Mã sinh viên: 21020024

Quách Văn Vũ Thành viên


Mã sinh viên: 20020505
Nội dung chính
I, Giới thiệu và phân tích về bài báo.

II, Quá trình thực nghiệm.

III, Liên hệ tới nghiên cứu của cả nhóm


Ứng dụng của SOD

Self-driving car
Surveillance

NHẬN DIỆN
VẬT THỂ
Ứng dụng trong Cuộc
sống

Medical Augmented
Imaging Reality
Giới thiệu về bài báo

Các mô hình nhận diện vật thể ngày nay:


• Được xây dựng dựa trên mạng CNNs.
• Được huấn luyện trước trên ImageNet.

=> Tiêu tốn chi phí cho việc thu thập dữ liệu do
phải gán nhãn một cách thủ công.
Supervised Self-Supervised
Learning Learning
Đặc điểm: Đặc điểm:
Toàn bộ tập dữ liệu là các dữ liệu được Một nhánh phát triển của học không giám sát
gán nhãn. (Unsupervised Learning).

Sử dụng làm Downstream Task. Chỉ cần sử dụng một lượng nhỏ dữ liệu có nhãn để học
cách phân tích thuộc tính. Qua đó sinh ra được các nhãn
Khó khăn: giả cho dữ liệu không nhãn.
• Các nhãn được gán một cách thủ
công. Thường được sử dụng để thực hiện các Pretext Task
• Lượng dữ liệu nhiều. chuẩn bị cho Downstream Task.

=> Tiêu tốn chi phí cho việc thu thập => Tiết kiệm chi phí cho việc thu thập dữ liệu và gán
dữ liệu. nhãn khi sử dụng Supervised Learning.
Giới thiệu về bài báo
Ý tưởng của nhóm tác giả:
• Ảnh Depth sẽ chứa rất nhiều thông tin về địa hình, độ tương phản, cấu
trúc, ... có ích cho nhận diện vật thể.
• Sử dụng mô hình học tự giám sát để khai thác được các thuộc tính từ ảnh RGB
và ảnh Depth, giúp đồng nhất và tăng cường thuộc tính của các luồng.
• Kết hợp thuộc tính giữa các luồng và các độ phân giải bằng khối CDA.

Ảnh RGB Depth Map


ĐÓNG GÓP CỦA TÁC GIẢ

Bộ tự mã hoá đa phương Bộ mã hoá độ sâu - đường Khối CDA


thức viền
Kiến trúc tổng quan
Gồm có:

5 khối mã hoá VGG16


4 khối giải mã Di
5 khối chuyển tiếp Ti
9 khối CDA
Các ground truth Y

Sau đó truyền các


Trích xuất thuộc tính Kết hợp thuộc tính của Kết hợp các thuộc tính Tiếp tục luân phiên từ
thuộc tính kết hợp vào
từ ảnh RGB và Depth hai luồng ở từng cấp giữa các cấp độ với các cấp độ phân giải
khối giải mã để ước
map qua khối mã hoá độ phân giải qua khối nhau tại khối CDA rồi dự đoán vật thể nổi
tính độ sâu - đường
CDA bật
viền
Các khối mã hoá
Vấn đề của RGB-D SOD:
• Các thuộc tính của luồng RGB
và Depth có các tính chất khác
nhau.
• Do đó không thuận tiện cho
việc kết hợp.

Giải pháp:
• 5 khối mã hoá. mỗi khối khai thác thuộc tính ở các độ phân giải khác nhau.
• Cho phép các cặp dữ liệu RGB và Depth dự đoán lẫn nhau.
• Tức là từ ảnh RGB sinh ra Deptp map và từ Depth map tái cấu trúc RGB.
=> Các luồng có thể học được các thuộc tính của nhau. Do đó, không bị
xung đột giữa các thuộc tính. Qua đó, việc kết hợp dữ liệu cũng thuận tiện
hơn.
Các khối giải mã
• Kết hợp các thuộc tính ở từng cấp độ
phân giải khác nhau ở các khối CDA.
• Truyền các thuộc tính kết hợp đó vào
khối CDA để kết hợp thuộc tính giữa
các cấp độ.
• Truyền các thuộc tính kết hợp cuối
cùng vào bộ giải mã để ước tính độ
sâu đường viền.
=> Tăng cường thêm cho quá trình kết
hợp, cung cấp các thuộc tính về đường
viền, giúp dự đoán chính xác hơn.
Khối CDA • Input: Thuộc tính RGB , Depth và ground truth Y.
• Tính toán thuộc tính chung Fa và Fb.
• Tăng cường các thuộc tính đó rồi kết hợp lại thành thuộc
tính chung nhất.
• Tính toán các điểm khác nhau Fjd.
• Kết hợp hai thuộc tính chung nhất và thuộc tính khác nhau
để tạo nên thuộc tính kết hợp sau cùng.
GIÁM SÁT
Tổng độ mất mát: Là tổng của Binary Cross Total loss
Entropy loss và IoU loss.

Sử dụng L1 loss và SSIM loss để giám sát


bộ mã hoá. Qua đó đánh giá được cả về L1 loss
cấp độ khung hình lẫn pixel.

Với bộ giải mã, ground truth được tính toán


qua depth map được sinh ra, cùng với quá Gdc
trình giãn nở và co lại.
Thí nghiệm

Dataset: Số liệu đánh giá:


RGBD135, DUT-RGBD, F-measure, Weighted F-
STERE, NLPR, NJUD và measure, Mean Absolute
SIP. Error, S-measure, E-
measure.

State-of-art Methods Thành phần khác:


DisenFuse, A2DELE, ICNeT, Framework Pytorch
S2MA, DANeT, CMWNeT, RTX 2080Ti
BBSNet, CoNet, UCNet, PGAR, 50 epochs
HDFNet, CDNet, DFMNet, mini-batch size = 4.
DSA2F, DCF và HAINet. Data Augmentation
Thí nghiệm
Dataset: Số liệu đánh giá:
Downstream Task
• 800 mẫu DUT-RGBD. F-measure: Đo độ chính xác của
• 1485 mẫu NJUD. model.
• 700 mẫu NLPR.
Weighted F-measure: biến thể của
Pretext Task
F1-score, đánh giá độ cân bằng
• Kết hợp NJUD và NLPR.
của model.
• 4207 mẫu của DUTLF-V2.
Mean-Squared-Error: Độ trung
bình sai lệch của prediction

S-Measure: Đánh giá độ tương


đồng cấu trúc của hai ảnh.

E-measure: Đánh giá độ tương


đồng của hai phép phân lớp.
Kết quả

Đánh giá định lượng Đánh giá chất lượng


Thí nghiệm cắt bỏ

Thí nghiệm cắt bỏ với khối CDA.

Thí nghiệm cắt bỏ với Pretext Task


Quá trình thực
nghiệm
Dataset được công khai ở Drive:
[https://drive.google.com/file/d/1Nxm8w
r2jSW-Ntqu8cdm4GfZPVOClJbZE/view]

Code được công bố tại Github của nhóm


tác giả:
[https://github.com/xiaoqi-zhao-dlut/sslsod]
Khó khăn
Khó khắn: Không có GPU đủ mạnh để tính
toán trên model.
=> Sử dụng Google Colab.
• Thời gian chạy model lâu, mà GPU
trên Google Colab có hạn.
Þ Sử dụng luân phiên các Account của
nhóm. Sau mỗi lần lưu checkpoint.
• Việc tải các dữ liệu rất lâu khi thực
hiện chạy nhiều lần.
=>Sử dụng Dropbox và Drive để load
và lưu dữ liệu.
Pretext Task 1
• 79900 lần lặp.
• 8 giờ để huấn luyện model.
• Total loss giảm dần từ 12.22
xuống 8.28

• Loss của các model


thành phần cũng giảm
đi đáng kể từ lần đầu
tiên.
Pretext Task 2
• 79900 lần lặp.
• 16 giờ để huần luyện model.
• Total loss giảm dần từ 2.52
xuống 0.55.

• Tương tự như ở model 1,


loss của các model thành
phần cũng giảm đi rất
nhiều.
=> Model ngày càng hiệu quả.
Downstream Task

• 100 epochs, 746 step / epoch.


• 9 giờ để huần luyện model..
• Gen loss giảm dần từ 9.51
xuống 0.51.
=> Tổng thời gian chạy là 33 giờ.
Kiểm tra kết quả
• Sử dụng chương trình prediction_rgbd.py để dự đoán vật thể nổi bật
trong hình ảnh. Đồng thời sử dụng test_score.py để tính toán số liệu.
• Sử dụng bộ dữ liệu Testing_dataset để kiểm tra.
Phân tích mã nguồn
• get_contour.py: Sinh các contour map
cho việc huấn luyện model 2.
• prediction_rgbd/py: Predict các ảnh vật
thể nổi bật.
• test_score.py: Tính toán các số liệu
thống kê.
• train_stage1_pretext1.py: Train task 1
train_stage2_pretext2.py: Train task 2
train_stage3_downstream.py: Train
downstream task.
Phân tích mã nguồn
model:
• model_stage1: Model của pretext task 1.
• model_stage2: Model của pretext task 2.
• model_stage3: Model của downstream task. Các file model

utils_downstream:
• config.py: cấu hình các file dữ liệu.
• dataset_rgbd_strategy2.py: xử lí dữ liệu.
• saliency_metric.py: tính toán các số liệu thống kê.
• ssim_loss.py: Tính toán SSIM loss.
• test_data.py: Kiểm tra các test.
• utils.py: Một số hàm tiện ích khác. Các file utils_downstream

utils_ssl:
• data_stage1.py và data_stage2.py: Đọc dữ liệu cho
model 1 và 2.
• joint_transform.py: chứa các hàm biến đổi ảnh.
Các file utils_ssl
Liên hệ và mở rộng
Nhận xét phương pháp của nhóm tác giả:
• Sử dụng khối CDA để kết hợp thuộc tính.
=> Khắc phục được vấn đề trong việc kết hợp thuộc tính: xung đột, không đồng nhất giữa
các luồng và các độ phân giải, chất lượng Depth map không tốt.
• Sử dụng Self-Supervised Learning để khai thác các thuộc tính.
=> Giảm chi phí khi thu thập dữ liệu, khiến cho các dữ liệu đồng nhất với nhau, thuận lợi
cho kết hợp.
Nhược điểm:
• Thời gian training là rất lâu.
• Cần cải thiện về cấu hình máy (GPU).
• Cần có cách xử lý dữ liệu tốt hơn do ngày càng có nhiều dữ liệu.
Mở rộng
Progressively Guided Alternate Refinement Network for RGB-D Salient Object Detection là bài báo đã
truyền cảm hứng cho tác giả.
• Khai thác thông tin từ Depth Map.
• Dùng các module để kết hợp thuộc tính
Kiến trúc tổng quan:
• Luồng RGB: sử dụng cấu
trúc VGG16.
• Luồng Depth: Sử dụng
lightweight network.
• Khối MSR.
• 8 Khối GR.
Mở rộng
Cách thức hoạt động:
• Nguyên tắc: "Coarse-to-fine".
• Sử dụng mạng VGG16 để trích
xuất thuộc tính từ luồng RGB.
• Dùng khối MSR để cho ra dự
đoán ban đầu.
• Sử dụng lightweight network
để trích xuất thuộc tính của
luồng Depth.

• Điều chỉnh prediction thông qua các khối GR bằng các side-output features từ các layer
của luồng RGB và Depth.
Mở rộng
Luồng RGB:
• Mạng VGG16, 5 lớp tích chập để trích xuất thuộc tính của luồng RGB, đồng thời trả ra các
thuôc tính side-output để điều chỉnh dự đoán.
• Sử dụng khối MSR để sinh ra kết quả dự đoán ban đầu.

Luồng Depth:
• Sử dụng Lightweight Network để trích xuất thuộc tính của luồng Depth., gồm 4 lớp tích
chập, 3 lớp cuối trả ra các thuộc tính side-output.
• Nhỏ gọn và hiệu quả hơn so với các model khác.
Mở rộng
MSR Block:
• Sau khối pool5.
• 3 nhánh song song, mỗi nhánh có cấu trúc dữ
khác nhau ở tỉ lệ giãn.
• Lặp lại N1 lần các nhánh thay vì xếp chồng.
=> Giảm lượng tham số cần thiết.
• Kết hợp 3 nhánh và cho ra kết quả dự đoán
ban đầu.

GR Block: khối SC và DRL.


Split and Concatenat: Chia feature thành g phần,
mỗi phần xen kẽ bởi các prediction.
Dual Residual Learning: kết hợp giữa feature
map của SC với thuộc tính ban đầu.
Kết hợp với prediction của khối GR trước đó để
cho ra prediction hiện tại.
Thí nghiệm
Dataset: NJUD, NLPR, DES, STERE, LFSD, DUT, và SIP.

Phương pháp so sánh: LHM, ACSD, LBE, DF,


CTMF, MMCI, TAN, PCAN, CPFP.

Kết quả: Model thể hiện khá tốt, gần


như tốt nhất trên NJUD, NLPR, DUT.
=> Tác giả đã khắc phục được điểm
yếu về dữ liệu Depth map và kết hợp
thuộc tính hiệu quả.

You might also like