본문 바로가기

과정/2차 AI프로젝트(해커톤참가)7

Mediapipe와 OpenCV를 이용한 얼굴 모자이크 처리 안녕하세요! Mediapipe의 face detection 기술을 통해 얼굴 모자이크를 해보겠습니당 라이브러리가 설치되어 있지 않다면 먼저 설치해 주세요! pip install opencv-python pip install mediapipe 먼저 필요한 라이브러리를 import 해줍니다. import cv2 import mediapipe as mp # 미디어파이프 초기화 mp_face_detection = mp.solutions.face_detection mp_drawing = mp.solutions.drawing_utils face_detection = mp_face_detection.FaceDetection(min_detection_confidence=0.30) 웹캠을 사용해 줍니다. 보통은 0으로 .. 2023. 10. 31.
프로젝트 '재움' 서비스 개발 시작 자세인식 작업이 끝나고 서비스 개발을 시작하게 되었습니다. 맡게 된 부분은 수면유도음악 랜덤재생, 수면측정, 자세인식 및 변화 감지, 수면이벤트 저장, 저장 시 얼굴 블러처리 개발입니다. UI화면 수면측정 ui 예상도 입니다. 재생버튼을 누르면 수면측정이 시작되고 화면 중앙에 실시간으로 영상 촬영이 진행됩니다. 개발 내용 1. 수면 측정 시작시 클라이언트단에서 수면유도음악을 랜덤으로 재생해 줍니다. 2. 클라이언트단에서 10분의 타이머가 지난 후 수면자세 측정을 시작합니다. 3. 일정시간마다 서버에 촬영한 이미지를 전송합니다. 4. 이전 이미지와 현재 이미지의 라벨을 비교하여 자세변화를 감지합니다. (자세변화 감지 시 3번 연속 같은 라벨일 때 수면자세가 변화했다고 인지합니다.) ex) 바른 자세 -> .. 2023. 10. 17.
MediaPipe를 통해 지정한 자세 정확도 테스트 안녕하세요! 이번엔 내가 설정한 자세들이 실제 입력한 데이터 이미지에도 잘 적용되는지 확인해 보는 시간입니다! 먼저 저희는 자는 자세를 인식할 것이기 때문에 새우잠과 옆으로 자는 모습을 지정해주겠습니다. (def_pose폴더를 생성하고 pose.py파일에 작성해 줍니다.) 새우잠 조건: 허리 접힘, 양다리가 접힘 #허리 접힘 인식 각도 함수 def isFoldedHip(left_hip_angle, right_hip_angle): if right_hip_angle < 130 or left_hip_angle < 130: return True #다리 접힘 인식 각도 함수 def isFoldedLegs(left_knee_angle, right_knee_angle): if (right_knee_angle < 90.. 2023. 10. 13.
2차 프로젝트 재움 진행사하아앙_1005 1. 구현할 자세 확정 : 새우잠 자기 - 주호 양팔, 한쪽 팔 만세자세 엎드려서 고개만 한쪽 방향으로 돌리고 자기 (고개 돌아감) 정자세 -> 큰 대자로 자도 정자세에 속하나요 ’일단은’ 다리를 꼬고(포개고) 자기 팔 깔고 엎드려자기 이미지에 Yearner Right 도 추가 - 주호 양팔 깍지껴서 머리뒤에 받치고 자기 머리, 몸, 팔, 다리 각각의 각도 설정(팔 올림 접힘, 다리 접힘, 머리, 몸 방향 유추 -> 다리 접힘, 몸접힘 : 새우잠 산출) 각 부위의 각도를 세밀하게 조정하여 조건에 맞는 자세를 산출하게 해야함 이불 테스트 몸만 덮고 있는 경우 - 어느 정도 인식함 몸 반만 덮고 있는 경우 얼굴만 덮고 있는 경우 - 얼굴 위치를 파악하여 전체적으로 잘 인식함 2. 평가 metric 공부해 보.. 2023. 10. 6.
MediaPipe 각도를 이용한 자세 유추해보기 안녕하세요! 이번에는 각도를 설정해서 자세를 유추해 보겠습니다! 먼저 필요한 라이브러리를 import 해줍니다. #먼저 MediaPipe 및 OpenCV를 포함하여 필요한 라이브러리를 가져옵니다. import cv2 import mediapipe as mp #이미지를 표시하기 위해 사용 import matplotlib.pyplot as plt #수학 함수를 사용하기 위한 기본 Python 모듈 import math 그리고 필요한 변수들을 설정합니다. #신체 랜드마크 감지를 위해 MediaPipe 포즈 모델을 초기화합니다. mp_pose = mp.solutions.pose pose = mp_pose.Pose() #mp_drawing 변수를 초기화하고 이를 mp.solutions.raw_utils 클래스와 .. 2023. 10. 2.
MediaPipe를 이용한 간단한 앉은 자세 인식하기 이전에 했던 MediaPipe를 이용한 실시간 랜드마크 생성글에서 했던 코드 + 앉은 자세를 보여주는 코드를 작성해보자 먼저 추가된 코드를 적은 후 완성된 코드를 뒤에 첨부하겠습니당 # 앉은 자세의 임계값을 설정해준다. YOUR_SITTING_THRESHOLD = 0.7 먼저 앉은 자세에 대한 기준점을 잡기 위해 임계값을 설정해줍니다. #기본값으로 앉은게 아닌 것으로 표시해준다. sitting = False 기본 값으로는 앉지 않을 것으로 인식하게 설정 # 왼쪽 어깨와 오른쪽 어깨에 대한 랜드마크 위치를 검색 left_shoulder = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_SHOULDER] right_shoulder= results.po.. 2023. 9. 26.