Open-Source Face Recognition with dlib & OpenCV — Real-Time Biometric Authentication for Maritime & Port Security

Python face_recognition · dlib 68-point landmarks · OpenCV · Windows 10 · LFW 99.38% accuracy

Captain Ethan
Captain Paul
Maritime 4.0 · AI, Data & Cyber Security
LinkedIn: linkedin.com/in/shipjobs
 2026 · R&D Series
Research Context

오픈소스 리소스를 최대한 활용하여 Python 기반 얼굴 인식(Face Recognition) 시스템을 구축하고, 이를 해사 보안과 스마트 선박 환경에 응용하는 가능성을 탐색합니다.

dlib(딥러닝 기반 C++ 라이브러리) + OpenCV + face_recognition 조합으로 얼굴 탐지, 랜드마크 추출, 실시간 얼굴 인식을 구현합니다. LFW 데이터셋 기준 99.38% 정확도를 달성한 dlib 모델을 기반으로 합니다.

 4대 연구 목표
① 핵심 라이브러리 및 소스코드 이해
② 개발 환경 구성 및 설치 완료
③ 정확도 및 성능 최적화 방안 탐색
④ 결과 공유 및 개선 방향 논의

Ⅰ. Core Libraries & Architecture

LIB-01

dlib — Deep Learning Face Recognition Engine

딥러닝 기반으로 설계된 C++ 라이브러리. 얼굴 인식 응용 프로그램 구축에 특화되어 있으며, LFW(Labeled Faces in the Wild) 데이터셋에서 99.38% 정확도를 달성합니다. CLI를 통해 폴더 내 이미지를 일괄 처리하는 간단한 얼굴 인식 도구도 내장되어 있습니다.

 공식 사이트
溺 핵심 기능
68-point 얼굴 랜드마크 탐지
Windows 설치 주의: pip install dlib 는 Windows에서 다수의 설치 오류를 유발합니다. 공식 사이트에서 ZIP 파일을 직접 다운로드하여 수동 설치를 권장합니다.
LIB-02

OpenCV — Computer Vision Framework

OpenCV는 공식적으로 pip 설치를 지원하지 않지만, GitHub의 커뮤니티 프로젝트를 통해 활성화할 수 있습니다. 모든 관련 라이브러리를 설치해야 정상 작동이 보장됩니다.

bash — 관리자 권한으로 실행
pip install filterpy
pip install opencv-contrib-python
pip install opencv-python
⚠ Windows 사용자는 sudo 생략. Anaconda 환경 사용 시 Anaconda 3 Powershell Prompt에서 실행.
LIB-03

face_recognition — High-Level Recognition API

dlib 위에 구축된 Python 라이브러리로, 얼굴 탐지·인식을 단 몇 줄 코드로 구현할 수 있습니다.

bash — 설치
pip install face_recognition
python — 설치 확인
>>> import face_recognition  # 오류 없으면 설치 완료
>>> import dlib
>>> dlib.__version__         # 설치된 버전 확인

Ⅱ. Dev Environment & dlib Installation

✅ 개발 환경 스펙
OS
Windows 10
IDE
VS Code
Python
3.3+ / 2.7
추가 설치
dlib · face_recognition · OpenCV

dlib은 pip 설치 시 Windows에서 빌드 오류가 잦습니다. 공식 ZIP을 다운로드 후 Anaconda 3 Powershell Prompt에서 아래 순서로 빌드합니다 (약 10분 소요).

bash — dlib 빌드 & 설치 (다운로드 폴더에서 실행)
python setup.py build   # 빌드 (10분)
python setup.py install # 설치
⚠ 경로 수정 필수 사항

오픈소스 스크립트에는 로컬 환경과 맞지 않는 하드코딩 경로가 포함되어 있습니다. 실행 전 반드시 경로를 수정해야 합니다.

# 원본 (수정 전)
xxx_train("knn_examples/train")

# 수정 후 (로컬 경로에 맞게)
xxx_train("./examples/knn_examples/train")

Ⅲ. Code Examples — 3 Core Features

FEAT-01

Find Faces in Pictures

python — 얼굴 위치 탐지
import face_recognition

image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)

print(f"Found {len(face_locations)} face(s) in this image.")
FEAT-02

Find Facial Features — 68-point Landmarks

눈, 코, 입술, 턱선 등 68개 랜드마크를 추출합니다. 디지털 메이크업, 감정 분석, 피로도 탐지 등 다양한 응용에 활용됩니다.

python — 얼굴 랜드마크 추출
import face_recognition

image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)

