รู้จักกับ Image Convolution

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) ณ ตำแหน่งใดๆ หาได้จาก

Oi,j=k=1ml=1nI(i+k1,j+l1)×Kk,l


เช่น ถ้า K แทน kernel matrix ขนาด (2 x 3) , Input Image มีขนาด (6 x 9) ค่าของ O ที่ตำแหน่ง (5,7) หาได้จาก

O5,7=k=12l=13I(i+k1,j+l1)×Kk,l
O5,7=(I5,7×K1,1)+(I5,8×K1,2)+(I5,9×K1,3)+(I6,7×K2,1)+(I6,8×K2,2)+(I6,9×K2,3)

ขั้นตอนในการทำ Convolution นั้นจะทำการเคลื่อน Kernel แบบ Sliding Windows บน Input Image โดยทั่วไปจะเริ่มจากซ้ายไปขวา บนลงล่าง


























ความคิดเห็น