3줄 요약
- 핵심: Frigate 얼굴 인식 + 도어락 연동: 외부 엔진 없이 셀프호스팅으로 구현하기의 설치/구성 흐름을 한 번에 따라갈 수 있도록 단계와 체크포인트를 정리했습니다.
- 실전: 실패가 잦은 구간(권한, 네트워크, 버전/의존성)을 먼저 점검해 재시도 비용을 줄입니다.
- 운영: 적용 후 검증 기준(로그·접속·동작 확인)을 남겨 유지보수 난이도를 낮춥니다.
트러블슈팅
- 설정 적용이 안 되면 브라우저 캐시/서비스 재시작 후 동일 증상을 로그 기준으로 재현하세요.
- 외부 접속 문제가 있으면 DNS/포트포워딩/리버스프록시 순서로 분리 진단하세요.
- 업데이트 이후 오류는 직전 버전·설정 백업 기준으로 롤백 경로를 먼저 확보하세요.
결론 + 다음 단계
이 글의 절차를 기준으로 기본 동작을 안정화한 뒤, 모니터링/백업/자동복구를 추가하면 장기 운영 품질이 크게 올라갑니다.
내부 링크
이 글은 Frigate에서 얼굴 인식과 도어락(또는 자동화)을 연동하는 과정을, 외부 클라우드 엔진 없이 셀프호스팅으로 구현하는 관점에서 정리한다. 핵심은 기능 구현보다 오탐 방지와 보안(오동작 방지)을 먼저 잡는 것이다.
이 글의 목표(성공 기준)
- Frigate 얼굴 인식 이벤트가 안정적으로 생성된다.
- 인증된 경우에만 도어락/자동화가 동작하도록 안전장치가 있다.
- 문제 발생 시(오탐/지연/통신) 점검 순서가 정리되어 있다.
보안보안은 지능 빨! Frigate 하나로 완성하는 ‘스마트 언락’ 시스템
외부 엔진 없이 셀프 방식으로 구축한 경험을 바탕으로, 그동안 Beelink N100 서버에 Frigate를 설치하며 우리 집 보안의 기초를 다졌다면, 오늘은 그 화룡점정을 찍을 차례다. 사실 이전까지는 Frigate 얼굴 인식 기능을 구현하기 위해 CompreFace나 Double Take 같은 별도의 엔진을 연동해야 했다. 하지만 이제는 세상이 바뀌었다. Frigate 0.15 버전부터는 외부 도구 없이도 자체적으로 해당 기능을 지원하기 시작했기 때문이다. 참고로 글을 작성하는 현재 기준으로 가장 최신 버전은 0.17 베타2이다.(링크: Frigate Github)
오늘의 가이드는 외부 엔진 없이 셀프 구성의 핵심만 뽑아, 별도의 리소스 낭비 없이 “누가 왔는지”를 알아내고, 심지어 현관 도어락까지 자동으로 열어주는 꿈의 시스템 구축기를 정리해 본다. 단순히 기술적인 나열을 넘어, AI가 사람을 식별하는 과정에서 발생할 수 있는 보안 사고를 막기 위한 꼼꼼한 안전장치 설정까지 모두 담아보았다.
1. 프롤로그: “누구냐 넌?”을 묻지 않아도 되는 세상
집을 지키는 가장 큰 즐거움은 “사람이 있다”는 단순 알림이 아니다. 시스템이 “가족이 무사히 귀가했다”는 구체적인 정보를 파악하고, 그 정보가 실질적인 편리함으로 이어지는 순간이다. 양손 가득 장을 봐서 돌아왔을 때, 비밀번호를 누르는 과정 없이 Frigate 얼굴 인식 시스템이 나를 알아보고 “띠링” 하며 현관문을 열어준다면? 이건 단순한 보안을 넘어선 삶의 질 문제다. 외부 엔진 없이 셀프 구성이 가능해지면서 진입장벽도 확실히 낮아졌다.
사실 예전엔 이 기능을 구현하려고 도커 컨테이너를 몇 개씩 더 띄워야 했다. 서버 자원은 한정되어 있는데, 인지 엔진 하나 하겠다고 램을 몇 기가씩 잡아먹는 서비스를 올리는 건 N100 집사들에게는 부담스러운 일이었다. 하지만 최신 버전은 이 모든 것을 내장시켜 버렸다. 이제 복잡한 설정 없이 메뉴에서 버튼 몇 번으로 이 마법 같은 기능을 구현할 수 있게 되었다.
2. 하드웨어의 한계: N100, 너의 잠재력을 보여줘
내가 사용하는 **Beelink S12 Pro(N100)**에서 AI 분석을 돌리면 서버가 비명을 지르는 거 아냐?”라고 걱정할 수도 있다. 하지만 우리는 이미 iGPU 패스스루 설정이라는 든든한 보험을 들어두었다.
현재 시스템은 두 가지 분석 모델을 선택할 수 있다. Small 모델은 CPU 연산 위주로 가볍게 돌아가고, Large 모델은 iGPU의 힘을 빌려 더 정교하게 분석한다. N100은 iGPU 성능이 준수하기 때문에 Frigate 얼굴 인식 프로세스를 실행할 때 Large 모델을 써도 CPU 점유율이 널을 뛰지 않는다. 영상 처리는 GPU가 전담하고, 실제 식별 연산은 카메라에 사람이 나타나는 찰나에만 수행되기 때문에 우리 서버는 여전히 평온을 유지할 수 있다. 역시 지능형 감시의 핵심은 하드웨어 가속이다. 외부 엔진 없이 셀프 환경에서도 이 원칙은 똑같이 중요하다.
3. 설정: 마법의 ‘Faces Library’ 메뉴 잠금 해제
설치 과정은 간단하지만, UI는 마치 숨겨진 이스터 에그를 찾는 것처럼 묘한 구석이 있다. 외부 엔진 없이 셀프 운영에서는 이 메뉴를 먼저 확인하는 습관이 중요하다. 설정 저장 전까지는 관련 메뉴가 눈을 씻고 찾아봐도 안 보이기 때문이다.
- Enrichments 설정: 메뉴의 Settings > Enrichments 탭으로 들어간다. 여기서
Facial Recognition스위치를 켠다. - 분석 모델 선택: 앞서 말한 모델 크기를 선택한다. N100 사용자라면 과감하게 Large를 추천한다. 식별의 정확도 면에서 Large가 압도적이다.
- 마법의 Save 버튼: 하단의 Save & Restart를 누르는 순간, 사이드바에 Face Library라는 새로운 메뉴가 나타난다. 이 과정을 거치지 않으면 “왜 나는 기능이 활성화가 안 되지?”라며 고뇌하게 될 것이다.
재시작이 완료되면 이제 우리 집 AI 보안관은 Frigate 얼굴 인식을 통해 가족의 얼굴을 기억할 준비를 마친 셈이다.
4. 얼굴 학습: 정확도를 높이는 머그샷 수집
AI에게 내 얼굴을 가르치는 과정은 매우 중요하다. 시스템의 신뢰도를 높이려면 실제 보안 카메라에 찍힌 모습으로 학습시켜야 한다. 폰으로 찍은 예쁜 사진보다는 광각 렌즈 특유의 왜곡이 반영된 이미지가 훨씬 효과적이기 때문이다.
- 기준 사진 등록: 우선 본인과 가족의 정면 사진 한 장씩을 업로드하고 이름을 등록한다.
- 데이터 수집: 카메라 앞을 평소처럼 왔다 갔다 한다. 그러면 시스템이 실시간으로 스냅샷을 찍어 **’Face Library’**에 쌓아둔다.
- 라벨링 작업: AI가 “이 사람 누구야?”라고 물어보는 사진들을 확인하며 “이건 나야”, “이건 와이프야”라고 매칭해준다. 인식률(Confidence score)이 90% 이상이면 녹색으로 표시되는데, 이 데이터가 쌓일수록 Frigate 얼굴 인식의 정교함은 점점 더 올라간다. 다양한 각도와 조도 차이를 반영한 사진들을 골고루 매칭해주는 것이 최적화의 핵심이다.
5. 자동화: 얼굴 인식으로 열리는 우리 집 대문
이제 대망의 하이라이트, 시스템과 홈어시스턴트(Home Assistant, HA)의 연동이다. 단순히 누가 왔는지 알림을 받는 수준을 넘어, 실제로 문을 열어주는 자동화를 구현해 보자. 하지만 문을 여는 행위는 보안과 직결되므로 철저한 로직이 필요하다.
시나리오: AI 기반 스마트 언락
카메라가 나와 와이프를 90% 이상의 확률로 식별하면, 해당 데이터가 HA로 전송되어 즉시 현관 도어락을 ‘언락(Unlock)’ 상태로 변경한다. 하지만 단순히 얼굴만 보고 문을 열어주기엔 보안이 중요하다. 누군가 내 사진을 들고 서 있거나, 아주 닮은 사람이 우연히 인식될 가능성을 배제해야 한다.
핵심 보안 조건: 재실 기반 필터링
나는 Frigate 얼굴 인식 트리거에 스마트폰 GPS를 통한 재실 상태를 조건으로 사용한다.
- 상태 변화 감지: 사용자의 상태가
Away(외출)에서Home(귀가)으로 변해야 한다. 즉, 계속 집에 있던 사람이 베란다에서 마당을 내다본다고 문이 열리는 일은 없어야 한다. - 시간 제한: 귀가 상태로 변한 지 5분 이내에 식별에 성공해야만 도어락을 연다. 이 로직을 적용하면, 오직 “방금 막 집에 도착한 주인님”에게만 문을 열어주는 지조 있는 시스템이 완성된다.
6. 설정 팁: Unknown(미등록자) 대응
시스템을 운영하다 보면 ‘모르는 사람’에 대한 대응도 중요하다. 외부 엔진 없이 셀프 환경에서도 Unknown 대응 임계값을 주기적으로 점검해야 한다.
- Unknown 알림: 등록되지 않은 외부인이 현관 앞에 나타났을 때 시스템이 Unknown으로 판단하면, 즉시 텔레그램으로 스냅샷을 전송하도록 설정하자.
- 임계값(Threshold) 조절: 식별 임계값이 너무 낮으면 오인식이 발생할 수 있다. 나는 처음에는 0.85~0.9로 했다가 생각보다 정확도가 높게 잘 나와서 지금은 0.9 이상만 인식하도록 하고 있다.
7. 결론: 보안의 끝은 결국 지능형 자동화다
이제 내 N100 서버는 단순히 녹화만 하는 기계를 넘어, Frigate 얼굴 인식 기술을 통해 사람을 파악하고 문까지 열어주는 든든한 디지털 집사가 되었다. 별도의 서버 없이 내장 기능 하나로 이 모든 것이 가능하다는 사실이 놀랍다.
설치를 마치고 나니 마음이 참 든든하다. 외부 엔진 없이 셀프 운영으로 유지보수 부담까지 줄어든 점이 특히 만족스럽다. 이제 장바구니를 들고 현관 앞에 서면, AI 엔진이 나를 알아보고 반겨줄 테니까. (물론 도어락의 ‘띠리링’ 소리가 그렇게 환청처럼 들리는 것이지만 말이다.)
함께 보면 좋은 글
연관 글을 같이 보면 설정과 운영 흐름을 더 빠르게 익힐 수 있습니다.