Object Detection 15

yolov3를 이용한 객체 탐지

이번 포스팅에서는 yolov3를 이용해 object detection을 하는 방법에 대해 정리해보겠다. 여기서는 사전학습된 weights 를 가지고 객체탐지를 실행했다. 코드 설명은 주석마다 잘 설명해놓았다. 1. 이미지 객체 인식 import cv2 import numpy as np min_confidence=0.5 # Load yolo net=cv2.dnn.readNet('yolov3.weights','yolov3.cfg') classes=[] with open('coco.names','r') as f: # 파일을 읽어와 f에 두고 classes=[line.strip() for line in f.readlines()] # 이름 파일의 이름들이 배열에 들어감 # yolo의 작동 방식 layer_name..

Object Detection 2021.08.17

졸음 감지 프로젝트

앞에서 공부했던 얼굴 검출 밑 눈 검출 방법으로 카메라를 통해 사용자가 눈을 오래 감고 있거나 자고있는지 확인하고 이를 판별해서 경고음을 내는 프로그램을 만들어 보았다. 먼저 필요한 라이브러리를 import 한다 import numpy as np import dlib import cv2 import time import pygame 다음 코드는 경고 소리를 내기 위해 사용하는 코드이다. # 경고 소리를 내기 위해서 사용 pygame.mixer.init() pygame.mixer.music.load('./audio/fire-truck.wav') 앞에서 보았듯이 얼굴 부위별로 할당되는 range값이다. 이번에는 오른쪽눈, 왼쪽눈, 그리고 전체 눈 range만 필요하다. RIHGT_EYE=list(range(..

Object Detection 2021.08.16

face_aligned_photo_generator

이번 포스팅에서는 저번 포스팅에 이어서 사진을 정면을 보게끔 조정한뒤 얼굴 부분만 잘라내어서 face_recognition 의 성능을 향상시킬수 있는 방법를 정리해보겠다. 다음 코드를 통해 특정 폴더에 위치한 사진들을 불러와서 전처리 해준 다음 새로운 폴더에 저장할수 있게 된다. import numpy as np import dlib import cv2 RIGHT_EYE=list(range(36,42)) LEFT_EYE=list(range(42,48)) EYES=list(range(36,48)) dataset_paths=['./image/tedy-front/','./image/son-front/','./image/unknown-front/'] output_paths=['./image/tedy-align/..

Object Detection 2021.08.16

face alignment

이번 시간에는 face alignment 기법을 알아보겠다. face alignmet기법을 통해서 사진들을 전부 정면을 보게끔 처리해 줄 수 있다. 이를 통해 face recognition의 인식률을 높일 수 있게 된다. 전반적인 작업 순서는 이렇다. 1. dlib을 사용하여 사진의 사람 얼굴을 검출한 뒤 눈의 좌표를 구한다. 2. 눈의 좌표를 통해 눈 사이의 거리, 사진의 틀어진 정도(arctan)를 구한다. 3. affine 변환을 통해 사진을 돌린다 4. 얼굴 부분만 crop하여 사진을 생성한다. import numpy as np import dlib import cv2 RIHGT_EYE=list(range(36,42)) LEFT_EYE=list(range(42,48)) EYES=list(range..

Object Detection 2021.08.15

face_landmark 방법으로 얼굴 검출하기

이번 포스팅에서는 face_landmark 방법을 이용해 사진에 있는 사람의 얼굴을 검출해보는 방법을 알아보겠다. import numpy as np import dlib import cv2 RIHGT_EYE=list(range(36,42)) LEFT_EYE=list(range(42,48)) MOUTH=list(range(48,68)) NOSE=list(range(27,36)) EYEBROWS=list(range(17,27)) JAWLINE=list(range(17,27)) ALL=list(range(0,68)) # 학습된 모델로 dlib에서 미리 만들어놓은 데이터이다. predictor_file='./model/shape_predictor_68_face_landmarks.dat' image_file='...

Object Detection 2021.08.15