"3조"의 두 판 사이의 차이

CIVIL capstone
이동: 둘러보기, 검색
303번째 줄: 303번째 줄:
  
 
촬영한 영상은 약 14초로 1초당 30 frame을 갖는 영상이다. 영상이 시작하고 10초 뒤 문끼임 사고가 발생한다.  
 
촬영한 영상은 약 14초로 1초당 30 frame을 갖는 영상이다. 영상이 시작하고 10초 뒤 문끼임 사고가 발생한다.  
 +
 +
[[파일:문끼임영상.PNG]]
 +
 +
 +
1. 다음의 코드를 사용하여 지하철 안전선(아래 사진에서의 흰 선)을 선형함수로 구한다. 앞의 이미지데이터와는 다르게 영상이므로 영상데이터의 가장 처음 프레임을 가져와 구하였다.
 +
 +
[[파일:코딩4.PNG]]
 +
 +
 +
2. 촬영한 영상은 1초당 30프레임으로 변경되어 저장된다. 저장된 이미지 데이터가 많을 경우 시간이 많이 소요되므로 7.5초가 지난 후부터 영상을 load한다. 이 영상을 매트랩에 load시키기 위하여 작성한 코드는 아래와 같다.
 +
 +
[[파일:코딩5.PNG]]
 +
 +
 +
3. 사람을 탐지한 박스의 오른쪽 아래 위치가 과정1에서 구한 선형함수 위에 위치한 상태로 3초이상 유지될 경우 문끼임 사고가 발생한다고 판단한다. 변수 real에는 박스의 위치가 선형함수 위에 있을 때의 frame 번호가 모두 저장되어있다. real에 저장된 마지막 frame번호에서 처음 frame번호를 빼면 선형함수 위에 위치한 총 frame 개수가 된다. 1초당 30frame을 갖는 영상이므로 이 frame 개수가 90개 (=30frame * 3초) 이상일 경우 문끼임 사고가 발생했다고 본다.
 +
 +
(단, 영상에서 문끼임 사고가 발생하지 않았지만 지하철을 타기 위해 뛰어가는 과정에서부터 선형함수를 넘었다고 탐지한다. 따라서 뛰는 시간을 고려하여 3초가 아닌 4초(=120 frame)로 기준을 변경시켰다.)
 +
 +
[[파일:코딩6.PNG]]
 +
 +
[[파일:사람인지.PNG]]
 +
 +
 +
====알림 체계====
 +
 +
 +
문끼임이 발생하지 않았으나 안전선에 가깝게 위치하여 일정시간 이상 머무르는 독특한 케이스가 발생할 수 있다. 따라서 딥러닝 모델이 문끼임 사고를 인식하고 바로 문을 여는 것이 아닌 기관사에게 소리로 알려주는 알림 체계를 추가하였다. 딥러닝 모델이 판단으로 문끼임 사고가 발생한 가능성이 있을 때 기관사에게 소리로 알려주고 기관사가 직접 CCTV를 확인하여 사고 발생 여부를 판단한다. 이는 기관사가 놓칠 수 있는 사고를 잡아줄 수 있으며 소리가 나지 않으면 CCTV를 굳이 확인하지 않아도 되므로 시간을 단축할 수 있게 한다.
 +
 +
[[파일:코딩7.PNG]]
 +
  
  

2022년 6월 7일 (화) 00:07 판

프로젝트 개요

기술개발 과제

딥러닝 기반 지하철 문 끼임 사고 방지 시스템 구축

(Establishment of a deep learning based system preventing subway door jamming accident)

과제 팀명

문열어조

지도교수

문영일 교수님

개발기간

2022년 3월~ 2022년 6월 (총 4개월)

구성원 소개

서울시립대학교 토목공학과 20178600** 전*훈(팀장)

서울시립대학교 토목공학과 20198600** 김*민

서울시립대학교 토목공학과 20178600** 김*운

서울시립대학교 토목공학과 20178600** 김*현

서울시립대학교 토목공학과 20178600** 백*열

서울시립대학교 토목공학과 20178600** 현*호

서론

개발 과제의 개요

개발 과제 요약

개발 과제의 배경

◇ 최근 6년 간 서울 지하철 출입문 끼임 사고는 1560여건, 한 달 평균 23건씩 발생하였다. 출입문에 스크린 도어가 설치되어 있음에도 불구하고 지름 7.5mm 이하 물체의 끼임은 감지하지 못하며, 아래쪽에는 센서가 없어 오래된 지하철의 경우 신발이나 유모차 바퀴가 끼이는 걸 감지하지 못하는 경우도 있다.

