일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CSS
- 정보처리기사실기
- C++
- pandas
- 텍스트마이닝
- 머신러닝
- 정보처리기사필기
- 데이터분석
- 코딩테스트
- CNN
- 운영체제
- SQL
- 혼공머신
- 데이터입출력구현
- html/css
- 중학1-1
- 파이썬
- 연습문제
- 컴퓨터구조
- 자바
- JSP/Servlet
- 영어공부
- 딥러닝
- 파이썬라이브러리
- 컴퓨터비전
- 데이터베이스
- 자바 실습
- numpy/pandas
- 정수와유리수
- 중학수학
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
컴퓨터 비전 8 - 얼굴 탐지(Face Detection) 1 : 라이브러리 설치 및 강아지 얼굴 탐지하기 본문
이번에는 객체 탐지 관련 실습을 진행해 볼 것이다. 새벽 공부는 여기까지 하고 마치려고 한다. 오늘은 할 일이 좀 많아서 새벽 운동은 하루 쉬기로 했다. 요즘은 새벽에 운동하고 나면 좀 힘들어서 한낮에 하는 것이 더 나을 것 같았다.
얼굴 탐지 실습해보기
1. 라이브러리 설치하기
pip list를 찍어보면 지금까지 내가 설치한 내역들이 나온다.
아나콘다로도 설치할 수 있지만 프로그램에서 이렇게 바로 하는 것도 가능하다.
2. 객체 탐지 실습 전 준비할 것
이미지 세그멘테이션은 바로 이런 것이다.
강아지 사진을 불러와 배경을 제거할 때 어떤 선이 경계선인지 파악하는데 이때 이미지 세그멘테이션 즉 분할을 사용한다.
텐서플로 버전이 낮은 것 같아 설치해 주었는데 이런 오류가 떴다. 에러 메시지를 보면 tensorflow==2.16.2 버전을 설치하려고 했으나, 해당 버전이 존재하지 않는다는 내용이다. 현재 TensorFlow의 공식적으로 배포된 최신 버전은 2.15.x까지로, 2.16.2 버전은 아직 출시되지 않았거나, 버전 번호가 잘못 입력된 것이다.
선생님이 코드를 잘못 쓰신 것 같다. 버전 호환성이나 특정 기능이 필요한 경우가 아니라면, 최신 릴리스 버전인 2.15.x 버전을 사용하거나 현재 사용 중인 2.10.0 버전을 유지하는 것도 괜찮다고 한다.
3. 객체 얼굴 탐지하기
이렇게 강아지 사진을 불러왔다. 이번에는 얼굴을 탐지하는 코드를 작성해 보겠다.
분명 선생님 코드에서는 되었지만 똑같이 썼는데도 cv가 정의되어 있지 않아서 사용할 수 없다는 문구가 계속 뜨고 있다.
4. 강아지 얼굴 탐지하기
사람 얼굴에서 강아지 얼굴을 탐지하는 코드로 바꾸어보았다.
현재 오류는 cv.detect_face() 함수가 정의되지 않아서 발생하는 것이다. OpenCV의 cv2 모듈에는 detect_face라는 함수가 존재하지 않기 때문에, 오류가 발생하고 있다. OpenCV는 얼굴 탐지를 위한 detect_face 함수를 제공하지 않으며, 대신 CascadeClassifier를 통해 얼굴을 탐지하는 방법을 사용한다.
기본적으로 OpenCV에서 제공하는 Haar Cascade 파일(haarcascade_frontalface_default.xml)은 사람 얼굴을 인식하도록 훈련되었기 때문에, 강아지 얼굴에 대해서는 제대로 작동하지 않을 가능성이 높다. 강아지 얼굴을 탐지하려면, 동물 얼굴에 맞게 훈련된 Haar Cascade 모델을 사용하거나 딥러닝 기반의 탐지 모델을 사용하는 것이 좋다고 한다.
강아지 얼굴을 탐지하려면 강아지 얼굴을 인식하도록 훈련된 Haar Cascade 파일을 사용해야 한다. OpenCV는 기본적으로 고양이 얼굴을 탐지할 수 있는 Cascade 파일(haarcascade_frontalcatface.xml)을 제공하지만, 강아지 얼굴에 특화된 Cascade 파일은 제공하지 않는다.
강아지 얼굴 탐지를 위해서는 다음과 같은 옵션을 고려할 수 있다.
방법 1: OpenCV Cascade Classifier로 고양이 얼굴 탐지 파일 사용하기
이렇게 강아지 얼굴이 탐지되었다.
방법 2: 딥러닝 기반 모델 사용하기 (추천)
강아지 얼굴을 정확하게 탐지하려면 딥러닝 기반의 객체 탐지 모델을 사용하는 것이 좋다. YOLO, SSD, Faster R-CNN과 같은 모델은 일반적인 객체 탐지 모델이므로, 다양한 강아지 얼굴도 탐지할 수 있다. 이러한 모델들은 사전 학습된 데이터셋에서 강아지를 인식하도록 훈련되었기 때문에, 더 높은 정확도로 강아지 얼굴을 탐지할 수 있다.
이 방법으로 실행하니 오류가 떠서 더 진행하지는 못했다. 아직 배워야 할 다른 부분이 있는 것 같아 코드 실행은 여기서 마치기로 했다.
5. 강아지 얼굴 정보 출력하기
이렇게 얼굴 정보의 위치가 출력되었다. 탐지된 강아지 얼굴의 위치 정보를 수치로 출력하려면, faces 변수에 저장된 좌표 정보를 print 함수로 출력하면 된다. 이 좌표 정보는 (x, y, w, h) 형식으로 되어 있으며, 각각 얼굴의 좌측 상단 (x, y) 좌표와 너비(w), 높이(h)를 나타낸다.
선생님의 코드는 실행이 안 되는 부분이 많고 난 사람보다는 강아지 얼굴을 한번 탐지해보고 싶었다.
학습을 마치고
이번 공부는 조금 많이 어렵고 실행이 안되는 코드가 많아서 몇 번이나 컴퓨터 비전 수업을 여기서 중단하고 싶은 마음이 들었다. 그래도 내가 실행할 수 있는 코드로 바꾸며 다른 방식으로 학습을 진행했다.
오늘도 새벽에 열심히 공부해서 뿌듯하다. 매일 두 마음 사이에서 갈등하지만 그래도 전보다는 마음을 다스리는 일이 더 쉬워졌다.
'인공지능 > 컴퓨터 비전' 카테고리의 다른 글
컴퓨터 비전 10 - 얼굴 탐지(Face Detection) 3 : 얼굴 탐지 확률 그리기와 자신의 얼굴 탐지하기 (0) | 2024.11.14 |
---|---|
컴퓨터 비전 9 - 얼굴 탐지(Face Detection) 2 : 사람 얼굴 객체 탐지하기 (0) | 2024.11.14 |
컴퓨터 비전 7 - OpenCV 동영상 실습해보기 2 - 웹 캠을 사용해 영상 출력하기 (0) | 2024.11.14 |
컴퓨터 비전 6 - OpenCV 동영상 실습해보기 1 : 사진 이미지와 동영상 이미지 출력하기 (0) | 2024.11.14 |
컴퓨터 비전 5 - 플라스크 실습해보기 (0) | 2024.11.14 |