Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 27

TRƯỜNG ĐẠI HỌC BÁCH KHOA

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

ỨNG DỤNG PHÂN TÍCH SVD


ĐỂ KHỬ NHIỄU HÌNH ẢNH

Môn: Đại số tuyến tính


Lớp: DT02 Nhóm 10
GVHD: Nguyễn Xuân Mỹ
THÀNH VIÊN NHÓM

Lê Gia Thịnh 2114887

Lê Minh Thư 2114953

Diệp Phúc Thịnh 2114880

Vũ Văn Tiện 1915503

Nguyễn Văn Trà 2112472

Trương Ngọc Đoan Thục 2014669

Văn Diễn Ngọc Thanh 1813980

Đinh Hữu Thành 1814001


I. CƠ SỞ
LÝ THUYẾT
1
Trước khi tìm hiểu về SVD, trước tiên ta cần nắm rõ về bài
toán chéo hóa ma trận. Bài toán đó chỉ ra rằng một ma trận
vuông A được gọi là chéo hóa được nếu tồn tại một ma trận
đường chéo D và ma trận khả nghịch P sao cho:

(1)

2
Số lượng phần tử khác 0 của ma trận đường

chéo D chính là rank của ma trận A.

3
Nhân hai vế của (1) với P, ta có:

AP = PD (2)

4
Gọi pi, di lần lượt là cột thứ i của ma trận P và D. vì mỗi
một cột của vế trái và vế phải của (2) phải bằng nhau, ta
sẽ có:

5
Dấu bằng xảy ra vì D là ma trận đường
chéo, tức di chỉ có thành phần dii khác 0.

6
Singular Value Decomposition (SVD) là một
phương pháp phân tích ma trận, có nhiều ứng
dụng trong thực tế như nén ảnh, giảm nhiễu ảnh,
… điểm đặc biệt của SVD là có thế áp dụng được
trên bất kỳ ma trận thực nào.

7
Ta xét một ma trận A có m hàng và n cột (với
nm), có hạng là r và rnm, phép biến đổi SVD
phân tích ma trận A thành ba ma trận thành
phần lần lượt là U, S, V như sau:

𝑻
𝑨=𝑼𝑺 𝑽

8
Tr o n g đ ó :

U là ma trận trực giao cấp m: U = [ u1, u2, u3, V là ma trận trực giao cấp n: V = [ v1, v2,
…, ur, ur+1, …, um] v3, …, vr, vr+1, …, vn]
Với các vector ui( i = 1, 2, 3, .., m), tạo thành Với các vector vi (i = 1, 2, 3, ..., n), tạo
một tập trực chuẩn: thành một tập trực chuẩn:
UiTuj = δij = ViTVj = δij =

9
Như vậy ma trận U là ma trận gồm các vector riêng

trái cảu A, ma trận V là ma trận gồm các vector

riêng phải của A.

10
S là ma trận đường chéo, với mỗi
phần tử trên đường chéo là một trị
riêng của A. ký hiệu các giá trị trên 𝜹 𝟏 ≥ 𝜹 𝟐 ≥ 𝜹 𝟑 ≥ … ≥ 𝜹 𝒓 >𝟎
đường chéo chính của S là di, các
giá trị này có độ lớn được sắp xếp
theo thứ tự sau:

11
Các giá trị còn lại của (i = r + 1, …, n) đều bằng 0. Khi
áp dụng SVD vào ma trận điểm ảnh, các thành phần
chính của ảnh được tập trung vào các phần tử ở hàng
đầu, cột đầu của các ma trận U, V và các phần tử đầu
tiên trên đường chéo của S. Các phần tử này có tính
ổn định cao nên có thể sử dụng để làm các đặc trưng
bền vững cho ảnh.

12
II. ỨNG DỤNG CỦA PHÂN TÍCH

SVD ĐỂ KHỬ NHIỄU ẢNH

13
1. ĐẶT VẤN ĐỀ

Vai trò của máy tính khá quan trọng trong cuộc sống của chúng ta,
hình ảnh giúp chúng ta lưu giữ nhưng khoảng khắc, cung cấp
thông tin,... Để có một bức ảnh ta có thể sử dụng nhiều phương
tiện khác nhau (máy ảnh, điện thoại,...) Tuy nhiên trong một số
trường hợp khi chụp sẽ bị nhiễu ảnh.

