공사장 안전모 착용 여부 식별 시스템

A system for identifying safety helmets at construction sites

이 진 욱,   김 준 식*,   권 민 호*,  김 희 철*

대구대학교 ICT융합학부 인공지능전공

** 이 논문의 초기 버전은 ICFIC 2021 학술대회에서 발표되었음

(Jin-Wook Lee,  Jun-Sik Kim,  Min-ho Kwon, Hiecheol Kim)

요    약

전국 건설현장 추락위험 점검결과에 의하면 위험 요인 지적 현장이 미지적 현장보다 2배가량 많았다. 그 중 근로자 개인 보호구 착용 불량이 점검내용별 지적 현장에서 두 번째로 많았다. 본 논문에서는 근로자 개인 보호구 착용으로 인한 안전 보호에 초점을 둔 공사장 안전모 착용 검증 시스템을 구현하였다. 이 시스템은 카메라를 통해 실시간으로 공사장에서 작업을 진행하는 인부들을 감지하고, YOLOv5모델을 이용해 인부들의 안전모 착용 여부를 식별한다. 아울러 안전모 미착용 시 스피커를 통하여 경고 멘트를 반복 송출하는 기능도 제공한다. 구현된 시스템은 실시간 다중식별 환경에서 공사장 인부의 안전모 착용 여부 식별의 정확도는 약 85%로 기존 제안된 시스템보다 우수한 것으로 나타났다.

Abstract

According to a nationwide inspection of the risk of falling construction sites, the number of sites with warning for danger was twice as many as that of sites without warning. Among them, workers' poor wearing of personal protective gear was the second most common in the cadastral site by inspection content. This paper implements a system that focuses on safety in construction sites by enforcing workers to wear helmet through automatic detection and alarming. The system automatically detects workers working at construction sites in real time through cameras and judge whether workers wear safety helmets. Our implementation is based on a state of the art object detection model, YOLOv5. To make our system more robust in ensuring safety, warning messages are repeatedly transmitted through the speaker when the safety helmet is not worn. Providing the capability multiple detection of safety helmets, the detection accuracy of our system reaches about 85% of the test results,

I. 서    론

大邱大學校 情報通信硏究所

情報通信硏究 第 16輯 第 1號

The Journal of Information & Communication Research

Vol. 16 No. 1 (2021)

한국건설산업연구원이 지난해 9월 발간한 OECD 국가 산재 사망사고 실태 비교ㆍ분석보고서를 보면 2017년 기준 국내 전체 산업 노동자 10만 명당 사고 사망자 수는 3.61로 당시 OECD 35개 회원국 평균 2.43을 훌쩍 웃돌았고, 캐나다(5.84), 터키(5.17ㆍ16년 기준), 칠레(4.04), 룩셈부르크(3.69)에 이어 다섯 번째로 높았다. 단, 건설산업 노동자 10만 명당 사고 사망자(2017) 수는 한국이 OECD 평균 8.29의 세 배 이상인 25.45로 OECD 회원국 중 가장 높았다[1].

Vol. 16 No. 1 (2021)

이처럼 건설산업 노동자들의 안전이 보장되어 있지 않고, 위험한 현장에서 매일 근로를 하는 것이 오래전부터 지적되어 왔다.

따라서 본 논문에서는 위험한 공사장에서 개인 보호구 착용이 불량한 채로 일을 하는 건설산업 노동자들의 안전불감증을 개선함과 동시에 노동 중 사고ㆍ사망률을 낮추는데 이바지하는 공사장 안전모 착용 검증 시스템을 제안한다.

이 논문에서는 최근 급격하게 발전하고 있는 딥러닝 기술을 적용하고 있다[2-5]. 이 논문과 유사한 주제로 딥러닝을 활용한 공사장 안전모판별 연구 사례를 보면, Song, S. J. and Kwak, N. J. (2021)은 YOLOv5를 이용한 안전모 검출을 발표한 바 있으며[2] Park, S. Y. and Yoon, S. H. and Heo, J. (2019)은 영상 데이터를 기반으로 물체 탐지 알고리즘 중 하나인 R-FCN을 Transfer learning 기법을 통해 안전모를 탐지하는 기술을 구현한 바 있다[3]. 하지만 이들은 안전모 착용 탐지에만 목적을 두고 있을 뿐 이를 활용하여 노동자들이 자발적으로 안전모를 쓰게 만들어 궁극적으로 안전모 미착용으로 발생하는 사고 예방에는 효율적으로 사용되지 못한다.

본 논문에서는 객체인식 딥러닝 모델 중 가장 많이 사용되는 YOLOv5[5, 9] 모델을 이용하여 공사장 인부의 안전모 착용 여부를 판단하는 동시에 안전모 미착용 시 착용할 때까지 스피커를 통해 별도의 안내 멘트를 반복 송출하게 만들어 인부들이 자발적으로 안전모를 착용할 수 있도록 유도하는 시스템을 구현한다.

II. 본    론

1. 개발환경

