Page 885 - 3-3
P. 885

return True
               # 실제로 얼굴인식을 하게 되는 함수
               def FaceDetection():
               # 전역변수를 읽어옴
                   global sess,clf,softmax_tensor,label_lines
                   # 찾은 얼굴의 이름을 기본값으로 초기화
                   detection_name = 'NONE'
                   #webcam   크기 설정
                   video_width = 320
                   video_height = 240
                  #webcam   정보 읽어옴
                   cam = cv2.VideoCapture(0)
                   #webcam   크기 적용
                   cam.set(cv2.CAP_PROP_FRAME_WIDTH,video_width)
                   cam.set(cv2.CAP_PROP_FRAME_HEIGHT,video_height)
                   # 얼굴영역으로 검사할 영역 설정
                   Area = [0,0,320,240]
                   # 얼굴에 대한 x,y,w,h      정보 저장 배열
                   xy_arrs = []
                   while True:
                      #webcam   으로 부터 프레임을 읽어옴
                       ret,frame = cam.read()
                      # 읽을 프레임이 없을 경우 종료
                       if not ret:
                           break
                      # 프레임 좌우반전
                       frame = cv2.flip(frame,1)
                      # 얼굴을 찾았는지 확인 변수
                       find_face = False
                      # 얼굴에 대한 roi    를 저장하는 변수
                       crop_imgs = []
                      # 원본 이미지 따로 저장
                       ori_frame = frame.copy()
                      # 해당 프레임을 3 channel -> 1 channel       으로 컬러 변환
                       gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
                      #1 channel 의 이미지에 대해서 최소 사이즈 30,30             으로 얼굴 영역 검색
                       faces = clf.detectMultiScale(gray, scaleFactor=1.1,
                                                minNeighbors=5,minSize=(30,30),
                                                flags=cv2.CASCADE_SCALE_IMAGE)
                       #find area in face
                       for (x,y,w,h) in faces:
                                      # 찾은 얼굴 영역이 원하는 범위안에 있는지 탐색
                           if Area_in_Face(Area,(x,y,x+w,y+h)):
                               find_face = True
                                              # 얼굴 발견 시 정보를 저장


                                                          - 885 -
   880   881   882   883   884   885   886   887   888   889   890