◇ 출입문 사고는 전체 지하철 사고의 29.1~38.8%를 차지한다. 또한, 이러한 출입문 사고유형에서 출입문 끼임 사고가 89%로 대부분이다. 무리한 승차로 부상을 당하거나 물건들이 파손되는 사례가 많고 피해보상에서도 출입문 끼임 사고가 39%를 차지한다.

개발 과제의 목표 및 내용

◇ 지하철 CCTV사진과 딥러닝을 활용하여 지하철 탑승객의 모습을 실시간으로 모니터링하고, 물체가 끼었지만 스크린 도어가 열리지 않는 위험한 상황 시에 이를 경고해줄 수 있는 시스템을 개발하고자 하였다.

◇ 이 시스템은 사람들의 비정상적인 거동을 라벨링하여 딥러닝 모델을 개발 및 구축함으로써 지하철 출입문 끼임 사고를 줄이고 만약 사고가 발생하여도 확실하고 신속한 상황 대처를 할 수 있도록 한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

◇ 스크린도어를 제어하는 방식

- ATO 방식: 열차 제어 방식(ATC)와 연동하는 방식으로, 선로에 설치된 사진을 통해 열차의 위치 정 보를 관제 시스템에 전송한 후 시스템을 통해 자동으로 스크린도어를 열거나 닫는 방식이다.

- R/F 방식: 스크린도어와 운전실에 설치된 RF 장치 간의 무선 연결을 통해 스크린 도어를 제어하는 방식이다. ATO 방식과는 달리 수동적인 방식이다.

- 출입문 검지 센서 방식: 출입문 상부에 설치된 열차 검지 센서를 통해 스크린도어를 제어하는 방식으로, 열차의 문이 닫히면 센서가 닫힌 문을 감지하여 스크린 도어가 닫히는 원리다. 현재 대부분의 스크린도어는 ATO방식을 사용하며 수도권 일부 구간에서만 RF방식과 출입문 검지 센서 방식을 사용한다.

State.png


◇ 상하개폐식 스크린도어

-최근 상하개폐식 스크린도어가 문양역, 논산역 등에 시범 설치되고 있다. 이는 출입문이 상하로 열리고 닫히는 방식으로, 소재는 PVC를 입힌 와이어로프 또는 강화 유리 등 다양하게 선택 가능하다. 상하식 스크린도어가 기존 좌우식에 비해 머리 부상을 당할 위험이 클 것이라는 지적도 있지만 실제로 상하식 스크린도어는 머리 부상 예방을 위해 감지 센서를 추가로 설치함으로써 이런 염려를 제거했다. 또한, 상하식은 스크린도어가 몸이 닿기 전에 센서를 통해 열리기 때문에 더 안전하다. 하지만 문양역과 서울지하철의 스크린 오작동 건수를 비교하면 연평균 50건으로 비슷하기 때문에 더 정확한 기술이라고 말하기는 어렵다.

222.png


◇ 스크린도어에 사용되고 있는 센서

-지하철의 스크린도어가 정상적으로 개폐되기 위해서는 센서가 검출 범위 내의 물체를 감지해야 한다. 기존 스크린도어에 사용되고 있는 센서는 ‘포토 센서’와 ‘에어리어 센서’이며 끼임 사고와 같은 안전사고를 예방하기 위하여 보다 정확하게 물체를 감지할 수 있는 ‘레이저 센서’로의 전면 교체가 추진되고 있는 상황이다.

-포토 센서, 에어리어 센서, 레이저 센서의 단점을 보완하면서 레이저 센서의 장점을 포함하는 딥러닝 시스템을 개발하고자 한다. 포토 센서와 에어리어 센서의 경우 검지 폭이 좁다는 점이 가장 취약하다. 스크린도어 주변의 CCTV를 활용하면 넓은 검출 범위를 가질 수 있다. 또한, 딥러닝 시스템은 이미 설치되어있는 승강장 주변의 CCTV 자료를 활용하므로 추가적인 설치와 비용이 필요하지 않다는 장점을 갖는다.


◇ 지능형 CCTV

