1. 서 론
2. 관심영역 자동설정 알고리즘의 개발
3. 딥러닝 차선인식 모델 학습 실험
3.1 실험 개요 및 실험방법
3.2 데이터셋 제작 및 딥러닝 모델 학습 조건
3.3 딥러닝 모델 선행학습
3.4 딥러닝 모델 본학습
4. 관심영역 자동설정 알고리즘 현장적용 실험
4.1 실험 개요 및 실험방법
4.2 실험 조건
4.3 실험 결과 및 분석
5. 결 론
1. 서 론
터널 내 유고상황 감지는 교통 안전을 유지하기 위해 필수적인 요소이다(MOLIT, 2021). 기존의 터널 CCTV 기반 터널 영상유고시스템은 주로 수동으로 설정된 관심영역(region of interest, ROI)에 의존하고 있으며, 이로 인해 발생하는 오탐지 문제는 터널 관리자의 업무 부담을 가중시키는 요인이 된다(Lee and Shin, 2023). 특히, 터널 CCTV는 고압수 청소 등으로 인해 촬영부가 틀어지며, 결과적으로 초기 설정된 관심영역이 실제 차량 주행방향과 큰 차이가 발생하곤 한다. 이로 인해 유고상황 감지 및 오탐지 발생에 큰 영향을 미친다.
이전에 발표된 연구에서는 수동으로 관심영역을 재설정함으로써 오탐지를 줄일 수 있다는 점을 입증한 바 있다(Lee and Shin, 2023). 해당 연구에서는 관심영역의 회전으로 인해 발생하는 오탐지를 줄이기 위해, 터널 CCTV의 촬영부가 틀어질 때마다 관심영역을 수동으로 조정하는 방법을 제안하였다. 이 방법은 일정 부분 효과를 보였으나, 실시간으로 변화하는 터널 환경을 지속적으로 모니터링하고 즉각적으로 대응하는 데 있어 한계가 있다. 또한 이러한 수동 작업은 시간과 인력의 소모가 크므로 모든 터널에 적용하기에는 비효율적이다.
본 연구에서는 이러한 문제를 해결하기 위해, 딥러닝 기반의 객체 인식 모델을 활용하여 관심영역을 자동으로 재설정할 수 있는 알고리즘을 개발하였다. 제안된 알고리즘은 터널 CCTV의 촬영부가 틀어지는 상황에서도 일정 주기마다 실시간으로 관심영역을 자동 보정하여, 오탐지율을 최소화하고 유고상황 감지의 신뢰성을 높이는 것을 목표로 한다. 이를 위해 본 연구에서는 제안된 자동화 알고리즘의 성능 평가를 통해 그 효과를 검증하고자 한다.
2. 관심영역 자동설정 알고리즘의 개발
본 논문에서 제안하는 관심영역 자동설정 알고리즘은 서론에서 서술했던 틀어진 터널 CCTV로 인해 변화된 관심영역을 자동으로 재설정할 수 있는 알고리즘이다. 본 알고리즘은 먼저 입력값으로 정지영상을 받는데, 이 정지영상은 원본 터널 CCTV 영상(이하 원본영상)에서 관심영역 설정 진행 후 원근현상을 기하학적으로 제거하는 역 원근변환(inverse perspective transform, IPT)(Mallot et al., 1991)을 통해 변환된 변환영상이다(Lee and Shin, 2022). 여기서 본 알고리즘은 직선 터널인 터널 CCTV 영상을 전제로 설정된다. 관심영역은 변환영상에서 좌측/중앙/우측 3방향 차선의 방향이 모두 수직이 되도록, 터널 벽면이 보이지 않고 도로만 보이도록 설정된다. 그런데, 터널 CCTV의 촬영부가 틀어지게 되면 기 설정된 관심영역은 고정된 상태이므로 터널 벽면이 불가피하게 노출되며, 원본영상 상황에 따라 변환영상에서 보이는 차선의 방향이 기울어지는 문제가 발생한다. 이러한 상황은 Fig. 1의 입력 정지영상에서 확인할 수 있다.
Fig. 1을 보면, 관심영역 자동설정 알고리즘은 먼저 입력값인 변환영상에서 차선인식 알고리즘을 통해 차선의 모양을 그대로 인식하는 객체분할(segmentation)형태로 인식한다. 그 다음, 인식된 각 차선의 기울기를 정확하게 계산하기 위해 선형회귀를 수행한다. 이 때, 각각 인식된 차선 영역들은 Fig. 1에서 각각 파란 색, 초록색, 노란색 및 빨간색으로 구분된 것과 같이 동일한 y값을 가진 점들에서 x값의 평균을 계산하여 영역의 중앙점을 구한다. 그 다음, 선형회귀를 수행함으로써 각 차선의 방향을 정확하게 추정할 수 있다.
이렇게 계산된 중앙점들을 바탕으로 선형회귀를 진행하여, 각 차선의 기울기와 절편값을 얻는다. 그 다음 단계에서는 각 차선의 위치를 분류한다. 이 과정에서 영상의 폭을 3등분하여, 직선이 영상 최하단에서 만나는 지점의 x값 위치를 기준으로 좌측, 중앙, 우측 차선으로 분류한다. 좌측 차선은 0부터 영상 폭의 1/4 지점까지, 중앙 차선은 1/4에서 3/4 지점까지, 우측 차선은 3/4 지점부터 영상의 최우측까지에 해당된다.
이렇게 분류된 차선들은 변환된 영상에서 설정될 관심영역의 기반이 되며, Fig. 1의 마지막 단계에 보인 것처럼 설정된다. 관심영역의 하단 두 지점은 좌측 하단과 우측 하단으로 고정되며, 각 차선의 기울기를 기준으로, 하단 점에서 시작하여 영상의 최상단과 만나는 지점을 관심영역의 상단점으로 설정한다. 만약 특정 방향의 차선이 존재하지 않을 경우, 해당 방향의 영상 최상단점을 관심영역의 상단점으로 사용한다. 예를 들어, Fig. 1의 마지막 단계에서는 우측 차선이 존재하지 않으므로, 관심영역의 우측 상단점은 영상의 우측 최상단 점이 된다. 반면, 좌측 차선의 기울기가 존재하므로 좌측 하단 점에서 시작하는 좌측 직선과 영상 최상단에서 만나는 지점이 관심영역의 좌측 상단점이 된다.
Fig. 1이 관심영역 자동설정 알고리즘에서 차선 인식 및 변환영상 내 관심영역 설정 절차를 설명했다면, 관심영역 자동설정 알고리즘의 전체 과정은 Fig. 2와 같다. 즉, 역 원근 변환 → 차선 인식 및 관심영역 활용 → 원근 변환(perspective transform, PT) 과정을 반복하면서 원근 현상과 차선 방향을 보정하게 된다. 처음 단계에서는 미리 설정된 관심영역과 원본영상에서 Homography 행렬을 계산한 후(Galeano et al., 2011), 역 원근 변환(run IPT)을 통해 원근현상이 제거된 변환영상을 얻는다(Lee and Shin, 2022). 이후 단계에서 차선의 인식, 회귀 및 분류는 Fig. 1에서 설명한 절차대로 진행된다. 이 과정에서 분류된 차선들 중 좌측 및 우측 차선을 기반으로 변환영상에서 관심영역을 설정한 다음, 해당 관심영역에 대하여 원근 변환(run PT)을 수행하여 원본영상에서 1차 보정된 관심영역을 얻을 수 있다. 1차 보정된 관심영역을 바탕으로, 다음 단계에서도 1차 보정된 변환영상에서 차선의 인식, 회귀 및 분류가 진행된다. 이 단계에서는 차선 방향의 미세 보정을 위해, 중앙 차선의 기울기를 기준으로 관심영역 상단의 두 점을 설정한다. 마지막으로 원근 변환을 적용하여 보정된 관심영역과, 역 원근 변환을 통해 원근 현상 및 차선 방향이 보정된 변환영상을 얻는다.
상기 서술한 바와 같이, 관심영역 자동설정 알고리즘이 작동함에도 불구하고 미세한 차선 기울기 오차나 미인식된 방향의 차선의 영향으로 인해 최종 보정된 관심영역이 기 설정된 범위인 200 m 근방으로 조정되지 않고, 소실점으로 수렴하는 문제가 발생할 수 있다. 이 문제를 해결하기 위해, Fig. 3의 관심영역 자동설정 알고리즘을 통해 최종 보정된 관심영역에 대해 상단 2점의 후처리 과정을 추가하였다.
이 과정은 먼저 Fig. 3(a)에서 초기 설정된 관심영역의 상단 2점을 지나는 직선의 기울기와 상단 2점 간의 길이 정보를 요구한다. 이후, 임의의 시간대에 최종 보정된 관심영역은 Fig. 3(b)에 나타난 적색 경계 박스로 표현된다. 이때, 터널 CCTV와 가까운 지점에 위치한 좌측 상단점을 기준으로, 초기 설정된 관심영역의 상단 2점을 지나는 직선의 기울기를 적용하여, 관심영역의 우측 상단 및 하단점을 지나가는 직선과 교차하는 지점을 계산하고 후처리된 관심영역의 우측 상단점을 결정한다.
이때, 후처리된 관심영역의 우측 상단점과 좌측 상단점 간의 길이가 초기 설정된 관심영역의 상단 2점 간의 길이보다 길 경우, 관심영역 좌측 상단 및 하단점을 지나는 직선에서 현재 관심영역 좌측 상단점의 y값을 감소시킨다. 반대로 길이가 짧을 경우에는 y값을 증가시키며, 초기 설정된 관심영역의 상단 2점 간 길이와 비슷해질 때까지 반복적으로 후처리 과정을 진행한다. 이 과정을 통해 최종 보정된 관심영역이 초기 설정된 관심영역과 유사한 범위 내에서 유지되며, 유고 상황을 보다 정확하게 인지할 수 있는 관심영역을 얻을 수 있다.
3. 딥러닝 차선인식 모델 학습 실험
관심영역 자동설정 알고리즘의 작동을 위해서는 강건한 차선인식 알고리즘이 필요한데, 전통적인 로직 기반 알고리즘은 도로 환경에서의 다양한 변수를 효과적으로 처리하는 데 한계가 있다(Cao et al., 2019). 특히, 차선이 부분적으로 가려지거나 젖은 노면 및 노화로 인해 차선 표식이 불명확한 상황에서는, 로직 기반 알고리즘이 신뢰할 수 있는 결과를 제공하기 어렵다(Sultana et al., 2023). 이러한 한계를 극복하기 위해, 본 연구에서는 다양한 터널 내 도로환경이 반영된 데이터를 학습할 수 있는 딥러닝 기반의 차선인식 알고리즘을 도입하였다(LeCun et al., 2015). 이를 위해 본 실험 전에 데이터셋 제작 및 딥러닝 차선인식 모델 학습 실험을 통해 차선인식 성능을 파악하고자 한다.
3.1 실험 개요 및 실험방법
본 연구에서는 차선 인식 모델로 Mask Region-based Convolutional Neural Network (Mask R-CNN)을 활용하여 딥러닝 모델의 성능을 평가하였다(He et al., 2017). Mask R-CNN은 객체 인식 및 객체분할 작업에 효과적인 모델로, 차선의 위치와 형태를 정확하게 추출하는 데 적합하다. 이는 Mask R-CNN이 객체를 인식하는 동시에 각 객체에 대해 픽셀 단위의 세밀한 마스크를 생성할 수 있는 능력을 갖추고 있기 때문이다.
Mask R-CNN은 빠르고 정확한 객체인식 성능을 보인 Faster R-CNN 구조(Ren et al., 2015)를 기반으로 하여, 객체의 경계 박스(bounding box)를 예측하는 것뿐만 아니라, 각 객체에 대한 세분화된 마스크(segmentation mask)를 추가로 생성할 수 있다. 이로 인해 객체의 위치와 형태를 더 정확하게 예측할 수 있으며, 복잡한 장면에서도 높은 수준의 객체 인식과 객체분할 성능을 제공한다. 이러한 특징 덕분에 Mask R-CNN은 차선과 같이 세밀한 형태의 객체를 인식하고 분할하는 작업에 효과적으로 사용될 수 있다.
3절의 실험은 선행학습과 본학습의 두 단계로 나뉘어 진행되었다. 먼저, 선행학습 단계에서는 모델의 초기 학습 과정을 수행하며, 주로 손실 함수(loss function)의 추이를 통해 학습의 안정성과 수렴 속도를 평가하였다. 이 과정에서 모델의 과적합 여부를 모니터링하고, 딥러닝 객체인식 모델의 하이퍼파라미터 Epoch 횟수를 결정했다.
다음으로, 본학습 단계에서는 선행학습에서 도출된 최적의 하이퍼파라미터인 Epoch를 바탕으로 딥러닝 모델 본학습 및 객체분할 성능을 평가하였으며, 평가지표로 Mean intersection over union (MIOU) 및 평균 정밀도(average precision, AP) 지표를 사용하였다.
MIOU는 모델이 데이터셋에 대하여 예측한 차선의 영역과 실제 차선의 영역이 얼마나 일치하는지를 측정하는 지표이다(Cordts et al., 2016). 이 지표는 0에서 1 사이의 값을 가지는데, 값이 클수록 모델이 실제 차선과 거의 비슷한 모양으로 예측했음을 의미한다.
AP는 모델이 차선을 얼마나 잘 탐지했는지를 평가하는 지표로, 모델의 예측이 참인지 거짓인지를 다양한 Intersection over union (IOU) 임계값을 기준으로 판단한다(Zhu, 2004). 본 연구에서는 IOU 임계값으로 0.5를 사용하였다. 즉, 예측된 차선 영역과 실제 차선 영역이 50% 이상 겹치는 경우를 올바르게 탐지한 것으로 간주하며, 이를 바탕으로 참거짓을 판단하고, 그 결과를 평균하여 AP값을 계산한다. AP는 모델이 차선을 얼마나 정확하고 신뢰성 있게 탐지하는지를 종합적으로 평가하는 지표이다. 이 두 지표를 통해 학습된 Mask R-CNN 모델의 차선 인식 성능을 종합적으로 분석하고, 실험 결과를 도출하였다.
3.2 데이터셋 제작 및 딥러닝 모델 학습 조건
본 논문의 관심영역 자동설정 알고리즘은 변환영상에서 차선인식 및 보정을 전제로 하므로, 딥러닝 차선인식 모델 또한 변환영상에서 차선인식을 할 수 있어야 한다. 이를 위해 Fig. 4와 같이 변환영상을 기반으로, 다양한 각도로 기울어진 차선인식 데이터셋의 제작을 진행하였다.

