Ứng dụng CNN trong xử lý hình ảnh.
- 29-09-2021
- chuong xuan
- 0 Comments
Mục lục
Đặc trưng về ảnh trong Máy Tính.
Ảnh màu: RGB viết tắt của red (đỏ), green (xanh lục), blue (xanh lam), là ba màu chính của ánh sáng khi tách ra từ lăng kính. Khi trộn ba màu trên theo tỉ lệ nhất định có thể tạo thành các màu khác nhau.
Với mỗi bộ 3 số r, g, b nguyên trong khoảng [0, 255] sẽ cho ra một màu khác nhau. Do có 256 cách chọn r, 256 cách chọn màu g, 256 cách chọn b => tổng số màu có thể tạo ra bằng hệ màu RGB là: 256 * 256 * 256 = 16777216 màu !!! Nghe thôi đã thấy việc lưu trữ dữ liệu của một bức ảnh thôi đã khó khăn, chưa nói đến còn phải xử lý.
Mà theo như mô hình Neural Network
Nếu mỗi hiddden layer được gọi là fully connected và như số liêu tính sơ sơ ở trên chắc chắn số parameter rất là nhiều. Như vậy chúng ta có thể dùng Convolution để giải quyết vấn đề lượng lớn parameter mà vẫn tính được đặc trưng của ảnh.
Ảnh Xám
Chắc bạn nào học toiec đều nhìn những ảnh này khá là quen. Thì một ảnh xám chúng ta chỉ cần biểu diễn bằng một giá trị nguyên trong khoảng từ [0,255] thay vì (r,g,b) như trong ảnh màu. Do đó khi biểu diễn ảnh xám trong máy tính chỉ cần một ma trận là đủ.
Phép convolution
Để cho dễ hình dung mình sẽ lấy ví dụ trên ảnh xám, tức là ảnh được biểu diễn dưới dạng ma trận A kích thước m*n.
Ta định nghĩa kernel là một ma trận vuông kích thước k*k trong đó k là số lẻ. k có thể bằng 1, 3, 5, 7, 9,… Ví dụ kernel kích thước 3*3
Kí hiệu phép tính convolution (⊗), kí hiệu Y = X⊗W
Với mỗi phần tử xij trong ma trận X lấy ra một ma trận có kích thước bằng kích thước của kernel W có phần tử xij làm trung tâm (đây là vì sao kích thước của kernel thường lẻ) gọi là ma trận A. Sau đó tính tổng các phần tử của phép tính element-wise của ma trận A và ma trận W, rồi viết vào ma trận kết quả Y.
Và ma trận Y có kích thước nhỏ hơn ma trận X. Kích thước của ma trận Y là (m-k+1) * (n-k+1).
Padding
Hiểu đơn giản Padding là cái bao quanh 1 ma trận, có thể là zero padding hay one padding,… Nó sẽ giúp giải quyết vấn đề khi mà matrix Y có cùng kích thước với matrix X.
Stride
Thay vì phải thực hiện tuần tự, trái phải trên dưới 1 bước, chúng ta có thể tùy trỉnh stride để tăng hoặc giảm bước nhảy. Tuy nhiên nếu stride = k (k > 1) thì ta chỉ thực hiện phép tính convolution trên các phần tử X1+i∗k,1+j∗k
Tóm cái váy lại ta có công thức xác định feature map tổng quát như sau:
Với ma trận X kích thước m*n với kernel kích thước k*k, stride = s, padding = p.
Ý nghĩa của convolution.
Chắc hẳn ai cũng đã từ sử dụng những phần mền photo một lần, thì trong pts hỗ trợ rất nhiều chức năng chỉnh sửa ảnh. Chúng hầu hết đều sử dụng CNN. Như vậy có thể thấy các phép convolution giúp chỉnh sửa ảnh, biến bức ảnh đầu vào thành một bức ảnh khác, bằng các Kerel.