개요
- 연계/소속회사 : 한이음 멘토링 사업
- 수행 기간 : 2020.3 ~ 2020.11 (약 9개월 소요)
- 주요 역할 : AI 드론 라즈베리 파이 구성 및 Python 기반의 YOLO Darknet을 통한 인공지능 영상처리 등
- 기술 스택 : Python - YOLO Darknet / Rasberry Pi / Linux OS / 협업툴 - Notion / VCS - Git, Gitlab
- 업무 성과 : 2020년 한이음 멘토링사업 프로젝트의 지원으로 진행된 프로젝트입니다. AI Drone의 자율비행을 통해 산악지형을 비행하고, YOLO 기반의 영상처리를 통해 산불을 미리 감지하고 조난자를 수색하는 DOLO를 제작하였습니다. 1년 간의 프로젝트 결과 한이음 공모전에 입상하였습니다.
프로젝트 설명
한국정보산업연합회에서 주관하는 2020년 한이음 공모전에 출품했던 프로젝트이다.
총 4명의 팀원과 1명의 멘토링 사업 멘토님과 함께 약 9개월 간 진행하여 공모전에서 입선작으로 선정되었다.
작품 소개
1. 기획 의도
- 현재 AI기술과 Drone 기술이 많이 발전 되었으나, 이 두 기술을 활용하여 사회적으로 이용된 경우는 많지 않다.
- 특히 매년 수차례 발생하는 산불이나 조난자 발생의 경우, 소방 인력 투입의 한계가 있어 현재의 Drone 기술과 AI SW를 융합하여 보다 효율적인 방안을 제시할 필요가 있다.
2. 작품 내용
- 산불과 사람의 특징을 학습시킨 AI Drone을 통해 산악지형을 주기적으로 탐색하여 조난자 발생 및 잠재적인 산불 발생을 미연에 방지한다.
- Rasberry Pi와 각종 센서(GPS, Wi-Fi, 카메라 등)를 이용한 Drone을 개발하여 산악지형 상공을 자율적으로 비행하도록 개발한다. (자율주행과 수동비행조작 가능)
- 카메라를 통해 인식된 위험상황을 서버를 통해 구조대와 인근소방서에 알리고 상황을 추적하여 영상을 제공한다.
작품의 개발 배경 및 필요성
1. 발견과 구조가 힘든 비등산로에서 발생하는 조난 사고 사례가 많음.
- 현대인의 취미 중 하나인 등산에서 발생하는 사고의 17%가 조난 사고이다.
- 또한 실족추락에 의한 사고의 경우도 발견 구조가 힘든 지형에서 발생하기 때문에 소방인력만으로 구조하는 데에 한계가 있다.
- 최근 서울시 소방재난본부의 발표에 따르면 산악사고 발생이 가장 많았던 북한산의 경우, 실족추락과 조난사고가 42.1%를 넘는다.
- 구조가 어려운 非등산로에서 등산하다가 조난되는 사례가 매우 빈번하다.
2. 산불 예방은 사전 예방과 즉각적인 발견 및 조치가 중요함.
- 호주에서 2019년 9월부터 무려 6개월 간 지속되었던 최악의 산불 사고의 원인은 기록적인 고온과 가뭄이었음.
- 초기에 진압하지 못하고 일파만파 커져버린 산불은 수개월 동안 한반도의 85% 가량의 면적(19.1.14일 기준)이 소실되었다.
- 산불은 발생 건수에 비해 인명과 재산 피해면적이 크다.
- 1년 간 산불방지에 교육되고 투입되는 인력이 2만 2천여 명이다. (출처 : 산림청 산불통계 연보 2018)
3. 조난자 수색과 잠재적 산불예방 해결에 도움을 줄 4차 산업의 핵심기술인 AI Drone
- IoT 기술의 발전으로 Drone의 자율비행이 가능해졌다.
- 인공지능의 발전으로 Machine-Learning을 통해 이미지, 영상 속의 객체를 분석할 수 있다.
- 이러한 Drone과 AI의 발전은 4차 산업의 핵심으로 주목받고 있다.
- AI Drone을 활용한 조난자 위치 파악 및 잠재적 산불 예방을 통해, 산불 피해액 감소 및 조난자 인명구조 시간 단축에 핵심적 역할을 할 것으로 예상된다.
작품의 특징
1. 국내외 기술 현황
- 에어랑고(Airlango)사의 미스틱은 이미 독자적인 인공지능 ANFA를 준비하여 3D추적, 제스처 인식, 자동 설정 사진 촬영, 자동 설정 비디오 촬영 그리고 사파리 기능이 탑재되어 있다.
- 하지만 산불과 조난자를 탐지하는 기술을 부착한 Drone은 존재하지 않다.
2. 기존 기술 활용 여부 및 차별성
- 기존의 AI Drone은 자동 사진 및 비디오 촬영만 가능했다. DOLO는 이미 많이 개발되어 있는 Deep-Learning 기술인 YOLO 알고리즘을 활용하여 사진과 동영상을 스스로 분석할 수 있다.
- DOLO는 현재 산불과 사람만 인식하도록 학습되어 있으나, 학습 종목을 응용하여 다양한 산업적 용도로 활용이 가능하다.
- Drone의 자율 비행 기술은 기존 개발된 기술을 활용하여, 사전에 지정된 지역을 반복적으로 비행하도록 프로그래밍 되었다.
작품의 내용
1. 작품의 구성도
- Drone의 자율비행 – Rasberry Pi와 Pixhawk를 연결하여 각종 센서를 제어하며, ROS를 통해 지정된 구역을 자율비행한다.
- 산불 감지 – OpenCV를 이용하여 1차적으로 산불을 감지하고, CNN 알고리즘을 이용하여 산불 인식에 정확도를 높인다.
- 조난자 수색 – YOLO 알고리즘을 통해 사전에 지정한 조난위험지역에서 발견되는 사람을 인식한다.
- 실시간 영상전송 및 알림 발생 – 이상상황이 발견 되었을 시, 관리자에게 알리고 실시간 영상을 클라우드 시스템에 전송한다.
2. 작품의 기능 설명
3. 주요 적용 기술
Crawling + Labeling :
- Python Module 중 Selenium을 활용하여, Web 상에서 산불, 사람, 단풍 등의 다양한 Case image를 2,000여장 Crawling 하였다.
- YOLO-mark master 툴을 이용하여 학습시킬 대상을 Labeling한다.
- 본격적인 학습을 하기 전 중요한 데이터 전처리 작업이다.
darknet- YOLOv3 :
- YOLO-mark master를 이용해 처리한 데이터들을 학습시키기 위한 알고리즘이다.
- Github에 올라와 있는 오픈소스를 활용한다.
- Darknet을 실행하고 train 옵션으로 darknet53.com.74 가중치 파일을 베이스로 약 33,000번 학습시킨다.
- CUDA의 cuDNN 라이브러리를 이용하여 GPU를 활용한 더 빠른 학습이 가능하다.
- 실시간으로 스트리밍 되고 있는 영상을 외부 PC 내의 Darknet detector 옵션으로 분석한다.
RaspberryPi Ubuntu Setting + Camera 연결 + streaming :
- Rasberry Pi 내에 Ubutu mate 16.04 OS를 설치 후, apt-get 버전관리 시스템을 이용하여
- raspberry용 camera를 연결한다.
- mjpg streaming을 이용하여 Rasberry Pi 카메라를 Web으로 Streaming 한다.
Drone 제작 : Raspberry pi와 pixhawk을 장착한 F450 QuadCopter drone 제작
- Pixhawk보드에 PX4 flight stack APP을 설치하여 QuadCopter 자체의 low-level control을 담당하고, Raspberry Pi에 ROS와 Ubuntu를 설치하여 Drone 제어와 영상처리를 한다.
- Pixhawk와 Raspberry Pi는 mavros를 통해서 통신하며, Raspberry Pi에서 position이나 traject ory 등의 명령을 PX4 펌웨어에 전송하여 두 module 간 통신이 가능하게 한다.
- Pixhawk가 Drone의 모터를 제어하고 Raspberry3는 ROS의 px4와 Mavros로 offboad control 을 하여 Drone의 자율비행과 회피기동 등을 제어한다.
email 보내기 :
- Python의 smtp 라이브러리를 이용하여 E-Mail을 관리자에게 보냄.
작품 결과물
작품 개발 환경
작품의 기대 효과 및 활용 분야
1. 작품의 기대효과
1) 개인적 측면:
조난 상황 발생 시, 빠르고 정확하게 조치 받을 수 있을 것으로 기대된다. 또한 사람이 직접 발로 뛰며 상황을 분석할 필요 없이, Drone 조작만으로 산불을 예방하고 조난자를 구출할 수 있을 것이다.
2) 사회적 측면:
잠재적인 산불 상황 예방 또는 조난자 수색에 강력한 수사 도구로써 기능할 것으로 기대된다. 인력의 한계를 보완하고 시간 절약 및 경제적 비용 절감할 수 있을 것이다.
3) 개발 측면:
4차 산업의 핵심으로 조명 받는 Drone과 AI를 접목하여 산업의 발전을 이룰 수 있다. Drone과 AI의 사회적, 국가적 기능을 증명할 수 있는 기회가 될 것으로 기대된다.
4) 비즈니스적 측면:
특정 기업이 Drone을 활용해 공공의 이익에 힘쓰고 있다는 좋은 이미지를 활용해 자연스럽게 브랜드 이미지를 도움을 줄 것이다. 더 나아가 사람들의 자발적인 도네이션을 받기도 하고, 스폰계약을 받아 스폰서 광고를 통한 재정적 이익을 발생시킬 수 있을 것으로 기대된다.
5) 군사안보적 측면:
AI Drone을 군사용으로 응용한다면, 감시가 소홀한 울타리 외 철책 주변 산악지형을 반복적으로 탐사하면서 더욱 면밀한 감시체계를 구축할 수 있을 것이다.
2. 작품의 활용분야
- YOLO 알고리즘을 활용한 조난자 수색을 통해 AI Drone의 사회적 활용
- 소방청과 협력하여 AI Drone을 활용한 산악지형의 잠재적 산불의 예방에 활용
- 부가적으로 Drone의 시각적 효과를 이용해 브랜드 가치를 만들고, 사회적 기업활동이나 인접 사업에 대한 홍보까지 발전 가능
- Drone이 목표물을 인식하고 스스로 분석할 수 있게 된다면 조난자 수색 및 산불 감지 목적으로 쓰이는 Drone을 감시, 관리 등의 방범용, 순찰용 등 다양한 사회적 분야로 활용 가능. - 실외 재해 현장에서만 활용하던 소형 Drone을 화재 건물과 같은 실내 현장에도 투입
- 최종적으로는 지속적인 감시를 통하여 위험 요소를 사전에 파악하여 선제적인 대응
프로젝트 난관 및 해결 과정
1. 프로젝트 관리 측면
1) COVID-19 이슈
코로나 문제로 인하여 모임은 여러 번 가질 수 없었고, 줌과 팀즈를 이용하여 회의를 진행하였지만 화면 공유만으로는 Rasberry Pi나 Drone 등 하드웨어 부품의 자세한 공유가 진행되지 않아 불편함이 있었다.
해결방안: 오프라인 모임이 부족했기 때문에, 한 번 모일 때 할 일들을 사전에 꼼꼼히 정리하여 문제해결에 효율성을 늘리기 위해 노력하였다.
2) 주제에 대한 기초지식 부족
AI Drone 분야는 팀원 모두에게 생소한 분야였기 때문에, 프로젝트 시작부터 문제해결까지 대부분의 과정에서 생기는 이슈들을 해결하기 어려웠다.
해결방안: 모르는 부분은 최대한 구글링과 멘토님의 조언을 통해 해결하려고 노력하였다. 그럼에도 해결되지 않은 부분은 팀원들의 다양한 의견을 수렴하여 여러 방면으로 시도하여 성공하는 방법을 택하였다. 결론적으로 팀원 모두 생소한 분야였지만, 프로젝트가 진행 될수록 각자의 위치에서 공부가 많이 되었고, 문제 해결에 능숙하게 되었다.
2. 작품 개발 측면
1) 조난자 수색을 어떻게 할 것인지에 대해 의견 충돌의 문제점이 있었다.
해결방안: 팀원들의 의견을 종합하고 멘토님의 조언을 바탕으로, 가장 현실적으로 개발이 가능한 방법을 택하였다.
2) 개발을 진행하는 중에 보유한 장비의 성능에 한계가 있어서 기존의 계획을 다소 수정하게되었고, 개발방향과 개발 우선순위의 변경으로 인해 프로젝트 진행이 지체되었다.
해결방안: 대안 방안을 찾으려고 노력하였고 그때마다 온·오프라인 회의를 통해 해결하였다.
3) H/W 개발에 필요한 부품이 누락되어, 오프라인 미팅 시간에 제대로 된 개발이 진행되지 못하는 경우가 발생했다.
해결방안: 필요한 부품 구매를 인터넷 배송으로 신청하였고, 지체되는 시간을 프로젝트 진행의 중간 점검 시간으로 활용하였다. 또한 이런 일이 일어나지 않도록 다음 오프라인 모임을 가지기 전에 미리 필요한 것들을 확인하게 되었다.
프로젝트를 통해 배우거나 느낀점
- 프로젝트 일정관리의 중요성을 깨닫고, 더욱 체계적인 계획을 세울 수 있게 되었다.
- 팀원 모두의 일정을 맞추기 어렵기 때문에, 정해진 요일을 정기적으로 잡아서 프로젝트에 전념할 수 있도록 하는 것이 효율적이라는 것을 깨달았다.
- Git과 Notion 등과 같은 협업 도구 다루는 법을 새롭게 배웠다.
- 프로젝트 진행을 통해 기획, 설계, 구현, 테스트에 이르는 전반적인 과정을 학습했다.
- Drone의 구동원리를 이해하고 활용할 수 있게 되었다.
- 인공지능 YOLO 알고리즘을 활용하면서 인공지능 분야의 현주소를 체감하고, 더 많은 관심을 가지게 되었다.
- 서버 구현과 기기와 서버 간 통신기능을 학습했다.
- 프로젝트 진행 중 발생하는 문제, 체크해야 할 이슈 및 리스크를 관리하고 해결해나가는 과정을 배웠다.
- 팀원 간의 의견을 조율하면서 팀워크를 새롭게 다졌다.
수상 실적