14
1. ĐẶT VẤN ĐỀ

Hiện tượng “noise” ảnh hay còn gọi là nhiễu


ảnh, các đốm nhỏ xuất hiện trên những hình
Một vấn đề được đặt ra làm cách
ảnh chụp ở điều kiện thiếu sang hoặc do môi
nào
trườngđểtáccó
độngthể khử
khiến cho nhiễu
hình ảnhđược
không
còn giữ
một được
tập tinđộhình
chân ảnh
thực. mà chúng ta
mong muốn?

15
Cách để khử nhiễu cho hình ảnh:

Để khử độ noise của ảnh tức là tỷ lệ gây


nhiễu của bức ảnh phụ thuộc rất nhiều vào
điều chỉnh độ phơi sáng chính xác, kiểm
soát độ nhạy sáng của máy ảnh hay đơn
giản hơn là sử dụng các phần mềm chỉnh
sửa ảnh.

16
1. KHỬ NHIỄU HÌNH ẢNH QUA THUẬT TOÁN PHÂN TÍCH SVD

Vai trò của máy tính khá quan trọng trong cuộc sống của chúng ta,
hình ảnh giúp chúng ta lưu giữ nhưng khoảng khắc, cung cấp
thông tin,... Để có một bức ảnh ta có thể sử dụng nhiều phương
tiện khác nhau (máy ảnh, điện thoại,...) Tuy nhiên trong một số
trường hợp khi chụp sẽ bị nhiễu ảnh.

17
• Khử nhiễu bằng phân tích SVD trên Matlab
Chúng ta sẽ thực hiện khử nhiễu hình ảnh trên
Matlab vì Matlab cung cấp môi trường hoàn hảo
về công cụ tính toán cũng như lập trình. Người sử
dụng có thể thực hiện phép tính toán với ma
trận, vẽ đồ thị hàm số,...

• Việc khử nhiễu bằng phân tích SVD sẽ có


nhiều ưu điểm thuận lợi, thông qua việc
biến đổi những điểm dữ liệu mới trong
không gian, mà vẫn đảm bảo được hạng
của ma trận và kích thước các nhân tử của
ma trận trong một giới hạn cho phép.

19
1. KHỬ NHIỄU HÌNH ẢNH QUA
THUẬT TOÁN PHÂN TÍCH SVD

Các phần mềm chỉnh sửa ảnh hỗ trợ xử lí khử


nhiễu như Adobe Photoshop, Adobe Photoshop
Lightroom,…đều được viết dựa trên những đoạn
code xử lý hình ảnh trong C#,C++,python,matlab…
Chúng ta sẽ nghiên cứu cách xử lý hình ảnh từ
những ngôn ngữ lập trình này.

18
2. ÁP DỤNG

Chức năng chính của phép phân tích SVD


là giảm cấp ma trận. như chúng ta đã biết,
hình ảnh có thể được biểu diễn dưới dạng
một ma trận vậy nên việc áp dụng phép Đối với công thức , ta có thể viết lại dưới dang như sau:
phân tích SVD vào ma trận hình ảnh
tương đồng với việc chúng ta nén hình
ảnh. Tuy nhiên một điều có thể được xem
là khả năng song hành với việc nén hình
ảnh là việc làm giảm các hạt nhiễu xuất
hiện trên hình ảnh.

18
2. ÁP DỤNG
Từ đó ta có thể thấy được khả năng
xây dựng lại ma trận A với kích thước
k là điều hoàn toàn có thể thực hiện
như sau: 𝑘
𝐴𝑘=𝑑 𝑢 𝑣 +𝑑 𝑢 𝑣 +…+𝑑 𝑢 𝑣 ↔ 𝐴𝑘=∑ 𝑑 𝑢 𝑣
𝑇
1 1 1
𝑇
2 2 2
𝑇
𝑘 𝑘 𝑘
𝑇
𝑖 𝑖 𝑖
𝑖=1

18
3. ÁP DỤNG KHỬ NHIỄU BẰNG PHÂN TÍCH SVD:

20
Bài code:

21
Bài code:
k=15

Với các giá trị khác nhau của tham

số k chương trình sẽ cho ra các ảnh

hiệu chỉnh có độ nét khác nhau:


k=100

k=200

22
THANKS
Cám ơn cô cùng các các bạn đã lắng nghe phần
thuyết trình nhóm 10

You might also like