ADAS : Advanced Driving Assistance System
LDWS : Lane Departure Warning System ➡️ 소리 경고LKAS : Lane Keeping Assistant System Road, lane, lane line

There are many ways to detect lane lines using vision systems.
Canny Edge DetectionHough Transform AlgorithmFSC(Forward Sensing Camera)
Vanishing Poing : There is a horizontal line...


차분하여 Zero Crossing Point를 찾을 수 있기 때문에


정규분포 : Gaussian Distribution. (mu=?, sigma=?)
표준정규분포 : Normalized Gaussian Distribution. (mu=0, sigma=1)


Image에 Gaussian Filter를 왜 씌우는가?
➡️ filter를 통해 주변에 있는 8개의 information을 축소, 가운데 있는 대표값을 최대화하기 위해서

g1 ➡️ symmetric matrix가 만들어짐을 확인할 수 있다.g1을 input image와 convolution 연산하여
Gaussian Filter Test



Calculating the gradients and
Sobel Mask X == 수직 방향 Edge 검출
Sobel Mask Y == 수평 방향 Edge 검출


Example
%% 2_1. Calculating gradient with sobel mask
sobelMaskX = [-1, 0, 1; -2, 0, 2; -1, 0, 1]; % 수평 방향(x) 미분 filter -> 수직 방향 edge 검출
sobelMaskY = [1, 2, 1; 0, 0, 0; -1, -2, -1]; % 수직 방향(y) 미분 filter -> 수평 방향 edge 검출
% Convolution with horizontal and vertical filter
G_X = conv2(img1, sobelMaskX, 'same');
G_Y = conv2(img1, sobelMaskY, 'same');




arctan : range[- ~ +],
range[ ~ ],
range[- ~ -],
...
arctan2 : range[- ~ +]
➡️ arctan2는 arctan이 의 범위에 따라 있는 그래프를
- ~ 의 범위로 그려준다.
따라서 값을 정확하게 준다.
따라서 공간 상의 움직임을 구현하기 위해서는 arctan2를 사용해야 한다.
arctan2를 이용하여 를 얻었을 것이고, 그 를 range[0, 360]로 만든다
Non-Maximum Suppression :
지역적으로 최대값이 아닌 Edge를 제거하는 과정.
Edge에 기여하지 않는 pixel을 제거 (0으로 만듦)
➡️ 진짜 edge가 아닌데도 검출되는 pixel들이 있기 때문.
➡️ Blurring 현상을 없애고 Sharp한 Edge로 변경 필요하기 때문

24row 3column을 봤을 때, quantization = 2이다.
따라서 max(23row 3column, 24row 3column, 25row 3column) 연산을 했을 때,
결과가 24row 3column이기 때문에 지역적으로 최대값을 가지므로 제거되지 않음.


2row 2column을 봤을 때, quantization = 3이다.
따라서 max(1row 1column, 2row 2column, 3row 3column) 연산을 했을 때,
결과가 1row 1column이기 때문에 지역적으로 최대값이 아니기 때문에 제거


두 개의 Thresholds로 Edge인지 아닌지 추론하는 단계.
Strong Edge : Maximum Threshold < 현재 pixel값
Weak Edge : Minimum Threshold < 현재 pixel값 < Maximum Threshold
No Edge : 현재 pixel값 < Maximum Threshold
하지만 Strong Edge pixel들만 Edge로 판단할 경우,
영상의 noise로 인해 Edge Pixel인데도 제대로 인식되지 않을 수 있다.
그래서 Strong Edge와 인접한 Weak Edge Pixel을 Strong Edge로 판단해주어 Edge Pixel들끼리 서로 연결해줘야 한다.


