본문 바로가기
카테고리 없음

머신러닝 팀플 2일차

by abccoco 2022. 5. 19.

전처리

이번 프로젝트는 얼굴 표정을 인식해 분석한 표정에 해당하는

젤리 이모티콘을 표시 및 기록, 일기를 쓰는 웹사이트 제작 ,mood tracker 기법을 사용하는

일기 작성 서비스이기 때문에 AIHub에서 제공하는 얼굴 표정 이미지 데이터를 사용하기로 했다.

 

그런데 생각보다 표정별 이미지가 카테고리별로 잘 정리되지 않은것 같아서 수작업으로 우선 사진 정리를 했다

예를들어 나는 무표정 카테고리를 맡았었는데 그 카테고리 사진 안에 웃,,으시는 분들이 계셔서 삭제해주었다

 

그 다음 사진을 코드로 사진을 분류해주었다

import cv2
import glob

# haarcascade 불러오기
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

images = glob.glob('images/*')
print("images =", end=""), print(images)

result_list = []

for i in images:
    temp = i.replace("\\", "/")
    result_list.append(temp)

print("result_list = ", end=""), print(result_list)

# for image in images:
#     print(image)
# 이미지 불러오기
for image in result_list:

    if "jpg" in image:
        print("image = ", end=""), print(image)

        ori_img = cv2.imread(image)
        ori_img = cv2.resize(ori_img, dsize=(0, 0), fx=0.4, fy=0.4, interpolation=cv2.INTER_AREA)
        gray = cv2.cvtColor(ori_img, cv2.COLOR_BGR2GRAY)

        # 얼굴 찾기
        # faces = face_cascade.detectMultiScale(gray, 1.5, minNeighbors=5, minSize=(20,20))
        faces = face_cascade.detectMultiScale(gray, 1.2, minSize=(200, 200))
        print("faces =", end=""), print(faces)

        cnt = 0
        # if len(faces) >= 4:
        for (x, y, w, h) in faces:
            # cv2.rectangle(img, (x,y,w,h), (255,0,255),2 )
            # cv2.imshow('src', img)
            img_x1 = x
            img_x2 = x + w
            img_y1 = y
            img_y2 = y + h

            img = ori_img[img_y1:img_y2, img_x1:img_x2]

            image_file_name = image.split('.')
            print("image_file_name =", end=""), print(image_file_name)
            file_name = image_file_name[0]
            extension = image_file_name[1]

            file_name += str(cnt)


            filename = 'images/face/' + file_name + '.' + extension
            print("filename =", end=""), print(filename)
            cv2.imwrite(filename, img)

            cnt += 1

우선 사진을 분류했는데 얼굴을 빠르게 찾아준다는 점에서 좋았지만

얼굴이 아닌 것들을 얼굴로 인식해 분류해 주는것도 있어서 이 점은 수정해야 할것 같다

댓글