산업현장에서 작업자의 넘어짐, 지정된 작업자 수, 금지구역 침범을 객체검출을 이용해 낮은 비용으로 산업재해를 모니터링하고 예방을 기대하는 프로젝트입니다.
라즈베리파이를 이용한 영상 송출과 iOS 기기에서 기기 추론을 바탕으로 해당 상황이 발생하게 되면 설정된 관리자의 iOS 기기로 APNs을 이용해 신속하게 알림을 보냅니다.
-
Swift, UIKit
-
Firebase( RealtimeDatabase, Storage, Messaging, GoogleSignIn )
-
Nginx Media Server ( RTMP → Nginx → HLS )
-
Google Colab ( Train, Create Logic, Object detection Testing )
-
HaishinKit ( RTMP → Nginx )
-
CoreML Tools ( PyTorch → CoreML )
-
Roboflow ( Train dataset )
전체 시스템 구성도 | iOS 구성도 |
---|---|
본 프로잭트의 CCTV는 라즈베리파이에서 실시간 영상을 받아와 추론하는 방식과 iOS기기를 활용해 추론하는 방식을 가지고 있습니다.
Python 모델은 서버에서 추론을 하지만, iOS기기는 YOLO모델을 CoreML로 변환하여 기기에서 추론을 합니다.
외부에서도 실시간으로 영상을 확인하기 위해 RTMP 프로토콜로 영상을 Nginx로 송출합니다.
Nginx에서 받아올 HLS 주소와 검출된 상세 내용을 Firebase에 저장합니다.
Google 로그인으로 각 유저별 정보를 나눠 관리가 가능합니다.
다른 iOS기기, 라즈베리파이에서 송출된 영상을 Nginx를 통해 실시간으로 확인이 가능합니다.
구글 로그인 | Live |
---|---|
CCTV로 설치한 iOS기기를 외부에서 손쉽게 최소 작업자 수 감지, 넘어짐 감지 기능을 키고 끌 수 있습니다.
해당 기능으로 일정 작업자 수 이하, 넘어짐이 감지 된다면, App이 종료된 상태에도 신속하게 알림을 전달합니다.
Live -> YOLO | 알림 |
---|---|
본 모델에서 사용하는 사람 수 검출은 Input 데이터로 들어온 영상을 일정 frame으로 나눠 추론을 진행하게 됩니다. 각 frame 별 추론된 Class Label을 각 각 list에 넣고 넣은 리스트 안에 ‘person’의 개수가 사람의 수로 사용됩니다.
넘어짐 감지 | 사람 수 감지 |
---|---|