-현재 서울 지하철 8호선은 지능형 CCTV를 이용한 딥러닝 기반 영상 분석을 통해 에스컬레이터 넘어짐, 교통약자 서비스, 코로나19에 대비한 마스크 미착용자 검색 등 다양한 정보를 활용하여 안전한 지하철 서비스를 제공한다. 또한, 이를 이용하여 승객들의 부정승차를 탐지하고 이에 알맞은 정책 수립을 논의 중에 있다. 출입문 끼임 사고에 관해서도 기존 출입문이나 스크린도어의 문제점을 보완하기 위해 상하개폐식 스크린도어나 레이저 센서 등을 대책으로 내세우고 있지만 현재 딥러닝을 기반으로 지하철 문 끼임 사고를 방지하는 시스템을 구축한 국내와 해외 사례는 아직 존재하지 않는다.

-지능형 CCTV에 대한 수요는 세계적으로 증가하고 있다. 지능형 CCTV는 보안 서비스뿐만 아니라 재난재해 모니터링 서비스, 영유아 모니터링 서비스, 실버케어 서비스 등에 활용될 수 있기 때문이다. 우리나라 정부 역시 지능형 CCTV 산업을 ‘디지털 뉴딜’의 핵심산업으로 선정하고 육성지원 방안을 수립했다. 지방자치단체도 지능형 CCTV를 활용한 재난대응 시스템 구축에 나서는 중이다. 지능형 CCTV의 근간이 될 ETRI의 ‘딥러닝 기반 휴먼 행동 인식기술’이 pilot단계 시작품 성능 단계에 돌입했다. 딥러닝 기반 휴먼 인식 기술은 인공지능과 딥러닝 기능이 융합/확장된 지능형 영상분석 기술이다. 이 기술이 탑재된 지능형 CCTV는 사람의 동작, 자세, 위치와 상호작용하는 물체의 정보를 실시간으로 파악하여 배회, 침입, 싸움, 방화, 쓰러짐, 유기 등의 이상 행동을 감지할 수 있게 된다.

기술 로드맵

<스마트 시티-AI기반의 CCTV 시스템>

중소벤처기업부에서는 중소기업 분야별 전략기술로드맵을 제시하고 있으며, ‘AI 기반의 스마트 CCTV 시스템’을 스마트시티 분야의 핵심기술로 포함한다.

 AI 기반의 스마트 CCTV 시스템은 컴퓨터가 영상을 자동으로 분석해 특정 상황(재난, 범죄 등) 발생 시 자동으로 이를 알려주는 시스템이다. 다중의 CCTV 카메라 동영상에서 사람을 탐지하고, 타겟으로 선정된 사람이 포함된 CCTV 영상을 재인식하고, 재인식된 영상의 시간, 위치 등 메타데이터 정보를 활용하여 타겟의 이동시간 및 경로를 추적한다. 이러한 기술은 통합관제 및 솔루션 기술을 중점으로 기술개발이 추진되었으며, 최근 국민안전을 위한 핵심기술로 국가적 관심이 증가하고 있다.

<인공지능-영상데이터 기반 AI 서비스>

인공지능 분야의 영상데이터 기반 AI 서비스 또한 핵심기술로 분류한다.

 영상에서 객체의 종류, 크기, 방향, 위치 등 공간정보를 실시간으로 수집하여 학습된 지식 정보를 기반으로 딥러닝 기술을 활용하는 AI 영상처리 기술이다. 2022년부터 2024년까지 높은 기술력을 바탕으로 다양한 분야에 적용할 수 있도록 하는 것을 목표로 하며, 영상 처리 기술을 적용한 데이터를 기반으로 범죄나 사고 상황을 분석하여 보안이나 편의 서비스를 제공할 수 있도록 한다.

333.png [중소벤처기업부 – 영상데이터 기반 AI 서비스 기술개발 로드맵]

시장상황에 대한 분석

시장성 분석

- 서울 지역 지하철의 안전시설 보완을 위한 예산은 계속해서 증가하고 있다. 현재 지하철의 낡은 설비를 바꾸고 고치는 비용이 대략 지하철 노선 2개를 신설할 수 있을 정도의 돈이다. 하지만 예산의 서울시 자체 조달은 사실상 불가능한 데다 정부의 지원계획도 없어 서울 지하철의 안전 확보에는 비상이 걸린 상태이다. 본 과제에서는 딥러닝 모델을 활용한 일종의 자동 안전 관리 시스템을 개발한다. 이는 현재 서울시 지하철의 안전관리 시설 설치 비용과 안전사고에 따른 치료비, 보상비 등의 예산을 줄여주어 시장성을 확보 가능할 것으로 예측된다.

