facetious 6

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (얼굴 랜드마크 최종 결과물 – 안경, 콧수염, 쥐 코)

안녕하세요.    이전 내용을 총정리하는 단계로 얼굴 특징점을 찾아 안경과 콧수염, 쥐 코를 선택하여 실시간 영상에 반영할 수 있도록 합니다. 선택하는 것은 체크박스를 생성하여 선택할 수 있도록 합니다. 이전 파일에 오타 등이 있기 때문에 이번 첨부된 소스를 참고하시면 됩니다.   1. 소스파일 수정 1) capture_thread.h   - 어떤 특징점에 어떤 것을 표시할지 열거형의 타입을 생성합니다. 여기서 MASK_COUNT는 기능을 나타내는 것이 아니라 열거형의 개수를 확인하기 위한 마지막 카운트 값으로 사용  - 체크상태를 업데이트할 수 있는 함수를 선언  - 어떤 체크박스인지, 기능을 설정할지 여부를 인자로 가지는 함수를 선언  - 체크박스의 각 상태를 비트 값으로 저장하는 형태로 하기 위해서..

Programming/Qt 2024.05.21

[도서 실습]얼굴 랜드마크(눈)에 안경 그리기)

안녕하세요.   이전 내용에서 얼굴과 얼굴의 특징점(눈, 코, 입 등)을 비디오상에서 감지하는 코드를 작성하였습니다. 이 특징점에 장신구(Ornaments)를 적용(그리는 것)시키는 것을 해보겠습니다. 이 책에서 제공해 주는 장신구는 안경과 콧수염, 쥐의 수염 이미지를 제공해주고 있습니다.   이 이미지를 그냥 불러서 사용해도 되겠지만, Qt에서 관리적인 차원에서 사용하려면 리소스 파일을 만들어서 사용할 수 있습니다. 그래서 코딩하기 전에 간단한 리소스 파일을 만들어야 합니다. 그리고 리소스 파일을 불러와서 특징점 좌표에 회전된 값을 구하여 그려주는 작업을 하면 됩니다. 1. 리소스 파일 만들기   1.1 image.qrc 파일 만들기    - 우선 FacetiousW 소스가 들어 있는 폴더에 Image..

Programming/Qt 2024.05.16

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (얼굴 랜드마크(특정부위-눈, 코 등) 감지하기)

안녕하세요.  이전 내용에서 얼굴을 감지하는 것을 해보았습니다. 그리고 얼굴의 특징점을 찾기 위해서 OpenCV의 contrib 라이브러리 소스를 컴파일하고 라이브러리 파일을 만들어 보았습니다. 이번에는 그중에 face 라이브러리를 사용해서 얼굴에 있는 눈, 눈썹, 코, 입을 감지해 보도록 하겠습니다. 1. 라이브러리 확인   이번에 사용할 libopencv_face 라이브러리를 이용할 것입니다. 참고로 이 라이브러리에 어떤 함수들이 확인해 볼 수 있는 링크를 걸어 두었습니다.https://docs.opencv.org/4.5.3/d4/d48/namespacecv_1_1face.html   얼굴의 특징을 잡아낼 수 있는 FacemarkKazemi, FacemarkAAM과 FacemarkLBF classes..

Programming/Qt 2024.05.10

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (OpenCV-contrib windows 버전 설치하기)

안녕하세요.   Facetious 내용 중 OpenCV-contrib 모듈에 있는 기능을 사용하기 위해서 우선 OpenCV-contrib 버전을 설치해야 합니다. 처음 OpenCV 설치할 때 같이 설치했으면 좋지 않았을까 하지만, 지금 내용이 나오기 때문에 어떻게 추가 설치하는지 확인해 보도록 하겠습니다.  단, 이전 내용에서 Windows용 OpenCV를 64bit용 Mingw32 컴파일해서 OpenCV 라이브러리를 사용하고 있다는 전제에서 아래 내용을 진행하시면 됩니다. 만약 OpenCV 설치하는 과정이 필요하다면 아래 링크를 참조하시면 됩니다. 그리고 Windows용으로 OpenCV를 설치할 때 윈도용으로 압축된 프로그램을 실행하시는 것을 추천드립니다. (https://sourceforge.net/..

Programming/Qt 2024.05.07

[도서 실습] Qt 5 and OpenCV 4 Computer Vision – The Facetious Application 02 (얼굴인식)

안녕하세요.   이전 내용에서 얼굴을 찾아내는 프로그램을 위한 준비를 했다면 이번에는 얼굴을 찾아내는 코드를 추가해 봅니다. 이제 OpenCV 라이브러리를 이용해서 실시간으로 얼굴을 찾아는 것을 해볼 것입니다.   얼굴을 인식을 위해서 OpenCV에서 제공해 주는 cascade classifiers 기술을 사용합니다. 이것은 얼굴인식뿐만 아니라 물체를 인식할 때도 사용되는 것입니다. 우선 cascade classifier를 사용하기 전에 얼굴에 대한 학습을 진행해야 합니다. 어떤 것이 좋은 얼굴 사진이고 나쁜 사진인지 많은 데이터를 학습시켜 주어야 합니다. 학습시키는 과정도 복잡하기 때문에 여기서는 빼고 이미 만들어진 학습 데이터를 가지고 테스트해 볼 예정입니다.  1. 정면 얼굴 학습 데이터 준비   ..

Programming/Qt 2024.05.03

[도서 실습] Qt 5 and OpenCV 4 Computer Vision - The Facetious Application 01 (사진 찍기)

안녕하세요.  이번에 챕터에서 진행되는 내용은 실시간으로 얼굴을 인식해서 마스크를 씌우는 프로그램을 만드는 것으로 진행됩니다. 프로그램의 기본 형틀은 앞에서 만든 GazerW를 기반으로 해서 레코딩과 모션 감지 부분을 제거하고 얼굴 인식하는 기능을 넣어서 작동하게 하는 것입니다.  1. 프로그램 틀 만들기 1) 폴더 내 수정   - GazerW 마지막 버전의 프로젝트 폴더를 복사해서 Facetious로 변경합니다. 이 글에서는 첫 번째 하는 것이라. Facetious_day1로 변경하였습니다.   - GazerW.pro 파일을 FacetiousW.pro로 변경합니다. 책 내용에서는 여러 가지를 내용을 수정해주어야 하지만, 폴더와 pro 파일에서는 현재 Windows 버전의 Qt에서는 크게 진행할 내용이 ..

Programming/Qt 2024.04.28