개요
프로그래밍 언어 : 매트랩
과제 수행 날짜 : 2020.06.24
과제 개요 : Canny Edge Detection으로 달리는 차 안에서 찍은 도로 동영상의 차선을 감지하는 프로젝트
과제 설명
파라미터 변화에 따른 결과
1) Filter Size & sigma
Canny Edge Detection의 첫 번째 단계인 가우시안 필터를 적용한다. 가우시안 필터를 적용하면 이미지를 smoothing 할 수 있다. 이때 Filter size와 sigma를 결정하는데, sigma가 크면 edge가 명확히 검출되지 않고, filter size가 크면 속도가 느려지기 때문에 적절한 값으로 필터를 설정하는 것이 필요하다.
1) Filter size = 10, sigma = 5 | 2) Filter size = 5, sigma = 5 | 3) Filter size = 5, sigma = 2 |
4) Filter size = 10, sigma = 2 | 5) Filter size = 5, sigma = 1 |
-> 시간이 가장 오래 걸린 것은 4번이고, 시간이 가장 조금 걸린 것은 5번이다. 같은 장면에서 edge를 가장 잘 검출한 것은 4번이다. 하지만 시간의 차이는 그렇게 크지 않았으므로, 해당 프로젝트에서 실시한 필터들 중 가장 적합한 필터는 Filter size = 10, sigma = 2인 필터이다.
2) T_max , T_min
Thresholding을 위해 정해주는 값으로, minVal(=minimum threshold)을 넘기지 못하는 edge는 weak edge로, edge로 취급하지 않고, maxVal(=maximum threshold)을 초과하면 strong edge이므로 edge로 취급한다. strong edge와 인접한 edge는 weak edge로, 이 경우에는 edge로 판단하여 남겨둔다.
1) T_max = 0.2, T_min = 0.1 | 2) T_max = 0.3, T_min = 0.1 |
3) T_max = 0.2, T_min = 0.4 | 4) T_max = 0.5, T_min = 0.4 |
-> T_max나 T_min의 값을 0.1 정도 올리게 되면, 그렇지 않았을 때에 비해 감지되는 lane이 적어진다. T_max와 T_min의 값을 0.1보다 더 많이 올리게 되면, 조금 올렸을 때보다도 더 감지되는 lane이 적어지는 것을 확인할 수 있다. 따라서 T_max나 T_min의 값을 많이 증가시키는 것은 감지되는 lane의 수가 적어지기 때문에 앞의 결과 중 1번 결과가 가장 정확하다.
3) Fillgap
Fillgap = 10 으로 지정하면 라인과 라인이 끊어졌을 때, 10 픽셀 안에 들어가면 이어준다.
1) Fillgap = 10 | 2) Fillgap = 50 |
-> Fillgap의 값을 50으로 증가시키니, lane을 감지하는 길이가 길어져서 차선이 아닌 뒷 풍경까지 lane이 이어진 것을 볼 수 있다. 따라서 Fillgap의 값을 너무 크지 않게 설정해야 한다.
4) Minlength
Minlength = 8으로 지정하면, 8개의 픽셀 이상으로 이루어져야 라인으로 인정하겠다는 의미이다.
1) Minlength = 20 | 2) Minlength = 10 |
-> Minlength의 값을 증가시켰더니, 그렇지 않을 때보다 감지되는 lane은 적지만, 반드시 감지해야 하는 차선은 잘 감지됨을 볼 수 있다. 하지만 Minlength의 값을 증가시키면 일부가 지워지거나 짧은 차선은 감지하지 못할 수 있으므로 너무 크지 않게 설정해야 한다.
5) 차선의 범위
차선이 존재하는 범위를 넘어선 곳에서 불필요한 edge를 그릴 수 있기 때문에 범위를 적절히 지정해서 그 범위를 넘어가면 edge를 그리지 않는다.
1) 차선의 범위 -65 ~ 65 | 2) 차선의 범위 -75 ~ 65 |
-> 차선의 범위가 -75 ~ 65일 때는 도로의 우측부분에 내 차선이 아님에도 감지되었는데, 차선의 범위를 -65 ~ 65로 지정하면 필요 없는 부분이 감지되지 않았다.
결과
위의 파라미터를 조절해가면서 얻은 결과에 따라
가우시안 Filter size = 5, sigma = 5, T_max = 0.2, T_min = 0.1, Fillgap = 10, Minlength = 8, 차선의 범위는 -65 ~ 72로 설정하여 프로젝트를 진행했다.
'프로젝트 & 과제 > 3학년' 카테고리의 다른 글
[C언어] 한글 / 영어 / 숫자 / 특수문자 (0) | 2022.01.24 |
---|---|
[C언어] 변수의 메모리 할당 위치 (0) | 2022.01.23 |
[센서] 주차장 출차 시뮬레이션 2 (0) | 2022.01.21 |
[센서] 주차장 출차 시뮬레이션 (0) | 2022.01.20 |
[센서] steering angle의 변화에 따른 차량 궤적 (0) | 2022.01.19 |