444.png


- AI 기반의 스마트 CCTV 시스템 시장 규모는 세계적으로 ’17년 25억 1,000만 달러에서 ’23년 31억 9,000만 달러로 연평균 4.1% 성장할 전망이고, 국내에서는 2017년 1조 2,681억 원에서 2023년 1조 8,274억 원으로 연평균 6.0% 꾸준히 성장할 전망이다.

555.png


사회성 분석

- 지하철 역내 발생사고 중 출입문 끼임 사고 발생률이 가장 높다.

666.png


- 2016년부터 3년간 자료를 보면 출입문 끼임 사고 발생률이 가장 높고 전체 지하철 사고 중 약 48%를 차지한다. 그에 따라 안전감시 시스템을 통해 다양한 위험 요인을 관리하며 신속하게 대처할 수 있는 융합시스템에 대한 업계 수요가 증가하고 있다.


- 최근 들어서 지하철 역 발생사고가 꾸준히 감소하고 있지만 출입문 끼임 사고가 차지하는 비율은 여전히 높은 수치를 나타낸다. 지하철 안전사고 문제의 중요성은 수치적으로도 증명되고 있기 때문에 본 과제에서 개발하는 딥러닝 기술은 사회적으로 필요하다.

개발과제의 기대효과

기술적 기대효과

◇ 출입문 검지 센서는 출입문의 상부에 위치하고 있다. 이 때 센서는 지하철이 정위치 정차하여야 정상적으로 작동한다. 즉, 정위치 정차를 하지 못하였을 경우 승강장 안전문은 승무원이 수동으로 개/폐하여야 한다는 것이다. 따라서 CCTV를 통한 사람과 지하철 사이의 거리, 머무르는 시간에 의해 문 개/폐 여부를 결정하는 딥러닝 모델은 지하철이 정위치에 정차하지 않았을 경우에도 문 끼임 사고를 인식하여 자동으로 문을 열리게 할 것이다. 또한 승무원이 임의로 문을 개/폐하게 될 경우 사각지대에 발생하는 사고들을 놓칠 수 있기 때문에 딥러닝을 통해 승무원의 임의 판단 요소를 제거할 수 있다.

◇ 현재 출입문 검지 센서는 광센서(적외선) 방식으로 사용하고 있다. 적외선 센서는 지하철의 발차에 의해 발생하는 먼지를 인식하기도 하며 센서의 빛을 반사하여 되돌아오는 량의 부족 등으로 인한 감지불량의 한계를 가지고 있다. 하지만 위 연구는 CCTV 사진, 영상 속의 사람 형상을 인식하여 판단하는 것이므로 감지불량의 경우를 줄일 것이다.

◇ 출입문 검지 센서는 최소 3초 (최대 10초) 정도 작동되어 문끼임을 확인한다. 센서가 작동하는 동시에 딥러닝 시스템이 동시에 작동되면서 문끼임을 판단하는데 있어 추가적인 시간이 소요되지 않을 것이다. 또한 센서 작동시간이 3초일 경우 3초 이후에는 장애물 인식을 하지 못해 사고가 발생할 수 있지만, 딥러닝 기술을 활용하였을 경우 작동시간에 대한 제한이 없다.

◇ 출입문 센서가 인식할 수 없는 출입문 하단 부분이나 지름 7.5mm 이하의 물체가 끼었을 때에도 딥러닝 모델이 끼임 사고로 인식하여 문이 자동으로 열리게 할 것이다.

경제적, 사회적 기대 및 파급효과

◇ 상하개폐식 스크린도어의 설치 비용(200m 기준)이 10억8200만원이다. 하지만 모든 지하철 역에는 CCTV가 존재하므로 CCTV 사진을 이용하여 딥러닝 모델링을 하는 것이 추가적인 비용이 들지 않는다. 따라서 전 역의 스크린도어를 상하개폐식으로 교체하는 비용보다 딥러닝을 활용한 방식의 경우 더 경제적으로 안전사고를 대비할 수 있다.

◇ 문 끼임 사고로 발생되는 피해 보상 비용이나 열차의 지연 등으로 생기는 경제적 손실을 줄일 수 있다.

기술개발 일정 및 추진체계

