1 of 34

내 집 앞의 당신 누구세요..?

이미지 학습을 이용해 낯선 사람을 알아채는 CCTV 어플

캡스톤디자인B_중간발표_알알이_15조

1771012 김수영

1772131 김수연

1771046 이혜진

[ ]

2 of 34

목차

01. 개발 필요성

03. 기존 서비스와의 차별점

04. 대표 기능

05. 시스템 구조도

06. 딥러닝 모델

02. 작품 소개

07. 기대 효과

3 of 34

01 개발 필요성

3

여성 노린 주거침입 범죄

지난 5년간 1611건

매년 증가하는 주거침입 성범죄

1인 가구의 불안 증가

4 of 34

02 작품 소개

4

AI CCTV

위험한 상황에서 실시간으로 낯선 사람을 감지하여 알리고 도움을 요청하는 서비스

이미지 학습을 통해 사용자의 지인과 낯선 사람 구분

+

실시간 영상 / 녹화 영상 시청 기능

+

SOS 버튼으로 도움 요청 기능

+

녹화 영상 / 추가 사진으로 추가 학습

5 of 34

5

녹화 대상

개인 CCTV

공동 CCTV

서버 관리

아기 / 반려동물 중심의 녹화

집 내부의 상황 촬영

녹화 사각지대 거주지 존재

녹화된 모든 영상 저장

03 기존 서비스와의 차별점

방문자 중심의 녹화

거주지 외부 상황 촬영

개인 CCTV

얼굴 녹화 영상만 저장

6 of 34

04 대표 기능

6

실시간 모니터링

녹화 화면 시청

등록 인물 관리

긴급 연락망 관리

긴급 메시지 수정

도움 요청

방문자 관리

7 of 34

04 대표 기능

7

1) 실시간 모니터링

녹화되고 있는 영상

실시간으로 시청

8 of 34

04 대표 기능

8

2) 녹화 영상 시청

녹화한 영상 시청

등장한 사람 이름 함께 제시

9 of 34

04 대표 기능

9

3) 등록 인물 관리

낯선 사람이 아닌

아는 얼굴로 구분할 사람 & 얼굴 사진 등록

10 of 34

04 대표 기능

10

4) 긴급 연락망 관리

위급한 상황에 연락할

전화번호 등록

11 of 34

04 대표 기능

11

5) 방문자 관리

녹화 영상 속 검출된

얼굴 사진 사람별 저장

if) 인식된 사람이 아닌 경우,

  1. 다른 사람으로 이름 수정
  2. 사진 삭제

12 of 34

04 대표 기능

12

6) 긴급 메시지 수정

위급한 상황에 전송될

메시지 내용 등록

13 of 34

04 대표 기능

13

7) 도움 요청

위급한 상황 시

도움 요청

14 of 34

04 대표 기능

14

8) 추가 학습

추가 등록된 지인 얼굴 사진

  • 녹화된 영상 속 사진

추가적 이미지 학습

15 of 34

05 시스템 구조도

15

16 of 34

06 딥러닝 모델

16

50장의 사진

Image Augmentation

이용해 각 사진을 8장씩 늘림

70%는

Training

30%는

Validation

17 of 34

06 딥러닝 모델

17

4 convolution layers

+

Pooling layers

96x96 RGB

Full-connected

layers

Classifier

Drop-out

layer

수연

수영

혜진

18 of 34

06 딥러닝 모델

18

-> 약 4시간 동안 3200 스텝의 학습 과정을 거쳐

90%이상의 정확도 구현

19 of 34

06 딥러닝 모델

19

Yes

낯선 사람(Unknown) 검출 메커니즘

영상 속, 얼굴이 검출된 프레임 개수의 85% 이상을

일관된 사람으로 인식하는가?

등록된 인물

낯선 사람

(Unknown)

No

20 of 34

07 기대 효과

20

심리적 안정감 제공

서버 관리 용이

위급상황에 대한 적절한 대처

21 of 34

Q & A

21

22 of 34

부 록

추가적인 사항들

  1. 라즈베리파이 개발 환경
  2. 라즈베리파이 개발 과정
  3. 서버 구조
  4. 깃허브 관리 과정
  5. 안드로이드 UI 디자인
  6. 안드로이드 클래스 및 구조
  7. 파이썬 개발 코드
  8. 역할 분담
  9. 앞으로의 계획

22

23 of 34

  • 기본적인 촬영 환경을 세팅하기 위해 모니터, 키보드, 마우스를 이용
  • 무선랜 사용(WIFI) 및 전원 공급을 위해 보조 배터리 이용

상용화 할 경우에는 보조 배터리가 아닌 유선 전원 연결이 필요할 것으로 예상

  • 와이파이를 사용하기 위해서 부팅시 지역 설정 필요 (sudo iw reg set US)
  • 라즈베리파이 내의 개발은 파이썬 2.4 버전을 통해서 이루어짐
  • 파이는 기본적으로 파이썬 3.0 버전을 제공하기 때문에 cmd를 통해 실행

라즈베리파이 개발 환경

