보완 인증
강아지 코 모델의 인식 성능을 보완하기 위한 연구. 인증 실패하는 상황의 보완
수단으로서 multi factor 수행. 최종적으로는 강아지 얼굴 모델로 성능을 보완.
기간 : 2023년 ~ 2025년 (과제 착수부터 종료까지)
contribution:
시나리오 설계, 모델 학습, 데이터 수집, 연차 보고서/최종 보고서 작성에 참여,KTR
기관을 통한 성능 인증 시험.
과제 연구 초기 아이디에이션 시점부터 완전히 종료될 때 까지 참여.
최종 구조 — 코 모델과 얼굴 모델을 각각 돌려 feature vector distance 를 구하고, 3:1로 weight sum.
flowchart LR
I["입력 사진"] --> N["강아지 코 모델 · 비문 · 정확도 99.4%"]
I --> F["강아지 얼굴 모델 · 정확도 95%"]
N --> DN["feature vector distance"]
F --> DF["feature vector distance"]
DN -->|"weight 3"| W["weight sum — 두 weight 의 합은 1"]
DF -->|"weight 1"| W
W --> T{"가중합 distance"}
T -->|"가까움"| OK["같은 개체 — 복합 정확도 99.8% 이상"]
T -->|"멂"| NO["다른 개체"]여기까지 오는 데 갈림길. 굵은 화살표가 고른 쪽.
flowchart TD
Q1{"보완 인증을 코 모델 결과에 종속시킬 것인가"}
Q1 -->|"종속 — 코 모델이 실패했을 때만 실행"| X1["결과 통합 · 사용자 신뢰성 · 사용성 문제"]
Q1 ==>|"독립 — 채택"| Y1["기존 코 모델의 당위성 우려가 남지만 통합이 단순하다"]
Y1 --> N1["더 성능이 낮은 모델도 코 모델을 보완할 수 있음이 확인되어 우려가 풀림"]
N1 --> Q2{"두 모델의 결과를 어떻게 합칠 것인가"}
Q2 -->|"feature vector concat — n+m 차원"| X2["성능은 비슷하고 연산량이 많다"]
Q2 ==>|"weight sum — 채택"| Y2["같은 성능에 연산량이 적다 · 3:1 에서 가장 좋았다"]
Y2 --> L["잃은 것 — 코 모델만으로 맞추던 것을 틀리는 경우도 생긴다. 보완되는 경우가 훨씬 많아 전체는 올라간다"]초기 상황(2023) - 2차 인증 (나중에 보완 인증으로 바뀜)
- “2차 인증”의 의미, 목적, use-case에 대한 명확하고 일관된 정의가 없음.
- “2차 인증”을 서로 다르게 인지 회사 내부에서도 다른 의견이 많음.
회의 진행 / 수집된 자료를 통해 내린 대략적 결론
- 사용 시점 정의. (각 시점에 따라 목적, 요구 정확도 / 신뢰성, 비용 / 난이도 다름)
a. 보험사 입장 “2차 검증”
b. 사용자 입장 “2FA(2단계 인증)”
c. 유기견 발견 “2차 확인”
초기 idea
- 치아, 발바닥, 울음 소리, 짖는 소리, 모질 패턴, 걷는 소리, 귀, 배, 항문, 강아지
점 패턴, 털색, 견종, 홍채, 두개골골격, 전신 사진, 다각도 사진, 보행 패턴.
(최종 결과는 강아지 얼굴 모델로 보완.)
- 신뢰성에 대한 공격 우려
- 2차 인증이 너무 정확하면 기존 모델이 필요없을 수 있음.
- 결과 통합 시 문제
2차인증 O | 2차인증 X | |
|---|---|---|
기존 모델 O | O | ? |
기존 모델 X | ? | X |
진행 방식
a. 독립적 2차 인증
i. 기존 코 모델의 당위성 우려. - (최종적으로는 더 성능이 낮은 모델이 코 모델 성능 보완 가능)
b. 강아지 코 모델 결과에 따른 2차인증 진행.
i. 결과 통합 문제, (사용자)신뢰성, 사용성 문제 (최종적으로는 독립적 2차 인증으로 진행)
데이터 수집 - 귀, 배, 항문, 치아, 발바닥
1. 강아지 카페에서 카페 사장님 도움을 받아 직접 수집(초도 데이터).
2. 데이터 업체를 통한 추가 수집.(귀, 배, 발바닥)
중반(2024)
프로젝트 참여 연구원 대부분 퇴사.
방향성 변경 - 귀, 배, 발바닥 인식을 중단 하고, 얼굴로 변경.
수집 난이도, product에 적용 가능 여부 고려.
외부 데이터 수집 업체에서는 귀, 배, 발바닥을 계속 수집하고 있는 상황 -> 데이터 수집 중단
-> 기존에 이미 지급한 선급금 만큼 수집되지 않아서 다른 데이터 수집으로 변경.
강아지 코의 경우 강아지 일생동안 형태가 유지되는 것이 알려져 있지만, 강아지 얼굴의 경우 미용 전후로 외모가 달라지는 문제.
사람 얼굴로 충분히 pretrained된 모델로 feasibility check하고 강아지 얼굴에도 적용.
같은 강아지가 미용 전과 미용 후 다른 강아지로 인식되는 문제
a. 미용 영향이 적은 눈코입만 남기는 방법.
미용 영향은 줄일 수 있지만, 정보가 줄어들어 대부분의 경우, 정확도가 떨어짐.
b. 미용 전후 사진 데이터 수집.
같은 강아지가 미용 전과 후 다른 강아지로 인식되는 문제 해결을 위한 데이터 수집.
강아지 미용 영상에서 추출.
어떤 회사에 강아지 얼굴 인식 기술 있다는 정보
비슷한 방법으로 할 수 있지 않을지? -> 찾아보니 사람에게 사용하는 안면 인식 기술을 동물에 맞게 적용한 기술을 사용중.(당시에 이미 시도하고 있던 방법.)
후반(2025)
- CTO까지 퇴사, 참여 연구원 중 혼자 남음.
강아지 얼굴 모델
- 강아지 코 모델 결과에 얼굴 모델 결과를 조합한 복합 결과에서, 얼굴 모델이 없었다면
맞췄을 것을 틀리게 만든 경우 보다, 비문 모델이 틀리던 상황에 보완을 하여 맞추게 변하는 경우가 훨씬 더 많아서 성능 향상.
- (Face모델 복합 방법 비교) - weight sum & feature vector concat
- 기존의 강아지 코 모델과 보완을 위한 강아지 얼굴 모델의 결과를 조합하여 성능을 올릴 수 있는 지 실험. → 두 가지 방법 모두 성능을 올릴 수 있음. 가장 성능이 좋은 지점에서 두 가지 방법에 큰 성능 차이는 없지만 연산량이 더 적은 weight sum을 사용.
weight sum & feature vector concat.
- 기존 모델과 보완 모델의 결과를 조합하는 두 가지 접근 방식.
weight sum
- 강아지 코 모델과, 강아지 얼굴 모델에서 추출한 feature vector distance를
각각 구하고, 각각의 distance에 weight줘서 계산. (weight의 합이 1이 되도록)
feature vector concat
- 기존 모델 n차원 feature vector와 보완 모델의 m차원 feature vector를
연결해서 n+m차원 feature vector로 만들어서 연산.
weight sum
- feature vector distance의 weight sum이므로, distance를 먼저 구해야함.
- 강아지 코 모델 정확도 99.4%, 강아지 얼굴 모델 95%의 결과 조합으로 99.8%
이상의 정확도를 만들 수 있음.
- 성능이 낮은 모델을 조합했는데 더 성능 좋은 모델이 됨.
- 코 모델과 얼굴 모델 weight의 비율이 약 3:1 정도 일 때 가장 성능이 좋았음.
- 기존 처럼 코 모델만 사용했을 때 정답을 잘 맞추던 상황에서, 괜히 얼굴
모델을 조합한 것 때문에 오답으로 틀리게 되는 경우는 없을지?
- 그런 경우도 있음. 다만 기존 코 모델이 오답을 내던 경우가 보완되는 경우가 훨씬 많아서
전체적으로 성능 증가.
배운점/얻은 것.
- 참여 연구원 퇴사 후 혼자 남음 -> 연구를 직접 주도한 경험.
- (시나리오 설계, 모델 학습 및 테스트, 데이터 수집 전반 과정)
- 과제 연구 초기 아이디에이션 시점부터 완전히 종료될 때까지 참여한 경험.
- 중소벤처 기업부 과제 연차보고서/최종보고서 작성 경험.
- KTR 기관을 통한 성능 인증 시험 경험.
- 외부 데이터 수집업체를 통한 데이터 수집 경험.