Fig. 4.
Process of creating a lane detection dataset with various angles through horizontal changes of the top 2 ROI points in a single still image (a) original image and pre-defined ROI (b) original transformed image (c) shifted 5 pixels to the left (d) shifted 10 pixels to the left (e) shifted 15 pixels to the left (f) shifted 5 pixels to the right (g) shifted 10 pixels to the right (h) shifted 15 pixels to the right
Fig. 4는 변환영상 기반 차선 인식 데이터셋을 제작할 때, 다양한 차선 각도를 재현하기 위해 관심영역의 상단 2점의 x값을 좌우로 이동시켜, 한 정지영상에서 다양한 차선 각도를 가지는 6개의 추가 정지영상을 생성하는 과정을 나타낸다. 이 때, 원본 및 변환영상에 대한 해상도는 800 × 640의 크기로 고정된 상태에서 영상처리를 진행하였다.
먼저, Fig. 4(a)와 같이 원본영상에서 적색 사각형으로 표시된 관심영역을 설정한 후, 역 원근 변환을 통해 Fig. 4(b)와 같이 차선의 방향이 거의 수직에 가까운 변환영상을 얻는다. 이 상황에서, 설정된 관심영역의 상단 2점의 x값을 각각 동시에 5픽셀씩 감소시킬 경우, Fig. 4(c)~(e)와 같은 순서로 차선의 방향이 우측으로 기울어진 변환영상을 얻을 수 있다. 반대로, 관심영역의 상단 2점의 x값을 각각 5픽셀씩 증가시킬 경우, Fig. 4(f)~(h)와 같이 차선의 방향이 좌측으로 기울어진 변환영상을 얻을 수 있다. 결과적으로, 한 정지영상에서 7개의 차선 기울기를 가지는 변환영상들을 생성할 수 있게 된다.
한편, 딥러닝 차선 인식 데이터셋을 제작할 때, 변환영상에서 차선이 정지 영상의 상단으로 갈수록 흐릿해지므로 해당 영역을 차선 인식에 불필요한 영역으로 간주할 수 있다. 따라서, Fig. 5와 같이 영상의 하단, 즉 차선이 비교적 명확하게 보이는 부분만을 학습에 사용하도록 전처리 과정을 수행함으로써 딥러닝 모델의 차선 인식 성능을 향상시킬 수 있을 것으로 판단된다. 본 절에서는 딥러닝 차선 인식 모델 학습 실험을 위해 두 가지 경우로 나누어 전처리된 데이터셋을 제작하였다.
첫 번째 경우(Case 1)에서는, Fig. 5(a)에서 원본 변환영상의 하단 1/2분면을 적색 경계박스와 같이 잘라 Fig. 5(b)와 같은 변환영상을 만들어 활용한다. 두 번째 경우(Case 2)에서는, 동일한 원본 변환영상에서 하단 1/4분면을 연두색 경계박스와 같이 잘라 Fig. 5(c)와 같은 변환영상을 만들어 활용한다. 이 두 가지 경우를 비교해보면, Case 1의 경우 차선 상단이 상대적으로 흐릿하지만, 차선의 방향이 실제 방향과 비교적 일치하는 장점이 있다. 반면, Case 2는 차선이 더 선명하게 보이지만, 터널 CCTV 영상에서 왜곡 현상이 있을 경우 터널 CCTV와 가장 가까운 차선이 왜곡되어 실제 방향과 일치하지 않을 수 있다.
Table 1은 각 실험 사례(Case)마다 레이블링된 차선 인식 데이터셋의 현황을 나타낸다. Case 1과 Case 2에서 사용된 레이블링된 정지영상은 동일한 원본 변환영상을 활용하였으며, 앞서 Fig. 4에서 확인할 수 있듯이 원본영상에서 7종의 차선 각도를 가지는 변환영상을 생성하였다. 따라서, 실제 원본 정지영상의 개수는 60개이다. 또한, 학습용 데이터셋(train dataset)과 검증용 데이터셋(test dataset)은 1:1 비율로 나누었다.
Table 1.
The status of deep learning lane detection dataset
Experiment case | Dataset type | Number of images | Number of lanes |
Case 1 | Train | 210 | 742 |
Test | 210 | 732 | |
Total | 420 | 1,474 | |
Case 2 | Train | 210 | 755 |
Test | 210 | 753 | |
Total | 420 | 1,508 |
Case 1의 경우, 총 420장의 이미지에 1,474개의 차선이 레이블링되어 있으며, 이는 이미지당 약 3.5개의 차선이 레이블링된 것을 의미한다. Case 2에서도 동일한 이미지 수가 사용되었으며, 총 1,508개의 차선이 레이블링되어 있다. 이로 인해, Case 2에서도 이미지당 약 3.6개의 차선이 레이블링된 결과를 얻었다.
한편, 딥러닝 모델의 본학습 이전에 중요한 하이퍼파라미터인 Epoch를 결정하기 위해 선행학습을 수행하였다. Epoch는 딥러닝 모델의 학습 단위로, 데이터셋을 한 번 학습할 때마다 1 Epoch 학습되었다고 말한다. 이 때, Epoch의 횟수에 따라 딥러닝 모델의 성능이 향상되는데, 너무 많을 경우 학습용 데이터셋의 성능에 치중되는 과적합(over fitting)이 발생할 수 있기 때문에 적절한 Epoch를 결정하는 선행학습이 필요하다. Table 2는 이러한 선행학습을 위해, Table 1의 각 Case별 학습용 데이터셋을 정지영상 기준 8:2 비율로 분할하여 구성한 선행학습용 차선 인식 데이터셋의 현황을 나타낸다. 데이터셋은 랜덤하게 계획된 비율로 분할하였으며, 각각 선행학습용 데이터셋과 확인용 데이터셋으로 구분하였다.
Table 2.
The status of deep learning lane detection dataset for pre-train
Experiment case | Dataset type | Number of images | Number of lanes |
Case 1 | Train | 168 | 597 |
Validation | 42 | 145 | |
Total | 210 | 742 | |
Case 2 | Train | 168 | 608 |
Validation | 42 | 147 | |
Total | 210 | 755 |
본 실험에서 Mask R-CNN 딥러닝 차선인식 모델의 학습은 AMD RYZEN 5955WX CPU, 128 GB RAM, NVIDIA RTX 4090 GPU 4개를 탑재한 서버에서 Ubuntu 20.04 운영체제와 Python 3.10, Pytorch 2.0.0 소프트웨어 환경을 바탕으로 실험을 진행하였다. 그리고 epoch는 500, 정지영상 배치 사이즈는 16으로 설정하여 선행학습을 진행하였다. 마지막으로 각 조건에 대한 해상도는 Case 1은 800 × 320, Case 2는 800 × 160으로 설정되어 학습이 진행된다.
3.3 딥러닝 모델 선행학습
상기 서술한 학습조건을 바탕으로 Mask R-CNN 차선인식 모델의 학습을 진행하였으며, 약 40분이 소요되었다. 이후 딥러닝 모델의 선행학습 과정은 Figs. 6 and 7과 같이 각 조건마다 손실값(loss value) 변화 추이로 나타내었다.
Fig. 6은 Case 1 차선 인식 딥러닝 선행학습 모델에 대한 손실 값 추이를 나타낸다. Mask R-CNN의 손실 함수는 RPN classification 손실 값, RPN regression 손실 값, classification 손실 값, regression 손실 값 및 mask 손실값 등 5가지 요소를 합산하여 가중치 갱신에 반영한다. 각 손실 값의 추이는 Fig. 6(a)~(e)에서 각각 확인할 수 있다.
RPN classification 손실 값의 경우, 약 20 epoch에서 학습용 데이터셋의 손실 값이 수렴하는 반면, 검증용 데이터셋에서는 20 epoch에서 최저점을 기록한 이후 손실 값이 발산하다가 500 epoch 근처에서 다시 수렴하는 경향을 보였다. RPN regression 손실 값은 검증용 데이터셋에서 약 30 epoch에서 수렴하는 경향이 있는 반면, 학습용 데이터셋에서는 500 epoch까지 꾸준히 수렴하는 경향을 보였다.
Classification 손실 값은 약 100 epoch부터 학습용 데이터셋에 대해 수렴하는 경향이 나타났으며, 검증용 데이터셋에서는 약 40 epoch에서 수렴한 후 500 epoch까지 약간의 발산이 발생하는 경향을 보였다. Regression 손실 값의 경우, 약 150 epoch부터 학습용 데이터셋이 수렴하는 경향을 보이며, 검증용 데이터셋은 약 100 epoch부터 수렴하는 모습을 보였다.
마지막으로, mask 손실 값의 경우, 학습용 데이터셋에서는 500 epoch까지 꾸준히 수렴하는 경향을 보였으며, 검증용 데이터셋은 약 20 epoch에서 최저점을 기록한 후 약 300 epoch까지 손실 값이 발산하다가 다시 수렴하는 경향을 나타냈다.
이와 같은 5개의 손실 값을 종합적으로 고려해보면, Case 1의 딥러닝 모델의 epoch 수는 학습용 및 검증용 데이터셋이 안정적으로 수렴하는 500 epoch로 설정하는 것이 타당하다 판단하였다.
Fig. 7은 Case 2 차선 인식 딥러닝 선행학습 모델에 대한 손실 값 추이를 나타낸다. 각 손실 값에 대한 설명은 Fig. 6과 동일하며, 각 손실 값의 추이는 Fig. 7에서 확인할 수 있다.
먼저, RPN classification 손실 값은 학습용 데이터셋의 경우 약 100 epoch에서, 검증용 데이터셋의 경우 약 20 epoch에서 수렴하는 경향을 보인다. RPN regression 손실 값은 학습용과 검증용 데이터셋 모두에서 500 epoch까지 지속적으로 감소하며 최종적으로 수렴하는 경향을 나타냈다.
Classification 손실 값의 경우, 약 10 epoch에서 학습용과 검증용 데이터셋 모두에서 최저 값을 기록한 후, 학습용 데이터셋은 거의 변동이 없었으며, 검증용 데이터셋은 100 epoch까지 발산한 후 500 epoch까지 수렴하는 경향을 보였다. Regression 손실 값은 학습용과 검증용 데이터셋 모두에서 500 epoch까지 점차적으로 수렴하는 경향을 나타냈다.
마지막으로, mask 손실 값은 학습용 데이터셋에서 500 epoch까지 꾸준히 수렴하는 경향을 보였으며, 검증용 데이터셋에서는 약 20 epoch에서 최저 값을 달성한 후 350 epoch까지 발산하다가 이후 500 epoch에 수렴하는 모습을 보였다.
이와 같은 손실 값의 경향성을 종합적으로 고려해보면, Case 2에 대한 딥러닝 모델의 epoch 수는 Case 1과 마찬가지로 학습용 및 검증용 데이터셋의 손실 값이 안정적으로 수렴한 500 epoch로 설정하는 것이 타당하다 판단하였다.
3.4 딥러닝 모델 본학습
선행학습에서 결정된 500 epoch를 바탕으로, 각 조건마다 본학습을 진행하였으며, 그 결과는 Table 3과 같이 각 Case별 AP값과 MIOU값으로 나타내었다.
Table 3.
The lane detection performance for each case
Experiment case | Average precision (AP) | Mean IOU |
Case 1 | 0.907 | 0.774 |
Case 2 | 0.844 | 0.861 |
Table 3은 두 개의 본학습 모델을 학습한 후, 각각의 Case에 대한 검증용 데이터셋을 추론하여 도출된 딥러닝 차선 인식 성능 지표를 비교한 도표이다. 이때, AP 값에서는 Case 1이 Case 2보다 0.063 높았으며, MIOU에서는 Case 2가 Case 1보다 0.087 높았다.
먼저, Case 1의 경우, Case 2보다 상대적으로 도로 차선의 흐릿한 영역까지 레이블링이 되었기 때문에, 검증용 데이터셋에서 해당 영역의 추론이 어려웠을 가능성이 있다. 반면, Case 2는 도로 차선 영역 중 비교적 명확하게 보이는 부분만을 레이블링 하였기 때문에, 차선 영역 전체를 더 잘 인식할 수 있었다.
그러나, 학습용 및 검증용 데이터셋의 일부 차선에서는 노화 또는 비로 인해 차선이 잘 보이지 않는 경우가 발생하였다. 이러한 경우, Case 1에서는 흐릿하게 보이는 차선의 결을 따라 인식이 가능했으나, Case 2에서는 차선 인식이 제대로 이루어지지 않거나 배경을 차선으로 오인식하는 경우가 발생하였다. 또한, Case 2에서는 왜곡 현상이 큰 정지영상에서 좌/우측 차선이 실제 차선 방향과 다르게 인식될 수 있으며, 이로 인해 관심영역 자동설정 알고리즘이 제대로 작동하지 않을 가능성이 있다.
이러한 결과와 분석을 통해, 관심영역 자동설정 알고리즘에 적용할 딥러닝 차선 인식 모델은 Case 1 데이터셋 기반 모델로 선정하고 본 알고리즘에 적용하였다.
4. 관심영역 자동설정 알고리즘 현장적용 실험
4.1 실험 개요 및 실험방법
3절에서 결정된 딥러닝 차선인식 데이터셋 및 학습된 모델을 바탕으로, 관심영역 자동설정 알고리즘의 현장 적용성을 검증하기 위해 실제 영상에 적용하여 차선의 방향의 일관성 및 원근현상 균일화를 확인하는 실험을 진행하였다. 이 때, 실험 대상 영상은 1시간마다 5분 분량 녹화된 영상에서 정지영상 1장만 활용한다. 실험 방법은 다음과 같다.
1) 초기 관심영역을 설정한다. 차선의 방향이 수직이 되어야 하며, 관심영역 설정범위가 200 m가 되도록 설정한다.
2) 매 영상(시간) 각 조건마다 딥러닝 차선인식 모델의 실행 및 선형회귀를 포함한 후처리를 통해 인지된 좌/중앙/우측 차선모델의 각도를 계산한다. 이 때, 차선 각도의 범위는 -90 ~ 90도이다.
3) 시간의 경과에 따라 각 조건마다 인지된 차선각도의 변화를 비교한다. 이 때, 0도에 가까울 수록 차선의 방향은 수직에 가까워지며, 음의 값을 가지면 우측, 양의 값을 가지면 좌측 방향이다. 본 실험에서는 좌/중앙/우측 모두 0도를 일정하게 유지할 수 있는 조건이 더 우수한 조건이다.
4.2 실험 조건
본 실험은 단일 터널 현장에서 변화가 심한 3개의 CCTV 채널을 선정하였으며, 7개월(1월, 6월부터 12월) 동안 수집된 영상을 기반으로 실험을 진행하였다. 이 때, 3채널의 CCTV 영상은 30 FPS 기준으로 녹화되었으며, 각 채널의 해상도는 채널 1은 1280 × 720, 나머지 채널은 704 × 480이다. 해당 영상 데이터를 바탕으로, 인텔 i5-7400 CPU, 16 GB RAM, NVIDIA RTX 2060 GPU를 탑재한 서버에서 Ubuntu 22.04 운영체제와 Python 3.10, Pytorch 2.0.0, Opencv 4.9.0.80 소프트웨어 환경을 바탕으로 실험을 진행하였다. 여기서 Opencv 소프트웨어는 GPU를 통한 신속한 영상처리가 가능한 버전이다. 또한, RTX 2060 GPU는 6 GB의 그래픽 메모리를 가지므로 약 500 MB의 용량의 딥러닝 차선인식 모델을 원할하게 불러올 수 있는 최소 하드웨어 사양으로 볼 수 있다. 관심영역 자동설정 알고리즘에서 활용된 선형회귀 알고리즘은 RANSAC을 활용하며(Fischler and Bolles, 1981), 딥러닝 차선인식 모델은 3절에서 선정된 데이터셋 기반 Mask R-CNN을 활용하였다. 이 때의 입력 정지영상의 해상도는 원본 CCTV 영상에서 선정된 조건으로 조정된다.
시뮬레이션에서는 시간 경과에 따른 차선 각도의 변화를 비교하고 시각화하기 위해 두 가지 조건을 설정하였는데, 첫 번째 조건(Case 1)은 초기 설정된 관심영역을 고정한 상태에서 분석을 진행하였고, 두 번째 조건(Case 2)은 관심영역 자동설정 알고리즘을 사용하여 실시간으로 보정된 ROI를 적용한 상태에서 분석을 수행하였다. 이를 통해 시간의 경과에 따른 각 조건에서 차선 각도 변화 양상을 정량적으로 비교하였다.
4.3 실험 결과 및 분석
본 실험의 관심영역 자동설정 알고리즘 실행은 전체 영상들에 대하여 약 2시간이 소요되었다. 이 때, 상기 서술한 하드웨어에서 관심영역 자동설정 알고리즘의 전체 처리 시간은 1개의 영상당 약 1.5초 소요되었으며, 1차 보정된 관심영역을 얻기 까지는 약 0.6초, 1차 보정된 관심영역을 얻은 이후 2차 보정된 관심영역을 얻기 까지는 약 0.4초 소요된다. 관심영역 자동설정 알고리즘은 일정 시간마다 1번 실행되므로, 터널 영상유고시스템의 실시간 처리에 지장을 주지 않는다. 이를 바탕으로, Figs. 8, 9, 10과 같이 각 조건마다 시간에 따른 각 방향별 인지된 차선 각도의 변화를 나타내었다.
먼저, Fig. 8은 채널 1에 시간의 경과에 따른 인지된 차선 각도의 현황을 각 Case별로 비교하였다. Fig. 8(a)에서 Case 1의 경향성을 살펴보면, 빨간색으로 표시된 좌측 차선은 1월에는 제대로 인식되지 않았으며, 6월 이후 약 10도 정도 우측으로 기울기 시작하다가 8월 이후부터 점진적으로 우측으로 더 기울어지는 것을 확인할 수 있다. 초록색으로 표시된 중앙 차선은 1월 초기 설정 시에는 비교적 수직 방향(0도)을 유지하였으나, 6월부터 약 10도 우측으로 기울어지기 시작하여, 8월 초부터 말까지 차선이 약 30도까지 서서히 기울어진다. 이후 9월 중순부터 말까지 중앙 차선은 약 37도까지 우측으로 더 기울어졌다. 이러한 경향은 파란색으로 표시된 우측 차선에서도 동일하게 나타난다.
반면에, Fig. 8(b)에서는 관심영역 자동설정 알고리즘으로 보정한 결과를 보여준다. 이 경우, 좌측, 중앙, 우측 차선 모두가 0도에 가까운 범위로 보정되었으며, 이는 차선의 방향이 수직에 가깝도록 관심영역이 재설정되었음을 의미한다. 일부 날짜에서 차선 각도가 급격히 튀는 현상이 관찰되었는데, 이는 차선 인식이 제대로 이루어지지 않았을 때 발생한 오류로 판단된다. 그러나 이러한 오류가 발생한 후, 다음 시간대에서는 차선 방향의 인식과 관심영역의 보정이 정상적으로 이루어졌음을 확인할 수 있다.
Fig. 9는 채널 2에 대해 시간의 경과에 따른 인지된 차선 각도의 현황을 각 Case별로 비교한 것이다. 각 그래프에 대한 설명은 Fig. 8과 동일하다.
Fig. 9(a)에서 Case 1의 경향성을 살펴보면, 좌측 차선은 1월 초에는 차선을 제대로 인식하지 못했으나, 이후 1월 중순까지 차선 각도가 0도 근처에서 유지되는 것을 확인할 수 있다. 그러나 6월 초부터 좌측 차선의 각도가 약 25도 정도 좌측으로 크게 기울어졌고, 6월 8일에 CCTV가 다시 우측으로 조정되면서 좌측 차선의 각도는 0도로 재설정된 후 12월까지 일정하게 유지되었다.
한편, 중앙 및 우측 차선은 1월 초기 설정 시에는 수직 방향(0도) 근처에서 약간의 변동성이 있었다. 6월 초에는 두 방향 차선 모두 약 3도 정도 우측으로 기울어졌지만, 6월 8일 이후 약 30도 정도 우측으로 크게 기울어졌다. 이러한 변화에 따라 차선의 방향이 좌측 또는 우측으로 치우친 상황에서, 좌측, 중앙, 우측 방향의 차선 모두 0도에 가까운 범위로 재설정되어 차선이 수직에 가깝도록 유지된 것을 확인할 수 있다.
Fig. 10은 채널 3에 대해 시간의 경과에 따른 인지된 차선 각도의 현황을 각 Case별로 비교한 것이다. 이 채널의 경우, Case 1에서는 Fig. 10(a)에서 확인할 수 있듯이, 1월 초기에 설정된 관심영역에서 중앙 및 우측 차선은 0도를 중심으로 변동성을 가지며 차선이 인식되었음을 확인할 수 있다. 좌측 차선의 경우, 1월 영상에서 젖은 노면 조건과 흐릿한 도로 차선 상태로 인해 차선 인식에 어려움이 있었던 상황이다.
6월 이후부터 12월까지는 모든 방향의 차선이 약 37도 좌측으로 크게 기울어진 상황이 지속적으로 나타났다. 반면, Case 2에서는 Fig. 10(b)와 같이 좌측으로 크게 기울어진 차선들을 인식하고 보정함으로써, 변환영상에서 차선의 방향을 수직에 가깝게 보정할 수 있음을 보여준다.
세부적으로 살펴보면, 좌측 차선은 0도에서 10도 사이의 변동성을 보이며 약간 우측으로 기울어졌고, 중앙 및 우측 차선은 0도에서 5도 사이에서 우측으로 약간의 변동성을 보였다.
상기 서술한 바와 같이, 각 채널 및 Case에서 일부 방향의 차선에서는 차선 각도의 높은 변동성 및 차선이 인식되지 않는 시점이 존재한다. 이러한 원인을 시각적으로 설명하기 위해, Figs. 11, 12, 13에서는 각 채널 및 Case마다 시점에 따른 변환영상 현황을 나타내었다.
먼저, Fig. 11은 Fig. 8에서 보였던 채널 1의 각 Case별 인지된 차선 각도의 변화를 변환영상에서 직접 확인하고 비교할 수 있도록 한 그림이다. Fig. 11을 보면, Fig. 8에서 1월 초기에 좌측 차선이 제대로 인식되지 못한 원인은 눈으로 인해 도로가 젖었고, 시간이 지나면서 차선이 열화되어 흐릿해진 것이 차선 인식을 어렵게 했음을 확인할 수 있다. 반면, 6월 이후에는 차선이 새로 그려지면서 1월보다 비교적 명확하게 차선이 보이기 시작한다.
또한, Case 1에서는 1월에서 6월, 9월, 11월로 시간이 지남에 따라 좌측 차선이 점차 기울어지는 경향이 나타나지만, Case 2에서는 일관되게 차선이 수직으로 유지되는 모습을 확인할 수 있다. 이로 인해, Case 2가 시간이 지나도 차선 인식이 더 안정적임을 알 수 있다.
Fig. 12는 Fig. 9에서 보여진 채널 2의 각 Case별 인지된 차선 각도 변화를 변환영상에서 직접 확인하고 비교할 수 있도록 한 그림이다. 채널 2의 경우, 채널 1과 마찬가지로 1월 초기에는 젖은 도로 환경 및 열화로 인해 차선이 흐릿하게 보인다. 이러한 이유로, 해당 기간 동안에는 Fig. 9에서 확인할 수 있듯이 좌측 차선에서 차선 인식이 거의 이루어지지 않았으며, 중앙 및 우측 차선도 변화됨을 보였다.
그러나 6월부터는 차선이 명확하게 그려지면서 차선 인식이 더 정확하게 이루어졌다. 한편, Fig. 9에서 일부 시간대에 차선 각도가 급격히 튀는 상황이 관찰되었는데, 이는 Fig. 12의 9월 변환영상에서 확인할 수 있다. 젖은 노면이나 도로에 투영된 터널 전조등의 영향으로 인해 차선 인식이 어려웠던 것으로 추정된다.
Fig. 13은 Fig. 10과 같이 채널 3에서 각 Case별 인지된 차선 각도의 변화를 변환영상에서 직접 확인하고 비교할 수 있도록 한 그림이다. 이전에 설명한 두 개의 채널과 마찬가지로, 1월 초기에는 중앙 차선을 제외한 우측 및 좌측 차선이 흐릿하게 인식되었으며, 6월부터 차선이 다시 그려지면서 차선이 명확하게 인지되는 것을 확인할 수 있다.
Case 1에서는 Fig. 10에서와 같이, 채널 3의 모든 방향의 차선이 6월부터 좌측으로 기울어지는 경향을 보였으며, Fig. 13에서 이 상황을 시각적으로 확인할 수 있다. 반면, Case 2에서는 터널 CCTV의 기울어진 상황에 대응하여, 차선이 일관되게 수직 방향으로 유지되도록 관심영역이 재설정된 것을 확인할 수 있다.
종합적으로 분석하면, 3개의 채널 모두 Case 1과 같이 관심영역 재설정을 진행하지 않는 경우, 시간의 경과에 따라 관심영역이 크게 기울어진 것을 확인할 수 있다. 반면에, 매시간마다 관심영역을 재설정한 Case의 경우, 시간의 경과에 따라 관심영역이 기울어진 시점에서 관심영역 자동설정 알고리즘이 차선인식 및 후속 과정을 통해 원근현상 조절 및 차선의 방향을 수직 방향으로 보정할 수 있음을 보였다.
5. 결 론
본 연구에서는 기 설정된 터널 CCTV의 촬영부가 틀어질 때, 이에 대응하여 관심영역을 재설정시킬 수 있는 관심영역 자동설정 알고리즘을 제안하였으며, 딥러닝 차선인식 모델 학습 및 추론, 관심영역 자동설정 알고리즘 현장 적용을 통한 실제 보정성능 확인 및 검증을 수행하였으며, 이러한 실험들을 바탕으로 다음과 같은 결론을 얻을 수 있었다.
1. 본 논문에서 관심영역 자동설정 알고리즘은 사람의 도움없이 스스로 기울어진 관심영역을 자동으로 재설정할 수 있음을 보였는데, 이는 터널 영상유고시스템의 관리 측면에서 관리자의 시간 및 노력을 최소화할 수 있다. 기존에는 관심영역이 기울어질 때마다 관리자가 직접 현장을 방문해서 재설정해야 하기 때문이다.
2. 터널 영상유고시스템의 일관성있는 성능을 보장할 수 있다. 기울어진 관심영역에서 터널 영상유고시스템은 대량으로 오탐지가 발생할 우려가 크므로 이러한 상황에 대응함으로써 오탐지의 발생가능성을 줄일 수 있다(Lee and Shin, 2023). 또한 관심영역 자동설정 알고리즘은 원본 터널 CCTV영상 기반 터널 영상유고시스템에서도 적용 가능하며, 기 설정된 관심영역 설정범위의 유지를 가능케 한다.
3. 본 논문의 관심영역 자동설정 알고리즘은 차선인식을 기반으로 진행된다. 그런데, 상습 정체구간에서는 CCTV가 틀어질 때, 다수의 차량으로 인해 차선인식이 어려우며, 이로 인해 관심영역 보정이 진행되지 않는다. 또한, 곡선 터널에서도 역 원근변환 및 관심영역 자동설정 알고리즘이 작동되지 않는 한계점이 존재한다.
이러한 결론을 바탕으로, 향후 관심영역 자동설정 알고리즘을 포함한 터널 영상유고시스템의 운용을 통해 현장적용성 검토를 추가로 진행할 계획이며, 상습 정체구간에서 CCTV가 틀어질 때에 대응할 수 있는 기법의 개발 또는 도입, 곡선 터널에서도 역 원근변환 및 관심영역 자동설정 알고리즘이 작동되도록 개선할 것이다.