현재 글은 [12] 번 게시물과 이어지는 글입니다!
[12] 번 글 보러 가기 ▶▶▶ https://developer-thislee.tistory.com/21
저희 팀은 데이터 학습 및 테스트를 통해 제한적이지만 도난 행위 탐지 & 의심행위 탐지를 할 수 있다는 것을 보았습니다.
이번엔 도난 행위를 하는 상황이 포착되면 우분투(Ubuntu) 시스템 상에서 알람을 울리게 하는 법을 다루겠습니다.
저희가 캡스톤 프로젝트를 진행하며 여러 사람들에게 가장 많이 받은 질문 중에 하나가 바로
'다른 의도로 의심받는 행동을 하는 사람을 과연 탐지가 안되게 구별해 낼 수 있느냐' 입니다.
( 핸드폰을 꺼낸다던지, 지갑을 꺼낸다던지 )
저희는 그 문제를 해결해나가기 위해 지금도 여러 방법을 생각하고 있습니다만, 그중에서
1. 의심스러운 사람과 아닌 사람을 구분하는 척도를 만든다.
2. 잠깐의 오탐으로 도둑으로 몰리지 않게 만든다.
이 두 가지를 먼저 해야겠다고 생각했습니다.
그래서 '먼저 만들어 볼 수 있는 부분이 2번이다' 라고 생각하고 개발해 보았습니다.
(1) System Architecture는 아래 사진과 같습니다.
- darknet/src 폴더에 있는 image.c 에서 Theft_count.txt를 호출하여 defualt값이 0인 Theft_detect를 받아오게 됩니다.
- 그리고 영상에서 학습시킨 객체가 탐지될 때마다(의심 및 도난 행위) 값을 추가하게 되고 일정 이상 값이 오르게 되면 알람이 울리게 됩니다.
(2) 이제 코드 수정을 아래 코드와 다음 사진들과 같이 해줍니다. ( darknet/src 폴더의 image.c 를 열어준다 )
- 먼저 코드의 헤더 파일 선언하는 곳에 이 코드를 추가해줍니다.
#include <stdlib.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
- 그다음 아래 사진처럼 코드를 추가해주시면 됩니다.
ㄴ 코드의 내용은 대략 이렇습니다 ㄱ
- 코드 내에서 텍스트 파일을 읽어 문자열로 받아오면, 그것을 정수형으로 변환하여 증가시켜간다.
- 정수형이 일정 숫자 이상이 되면 알람 파일을 실행하는 방식으로 구성되어 있다.
ㄴ 338번째 줄의 if(theft_detect == 15) 에서 15가 다 채워지게 되면,
ㄴ 339번째 줄의 알람 파일(Alarm_clock.ogg)을 실행하는 방식으로 구성되어 있다.
- theft_detect를 15까지밖에 설정하지 않아 너무 금방 잡힐 거라 생각할 수 있다.
- 하지만 학습 결과에 대한 테스트 전용 노트북의 성능 문제로 프레임 저하가 심하게 일어나 15까지만 해도 적당한 시간으로 판단했다.
(3) 아래 영상은 웹캠을 이용해 실시간으로 테스트를 해보는 영상입니다. ( 사용한 웹캠은 Logitech C920 Pro HD 입니다 )
저희들이 계획한 차후 보완 계획은 다음과 같습니다.
1. 모자 및 마스크를 착용한 사람에 대한 위험도를 올리는 기능 추가 ( 기존 코드와 연계시켜 현재 개발 중 )
2. 기존 이미지 탐지와 별개로 이미지를 탐지하는 알고리즘 모색
3. 모자, 마스크를 착용한 사람 이미지 수집 ( 수집 완료 - 이미지 2330장, 270MB )
참고 사이트 : https://osw51.tistory.com/7
'졸업 작품 (Capstone) > Theft Chaser (YOLO)' 카테고리의 다른 글
[12] YOLOv3 데이터(이미지) 학습 결과 (14) | 2019.06.23 |
---|---|
[11] YOLOv3 데이터(이미지) 학습하기 (46) | 2019.06.22 |
[10] Yolo_mark labeling(라벨링) & 경로 설정 (6) | 2019.06.22 |
[9] darknet(YOLOv3) 폴더 및 파일에 대한 간단한 분석 (0) | 2019.06.22 |
[8] 우분투(Ubuntu) 16.04.1 LTS 에 YOLOv3 설치 및 예제 실행 (14) | 2019.06.16 |
댓글