본문 바로가기
AI

기계학습 강의자료 4 openface 실습 환경세팅 + 실습 과정

by 발빠진 쥐 2026. 7. 7.

1단계. 다운로드

  1. https://github.com/docker-archive/toolbox/releases 접속
  2. 최상단 v19.03.1 (Latest) 확인
  3. Assets 6 클릭해서 펼치기
  4. DockerToolbox-19.03.1.exe 클릭 → 다운로드 (약 500MB)

2단계. 설치

  1. DockerToolbox-19.03.1.exe 우클릭 → 관리자 권한으로 실행
  2. 마법사 진행: Next → 설치 경로 기본값 Next → 구성요소 전부 체크(Docker Toolbox, Git, VirtualBox, Kitematic) → Next → Install
  3. 중간에 VirtualBox 드라이버 설치 팝업 뜨면 설치 클릭
  4. Finish

3단계. Docker Quickstart Terminal 첫 실행

  1. 바탕화면 Docker Quickstart Terminal 더블클릭
  2. 자동으로 VM(default) 생성 → 부팅 → Docker 엔진 초기화
  3. 고래 그림과 함께 아래 메시지 뜨면 성공:
    docker is configured to use the default machine with IP 192.168.99.100
    
    (이 IP 메모해두기, 컴퓨터마다 다를 수 있음)

4단계. 설치 확인용 실습

docker run hello-world
  • Docker Hub에서 이미지 받아서 실행
  • Hello from Docker! 메시지 뜨면 설치 정상

5단계. 컨테이너 안 들어가보기

docker run -it ubuntu bash
  • 처음이면 ubuntu 이미지 다운로드 (몇 분)
  • 프롬프트가 root@...:/# 로 바뀌면 컨테이너 진입 성공

컨테이너 안에서:

ls
cat /etc/os-release

나가기:

exit

6단계. 컨테이너 목록/정리 실습

docker ps
docker ps -a

→ 실행 중/종료된 컨테이너 확인 (ps -a에 방금 ubuntu 컨테이너가 Exited로 남아있는지 확인)

docker images

→ 다운받은 이미지 목록

정리:

docker rm <CONTAINER ID>
docker rmi ubuntu

7단계. 웹서버 실습 (nginx)

docker run -d -p 8080:80 --name myweb nginx
  • -d: 백그라운드 실행
  • -p 8080:80: 호스트 8080 → 컨테이너 80 포트 연결

확인:

docker ps
docker-machine ip default

브라우저에서 위 IP로 접속:

http://192.168.99.100:8080

→ nginx 환영 페이지 뜨면 성공 (Docker Toolbox는 localhost 아니라 VM IP로 접속해야 함)

정리:

docker stop myweb
docker rm myweb

8단계. (문제 발생 시) Hyper-V 충돌 해결

설치나 VM 생성 중 아래 오류 뜨면:

This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated.

PowerShell 관리자 권한으로:

dism /Online /Disable-Feature:Microsoft-Hyper-V-All /NoRestart
dism /Online /Disable-Feature:VirtualMachinePlatform /NoRestart
dism /Online /Disable-Feature:HypervisorPlatform /NoRestart
dism /Online /Disable-Feature:Containers-DisposableClientVM /NoRestart
bcdedit /set hypervisorlaunchtype off

→ Windows 보안 → 장치 보안 → 코어 격리 → 메모리 무결성 끄기 → 재부팅

재부팅 후:

systeminfo

→ A hypervisor has been detected 문구 없어야 정상


전체 순서 요약: 다운로드 → 설치 → Quickstart Terminal 실행 → hello-world 테스트 → ubuntu 컨테이너 진입/종료 → ps/images로 상태 확인 → nginx 웹서버 실습 → (문제 있으면) Hyper-V 끄기

 

 


 

 

PPT 자료(38~48페이지) 내용 기반으로 OpenFace 실습 전체 과정을 정리해드릴게요. Docker Toolbox 설치가 끝난 상태에서 이어서 진행하는 겁니다.

Step 0. OpenFace 컨테이너 받기 및 접속

Docker Quickstart Terminal에서:

