KR102117860B1 - 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기 - Google Patents

동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기 Download PDF

Info

Publication number
KR102117860B1
KR102117860B1 KR1020180121037A KR20180121037A KR102117860B1 KR 102117860 B1 KR102117860 B1 KR 102117860B1 KR 1020180121037 A KR1020180121037 A KR 1020180121037A KR 20180121037 A KR20180121037 A KR 20180121037A KR 102117860 B1 KR102117860 B1 KR 102117860B1
Authority
KR
South Korea
Prior art keywords
image
animal
region
information
present disclosure
Prior art date
Application number
KR1020180121037A
Other languages
English (en)
Other versions
KR20200044209A (ko
Inventor
고정욱
지정민
김동국
Original Assignee
주식회사 핏펫
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 핏펫 filed Critical 주식회사 핏펫
Priority to KR1020180121037A priority Critical patent/KR102117860B1/ko
Priority to PCT/KR2018/012008 priority patent/WO2020075888A1/ko
Priority to KR1020200028977A priority patent/KR102487825B1/ko
Publication of KR20200044209A publication Critical patent/KR20200044209A/ko
Application granted granted Critical
Publication of KR102117860B1 publication Critical patent/KR102117860B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06K9/00362
    • G06K9/3233
    • G06K9/627
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

본 개시의 몇몇 실시예에 따른, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은, 사용자 단말기의 카메라로 촬영된 동물의 안면이 포함된 제 1 이미지를 획득하는 동작, 상기 제 1 이미지를 사전 학습된 종 분류 모델에 입력하여 상기 동물의 종에 대한 제 1 정보를 획득하는 동작, 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작, 사전 설정된 조건을 만족된 경우 상기 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정하는 동작, 상기 관심 영역이 결정된 경우, 상기 제 1 이미지 내에서 상기 관심 영역을 포함하는 제 2 이미지를 추출하는 동작 및 상기 제 2 이미지가 추출된 경우, 상기 제 1 정보 및 상기 제 2 이미지를 서버에 전송하는 동작을 포함할 수 있다.

Description

동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기{COMPUTER PROGRAM AND THEMINAL FOR PROVIDING INDIVIDUAL ANIMAL INFORMATION BASED ON THE FACIAL AND NOSE PATTERN IMANGES OF THE ANIMAL}
본 개시는 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램 및 단말기에 관한 것으로서, 구체적으로 동물의 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 판독가능 저장 매체에 저장된 프로그램 및 단말기에 관한 것이다.
애완 동물에 대한 수요가 증가하고 있다. 그리고, 애완 동물의 수요가 증가함에 따라, 한 해 유기 및 유실 동물의 발생 건수 역시 증가하고 있다.
이러한 문제를 해결하기 위해, 정부는 유기된 동물의 소유주를 쉽게 찾을 수 있도록 동물 등록제를 시행하고 있다. 동물 등록을 위해서, 애완 동물에 무선 식별 칩을 삽입하는 내장형과 무선 식별 칩이 부착된 인식표를 애완 동물의 목에 걸어주는 외장형으로 나뉜다.
내장형인 식별 칩은 동물의 체내에 주입한다는 특성에 의해 비인도적이며, 삽입 후 체내 부작용이 발생할 수 있는 문제가 있다. 그리고 외장형인 인식표는 분실될 염려가 있으며 의도적으로 인식표를 제거하여 유기한 경우에는 추적이 불가능한 문제가 있다.
그리하여 최근에는, 개체를 촬영한 이미지를 이용하는 기술에 대한 연구가 활발히 진행되고 있다. 이중에서 비문은 동물의 코에서 발견할 수 있는 고유의 무늬로 사람의 지문과 같은 역할을 할 수 있다는 점에서 전술한 동물 등록제의 대안 기술로 요구되고 있다.
한국 등록특허 10-1788272는 생체 인식을 통한 동물 인식 및 등록 관리 방법을 제공한다.
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 동물의 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 판독가능 저장 매체에 저장된 프로그램 및 단말기를 제공하고자 한다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따라, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 사용자 단말기로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은: 사용자 단말기의 카메라로 촬영된 동물의 안면이 포함된 제 1 이미지를 획득하는 동작; 상기 제 1 이미지를 사전 학습된 종 분류 모델에 입력하여 상기 동물의 종에 대한 제 1 정보를 획득하는 동작; 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작; 사전 설정된 조건을 만족된 경우 상기 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정하는 동작; 상기 관심 영역이 결정된 경우, 상기 제 1 이미지 내에서 상기 관심 영역을 포함하는 제 2 이미지를 추출하는 동작; 및 상기 제 2 이미지가 추출된 경우, 상기 제 1 정보 및 상기 제 2 이미지를 서버에 전송하는 동작; 을 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 종 분류 모델을 학습시키기 위한 제 1 학습 데이터는, 동물의 안면이 포함된 이미지 데이터를 학습 데이터의 입력으로 하고, 상기 동물의 안면이 포함된 이미지 데이터에 동물의 종에 대한 제 1 분류 클래스를 라벨로 하여 생성될 수 있다. 그리고 상기 종 분류 모델은, 상기 제 1 학습 데이터를 포함하는 제 1 학습 데이터 세트를 이용하여 상기 동물의 안면과 매칭되는 상기 동물의 종에 대한 분류를 학습하고, 상기 제 1 이미지에 기초하여 상기 제 1 정보를 획득하도록 할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 종 분류 모델은, 상기 제 1 이미지를 입력 노드로 입력 받으면, 상기 제 1 분류 클래스 각각에 대한 컨피던스 스코어(confidence score)를 출력 노드에서 출력하고, 상기 컨피던스 스코어 중 가장 높은 값을 가지는 상기 제 1 분류 클래스를 제 1 정보로 획득할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작은, 상기 제 1 이미지를 사전 학습된 코 영역 인식 모델에 입력하여 상기 제 1 이미지 내에서 상기 제 1 영역의 위치를 인식하는 동작을 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 코 영역 인식 모델은, 동물의 안면이 포함된 이미지 데이터를 포함하는 제 2 학습 데이터 세트 및 바운딩 박스(bounding box)에 대한 좌표를 이용하여 상기 동물의 안면의 이미지와 매칭되는 코 영역의 위치를 학습하고, 상기 제 1 이미지 내에서 상기 제 1 영역의 위치를 인식할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작은, 상기 제 1 이미지 내에서 상기 동물의 눈을 포함하는 제 2 영역의 위치 및 상기 동물의 입을 포함하는 제 3 영역을 인식하는 동작; 및 상기 제 2 영역의 위치 및 상기 제 3 영역의 위치에 기초하여 상기 제 1 영역의 위치를 인식하는 동작; 을 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 사전 설정된 조건을 만족된 경우 상기 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정하는 동작은, 상기 제 1 영역 내에서 상기 동물의 우측 콧구멍(nostril) 및 좌측 콧구멍을 인식하는 동작; 상기 우측 콧구멍 및 상기 좌측 콧구멍의 원형성(circularity) 및 상기 콧구멍의 관성률(Inertia ratio) 중 적어도 하나에 기초하여 상기 동물이 촬영된 포즈(pose)를 인식하는 동작; 및 상기 포즈가 기 설정된 포즈에 매칭되는 경우 상기 사전 설정된 조건이 만족되었다고 인식하는 동작;을 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은, 상기 사전 설정된 조건을 만족되는 경우, 상기 우측 콧구멍 및 상기 좌측 콧구멍 간의 거리를 산출하는 동작; 상기 거리에 기초하여 상기 관심 영역의 크기 및 상기 관심 영역의 위치를 결정하는 동작;을 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은, 상기 사전 설정된 조건이 만족되지 않은 경우, 상기 사전 설정된 조건을 만족하는 제 1 이미지가 획득되도록 재촬영을 요구하는 인디케이터를 디스플레이하도록 디스플레이부를 제어하는 동작;을 더 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은, 상기 사전 설정된 조건을 만족하지 못하는 경우에, 상기 제 1 이미지를 정면화(Frontalization)하여 상기 포즈가 상기 기 설정된 포즈에 매칭되도록 만드는 동작;을 더 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 이미지를 정면화하여 상기 포즈가 상기 기 설정된 포즈에 매칭되도록 만드는 동작은, 상기 제 1 영역의 이미지 상에서 콧구멍들의 특징점을 추출하는 동작; 및 상기 추출한 콧구멍들의 특징점이 메모리에 사전 저장된 동물을 정면에서 촬영한 이미지 상에서 콧구멍들의 특징점과 매칭되도록 상기 제 1 이미지를 보정하는 동작;을 더 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 제 1 정보 및 상기 제 2 이미지를 상기 서버에 전송한 후, 상기 서버로부터 상기 전송된 제 1 정보 및 상기 제 2 이미지에 대응하는 상기 동물의 개체 정보를 수신하는 동작; 및 상기 개체 정보를 디스플레이하는 동작;을 더 포함할 수 있다.
또한, 본 개시의 몇몇 실시예에 있어서, 상기 개체 정보는, 상기 제 2 이미지를 상기 서버에서 로컬 히스토그램(local histogram)에 기초하여 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지에 맵핑(mapping)된 개체 정보이고, 상기 제 1 비문 이미지는, 상기 서버에 저장되어 있는 복수의 비문 이미지 중 하나일 수 있다.
한편, 본 개시의 다른 몇몇 실시예에 따른, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 서버로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은: 사용자 단말기로부터 상기 사용자 단말기의 카메라로 촬영된 동물의 안면이 포함된 제 1 이미지로부터 획득한 상기 동물의 종에 대한 제 1 정보 및 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역 내에서 관심 영역을 포함하는 제 2 이미지를 수신하는 동작; 상기 제 2 이미지를 로컬 히스토그램에 기초하여 전처리하는 동작; 상기 서버의 메모리에 저장된 복수의 비문 이미지에서 상기 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색하는 동작; 및 상기 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지 및 상기 제 1 비문 이미지에 맵핑된 개체 정보 중 적어도 하나를 획득하는 동작; 및 상기 제 1 비문 이미지 및 상기 개체 정보 중 적어도 하나를 상기 사용자 단말기에 전송하는 동작;을 포함할 수 있다.
또한, 본 개시의 다른 몇몇 실시예에 있어서, 상기 복수의 비문 이미지 중 상기 제 1 특징점에 대응하는 제 2 특징점에서 상기 제 1 정보에 대응하는 코 주름에 대한 제 2 정보를 갖는 상기 제 1 비문 이미지를 검색하는 동작은, 상기 제 1 특징점과 상기 제 2 특징점의 위치가 어긋나는 경우, 상기 제 1 특징점의 위치를 이동시키기 위해 상기 제 2 이미지를 보정하는 동작; 및 상기 보정한 제 2 이미지를 이용하여 상기 제 1 비문 이미지를 검색하는 동작; 을 더 포함할 수 있다.
또한, 본 개시의 다른 몇몇 실시예에 있어서, 상기 제 1 특징점과 상기 제 2 특징점의 위치가 어긋나는 경우, 상기 제 1 특징점의 위치를 이동시키기 위해 상기 제 2 이미지를 보정하는 동작은, 상기 제 1 특징점과 상기 제 2 특징점의 위치가 일치하도록 상기 제 2 이미지를 종횡 이동시키거나 상기 제 2 이미지를 회전 이동 시키는 동작; 을 더 포함할 수 있다.
본 개시에서 얻을 수 있는 기술적 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시는 동물의 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 판독가능 저장 매체에 저장된 프로그램 및 단말기를 제공할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 구체적인 세부사항들 없이 실시될 수 있음은 명백할 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 사용자 단말기 및 서버를 개략적으로 나타낸 도면이다.
도 2는 본 개시의 몇몇 실시예에 따른 사용자 단말기의 블록도이다.
도 3은 본 개시의 몇몇 실시예에 따른 동물의 제 1 정보 및 제 2 이미지를 서버에 전송하는 동작을 나타내는 흐름도이다.
도 4는 본 개시의 몇몇 실시예에 따른 컨벌루셔널 뉴럴 네트워크(Convolutional neural network)를 나타내는 개략도이다.
도 5는 본 개시의 몇몇 실시예에 따른 종 분류 모델을 개략적으로 설명하기 위한 도면이다.
도 6은 본 개시의 몇몇 실시예에 따라 종 분류 모델을 이용하여 동물의 종에 대한 정보를 획득하는 방법의 일례를 설명하기 위한 도면이다.
도 7은 본 개시의 몇몇 실시예에 따른 동물의 코를 포함하는 제 1 영역을 인식하는 방법을 설명하기 위한 도면이다.
도 8은 본 개시의 몇몇 실시예에 따른 동물의 코를 포함하는 제 1 영역을 인식하는 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 몇몇 실시예에 따른 사전 설정된 조건이 만족되는지 인식하는 동작을 나타내는 흐름도이다.
도 10은 본 개시의 몇몇 실시예에 따른 콧구멍을 인식하는 동작의 예시를 나타내는 도면이다.
도 11은 본 개시의 몇몇 실시예에 따른 콧구멍의 원형성 측정하는 방법의 일례를 설명하기 위한 도면이다.
도 12는 본 개시의 몇몇 실시예에 따른 콧구멍의 관성률을 측정하는 방법의 일례를 설명하기 위한 도면이다.
도 13은 본 개시의 몇몇 실시예에 따른 제 1 영역 내에서 관심 영역을 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 14는 본 개시의 몇몇 실시예에 따른 사용자 단말기에 동물의 개체 정보가 제공되는 방법의 일례를 설명하기 위한 흐름도이다.
도 15은 본 개시의 몇몇 실시예에 따른 제 2 이미지를 전처리한 예시를 나타낸 도면이다.
다양한 실시예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나 이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 감지될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다. 구체적으로, 본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.
이하, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략한다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 개시의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
더불어, 본 명세서에서 사용되는 용어 "정보" 및 "데이터"는 종종 서로 상호교환 가능하도록 사용될 수 있다.
이하의 설명에서 사용되는 구성 요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
본 개시의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 개시를 설명하는데 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 사용자 단말기 및 서버를 개략적으로 나타낸 도면이다.
도 1에 도시된 바와 같이, 사용자 단말기(100)는 네트워크(300)를 통해 서버(200)와 유/무선으로 연결될 수 있다.
본 개시의 실시예에 따르면, 사용자 단말기(100)는 카메라부(110)로 촬영한 동물의 안면이 포함된 제 1 이미지를 획득할 수 있다. 사용자 단말기(100)는 제 1 이미지로부터 촬영한 동물의 종에 대한 제 1 정보 및 제 1 이미지 내의 관심 영역을 포함하는 제 2 이미지를 획득할 수 있다. 사용자 단말기(100)는 획득한 제 1 정보 및 제 2 이미지를 네트워크(300)를 통해 서버(200)에 전송할 수 있다. 사용자 단말기(100)는 서버(200)에 전송한 제 1 정보 및 제 2 이미지에 기초하여 서버(200)로부터 상기 촬영한 동물의 개체 정보를 수신할 수 있다. 사용자 단말기(100)는 수신한 동물의 개체 정보를 디스플레이할 수 있다. 여기서 동물의 개체 정보는 동물의 종, 성별, 특이점 중 적어도 어느 하나를 포함할 수 있다. 또한, 동물의 개체 정보는 동물의 주인의 이름, 연락처, 주소 중 적어도 어느 하나를 포함할 수 있다. 이러한 동물의 개체 정보는 촬영한 동물의 주인을 확인하는데 사용될 수 있다. 전술한 동물의 개체 정보는 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
전술한 사용자 단말기(100)의 제 1 정보 및 제 2 이미지를 서버(200)에 송신하고 서버(200)로부터 동물의 개체 정보를 수신하는 구체적인 설명은 이하 도 2 내지 도 13에서 자세히 설명한다.
다음으로, 본 개시의 몇몇 실시예에 따른 서버(200)는 사용자 단말기(100)로부터 상기 제 1 정보 및 상기 제 2 이미지를 수신할 수 있다. 서버(200)는 제 1 정보 및 제 2 이미지에 기초하여 서버(200)의 메모리에 저장된 제 1 비문 이미지를 검색할 수 있다. 서버(200)는 검색한 비문 이미지에 맵핑(mapping)된 개체 정보를 획득할 수 있다. 서버(200)는 맵핑된 개체 정보를 네트워크(300)를 통해 사용자 단말기(100)에 송신할 수 있다. 전술한 서버(200)가 제 1 정보 및 제 2 이미지에 기초하여 동물의 개체 정보를 사용자 단말기(100)에 송신하는 방법은 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
전술한 서버(200)가 동물의 개체 정보를 사용자 단말기(100)에 송신하는 구체적인 동작은 이하 도 14 내지 도 15에서 자세히 설명한다.
도면에 개시되지는 않았지만, 서버(200)는 제어부, 네트워크부 및 메모리를 포함할 수 있다. 상술한 서버(200)의 각 구성요소들은 후술할 사용자 단말기(100)에 포함된 구성 요소들과 유사한 바 이에 대한 자세한 설명은 생략한다. 다만, 이에 한정되는 것은 아니고 서버(200)는 상술한 구성 요소들보다 많거나 적은 구성요소를 포함할 수 있다.
본 개시의 몇몇 실시예에 따르면 서버(200)의 메모리는 후술할 본 개시의 몇몇 실시예에 따른 서버(200)의 동작들을 수행하기 위한 컴퓨터 프로그램을 저장할 수 있다. 서버(200)의 메모리에 저장된 컴퓨터 프로그램은 서버(200)의 제어부에 의해 판독되어 구동될 수 있다. 또한, 서버(200)의 메모리는 서버(200)의 제어부의 동작을 위한 프로그램을 저장할 수 있다.
다음으로, 본 개시의 몇몇 실시예에 따른 네트워크(300)는 공중전화 교환망(PSTN: Public Switched Telephone Network), xDSL(x Digital Subscriber Line), RADSL(Rate Adaptive DSL), MDSL(Multi Rate DSL), VDSL(Very High Speed DSL), UADSL(Universal Asymmetric DSL), HDSL(High Bit Rate DSL) 및 근거리 통신망(LAN) 등과 같은 다양한 유선 통신 시스템들을 사용할 수 있다.
또한, 여기서 제시되는 네트워크(300)는 CDMA(Code Division Multi Access), TDMA(Time Division Multi Access), FDMA(Frequency Division Multi Access), OFDMA(Orthogonal Frequency Division Multi Access), SCFDMA(Single Carrier-FDMA) 및 다른 시스템들과 같은 다양한 무선 통신 시스템들을 사용할 수 있다.
그 외에도, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등 이 사용자 단말기(100) 및 서버(200)와의 통신 등에 이용될 수 있다.
본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
도 2는 본 개시의 몇몇 실시예에 따른 사용자 단말기의 블록도이다.
본 개시의 몇몇 실시예에 따르면, 사용자 단말기(100)는 카메라부(110), 메모리(120), 제어부(130), 네트워크부(140) 및 디스플레이부(150)를 포함할 수 있다. 다만, 전술한 구성 요소들은 사용자 단말기(100)를 구현하는데 있어서 필수적인 것은 아니어서, 사용자 단말기(100)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다. 여기서, 각각의 구성 요소들은 별개의 칩이나 모듈이나 장치로 구성될 수 있고, 하나의 장치 내에 포함될 수도 있다.
본 개시의 몇몇 실시예에 따른 사용자 단말기(100)는 PC(personal computer), 노트북(note book), 모바일 단말기(mobile terminal), 스마트 폰(smart phone), 태블릿 PC(tablet pc) 등일 수 있다. 다만, 이에 한정되는 것은 아니며, 사용자 단말기(100)는 영상을 촬영할 수 있는 카메라부(110)가 구비된 모든 종류의 단말기일 수 있다.
사용자 단말기(100)는 영상 정보의 입력을 위하여, 하나 또는 복수의 카메라부(110)를 구비할 수 있다. 카메라부(110)는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리할 수 있다. 처리된 화상 프레임은 디스플레이부(150)에 표시되거나 메모리(120)에 저장될 수 있다.
한편, 사용자 단말기(100)에 구비되는 복수의 카메라부(110)는 매트릭스 구조를 이루도록 배치될 수 있으며, 이와 같이 매트릭스 구조를 이루는 카메라부(110)를 통하여, 사용자 단말기(100)에는 다양한 각도 또는 초점을 갖는 복수의 영상정보가 입력될 수 있다.
본 개시의 몇몇 실시예에 따른 카메라부(110)는 동물의 안면이 포함된 제 1 이미지를 획득할 수 있다. 여기서 제 1 이미지는 영상 이미지 또는 프리뷰 이미지일 수 있다. 전술한 제 1 이미지는 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
제 1 이미지는 사용자가 사용자 단말기(100)로 촬영한 동물의 종에 대한 제 1 정보를 획득하기 위해 이용될 수 있다. 또한, 상기 제 1 이미지는 촬영된 동물의 코를 포함하는 제 1 영역 내에서 관심 영역을 포함하는 제 2 이미지를 추출하기 위해 이용될 수 있다.
카메라부(110)가 획득한 제 1 이미지는 메모리(120)에 저장될 수 있다. 또한, 상기 제 1 이미지는 네트워크부(140)를 통해 서버(200)에 전송될 수도 있다.
메모리(120)는 사용자 단말기(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 메모리(120)는 사용자 단말기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 사용자 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 사용자 단말기(100)의 기본적인 기능을 위하여 출고 당시부터 사용자 단말기(100) 상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(120)에 저장되고, 사용자 단말기(100) 상에 설치되어, 제어부(130)에 의하여 사용자 단말기(100)의 동작(또는 기능)을 수행하도록 구동될 수 있다.
메모리(120)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 사용자 단말기(100)는 인터넷(internet)상에서 상기 메모리(170)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작될 수도 있다.
본 개시의 몇몇 실시예에 따른 메모리(120)는 제 1 정보를 획득 및 제 2 이미지를 추출하여 서버(200)에 상기 제 1 정보 및 제 2 이미지를 전송하는 동작을 수행하기 위한 컴퓨터 프로그램을 저장할 수 있다. 메모리(120)에 저장된 컴퓨터 프로그램은 제어부(130)에 의해 판독되어 구동될 수 있다. 또한, 메모리(120)는 제어부(130)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들(예를 들어, 동물의 안면이 포함된 제 1 이미지, 동물의 종에 대한 제 1 정보, 관심 영역을 포함하는 제 2 이미지 및 동물의 개체 정보 등)을 임시 또는 영구 저장할 수도 있다. 메모리(120)는 디스플레이 및 음향에 관한 데이터를 저장할 수 있다.
제어부(130)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 딥 러닝을 위한 프로세서를 포함할 수 있다.
본 개시의 몇몇 실시예에 따른 제어부(130)는 메모리(120)에 저장된 컴퓨터 프로그램을 판독하여 제 1 이미지로부터 사용자가 촬영한 동물의 종에 대한 제 1 정보 및 제 1 이미지 내에서 관심 영역을 포함하는 제 2 이미지를 추출할 수 있다.
본 개시의 몇몇 실시예에 따라 제어부(130)는 신경망의 학습을 위한 계산을 수행할 수 있다. 제어부(130)는 딥 러닝(DN: deep learning)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피쳐(feature) 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다.
제어부(130)의 CPU, GPGPU, 및 TPU 중 적어도 하나가 모델의 학습을 처리할 수 있다. 예를 들어, CPU 와 GPGPU가 함께 모델의 학습, 모델을 이용하여 촬영한 동물의 종에 대한 제 1 정보의 획득 및 제 1 이미지 내에서 관심 영역을 포함하는 제 2 이미지의 추출에 대한 연산을 처리할 수 있다. 또한, 본 개시의 몇몇 실시예에서 복수의 컴퓨팅 장치의 프로세서를 함께 사용하여 모델의 학습, 모델을 통한 상기 제 1 정보의 획득 및 상기 제 2 이미지의 추출 중 적어도 하나에 대한 연산을 처리할 수 있다. 또한, 본 개시의 몇몇 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.
본 개시의 몇몇 실시예에서 사용자 단말기(100)는 CPU, GPGPU, 및 TPU 중 적어도 하나를 이용하여 모델을 분산하여 처리할 수 있다. 또한 본 개시의 몇몇 실시예에서 사용자 단말기(100)는 다른 컴퓨팅 장치와 함께 모델을 분산하여 처리할 수 있다.
네트워크부(140)는 사용자 단말기(100)와 무선 통신 시스템 사이, 사용자 단말기(100)와 다른 단말기(미도시) 사이, 또는 사용자 단말기(100)와 서버(200) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 네트워크부(140)는 사용자 단말기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있으며, 상기 무선 인터넷 접속을 위한 모듈은 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 데이터를 송수신할 수 있다.
디스플레이부(150)는 사용자 단말기(100)에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이부(150)는 사용자 단말기(100)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부(150)는 액정 디스플레이(liquid crystal display, LCD), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display, TFT LCD), 유기 발광 다이오드(organic light-emitting diode, OLED), 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전자잉크 디스플레이(e-ink display) 중에서 적어도 하나를 포함할 수 있다.
이하에서 도 3 내지 도 13을 참조하여, 본 개시의 몇몇 실시예에 따른 사용자 단말기(100)의 동작을 제어하는 제어부(130)에 대해 자세히 설명한다.
도 3은 본 개시의 몇몇 실시예에 따른 동물의 제 1 정보 및 제 2 이미지를 서버에 전송하는 동작을 나타내는 흐름도이다.
본 개시의 몇몇 실시예에 따라 제어부(130)는 카메라부(110)로부터 촬영된 동물의 안면이 포함된 제 1 이미지를 획득할 수 있다(S210).
구체적으로, 제어부(130)는 이미지 촬영 명령에 기초하여 카메라부(110)로부터 촬영된 동물의 안면이 포함된 제 1 이미지를 획득할 수 있다. 예를 들어, 사용자가 사용자 단말기(100)의 카메라부(110)로 동물을 촬영하는 경우에, 제어부(130)는 동물의 안면이 모두 포함되도록(예를 들어, 사용자가 촬영하는 동물의 눈, 코, 입 및 귀가 모두 포함되는)하는 촬영 명령을 나타내는 사용자 인터페이스를 디스플레이부(150)를 통해 디스플레이할 수 있다. 여기서 제 1 이미지는 영상 이미지 또는 프리뷰 이미지일 수도 있다.
다음으로, 제어부(130)는 제 1 이미지를 사전 학습된 종 분류 모델에 입력하여 촬영된 동물의 종에 대한 제 1 정보를 획득할 수 있다(S220).
이하에서 도 4 내지 도 6을 참조하여, 본 개시의 몇몇 실시예에 따른 제 1 정보를 획득하는 방법에 대해 자세히 설명한다.
도 4는 본 개시의 몇몇 실시예에 따른 컨벌루셔널 뉴럴 네트워크(Convolutional neural network)를 나타내는 개략도이다.
본 명세서에 걸쳐, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 신경망을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크 (CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크 등 을 포함할 수 있다.
도 4에 도시된 컨벌루셔널 뉴럴 네트워크는 딥 뉴럴 네트워크의 일종으로서, 컨벌루셔널 레이어를 포함하는 신경망을 포함한다. 컨벌루셔널 뉴럴 네트워크는 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptorns)의 한 종류이다. CNN은 하나 또는 여러 개의 컨벌루셔널 레이어와 이와 결합된 인공 신경망 계층들로 구성될 수 있다. CNN은 가중치와 풀링 레이어(pooling layer)들을 추가로 활용할 수 있다. 이러한 구조 덕분에 CNN은 2 차원 구조의 입력 데이터를 충분히 활용할 수 있다. 컨벌루셔널 뉴럴 네트워크는 이미지에서 오브젝트를 인식하기 위하여 사용될 수 있다. 컨벌루셔널 뉴럴 네트워크는 이미지 데이터를 차원을 가진 행렬로 나타내어 처리할 수 있다. 예를 들어 RGB(red-green-blue)로 인코딩 된 이미지 데이터의 경우, R, G, B 색상별로 각각 2차원(예를 들어, 2 차원 이미지 인 경우) 행렬로 나타내 질 수 있다. 즉, 이미지 데이터의 각 픽셀의 색상 값이 행렬의 성분이 될 수 있으며 행렬의 크기는 이미지의 크기와 같을 수 있다. 따라서 이미지 데이터는 3개의 2차원 행렬로(3차원의 데이터 어레이)로 나타내질 수 있다.
컨벌루셔널 뉴럴 네트워크에서 컨벌루셔널 필터를 이동해가며 컨벌루셔널 필터와 이미지의 각 위치에서의 행렬 성분끼리 곱하는 것으로 컨벌루셔널 과정(컨벌루셔널 레이어의 입출력)을 수행할 수 있다. 컨벌루셔널 필터는 n*n 형태의 행렬로 구성될 수 있다. 컨벌루셔널 필터는 일반적으로 이미지의 전체 픽셀의 수보다 작은 고정된 형태의 필터로 구성될 수 있다. 즉, m*m 이미지를 컨벌루셔널 레이어(예를 들어, 컨벌루셔널 필터의 사이즈가 n*n인 컨벌루셔널 레이어)입력시키는 경우, 이미지의 각 픽셀을 포함하는 n*n 픽셀을 나타내는 행렬이 컨벌루셔널 필터와 성분 곱 (즉, 행렬의 각 성분끼리의 곱) 될 수 있다. 컨벌루셔널 필터와의 곱에 의하여 이 미지에서 컨벌루셔널 필터와 매칭되는 성분이 추출될 수 있다. 예를 들어, 이미지에서 상하 직선 성분을 추출하기 위한 3*3 컨벌루셔널 필터는 [[0,1,0], [0,1,0], [0,1,0]] 와 같이 구성될 수 있다. 이미지에서 상하 직선 성분을 추출하기 위한 3*3 컨벌루셔널 필터가 입력 이미지에 적용되면 이미지에서 컨벌루셔널 필터와 매칭되는 상하 직선 성분이 추출되어 출력될 수 있다. 컨벌루셔널 레이어는 이미지를 나타낸 각각의 채널에 대한 각각의 행렬(즉, R, G, B 코딩 이미지의 경우, R, G, B 색상)에 컨벌루셔널 필터를 적용할 수 있다. 컨벌루셔널 레이어는 입력 이미지에 컨벌루셔널 필터를 적용하여 입력 이미지에서 컨벌루셔널 필터와 매칭되는 피쳐를 추출할 수 있다. 컨벌루셔널 필터의 필터 값(즉, 행렬의 각 성분의 값)은 컨벌루셔널 뉴럴 네트워크의 학습 과정에서 역전파에 의하여 업데이트 될 수 있다.
컨벌루셔널 레이어의 출력에는 서브샘플링 레이어가 연결되어 컨벌루셔널 레이어의 출력을 단순화하여 메모리 사용량과 연산량을 줄일 수 있다. 예를 들어, 2*2 맥스 풀링 필터를 가지는 풀링 레이어에 컨벌루셔널 레이어의 출력을 입력시키는 경우, 이미지의 각 픽셀에서 2*2 패치마다 각 패치에 포함되는 최대값을 출력하여 이미지를 압축할 수 있다. 전술한 풀링은 패치에서 최소값을 출력하거나, 패치의 평균값을 출력하는 방식일 수도 있으며 임의의 풀링 방식이 본 개시에 포함될 수 있다.
컨벌루셔널 뉴럴 네트워크는 하나 이상의 컨벌루셔널 레이어, 서브 샘플링 레이어를 포함할 수 있다. 컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 과정과 서브샘플링 과정(예를 들어, 전술한 맥스 풀링 등)을 반복적으로 수행하여 이미지에서 피쳐를 추출할 수 있다. 반복적인 컨벌루션널 과정과 서브샘플링 과정을 통해 뉴럴 네트워크는 이미지의 글로벌 피쳐를 추출할 수 있다.
컨벌루셔널 레이어 또는 서브샘플링 레이어의 출력은 풀 커넥티드 레이어(fully connected layer)에 입력될 수 있다. 풀 커넥티드 레이어는 하나의 레이어에 있는 모든 뉴런과 이웃한 레이어에 있는 모든 뉴런이 연결되는 레이어이다. 풀 커넥티드 레이어는 뉴럴 네트워크에서 각 레이어의 모든 노드가 다른 레이어의 모든 노드에 연결된 구조를 의미할 수 있다.
본 개시의 몇몇 실시예에서 이미지 데이터의 세그먼테이션(segmentation)을 수행하기 위하여 뉴럴 네트워크는 디컨벌루셔널 뉴럴 네트워크(DCNN: deconvolutional neural network)를 포함할 수 있다. 디컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크를 역방향으로 계산시킨 것과 유사한 동작을 수행한다. 디컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크에서 추출된 피쳐를 원본 데이터와 관련된 피쳐맵으로 출력할 수 있다. 컨벌루셔널 뉴럴 네트워크에 대한 구체적인 구성에 관한 설명은 본 출원에서 전체가 참조로서 통합되는 미국 등록 특허 US9870768B2에서 보다 구체적으로 논의된다.
본 개시의 몇몇 실시예에 따르면, 사전 학습된 종 분류 모델은 컨벌루셔널 뉴럴 네트워크에 해당하며, 제어부(130)는 상술한 컨벌루션 뉴럴 네트워크를 이용하여 촬영된 동물의 종을 인식할 수 있다.
도 5는 본 개시의 몇몇 실시예에 따른 종 분류 모델을 개략적으로 설명하기 위한 도면이다. 도 6은 본 개시의 몇몇 실시예에 따라 종 분류 모델을 이용하여 동물의 종에 대한 정보를 획득하는 방법의 일례를 설명하기 위한 도면이다.
도 5를 참조하면, 본 개시의 사전 학습된 종 분류 모델은 사전 학습된 네트워크 함수(520)로서 이는 교사 학습(supervised learning), 비 교사 학습(unsupervised learning) 및 반교사학습(semi supervised learning) 중 적어도 하나의 방식으로 학습될 수 있다.
네트워크 함수의 학습은 출력의 오류를 최소화하기 위한 것이다. 네트워크 함수의 학습에서 반복적으로 학습 데이터를 네트워크 함수에 입력시킨다. 네트워크 함수의 학습에서 학습 데이터에 대한 네트워크 함수의 출력과 타겟의 에러를 계산한다. 네트워크 함수의 학습에서 에러를 줄이기 위한 방향으로 네트워크 함수의 에러를 네트워크 함수의 출력 레이어에서부터 입력 레이어 방향으로 역전파하여 네트워크 함수의 각 노드의 가중치를 업데이트 할 수 있다.
본 개시의 몇몇 실시예에 있어서 종 분류 모델은 전술한 네트워크 함수(520)일 수 있다.
본 개시의 몇몇 실시예에 있어서 종 분류 모델을 학습시키기 위한 제 1 학습 데이터는 동물의 안면이 포함된 이미지 데이터를 학습 데이터의 입력으로 하고, 동물의 안면이 포함된 이미지 데이터에 동물의 종에 대한 제 1 분류 클래스를 라벨로 하여 생성될 수 있다.
본 개시의 몇몇 실시예에 있어서, 종 분류 모델은 제 1 학습 데이터를 포함하는 제 1 학습 데이터 세트를 이용하여 동물의 안면과 매칭되는 동물의 종에 대한 분류를 학습하고, 제 1 이미지에 기초하여 동물의 종에 대한 제 1 정보가 획득되도록 생성될 수 있다.
여기서 종 분류 모델은 외부 서버 또는 다른 컴퓨팅 장치로부터 생성될 수 있다. 그리고, 외부 서버 또는 다른 컴퓨팅 장치는 웹 크롤링(Web Crawling)을 수행하여 동물의 안면이 포함된 이미지 데이터를 획득할 수 있다. 이미지 데이터는 종 분류 모델을 학습시키기 위한 제 1 학습 데이터 세트에 이용될 수 있다. 또한, 외부 서버 또는 다른 컴퓨팅 장치는 사용자 단말기(100) 또는 다른 사용자 단말기로부터 동물 안면이 포함된 이미지 데이터를 획득할 수 있다. 전술한 이미지 데이터를 획득하는 방법은 예시일 뿐, 본 개시는 이제 제한되지 않는다.
본 개시의 몇몇 실시예에 따른 사용자 단말기(100)는 외부에서 생성된 종 분류 모델을 획득하여 메모리(120)에 저장할 수 있다. 한편, 본 개시의 다른 몇몇 실시예에 따르면, 사용자 단말기(100)가 종 분류 모델을 생성할 수도 있다.
예를 들어, 개의 종에 따라 눈, 코, 입 및 귀 각각의 크기, 모양 및 위치가 상이할 수 있다. 이러한 개의 종에 따른 특징에 기초하여 개의 종을 구별할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 전술한 방법으로 동물의 안면이 포함된 이미지 데이터를 획득할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 상기 획득한 이미지 데이터에 상기 동물의 종을 구별할 수 있는 특징에 기초하여 동물의 종에 정보를 라벨링하여 제 1 학습 데이터를 생성할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 제 1 학습 데이터를 포함하는 제 1 학습 데이터 세트를 이용하여 네트워크 함수에 동물의 안면과 매칭되는 동물의 종에 대한 분류를 학습시켜 종 분류 모델을 생성할 수 있다. 한편, 전술한 종 분류 모델을 생성하는 방법은 예시일 뿐이며, 본 개시는 이에 제한되지 않고 사용자 단말기(100)가 직접 종 분류 모델을 생성할 수도 있다.
본 개시의 몇몇 실시예에 따른 제어부(130)는 상기 생성된 종 분류 모델을 제 1 이미지에 입력하여 제 1 이미지에 포함된 동물의 종에 대한 정보를 획득할 수 있다.
구체적으로 제어부(130)는 종 분류 모델에 동물의 안면이 포함된 제 1 이미지를 입력하여 연산할 수 있다. 제어부(130)는 종 분류 모델을 이용하여 동물의 종에 대한 제 1 분류 클래스 각각에 대한 컨피던스 스코어(confidence score)를 출력 노드(530)에서 출력할 수 있다. 제어부(130)는 출력된 컨피던스 스코어에 기초하여 컨피던스 스코어 중 가장 높은 값을 가지는 제 1 분류 클래스를 제 1 정보로 획득할 수 있다. 전술한 제 1 정보를 획득하는 방법은 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
예를 들어, 도 6을 참조하면, 제어부(130)는 종 분류 모델에 동물이 촬영된 이미지를 입력하여 컨피던스 스코어를 연산할 수 있다. 제어부(130)는 눈, 코, 입 및 귀 각각의 모양, 크기 및 위치 등과 같은 특징에 기초하여 이미지에 포함된 동물(예를 들어, 개)의 종류 별로 분류된 제 1 분류 클래스 각각의 컨피던스 스코어를 종 분류 모델을 이용하여 연산할 수 있다.
사용자 단말기(100)에서 종 분류 모델에 입력된 이미지가 비글의 이미지인 경우, 도 6과 같이 연산된 컨피던스 스코어 중 비글에 대한 컨피던스 스코어가 가장 높은 값을 가질 수 있다. 이 경우, 제어부(130)는 제 1 이미지로부터 촬영된 동물의 종을 비글로 인식하여 제 1 정보를 획득할 수 있다. 전술한 제 1정보를 획득하는 방법은 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
한편, 도 3을 다시 참조하면, 제어부(130)는 단계(S220)에서 동물의 종에 대한 제 1 정보를 획득한 경우, 제 1 이미지 내에서 촬영된 동물의 코를 포함하는 제 1 영역의 위치를 인식할 수 있다(S230).
이하 도 7 및 도 8에서 본 개시의 몇몇 실시예에 따른 제어부(130)가 동물의 제 1 영역의 위치를 인식하는 방법에 대해 자세히 설명한다.
도 7 및 도 8은 본 개시의 몇몇 실시예에 따른 동물의 코를 포함하는 제 1 영역을 인식하는 방법을 설명하기 위한 도면들이다.
본 개시의 몇몇 실시예에 따르면, 제어부(130)는 제 1 이미지를 사전 학습된 코 영역 인식 모델에 입력하여 제 1 이미지 내에서 촬영된 동물의 코를 포함하는 제 1 영역의 위치를 인식할 수 있다. 코 인식 모델은 YOLO(You Only Look Once) 알고리즘을 이용하는 모델일 수 있다. YOLO 알고리즘을 이용하는 모델에 대한 구체적인 구성에 대해서는 본 출원의 전체가 참조로서 통합되는 논문 "Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 779-788"에서 구체적으로 논의된다
여기서 코 영역 인식 모델은 외부 서버 또는 다른 컴퓨팅 장치로부터 생성될 수 있다. 코 영역 인식 모델을 학습시키기 위한 이미지 데이터는 전술한 종 분류 모델을 학습시키기 위한 이미지 데이터를 이용할 수 있다. 또한, 외부 서버 또는 다른 컴퓨팅 장치는 전술한 이미지 데이터를 획득하기 위한 방법으로 코 영역을 학습시키기 위한 이미지 데이터를 획득할 수 있다. 전술한 코 영역 인식 모델을 학습시키기 위한 이미지 데이터를 획득하는 방법은 예시일 뿐, 본 개시는 이제 제한되지 않는다.
사용자 단말기(100)는 외부에서 생성된 코 영역 인식 모델을 획득하여 메모리(120)에 저장할 수 있다. 한편, 본 개시의 다른 몇몇 실시예에 따르면, 사용자 단말기(100)가 코 영역 인식 모델을 생성할 수도 있다.
코 영역 인식 모델은 동물의 안면이 포함된 이미지 데이터를 포함하는 제 2 학습 데이터 세트 및 바운딩 박스(bounding box)에 대한 좌표를 이용하여 동물의 안면의 이미지와 매칭되는 코 영역의 위치를 학습할 수 있다.
예를 들어 외부 서버 또는 다른 컴퓨팅 장치는 동물의 안면이 포함된 이미지 데이터에서 코를 포함하는 제 1 영역의 위치에 대한 제 2 정보를 라벨링 하여 제 2 학습 데이터를 생성할 수 있다. 여기서 제 2 정보는 동물의 안면 이미지 내에서 다른 객체(예를 들어, 눈, 입, 귀 등)와 식별하기 위한 동물의 코의 모양, 위치 및 크기에 대한 정보를 포함할 수 있다. 라벨링된 학습 데이터는 사용자가 직접 동물 안면이 포함된 이미지의 내에서 제 2 정보를 라벨링한 것일 수 있다. 라벨링된 학습 데이터는 다른 네트워크 함수 모델을 이용하여 동물 안면이 포함된 이미지 데이터에 제 2 정보를 라벨링한 것일 수 있다. 예를 들어 동물 안면이 포함된 이미지 내에서 코를 포함하는 제 1 영역의 위치에 제 2 정보를 라벨링할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 라벨링된 제 2 학습 데이터 세트에 포함된 제 2 학습 데이터 각각을 코 영역 인식 모델을 이용하여 연산하여 코를 포함하는 제 1 영역의 위치에 대한 제 2 정보를 획득할 수 있다.
외부 서버 또는 다른 컴퓨팅 장치는 코 영역 인식 모델을 이용하여 연산하여 획득한 제 1 영역의 위치에 대한 정보와 제 2 학습 데이터의 라벨링 된 제 2 정보를 비교하여 오차를 계산할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 영역이 겹쳐지는 정도에 기초하여 오차를 연산할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 학습 데이터의 라벨링된 제 2 정보의 바운딩 박스와 코 영역 인식 모델을 이용하여 연산하여 획득한 제 1 영역의 위치에 대한 정보의 바운딩 박스의 영역이 겹쳐지는 정도에 기초하여 오차를 연산할 수 있다. 오차는, 라벨링된 제 2 정보의 바운딩 박스와 코 영역 인식 모델을 이용하여 연산한 제 1 영역의 위치에 대한 정보의 바운딩 박스의 교집합을 합집합으로 나눈 것일 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 역방향인, 코 영역 인식 모델의 출력 레이어에서 입력 레이어 방향으로 계산된 오차를 역전파할 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 출력 레이어에서 입력 레이어 방향으로 오차를 역전파하여 역전파에 따라 각 레이어의 각 노드들의 연결 가중치를 업데이트할 수 있다. 업데이트 되는 각 노드의 연결 가중치는 학습률(learning rate)에 따라 변화량이 결정될 수 있다. 입력 데이터인 제 1 이미지 대한 코 영역 인식 모델의 계산과 에러의 역전파는 학습 사이클을 구성할 수 있다. 학습률은 네트워크 함수의 학습 사이클의 반복 횟수에 따라 상이하게 적용될 수 있다. 예를 들어, 네트워크 함수의 학습 초기에는 높은 학습률을 사용하여 네트워크 함수가 빠르게 일정 수준의 성능을 확보하도록 하여 효율성을 높일 수 있다. 예를 들어, 네트워크 함수의 학습 후기에는 낮은 학습률을 사용하여 정확도를 높일 수 있다. 예를 들어, 외부 서버 또는 다른 컴퓨팅 장치는 코 영역 인식 모델의 학습에 대한 학습률을 0.001에서 0.1로 에폭 마다 상승시킬 수 있다. 예를 들어, 외부 서버 또는 다른 컴퓨팅 장치는 코 영역 인식 모델의 학습에 대하여 마지막 30 에폭 동안의 학습률을 0.0001로 하여 코 영역 인식 모델을 학습시킬 수 있다. 외부 서버 또는 다른 컴퓨팅 장치는 코 영역 인식 모델의 학습에서 과적합 (overfitting)을 방지하기 위하여 히든 노드의 출력의 일부가 다음 히든 노드에 전달되지 못하도록 드롭 아웃(drop out)을 설정할 수 있다. 예를 들어, 제어부(130)는 코 영역 인식 모델의 드롭 아웃률을 0.5로 설정하여 코 영역 인식 모델의 학습을 수행할 수 있다. 전술한 코 영역 인식 모델을 생성하는 방법에 대한 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. 전술한 외부 서버 또는 다른 컴퓨팅 장치가 코 영역 인식 모델을 생성하는 방법으로 사용자 단말기(100)는 코 영역 인식 모델을 생성할 수도 있다.
도 7을 참조하면, 제어부(130)는 상술한 코 인식 모델인 YOLO 알고리즘에 제 1 이미지, 제 1 이미지에 포함된 동물의 종에 대한 제 1 정보 및 제 2 분류 클래스 각각에 대한 스코어링 값에 기초하여 코를 포함하는 제 1 영역의 위치(710)에 대한 제 2 정보를 결정할 수 있다. 제 2 분류 클래스는 코 영역을 포함하는 제 1 영역의 위치를 인식하기 위한 것일 수 있다.
본 개시의 다른 몇몇 실시예에 따르면, 제어부(130)는 동물의 눈과 동물의 입의 위치에 기초하여 동물의 코를 포함하는 제 1 영역의 위치(710)를 인식할 수도 있다.
구체적으로, 도 8을 참조하면, 제어부(130)는 제 1 이미지 내에서 상기 동물의 눈을 포함하는 제 2 영역의 위치 및 상기 동물의 입을 포함하는 제 3 영역을 인식할 수 있다(S231).
예를 들어, 제어부(130)는 동물의 눈을 포함하는 제 2 영역의 위치와 동물의 입을 포함하는 제 3 영역의 위치를 메모리(120)에 저장된 눈 영역 인식 모델 및 입 영역 인식 모델을 이용하여 인식할 수 있다. 여기서, 눈 영역 인식 모델(또는 입 영역 인식 모델)은 상술한 코 영역 인식 모델과 같은 방식으로 눈 영역(또는 입 영역)을 인식할 수 있으므로, 이에 대한 자세한 설명은 생략한다. 다만, 이에 한정되는 것은 아니고 제어부(130)는 다양한 방법으로, 동물의 눈을 포함하는 제 2 영역의 위치 및 동물의 입을 포함하는 제 3 영역의 위치를 인식할 수 있다.
그리고 제어부(130)는 상기 제 2 영역의 위치 및 상기 제 3 영역의 위치에 기초하여 제 1 이미지 내에서 촬영된 동물의 코를 포함하는 제 1 영역의 위치를 인식할 있다(S232).
구체적으로, 메모리(120)에는 눈의 위치 및 입의 위치에 기초하여 코의 위치를 인식하는 코 위치 인식 모델이 저장될 수 있다. 따라서, 제어부(130)는 단계(S231)에서 획득한 제 2 영역의 위치, 단계(S231)에서 획득한 제 3 영역의 위치를 상기 메모리에 저장된 코 위치 인식 모델에 입력하여 동물의 코를 포함하는 제 1 영역의 위치를 인식할 수 있다. 이 경우, 코 위치 인식 모델은 동물의 종에 대한 정보도 추가로 입력 받아 코 위치를 인식할 수도 있다.
전술한 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 방법은 예시일 뿐, 본 개시는 이에 제한되지 않는다.
한편, 도 3을 다시 참조하면, 단계(S230)에서 제 1 이미지 내에서 동물의 코를 포함하는 제 1 영역의 위치를 인식한 경우, 제어부(130)는 사전 설정된 조건을 만족되는지 여부를 결정할 수 있다(S240).
이하에서 도 9 내지 도 12를 참조하여 사전 설정된 조건이 만족되는지 인식하는 동작에 대해 자세히 설명을 한다.
도 9는 본 개시의 몇몇 실시예에 따른 사전 설정된 조건이 만족되는지 여부를 인식하는 방법을 설명하기 위한 흐름도이다. 도 10은 본 개시의 몇몇 실시예에 따른 콧구멍을 인식하는 동작의 예시를 나타내는 도면이다. 도 11은 본 개시의 몇몇 실시예에 따른 콧구멍의 원형성 측정하는 방법의 일례를 설명하기 위한 도면이다. 도 12는 본 개시의 몇몇 실시예에 따른 콧구멍의 관성률을 측정하는 방법의 일례를 설명하기 위한 나타내는 도면이다.
본 개시의 몇몇 실시예에 따른 제어부(130)는 제 1 영역 내에서 상기 동물의 우측 콧구멍(nostril) 및 좌측 콧구멍을 인식할 수 있다(S241).
구체적으로, 도 10을 참조하면, 제어부(130)는 특징점 추출(feature extraction) 알고리즘을 이용하여 제 1 영역 내에서 동물의 우측 콧구멍 및 좌측 콧구멍을 인식할 있다.
예를 들어, 제 1 이미지의 제 1 영역 내에서 콧구멍이 위치하는 영역이 가장 어두울 수 있다. 따라서, 제 1 영역 내의 이미지 상에서 콧구멍이 위치하는 영역의 픽셀들의 명도 값과 콧구멍의 가장자리에 위치하는 코 영역 픽셀들의 명도 값의 차이가 최대 값을 가질 수 있다. 이 때 명도 값은 제 1 이미지 데이터의 화소 깊이에 따라 달라질 수 있다. 제어부(130)는 제 1 영역의 이미지의 픽셀들의 명도 값을 추출하고, 인접하는 영역들 사이의 픽셀들의 명도 값의 차이가 최대 값을 가지는 영역을 콧구멍의 가장자리로 인식할 수 있다. 그리고 제어부(130)는 명도 값의 차이가 최대 값을 가지는 영역의 픽셀들을 콧구멍의 특징점들로 추출할 수 있다. 전술한 콧구멍을 인식하는 방법은 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
한편, 도 9를 다시 참조하면, 제어부(130)는 우측 콧구멍 및 상기 좌측 콧구멍의 원형성(circularity) 및 상기 콧구멍의 관성률(Inertia ratio) 중 적어도 하나에 기초하여 상기 동물이 촬영된 포즈(pose)를 인식할 수 있다(S242). 여기서, 동물이 촬영된 포즈는 사용자가 동물의 안면을 어느 쪽에서 촬영했는지를 나타내는 정보일 수 있다.
본 개시의 몇몇 실시예에 따라, 제어부(130)가 우측 콧구멍 및 상기 좌측 콧구멍의 원형성(circularity)에 기초하여 동물이 촬영된 포즈를 인식하는 방법은 다음과 같다. 여기서, 원형성은 이미지에 포함된 동물의 콧구멍의 상/하/좌/우측에 존재하는 특징점에서의 콧구멍의 곡률이 메모리(120)에 저장된 동물의 종에 대응하는 콧구멍의 상/하/좌/우측에 존재하는 특징점에서의 콧구멍의 곡률과 유사한 정도를 의미할 수 있다.
제어부(130)는 제 1 이미지로부터 획득한 동물의 종에 대한 제 1 정보 및 메모리(120)에 저장된 동물의 종에 따른 원형성에 기초하여 상기 동물이 촬영된 포즈(pose)를 인식할 수 있다.
예를 들어, 도 11을 참조하면, 제어부(130)는 카메라부(110)로 촬영하여 획득한 동물의 안면이 포함된 제 1 이미지에 포함된 동물의 콧구멍의 상/하/좌/우측에 존재하는 특징점들(P1, P2, P3, P4) 각각에서 측정한 콧구멍의 곡률과 메모리(120)에 저장된 상/하/좌/우측에 존재하는 특징점들 각각에서 측정되는 콧구멍의 곡률간의 차이 값을 산출할 수 있다. 제어부(130)는 산출된 차이 값이 기 설정된 임계 값보다 적은 경우에 상기 동물의 포즈가 정면이라고 인식할 수 있다. 여기서, 메모리(120)에 저장된 상/하/좌/우측에 존재하는 특징점들 각각에서 측정되는 콧구멍의 곡률은 동물의 안면이 정면으로 촬영된 경우, 동물의 종에 따른 콧구멍의 상/하/좌/우측에 존재하는 특징점 각각에서 측정된 콧구멍의 곡률일 수 있다.
한편, 사용자가 사용자 단말기(100)를 이용하여 동물의 안면을 정면보다 우측면(또는 좌측면)에서 촬영한 경우에는, 동물의 콧구멍의 중심으로부터 좌측에 존재하는 특징점(P4)에서의 콧구멍의 곡률과 우측에 존재하는 특징점(P2)에서의 콧구멍의 곡률은 메모리에 저장된 좌측 및 우측에 존재하는 특징점의 곡률 보다 작을 수 있다. 그리고 콧구멍의 상측에 존재하는 특징점(P1)에서의 곡률과 콧구멍의 하측에 존재하는 특징점(P3)에서의 곡률은 메모리에 저장된 상측 및 하측에 존재하는 특징점의 곡률 보다 클 수 있다. 이 경우, 제어부(130)는 동물이 촬영된 포즈가 우측(또는 좌측)이라고 인식할 수 있다.
본 개시의 다른 몇몇 실시예에 따라, 제어부(130)가 우측 콧구멍 및 상기 좌측 콧구멍의 관성률에 기초하여 동물이 촬영된 포즈를 인식하는 방법은 다음과 같다. 여기서, 관성률은 콧구멍의 중심에서 가로축의 길이(a)와 세로축의 길이(b)의 비율을 의미한다.
도 12를 참조하면, 제어부(130)는 상기 콧구멍의 특징점들 중 콧구멍의 중심으로부터 가로축에 위치하는 2개의 콧구멍의 특징점들 간의 제 1 길이(a)를 측정할 수 있다. 그리고 제어부(130)는 상기 콧구멍의 중심으로부터 세로축에 위치하는 2개의 콧구멍의 특징점들 간의 제 2 길이(b)를 측정할 수 있다. 제어부(130)는 제 1 길이(a) 및 제 2 길이(b)의 비율에 기초하여 콧구멍의 관성률을 측정할 수 있다.
제어부(130)는 제 1 이미지로부터 획득한 동물의 종에 대한 제 1 정보, 메모리에 저장된 제 1 정보에 대응하는 관성률 및 제 1 이미지에 의해 측정된 관성률에 기초하여 상기 동물이 촬영된 포즈를 인식할 수 있다.
한편, 동물의 종에 따른 관성률이 메모리(120)에 저장될 수 있다. 제어부(130)는 제 1 이미지로부터 측정된 관성률과 메모리에 저장된 동물의 종에 대한 제 1 정보에 맵핑된 관성률의 차이 값에 기초하여 상기 동물이 촬영된 포즈를 인식할 수 있다. 여기서, 메모리(120)에 저장된 관성률은 해당 종의 동물이 정면에서 촬영된 경우에 가질 수 있는 관성률일 수 있다.
예를 들어, 제어부(130)는 카메라부(110)로 촬영하여 획득한 동물의 안면이 포함된 제 1 이미지에 포함된 동물의 콧구멍의 관성률과 메모리(120)에 저장된 관성률의 차이값을 산출할 수 있다. 제어부(130)는 산출된 차이 값이 기 설정된 임계 값보다 적은 경우에 상기 동물의 포즈가 정면이라고 인식할 수 있다. 여기서, 메모리(120)에 저장된 관성률은 동물의 안면이 정면에서 촬영된 경우의 관성률일 수 있다.
한편, 사용자가 사용자 단말기(100)를 이용하여 동물의 안면을 정면보다 우측면에서 촬영한 경우에는, 동물의 우측 콧구멍에 위치하는 가로축의 길이(a)는 메모리(120)에 저장된 우측 콧구멍의 가로축의 길이 보다 길고 세로축의 길이(b)는 동일하게 측정될 수 있다. 반면에 사용자가 사용자 단말기(100)를 이용하여 동물의 안면을 정면보다 우측면에서 촬영한 경우에는, 동물의 좌측 콧구멍에 위치하는 가로축의 길이(a)는 메모리(120)에 저장된 좌측 콧구멍의 가로축의 길이보다 짧고 세로축의 길이는 동일하게 측정될 수 있다. 따라서, 제어부(130)는 포즈가 우측면인 경우, 제 1 이미지를 통해 인식된 관성률과 메모리(120)에 저장된 관성률을 비교하여 포즈가 우측면이라고 인식할 수 있다.
한편, 도 9를 다시 참조하면, 제어부(130)는 촬영된 포즈가 기 설정된 포즈에 매칭되는 경우 상기 사전 설정된 조건이 만족되었다고 인식할 수 있다(S243).
구체적으로, 제어부(130)는 단계(S242)에서 촬영된 동물의 포즈를 인식하면, 제어부(130)는 촬영된 동물의 포즈가 기 설정된 포즈에 매칭되는 경우에 사전 설정된 조건이 만족되었다고 인식할 수 있다. 여기서, 기 설정된 포즈는 동물이 정면에서 촬영된 모습를 의미한다.
예를 들어, 제어부(130)는 단계(S243)에서 인식된 포즈가 정면이라고 인식한 경우 기 설정된 조건이 만족되었다고 인식할 수 있다. 반면에 제어부(130)는 단계(S243)에서 인식된 포즈가 정면이 아니라고 인식한 경우 기 설정된 조건에 만족되지 않는다고 인식할 수 있다.
한편, 도 3을 다시 참조하면, 제어부(130)는 단계(S240)에서 사전 설정된 조건이 만족되는 경우에 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정할 수 있다(S250).
본 개시의 몇몇 실시예에 따른 제 1 영역 내에서 관심 영역은 동물의 코에서 발견할 수 있는 고유한 무늬인 비문이 포함된 영역일 수 있다. 동물이 코를 벌렁거리는 경우에 동물의 콧구멍의 바깥쪽의 코의 크기 확장되거나 축소되고, 동물의 콧구멍의 바깥쪽에 위치하는 비문의 모양이 변형될 수 있다. 그러나 동물이 코를 벌렁거리는 경우에 좌/우 콧구멍 사이는 콧구멍의 바깥쪽보다 크기의 변화가 적고, 좌/우 콧구멍 사이에 위치하는 비문의 모양도 역시 콧구멍의 바깥쪽에 위치하는 비문의 모양보다 변형이 작게 일어날 수 있다. 따라서, 좌/우 콧구멍 사이를 관심 영역으로 결정하는 것이 바람직하다.
도 13은 본 개시의 몇몇 실시예에 따른 제 1 영역 내에서 관심 영역을 결정하는 방법의 일례를 설명하기 위한 흐름도이다.
도 13을 참조하면, 제어부(130)는 도 9의 단계(S243)에서 사전 설정된 조건이 만족되는 경우에 우측 콧구멍 및 좌측 콧구멍 간의 거리를 산출할 수 있다(S251).
예를 들어, 제어부(130)는 전술한 단계(S241)에서 제 1 영역 내의 이미지 상에서 좌/우측 콧구멍의 특징점을 추출하여 좌/우측 콧구멍을 인식할 수 있다. 그리고 제어부(130) 우측 콧구멍 및 좌측 콧구멍 간의 거리를 산출할 수 있다.
다음으로, 제어부(130)는 콧구멍 간의 거리에 기초하여 관심 영역의 크기 및 위치를 결정할 수 있다(S252)
제어부(130)는 단계(S251)에서 산출된 좌/우측 콧구멍 간의 거리가 길면 관심 영역의 크기를 크게 결정할 수 있다. 반면에 제어부(130)는 산출된 좌/우측 콧구멍 간의 거리가 짧으면 관심 영역의 크기를 작게 결정할 수 있다. 그리고 제어부(130)는 좌/우측 콧구멍의 간의 거리의 중심이 되는 위치를 관심 영역의 위치로 결정할 수 있다. 전술한 바와 같이 좌/우측 콧구멍의 간의 거리의 중심이 되는 위치가 콧구멍의 움직임에 따라 모양의 변화가 가장 적은 위치이기 때문이다.
반면에, 본 개시의 몇몇 실시예에 따라 제어부(130)는 사전 설정된 조건이 만족되지 않는 경우에 사전 설정된 조건을 만족하는 제 1 이미지가 획득되도록 재촬영을 요구하는 인디케이터를 디스플레이하도록 디스플레이부(150)를 제어할 수 있다.
예를 들어, 제어부(130) 단계(S240)에서 촬영된 포즈가 우측면에서 촬영한 것으로 인식하는 경우에 기 설정된 조건에 만족되지 않는다고 인식할 수 있다. 제어부(130)는 기 설정된 조건에 만족되도록 카메라부(110)를 동물의 안면의 좌측면으로 이동시켜 재촬영을 요구하는 인디케이터를 디스플레이하도록 디스플레이부(150)를 제어할 수 있다. 제어부(130)는 재촬영된 제 1 이미지가 기 설정된 조건을 만족하는지 다시 판단할 수 있다. 전술한 제 1 이미지를 재촬영하는 인디케이터 방법은 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
또한, 본 개시의 몇몇 실시예에 따라 제어부(130)는 사전 설정된 조건이 만족되지 않는 경우에 제 1 이미지를 정면화(Frontalization)하여 상기 사전 설정된 조건을 만족하도록할 수 있다.
구체적으로, 제어부(130)는 전술한 단계(S241)에서 제 1 영역 내의 이미지 상에서 좌/우측 콧구멍의 특징점을 추출할 수 있다. 메모리(120)에는 동물의 안면을 정면으로 촬영된 이미지에 기초하여 좌/우측 콧구멍들의 특징점들의 위치에 관한 정보가 저장될 수 있다. 제어부(130)는 메모리(120)에 저장된 콧구멍들의 특징점들의 위치에 관한 정보에 기초하여 제 1 영역 내의 이미지 상에서 추출한 콧구멍들의 특징점들을 상기 저장된 특징점들에 매칭되도록 제 1 이미지를 보정할 수 있다. 예를 들어, 사용자가 동물을 우측에서 촬영한 경우에, 제 1 이미지 상에서 우측 콧구멍이 위치하는 영역의 이미지는 실제 동물의 우측 콧구멍의 위치하는 영역보다 넓게 획득되고, 반면에 좌측 콧구멍이 위치하는 영역의 이미지는 실제 동물의 좌측 콧구멍이 위치하는 영역보다 좁게 획득된다. 제어부(130)는 제 1 이미지 상에서 동물의 안면이 우측에서 촬영된 것을 판단할 수 있다. 제어부(130)는 제 1 이미지의 우측에 위치하는 픽셀들의 크기를 보다 감소시키거나 좌측으로 위치를 이동시키는 보정을 할 수 있다. 그리고 제 1 이미지의 좌측에 위치하는 픽셀들의 크기를 보다 증가시키거나 우측으로 이동시키는 보정을 할 수 있다. 제어부(130)는 보정된 제 1 이미지 상에서 좌/우측 콧구멍의 특징점을 다시 추출할 수 있다. 제어부(130)는 다시 추출된 좌/우측 콧구멍들의 특징점과 상기 저장된 특징점들에 매칭되면 상기 사전 설정된 조건이 만족하는 것을 인식할 수 있다. 전술한, 제 1 이미지를 보정하여 정면화하는 방법은 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
한편, 도 3을 다시 참조하면, 제어부(130)는 관심 영역이 결정된 경우, 제 1 이미지 내에서 관심 영역을 포함하는 제 2 이미지를 추출할 수 있다(S260).
본 개시의 몇몇 실시예에 따라 제어부(130)는 제 1 이미지 내에서 관심 영역을 포함하는 제 2 이미지 데이터를 생성할 수 있다. 제 2 이미지는 서버에 전송되고 촬영한 동물의 개체 정보를 획득하는데 이용될 수 있다.
다음으로, 제어부(130)는 단계(S260)에서 제 2 이미지가 추출된 경우, 제 1 정보 및 제 2 이미지를 서버에 전송하도록 네트워크부(140)를 제어할 수 있다.
서버(200)의 제어부는 수신된 제 1 정보 및 제 2 이미지에 기초하여 사용자 단말기(100)가 촬영한 동물의 개체 정보를 획득하고, 사용자 단말기(100)에게 전송하도록 서버(200)의 네트워크부를 제어할 수 있다.
한편, 사용자 단말기(100)가 서버(200)로부터 동물의 개체 정보를 네트워크부(140)를 통해 수신하는 경우에, 제어부(130)는 디스플레이부(150)를 통해 동물의 개체 정보를 디스플레이하도록 디스플레이부(150)를 제어할 수 있다.
여기서 동물의 개체 정보는 동물의 종, 성별, 특이점 중 적어도 어느 하나를 포함할 수 있다. 또한, 동물의 개체 정보는 동물의 소유자의 이름, 연락처, 주소 중 적어도 어느 하나를 포함할 수 있다. 이러한 동물의 개체 정보는 촬영한 동물의 소유자를 확인하는데 사용될 수 있다. 전술한 동물의 개체 정보는 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
제어부(130)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 사용자 단말기(100)의 전반적인 동작을 제어할 수 있다. 제어부(130)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(120)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 제어부(130)는 메모리(120)에 저장된 응용 프로그램을 구동하기 위하여, 도 2와 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(130)는 상기 응용 프로그램의 구동을 위하여, 사용자 단말기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.
도 14는 본 개시의 몇몇 실시예에 따른 사용자 단말기에 동물의 개체 정보가 제공되는 방법의 일례를 설명하기 위한 흐름도이다. 도 15은 본 개시의 몇몇 실시예에 따른 제 2 이미지를 전처리한 예시를 나타낸 도면이다.
도 14를 참조하면, 사용자 단말기(100)의 제어부(130)는 카메라부(110)를 통해 획득된 제 1 이미지에 기초하여 제 1 정보 및 제 2 이미지를 추출할 수 있다(S310). 이는, 도 3 내지 도 13에서 상술한바 자세한 설명은 생략한다.
전술한 바와 같이 제 1 정보는 촬영한 동물의 종에 대한 정보를 포함할 수 있다. 그리고 제 2 이미지는 촬영한 동물의 개체 정보를 확인할 수 있는 동물의 비문 이미지를 포함할 수 있다.
사용자 단말기(100)의 제어부(130)는 네트워크부(140)를 통해 제 1 정보 및 제 2 이미지를 서버(200)에 전송하도록 네트워크부(140)를 제어할 수 있다(S320).
서버(200)의 제어부는 로컬 히스토그램(local histogram)에 기초하여 수신한 제 2 이미지를 전처리할 수 있다(S330).
사용자가 사용자 단말기(100)를 이용하여 동물의 안면을 촬영하여 제 1 이미지를 획득함에 있어서, 사용자가 동물을 촬영하는 환경에 따라 제 1 이미지의 품질이 차이가 발생할 수 있다. 예를 들어, 사용자 단말기(100)의 기종에 따라 제 1 이미지의 품질이 상이할 수 있다. 또는, 동물의 코에 이물질(예를 들어, 동물의 땀), 사용자 단말기(100)의 카메라부(110)의 반사광 등 기타 노이즈가 제 1 이미지에 포함될 수 있다. 따라서, 노이즈를 포함할 수 있는 제 1 이미지에 기초하여 추출한 제 2 이미지에도 노이즈가 포함될 수 있다.
도 15를 참조하면, 본 개시의 몇몇 실시예에 따른 서버(200)의 제어부는 이미지 처리 알고리즘을 포함하는 로컬 히스토그램에 기초하여 노이즈가 포함된 제 2 이미지(1510)를 전처리할 수 있다.
한편, 몇몇 실시예에 따르면, 서버(200)의 이미지 처리 알고리즘은 캐니 엣지 디텍션(canny edge detection), 해리스 코너 디텍션(harris corner detection)등을 포함할 수도 있으나, 본개시는 이에 제한되지 않는다.
예를 들어, 캐니 엣지 디텍션을 통해 서버(200)는 제 2 이미지(1510)를 블러링(blurring) 처리하여 노이즈를 제거하고, 마스크 엣지를 이용하여 동물의 코 무늬(비문)들의 엣지를 검출하고, Non-Maximum Value를 제거하고, Double Threshold로 크기를 구분하여 엣지를 연결함으로써 엣지를 추출할 수 있다. 그리고, 서버(200)는 제 2 이미지의 픽셀들의 넓이와 깊이를 측정할 수 있다. 서버(200)는 엣지, 픽셀들의 넓이와 깊이에 기초하여 제 2 이미지(1510)를 전처리 할 수 있다. 서버(200)에 의해 제 2 이미지(1510)가 전처리되면, 전처리된 제 2 이미지(1520) 상의 패턴들의 명암 차이가 증가할 수 있다. 전술한 제 2 이미지를 전처리하는 방법은 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
서버(200)가 제 2 이미지(1510)를 전처리하면, 전처리된 제 2 이미지(1520)는 사용자 단말기(100)의 기종에 따른 제 2 이미지(1510)의 품질 차이를 줄일 수 있다. 또한, 전처리 전 제 2 이미지(1510)에 포함된 노이즈(예를 들어, 동물의 코에 묻은 이물질에 의한 노이즈 또는 카메라의 반사광에 의한 노이즈)를 줄일 수 있다. 또한, 전처리된 제 2 이미지(1520) 내에서 코 무늬의 형상 및 코 무늬의 갈라짐이 보다 선명해 질 수 있다. 이를 통해, 후술하는 바와 같이 전처리한 제 2 이미지(1520)와 매칭되는 제 1 비문 이미지를 보다 정확하게 검색할 수 있다.
한편, 도 14을 다시 참조하면, 서버(200)는 서버(200)의 메모리에 저장된 복수의 비문 이미지에서 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색할 수 있다(S340).
서버(200)의 메모리에 복수의 비문 이미지들이 동물의 종에 따라 분류하여 저장될 수 있다. 서버(200)의 제어부는 분류된 동물의 비문 이미지 내에서 촬영된 동물의 종류에 대한 제 1 정보에 기초하여 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색할 수 있다. 서버(200)의 메모리에 동물의 종에 따라 분류되어 비문 이미지들이 저장되어 있어 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색하는 속도를 향상시킬 수 있다. 전술한 제 1 비문 이미지를 검색하는 방법은 예시일 뿐이며, 본 개시는 이제 제한되지 않는다.
단계(S340)에서 제 1 비문 이미지를 검색하는 방법은 다음과 같다.
서버(200)의 제어부는 전처리한 제 2 이미지에서 제 1 특징점을 인식할 수 있다.
서버(200)의 제어부는 특징점 추출(feature extraction) 알고리즘을 이용하여 전처리한 제 2 이미지에서 제 1 특징점을 인식할 수 있다. 여기서 제 1 특징점은 제 2 이미지 내에서 코 주름의 골(valley)들(예를 들어, 제 2 이미지 내에서 어두운 부분)이 만나는 지점을 의미한다. 따라서, 전처리한 제 2 이미지 내에서 제 1 특징점이 위치하는 픽셀들의 명도 값은 제 2 이미지 내에서 패턴들(예를 들어, 제 2 이미지 내에서 밝은 부분)이 위치하는 픽셀들의 명도 값보다 높은 값을 가질 수 있다. 이 때 명도 값은 전처리한 제 2 이미지의 화소 깊이에 따라 달라질 수 있다. 서버(200)의 제어부는 전처리된 제 2 이미지의 픽셀들의 명도 값을 추출할 수 있다. 추출된 명도 값이 서버(200)의 메모리에 저장된 화소의 깊이에 따라 기 설정된 명도 값을 초과하는 경우에, 서버(200)의 제어부는 기 설정된 명도 값을 초과하는 명도 값을 가지는 픽셀들의 위치를 제 2 이미지 내에서 제 1 특징점으로 인식할 수 있다. 전술한 제 1 특징점을 인식하는 방법은 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
서버(200)의 제어부는 제 1 특징점에서 코 주름에 대한 제 1 정보를 인식할 수 있다. 여기서 코 주름에 대한 제 1 정보는 특징점에서 코 주름이 향한 방향에 대한 정보, 코 주름이 갈라지는 개수에 대한 정보 등을 포함할 수 있다. 전술한 코 주름에 대한 제 1 정보는 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
서버(200)의 제어부는 복수의 비문 이미지 중 제 1 특징점에 대응하는 제 2 특징점에서 코 주름에 대한 제 1 정보에 대응하는 코 주름에 대한 제 2 정보를 갖는 제 1 비문 이미지를 검색할 수 있다.
구체적으로, 서버(200)의 메모리에는 복수의 비문 이미지 각각에 포함된 복수의 특징점 각각에서의 코 주름에 대한 정보가 저장되어 있을 수 있다. 서버(200)의 제어부는 제 1 특징점에서 코 주름이 향한 방향에 대한 정보, 코 주름이 갈라지는 개수에 대한 정보와 대응되는 정보를 포함하는 코 주름에 대한 정보를 메모리에서 검색하여 상술한 제 1 비문 이미지로 인식할 수 있다. 즉, 서버(200)의 제어부는 같은 특징점에서 같은 코 주름에 대한 정보를 갖는 비문 이미지를 서버(200)의 메모리에 저장된 복수의 비문 이미지 중에서 검색할 수 있다.
한편, 서버(200)의 제어부는 제 1 특징점과 제 2 특징점의 위치가 어긋나는 경우에는 제 1 특징점의 위치를 이동시키기 위한 제 2 이미지를 보정할 수 있다. 여기서, 서버(200)의 제어부는 제 1 특징점의 좌표와 제 2 특징점의 좌표가 서로 상이하거나 제 1 특징점에서의 코 주름이 향한 방향이 제 2 특징점에서 코 주름이 향한 방향과 상이한 경우 제 1 특징점과 제 2 특징점의 위치가 어긋났다고 인식할 수 있다.
구체적으로, 서버(200)의 제어부는 제 2 이미지 내의 제 1 특징점과 제 1 비문 이미지 내의 제 2 특징점의 위치가 일치하도록 제 2 이미지를 종횡 이동시키거나 또는 제 2 이미지를 회전 이동시키는 보정을 할 수 있다.
한편, 서버(200)의 제어부는 제 2 이미지에 매칭되는 제 1 비문 이미지에 맵핑된 개체 정보를 획득할 수 있다(S350). 다만, 이에 한정되는 것은 아니고 서버(200)의 제어부는 제 2 이미지에 매칭되는 제1 비문 이미지 및 상기 제 1 비문 이미지에 맵핑된 개체 정보 중 적어도 하나를 획득할 수도 있다.
서버(200)의 제어부는 단계(S350)에서 획득된 개체 정보를 사용자 단말기에 전송할 수 있다(S360). 다만, 이에 한정되는 것은 아니고, 서버(200)의 제어부는 개체 정보 및 제 1 비문 이미지 중 적어도 하나를 사용자 단말기(100)에 전송할 수도 있다.
사용자 단말기(100)의 제어부(130)는 서버(200)로부터 수신된 개체 정보를 디스플레이하도록 디스플레이부(150)를 제어할 수 있다(S370). 다만, 이에 한정되는 것은 아니고, 개체 정보 및 제 1 비문 이미지 중 적어도 하나를 디스플레이할 수 있다.
여기서 동물의 개체 정보는 동물의 종, 성별, 특이점 중 적어도 어느 하나를 포함할 수 있다. 또한, 동물의 개체 정보는 동물의 소유자의 이름, 연락처, 주소 중 적어도 어느 하나를 포함할 수 있다. 이러한 동물의 개체 정보는 촬영한 동물의 소유자를 확인하는데 사용될 수 있다. 전술한 동물의 개체 정보는 예시일 뿐이며, 본 개시는 이에 제한되지 않는다.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (17)

  1. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 사용자 단말기로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은:
    상기 사용자 단말기의 카메라로 촬영된 동물의 안면이 포함된 제 1 이미지를 획득하는 동작;
    상기 제 1 이미지를 사전 학습된 종 분류 모델에 입력하여 상기 동물의 종에 대한 제 1 정보를 획득하는 동작;
    상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작;
    사전 설정된 조건을 만족된 경우 상기 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정하는 동작;
    상기 관심 영역이 결정된 경우, 상기 제 1 이미지 내에서 상기 관심 영역을 포함하는 제 2 이미지를 추출하는 동작; 및
    상기 제 2 이미지가 추출된 경우, 상기 제 1 정보 및 상기 제 2 이미지를 서버에 전송하는 동작;
    을 포함하며,
    상기 종 분류 모델을 학습시키기 위한 제 1 학습 데이터는,
    동물의 안면이 포함된 이미지 데이터를 학습 데이터의 입력으로 하고, 상기 동물의 안면이 포함된 이미지 데이터에 동물의 종에 대한 제 1 분류 클래스를 라벨로 하여 생성되고, 그리고
    상기 종 분류 모델은,
    상기 제 1 학습 데이터를 포함하는 제 1 학습 데이터 세트를 이용하여 상기 동물의 안면과 매칭되는 상기 동물의 종에 대한 분류를 학습하고, 상기 제 1 이미지에 기초하여 상기 제 1 정보를 획득하도록 하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 종 분류 모델은,
    상기 제 1 이미지를 입력 노드로 입력 받으면, 상기 제 1 분류 클래스 각각에 대한 컨피던스 스코어(confidence score)를 출력 노드에서 출력하고, 상기 컨피던스 스코어 중 가장 높은 값을 가지는 상기 제 1 분류 클래스를 제 1 정보로 획득하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  4. 제 1 항에 있어서,
    상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작은,
    상기 제 1 이미지를 사전 학습된 코 영역 인식 모델에 입력하여 상기 제 1 이미지 내에서 상기 제 1 영역의 위치를 인식하는 동작을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  5. 제 4 항에 있어서,
    상기 코 영역 인식 모델은,
    동물의 안면이 포함된 이미지 데이터를 포함하는 제 2 학습 데이터 세트 및 바운딩 박스(bounding box)에 대한 좌표를 이용하여 상기 동물의 안면의 이미지와 매칭되는 코 영역의 위치를 학습하고, 상기 제 1 이미지 내에서 상기 제 1 영역의 위치를 인식하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  6. 제 4 항에 있어서,
    상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역의 위치를 인식하는 동작은,
    상기 제 1 이미지 내에서 상기 동물의 눈을 포함하는 제 2 영역의 위치 및 상기 동물의 입을 포함하는 제 3 영역을 인식하는 동작; 및
    상기 제 2 영역의 위치 및 상기 제 3 영역의 위치에 기초하여 상기 제 1 영역의 위치를 인식하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  7. 제 1 항에 있어서,
    상기 사전 설정된 조건을 만족된 경우 상기 제 1 영역 내에서 관심 영역(Region Of Interest)을 결정하는 동작은,
    상기 제 1 영역 내에서 상기 동물의 우측 콧구멍(nostril) 및 좌측 콧구멍을 인식하는 동작;
    상기 우측 콧구멍 및 상기 좌측 콧구멍의 원형성(circularity) 및 상기 콧구멍의 관성률(Inertia ratio)에 기초하여 상기 동물이 촬영된 포즈(pose)를 인식하는 동작; 및
    상기 포즈가 기 설정된 포즈에 매칭되는 경우 상기 사전 설정된 조건이 만족되었다고 인식하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  8. 제 7 항에 있어서,
    상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은,
    상기 사전 설정된 조건을 만족되는 경우, 상기 우측 콧구멍 및 상기 좌측 콧구멍 간의 거리를 산출하는 동작; 및
    상기 거리에 기초하여 상기 관심 영역의 크기 및 상기 관심 영역의 위치를 결정하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  9. 제 7 항에 있어서,
    상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은,
    상기 사전 설정된 조건이 만족되지 않은 경우, 상기 사전 설정된 조건을 만족하는 제 1 이미지가 획득되도록 재촬영을 요구하는 인디케이터를 디스플레이하도록 디스플레이부를 제어하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  10. 제 7 항에 있어서,
    상기 제 1 영역 내에서 사전 설정된 조건을 만족하는 관심 영역(Region Of Interest)을 결정하는 동작은,
    상기 사전 설정된 조건을 만족하지 못하는 경우에, 상기 제 1 이미지를 정면화(Frontalization)하여 상기 포즈가 상기 기 설정된 포즈에 매칭되도록 만드는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  11. 제 10 항에 있어서,
    상기 제 1 이미지를 정면화하여 상기 포즈가 상기 기 설정된 포즈에 매칭되도록 만드는 동작은,
    상기 제 1 영역의 이미지 상에서 콧구멍들의 특징점을 추출하는 동작; 및
    상기 추출한 콧구멍들의 특징점이 메모리에 사전 저장된 동물을 정면에서 촬영한 이미지 상에서 콧구멍들의 특징점과 매칭되도록 상기 제 1 이미지를 보정하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  12. 제 1 항에 있어서,
    상기 제 1 정보 및 상기 제 2 이미지를 상기 서버에 전송한 후, 상기 서버로부터 상기 전송된 제 1 정보 및 상기 제 2 이미지에 대응하는 상기 동물의 개체 정보 및 제 1 비문 이미지 중 적어도 어느 하나를 수신하는 동작; 및
    상기 개체 정보 및 제 1 비문 이미지 중 적어도 어느 하나를 디스플레이하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  13. 제 12 항에 있어서,
    상기 개체 정보는,
    상기 제 2 이미지를 상기 서버에서 로컬 히스토그램(local histogram)에 기초하여 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지에 맵핑(mapping)된 개체 정보이고,
    상기 제 1 비문 이미지는,
    상기 서버에 저장되어 있는 복수의 비문 이미지 중 하나인,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
KR1020180121037A 2018-10-11 2018-10-11 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기 KR102117860B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180121037A KR102117860B1 (ko) 2018-10-11 2018-10-11 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
PCT/KR2018/012008 WO2020075888A1 (ko) 2018-10-11 2018-10-12 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
KR1020200028977A KR102487825B1 (ko) 2018-10-11 2020-03-09 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180121037A KR102117860B1 (ko) 2018-10-11 2018-10-11 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200028977A Division KR102487825B1 (ko) 2018-10-11 2020-03-09 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기

Publications (2)

Publication Number Publication Date
KR20200044209A KR20200044209A (ko) 2020-04-29
KR102117860B1 true KR102117860B1 (ko) 2020-06-02

Family

ID=70165027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180121037A KR102117860B1 (ko) 2018-10-11 2018-10-11 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기

Country Status (2)

Country Link
KR (1) KR102117860B1 (ko)
WO (1) WO2020075888A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102158799B1 (ko) * 2020-05-06 2020-09-22 호서대학교 산학협력단 심층신경망 모델을 이용한 건물 식별 방법, 컴퓨터 프로그램 및 장치
WO2021230680A1 (en) * 2020-05-13 2021-11-18 Pireco Co,. Ltd. Method and device for detecting object in image
KR102246471B1 (ko) * 2020-05-13 2021-04-30 주식회사 파이리코 이미지 내 동물의 코 영역을 검출하는 방법 및 장치
KR102176934B1 (ko) * 2020-09-24 2020-11-10 주식회사 디랩스 안면인식을 이용한 반려동물 종합 관리 서비스 제공 시스템
KR102344718B1 (ko) * 2020-10-30 2021-12-30 주식회사 아이싸이랩 동물을 식별 및 인증 중 적어도 하나를 수행하기 위해 획득한 동물 이미지를 클러스터링하는 방법
GR1010102B (el) * 2021-03-26 2021-10-15 Breed Ike, Συστημα αναγνωρισης προσωπου ζωων
KR102452192B1 (ko) * 2021-06-28 2022-10-11 주식회사 펫나우 반려 동물의 식별을 위한 객체의 이미지를 필터링하기 위한 방법 및 장치
JP2024518492A (ja) * 2021-06-28 2024-05-01 ペットナウ インコーポレイテッド ペットの識別のためのオブジェクトを撮影するための方法及び電子装置
KR102453695B1 (ko) * 2021-06-28 2022-10-12 주식회사 펫나우 반려 동물의 식별을 위한 객체를 촬영하기 위한 방법 및 장치
KR102444928B1 (ko) * 2021-06-28 2022-09-21 주식회사 펫나우 반려 동물의 식별을 위한 객체를 검출하기 위한 방법 및 장치
KR102444929B1 (ko) * 2021-06-28 2022-09-21 주식회사 펫나우 반려 동물의 식별을 위한 객체의 이미지를 처리하기 위한 방법 및 장치
JP2024514994A (ja) 2022-03-21 2024-04-04 タイロスコープ インコーポレーテッド 画像検証方法、それを実行する診断システム、及びその方法が記録されたコンピューター読取可能な記録媒体
KR102459723B1 (ko) 2022-03-21 2022-10-27 주식회사 타이로스코프 이미지 검증 방법, 그를 수행하는 진단 시스템 및 그를 수행하는 방법이 기록된 컴퓨터로 판독가능한 기록매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007135501A (ja) * 2005-11-21 2007-06-07 Atom System:Kk 鼻特徴情報生成装置及び鼻特徴情報生成プログラム
KR101732815B1 (ko) * 2015-11-05 2017-05-04 한양대학교 산학협력단 개체 특징점 추출 방법 및 장치, 이를 이용하는 개체 인식 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100414606B1 (ko) * 2001-02-13 2004-01-07 박현종 네트워크 기반의 개의 비문 정보를 이용한 신원확인 시스템
KR101527801B1 (ko) * 2013-05-22 2015-06-11 주식회사 아이싸이랩 동물들의 코무늬를 이용한 동물 개체 인식 장치 및 방법
KR101494717B1 (ko) * 2014-10-31 2015-02-26 주식회사 아이싸이랩 동물들의 코무늬를 이용한 동물 개체 인식 장치
KR101788272B1 (ko) * 2016-11-01 2017-10-19 오승호 생체 인식을 통한 반려 동물 인식 및 등록 관리 방법
KR101903377B1 (ko) * 2017-09-26 2018-10-02 (주)인투씨엔에스 동물보험 관련 동물개체 정보의 통합 관리와 개체인식수단을 이용한 진료 개체 특정 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007135501A (ja) * 2005-11-21 2007-06-07 Atom System:Kk 鼻特徴情報生成装置及び鼻特徴情報生成プログラム
KR101732815B1 (ko) * 2015-11-05 2017-05-04 한양대학교 산학협력단 개체 특징점 추출 방법 및 장치, 이를 이용하는 개체 인식 시스템

Also Published As

Publication number Publication date
KR20200044209A (ko) 2020-04-29
WO2020075888A1 (ko) 2020-04-16

Similar Documents

Publication Publication Date Title
KR102117860B1 (ko) 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
KR102487825B1 (ko) 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
CN109492643B (zh) 基于ocr的证件识别方法、装置、计算机设备及存储介质
US9953425B2 (en) Learning image categorization using related attributes
US10019655B2 (en) Deep-learning network architecture for object detection
US9767381B2 (en) Similarity-based detection of prominent objects using deep CNN pooling layers as features
CN109241880B (zh) 图像处理方法、图像处理装置、计算机可读存储介质
CN111414906B (zh) 纸质票据图片的数据合成与文本识别方法
TWI754887B (zh) 活體檢測方法和裝置、電子設備及儲存介質
WO2019100724A1 (zh) 训练多标签分类模型的方法和装置
CN110647829A (zh) 一种票据的文本识别方法及系统
US20160035078A1 (en) Image assessment using deep convolutional neural networks
CN113743384B (zh) 一种胃部图片识别方法及装置
US11334773B2 (en) Task-based image masking
US11417007B2 (en) Electronic apparatus and method for controlling thereof
US20230104262A1 (en) Panoptic segmentation refinement network
CN112613471B (zh) 人脸活体检测方法、装置及计算机可读存储介质
CN113011450B (zh) 青光眼识别的训练方法、训练装置、识别方法及识别系统
CN112418327A (zh) 图像分类模型的训练方法、装置、电子设备以及存储介质
US20210312200A1 (en) Systems and methods for video surveillance
US11495020B2 (en) Systems and methods for stream recognition
CN112215066A (zh) 家畜脸部图像识别方法及装置
CN113128380B (zh) 鱼体姿态的识别方法、装置、电子设备和存储介质
KR20230104969A (ko) 코 기반 반려동물 식별을 위한 시스템 및 방법
CN107424138A (zh) 基于云端服务器的图像融合方法与计算机存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant