Skip to content
@PuppyBara

PuppyBara

Findog : 안면 인식 AI와 비문 인식 AI를 활용한 실종 반려견 찾기 APP

🏆 2024 대전광역시 공공데이터 활용 창업 경진 대회 우수상

  • 개발 기간 : 2024.06.15 ~ 2024.07.09

프로젝트 소개

Findog

지난 10년간 반려동물 양육비율은 점점 증가하는 추세를 보이고 있습니다. 조사 결과 이에 따라
유실 및 유기동물 수의 추이 또한 매해 증가하는 것으로 확인되었습니다. 국내에서는 이런 반려동물의
유실 방지를 위해 식별칩을 삽입하고 부착하여 신고하는 시스템을 의무 시행 중에 있지만 가족의 품에
돌아가는 유실 동물의 비율은 12%에 불과한 것이 현실입니다. 또한, 기존 방식으로는 반려견을
잃어버렸을 때 유기돌물 공고를 확인하기 위해 여러 보호소의 홈페이지에 들어가 보호소 및 개인이
올린 공고를 하나하나 확인해야 하는 것이 현 주소입니다.

이에 저희는 공공데이터를 활용하여 수많은 공고들을 한 군데에서 통합적으로 확인할 수 있는 플랫폼을
만들고 실종된 반려견을 안면 인식 AI와 비문 인식 AI를 활용하여 비슷한 강아지를 쉽게 조회할 수 있도록
함으로써 최대한 많은 유실 동물들의 자신들의 집으로 돌아갈 수 있도록 도움을 드릴 수 있습니다.

주요 기능 소개

(1) 실종 공고 등록

실종된 반려견의 사진, 이름, 나이, 품종, 성별, 털색, 중성화 여부와 같은 정보들을 입력합니다. 해당 사진을
통해 Findog의 AI가 자동으로 사진의 비문을 인식합니다.


(2) AI를 이용한 반려견 찾기

AI로 검색하기 버튼을 이용하여 자신의 반려견과 유사한 반려견을 찾습니다.
잃어버린 자신의 반려견을 선택하고 사용자가 원하는 자신의 반려견과의 유사도를 설정합니다.
선택한 사진을 토대로 AI가 비문을 탐지합니다. 비문이 탐지되면 해당 비문을 토대로
비문 인식 AI를 통해 유사한 강아지의 목록을 반환합니다.
비문이 탐지 되지 않을 시, 안면 인식 AI를 통해 유사한 강아지의 목록을 반환합니다.



(3) 개인 보호 및 보호소 공고 확인

Findog에서 각 보호소의 데이터를 통합적으로 제공하기 때문에 기존처럼 다른 보호소의 공고를
확인하기 위해 타 사이트를 접속할 필요 없이 원하는 지역, 보호소를 선택하면 해당 보호소 혹은
개인의 공고를 확인할 수 있습니다.
공고는 사용자의 의도에 맞춰 보호소별, 지역별, 최신순 등으로 정렬하여 조회할 수 있습니다. Image

AI 소개

비문 탐지 AI

crop dog nose(강아지 코 추출)

객체 탐지(object-detection)은 한 이미지에서 객체와 그 경계 상자(bounding-box)를 탐지하는 기술이빈다.
객체 탐지 알고리즘은 이미지를 입력으로 받고, 경계 상자와 객체 클라스 리스트를 출력하여 이때 경계 상자에
대응하는 예측 클래스와 클래스의 신뢰도를 출력합니다. 저희는 YoloV5n와 YoloV8s 모델을 사용하였습니다.

비문 인식 AI

전처리

비문 인식 AI의 전처리를 이미지 증강 및 이미지 크기 변환을 진행합니다.

  1. 이미지를 GrayScale을 통해 흑백처리합니다.
  2. 96X96의 크기로 이미지 사이즈를 조정합니다. 이후 조정된 이미지의 픽셀들을 0~1의 값으로 정규화합니다.
  3. imgAug 라이브러리를 이용하여 이미지 데이터를 증강합니다.
    a. 해당 전처리 과정에서는 가우시안 블러, 확대, 축소, 회전, 이동, 순서 변경을 적용하였습니다.
    b. 가우시안 블러란?
    • 가우스 함수를 이용하여 합성곱을 통해 이미지의 노이즈를 줄이는 기법
  4. 이미지 증강 이후 이미지를 모델에 맞게 차원을 변환합니다.

인식

사용자가 선택한 이미지와 비교할 이미지 리스트의 이미지들을 전처리합니다.
비교할 이미지 리스트를 돌면서 샴네트워크 기반 모델을 이용하여 기본 이미지와 비교할 이미지의
유사도 결과를 예측합니다. 예측한 결과가 사용자가 선택한 유사도보다 높다면
비슷한 비문으로 판단합니다.

샴 네트워크

두 사진을 입력으로 받아 두 이미지를 벡터화 시킨 후, 두 벡터간의 유사도를 반환하는 네트워크입니다. 샴

  • 모델 구조

    • 두 입력 이미지를 각각 처리하는 두 개의 동일한 신경망으로 구성됩니다.
    • 이미지를 입력으로 받으면 여러번 합성곱 연산을 거쳐 하나의 벡터 이미지로 인코딩합니다.
    • 이 때, 두 네트워크는 동일한 가중치를 공유합니다.
  • 두 사진이 같은 경우 유사도를 1, 다른 경우 유사도를 0으로 주어 모델을 학습시켰습니다.

  • 이를 통해 추출된 벡터 간 거리는 유사한 이미지끼리는 가까운 거리, 다른 이미지 간에는 먼 거리를 가집니다.

안면 인식 AI

전처리

안면 인식 AI의 전처리를 오픈소스인 Dlib와 face_recognition 라이브러리를 이용하여 진행합니다.
이미지를 입력받으면 dlib의 cnn_face_detection을 사용하여 이미지 내에서 얼굴을 감지합니다.
감지한 이미지는 face_recognition을 통해 얼굴 인코딩을 진행합니다.
얼굴 인코딩은 얼굴 특징을 나타내는 128차원 벡터로 구성되며 이렇게 진행된 얼굴의 인코딩 정보를
라벨링하여 저장하게 됩니다.

인식

인식할 이미지를 입력받아 전처리를 통해 인코딩합니다. 두 얼굴의 인코딩 벡터 간의 유사도를
compare_face와 face_distance를 통해 유클리드 거리를 계산합니다.
계산된 유클리드 거리의 값이 작을수록 두 인코딩 벡터가 유사하다는 것을 의미, 즉 두 얼굴이
비슷하다는 것을 의미합니다. 계산된 거리가 설정한 임계값보다 작다면 같은 안면으로 인식
크다면 다른 안면으로 인식합니다.

아키텍처

Untitled (2)

팀원 소개

곽미래

  • 백엔드
  • CI/CD

김수혁

  • 비문 인식 AI
  • 안면 인식 AI

이주혁

  • 비문 탐지 AI
  • AI 서버 구축

조은영

  • 프론트엔드

최서현

  • 팀장
  • 백엔드
  • 디자인

Popular repositories Loading

  1. BE BE Public

    AI를 활용한 실종 반려견 찾기 APP, Findog 🐶

    Java

  2. AI AI Public

    AI를 활용한 실종 반려견 찾기 APP, Findog 🐶

    Python 1

  3. FE FE Public

    Dart

  4. .github .github Public

Repositories

Showing 4 of 4 repositories
  • .github Public
    PuppyBara/.github’s past year of commit activity
    0 0 0 0 Updated Mar 3, 2025
  • BE Public

    AI를 활용한 실종 반려견 찾기 APP, Findog 🐶

    PuppyBara/BE’s past year of commit activity
    Java 0 0 0 0 Updated Aug 31, 2024
  • FE Public
    PuppyBara/FE’s past year of commit activity
    Dart 0 0 0 0 Updated Jul 8, 2024
  • AI Public

    AI를 활용한 실종 반려견 찾기 APP, Findog 🐶

    PuppyBara/AI’s past year of commit activity
    Python 0 AGPL-3.0 1 0 0 Updated Jul 8, 2024

Most used topics

Loading…