Convolution เป็น operation หนึ่งพบได้บ่อยในการทำงาน image processing โดยเสนอการคูณ matrix (หรือ array) 2 matrix ด้วยกันเพื่อให้ได้ผลลัพธ์เป็น matrix ใหม่
ในงานด้าน image processing ด้วย matrix ตัวแรกหมายถึง input image ที่เป็น gray scale image และ matrix ตัวที่สองเรียกว่า kernel จะมีขนาดเล็กว่า input image มาก
หมายเหตุ สัญญลักษณ์ * แทนการทำ convolution
ถ้ากำหนดให้ Input Image มีขนาด M x N (row x column) และ kernel มีขนาด m x n แล้ว จะได้ Output Image ที่มีขนาด M - m + 1 x N - n +1 ค่าของ element ของ Output Image (O) ณ ตำแหน่งใดๆ หาได้จาก
\( O_{i,j} = \sum_{k=1}^{m}\sum_{l=1}^{n}I_{(i+k-1,j+l-1)}\times {K_{k,l}} \)
เช่น ถ้า K แทน kernel matrix ขนาด (2 x 3) , Input Image มีขนาด (6 x 9) ค่าของ O ที่ตำแหน่ง (5,7) หาได้จาก
\( O_{5,7} = \sum_{k=1}^{2}\sum_{l=1}^{3}I_{(i+k-1,j+l-1)}\times {K_{k,l}} \)
\( O_{5,7} = (I_{5,7} \times K_{1,1}) + (I_{5,8} \times K_{1,2}) + (I_{5,9} \times K_{1,3}) + (I_{6,7} \times K_{2,1}) + ( I_{6,8} \times K_{2,2}) +(I_{6,9} \times K_{2,3}) \)
ขั้นตอนในการทำ Convolution นั้นจะทำการเคลื่อน Kernel แบบ Sliding Windows บน Input Image โดยทั่วไปจะเริ่มจากซ้ายไปขวา บนลงล่าง
ในงานด้าน image processing ด้วย matrix ตัวแรกหมายถึง input image ที่เป็น gray scale image และ matrix ตัวที่สองเรียกว่า kernel จะมีขนาดเล็กว่า input image มาก
หมายเหตุ สัญญลักษณ์ * แทนการทำ convolution
ถ้ากำหนดให้ Input Image มีขนาด M x N (row x column) และ kernel มีขนาด m x n แล้ว จะได้ Output Image ที่มีขนาด M - m + 1 x N - n +1 ค่าของ element ของ Output Image (O) ณ ตำแหน่งใดๆ หาได้จาก
เช่น ถ้า K แทน kernel matrix ขนาด (2 x 3) , Input Image มีขนาด (6 x 9) ค่าของ O ที่ตำแหน่ง (5,7) หาได้จาก
\( O_{5,7} = (I_{5,7} \times K_{1,1}) + (I_{5,8} \times K_{1,2}) + (I_{5,9} \times K_{1,3}) + (I_{6,7} \times K_{2,1}) + ( I_{6,8} \times K_{2,2}) +(I_{6,9} \times K_{2,3}) \)
ขั้นตอนในการทำ Convolution นั้นจะทำการเคลื่อน Kernel แบบ Sliding Windows บน Input Image โดยทั่วไปจะเริ่มจากซ้ายไปขวา บนลงล่าง
ความคิดเห็น
แสดงความคิดเห็น