개발 일정

777.png

구성원 및 추진체계

◇ 전다훈, 김태현, 백규열 : AIHUB의 CCTV 영상들을 통해 세 가지 정상적인 경우와 비정상적인 경우의 이미지들을 대량 수집 및 필요 시 편집.

◇ 김혜민, 김지운, 현주호 : 가공된 이미지들을 matlab이나 python 모델들을 활용하여 분석 및 결과 도출. 도출된 결과가 부정확할 시 문제점 분석 및 보완.

◇ 딥러닝을 이용한 데이터들의 결과에 오류가 많을시 plan B : 3D 모델링을 통해 시나리오별로 사람들을 배치해 분석 및 결과 도출. 딥러닝을 이용할 때보다 문제점이 개선되는지 확인.

설계

설계 사양

3조설계.PNG

개념설계안

◇ 학습데이터 수집 방안

정상적인 경우와 문끼임 사고가 발생한 비정상적인 경우로 나눠 수집

정상적인 경우 1.열차가 들어오지 않음 + 대기 중인 상태와 2.열차가 들어옴 + 전원 탑승 상태와 3.열차가 들어옴+일부 미 탑승+일부 대기 중인 상태로 분류하여 수집

개념설계안1.PNG

비정상적인경우 열차가 들어옴 + 문틈에 낀 경우 수집. 실제 문끼임 사고가 발생한 사진이 부족할 시 아래와 같은 방법을 사용하여 데이터 증대 후 학습 데이터로 활용

(1)지하철과 사람의 모습을 합성

(2)현장과 유사한 실험 데이터 구축

- 지하철 출입문과 유사하며 접근성이 좋은 건설공학관의 자동문에서 실험을 진행

- CCTV 영상은 개인정보보호법으로 인하여 현실적으로 구하는 데 한계가 있다. 따라서 위와 같은 방법을 사용하여 영상자료를 확보한다. → 사진 데이터뿐만 아니라 영상 데이터까지 얻을 수 있다.


개념설계안2.PNG

◇ 딥러닝 적용 방안

본 과제에서는 지하철에서 사람들의 문 끼임을 인지 및 경고할 수 있는 모니터링 시스템을 개발하기 위해 지하철의 이동식 CCTV을 이용하여 사진 및 영상을 수집하여 딥러닝 인공지능 기술을 적용시키고자 한다. 대표적인 딥러닝 모델에는 Faster R-CNN, Mask R-CNN 등이 있다. 이 중에서 Faster R-CNN에 FPN을 추가하여 발전시킨 Mask R-CNN을 사용할 계획이다. 여기서 FPN이란, 마지막 layer의 feature map에서 점점 이전의 중간 feature map들을 더하면서 이전 정보까지 유지할 수 있도록 하는 단계이다.


<Mask R-CNN>


Mask R-CNN을 간략하게 요약한다면, Faster R-CNN에서 탐지한 각각의 box에 mask를 씌워주는 모델이라고 생각할 수 있다. Mask R-CNN이 물체를 탐지하고 물체의 영역을 결정하는 과정은 다소 복잡한 과정으로 이루어지며 이를 크게 3단계로 분류할 수 있다. 먼저, 첫 번째 단계에서 RPN을 사용하여 이미지 내 물체의 위치를 탐지한다. 두 번째 단계에서 RoI Align Layer는 RPN으로 얻은 Region of Interest (RoI), 즉 탐지된 물체의 위치에서 특징 맵(Feature map)을 추출하여 classification layer와 bounding box-regression layer에 입력한다. 마지막으로 세 번째 단계에서, classification layer 및 bounding box-regression layer와 평행하게 배치된 Mask Branch를 통해 물체의 픽셀 단위 영역을 추출한다.


1) <Mask R-CNN 원리>

Mask c rnn 원리.PNG


1. 800~1024 사이즈로 이미지를 resize 해준다. 2. Backbone network(ResNet)의 input으로 들어가기 위해 padding 과정을 거쳐 1024 x 1024의 input size로 맞춰준다. 3. ResNet을 통해 각 layer에서 feature map (C1, C2, C3, C4, C5)를 생성한다. 4. FPN을 통해 이전에 생성된 feature map에서 P2, P3, P4, P5, P6 feature map을 생성한다. 5. 최종 생성된 feature map에 각각 RPN을 적용하여 classification, bbox regression output값을 도출한다. 6. output으로 얻은 bbox regression값을 원래 이미지로 projection시켜서 anchor box를 생성한다. 7. Non-max-suppression을 통해 생성된 anchor box 중 score가 가장 높은 anchor box를 제외하고 모두 삭제한다. 8. 각각 크기가 서로 다른 anchor box들을 RoI align을 통해 size를 맞춰준다. 9. Fast R-CNN에서의 classification, bbox regression branch와 더불어 mask branch에 anchor box값을 통과시킨다.