본 논문에서는 공사장에서 바로 사용 가능한 HW 환경이 아닌 SW 구현에 초점을 두었으며, 공사장 전체를 인식할 수 있는 카메라 대신 웹캠, 공사장 전체가 들을 수 있는 스피커 대신 데스크톱에 사용되는 작은 스피커를 이용해 시스템 구현을 진행하였고, Window OS 실행 환경인 데스크톱에서 시스템을 구현하였다. 모델의 학습은 구글 코랩에서 수행하였다. 표 1은 사용된 HW 구성 요소를 보여준다.

표 1. HW 구성

HW 구성		기능
	웹캠	객체 인식
	스피커	음성멘트 출력

또한, 표 2에서는 주요 SW 환경을 보여준다. 필요한 패키지들 전체를 한 번의 pip 명령어로 자동 설치되도록 requirements.txt에 저장되어 있다.

표 2. SW 구성

SW 환경
모델 학습 환경	구글 코랩
적용 딥러닝 모델	YOLOv5s
설치 SW/패키지 요구사항	파이썬 패키지 : requirements.txt 파이 토치 : 1.8.0 버전 이상 파이썬 버전 3.7 CUDA 버전 10.2

2. YOLOv5

YOLOv5는 딥러닝 모델 중 하나이며 대표적인 단일 단계방식의 객체탐지 알고리즘 기술 중 하나이다. 기존의 YOLOv3는 FPS (Frame per seconds)는 높은 반면에 mAP   (mean Average Precision)는 비교적 낮은 모델이었다. 하지만 YOLOv5는 FPS와 mAP측면에서 모두 뛰어난 성능을 발휘한다. 그러므로 본 논문에서 개발한 시스템은 가장 뛰어난 성능인 YOLOv5를 채택하였다. 또한 YOLOv5는 다른 YOLO 모델들과 달리 크기별로YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x 순으로 나뉘어 있다. 그림 1과 같이 s는 다른 모델들보다 정확도는 다소 떨어지지만, 속도가 빠르다는 장점이 있다. s에서 m,l.x순으로 갈수록 정확도는 높아지나 속도는 느려진다[10].

그림 1. YOLOv5 모델별 성능 차이[10]

YOLOv5의 전체 구조는 그림 2와 같이 backbone, PANet 안에 구성되어 있는 head로 구성되어 있다.

그림 2. YOLOv5의 전체 구조[11]

Backbone Network은 이미지로부터 특징 맵을 추출하는 부분이다. Backbone Network의 종류는 4가지로 가장 작은 YOLOv5_s부터 m,l,x까지 포함해서 총 4가지가 있다. 본 논문에서는 YOLOv5s을 사용하였다.

그림 3과 같이 Backbone Network는 4개의 Convolution 층과 3개의 Pooling 층으로 구성되어 있다. Convolution 층은 Convolution + batch_normalization 레이어로 forward 함수를 보면, 이 레이어는 convolution 연산을 한 후에 batch normalization 과정을 거친다. 활성화 함수로는 Hard swish 함수를 사용한다. bottleneck 모듈은 ResNet에서 사용한 Short-cut Connection이 있는 블록이다. 핵심이라고 볼 수 있는 BottleneckCSP 모듈은 4개의 Convolution layer가 생성된다. SSP 모듈은 YOLOv3-SPP에서 사용했던 Spatial Pyramid Pooling Layer이며, spatial bins로 5*5, 9*9, 13*13 피쳐맵을 사용하였다. 최종적으로 5 + 9 + 13 = 27의 크기로 고정된 1차원 형태의 배열을 생성하여, Fully Connected Layer에서 입력으로 들어갈 수 있게 하였다.

그림 3. Backbone Network의 구조[11]

PANet 네트워크의 목표는 학습모델 생성이다. 그림 4와 같이 4개의 Convolution 층과 2개의 up sampling 층으로 구성되어 있으며, up sampling을 통해 Pooling으로 축소된 파일을 해독해서 원본의 데이터를 만든다. Head는 PANet의 구성 중 하나로 Convolution -> Up sampling -> Concat -> Pooling 레이어로 구성되어 있다. Head는 추출된 Feature map을 바탕으로 물체의 위치를 찾는 것이다. Anchor box를 처음에 설정 후 이를 이용하여 총 3가지(8 pixel 정보를 가진 작은 물체, 16 pixel 정보를 가진 중간물체, 32 pixel 정보를 가진 큰 물체)의 scale에서 최종적인 바운딩박스를 생성하고, 각 스케일에서 3개의 앵커박스를 사용하므로 총 9개의 앵커박스가 있다[11].

그림 4. PANet Network의 구조[11]

3. 학습데이터 라벨링

본 논문에서는 각 학습데이터를 라벨링 작업을 수행할 때 nc(number of classes)는 2개로 아래 그림 5와 같이 안전모 착용 시 Pass, 안전모 미착용 시 Fail로 지정하였고 학습 Dataset 개수는 총 10000장을 사용하였다. Dataset 개수를 증가시킬수록 정확도는 더욱 높아질 것이다.

그림 5. 에포크 별 생성된 학습데이터 폴더

4. 데이터셋 학습