# chin, left_eye, right_eye, nose_bridge, nose_tip,
# top_lip, bottom_lip, left_eyebrow, right_eyebrow
for face_landmarks in face_landmarks_list:
    print(face_landmarks.keys())
FEAT-03

Identify Faces — Compare & Recognize

python — 얼굴 비교 인식
import face_recognition

known_image   = face_recognition.load_image_file("crew_photo.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

known_encoding   = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces(
    [known_encoding], unknown_encoding
)
print("Match:", results[0])  # True / False

Ⅳ. Execution Results

실제 환경에서 실험한 결과입니다. 사진 등록 → 얼굴 탐지 → 랜드마크 추출 → 동일인 여부 판별의 전 과정을 확인했습니다.

▶ 테스트 인물 등록 — 얼굴 벡터 인코딩
▶ 실행 결과 — 랜드마크 탐지 & 얼굴 인식
▶ 실시간 웹캠 인식 테스트
 실험 결과 요약
✓ 탐지
정면·측면 얼굴 모두 정상 탐지, 다중 얼굴 동시 처리 확인
✓ 랜드마크
68포인트 랜드마크 추출 성공 — 눈·코·입·턱선 정밀 측정
✓ 인식
동일인 비교 인식 True/False 정확 반환, 웹캠 실시간 처리 확인

Ⅴ. Maritime Applications & Future Work

얼굴 인식 기술은 선박 보안 강화와 스마트 선박 환경에서 다양한 방식으로 활용될 수 있습니다.

선박 승무원 신원 인증 — Bridge Access Control
기관실·함교(Bridge) 출입 시 얼굴 인식 기반 생체 인증 적용. 물리적 키/카드 없이 승인된 인원만 접근 허용. ISM Code 승무원 관리 요건과 연계 가능.
항만 보안 — Port Facility Access Management
항만 시설 게이트에서 직원·방문자 신원 확인. ISPS Code 항만 보안 요건을 디지털화하여 물리적 ID 카드 없는 스마트 게이트 구현 가능.
항해 당직 피로 탐지 — Watch Fatigue Detection
68포인트 랜드마크 중 눈 영역(EAR)을 분석하여 졸음·피로를 실시간 탐지. Blinkr 프로젝트와 동일한 원리. IMO ISM Code 피로 관리 요건 대응 가능.
스마트 선박 승선 관리 — Digital Crew Management ★
승하선(POB) 관리 자동화. 얼굴 인식으로 승선·하선 시각·인원 자동 기록. CCTV와 연계 시 선내 실시간 인원 위치 추적 가능 — 비상 대피 훈련 효율화에도 기여.
 향후 개선 방향
GPU 가속
NVIDIA Jetson Nano / Xavier에서 TensorRT 가속으로 실시간 처리 성능 향상
마스크 인식
승무원 마스크 착용 상태에서도 인식 가능한 모델 추가 학습 필요
스푸핑 방지
사진·영상을 이용한 얼굴 스푸핑 공격 방어를 위한 Liveness Detection 통합
 Field Note

오픈소스 라이브러리의 핵심은 "단순 실행을 넘어 시스템을 능동적으로 개선하는 것"입니다.

dlib + OpenCV + face_recognition 스택은 상용 솔루션에 비해 비용 없이 구축 가능하며, Jetson Nano 같은 에지 디바이스에 배포하면 선박 현장에서도 인터넷 연결 없이 동작합니다. 경로 수정, 환경 차이, 빌드 오류 등 현실적 장벽을 직접 해결해본 경험이 진짜 엔지니어링 역량을 만듭니다.

Conclusion & Next

Python + dlib + OpenCV 기반 얼굴 인식 시스템을 설치부터 실시간 웹캠 인식까지 전 과정 구현에 성공했습니다.

LFW 99.38% 정확도, 68포인트 랜드마크, 실시간 비교 인식 — 세 가지 핵심 기능 모두 검증 완료. 해사 환경에서는 선교 출입 통제, 항만 게이트 관리, 피로 탐지, 승하선 자동화 등 다양한 활용이 가능합니다.

다음 단계: NVIDIA Jetson Nano 포팅 + Liveness Detection 추가 → 선박 현장 배포 가능한 엣지 AI 생체 인증 시스템으로 발전시킬 계획입니다.

#FaceRecognition #dlib #OpenCV #ComputerVision #Python #BiometricAuth #MaritimeSecurity #SmartShip #EdgeAI #JetsonNano #PortSecurity #Maritime40
Captain Ethan
Captain Paul
Maritime 4.0 · AI, Data & Cyber Security
Edge AI · Smart Ship · Computer Vision · OT Security

⚓ Join the ShipPaulJobs Community

Join →
Share

Comments

Top Ranked · All Posts

Popular Posts