◇ 알림 체계

앞서 CCTV로부터 얻은 사진데이터를 딥러닝 모델에 훈련시켜 문끼임 사고 방지 여부를 인지하는 과정을 설명하였다. 만약 탐지 결과 문끼임 사고가 발생한 경우라면 기관사에게 경고 알람을 할 수 있는 시스템을 구현하고자 한다. 구현 방법은 문자, 메일, 음성 알람 등 다양하지만 지하철 지연을 고려하여 ‘음성 알람’으로 개발하려고 한다. 이를 통해 음성 알람을 받은 기관사는 사고 현장을 재확인함으로써 개폐여부를 결정한다.

이론적 계산 및 시뮬레이션

상세설계 내용

이미지 데이터 수집 및 Mask-RCNN

◇ 사람을 구분해내는 Mask-RCNN 모델


사람의 위치가 지하철과 가까운 곳에서 3초 이상 유지하는 경우를 문끼임 사고 발생 가능성이 있다고 판단하기로 한다. 이러한 문끼임 사고를 인식하는 딥러닝 모델을 개발하기 위해서는 가장 먼저 사람임을 판단하는 모델이 필요하다. 사람을 구분해내는 모델은 상용화 되어있을 정도로 많이 쓰이고 있다. 그중 matlab에 내장된 자율주행을 위‘차’와 ‘사람’을 구분해내는 Mask-RCNN 모델을 활용하였다. (이 모델은 이미 일상 사진을 통해 훈련이 끝난 모델로써 수집한 데이터를 넣어 실행시키는 과정을 수행하였다.) 다양한 상황에서 사람을 구분해낼 수 있는 지 확인하기 위해 600장 가량의 이미지 데이터를 수집하였다.

R-cnn코드.PNG

모델을 실행하면 사람과 차를 구분해내고 인식한 부분에 사각형 박스가 형성되고 이 박스의 왼쪽 모서리 위치가 boxes에 저장된다. 본 과제의 목표는 자동차를 구분해낼 필요는 없으므로 차를 인식한 부분의 데이터는 삭제되도록 추가 코딩하였다.


◇ 이미지 데이터 선별


수집한 데이터를 모델에 실행시켜 본 결과 플랫폼에 사람들이 가득 차 겹쳐져 있는 사진은 모든 사람을 구분해내지 못하는 등의 탐지 오류가 증가한다. 하지만 문끼임 사고가 발생했을 때에는 대부분의 사람들이 이미 지하철에 탄 상황이므로 문끼임 사고가 발생하였을 때 플랫폼에 사람이 많은 경우는 극히 드물다. 따라서 정확도를 높이기 위해 스크린도어 앞이 사람으로 혼잡한 사진은 제외하였다.

적용한 딥러닝 모델이 다음의 사진과 같이 높은 정확도를 보였기 때문에 이 딥러닝 모델을 사용하기로 하였다.

R-cnn적용.PNG


이미지 데이터 구축

실제로 문끼임 사고를 인식할 때는 지하철에 이미 설치되어있는 CCTV의 영상 데이터를 활용한다. 하지만 학습 데이터를 구축하기 위한 CCTV 영상과 사진은 개인정보보호법으로 인하여 현실적으로 여러 장을 구하는 데 한계가 있어, 프로그램의 정확도를 높이기 위하여 이미지를 합성하는 방법으로 수정하였다. 합성을 위한 배경 사진은 AiHub에서 무료로 제공하는 지하철 플랫폼 내 CCTV 사진을 활용하였고 합성을 통한 다량의 학습 이미지 만드는 것을 목표로 하였다.

Cctv사진.PNG

실제 지하철 플랫폼의 CCTV에서 얻은 사진에 사람을 합성하여 문끼임 사고가 발생한 경우와 사고가 발생하지 않은 정상적인 상태의 데이터를 구축하였다. 합성에 쓰이는 사람 사진은 조원들이 직접 사고가 발생한 경우와 정상적인 경우의 모습을 연기하여 촬영하였다.