docker pull bamos/openface
docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
  • bamos/openface : OpenFace가 미리 설치된 도커 이미지
  • 실행하면 컨테이너 안으로 들어가짐 (프롬프트가 root@...:~# 로 바뀜)

컨테이너 안에서 openface 폴더로 이동:

cd /root/openface

Step 1. 학습 이미지 폴더 구조 만들기

mkdir training-images
cd training-images

인식할 사람별로 하위 폴더 생성 (예시는 exo 멤버들):

mkdir exo_baekhyun
mkdir exo_chanyul
mkdir exo_chen
mkdir exo_dio
mkdir exo_kai
mkdir exo_ray
mkdir exo_sehun
mkdir exo_suho
mkdir exo_xiumin

Step 2. 학습용 이미지 데이터 다운로드

cd /root/openface
git clone https://github.com/socurites/ras-ulghul.git
cp ./ras-ulghul/src/main/resources/input_exo/* ./training-images/*

확인:

cd training-images
ls

→ 각 멤버 폴더 안에 이미지들이 들어가 있어야 함 (이미지에 얼굴 하나만 있으면 됨, 얼굴 주위로 자를 필요 없음 — OpenFace가 자동 탐지)

Step 3. 얼굴 정렬 (Pose & Projection)

cd /root/openface
./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96
  • PPT의 Step 2 단계(랜드마크 68개 검출 → affine transform)에 해당
  • 결과: ./aligned-images/ 폴더에 눈·코가 중앙 정렬된 이미지 생성

Step 4. 임베딩 생성 (신경망으로 128개 측정값 추출)

./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
  • 결과: ./generated-embeddings/ 폴더에 labels.csv, reps.csv 생성

⚠️ 주의: aligned-images_exo/ 폴더 안에 cache.t7 파일이 있으면 삭제하고 다시 실행해야 새 이미지가 반영됩니다.

rm ./aligned-images_exo/cache.t7

Step 5. 분류기(SVM) 훈련

./demos/classifier.py train ./generated-embeddings/
  • 결과: ./generated-embeddings/classifier.pkl 생성 (얼굴 인식용 SVM 모델)

Step 6. 얼굴 인식 테스트

단일 얼굴 예측

./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

결과 예시:

=== /test-images/will-ferrel-1.jpg ===
Predict will-ferrell with 0.73 confidence.

다중 얼굴 예측 (--multi 옵션)

./demos/classifier.py infer ./generated-embeddings/classifier.pkl ./evaulation/exo/t11.jpg --multi

결과 예시:

=== /evaulation/exo/t11.jpg ===
List of faces in image from left to right
Predict exo_xiumin @ x=311 with 1.00 confidence.
Predict exo_suho @ x=500 with 0.42 confidence.
Predict exo_dio @ x=741 with 0.97 confidence.

전체 흐름 요약

docker pull bamos/openface
docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
cd /root/openface
mkdir training-images
(하위 폴더 생성)
git clone https://github.com/socurites/ras-ulghul.git
cp ./ras-ulghul/... ./training-images/
./util/align-dlib.py ...          ← 얼굴 정렬
./batch-represent/main.lua ...    ← 임베딩 생성
./demos/classifier.py train ...   ← 분류기 훈련
./demos/classifier.py infer ...   ← 테스트 이미지로 인식

원리는 앞서 설명해드린 얼굴인식 파이프라인(HOG로 탐지 → 랜드마크 정렬 → CNN으로 128개 임베딩 → SVM 분류)을 그대로 명령어로 실습하는 흐름입니다. 17대에서 진행하실 거면 git clone/이미지 다운로드 시간이 좀 걸리니, 네트워크 여유 있는 시간대에 돌리시는 게 좋아요.

'AI' 카테고리의 다른 글

Zero-shot/Few-shot, Pydantic  (0) 2026.07.10
LangChain과 ToolStrategy와 Proxy 쓸 때 Json parsing 오류  (0) 2026.07.10
LPCVC 준비 2  (0) 2026.03.30
LPCVC 준비  (3) 2026.02.22
2025 SPG F.A.T.I 준비 (기초 환경설정)  (7) 2025.08.12