2.1 영상기반 지능형 관제시스템
최근 딥러닝 기술 및 하드웨어 인프라 환경 개선 등에 힘입어 시각지능 기술이 폭넓게 활용되고 있다. 기존 관제시스템이 관리자가 일일이 상황을 판단해야
하는 문제점을 갖고 있다면, 지능형 관제시스템은 이상상황이 발생된 상황에 대해 관리자에게 실시간 알려주는 기능을 제공하는 장점을 갖고 있다.
그림 1. 지능형 관제시스템 구성도
Fig. 1. Architecture of Intelligent Monitoring System
지능형 관제시스템은 그림 1과 같이 현장에 설치되는 CCTV와 영상을 수집하는 NVR, 수집한 영상을 분석하는 추론서버, 이벤트 중심의 관제서비스를 제공하는 시각화로 구성된다.
특히, 현장에서 중요시 하는 구축비용, 서비스 확장성 등을 고려할 경우, 각 각의 구성요소간 연계는 표준 프로토콜을 통해 구현되어야 하며, 각 구성요소별
특징은 다음과 같다.
∙ CCTV : 영상 스트리밍은 RTSP, 관리 기능은 Onvif 표준을 통해 NVR과 연계되며, 이벤트 발생시 Onvif 프로토콜을 통해 CCTV에
연결된 경광등을 제어하여 현장에 알람기능을 제공
∙ NVR : CCTV 관리를 수행하며, 실시간으로 수집된 영상을 추론서버와 시각화서버에 전달하고 영상을 저장
∙ 추론서버 : 현장의 스트리밍 영상을 토대로 딥러닝 기반 분석을 수행하고 이상정보 발생시 Rest기반의 json으로 이벤트 발생
∙ 시각화 : 현장의 스트리밍 영상정보와 추론서버의 이벤트 정보를 하나로 표현하여 관리자에게 정보 제공. 현장에 설치된 100대 이상의 영상정보를
웹으로 표출하기 위해 MJPEG 프로토콜 활용
2.2 작업자 안전을 위한 추론기술
작업자를 중심으로 현장에서 발생 될 수 있는 안전사고 유형은 다음과 같이 정리할 수 있다.
∙ 사망 : 추락(60%), 협착(20%), 화재(5%), 고전압(5%), 유독물(5%), 질병(5%)
∙ 부상 : 추락(20%), 추돌(20%), 협착(19%), 감전(16%), 화재(11%), 자상(5%), 교통사고(3%), 기타(6%)
상기와 같은 사고를 사전에 예방하고 이를 실시간 관제를 위해서는 위와 같은 행위가 발생하였을 때 작업자를 인식하고, 행위 동작에 대한 특징점을 찾아
행위별 threshold에 따른 분석 결과를 관리자에게 이벤트를 발생할 수 있어야 하며, 추론서버가 상기 역할을 수행한다.
특징점을 찾는 관점에서 처리될 수 있는 AI 모델은 총 8개로 다음과 같다.
∙ 작업자 인식, 쓰러짐, Re-ID
∙ 안전장구 착용여부(헬멧), 사다리
∙ 주변 물체(사다리, 지게차), 위험구역
위 언급된 다수의 AI 모델을 구현하기 위해서는 대규모의 하드웨어 인프라(NVR, GPU 추론서버, 운영시스템) 등이 필요하다. 특히 시각지능기술
관점에서는 현장에서 필요로 하는 서비스에 대해 각 각 구현하여 운영할 경우, 상당히 많은 GPU 리소스가 필요할 것이다.
이러한 문제점을 해결하기 위해 추론서버는 다수의 영상 및 분석모델을 실시간 처리하기 위해 NVIDIA의 DeepStream엔진을 활용 파이프라인 구조를
통해 병렬 처리를 수행하며, GPU 자원분배 관점에서는 영상에서 객체검출 유무에 따른 Cost Spread 방식을 통해 스트림별 GPU 자원을 할당하였다.
할당된 자원을 토대로, 수신된 이미지는 YOLOv8 모델을 통해 객체검출을 수행한다.
1) DeepStream Master
DeepStream Master는 플랫폼에 등록된 CCTV 및 CCTV의 이벤트 설정정보를 가져와 각 CCTV별 Cost를 계산하고 효율적으로 운영할
수 있도록 DeepStream Slave에게 작업을 배정한다. DeepStream Slave는 GPU 당 하나씩 실행되며, 배정된 CCTV의 분석량은
각 GPU가 균등하게 운영 될 수 있도록 분배된다.
분배 알고리즘은 CCTV의 순서대로 순차균등분배(Default)하는 방식과 CCTV의 이벤트의 업무 가중을 측정하여 Cost를 생성 한 뒤 그 Cost에
따라 순차 분배(Sequential) 방식과 Cost에 따라 균등 분배(Equal spread) 방식으로 3가지가 개발되었다.
CCTV 순차균등분배 방식인 Default 타입은 아래와 같이 작업에 할당된 전체 CCTV를 ID 기준으로 정렬 시킨 다음 시스템에 할당된 GPU의
수량에 따라 균등한 수량을 도출한 뒤 순차적으로 할당하며, GPU에 배정된 Count 가 초과될 때 다음 GPU 에 배정한다.
2) DeepStream Slave
DeepStream Slave는 Master로부터 CCTV 목록 및 CCTV별 이벤트 모델 설정을 수신한 뒤 해당 목록으로 DeepStream을 실행하는
역할을 수행한다.
실행되는 DeepStream은 이벤트 모델별로 실행되며 실행 후 CCTV의 안정화된 연결을 모니터링 하고, 연결이 불가 하거나 불안정한 대상을 목록에서
제거 후 재접속을 수행하여 정상 연결을 체크한다.
그림 2. 추론서버 구성도
Fig. 2. Inference Server Configuration
분석 이미지에서 작업자가 검출되면, 검출 이미지를 가지고 YOLOv8 Pose 알고리즘을 통한 2차 분석을 수행하는 Cascade 방식을 사용함으로서
자원을 최소화하였다. 이를 표현하면 그림 3과 같다.
그림 3. 모델별 추론 프로세스
Fig. 3. Model Specific Inference Process
그림 3에서 제시된 모델중 대표적으로 사다리 추락 실증모델 관련 실증항목은 다음과 같다[2].
∙ 작업자/사다리별 다중 객체에 대한 개별적 객체 인식
∙ 사다리를 이용하는 작업자 인식 모델 개발
객체박스 높이 비교, 사다리/작업자 객체 크기 비교, 객체 IOU (Intersection over Union) 값 활용
∙ 사다리 활용 작업자 높이 분석
사다리를 이용할 경우 작업자 현재 높이 값 제시
∙ 사다리 작업 관련 이벤트 모델 개발
사다리 이용 시 인접 작업자 수(예: 2인1조 작업 확인을 위한 영상 내 사다리 작업자 이외 인원 미감지)
작업자 추락 감지를 위한 사람 객체의 급격한 위치 이동 인식
작업자 추락 위험 감지를 위한 작업자가 사다리를 이용하는 중 사다리 움직임 인식
사다리 쓰러짐 인식
사다리 추락 방지 모델은 객체 검출 결과에서 사람의 객체 정보 및 사다리의 객체 정보를 수신하여 작업중인 사다리 및 사다리 위 작업자와 기타 사다리
작업자를 분류하도록 구성되었으며, 이를 위하여 작업을 위한 사다리, 작업자를 우선 정의하였으며, 이를 가공하여 2인 작업자 위반이나 사다리 추락을
검출한다.
그림 4의 순서도는 사다리 작업에 전반적인 순서를 도식화 한 것으로 사다리 최소 기준 Score 의 객체를 우선 선별하여 각 정의에 맞는 작업자와 사다리를
선별하고 이벤트를 발생하는 순서를 정의하였다.
Deepstremer를 통해 검출결과 및 CCTV의 정보를 실시간으로 수신하며 작업자의 작업 유무 및 작업 지속 유무를 모니터링 하며, 이상 이벤트
발생시 시각화로 전송한다.
그림 4. 사다리 추락방지 모델 프로세스
Fig. 4. Ladder Fall Prevention Model
∎ 작업 사다리의 정의
사다리는 작업중 사다리, 이동중 사다리, 눕혀서 보관중인 사다리로 구분하여 정의한다. 사다리는 최근 20 Frame 간 연속적으로 탐지되며 이동이
없는 대상을 작업 중 사다리로 확인한다.
이때 사다리의 가로와 세로의 비율 중 세로의 비율이 가로의 비율보다 크며 비율이 특정값을 충족할 때 작업을 위해 펼쳐진 사다리로 인식한다.
아래 그림 5의 순서도는 최초 데이터를 가져와서 20 Frame 의 스택을 저장하고 작업중인 사다리를 판별하여 별도 관리하고, 별도 관리중인 작업 사다리 중 더
이상 검출이 되지 않는 등 작업중으로 판단하기 힘든 작업 사다리를 관리 목록에서 배제하고 작업자 정의로 연결된다.
그림 5. 작업 사다리 정의 절차
Fig. 5. Task Ladder Definition Procedure
∎ 사다리 작업자 정의
사다리 작업자는 작업용 사다리로 분류된 사다리 객체와 중첩되는 사람 객체를 기준으로 판단을 수행한다. 최근 20 Frame 간 사다리의 영역과 중첩되는지
여부를 확인하며, 이때 사람의 이동간격이 사다리를 가로지를 경우를 배제하여 작업자를 선정한다.
그림 6의 순서도는 위에 서술한 내용을 순서도로 표현한 것이며, CCTV별 사다리와 작업자를 유지하며, 객체의 큰 변화가 발생하는지 여부를 모니터링한다.
이때 객체의 변화가 발생되면 사다리 추락 또는 사다리 작업 룰 위반을 검출하는 작업으로 연결된다.
그림 6. 사다리 작업자 정의 절차
Fig. 6. Ladder Worker Definition Procedure
∎ 사다리 추락 및 정책 위반
2인 이상 작업자, 사다리를 지탱해줄 보조인원이 포함된 여부를 확인하기 위하여 사다리의 탑승 작업자 유무를 우선 확인한다. 사다리 탑승 작업자가 있을
경우, 추가 작업자가 사다리 영역 내 있는지 여부를 확인하고 없을 경우, 사다리 안전 작업 경고 이벤트를 생성한다.
또한 안전작업 여부와 상관없이 사다리 작업자 중 탑승 작업자로 분류된 대상의 이동이 최근 20 Frame 내에 급격하게 일어나는지 여부를 확인하고,
급격히 일어날 경우 그 방향이 하단 또는 대각선 하단으로 이어질 경우 추락 이벤트를 생성한다.
∎ 이벤트 전송
안전작업 위반 이벤트와 추락 이벤트는 발생시 시각화로 전송된다. 위 사항이 동시 발생할 경우 추락 이벤트로 통합되어 전송된다. 그림 7에서와 같이 시각화 화면은 실시간 이벤트 콘솔에서 확인된다.
그림 7. 실시간 이벤트 알람
Fig. 7. Real-time Event Alarm
2.3 현장실증 및 결과
앞서 제시한 지능형 작업자 안전관제 시스템을 토대로 다수의 CCTV를 대상으로 현장에서 발생할 수 있는 다양한 사고사례를 AI 모델을 통해 확인할
수 있는지를 확인하기 위해 발전소 실 환경에 관련 시스템을 구축하고 현장검증을 진행하였다.
우선 개발된 모델의 성능평가를 위해 학습데이터를 활용 전체 클래스에 대해 Precision, Recall, Accuracy, F1 Score, mAP
측정하였으며, 결과는 표 1과 같다.
표 1 추론모델 학습결과
Table 1 Analysis Result of Inference Model
구분
|
Recall
|
Precision
|
Accuracy
|
F1 Score
|
mAP
|
학습결과
|
92.03
|
96.03
|
95.15
|
93.99
|
92.14
|
학습결과는 90% 이상의 정확도로 객체를 검출할 수 있음을 확인하였으며, 이를 토대로 각 클래스별 Confusion Matrix를 계산하면 그림 7과 같이 표현 가능하다.
개발된 모델을 활용 인식할 수 있는 대상은 총 7종으로 사람, 불, 연기, 헬멧, 사다리로 구분되며, 특히 화재사고시 화재종류에 따라 발생되는 연기가
상이하여 흰연기, 검은연기, 투명연기로 모델을 구별하여 처리함으로서 좀 더 정확한 현장사고 인식을 할 수 있도록 하였다.
그림 8. 모델별 성능
Fig. 8. Confusion Matrix
현장에서 발생할 수 있는 다양한 사고사례를 효율적으로 처리하기 위해 본 논문에서 제안한 Cascade 방식의 분석방식은 그림 8에서와 같이 1차적으로 작업자를 인식하였다.
작업자가 존재할 경우 Pose 모델을 통해 쓰러짐 등을 판단함으로서 쓰러짐을 판단하기 위해 모든 이미지 프레임에 적용되는 방식 대비 GPU 자원을
효율적으로 활용할 수 있도록 구현하였다.
그림 9. Cascade 방식의 작업자 인식 과정 (좌 : 사람검출, 우 : Pose 검출)
Fig. 9. Cascade Worker Recognition Process (Left : Person Detection, Right: Pose Detection)
이처럼 분석된 결과는 그림 9에서와 같이 시각화 시스템에 다수의 영상과 함께 이벤트를 관제할 수 있게 처리함으로서 작업현장을 직관적으로 인지, 사고 발생시 빠른 대응을 할 수
있는 환경을 제공하였다.
그림 10. 작업자 안전관제 서비스
Fig. 10. Worker Safety Control Service
특히 현장의 100대 CCTV를 대상으로 시각화에 이벤트를 표출하는데 최대 1초의 시간이 소요됨을 확인함으로서 경제적인 시스템을 구축할 수 있는 것을
확인하였다.