문끼임사진.PNG

R-CNN은 각 픽셀이 사람인지에 대한 확률을 제공한다. 이 확률이 사용자가 지정하는 임계값을 넘을 때만 해당 피사체를 사람으로 인식하며 여기서 임계값은 Threshold를 의미한다. 만약 Threshold 값이 너무 크다면 사람임에도 사람이라고 구분해내지 못할 수 있고 Threshold 값이 너무 작다면 사람이 아닌 것도 사람으로 판별할 수 있다.이 값을 변경해가며 반복 수행을 통해 최적화 값을 결정했다.


1. Threshold = 0.75 : 한 사람을 여러 명으로 인식하는 오류가 많이 발생하였다. 2. Threshold = 0.99 : 사람임에도 사람이라고 판별하지 못하였다. 3. Threshold = 0.95 : 넘어진 모습 등 딥러닝 모델에 훈련되지 않은 모습의 사람은 판별하지 못하였지만 일반적인 사람을 하나의 객체로 판단하였다.

따라서 본 과제에서는 Threshold = 0.95를 사용하였다.


====문끼임 사고인지 시스템 개발 (사진 : 거리)


◇ 사람의 위치에 의한 사고인지 Mechanism

문끼임 사고가 발생했다고 인식하기 위해서 사람의 발과 안전선의 위치를 비교한다.


1. 다음의 코드를 사용하여 이미지 데이터를 하나의 xy좌표로 보고 지하철 안전선을 선형함수로 구한다.


선형함수.PNG

선형함수 그래프.PNG


2. boxes의 오른쪽, 아래 모서리 좌표를 구한다.

(boxes에 [왼쪽 모서리 X값, 왼쪽 모서리 Y값, BOX의 폭, BOX의 높이] 가 저장되어있다.

사람의 오른쪽 발이 노란 안전선을 넘어있는 경우를 문끼임 사고가 발생한 것으로 보기로 한다.

오른쪽, 아래 모서리의 X값은 왼쪽 모서리 X값에 BOX의 폭을 더하고 Y값은 왼쪽 모서리 Y값에 BOX의 높이를 더해서 계산한다.)

코딩1.PNG

3. 과정2에서 구한 발 끝의 위치가 과정1에서 구한 선형함수 위에 위치할 경우 문끼임 사고가 발생했다고 판단한다.

코딩2.PNG


◇ 넘어진 사람이 발생한 사고 인지 Mechanism


앞서 언급한 바와 같이 Threshold=0.95일 경우 발이나 신발이 끼어 넘어진 사람을 판별해내지 못하였다. 사용 중인 이 모델이 주로 일상적인 사람을 대상으로 훈련되었고 아래 사진과 같이 역동적이고 일반적이지 않은 움직임에 대한 데이터는 훈련되어 있지 않기 때문이다. 이 문제는 추후 전이학습을 통해 넘어진 모습과 같이 다양한 자세의 이미지 데이터를 훈련시켜 보완할 예정이다.

만약 Threshold=0.75로 한다면 넘어진 사람의 상체까지는 인식을 성공하였으며 bboxes의 모양을 보면 정상적인 사람과 달리 가로의 길이가 세로의 길이보다 긴 것을 확인 할 수 있었다. 따라서 넘어진 사람의 경우 bboxes의 가로와 세로 길이의 비율을 비교하여 문끼임 사고를 인식하는 코드를 따로 작성해보았다. 이 코드는 전이학습 이후 Threshold=0.95에서 사용될 것이다.

코딩3.PNG


위의 두 기준으로 문끼임 사고를 판단하고 사고가 발생하였을 때 “'Warning: 문 끼임 발생 Type 1: ( ) '번 사진)”이라는 경고 문구가 뜨도록 하였다. 또한 어떤 사진을 문끼임 사고가 발생했는지 인지하기 위해 시스템이 판단한 사고 사진 번호를 따로 저장해두었다. 이 번호는 후의 f1score에 사용될 예정이다.


문끼임 사고인지 시스템 개발 (영상 : 거리 + 시간)

◇ 문끼임 사고를 인식하는 두 가지 기준을 거리와 시간으로 지정하였다. 하지만 데이터가 이미지라는 한계로 인해 시간에 대한 조건은 확인하지 못하였다. 따라서 지하철 플랫폼과 비슷한 건설공학관의 출입구에서 상황을 연출하여 촬영하였다. 촬영한 영상은 위의 과정을 반복하여 적용시켜보았다.