본 논문에서는 직접 사진을 크롤링하여, 라벨링 과정을 수행한 후 Google Colab에서 학습을 진행하였으며, 에포크는 100으로 지정하였다. batch-size의 경우에, 그 값이 지나치게 크면 학습에 요구되는 메모리 용량이 시스템에서 제공하는 용량보다 커져 시스템학습 자체를 수행할 수 없는 상황에 빠지게 되며, 반대로 너무 작으면 학습이 매우 느려지고 문제에 직면한다. 그러므로 적절한 batch-size를 설정해야 할 필요가 있으며, 본 구현에서는 batch-size를 64로 설정하였다.

본 논문의 학습 진행 전 다운받은 images와 labels 한 결과들을 그림 6과 같이 지정된 경로에 배치하여야 한다.

그림 6. 학습경로 지정

경로 지정이 완료되었으면 YOLOv5 폴더 안에 주어진 사전학습 모델을 기반으로 커스텀 학습 데이터넷에 대해 모델을 학습하는 프로그램인 train.py를 실행 시킨다. 실행이 완료되면 그림 7과 같이 run/train폴더 안에 exp라는 하위폴더가 생성될 것이다. exp폴더 안에 학습이 완료된 pt파일이 생성될 것이고, 그 외에 각 에포크마다 학습 완료된 데이터가 지정경로에 저장되어 확인할 수 있다.

그림 7. 에포크 별 생성된 학습데이터 폴더

5. Play Sound 라이브러리

본 논문에서는 단순히 안전모를 검출하는 데에만 중점을 두지 않고, 안전모를 착용하지 않은 채 작업을 하면, 스피커를 통해 안전모를 착용해 주세요. 라는 멘트를 반복 송출하도록 시스템을 제안하였다. 원하는 소리를 재생시키기 위하여 Window 용 Python play sound 라이브러리를 사용하였다. 음성 파일은 gtts(Google Text-to-Speech)를 사용하였다. gtts는 구글에서 만든 모듈이며, 이외 네이버에서 제공하는 클로버(Clova) API를 이용하여 하는 방법도 있다. 본 논문에서는 gtts를 이용하여 “안전모를 착용해 주세요”라는 mp3 파일을 생성했고, 이를 인식결과가 Fail일 때 실행하도록 코드를 구현하였다[12].

III. 학습결과

학습은 총 100에포크로 학습되었으며, 학습 date set은 총 10,000장을 이용하여 두 개의 클래스 Pass, Fail로 나누어 안전모 착용 시 Pass, 미착용 시 Fail로 검출될 수 있도록 하였다. 그림 8은 학습결과 즉, 추론 결과 이미지 사례를 보여준다. 최종 결과물은 테스트 결과 평균 85%의 정확도를 보여준다.

그림 8. 실행 결과 사례

IV. 결    론

본 논문에서는 딥러닝 모델 중 하나인 YOLOv5 모델을 이용하여 공사장 인부의 안전모 착용 여부를 판단하는 시스템을 구현하였다. 다른 비슷한 연구는 단순히 안전모 객체만을 검출하는 방식이었지만, 본 논문에서는 검출에 그치지 않고, 실용적으로 안전모 미착용 시 즉각적으로 안전모를 착용을 요구하는 멘트가 실시간으로 송출됨에 따라 궁극적으로 첨단 기술을 통해 민간 공사장ㆍ건축물 안전관리의 효율성을 높이고, 기존의 한정적 인력으로 제한적으로 점검하던 안전관리 시스템을 인공지능이 실시간으로 관리하여 신속하게 사고를 예방할 수 있을 것으로 전망된다. 향후 과제로 본 논문의 시스템에서 더욱 발전시켜 안전모 착용 여부뿐만이 아닌 안전 조끼 그리고 안전화 착용 여부 판단까지 가능케 하여 복합적인 객체탐지로 더욱 발전된 시스템을 구현할 예정이다.

참 고 문 헌

Newspaper web site,

https://www.yna.co.kr/view/AKR20210512080000502.

Y. LeCun, Y. Bengio, and G. Hinton. "Deep learning." Nature 521.7553, pp 436-444, 2015

A. Vaswani, at al., "Attention Is All You Need", Conference on Neural Information Processing Systems (NIPS), 2017

He, Kaiming, et al. "Deep residual learning for image recognition." arXiv preprint arXiv:1512.03385, 2015

S. Ren, at al., “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks”, arXiv:1506.0149, 2016

S. Song and N. Kwak (2021), “Detection Of Safety Helmets Using YOLOv5” Proceedings of the conference by the Korean Contents Association, pp 483-484, Aug. 2021

S. Park, at al., “Image-Based Automatic Detection of Construction Helmets Using R-FCN and Transfer Learning”, Journal of the Korean Society of Civil engineers, 39(3), 399-407, June 2019

J. Redmon, at al., "You Only Look Once: Unified, Real-Time Object Detection", arXiv:1506.02640v5, 2016

yolov5 github web site :

https://github.com/ultralytics/yolov5

YOLOv5 – Introduction web site,

https://bigdata-analyst.tistory.com/194

Overview of YOLOv5 model structure web site,

https://github.com/ultralytics/yolov5/issues/280

Python gtts Module web site,

https://info-lab.tistory.com/234

논문제목 입력

저자이름 입력