나 홀로 집에,
인공지능 CCTV제작
한양사대부속고 오 승 희
수업 구성
우리나라 인구구조 변화와 1인가구증 가원인 및 지원정 책 학습
통합사회
파이썬을 이용해
‘연도별 1인가구 현황’ 데이터 분석 및 시각화
프로그래밍
라 즈 베 리 파 이 를 이용한 인공지능 CCTV제작
01 02 메이킹 03
통합사회 (단원:미래와 지속가능한 삶-1. 세계의 인구와 인구문제 )
• 우리나라 인구구조 변화
01
혼자 사는 일이 더 이상 특별하지 않은 시대
(출처: https://www.klri.re.kr)
01
• 1인 가구 증가원인
- 고령화로 인한 독거노인 증가 - 비혼과 만혼 증가
- 비자발적 독신층 증가
- 맞벌이·자녀교육으로 인한 기러기 가족 증가 - 타지역으로의 진학·취업
01
01
1인 가구 지원정책
01
프로그래밍-연도별 1인 가구 데이터 분석
• 데이터분석과 시각화를 통해 확인
- ‘연도별 1인가구현황통계’ 검색
http://www.ssc.go.kr/stats/infoStats/stats010100_view.do?indicator_id=11&listFile=stats010400&cd=
- 연도별 1인가구현황 데이터를 다운로드한다.
- 파이썬을 이용해 데이터를 시각화하여 그래프로 출력한다.
02
인공지능CCTV제작
03
라즈베리파이 OS설치 및 환경설정
• 라즈베리파이 운영체제를 설치할 수 있는 프로그램을 다운로드하여 설치한다.
03
• 프로그램설치 후 메모리카드를 리더기에 넣어 USB포트에 삽입한다.
• 설치한 프로그램을 실행하여 메모리카드에 라즈베리파이 운영체제를 설치한다.
03
라즈베리파이와 컴퓨터 연결
• 모니터 없이 사용하기
• USB TO TTL로 연결하기
(연결하기 전에 메모리카드의 ‘config.txt’ 파일 안에 enable_uart=1 를 추가하여 시리얼 통신이 가능하도록 한다.)
03
• 장치관리자를 열고 포트번호를 찾는다 •PuTTY설치 :
https://www.putty.org/
03
라즈베리파이와 연결하여 로그인
• 최초 아이디 : pi 비밀번호 : raspberry
• ifconfig 명령을 이용해 ip주소를 찾는다 (inet뒤에 써 있는 것이 ip주소임)
• sudo raspi-config 명령으로 환경설정을 한다.
•인터페이스 설정(Camera, SSH, VNC 모두 enable로 설정)
SSH: 원격 호스트컴퓨터로 접속하기 위한
인터넷 프로토콜
VNC : 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크탑 공유시스템
03
• 이제 putty에서 ip주소로 접속할 수 있다 (usb to ttl은 제거해도 됨)
• 한글폰트 설치
- sudo apt-get install fonts-unfonts-core - sudo apt-get install ibus
- sudo apt-get install ibus-hangul
• 라즈베리파이 업데이트 - sudo apt-get update
- sudo apt-get full-upgrade
03
VNC Viewer설치하기
• https://www.realvnc.com/en/connect/download/viewer/
다운로드하여 설치03
• 이 때 화면이 보이지 않으면 해상도를 변경해야 한다.
• sudo raspi-config
• 2. Display options 선택하여 3번째 항목으로 설정 한 후 리부팅하여 다시 연결하면 화면이 보임
03
얼굴인식 과정
1. 얼굴 감지 및 데이터 수집 2. 인식기 훈련
3. 얼굴 인식
출처: https://www.hackster.io/mjrobot/real-time-face-recognition-an-end-to-end-project-a10826
03
openCV 설치
• Open Source Computer Vision의 약자로 영상 처리에 사용할 수 있는 오픈 소스 라이브러리
• haar cascades 얼굴인식 알고리즘에 대해 학습한다.
• openCV를 설치한다.
• 라즈베리파이 업데이트 후 openCV빌드를 위한 패키지들을 설치한다.
• 빌드를 마친 후 openCV버전확인
$python3
>>import cv2
>>cv2.__version__
‘4.5.3-dev’
03
얼굴검출 테스트
• Haar Cascades 알고리즘을 구현한 OpenCV의 함수를 이용해 얼굴과 동공인식을 실습
• Haar Cascade는 머신 러닝기반의 오브젝트 검출 알고리즘
03
여러 명의 얼굴데이터를 저장
03
아이디별 얼굴데이터 훈련
저장한 얼굴데이터로 학습하여 분류기 생성
- ID별로 인식한 얼굴 이미지 데이터를 훈련시킨다.(id1~id5: id별로 각 30장씩) - 프로그램을 실행하면 trainer.yml이라는 trained된 model이 저장됨.
03
아이디별 얼굴인식테스트
• ID별로 훈련시킨 얼굴 이미지가 잘 인식되는지 테스트한다.
• 데이터로 등록된 얼굴을 인식하여 정확도를 보여줌
• 얼굴을 검출한 rectangle 정보를 이용하여 기존에 만든 trainer.yml을 통과시켜 분류(인식)하여 해당하는 id값과 그 때의 confidence값을 반환한다. (confidence = 0이면 동일인이다. 여기서는 (100-confidence) 로 출력
• 등록되지 않은 얼굴데이터는 ‘unkown’이라고 출력함
03
침입자 감지 시 카카오톡 메시지 보내기
• 카카오개발자사이트 가입 후 엑세스 토큰을 발급받아 소스코드에서 사용함.
03
LED와 부저로 경고하기
03
3D모델링 출력 후 조립하기
03
참고사이트
• https://www.instructables.com/
• https://www.thingiverse.com/
03
수업모습
• 데이터분석 : 고2 프로그래밍 수업시간
• 라즈베리파이CCTV제작 : 방과 후 수업(AI메이커아카데미)