Lý Thuy t ầ ếI.Nhi ễu Ả nh v à Ph ân Lo N ại hiễ u Nhiễu ảnh là hiện tượng phổ biến trong xử lý ảnh, gây ảnh hưởng đến chất lượng ảnh và làm giảm hiệu quả của các thuật toán xử lý ảnh..
Trang 1TRƯỜNG ĐẠI HỌC Ỏ ĐỊA CHẤT M
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP B2
Xử Lý Ảnh Số Thực hiện:
Trần Thành Đạt - 2121010086
Hướng dẫn: T hS TRẦN MAI HƯƠNG
HÀ NỘI – 2 024
Trang 2M c l c ụ ụ
Phần 1 Lý Thuyết 3
I.Nhiễu Ảnh và Phân Loại Nhiễu 3
1 Khái niệm: 3
3 Phân loại: 3
II Biên Ảnh và Phân Vùng Ảnh (Edge Detection) 7
1.Biên ảnh 7
2 Phân vùng ảnh (Image Segmentation) 9
Phần 2 Thực hành 11
I.Thực hành khử nhiễu Gaussian 11
II.Thực hành phát hiện biên và phân vùng ảnh 13
Trang 3Ph n 1 Lý Thuy t ầ ế
I.Nhi ễu Ả nh v à Ph ân Lo N ại hiễ u
Nhiễu ảnh là hiện tượng phổ biến trong xử lý ảnh, gây ảnh hưởng đến chất lượng ảnh và làm giảm hiệu quả của các thuật toán xử lý ảnh
1 Khái niệm:
Nhiễu ảnh là những biến đổi ngẫu nhiên không mong muốn xuất hiện trong ảnh, làm sai lệch giá trị cường độ sáng, màu sắc hoặc kết cấu của pixel
2.1 Nguồn gốc:
Nhiễu ảnh có thể xuất phát từ nhiều nguồn khác nhau, bao gồm:
• Cảm biến: Nhiễu nhiệt trong cảm biến, lỗi cảm biến, hiệu ứng lượng tử hóa
• Truyền dẫn: Lỗi truyền dẫn, nhiễu điện từ
• Môi trường: Ánh sáng yếu, sương mù, khói bụi
• Quá trình xử lý: Lượng tử hóa, nén ảnh
2.2 Mô hình nhiễu
Ảnh nhiễu được mô hình bởi:
Với f(x,y) là điểm ảnh gốc, n(x,y) là thành phần nhiễu và g(x,y) là pixel
bị nhiễu
▪ Nếu xác định được mô hình đó thì có thể khôi phục được ảnh gốc
3 Phân lo ại:
Nhiễu ảnh có thể được phân loại dựa trên nhiều tiêu chí, bao gồm:
3.1 Dựa trên nguồn gốc:
Trang 4• Nhiễu cảm biến: Xuất phát từ bản thân cảm biến, ví dụ: nhiễu nhiệt, nhiễu bắn (shot noise), nhiễu đọc (read noise)
• Nhiễu truyền dẫn: Xuất hiện trong quá trình truyền dẫn tín hiệu, ví dụ: nhiễu điện từ, nhiễu do suy hao tín hiệu
• Nhiễu môi trường: Bị ảnh hưởng bởi môi trường xung quanh, ví dụ: nhiễu do ánh sáng yếu, sương mù, khói bụi
3.2 Dựa trên đặc tính thống kê:
Phân loại nhiễu: Gaussian, Rayleigh, Erlang, Exponential, Uniform, Impulse Dưới đây là phân loại các loại nhiễu bạn đề cập:
- Nhiễu Gaussian (Gaussian Noise):
• Đặc điểm: Phân bố theo hàm mật độ xác suất Gaussian (chuông) Giá trị nhiễu phân bố đối xứng xung quanh giá trị trung bình
• Nguyên nhân: Do các yếu tố tự nhiên như nhiễu nhiệt, nhiễu điện tử trong mạch, nhiễu khí quyển
• Ứng dụng: Mô hình hóa nhiễu trong nhiều ứng dụng như xử lý tín hiệu, truyền thông, hình ảnh
- Nhiễu Rayleigh (Rayleigh Noise):
• Đặc điểm: Phân bố theo hàm mật độ xác suất Rayleigh Giá trị nhiễu luôn dương và tập trung xung quanh một giá trị đỉnh
• Nguyên nhân: Thường gặp trong các hệ thống thông tin không dây khi tín hiệu truyền qua nhiều đường khác nhau
• Ứng dụng: Mô hình hóa nhiễu fading trong truyền thông không dây
- Nhiễu Erlang (Erlang Noise):
• Đặc điểm: Là tổng hợp của k biến ngẫu nhiên mũ độc lập và phân bố giống nhau
• Nguyên nhân: Gặp trong các hệ thống xếp hàng, mạng lưới viễn thông
• Ứng dụng: Mô hình hóa thời gian chờ đợi, thời gian phục vụ trong lý thuyết xếp hàng
- Nhiễu mũ (Exponential Noise):
• Đặc điểm: Phân bố theo hàm mật độ xác suất mũ Giá trị nhiễu luôn dương và giảm dần theo cấp số nhân
• Nguyên nhân: Liên quan đến thời gian giữa các sự kiện ngẫu nhiên
Trang 5• Ứng dụng: Mô hình hóa thời gian giữa các lần hỏng hóc của thiết bị, thời gian phục vụ khách hàng
-Nhiễu đều (Uniform Noise):
• Đặc điểm: Phân bố đều trong một khoảng giá trị xác định Mọi giá trị nhiễu trong khoảng đó có xác suất xuất hiện như nhau
• Nguyên nhân: Do các quá trình lượng tử hóa, làm tròn số
• Ứng dụng: Mô hình hóa nhiễu lượng tử hóa, tạo số ngẫu nhiên
-Nhiễu xung (Impulse Noise):
• Đặc điểm: Xuất hiện đột ngột với biên độ lớn, thời gian tồn tại ngắn
• Nguyên nhân: Do nhiễu từ các thiết bị điện, nhiễu điện từ, lỗi truyền dữ liệu
• Ứng dụng: Cần được lọc bỏ trong xử lý tín hiệu, truyền thông
3.3 Dựa trên ảnh hưởng lên ảnh:
• Nhiễu phụ gia (Additive noise): Thêm vào giá trị pixel gốc, ví dụ: nhiễu Gauss, nhiễu muối tiêu
• Nhiễu xung (Impulse noise): Thay thế giá trị pixel gốc bằng giá trị ngẫu nhiên, ví dụ: nhiễu muối tiêu
Một số ví dụ về mô hình nhiễu:
Trang 6
Exponential Uniform Salt & Pepper
4 Ảnh hưởng:
Nhiễu ảnh có thể gây ra nhiều ảnh hưởng tiêu cực, bao gồm:
• Giảm chất lượng ảnh: Làm mờ, giảm độ tương phản, làm sai lệch màu sắc
• Gây khó khăn cho việc phân tích ảnh: Cản trở việc trích xuất thông tin, phân loại, nhận dạng đối tượng
• Làm giảm hiệu quả của các thuật toán xử lý ảnh: Giảm độ chính xác của thuật toán, tăng thời gian xử lý
5 Các phương pháp xử lý:
Có nhiều phương pháp để xử lý nhiễu ảnh, bao gồm:
• Lọc tuyến tính: Lọc trung bình, lọc Gauss
• Lọc phi tuyến: Lọc trung vị, lọc thích nghi
• Biến đổi Fourier: Lọc tần số thấp, lọc tần số cao
• Các phương pháp học máy: Mạng nơ ron, học sâu
6 Ứng dụng:
• Xử lý nhiễu ảnh là một phần quan trọng trong nhiều ứng dụng, bao gồm:
Trang 7• Xử lý ảnh y tế: Loại bỏ nhiễu trong ảnh chụp X-quang, MRI, CT
• Xử lý ảnh vệ tinh: Loại bỏ nhiễu trong ảnh chụp từ vệ tinh
• Nhiếp ảnh kỹ thuật số: Cải thiện chất lượng ảnh chụp trong điều kiện ánh sáng yếu
• Thị giác máy tính: Nâng cao độ chính xác của các thuật toán nhận dạng đối tượng
1 ên Bi ảnh
1 Khái niệm:
o Biên ảnh là quá trình phát hiện các điểm có sự thay đổi đột ngột về cường độ trong ảnh, tương ứng với các đường biên, cạnh của các đối tượng
lớn (sự thay đổi cường độ lớn) theo một hướng nào đó
2 Các phương pháp phổ biến:
a Phương pháp đạo hàm bậc nhất:
o Các toán tử phổ biến: Roberts, Prewitt, Sobel
o Ví dụ thuật toán Sobel:
▪ Áp dụng hai bộ lọc 3x3 theo hai hướng x và y để tính đạo hàm riêng
đạo hàm riêng
b Phương pháp đạo hàm bậc hai:
o Sử dụng đạo hàm bậc hai (Laplacian) để phát hiện biên
trọng
c Phương pháp Canny:
dụng ngưỡng kép
Trang 8✓ Loại bớt nhiễu trong ảnh
Người ta loại nhiễu trong ảnh, làm mờ ảnh đi bằng cách nhân chập ảnh với một
bộ lọc Gauss, chẳng hạn bộ lọc Gauss 5x5 với hệ số δ = 1.4:
✓ Tính toán giá trị Gradien trong ảnh
Vì đường biên trong ảnh là nơi phân cách giữa các đối tượng khác nhau, nên tại
đó gradien của nó sẽ có biến đổi mạnh mẽ nhất Để tính toán gradien trong ảnh,
ta có thể sử dụng bộ lọc Sobel, hoặc trực tiếp nhân chập ma trận ảnh với các mặt
nạ theo hướng x và y, chẳng hạn:
Sau đó tính độ lớn gradien trong ảnh:
Trong đó, Gx và Gy chính là đạo hàm theo hướng x, y của ảnh ta đang xét Góc
θ sẽ được làm tròn theo các hướng thẳng đứng, nằm ngang và theo hướng chéo nghĩa là nó sẽ được làm tròn để nhận các giá trị trong 0, 45, 90 và 135 độ
✓ Loại bỏ các giá trị không phải cực đại
Bước này sẽ tìm ra những điểm ảnh có khả năng là biên ảnh nhất bằng cách loại
đi những giá trị không phải là cực đại trong bước tìm gradien ảnh ở trên Ta thấy rằng, với giá trị của góc θ ở trên thì biên của đối tượng có thể tuân theo bốn hướng, và ta có bốn khả năng sau:
độ lớn gradien tại A lớn hơn gradien của các điểm tại A3, A7
Trang 9• Nếu θ = 45, khi đó điểm A được xem là một điểm trên biên độ nếu độ lớn gradien tại A lớn hơn độ lớn gradien của các điểm tại A4, A8
độ lớn gradien tại A lớn hơn độ lớn gradien của các điểm tại A1, A5
độ lớn gradien tại A lớn hơn độ lớn gradien của các điểm tại A2, A6
✓ Chọn ra biên của đối tượng trong ảnh
Sau bước trên, ta thu được tập hợp các điểm tương ứng trên đường biên khá mỏng Vì những điểm có giá trị gradien lớn bao giờ cũng có xác suất biên thật
sự hơn những điểm có gradien bé, do đó để xác định chính xác hơn nữa biên của các đối tượng, ta sử dụng các ngưỡng Theo đó, bộ lọc Canny sẽ sử dụng một ngưỡng trên (upper threshold) và một ngưỡng dưới (lower threshold), nếu gradien tại một điểm trong ảnh có giá trị lớn hơn ngưỡng trên thì ta xác nhận điểm đó là một điểm biên trong ảnh, nếu giá trị này bé hơn ngưỡng dưới thì ta xác nhận điểm đó không phải là điểm biên Trong trường hợp giá trị gradien nằm giữa ngưỡng trên và ngưỡng dưới thì nó chỉ được tính là điểm trên biên khi các điểm liên kế bên cạnh của nó có giá trị gradien lớn hơn ngưỡng trên
3 Ứng dụng:
o Xử lý ảnh y sinh, ảnh vệ tinh, robot tự hành,
o Nhận dạng ký tự, chữ viết tay
o Phát hiện đối tượng, phân đoạn ảnh
o
2 Phân vùng nh (Image Segmentation) ả
1 Các phương pháp chính:
Trang 10a Phân vùng dựa trên ngưỡng (Thresholding):
o Chia ảnh thành đối tượng và nền dựa trên giá trị ngưỡng cường độ
b Phân vùng dựa trên phân cụm (Clustering):
cường độ,
▪ Lặp lại cho đến khi hội tụ
c Chia vùng dựa trên chia tách (Split-and-Merge):
o Chia tách ảnh thành các vùng nhỏ dựa trên tính đồng nhất
o Dựa trên các tiêu chí về cường độ, cạnh biên, hoặc đặc trưng khác
o Các thuật toán thường sử dụng: Chia tách thằng dọc, Quad-tree,
d Phân vùng dựa trên mô hình (Model-based):
2 Đánh giá kết quả:
nhãn bởi người (ground truth)
Coefficient,
3 Ứng dụng:
o Y tế: Phân đoạn mô, khối u, bộ phận cơ thể từ ảnh y tế
o Giao thông: Phân đoạn xe, người đi bộ, biển báo, trong ảnh giao thông
o Giám sát an ninh: Phát hiện đối tượng, người, phương tiện,
Trang 11Phần 2 Thự c hành
Thư viện sử dụng: OpenCV
1 `add_gaussian_noise(img, mu, sigma)`
Công thức toán học sử dụng cho bài thực hành là mô hình nhiễu phân phối Gaussian (phân phối chuẩn):
f(x) = (1 / (σ√(2π))) * e^( -((x - μ)^2) / (2σ^2))
Trong đó:
x: Giá trị của điểm ảnh
μ (mu): Giá trị trung bình của phân phối nhiễu (độ lệch)
σ (sigma): Độ lệch chuẩn của phân phối nhiễu (độ phân tán)
e: Hằng số Euler (xấp xỉ 2.71828)
Hàm `np.random.normal(mu, sigma, img.shape)` tạo ra một ma trận nhiễu với cùng kích thước như ảnh đầu vào, trong đó mỗi phần tử được lấy mẫu ngẫu nhiên từ phân phối Gaussian với giá trị trung bình `mu` và độ lệch chuẩn `sigma`
Trang 122 `denoise(img)`
Hàm này sử dụng thuật toán "Fast Non-Local Means Denoising" (FNLM) của OpenCV để khử nhiễu ảnh Thuật toán này khá phức tạp và không có một công thức toán học đơn giản để diễn tả Tuy nhiên, ý tưởng chính là:
• Tính toán trọng số: Đối với mỗi pixel, thuật toán tính toán trọng số cho các pixel lân cận dựa trên sự tương đồng về màu sắc và cấu trúc
• Trung bình có trọng số: Giá trị pixel mới được tính toán bằng cách lấy trung bình có trọng số của các pixel lân cận, sử dụng trọng số đã tính toán ở bước trước
Các tham số `10, 10, 7, 21` trong hàm `cv2.fastNlMeansDenoisingColored` kiểm soát các khía cạnh khác nhau của thuật toán FNLM, chẳng hạn như kích thước vùng lân cận được sử dụng để tính toán trọng số, cường độ khử nhiễu, v.v 3.Kết quả
Figure 2 Ảnh đ ã kh ử nhiễu
• Hình 1 - Ảnh nhiễu: Trong hình này, có rất nhiều điểm màu sắc nhỏ, tạo
nên một hình ảnh có nhiều nhiễu và không rõ ràng
• Hình 2 - Ảnh đã khử nhiễu: Sau khi áp dụng phương pháp khử nhiễu
Gaussian, hình ảnh trở nên mượt mà hơn rất nhiều, với ít sự thay đổi về màu sắc và kết cấu hơn
Figure 1Ảnh nhiễu
Trang 13Nhìn chung, phương pháp khử nhiễu Gaussian đã giảm thiểu đáng kể nhiễu trong hình ảnh, tạo ra một hình ảnh mượt mà và dễ nhìn hơn Tuy nhiên, cần lưu
ý rằng việc khử nhiễu có thể làm mất đi một số chi tiết nhỏ trong hình ảnh gốc
1.Biên ảnh Canny
Kết quả
Nhận xét: Bức ảnh bạn gửi cho thấy sự so sánh giữa hình ảnh gốc và hình ảnh sau khi áp dụng thuật toán phát hiện biên Canny Trong hình ảnh gốc, chúng ta có thể thấy một nhân vật với mái tóc đen nhọn, mặc trang phục màu cam và xanh, đưa một cánh tay về phía trước Phông nền là bầu trời xanh đơn giản với vài đám mây Hình ảnh “Canny Edges” thể hiện cùng một nhân vật nhưng chỉ có các đường viền hiển thị trên nền đen, cho thấy kết quả của thuật toán phát hiện biên được áp dụng lên hình ảnh gốc Sự so sánh này thú vị vì nó làm nổi bật cách mà các thuật toán phát hiện biên như Canny có thể xác định và trích xuất đường viền của các đối tượng trong hình ảnh để phân tích hoặc xử lý thêm trong các nhiệm vụ thị giác máy tính
Trang 142.Phân vùng ảnh- dùng thuật toán K-means
Kết quả
Trang 15Nhận xét: Bức ảnh bạn gửi cho thấy sự so sánh giữa hình ảnh gốc và hình ảnh đã được phân vùng sau khi áp dụng thuật toán k means Trong hình ảnh gốc, chúng
-ta có thể thấy một màn hình truyền hình đang phát sóng tin tức với hình ảnh người dẫn chương trình và dòng chữ chạy ở phía dưới Hình ảnh đã phân vùng cho thấy cùng một cảnh nhưng với chi tiết màu sắc giảm bớt và sự phân nhóm màu sắc rõ ràng, làm đơn giản hóa hình ảnh thành các khu vực riêng biệt Sự phân vùng này thú vị vì nó cho thấy khả năng của thuật toán k-means trong việc chia hình ảnh thành các phân đoạn dựa trên sự tương đồng về màu sắc, có ích trong nhiều ứng dụng như nhận dạng đối tượng hoặc nén hình ảnh