1. 서 론
선박은 크기가 크고 복잡한 구조로 이루어져 있기 때문에 작업자 간 서로 통신이 되지 않을 시에는 위치를 알아내기 가 쉽지 않아 많은 시간이 소요된다. 기술의 발달로 인해 선 박은 점점 대형화 되어가고 있으며 선원은 점점 줄어들고 있어 사람의 위치를 찾는 시스템이 필요하다. 해양의 사고 에서 안전사고는 충돌, 전복, 화재, 폭발 등 항해관련 사고와 무관하게 사람이 사망, 실종, 부상한 것으로 우리나라 선박 에서만 매해 100여건이 넘게 발생하고 있다(KMST, 2018;Joo et al., 2018). 선박의 건조나 정비 시 작업자에게 빈번하게 발 생하는 쓰러짐은 신체에 손상을 입히게 되고, 기능장애로 인한 정신적인 피해까지 초래하게 된다. 때로는 작업자 혼 자 이동하거나 작업하는 경우가 발생하게 되는데, 이 때 넘 어지거나 쓰러지는 경우 다른 사람에게 알리거나 발견되기 어렵다. 쓰러짐 검출에 관한 연구는 주로 노약자나 장애인 을 위해 이루어지고 있으며, 자이로스코프와 가속도 센서를 신체에 부착하여 신체의 움직이는 방향을 계산한 후 쓰러짐 상태 유무를 판단하는 것이다(Li et al., 2009). 이러한 디바이 스를 이용한 방법은 계속 신체에 부착하고 있어야 하는 단 점이 있으므로 이를 개선하기 위해 영상기반으로 쓰러짐을 검출하는 연구가 이루어지고 있다.
영상기반의 쓰러짐 검출의 대부분은 배경과 사람을 먼저 구분하고 사람의 자세, 움직이는 형태의 변화, 머리의 위치, 실루엣 등으로 판단한다(Solbach and Tsotsos, 2017). RGB 카메 라와 적외선 카메라를 이용하여 쓰러지는 상황에서의 특징 값을 추출한 후 분류기로 분류하는 방법은 지팡이나 물건을 소유하였을 경우나 쓰러지는 유형에 따라 가속도, 거리, 자 세 등이 달라 판별하는 기준치가 달라 검출에 어려움이 있 다(Bian et al., 2015). 또한, 키넥트(Kinect) 센서를 이용하여 머 리의 위치, 몸의 중심, 관절 등을 검출 후 좌표값을 이용하 여 쓰러짐을 판단하였으며, 이는 제한된 공간에서 간단한 시나리오로 검출률을 평가하였다(Mastorakis and Dimitrios, 2014;Mundher and Zhong, 2014). 산업현장에서의 근로자는 작 업환경에 따라 특수한 작업복, 마스크, 장갑 등을 착용하고 다양한 도구를 이용하여 여러 자세로 작업을 하므로 신체의 머리, 어깨, 관절 등의 구분이 어려워 쓰러짐 검출에 어려움 이 발생한다(Lu et al., 2018;Cao et al., 2017).
딥러닝(Deep Learning)의 발전은 다양한 분야에 영향을 미 치고 있으며, 특히 객체 검출 분야에 우수한 성능을 나타내 고 있다(Szegedy et al., 2017). 딥러닝은 검출하고자 하는 객체 의 다양한 이미지를 신경망 학습을 이용해 특징을 추출하여 하나의 클래스로 생성할 수 있는 점을 이용하여, 조선소 작 업자의 모습과 작업 중인 모습을 연출하여 데이터를 획득한 후 신경망 학습을 통해 클래스를 생성하여 쓰러짐을 검출하 였다. 본 논문에서는 딥러닝을 이용하여 쓰러진 선박 작업 자를 검출함으로서 해운산업의 안전 분야에 적용가능한지 확인하고자 한다.
2. 쓰러짐 검출방법
컴퓨터 비전 분야의의 발달로 인하여 안전 분야에 적용하 고자 하는 연구가 이루어지고 있으며, 그 중 영상에서 쓰러 짐을 검출하는 연구가 진행되고 있다(Park and Bae, 2019). 쓰 러짐은 바닥에 누운 상태로서, 이를 검출하기 위해 관절의 위치를 검출한 후 자세를 추정하는 방법이 대부분이다. 하지 만, 이러한 방법은 넘어지는 자세에 따라 판별하는 기준치가 다르며, 특수한 복장을 갖추는 조선소의 작업자들의 관절을 찾는 것은 어려움이 있다. 본 연구에서는 딥러닝을 이용한 객체 검출분야의 기술을 활용하여 쓰러진 선박 작업자를 검 출하고 자 한다. 객체검출에 사용되고 있는 합성곱 신경망 (CNN, Convolution Neural Networks)은 검출률이 계속 향상 되고 있으며, 이미지의 객체를 검출하는 2015년 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회에서 사람보다 정확한 알고리즘이 소개되었다(He et al., 2015). CNN 기반의 객 체 검출방법에는 Faster_RCNN(Regions with CNN), YOLO(You Only Look Once), SSD(Single Shot Detector) 등의 모델이 있으 며 계속 새로운 모델이 개발되고 있다(Ren et al., 2015;Redmon et al., 2016;Liu et al., 2016).
본 실험에서는 복잡한 조선소 환경을 고려하여 겹치는 상 황에서 정확도가 높은 Faster_RCNN과 여러 모듈을 병렬로 연 결한 구조로서 다양한 응용 모델이 많은 인셉션(Inception)-V2 를 적용하였다(Szegedy et al., 2016).
본 실험에서는 복잡한 조선소 환경을 고려하여 속도는 느리지만 겹치는 상황에서 정확도가 높은 Faster_RCNN과 GoogLeNet을 적용하였다(Szegedy et al., 2016). GoogLeNet은 Fig. 1의 모듈을 쌓아 구성한 신경망으로 크기가 다른 여러 모듈을 병렬로 연결한 구조이다. 또한, 1×1 합성곱을 사용하 여 파라미터(Parameter) 수가 감소하므로, 연산량이 줄어들도 록 하였다.
3. 실 험
3.1 실험환경
모델 학습에서 필요한 데이터를 수집하기 위해, A 조선 소의 야드와 건조중인 선박의 거주구역, 기관실, 갑판 등에 서 쓰러지거나 일하고 있는 모습을 연출하여 이미지를 획 득하였다. 이미지의 획득은 고정되지 않은 핸드폰 카메라를 이용하여 촬영을 하였으며, 별도의 조명은 설치하지 않았 다. 학습환경은 Inter(R) Xeon CPU E5-1620 v4, 3.5 GHz, 16 GB RAM, Windows10 Pro, NVIDIA GeForce RTX2080 8 GB, Tensorflow(GPU)1.13.1, python3.6, CUDA10.1, cudnn7.6.2의 환경 에서 실험을 수행하였다.
3.2 데이터 학습
조선소에서 획득한 이미지는 총 965장으로, 쓰러진 이미 지는 592장이고, 쓰러지지 않은 이미지는 373장이다. 랜덤 모듈을 이용하여 7대 3의 비율로 676장의 학습이미지와 289 장의 테스트 이미지로 나누었다. 학습 데이터의 수를 증가 시키기 위해, 좌우대칭, 크기 변경(0.8, 1.2배), 회전(-5〫, 5〫)을 적용하였다. Table 1은 5가지의 실험분류로서, 이미지 증가방 법에 따른 이미지 수를 나타내고 있다.
학습에 사용된 모델은 COCO 데이터로 사전 학습된 모델인 Faster_rcnn_inception_v2이고, 파라미터는 23M, 클래스는 쓰러 짐(Fallen)과 작업(Working) 2개, 학습률(Learning rate) 2e-4, 가 속도(Momentum) 0.9로 설정하였다. 쓰러짐 영역과 작업 중인 영역을 외각 상자로 추출한 후 159,300번 학습하였으며, 학 습 시간은 평균적으로 약 7시간이 소요되었다.
3.3 검출 성능 평가
학습한 데이터를 기반으로 쓰러진 이미지와 쓰러지지 않 은 이미지로 나누어 검출성능을 평가하였다. Table 2는 검출 성능을 평가하기 위한 혼동행렬로, 실제 쓰러진 이미지에 대해 쓰러짐으로 판별한 경우는 True Positive, 실제 쓰러진 이미지에 대해 쓰러지지 않은 것으로 판별한 경우는 False Negative, 실제 쓰러지지 않은 이미지를 쓰러짐으로 판별한 경우는 False Positive, 실제 쓰러지지 않은 이미지를 쓰러지 지 않은 것으로 판별한 것은 True Negative로 정의하였다.
식(1) - (4)는 각각 정밀도(Precision), 재현율(Recall), 정확도 (Accuracy) 그리고 오차율(Error rate)를 나타내며, 성능을 평가 하기 위해 사용하였다. 쓰러짐 검출을 위한 연산시간은 800 × 640 화소에서 0.109s가 소요되었다.
Table 3-7은 5가지의 학습데이터에 따른 실험 결과를 혼동 행렬로 각각 나타내고 있으며, Table 8은 검출 성능을 나타 내고 있다. 실험_1과 실험_2는 쓰러지지 않은 이미지를 쓰러 진 것으로 판별한 경우가 많아 오차율이 크다. 데이터 수를 증가시킨 실험_3과 실험_4에서 검출성능이 향상되었으며, 좌우반전, 크기변경, 회전을 적용한 실험_5에서는 쓰러지지 않은 이미지를 쓰러진 것으로 판별한 경우가 없어 정밀도가 향상되었으나, 쓰러진 이미지를 검출하지 못한 경우가 있어 재현율이 낮았다.
Fig. 2는 실제 쓰러진 이미지를 쓰러진 이미지로 판별한 경우로 녹색박스는 쓰러짐 영역, 노란색 박스는 쓰러지지 않은 영역을 나타내고 있다. 선박의 배전반실, 거주구역, 기 관실, 메인엔진, 갑판 영역에서 검출된 쓰러진 이미지를 나 타내고 있으며, (d)는 복잡한 파이프가 있는 환경에서도 검 출되었으며, (f)는 쓰러진 작업자의 전체 모습이 아닌 일부분 의 영역도 검출하였다. (g)는 사다리 밑에 쓰러진 작업자를 검출한 것이고, (j)는 두 명의 쓰러짐 검출, (k)와 (l)은 쓰러진 이미지와 쓰러지지 않은 이미지 둘 다 검출되었음을 나타낸 다. Fig. 3은 쓰러진 영역이 아닌 이미지를 쓰러진 것으로 판 별한 경우를 나타내고 있다. (a)는 배관과 전선 등이 쌓여있 는 영역으로 실험_3과 실험_4에서 쓰러짐으로 판별하였다. (b)는 실험_3에서 계단에 오르고 있는 작업자를 쓰러짐으로 판별한 것이고, (c)는 실험_4에서 의자를 쓰러짐으로 판별한 것이다. Fig. 4는 실험_5에서 쓰러진 작업자를 검출하지 못한 것으로 나타낸 것으로, 신체의 일부분만 보이거나 쓰러짐 방향에 따라 검출하지 못하였다.
4. 결 론
본 논문에서는 합성곱 신경망인 Faster_rcnn_inception_v2을 적용하여 조선소에서 발생하는 작업자의 쓰러짐 검출을 이 미지 기반으로 검출하였다. 쓰러진 이미지와 쓰러지지 않은 이미지 데이터를 획득한 후 반전, 크기변경, 회전을 통해 5 가지의 학습데이터로 나누었다. 테스트 이미지로 쓰러진 이 미지와 쓰러지지 않은 이미지를 검출하여 혼동행렬로 분류 한 후 정밀도, 재현율, 정확도 그리고 오차율로 성능을 평가 하였다. 학습 데이터의 수가 증가함에 따라 정밀도는 향상 되었으나, 재현율, 정확도, 그리고 오차율은 비슷하였다. 이 는 본 실험에서 사용한 학습 데이터의 수가 부족한 것으로 판단된다.
기존의 영상기반 쓰러짐 검출은 사람의 신체부위나 관절 등을 검출하여 쓰러짐을 검출하였으나, 조선소에서는 두꺼 운 작업복과 안전장비, 도구 등을 소지하며 작업하고, 복잡 한 배관과 장비가 섞여있어 특정 신체부위를 검출하기가 어 렵다. 그리하여, 본 논문에서는 작업자의 쓰러진 영역 전체 를 추출하여 학습하여 쓰러짐 검출을 한 결과, 검출 가능성 을 확인하였다. 획득한 영상으로만 실험을 진행하였기 때문 에 산업에 적용되는 것은 한계가 있으나, 다양한 데이터를 획득하고 다른 모델에도 적용함으로서 연구의 실효성이 향 상될 수 있도록 하고자 한다.