2.1 YOLO
합성곱 신경망 (Convolutional neural networks, CNN)은 이미지 처리 및 객체 인식 분야에서 활용하는 딥러닝 신경망 구조이다.
이미지의 3차원 데이터 구조를 고려한 신경망으로, 데이터 구조를 유지하며 다음 층 (Layer)으로 정보를 전달하는 특징을 지닌다. Fig. 1(a)에 나타낸 바와 같이, 합성곱 신경망은 합성곱 연산과 Rectified linear unit, ReLU 활성화 함수 및 풀링 (Pooling)을 거친
층들을 여러 겹 쌓아 특징맵 (Feature map)을 생성한다. 생성된 특징맵은 최종적으로 완전 연결신경망을 거쳐 객체 탐지 및 인식과 같은 작업에
활용된다. 합성곱 신경망을 활용한 이미지 내의 객체 탐지 알고리즘은 n-stage detector 구조로 구성할 수 있으며, 일반적으로 1-stage
detector 및 2-stage detector가 주로 활용된다. Fig. 1(b)에 나타낸 바와 같이, 전자는 이미지 전체에 대한 특징들을 한 번에 추출하여 객체를 검출하는 반면, 후자의 경우엔 이미지 내에서 검출 대상이 있을
가능성이 높은 영역을 탐색하는 선행과정을 거치는 특징이 있다. 이와 같은 방식의 차이로 인해, 2-stage detector는 일반적으로 높은 정확도를
제공하는 반면, 1-stage detector는 빠른 속도를 특징으로 한다(Zou et al., 2023). 이 연구에서는 실시간으로 변화하는 로봇의 위치 정보와 객체 검출 결과를 통합적으로 활용하고자, 1-stage detector의 대표 알고리즘인
YOLO를 사용하였다.
YOLO는 Redmon et al.(2016)에 의해 처음 제안되었으며, 현재는 Ultralytics에서 다양한 버전으로 제공하고 있다. YOLO는 아키텍처 (Architecture)의 변화,
백본 (Backbone)의 구성 및 앵커 박스 (Anchor box) 유무 등 여러 변화를 거치며 지속적으로 정확도 및 탐색속도가 향상되고 있다(Terven et al., 2023). 이 연구에서는 실시간 객체 탐지에 적합한 학습 모델을 파악하고자 YOLO의 다양한 버전(v3, v5, v6, v8, v9, v10) 중 각 버전에서
가장 파라미터 수가 적은 객체 탐지 모델들을 선택하여 예비 학습을 진행하였다. 이미지 2,953장에 대해 Train : Test : Validation=8
: 1 : 1 로 구분하여 데이터 세트 (Dataset)을 구성하였으며, 학습 횟수 (Epochs)는 300회 및 배치 크기 (Batch size)는
16으로 설정하여 학습을 수행하였다. 예비 학습은 YOLO의 다양한 버전별 백본에 따른 속도 비교를 목적으로 수행되었으며, 사용된 이미지들은 오픈
데이터 플랫폼인 Roboflow에서 수집되었다. 해당 데이터 세트의 모든 이미지는 실내⋅외 환경에서 발생한 다양한 화재로 구성되었으며, 이에 따라
학습은 불에 대한 단일클래스로 진행되었다. Fig. 2는 학습된 YOLO 모델 버전에 따른 화재 탐지 속도를 비교한 결과를 나타낸 것이며, 화재 탐지는 동일한 화재 동영상에 대하여 수행하였다. Table 1에 나타낸 것과 같이, 해당 환경에서의 검출 속도 평균값은 모델 v3, v5, v6, v8, v9 및 v10에 대하여 각각 29.5 ms, 9.9
ms, 8.5 ms, 9.3 ms, 20.4 ms, 12.3 ms로 나타났다. GPU 환경에서 v9 및 v10의 검출 속도가 이전 버전들보다 느리게
나타난 것은 기존 연구 결과 (Tariq and Javed, 2025)와도 일치하는 것으로 나타났다. YOLOv6의 검출 속도가 가장 빠른 것으로 나타났지만, YOLOv6은 객체 탐지 기능만 지원하고 있다는 한계가 있기
때문에 이 연구에서는 개별 분할 기능이 존재하는 YOLOv8-seg을 학습에 활용하였다. 여기서, 객체 분할 기능이란 검출된 객체 (Object)의
내부 영역을 분할 마스킹 (Masking) 해주는 컴퓨터 비전 기술이며, 이는 후술할 스테레오 기술에서 거리를 도출할 관심 영역으로 사용된다. YOLOv8-seg
모델은 n, s, m, l 및 x로 모델의 크기(작은 순)에 따라 분류되며, 모든 모델에 대해 같은 개별 분할 이미지 데이터 세트로 동일하게 학습하여
성능을 비교하였다.
Fig. 2 Detection speed comparison of YOLO versions
Table 1 System and software environment
|
Name
|
Version
|
|
GPU
|
NVIDIA GeForce RTX 3060
|
|
CUDA
|
12.6
|
|
Torch
|
2.0.1
|
|
Python
|
3.11.4
|
학습된 모델의 검출 결과는 True positive (TP), False positive (FP), True negative (TN) 및 False
negative (FN)의 네 가지 유형으로 분류할 수 있다. 이들을 조합하여 정밀도 (Precision) 및 재현율 (Recall)을 정의하며 각각
Eqs. (1)과 (2)로 계산된다. 정밀도-재현율 곡선의 내부 면적은 Average precision (AP)로 정의되며, 특정 임곗값에서 학습 모델의 성능을 평가할 수
있는 지표이다. 특히, 임곗값으로 사용한 Intersection of union (IoU)은 Eq. (3)과 같이 실제 정답에 해당되는 영역과 학습된 모델이 예측한 영역의 교집합을 합집합으로 나누어 계산할 수 있다. 해당 값에 따라 mAP50(IoU=0.5)과
mAP50∼95(IoU=0.5∼0.95를 0.05 간격으로 평균)의 값을 산출할 수 있다. 이 연구에서는 모델의 성능을 파악하는 평가지표로 정밀도,
재현율, mAP를 모두 사용하였다.
Table 2는 모델 학습에 사용된 파라미터들을 정리하여 나타내었다. 본 학습에 사용된 이미지 데이터 세트 또한 Roboflow 플랫폼을 통하여 모자이크 증강이
적용된 이미지로 구성하였다. 모자이크 증강기법은 여러 이미지를 무작위로 선택 및 배치하여 하나의 이미지로 생성하는 기법이며, 이는 학습 데이터의 다양성과
복잡도를 높여 과적합의 위험을 줄이는 효과를 나타낸다(Kodors et al., 2024). 또한, 상대적으로 작은 객체에 대해 효과적이고 안정적인 학습 결과를 줄 수 있는 기법으로 알려져 있다(Nisa, 2025). 이 연구에서는 화재 크기의 다양성을 반영하기 위하여 해당 기법이 적용된 이미지들로 데이터 세트를 구축하였으며, 실제 학습에 사용된 예시 이미지를
Fig. 3에 나타내었다.
Fig. 3 Mosaic argumentation example
Table 2 YOLOv8-seg model train parameters
|
Parameters
|
Values
|
|
Epochs
|
300
|
|
Batch size
|
16
|
|
Train images
|
15,386 (80%)
|
|
Validation images
|
1,923 (10%)
|
|
Test images
|
1,923 (10%)
|
|
Total images
|
19,232
|
최종 데이터 세트는 불과 연기를 포함하는 이미지와 유사 색상으로 인한 오탐을 줄이고자 난로 및 소화기 등과 같은 이미지 및 일반 이미지들을 포함하였으며,
전제 이미지 중 불이 포함된 이미지는 약 60% (11,511 장), 연기가 포함된 이미지는 약 50% (9,555 장)에 해당한다. 또한, 아무런
객체가 포함되지 않는 배경에 해당하는 이미지는 약 32% (6,206 장)에 해당한다. Fig. 4는 YOLOv8-seg 모델의 버전별 성능과 검출 속도 비교 결과를 나타낸 것이다. n과 s 버전을 제외한 나머지 3가지 버전(m, l, x)은 mAP50∼95를
제외한 모든 평가지표에서 0.8 이상의 우수한 성능을 보였다. 검출 속도에서는 n, s, m 에 해당하는 3가지 버전이 모두 20 ms 이하인 우수한
검출 속도를 보였다. 따라서, 예측 성능과 검출 속도를 모두 고려하여 YOLOv8m-seg 모델을 최종 모델로 선정하였으며, 이 모델을 활용하여 실시간
화재 탐지 알고리즘을 개발하였다.
Fig. 4 Performance comparison of YOLOv8-seg versions
Fig. 5는 최종 학습 모델의 검증용 데이터 세트에 대한 학습 횟수에 따른 성능 지표를 나타낸 것이다. 또한, 각 클래스에 대한 경계 상자(Bounding
box, B) 및 분할(Mask, M)에 대한 개별 성능을 Table 3에 정리하여 나타내었으며, 마지막 학습 횟수의 모델로 테스트 세트에 대해 정밀도, 재현율, mAP50 및 mAP50∼95이 각각 0.96, 0.89,
0.94 및 0.79로 나타났다. 본 학습 결과를 바탕으로, 데이터 세트에 대한 과적합 여부를 판단하기 위하여 5-fold 교차 검증 기법을 수행하였으며,
각 데이터 세트에 대한 학습 결과를 Table 4에 제시하였다. 결과적으로, 모든 모델은 유사한 성능 평가지표를 나타내었다.
Fig. 5 Performance metrics of trained model
Table 3 YOLOv8m-seg performance on fire and smoke
|
|
Fire (B)
|
Smoke (B)
|
Fire (M)
|
Smoke (M)
|
|
Precision
|
0.95
|
0.96
|
0.96
|
0.97
|
|
Recall
|
0.87
|
0.88
|
0.88
|
0.89
|
|
mAP50
|
0.93
|
0.93
|
0.93
|
0.93
|
|
mAP50~95
|
0.82
|
0.84
|
0.72
|
0.77
|
Table 4 YOLOv8m-seg performance on 5-fold cross validation
|
|
Fold 1
|
Fold 2
|
Fold 3
|
Fold 4
|
Fold 5
|
Mean
|
|
Precision
|
0.96
|
0.92
|
0.93
|
0.93
|
0.94
|
0.94
|
|
Recall
|
0.89
|
0.91
|
0.88
|
0.91
|
0.90
|
0.90
|
|
mAP50
|
0.94
|
0.94
|
0.94
|
0.95
|
0.95
|
0.94
|
|
mAP50~95
|
0.79
|
0.81
|
0.82
|
0.83
|
0.83
|
0.82
|
최종 학습 모델을 기존 선행연구에서 제안된 다양한 모델들의 성능과 비교함으로써 그 유효성을 평가해 볼 수 있을 것이다. Table 5에 나타난 바와 같이, 기존 YOLO 기반의 연구들은 주로 객체 탐지에 초점을 두어 수행되어 왔다. 개별 분할의 경우, 픽셀 단위 평가에서 객체 탐지
모델에 비하여 다소 낮은 성능을 보였으며, 분할에 특화된 U-Net 알고리즘과 비교하였을 때도 성능이 일부 낮게 나타났다. 반면, 2-stage detector의
대표 알고리즘인 R-CNN 계열 모델들과는 유사한 성능을 보였다. 이 연구에서는 속도적 효율성과 실시간 처리 가능성을 고려하여 YOLO 모델을 적용하였으며,
개별 분할 내의 영역을 활용하여 화재의 거리를 추정하고자 YOLO-seg 모델을 활용하였다.
Table 5 Evaluation of trained model with previous studies
2.2 Stereo vision
스테레오 비전이란 두 개의 카메라를 이용하여 카메라와 해당 물체 사이의 거리를 알아내는 컴퓨터 비전 기술이다. Fig. 6에 나타낸 바와 같이 전제 좌표계에서 어떠한 물체 $P$가 $P(x,\: y,\: z)$에 존재할 때, 두 카메라 위치를 원점으로 하는 로컬 좌표계
$P_{l}$, $P_{r}$에 따라 생기는 두 이미지의 $x$축 좌표의 차이를 시차 (disparity, $d$)로 정의한다. 삼각형 닮음비를 통해
$P$까지의 거리 $Z$는 Eq. (4)를 통해 도출할 수 있다. 여기서, $f$는 카메라의 초점거리 (Focal length), $T_{x}$는 두 카메라 간의 거리 (baseline)이다.
거리를 추정할 때, $f$와 $T_{x}$는 카메라의 세팅에 따라 고정된 파라미터인 데 비해, 시차의 값이 주요 변수이기 때문에 이를 정확히 추정하는
스테레오 매칭 방식이 중요하다.
Fig. 6 Basic architecture of stereo vision
스테레오 매칭은 크게 Local method와 Global method로 구분되며, 사용되는 대표적인 비용함수는 Sum of absolute difference
($SAD$)와 Sum of squared difference ($SSD$)가 있으며, 이는 각각 Eqs. (5)와 (6)으로 산출할 수 있다. 여기서, $(u,\: v)$는 이미지 내 픽셀의 좌표이며, $W(u,\: v)$는 $(u,\: v)$를 중심으로 하는
일정 크기의 주변부 픽셀의 강도이다.
시차를 산정할 때, 비용함수가 결과에 미치는 영향보다 매칭 방식이 정확도에 미치는 경향이 큰 것으로 알려져 있다 (Hirschmuller and Daniel, 2007). Local method는 Global method보다 컴퓨터 연산량이 적어 속도가 빠른 장점이 있지만, 정확도가 상대적으로 낮은 단점이 있다 (Denial
and Richard, 2002). Hirschmuller(2008)는 각각의 매칭 방법의 단점을 보완하고자 Semi global matching (SGM) 방법을 제시하였으며, 간단히 요약하면 다음과 같다.
시차의 범위 D를 정한 후, 비용함수를 통해 초기 비용으로 W(이미지 폭) $\times$ H(이미지 높이) $\times$ D 크기의 시차 볼륨을
채운다.
$P_{1}$, $P_{2}$에 해당하는 페널티를 부여하여 재귀적으로 이미지의 각 방향에 대해 경로 비용을 계산한다.
모든 방향에 대한 경로 비용의 합으로 총비용을 계산하고 총비용이 최소가 되는 시차값을 픽셀별로 계산한다.
이 연구에서는 해당 알고리즘과 Block matching (BM) 알고리즘을 결합한 OpenCV의 Semi global block matching
(SGBM) 알고리즘을 활용하였다. BM 알고리즘이란 두 이미지 내에서 블록 형태를 가지는 일정 크기의 영역 (Window)의 유사도를 Eq. (4) 및 Eq. (5)와 같은 비용함수를 활용하여 평가하고, 유사도가 가장 높은 윈도우 간의 시차를 도출하는 알고리즘이다. SGBM은 앞서 설명한 SGM 기법을 기반으로
하되, 픽셀 단위가 아닌 일정 영역 단위로 비용을 계산 및 누적하며, OpenCV에서 구현된 버전은 시차의 범위 및 영역 크기 등을 조정할 수 있는
하이퍼파라미터를 추가로 제공한다(Sety, R.A. et al., 2018). 이 연구에서는 시차의 범위를 1∼64, 영역 크기를 5$\times$5로 설정하였다. 이러한 매칭 알고리즘은 두 이미지의 $y$축을 같게 하는
렉티피게이션 (Rectification)이 선행되어야 하며, 이는 카메라 캘리브레이션 (Camera calibration) 작업이 선행되어야 함을
의미한다. 카메라 캘리브레이션이란 카메라의 내부 (Intrinsic parameters) 및 외부 파라미터 (Extrinsic parameters)의
값을 도출하는 기술이다. 이때, 내부 파라미터는 $x,\: y$축에 대한 초점거리와 중심점 (Principal point)의 위치 및 왜곡 계수
(Distortion parameters) 의미하며, 외부 파라미터는 카메라 간의 기하학적 관계, 즉 위치 (Translate vector)와 방향
(Rotation matrix)를 정의하는 행렬을 의미한다. 이 연구에서는 Raspberry pi camera module v2의 카메라 2개에 대해
8$\times$6, 25 mm의 크기의 체스보드를 활용하여 캘리브레이션을 진행하였으며, 이와 관련된 두 카메라 내부 및 외부 파라미터들을 Table 6에 나타내었다. 최종적으로 거리 정보를 계산하기 위하여 사용된 초점거리는 약 268.02 픽셀이며 두 카메라 간의 거리는 약 59.7 mm 이다.
Table 6 Camera parameters for raspberry pi camera module v2
|
Parameters
|
Values
|
|
Internal parameters
(left camera)
|
$\begin{bmatrix}267.8886&0&166.1825\\0&269.6517&136.8863\\0&0&1\end{bmatrix}$
|
|
Internal parameters
(right camera)
|
$\begin{bmatrix}265.3060&0&169.1018\\0&266.3888&131.9067\\0&0&1\end{bmatrix}$
|
|
Distortion parameters
(left camera)
|
$\begin{bmatrix}0.2599&-0.4140&0.0175&0.0095&0\end{bmatrix}$
|
|
Distortion parameters
(right camera)
|
$\begin{bmatrix}0.2579&-0.3032&0.0088&0.0111&0\end{bmatrix}$
|
|
Rotation matrix
|
$\begin{bmatrix}1.0000&0.0031&0.0045\\-0.0032&0.9999&0.0166\\-0.0044&-0.0166&0.9999\end{bmatrix}$
|
|
Translation vector
|
$\begin{bmatrix}-59.6574&-3.0211&0.6266\end{bmatrix}$
|
실제 카메라와 화재 간의 거리를 측정하고자 동일한 화재 동영상을 이용해 500 mm에서 100 mm 간격으로 1500 mm까지 실험을 진행하였다.
본 실험의 거리 측정 범위는 선행연구 (Wang et al., 2023)를 참고하여 설정하였으며, 다만, 해당 연구에서는 500∼800 mm 구간에서 실험을 수행하였으나, 이 연구에서는 이를 500∼1500 mm 범위로
확장하여 진행하였다. Fig. 7에 나타낸 바와 같이, 최대 평균 상대 오차율(Mean relative error, MRE)은 500 mm 거리에서 48.74%, 최소 오차율은 1,200
mm 거리에서 3.34%, 평균 오차율은 16.55%로 나타났다. 해당 오차는 좌우 카메라의 이미지를 촬영 및 전송하는 과정에서 발생하는 미세한 시간
차이에 의해 나타나는 것이다. 예를 들어, 두 카메라로 촬영된 이미지가 미세한 시간 간격을 가질 때, 불은 동적으로 형상이 변하기 때문에 가까운 거리에서
촬영된 이미지일수록 그렇지 않은 이미지보다 더 큰 픽셀 변화가 발생한다. 따라서, 최대한 동일한 시간대에 촬영된 이미지 쌍을 추출하기 위해 Oriented
FAST and Rotated BRIEF(ORB)알고리즘을 적용하였으며, 알고리즘의 주요사항을 요약하면 다음과 같다(Rublee et al., 2011).
FAST 알고리즘 (Rosten et al., 2006)에 1차 모멘트와 각도를 반영한 Oriented FAST 알고리즘으로 특징점을 추출한다.
Harris 코너 검출기 (Harris and Mike, 1988)를 활용하여 최종 특징점을 결정한다.
BRIEF 알고리즘 (Calonder et al., 2010)을 활용하여 최종 특징점에 대해 방향성을 내포한 디스크립터 (Descriptor)를 추출한다.
Fig. 7 Depth estimation results
이 연구에서는 순차적으로 연속되게 촬영된 이미지 중 왼쪽 및 오른쪽의 이미지 10개를 시차 및 거리를 구하기 위한 하나의 세트로 설정하였다. 이 중
왼쪽의 5번째 이미지와 오른쪽의 1∼10번째 이미지들의 YOLO 검출 결과의 경계 상자를 관심 영역으로 설정하였다. 또한, 왼쪽과 오른쪽의 경계 상자의
합집합이 충분한 매칭 영역을 포함하지 못할 것을 방지하고자 일정 크기의 확대 계수 (Scale factor)를 도입하였다. Fig. 8에 나타낸 바와 같이, 이 연구에서는 1.5를 사용하였으며, 이는 사용자의 판단에 따라 변동될 수 있는 상수이다. 각 경계 상자에 확대 계수를 곱한
상자의 합집합을 최종 관심 영역으로 정의하였다. 이를 통해 구한 관심 영역에서 ORB 알고리즘을 적용하여 각각의 특징점과 특징점의 디스크립터를 추출한
후, 전역 매칭 (Brute force matching)을 적용하여 매칭 점의 y 증분이 가장 적은 이미지 쌍을 선택해 시차값을 도출하였다. 산출된
시차값에서 왼쪽 이미지를 기준으로 YOLO 검출 결과의 개별 분할 영역 내의 픽셀에 해당하는 거리의 평균을 최종 거리로 산출하였다. Fig. 7에 나타낸 바와 같이, 알고리즘 적용 후 모든 구간에서 평균 상대 오차가 10% 이내인 것을 확인하였다. 이는 동적으로 변화하는 환경에서 연속적으로
촬영된 이미지 중 동일한 시간대에 촬영된 이미지 쌍을 찾는 전처리 작업이 필요하다는 것을 의미한다.
Fig. 8 Region of interest box