1. Edge Detection
- Vertical Edge Detection: Convolve the image with Matrix 10−110−110−1\begin{matrix} 1 & 0 & -1 \\ 1 & 0 & -1 \\ 1 & 0 & -1 \end{matrix}111000−1−1−1
- Horizontal Edge Detection: Convolve the image with Matrix 111000−1−1−1\begin{matrix} 1 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & -1 \end{matrix}10−110−110−1
- Sobel Filter: 10−120−210−1\begin{matrix} 1 & 0 & -1 \\ 2 & 0 & -2 \\ 1 & 0 & -1 \end{matrix}121000−1−2−1
Give more attention to center - Scharr Filter: 30−3100−1030−3\begin{matrix} 3 & 0 & -3 \\ 10 & 0 & -10 \\ 3 & 0 & -3 \end{matrix}3103000−3−10−3
卷积函数:
python : conv_forward
opencv : filter2D
2. Padding
- Pad the image to save information from borders before convolution
- Valid Convolution: Direct Convolution, Size of output is restricted without padding
Same Convolution: Size of output is the same as input
3. Strided Convolution
- The step of convolution is not one.
- size of input is n, stride s, filter size f, padding p, size of output isn+2p−fs+1\frac {n+2p-f} {s} +1sn+2p−f+1
- cross-correlation / convolution: flip the matrix both vertically and horizontally
4. Convolution on 3-D Images
5. Convolution Layer in CNN
- Convolve with filter
- Add bias
- Apply it to function ReluReluRelu
- Go to the next layer
6. Pooling Layer in CNN
- Max Pooling: Reduce the size of features by taking MAX from every small matrix
- Average Pooling: taking the AVERAGE value
7. Fully-Connected Layer in CNN
- can be seen as a layer in neural network
- neighboring layers are fully-connected