23

24 of 34

  • 현재 라즈베리파이에서는 영상을 30초 단위로 촬영해 mp4로 변환 후 서버로 전송
  • 영상은 30초 영상 전송을 기준으로 평균적으로 2~4초의 지연이 발생

194008, 194042 : 31초의 영상이며 3초의 지연 시간 발생

  • 와이파이 환경이 좋지 않았을 때에는 지연 시간이 더욱 길었으나 이를 개선한 이후로 지연 시간 단축 성공 → 유선으로 연결할 경우 지연시간을 더욱 단축시킬 수 있을 것으로 예상
  • 파이가 찍은 영상은 240 X 240 해상도를 갖는 영상으로 상용화 할 경우 더 좋은 성능의 카메라 필요

라즈베리파이 개발 과정

24

25 of 34

라즈베리파이 개발 과정

25

(좌) 실제 라즈베리파이가 실행되는 모습

(우) 실제 영상이 배경화면에 저장되는 모습

26 of 34

  • 해당 프로젝트에서는 파이어베이스의 실시간 데이터베이스스토리지를 모두 사용
  • 각 회원은 아이디, 이메일 주소, 패스워드, 닉네임을 갖고 있으며 구글 아이디를 통해 로그인

이 때 닉네임은 메뉴 화면과 메인 화면에 등장하고 이러한 정보들은 변경 가능

  • PhotoLink는 이용자가 등록인물관리 메뉴를 통해 등록한 사진으로 접근 할 수 있는 링크를 저장
  • 이용자가 메뉴 → 학습 하기 버튼을 누르면 Learning 값이 1로 변경되고 학습을 시작
  • VideoLink는 라즈베리파이에서 찍힌 영상 스토리지에 접근할 수 있는 주소를 저장

서버 구조

26

27 of 34

  • Update는 영상이 업데이트 될 때 마다 갱신되며, Download는 로컬에서 검출을 위해 다운로드 받을 때 마다 갱신 → 두 개의 변수를 바탕으로 동영상을 주기적으로 다운로드하고 얼굴을 검출
  • State는 현재 위험도를 의미하며 집 앞에 unkown의 빈도가 높을 경우 상태를 위험으로 변경
  • VidePhoto는 집 앞의 영상을 다운로드 받고 검출하는 과정에서 이를 다시 학습에 이용하기 위해서 저장한 사진 스토리지에 접근하기 위한 주소값 → 방문자 관리 메뉴를 통해 삭제 및 수정이 가능

검출한 모든 사진을 저장하며 각 영상은 고유한 넘버를 갖고 있음

서버 구조

27

28 of 34

28

깃허브 관리 과정 (Android)

29 of 34

29

깃허브 관리 과정 (Python)

30 of 34

  • 메인화면 아이콘

안드로이드 디자인 UI

30

  • 로딩 화면 배너
  • 앱 아이콘

31 of 34

  • 안드로이드 자바 클래스 및 레이아웃 파일들은 위와 같음
  • 기능 구현과 디자인 파트로 공평하게 나누어서 개발이 진행되었음
  • 가상 머신을 사용하지 않고 안드로이드 10 버전을 이용하는 스마트폰을 이용해 개발
  • 안드로이드 스튜디오 4.0 버전으로 통합해서 개발 진행
  • 깃허브 AI_CCTV 프로젝트 내에서 푸시 및 커밋 과정을 통해 협업 진행
  • https://github.com/SuyeonKim1702/AI_CCTV.git

안드로이드 클래스 및 구조

31

32 of 34

  • 파이에서 실시간 영상을 촬영해 전송하는 1개의 코드 / 이용자가 버튼을 누르면 사진을 받아와 재학습 시키는 코드 / 학습된 데이터를 바탕으로 영상에서 얼굴을 검출하고 서버로 전송하는 코드 → 크게 3개의 코드로 분류
  • 깃허브 AI_CCTV2 프로젝트에 모든 코드와 중간 산출물들이 업로드 되어 있음
  • https://github.com/leeheajin/AI_CCTV_2.git

파이썬 개발 코드

32

33 of 34

역할 분담

33

34 of 34

  • 현재 총 4회의 멘토링(방학 포함)을 진행하였으며 20회 이상의 회의를 거쳤음
  • 6월 4일 최종발표 전 PPT에 대한 피드백을 받을 예정
  • 현재 모든 기능을 구현하였음; 초기 프로젝트에서 계획한 것들보다 더욱 많은 내용을 개발함
  • 최종 보고서를 매우 자세하게 작성하고 멘토링을 통해 피드백 받을 예정
  • 멘토링 서류를 꼼꼼히 검토해 정해진 기한 내에 제출할 수 있도록 함

앞으로의 진행 계획

34

6월 04일

중간발표 진행

6월 05일

포스터 제작 및 시연 영상

6월 07일

최종 포스터 제출

6월 10일

최종 보고서

6월 11일

포스터 세션 진행

6월 16일

멘토링 서류 제출

6월 25일

결과물 및 최종 시연 비디오