촬영한 영상은 약 14초로 1초당 30 frame을 갖는 영상이다. 영상이 시작하고 10초 뒤 문끼임 사고가 발생한다.

문끼임영상.PNG


1. 다음의 코드를 사용하여 지하철 안전선(아래 사진에서의 흰 선)을 선형함수로 구한다. 앞의 이미지데이터와는 다르게 영상이므로 영상데이터의 가장 처음 프레임을 가져와 구하였다.

코딩4.PNG


2. 촬영한 영상은 1초당 30프레임으로 변경되어 저장된다. 저장된 이미지 데이터가 많을 경우 시간이 많이 소요되므로 7.5초가 지난 후부터 영상을 load한다. 이 영상을 매트랩에 load시키기 위하여 작성한 코드는 아래와 같다.

코딩5.PNG


3. 사람을 탐지한 박스의 오른쪽 아래 위치가 과정1에서 구한 선형함수 위에 위치한 상태로 3초이상 유지될 경우 문끼임 사고가 발생한다고 판단한다. 변수 real에는 박스의 위치가 선형함수 위에 있을 때의 frame 번호가 모두 저장되어있다. real에 저장된 마지막 frame번호에서 처음 frame번호를 빼면 선형함수 위에 위치한 총 frame 개수가 된다. 1초당 30frame을 갖는 영상이므로 이 frame 개수가 90개 (=30frame * 3초) 이상일 경우 문끼임 사고가 발생했다고 본다.

(단, 영상에서 문끼임 사고가 발생하지 않았지만 지하철을 타기 위해 뛰어가는 과정에서부터 선형함수를 넘었다고 탐지한다. 따라서 뛰는 시간을 고려하여 3초가 아닌 4초(=120 frame)로 기준을 변경시켰다.)

코딩6.PNG

사람인지.PNG


알림 체계

문끼임이 발생하지 않았으나 안전선에 가깝게 위치하여 일정시간 이상 머무르는 독특한 케이스가 발생할 수 있다. 따라서 딥러닝 모델이 문끼임 사고를 인식하고 바로 문을 여는 것이 아닌 기관사에게 소리로 알려주는 알림 체계를 추가하였다. 딥러닝 모델이 판단으로 문끼임 사고가 발생한 가능성이 있을 때 기관사에게 소리로 알려주고 기관사가 직접 CCTV를 확인하여 사고 발생 여부를 판단한다. 이는 기관사가 놓칠 수 있는 사고를 잡아줄 수 있으며 소리가 나지 않으면 CCTV를 굳이 확인하지 않아도 되므로 시간을 단축할 수 있게 한다.

코딩7.PNG




결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

888.png

포스터

슬라이드1.JPG


완료작품의 평가 및 향후계획

◇본 과제는 지하철 승강장에 설치된 CCTV 사진 및 영상 데이터를 딥러닝 기술에 도입하여 이상거동을 하는 사람을 인지하여 문끼임사고를 탐지하는 시스템을 구축하고자 하는 목표를 가지고 있다. 이를 효과적으로 달성하기 위해 약 문끼임 사고가 발생한 모습의 400여장의 사진을 합성하였다. 결과적으로 문끼임 사고를 탐지하고 기관사에게 알려주는 기능을 포함한 모델을 개발하였고 f1score를 계산해 본 결과 0.96이라는 높은 정확도를 갖고있음을 확인하였다.

◇본 과제에서 사람을 탐지하기 위해 사용한 모델은 자율주행을 위해 이미 개발되어져있는‘차’와 ‘사람’을 구분해내는 Mask R-CNN 모델이다. 이 모델은 이미 일상 사진을 통해 데이터 훈련이 끝난 모델이지만 넘어진 사람과 같이 이상행동을 하고 있는 사람을 잘 판별해내지 못한다. 이로 인해 발생하는 탐지 오류를 줄일 수 있도록 전이학습을 이용하여 현재 사용하고 있는 Mask R-CNN 모델에 넘어진 모습 등의 독특한 이미지 데이터도 훈련시킬 예정이다. 추후에 전이 학습을 완료한 Mask R-CNN을 이용하여 개발한 시스템의 정확도를 더 높일 수 있을 것으로 보인다.

10.png