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

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

Info

Publication number
WO2020075888A1
WO2020075888A1 PCT/KR2018/012008 KR2018012008W WO2020075888A1 WO 2020075888 A1 WO2020075888 A1 WO 2020075888A1 KR 2018012008 W KR2018012008 W KR 2018012008W WO 2020075888 A1 WO2020075888 A1 WO 2020075888A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
animal
region
information
computer program
Prior art date
Application number
PCT/KR2018/012008
Other languages
English (en)
French (fr)
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 주식회사 핏펫
Publication of WO2020075888A1 publication Critical patent/WO2020075888A1/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
    • 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

Definitions

  • the present disclosure relates to a computer program and a terminal stored in a computer-readable storage medium, and more particularly, to a program and a terminal stored in a computer-readable storage medium that provides object information of an animal based on the image of the animal.
  • the government is implementing an animal registration system to make it easier to find the owners of the abandoned animals.
  • animal registration it is divided into a built-in type that inserts a wireless identification chip into a pet and an external type that hangs the identification tag with a wireless identification chip attached to the pet's neck.
  • the identification chip which is a built-in type, is inhuman due to the characteristic that it is injected into the body of an animal, and there is a problem that side effects may occur in the body after insertion. In addition, there is a fear that the external identification tag may be lost, and if the identification tag is intentionally removed and abandoned, there is a problem that tracking is impossible.
  • the inscription is a unique pattern that can be found on the nose of an animal and can be used as a human fingerprint, so it is required as an alternative technique to the animal registration system described above.
  • Korean Patent Registration No. 10-1788272 provides a method for managing animal recognition and registration through biometric recognition.
  • the present disclosure has been devised in correspondence with the background art described above, and is intended to provide a program and a terminal stored in a computer-readable storage medium that provides individual information of an animal based on the image of the animal.
  • a computer program stored in a computer-readable storage medium includes instructions for causing the user terminal to perform the following operations, the operations comprising: obtaining a first image including a face of an animal photographed by a camera of the user terminal; Inputting the first image into a pre-trained species classification model to obtain first information about the animal species; Recognizing a position of a first region including the nose of the animal in the first image; Determining a region of interest within the first region when a preset condition is satisfied; When the region of interest is determined, extracting a second image including the region of interest from within the first image; And when the second image is extracted, transmitting the first information and the second image to a server. It may include.
  • the first learning data for training the species classification model uses image data including an animal's face as an input of learning data, and image data including the animal's face. Can be generated by labeling the first classification class for a species of animal. And the species classification model, using the first training data set including the first training data to learn the classification of the animal species that match the face of the animal, based on the first image, the first 1 You can get information.
  • the species classification model when receiving the first image as an input node, outputs a confidence score for each of the first classification classes at an output node, and The first classification class having the highest value among the confidence scores may be obtained as first information.
  • the operation of recognizing the position of the first region including the animal's nose in the first image may include inputting the first image into a pre-trained nose region recognition model. And recognizing a position of the first region within the first image.
  • the nose region recognition model uses the coordinates for a bounding box and a second training data set including image data including an animal's face.
  • the location of the nose region matching the image of the face may be learned, and the location of the first region within the first image may be recognized.
  • the operation of recognizing the position of the first region including the nose of the animal in the first image may include: a second including the animal's eye in the first image. Recognizing a location of the region and a third region including the animal's mouth; And recognizing the position of the first area based on the position of the second area and the position of the third area. It may include.
  • the operation of determining a region of interest in the first region may include: right nostril of the animal within the first region (nostril) and left nostril recognition; Recognizing a pose in which the animal is photographed based on at least one of a circularity of the right nostril and the left nostril and an inertia ratio of the nostril; And when the pose matches a preset pose, recognizing that the preset condition is satisfied.
  • the operation of determining a region of interest that satisfies a preset condition within the first region may include, when the preset condition is satisfied, the right nostril and Calculating a distance between the left nostrils; And determining the size of the region of interest and the location of the region of interest based on the distance.
  • the operation of determining a region of interest that satisfies a preset condition in the first region may be performed when the preset condition is not satisfied.
  • the control may further include controlling the display unit to display an indicator requiring re-shooting so that a first image that satisfies.
  • the operation of determining a region of interest that satisfies a preset condition within the first region may be performed when the region of interest is not satisfied. It may further include an operation of making the pose match the preset pose by frontalizing the image.
  • the operation of frontizing the first image so that the pose matches the preset pose includes: extracting feature points of nostrils on the image of the first region; And correcting the first image such that the extracted feature points of the nostrils match the feature points of the nostrils on an image photographed from the front of the animal pre-stored in the memory.
  • the transmitted first information after transmitting the first information and the second image to the server, the transmitted first information from the server and the individual information of the animal corresponding to the second image Receiving an operation; And displaying the entity information.
  • the entity information is mapped to a first inscription image matching the second image pre-processed based on a local histogram at the server.
  • the object information, and the first inscription image may be one of a plurality of inscription images stored in the server.
  • a computer program stored in a computer readable storage medium includes instructions for causing the server to perform the following operations, the operations being: a species of the animal obtained from a first image including a face of an animal captured by the camera of the user terminal from a user terminal.
  • the first inscription image having second information about a nose wrinkle corresponding to the first information at a second characteristic point corresponding to the first characteristic point among the plurality of inscription images may include correcting the second image to move the position of the first feature point when the first feature point and the second feature point are misaligned; And retrieving the first inscription image using the corrected second image. It may further include.
  • the operation of correcting the second image to move the position of the first feature point may include: Moving the second image vertically or horizontally or rotating the second image so that the location of the feature point and the second feature point coincide; It may further include.
  • the present disclosure can provide programs and terminals stored in a computer-readable storage medium that provides animal information based on an animal image.
  • FIG. 1 is a schematic diagram of a user terminal and a server according to some embodiments of the present disclosure.
  • FIG. 2 is a block diagram of a user terminal in accordance with some embodiments of the present disclosure.
  • FIG. 3 is a flowchart illustrating an operation of transmitting first information and second images of animals to a server according to some embodiments of the present disclosure.
  • FIG. 4 is a schematic diagram illustrating a convolutional neural network according to some embodiments of the present disclosure.
  • FIG. 5 is a diagram for schematically describing a species classification model according to some embodiments of the present disclosure.
  • FIG. 6 is a view for explaining an example of a method for obtaining information about a species of an animal using a species classification model according to some embodiments of the present disclosure.
  • FIG. 7 is a diagram for describing a method of recognizing a first region including a nose of an animal according to some embodiments of the present disclosure.
  • FIG. 8 is a diagram for describing a method of recognizing a first region including a nose of an animal according to some embodiments of the present disclosure.
  • FIG. 9 is a flowchart illustrating an operation of recognizing whether a preset condition is satisfied according to some embodiments of the present disclosure.
  • FIG. 10 is a diagram illustrating an example of an operation of recognizing a nostril according to some embodiments of the present disclosure.
  • 11 is a view for explaining an example of a method for measuring the circularity of the nostrils according to some embodiments of the present disclosure.
  • FIG. 12 is a view for explaining an example of a method for measuring the inertia of the nostrils according to some embodiments of the present disclosure.
  • FIG. 13 is a flowchart illustrating an example of a method for determining a region of interest within a first region according to some embodiments of the present disclosure.
  • FIG. 14 is a flowchart for explaining an example of a method in which animal information of an animal is provided to a user terminal according to some embodiments of the present disclosure.
  • 15 is a diagram illustrating an example of preprocessing a second image according to some embodiments of the present disclosure.
  • FIG. 1 is a schematic diagram of a user terminal and a server according to some embodiments of the present disclosure.
  • the user terminal 100 may be connected to the server 200 through a network 300 through wired / wireless.
  • the user terminal 100 may obtain a first image including the face of an animal photographed by the camera unit 110.
  • the user terminal 100 may obtain a second image including first information on a species of an animal photographed from the first image and a region of interest in the first image.
  • the user terminal 100 may transmit the acquired first information and second image to the server 200 through the network 300.
  • the user terminal 100 may receive the object information of the photographed animal from the server 200 based on the first information and the second image transmitted to the server 200.
  • the user terminal 100 may display the object information of the received animal.
  • the individual information of the animal may include at least one of animal species, gender, and singularity.
  • the animal's individual information may include at least one of the animal's owner's name, contact information, and address. Such animal information can be used to identify the owner of the photographed animal.
  • the above-mentioned animal information is only examples, and the present disclosure is not limited thereto.
  • the server 200 may receive the first information and the second image from the user terminal 100.
  • the server 200 may search for the first inscription image stored in the memory of the server 200 based on the first information and the second image.
  • the server 200 may acquire object information mapped to the searched inscription image.
  • the server 200 may transmit the mapped object information to the user terminal 100 through the network 300.
  • the method in which the above-described server 200 transmits the object information of the animal to the user terminal 100 based on the first information and the second image is only an example, and the present disclosure is not limited.
  • the server 200 may include a control unit, a network unit, and a memory. Each component of the above-described server 200 is similar to the components included in the user terminal 100, which will be described later, a detailed description thereof will be omitted. However, the present invention is not limited thereto, and the server 200 may include more or less components than the above-described components.
  • the memory of the server 200 may store a computer program for performing operations of the server 200 according to some embodiments of the present disclosure, which will be described later.
  • the computer program stored in the memory of the server 200 may be read and driven by the control unit of the server 200.
  • the memory of the server 200 may store a program for the operation of the control unit of the server 200.
  • the network 300 includes a public switched telephone network (PSTN), an x Digital Subscriber Line (xDSL), a rate adaptive DSL (RADSL), a multi rate DSL (MDSL), Various wired communication systems such as Very High Speed DSL (VDSL), Universal Asymmetric DSL (UDSL), High Bit Rate DSL (HDSL), and Local Area Network (LAN) can be used.
  • PSTN public switched telephone network
  • xDSL Digital Subscriber Line
  • RADSL rate adaptive DSL
  • MDSL multi rate DSL
  • VDSL Very High Speed DSL
  • UDSL Universal Asymmetric DSL
  • HDSL High Bit Rate DSL
  • LAN Local Area Network
  • the network 300 presented here is Code Division Multi Access (CDMA), Time Division Multi Access (TDMA), Frequency Division Multi Access (FDMA), Orthogonal Frequency Division Multi Access (OFDMA), Single Carrier-FDMA (SCFDMA) And other wireless communication systems, such as other systems.
  • 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
  • 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
  • Wireless LAN Wireless-Fidelity
  • Wi-Fi Wireless Fidelity
  • Wi-Fi Wireless Fidelity
  • Wi-Fi Direct
  • Digital Living Network Alliance DLNA
  • 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
  • FIG. 2 is a block diagram of a user terminal in accordance with some embodiments of the present disclosure.
  • the user terminal 100 may include a camera unit 110, a memory 120, a control unit 130, a network unit 140, and a display unit 150.
  • the above-described components are not essential in implementing the user terminal 100, and thus the user terminal 100 may have more or fewer components than those listed above.
  • each component may be composed of a separate chip or module or device, or may be included in one device.
  • the user terminal 100 may be a personal computer (PC), a notebook, a mobile terminal, a smart phone, or a tablet PC.
  • PC personal computer
  • the present invention is not limited thereto, and the user terminal 100 may be any type of terminal equipped with a camera unit 110 capable of capturing an image.
  • the user terminal 100 may include one or a plurality of camera units 110 for input of image information.
  • the camera unit 110 may process an image frame such as a still image or a video image obtained by an image sensor in a shooting mode.
  • the processed image frame may be displayed on the display unit 150 or stored in the memory 120.
  • the plurality of camera units 110 provided in the user terminal 100 may be arranged to form a matrix structure.
  • the user terminal 100 may have various angles or A plurality of image information having focus may be input.
  • the camera unit 110 may acquire a first image including an animal's face.
  • the first image may be a video image or a preview image.
  • the above-described first image is only an example, and the present disclosure is now not limited.
  • the first image may be used by a user to obtain first information about a species of animal photographed by the user terminal 100.
  • the first image may be used to extract a second image including a region of interest from within the first region including the nose of the photographed animal.
  • the first image acquired by the camera unit 110 may be stored in the memory 120. Further, the first image may be transmitted to the server 200 through the network unit 140.
  • the memory 120 may store data supporting various functions of the user terminal 100.
  • the memory 120 may store a number of application programs or applications that are driven in the user terminal 100 and data and commands for the operation of the user terminal 100. At least some of these applications may be downloaded from external servers via wireless communication. In addition, at least some of these application programs may exist on the user terminal 100 from the time of shipment for basic functions of the user terminal 100. Meanwhile, the application program may be stored in the memory 120 and installed on the user terminal 100 to be driven by the controller 130 to perform an operation (or function) of the user terminal 100.
  • the memory 120 includes a flash memory type, a hard disk type, a solid state disk type, an SDD type (Silicon Disk Drive type), and a multimedia card micro type. ), Card-type memory (e.g. SD or XD memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read (EPMROM) It may include a storage medium of at least one type of -only memory), PROM (programmable read-only memory), magnetic memory, magnetic disk, and optical disk.
  • the user terminal 100 may be operated in connection with a web storage that performs a storage function of the memory 170 on the Internet.
  • the memory 120 stores a computer program for performing the operation of obtaining the first information and extracting the second image and transmitting the first information and the second image to the server 200. You can.
  • the computer program stored in the memory 120 may be read and driven by the controller 130.
  • the memory 120 may store a program for the operation of the control unit 130, and input / output data (eg, a first image including an animal's face, first information about an animal species) , The second image including the region of interest and the object information of the animal) may be temporarily or permanently stored.
  • the memory 120 may store data related to a display and sound.
  • the control unit 130 may be composed of one or more cores, a central processing unit (CPU) of a computing device, a general purpose graphics processing unit (GPGPU), and tensor processing (TPU) unit), and a processor for data analysis and deep learning.
  • CPU central processing unit
  • GPU general purpose graphics processing unit
  • TPU tensor processing
  • the control unit 130 reads a computer program stored in the memory 120 and includes first information about a species of an animal captured by a user from a first image and a region of interest within the first image The second image can be extracted.
  • the controller 130 may perform calculation for learning a neural network.
  • the controller 130 is configured to process the input data for learning in deep learning (DN), extract features from the input data, calculate errors, and update the weight of the neural network using backpropagation. You can perform calculations for learning.
  • DN deep learning
  • At least one of the CPU, GPGPU, and TPU of the control unit 130 may process learning of the model.
  • the CPU and GPGPU process computations for learning a model, acquiring first information about a species of an animal photographed using the model, and extracting a second image including a region of interest within the first image. can do.
  • operations on at least one of learning a model, acquiring the first information through a model, and extracting the second image may be processed by using processors of a plurality of computing devices together.
  • a computer program executed in a computing device may be a CPU, GPGPU, or TPU executable program.
  • the user terminal 100 may distribute and process the model using at least one of a CPU, GPGPU, and TPU. In addition, in some embodiments of the present disclosure, the user terminal 100 may distribute and process the model together with other computing devices.
  • the network unit 140 enables wireless communication between the user terminal 100 and the wireless communication system, between the user terminal 100 and another terminal (not shown), or between the user terminal 100 and the server 200. It may include one or more modules. In addition, the network unit 140 may include one or more modules connecting the user terminal 100 to one or more networks.
  • Wireless Internet technologies include, for example, 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 (HSDPA), High Speed Uplink Packet Access (HSUPA), Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A), etc.
  • the display 150 displays (outputs) information processed by the user terminal 100.
  • the display 150 may display execution screen information of an application program driven by the user terminal 100, or UI (User Interface) or GUI (Graphic User Interface) information according to the execution screen information. .
  • the display unit 150 includes a liquid crystal display (LCD), a thin film transistor-liquid crystal display (TFT LCD), an organic light-emitting diode (OLED), and a flexible display (flexible). display), a three-dimensional display (3D display), and an electronic ink display (e-ink display).
  • LCD liquid crystal display
  • TFT LCD thin film transistor-liquid crystal display
  • OLED organic light-emitting diode
  • flexible display flexible display
  • display flexible display
  • display flexible display
  • display flexible display
  • display flexible display
  • display flexible display
  • display three-dimensional display
  • e-ink display electronic ink display
  • control unit 130 for controlling the operation of the user terminal 100 will be described in detail with reference to FIGS. 3 to 13.
  • FIG. 3 is a flowchart illustrating an operation of transmitting first information and second images of animals to a server according to some embodiments of the present disclosure.
  • the controller 130 may acquire a first image including the face of an animal photographed from the camera unit 110 (S210).
  • the controller 130 may acquire a first image including the face of the animal photographed from the camera unit 110 based on the image photographing command. For example, when a user photographs an animal with the camera unit 110 of the user terminal 100, the control unit 130 includes all the faces of the animal (eg, an animal's eye photographed by the user, A user interface representing a photographing command including nose, mouth, and ears) may be displayed through the display unit 150.
  • the first image may be a video image or a preview image.
  • controller 130 may input the first image into the pre-trained species classification model to obtain first information on the species of the photographed animal (S220).
  • FIG. 4 is a schematic diagram illustrating a convolutional neural network according to some embodiments of the present disclosure.
  • a deep neural network may mean a neural network including a plurality of hidden layers in addition to an input layer and an output layer.
  • Deep neural networks can be used to identify potential latent structures in data. In other words, it is possible to grasp the potential structure of photos, text, video, voice, and music (for example, what objects are in the picture, what the content and emotions of the text are, what the content and emotions of the speech, etc.) .
  • Deep neural networks include convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), and deep belief networks (DBNs). , Q network, U network, Siam network, and the like.
  • the convolutional neural network illustrated in FIG. 4 is a type of deep neural network and includes a neural network including a convolutional layer.
  • Convolutional neural networks are a type of multilayer perceptorns designed to use minimal preprocessing.
  • the CNN may consist of one or several convolutional layers and artificial neural network layers combined with it. CNN may additionally utilize weights and pooling layers. Thanks to this structure, CNN can fully utilize the input data of the two-dimensional structure.
  • Convolutional neural networks can be used to recognize objects in an image.
  • the convolutional neural network can process image data as a matrix with dimensions.
  • each of R, G, and B colors may be represented as a two-dimensional (for example, two-dimensional image) matrix. That is, the color value of each pixel of the image data may be a component of the matrix, and the size of the matrix may be the same as the size of the image. Therefore, the image data can be represented by three two-dimensional matrices (three-dimensional data array).
  • a convolutional process (input / output of a convolutional layer) can be performed by moving a convolutional filter in a convolutional neural network and multiplying the convolutional filter and matrix components at each position of the image.
  • the convolutional filter may be configured as an n * n matrix.
  • the convolutional filter may generally consist of a fixed type filter smaller than the total number of pixels in the image. That is, when an m * m image is input to a convolutional layer (for example, a convolutional layer having a convolutional filter size of n * n), a matrix representing n * n pixels including each pixel of the image It can be multiplied by this convolutional filter (ie, the product of each component of the matrix).
  • a component matching the convolutional filter in the image may be extracted by multiplication with the convolutional filter.
  • a 3 * 3 convolutional filter for extracting a vertical line component from an image may be configured as [[0,1,0], [0,1,0], [0,1,0]] You can.
  • a 3 * 3 convolutional filter for extracting vertical components from the image is applied to the input image, vertical components that match the convolutional filter from the image may be extracted and output.
  • the convolutional layer may apply a convolutional filter to each matrix for each channel representing an image (ie, R, G, and B colors in the case of R, G, and B coded images).
  • the convolutional layer may extract a feature matching the convolutional filter from the input image by applying a convolutional filter to the input image.
  • the filter value of the convolutional filter (that is, the value of each component of the matrix) may be updated by backpropagation in the learning process of the convolutional neural network.
  • a subsampling layer is connected to the output of the convolutional layer, thereby simplifying the output of the convolutional layer to reduce memory usage and computation. For example, if the output of a convolutional layer is input to a pooling layer having a 2 * 2 max pooling filter, the maximum value included in each patch is output for each 2 * 2 patch in each pixel of the image to compress the image. You can.
  • the aforementioned pooling may be a method of outputting a minimum value in a patch or outputting an average value of patches, and any pooling method may be included in the present disclosure.
  • the convolutional neural network may include one or more convolutional layers and sub-sampling layers.
  • the convolutional neural network can extract features from an image by repeatedly performing a convolutional process and a subsampling process (for example, the Max pooling described above). Through the iterative convolutional and subsampling process, the neural network can extract global features of the image.
  • the output of the convolutional layer or subsampling layer may be input to a fully connected layer.
  • a full connected layer is a layer in which all neurons in one layer are connected to all neurons in a neighboring layer.
  • the full connected layer may refer to a structure in which all nodes of each layer are connected to all nodes of the other layer in the neural network.
  • the neural network may include a deconvolutional neural network (DCNN) to perform segmentation of image data.
  • the deconvolutional neural network performs an operation similar to that of calculating the convolutional neural network in the reverse direction.
  • the deconvolutional neural network may output features extracted from the convolutional neural network as a feature map related to original data. Descriptions of specific configurations for the convolutional neural network are discussed in more detail in US patent US9870768B2, which is incorporated herein by reference in its entirety.
  • the pre-trained species classification model corresponds to a convolutional neural network
  • the controller 130 may recognize the species of the animal photographed using the above-described convolutional neural network.
  • 5 is a diagram for schematically describing a species classification model according to some embodiments of the present disclosure.
  • 6 is a view for explaining an example of a method for obtaining information about a species of an animal using a species classification model according to some embodiments of the present disclosure.
  • the pre-trained species classification model of the present disclosure is a pre-trained network function 520, which is among supervised learning, unsupervised learning, and semi supervised learning. It can be learned in at least one way.
  • Learning network functions is intended to minimize errors in the output.
  • learning data is repeatedly input to the network function.
  • the output of the network function for the training data and the error of the target are calculated.
  • the weight of each node of the network function can be updated by back propagating the error of the network function from the output layer of the network function to the input layer in the direction of reducing errors in the learning of the network function.
  • the species classification model may be the network function 520 described above.
  • the first learning data for training the species classification model includes image data including an animal's face as an input of training data, and image data including an animal's face for an animal species. It can be created by labeling the first classification class.
  • the species classification model uses the first training data set including the first training data to learn classification for the animal species that matches the animal's face, and based on the first image. It can be generated to obtain first information about the species of the animal.
  • the species classification model may be generated from an external server or other computing device.
  • the external server or other computing device may perform web crawling to acquire image data including an animal's face.
  • the image data can be used in the first set of training data for training the species classification model.
  • the external server or other computing device may acquire image data including an animal face from the user terminal 100 or another user terminal.
  • the method of obtaining the above-described image data is only an example, and the present disclosure is not limited now.
  • the user terminal 100 may acquire an externally generated species classification model and store it in the memory 120. Meanwhile, according to some other embodiments of the present disclosure, the user terminal 100 may generate a species classification model.
  • each of the eyes, nose, mouth, and ears may differ depending on the species of dog.
  • the dog species can be distinguished based on the characteristics of the dog species.
  • An external server or other computing device may acquire image data including the animal's face in the manner described above.
  • the external server or other computing device may generate the first learning data by labeling information on the animal species based on the characteristic that can distinguish the animal species from the acquired image data.
  • the external server or other computing device may generate a species classification model by learning the classification of the animal species that matches the animal's face in the network function using the first training data set including the first training data.
  • the method for generating the above-described species classification model is only an example, and the present disclosure is not limited thereto, and the user terminal 100 may directly generate the species classification model.
  • the control unit 130 may obtain information about a species of an animal included in the first image by inputting the generated species classification model into the first image.
  • the controller 130 may calculate by inputting a first image including an animal's face in a species classification model.
  • the controller 130 may output a confidence score for each of the first classification classes for the animal species using the species classification model in the output node 530.
  • the controller 130 may obtain the first classification class having the highest value among the confidence scores as the first information based on the output confidence scores.
  • the method for obtaining the first information described above is merely an example, and the present disclosure is not limited thereto.
  • the controller 130 may calculate an confidence score by inputting an image of an animal in a species classification model.
  • the control unit 130 provides a confidence score of each of the first classification classes classified according to types of animals (eg, dogs) included in the image based on characteristics such as shape, size, and location of each of the eyes, nose, mouth, and ears. Can be calculated using the species classification model.
  • the confidence score for the beagle may have the highest value among the calculated confidence scores as shown in FIG. 6.
  • the controller 130 may acquire the first information by recognizing the animal species captured from the first image as a beagle.
  • the method of obtaining the above-described first information is only an example, and the present disclosure is not limited now.
  • the controller 130 acquires the first information on the animal species in step S220, the position of the first region including the nose of the animal photographed in the first image It can be recognized (S230).
  • FIG. 7 and 8 are diagrams for describing a method of recognizing a first region including a nose of an animal according to some embodiments of the present disclosure.
  • the controller 130 may recognize the position of the first region including the nose of the animal captured in the first image by inputting the first image into the pre-trained nose region recognition model.
  • the nose recognition model may be a model using a You Only Look Once (YOLO) algorithm.
  • YOLO You Only Look Once
  • the nose region recognition model may be generated from an external server or other computing device.
  • image data for training the nose region recognition model image data for training the above-described species classification model may be used.
  • an external server or other computing device may acquire image data for learning the nose region as a method for obtaining the image data described above.
  • the method of obtaining image data for training the nose region recognition model described above is merely an example, and the present disclosure is not limited.
  • the user terminal 100 may acquire an externally generated nose region recognition model and store it in the memory 120. Meanwhile, according to some other embodiments of the present disclosure, the user terminal 100 may generate a nose region recognition model.
  • the nose region recognition model can learn the location of the nose region that matches the image of the animal's face using coordinates for a bounding box and a second training data set that includes image data that includes the animal's face. have.
  • an external server or other computing device may generate the second learning data by labeling the second information about the location of the first area including the nose in the image data including the face of the animal.
  • the second information may include information about the shape, position, and size of the animal's nose for identification with other objects (eg, eyes, mouth, ears, etc.) in the face image of the animal.
  • the labeled learning data may be that the user directly labels the second information within the image containing the animal face.
  • the labeled learning data may be labeling second information on image data including an animal face using another network function model.
  • the second information may be labeled at the position of the first region including the nose in the image including the animal face.
  • An external server or other computing device may obtain second information about the location of the first region including the nose by calculating each of the second training data included in the labeled second training data set using a nose region recognition model. have.
  • the external server or other computing device may calculate an error by comparing information about the location of the first region obtained by calculating using the nose region recognition model and labeled second information of the second training data.
  • the external server or other computing device can calculate the error based on the degree of overlap of regions.
  • the external server or other computing device is based on the degree of overlap of the bounding box of the information about the location of the first area obtained by calculating using the nose area recognition model and the bounding box of the labeled second information of the learning data.
  • the error can be calculated.
  • the error may be obtained by dividing the intersection of the bounding box of the information on the position of the first region calculated by using the bounding box of the labeled second information and the nose region recognition model by the union.
  • the external server or other computing device may back propagate the error calculated in the direction of the input layer from the output layer of the nose region recognition model, which is the reverse direction.
  • the external server or other computing device may reverse the error from the output layer to the input layer to update the connection weight of each node of each layer according to the back propagation.
  • the connection weight of each node to be updated may be determined according to a learning rate.
  • the calculation of the nose region recognition model for the first image, which is the input data, and the back propagation of errors may constitute a learning cycle.
  • the learning rate may be applied differently according to the number of iterations of the learning cycle of the network function.
  • a high learning rate may be used to rapidly increase the efficiency of the network function by ensuring a certain level of performance.
  • a low learning rate can be used to increase accuracy in a later learning period of a network function.
  • an external server or other computing device may increase the learning rate for learning the nose region recognition model from 0.001 to 0.1 per epoch.
  • an external server or other computing device may train the nose region recognition model by setting the learning rate during the last 30 epochs to 0.0001 for training the nose region recognition model.
  • An external server or other computing device may set a drop out so that part of the output of the hidden node is not delivered to the next hidden node in order to prevent overfitting in learning the nose region recognition model.
  • the controller 130 may perform learning of the nose region recognition model by setting the dropout rate of the nose region recognition model to 0.5.
  • the description of the method for generating the nose region recognition model described above is merely an example, and the present disclosure is not limited thereto.
  • the user terminal 100 may generate a nose region recognition model in a manner in which the above-described external server or other computing device generates a nose region recognition model.
  • the controller 130 is based on the first image, first information about the species of the animals included in the first image, and scoring values for each of the second classification classes in the above-described nose recognition model YOLO algorithm.
  • the second information on the location 710 of the first region including the nose may be determined.
  • the second classification class may be for recognizing the position of the first region including the nose region.
  • the controller 130 may recognize the location 710 of the first region including the animal's nose based on the location of the animal's eyes and the animal's mouth.
  • the controller 130 may recognize the position of the second region including the animal's eye and the third region including the animal's mouth in the first image (S231).
  • the controller 130 uses the eye area recognition model and the mouth area recognition model stored in the memory 120 to determine the position of the second area including the animal's eye and the position of the third area including the animal's mouth. Can be recognized.
  • the eye region recognition model (or the mouth region recognition model) can recognize the eye region (or the mouth region) in the same manner as the nose region recognition model described above, so a detailed description thereof will be omitted.
  • the present invention is not limited thereto, and the controller 130 may recognize the location of the second region including the animal's eye and the location of the third region including the animal's mouth in various ways.
  • the controller 130 may recognize the location of the first region including the nose of the animal photographed in the first image based on the location of the second region and the location of the third region (S232).
  • the nose position recognition model for recognizing the position of the nose based on the position of the eye and the position of the mouth may be stored in the memory 120.
  • the control unit 130 may include the nose of the animal by inputting the position of the second area acquired in step S231 and the position of the third area acquired in step S231 into the nose position recognition model stored in the memory.
  • the position of the first area can be recognized.
  • the nose position recognition model may recognize the nose position by additionally inputting information about the animal species.
  • the method of recognizing the position of the first region including the nose of the animal described above is merely an example, and the present disclosure is not limited thereto.
  • the controller 130 may determine whether the preset condition is satisfied. Yes (S240).
  • FIG. 9 is a flowchart illustrating a method of recognizing whether a preset condition is satisfied according to some embodiments of the present disclosure.
  • 10 is a diagram illustrating an example of an operation of recognizing a nostril according to some embodiments of the present disclosure.
  • 11 is a view for explaining an example of a method for measuring the circularity of the nostrils according to some embodiments of the present disclosure.
  • 12 is a view for explaining an example of a method for measuring the inertia of the nostrils according to some embodiments of the present disclosure.
  • the controller 130 may recognize the right nostril and the left nostril of the animal in the first region (S241).
  • the controller 130 may recognize the right nostril and the left nostril of the animal in the first region using a feature extraction algorithm.
  • the region where the nostril is located in the first region of the first image may be the darkest. Accordingly, a difference between the brightness value of pixels in the nostril region on the image in the first region and the brightness value of pixels in the nostril region located at the edge of the nostril may have a maximum value. In this case, the brightness value may vary depending on the pixel depth of the first image data.
  • the controller 130 may extract the brightness values of the pixels of the image of the first region, and recognize the region having the maximum difference in brightness values of pixels between adjacent regions as the edge of the nostril. In addition, the controller 130 may extract pixels in a region where the difference in brightness value has the maximum value as feature points of the nostrils.
  • the method for recognizing the nostril described above is merely an example, and the present disclosure is not limited thereto.
  • the controller 130 may photograph the animal based on at least one of a right nostril and a circularity of the left nostril and an inertia ratio of the nostril.
  • the pose can be recognized (S242).
  • the pose in which the animal is photographed may be information indicating from which side the user has photographed the face of the animal.
  • a method in which the controller 130 recognizes a pose in which an animal is photographed based on a right nostril and a circularity of the left nostril is as follows.
  • the circularity is the upper / lower / nostril of the nostril corresponding to the species of the animal in which the nostril curvature at the feature point existing on the upper / lower / left / right side of the animal's nostril included in the image is stored in the memory 120. It may mean the degree similar to the curvature of the nostril at the feature points present on the / left / right side.
  • the controller 130 may recognize a pose in which the animal is photographed based on first information about the animal species obtained from the first image and circularity according to the animal species stored in the memory 120. .
  • the controller 130 is on the upper / lower / left / right side of the nostrils of the animals included in the first image including the face of the animal obtained by shooting with the camera unit 110.
  • the difference between the curvature of the nostril measured at each of the characteristic points P1, P2, P3, and P4 and the curvature of the nostril measured at each of the feature points existing at the top / bottom / left / right stored in the memory 120 You can calculate the value.
  • the control unit 130 may recognize that the pose of the animal is front when the calculated difference value is less than a preset threshold value.
  • the curvature of the nostril measured at each of the feature points existing in the upper / lower / left / right side stored in the memory 120 is the upper / lower of the nostril according to the species of the animal when the face of the animal is photographed from the front. It may be the curvature of the nostril measured at each of the feature points present on the / left / right side.
  • the nostrils of the nostrils at the feature point P4 located on the left side from the center of the nostril of the animal The curvature and the curvature of the nostril at the feature point P2 existing on the right may be smaller than the curvature of the feature point existing on the left and right stored in the memory. Further, the curvature at the feature point P1 existing at the upper side of the nostril and the curvature at the feature point P3 existing at the lower side of the nostril may be greater than the curvature of the feature points existing at the upper and lower sides stored in the memory.
  • the control unit 130 may recognize that the pose of the animal is right (or left).
  • a method in which the controller 130 recognizes a pose in which an animal is photographed based on a right nostril and an inertia of the left nostril is as follows.
  • the inertia rate means the ratio of the length (a) of the horizontal axis to the length (b) of the vertical axis at the center of the nostril.
  • the controller 130 may measure a first length (a) between the feature points of two nostrils located on the horizontal axis from the center of the nostril among the feature points of the nostril.
  • the controller 130 may measure a second length (b) between the feature points of the two nostrils located on the vertical axis from the center of the nostril.
  • the control unit 130 may measure the inertia rate of the nostril based on the ratio of the first length (a) and the second length (b).
  • the controller 130 poses where the animal is photographed based on the first information on the species of the animal obtained from the first image, the inertia rate corresponding to the first information stored in the memory, and the inertia rate measured by the first image Can recognize.
  • the inertia rate according to the animal species may be stored in the memory 120.
  • the controller 130 may recognize a pose in which the animal is photographed based on a difference value between the inertia rate measured from the first image and the inertia rate mapped to the first information on the animal species stored in the memory.
  • the inertia rate stored in the memory 120 may be an inertia rate that may be obtained when an animal of the corresponding species is photographed from the front.
  • control unit 130 is the difference value between the inertia rate of the nostrils of the animal and the inertia rate stored in the memory 120 included in the first image including the face of the animal obtained by shooting with the camera unit 110 Can be calculated.
  • the control unit 130 may recognize that the pose of the animal is front when the calculated difference value is less than a preset threshold value.
  • the inertia rate stored in the memory 120 may be an inertia rate when an animal's face is photographed from the front.
  • the length (a) of the horizontal axis located in the right nostril of the animal is the right nostril stored in the memory 120.
  • the length of the horizontal axis is longer and the length (b) of the vertical axis can be measured in the same way.
  • the length (a) of the horizontal axis located in the left nostril of the animal is the left nostril stored in the memory 120. It is shorter than the length of the horizontal axis and the length of the vertical axis can be measured equally. Accordingly, when the pose is the right side, the controller 130 may recognize that the pose is the right side by comparing the inertia rate recognized through the first image with the inertia rate stored in the memory 120.
  • the controller 130 may recognize that the preset condition is satisfied (S243).
  • the controller 130 when the controller 130 recognizes the pose of the animal photographed in step S242, the controller 130 can recognize that the preset condition is satisfied when the pose of the photographed animal matches the preset pose.
  • the preset pose means that the animal is photographed from the front.
  • the controller 130 may recognize that the preset condition is satisfied.
  • the controller 130 may recognize that the preset condition is not satisfied.
  • the controller 130 may determine a region of interest in the first region when the preset condition is satisfied in step S240 (S250).
  • the region of interest within the first region may be a region containing an inscription, which is a unique pattern found in the nose of an animal.
  • an inscription which is a unique pattern found in the nose of an animal.
  • the size of the nose outside the animal's nostrils expands or contracts, and the shape of the inscription located outside the animal's nostrils can be altered.
  • the size between the left and right nostrils changes less than the outside of the nostrils
  • the shape of the inscription located between the left and right nostrils is also located outside the nostrils. Deformation may occur smaller than the shape of. Therefore, it is desirable to determine the region of interest between the left and right nostrils.
  • FIG. 13 is a flowchart illustrating an example of a method for determining a region of interest within a first region according to some embodiments of the present disclosure.
  • the controller 130 may calculate the distance between the right nostril and the left nostril (S251).
  • control unit 130 may recognize the left / right nostrils by extracting the feature points of the left / right nostrils on the image in the first region in step S241 described above.
  • the distance between the right nostril and the left nostril may be calculated by the control unit 130.
  • the controller 130 may determine the size and position of the region of interest based on the distance between the nostrils (S252).
  • the controller 130 may largely determine the size of the region of interest. On the other hand, if the calculated distance between the left and right nostrils is short, the controller 130 may determine the size of the region of interest to be small. In addition, the controller 130 may determine a position that is the center of the distance between the left and right nostrils as the position of the region of interest. This is because, as described above, the position that is the center of the distance between the left and right nostrils is the position with the smallest change in shape according to the movement of the nostrils.
  • control unit 130 displays the display unit 150 to display an indicator requiring re-shooting so that a first image satisfying the preset condition is obtained when the preset condition is not satisfied. ) Can be controlled.
  • control unit 130 may control the display unit 150 to display an indicator requesting re-image by moving the camera unit 110 to the left side of the animal's face so as to satisfy a predetermined condition.
  • the controller 130 may again determine whether the re-photographed first image satisfies a preset condition.
  • the indicator method for re-taking the first image described above is merely an example, and the present disclosure is not limited now.
  • the controller 130 may frontize the first image to satisfy the preset condition.
  • control unit 130 may extract the feature points of the left and right nostrils on the image in the first region in the above-described step S241.
  • the memory 120 may store information regarding the location of the feature points of the left / right nostrils based on the image of the front face of the animal.
  • the controller 130 may correct the first image to match the feature points of the nostrils extracted on the image in the first region to the stored feature points based on information on the location of the feature points of the nostrils stored in the memory 120. .
  • the control unit 130 may determine that the face of the animal is photographed from the right side on the first image.
  • the controller 130 may further correct the size of the pixels positioned on the right side of the first image or move the position to the left.
  • correction may be made to increase the size of the pixels located on the left side of the first image or to move it to the right.
  • the control unit 130 may extract the feature points of the left and right nostrils again on the corrected first image.
  • the controller 130 may recognize that the preset condition is satisfied when the feature points of the extracted left / right nostrils match the stored feature points.
  • the controller 130 may extract a second image including the region of interest from the first image (S260).
  • the controller 130 may generate second image data including a region of interest within the first image.
  • the second image may be transmitted to the server and used to obtain object information of the photographed animal.
  • control unit 130 may control the network unit 140 to transmit the first information and the second image to the server when the second image is extracted in step S260.
  • the control unit of the server 200 obtains the object information of the animal photographed by the user terminal 100 based on the received first information and the second image, and transmits it to the user terminal 100, the network unit of the server 200 Can be controlled.
  • the control unit 130 displays to display the animal's individual information through the display unit 150
  • the unit 150 can be controlled.
  • the individual information of the animal may include at least one of animal species, gender, and singularity. Further, the animal's individual information may include at least one of the animal's owner's name, contact information, and address. The individual information of the animal can be used to identify the owner of the photographed animal.
  • the above-mentioned animal information is only examples, and the present disclosure is not limited thereto.
  • the controller 130 may control the overall operation of the user terminal 100 in addition to the operations related to the application program.
  • the controller 130 may provide or process appropriate information or functions to the user by processing signals, data, and information input or output through the above-described components or by driving an application program stored in the memory 120.
  • controller 130 may control at least some of the components discussed with reference to FIG. 2 to drive the application program stored in the memory 120. Furthermore, the control unit 130 may operate by combining at least two or more of the components included in the user terminal 100 to drive the application program.
  • 14 is a flowchart for explaining an example of a method in which animal information of an animal is provided to a user terminal according to some embodiments of the present disclosure.
  • 15 is a diagram illustrating an example of preprocessing a second image according to some embodiments of the present disclosure.
  • control unit 130 of the user terminal 100 may extract the first information and the second image based on the first image acquired through the camera unit 110 (S310). This is described above with reference to FIGS. 3 to 13 and detailed description thereof will be omitted.
  • the first information may include information on the species of the photographed animal.
  • the second image may include an inscription image of the animal that can confirm the object information of the photographed animal.
  • the control unit 130 of the user terminal 100 may control the network unit 140 to transmit the first information and the second image to the server 200 through the network unit 140 (S320).
  • the control unit of the server 200 may preprocess the received second image based on the local histogram (S330).
  • a difference in quality of the first image may occur according to an environment in which the user photographs the animal.
  • the quality of the first image may be different depending on the model of the user terminal 100.
  • other noises such as foreign matter (eg, animal sweat) in the nose of the animal and reflected light of the camera unit 110 of the user terminal 100 may be included in the first image. Accordingly, noise may also be included in the second image extracted based on the first image that may include noise.
  • control unit of the server 200 may preprocess the second image 1510 including noise based on a local histogram including an image processing algorithm.
  • the image processing algorithm of the server 200 may include canny edge detection, Harris corner detection, etc., but the present disclosure is not limited thereto.
  • the server 200 blurs the second image 1510 to remove noise, and uses the mask edge to detect the edges of the animal's nose patterns (inscriptions). , By removing the Non-Maximum Value and dividing the size by Double Threshold, the edges can be extracted. Also, the server 200 may measure the width and depth of the pixels of the second image. The server 200 may preprocess the second image 1510 based on the width and depth of the edges and pixels. When the second image 1510 is preprocessed by the server 200, the contrast difference between the patterns on the preprocessed second image 1520 may increase.
  • the method of preprocessing the second image described above is merely an example, and the present disclosure is not limited now.
  • the pre-processed second image 1520 may reduce the quality difference of the second image 1510 according to the type of the user terminal 100.
  • noise included in the second image 1510 before the pre-processing for example, noise due to foreign matter on the nose of an animal or noise due to reflected light from the camera
  • the shape of the nose pattern and the splitting of the nose pattern in the pre-processed second image 1520 may be more clear. Through this, the first inscription image matching the pre-processed second image 1520 as described later may be more accurately searched.
  • the server 200 may search for a first inscription image matching the second preprocessed image from a plurality of inscription images stored in the memory of the server 200 (S340).
  • a plurality of inscription images may be classified and stored according to animal species in the memory of the server 200.
  • the control unit of the server 200 may search for the first inscription image matching the second image based on the first information on the type of the animal photographed in the classified inscription image. Since the inscription images are classified according to the animal species in the memory of the server 200 and stored, the speed of retrieving the first inscription image matching the second image can be improved.
  • the method of retrieving the first inscription image described above is merely an example, and the present disclosure is not limited now.
  • the method for searching for the first inscription image in step S340 is as follows.
  • the control unit of the server 200 may recognize the first feature point from the pre-processed second image.
  • the control unit of the server 200 may recognize the first feature point in the pre-processed second image using a feature extraction algorithm.
  • the first feature point means a point where valleys of the nose wrinkles (for example, a dark portion in the second image) meet in the second image. Accordingly, the brightness value of pixels in which the first feature point is located in the pre-processed second image is higher than the brightness value of pixels in which patterns (eg, a bright portion in the second image) are located in the second image. Can have At this time, the brightness value may be changed according to the pixel depth of the pre-processed second image.
  • the control unit of the server 200 may extract the brightness values of pixels of the pre-processed second image.
  • the control unit of the server 200 sets the position of pixels having a brightness value exceeding the preset brightness value. It can be recognized as the first feature point in the second image.
  • the method for recognizing the first feature point described above is merely an example, and the present disclosure is not limited thereto.
  • the control unit of the server 200 may recognize the first information about the nose wrinkles at the first characteristic point.
  • the first information about the nose wrinkles may include information about a direction in which the nose wrinkles face from the feature point, information about the number of nose wrinkles, and the like.
  • the first information about the above-mentioned nose wrinkles is merely an example, and the present disclosure is not limited thereto.
  • the control unit of the server 200 may search for a first inscription image having second information about the nose wrinkles corresponding to the first information about the nose wrinkles at a second characteristic point corresponding to the first characteristic point among the plurality of inscription images. .
  • information about the nose wrinkles at each of the plurality of feature points included in each of the plurality of inscription images may be stored in the memory of the server 200.
  • the control unit of the server 200 searches the memory for information about the nose wrinkles, including information about the direction in which the nose wrinkles are directed at the first feature point, and information corresponding to the number of the nose wrinkles, and the first inscription described above. It can be recognized as an image. That is, the control unit of the server 200 may search for an inscription image having information about the same nose wrinkle at the same feature point among a plurality of inscription images stored in the memory of the server 200.
  • control unit of the server 200 may correct the second image for moving the position of the first feature point when the positions of the first and second feature points are misaligned.
  • the control unit of the server 200 is the first feature point when the coordinates of the first feature point and the coordinates of the second feature point are different from each other or the direction in which the nose wrinkles in the first feature point is different from the direction in which the nose wrinkles in the second feature point is different. It can be recognized that the positions of the and the second feature point are misaligned.
  • control unit of the server 200 performs a correction to vertically or horizontally move the second image or rotate the second image so that the positions of the first feature points in the second image and the second feature points in the first inscription image match. You can.
  • control unit of the server 200 may acquire the object information mapped to the first inscription image matching the second image (S350).
  • the present invention is not limited thereto, and the controller of the server 200 may acquire at least one of a first inscription image matching the second image and object information mapped to the first inscription image.
  • the control unit of the server 200 may transmit the object information obtained in step S350 to the user terminal (S360).
  • the present invention is not limited thereto, and the control unit of the server 200 may transmit at least one of the object information and the first inscription image to the user terminal 100.
  • the control unit 130 of the user terminal 100 may control the display unit 150 to display object information received from the server 200 (S370).
  • the present invention is not limited thereto, and at least one of the object information and the first inscription image may be displayed.
  • the individual information of the animal may include at least one of animal species, gender, and singularity. Further, the animal's individual information may include at least one of the animal's owner's name, contact information, and address. The individual information of the animal can be used to identify the owner of the photographed animal.
  • the above-mentioned animal information is only examples, and the present disclosure is not limited thereto.
  • the present invention can be used in computer programs and terminals that provide animal information.

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

동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
본 개시는 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램 및 단말기에 관한 것으로서, 구체적으로 동물의 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 판독가능 저장 매체에 저장된 프로그램 및 단말기에 관한 것이다.
애완 동물에 대한 수요가 증가하고 있다. 그리고, 애완 동물의 수요가 증가함에 따라, 한 해 유기 및 유실 동물의 발생 건수 역시 증가하고 있다.
이러한 문제를 해결하기 위해, 정부는 유기된 동물의 소유주를 쉽게 찾을 수 있도록 동물 등록제를 시행하고 있다. 동물 등록을 위해서, 애완 동물에 무선 식별 칩을 삽입하는 내장형과 무선 식별 칩이 부착된 인식표를 애완 동물의 목에 걸어주는 외장형으로 나뉜다.
내장형인 식별 칩은 동물의 체내에 주입한다는 특성에 의해 비인도적이며, 삽입 후 체내 부작용이 발생할 수 있는 문제가 있다. 그리고 외장형인 인식표는 분실될 염려가 있으며 의도적으로 인식표를 제거하여 유기한 경우에는 추적이 불가능한 문제가 있다.
그리하여 최근에는, 개체를 촬영한 이미지를 이용하는 기술에 대한 연구가 활발히 진행되고 있다. 이중에서 비문은 동물의 코에서 발견할 수 있는 고유의 무늬로 사람의 지문과 같은 역할을 할 수 있다는 점에서 전술한 동물 등록제의 대안 기술로 요구되고 있다.
한국 등록특허 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 이미지를 서버에 전송하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  2. 제 1 항에 있어서,
    상기 종 분류 모델을 학습시키기 위한 제 1 학습 데이터는,
    동물의 안면이 포함된 이미지 데이터를 학습 데이터의 입력으로 하고, 상기 동물의 안면이 포함된 이미지 데이터에 동물의 종에 대한 제 1 분류 클래스를 라벨로 하여 생성되고, 그리고
    상기 종 분류 모델은,
    상기 제 1 학습 데이터를 포함하는 제 1 학습 데이터 세트를 이용하여 상기 동물의 안면과 매칭되는 상기 동물의 종에 대한 분류를 학습하고, 상기 제 1 이미지에 기초하여 상기 제 1 정보를 획득하도록 하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  3. 제 2 항에 있어서,
    상기 종 분류 모델은,
    상기 제 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. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 서버로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은:
    사용자 단말기로부터 상기 사용자 단말기의 카메라로 촬영된 동물의 안면이 포함된 제 1 이미지로부터 획득한 상기 동물의 종에 대한 제 1 정보 및 상기 제 1 이미지 내에서 상기 동물의 코를 포함하는 제 1 영역 내에서 관심 영역을 포함하는 제 2 이미지를 수신하는 동작;
    상기 제 2 이미지를 로컬 히스토그램에 기초하여 전처리하는 동작;
    상기 서버의 메모리에 저장된 복수의 비문 이미지에서 상기 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색하는 동작; 및
    상기 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지 및 상기 제 1 비문 이미지에 맵핑된 개체 정보 중 적어도 하나를 획득하는 동작; 및 상기 제 1 비문 이미지 및 상기 개체 정보 중 적어도 하나를 상기 사용자 단말기에 전송하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  15. 제 14 항에 있어서,
    상기 서버의 메모리에 저장된 복수의 비문 이미지에서 상기 전처리한 제 2 이미지에 매칭되는 제 1 비문 이미지를 검색하는 동작은,
    상기 전처리한 제 2 이미지에서 제 1 특징점을 인식하는 동작;
    상기 제 2 이미지의 상기 제 1 특징점에서 코 주름에 대한 제 1 정보를 인식하는 동작;
    상기 복수의 비문 이미지 중 상기 제 1 특징점에 대응하는 제 2 특징점에서 상기 제 1 정보에 대응하는 코 주름에 대한 제 2 정보를 갖는 상기 제 1 비문 이미지를 검색하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  16. 제 15 항에 있어서,
    상기 복수의 비문 이미지 중 상기 제 1 특징점에 대응하는 제 2 특징점에서 상기 제 1 정보에 대응하는 코 주름에 대한 제 2 정보를 갖는 상기 제 1 비문 이미지를 검색하는 동작은,
    상기 제 1 특징점과 상기 제 2 특징점의 위치가 어긋나는 경우, 상기 제 1 특징점의 위치를 이동시키기 위해 상기 제 2 이미지를 보정하는 동작; 및
    상기 보정한 제 2 이미지를 이용하여 상기 제 1 비문 이미지를 검색하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  17. 제 16 항에 있어서,
    상기 제 1 특징점과 상기 제 2 특징점의 위치가 어긋나는 경우, 상기 제 1 특징점의 위치를 이동시키기 위해 상기 제 2 이미지를 보정하는 동작은,
    상기 제 1 특징점과 상기 제 2 특징점의 위치가 일치하도록 상기 제 2 이미지를 종횡 이동시키거나 상기 제 2 이미지를 회전 이동 시키는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
PCT/KR2018/012008 2018-10-11 2018-10-12 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기 WO2020075888A1 (ko)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2020075888A1 true WO2020075888A1 (ko) 2020-04-16

Family

ID=70165027

Family Applications (1)

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

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GR1010102B (el) * 2021-03-26 2021-10-15 Breed Ike, Συστημα αναγνωρισης προσωπου ζωων

Families Citing this family (12)

* 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 주식회사 아이싸이랩 동물을 식별 및 인증 중 적어도 하나를 수행하기 위해 획득한 동물 이미지를 클러스터링하는 방법
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020066771A (ko) * 2001-02-13 2002-08-21 박현종 네트워크 기반의 개의 비문 정보를 이용한 신원확인 시스템
JP2007135501A (ja) * 2005-11-21 2007-06-07 Atom System:Kk 鼻特徴情報生成装置及び鼻特徴情報生成プログラム
KR20140138102A (ko) * 2014-10-31 2014-12-03 주식회사 아이싸이랩 동물들의 코무늬를 이용한 동물 개체 인식 장치
KR101788272B1 (ko) * 2016-11-01 2017-10-19 오승호 생체 인식을 통한 반려 동물 인식 및 등록 관리 방법
KR101903377B1 (ko) * 2017-09-26 2018-10-02 (주)인투씨엔에스 동물보험 관련 동물개체 정보의 통합 관리와 개체인식수단을 이용한 진료 개체 특정 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527801B1 (ko) * 2013-05-22 2015-06-11 주식회사 아이싸이랩 동물들의 코무늬를 이용한 동물 개체 인식 장치 및 방법
KR101732815B1 (ko) * 2015-11-05 2017-05-04 한양대학교 산학협력단 개체 특징점 추출 방법 및 장치, 이를 이용하는 개체 인식 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020066771A (ko) * 2001-02-13 2002-08-21 박현종 네트워크 기반의 개의 비문 정보를 이용한 신원확인 시스템
JP2007135501A (ja) * 2005-11-21 2007-06-07 Atom System:Kk 鼻特徴情報生成装置及び鼻特徴情報生成プログラム
KR20140138102A (ko) * 2014-10-31 2014-12-03 주식회사 아이싸이랩 동물들의 코무늬를 이용한 동물 개체 인식 장치
KR101788272B1 (ko) * 2016-11-01 2017-10-19 오승호 생체 인식을 통한 반려 동물 인식 및 등록 관리 방법
KR101903377B1 (ko) * 2017-09-26 2018-10-02 (주)인투씨엔에스 동물보험 관련 동물개체 정보의 통합 관리와 개체인식수단을 이용한 진료 개체 특정 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GR1010102B (el) * 2021-03-26 2021-10-15 Breed Ike, Συστημα αναγνωρισης προσωπου ζωων

Also Published As

Publication number Publication date
KR20200044209A (ko) 2020-04-29
KR102117860B1 (ko) 2020-06-02

Similar Documents

Publication Publication Date Title
WO2020075888A1 (ko) 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
KR20200041296A (ko) 동물의 안면 및 비문 이미지에 기초하여 동물의 개체 정보를 제공하는 컴퓨터 프로그램 및 단말기
WO2020171373A1 (en) Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames
WO2019164232A1 (ko) 전자 장치, 이의 영상 처리 방법 및 컴퓨터 판독가능 기록 매체
CN108765278B (zh) 一种图像处理方法、移动终端及计算机可读存储介质
WO2020130747A1 (ko) 스타일 변환을 위한 영상 처리 장치 및 방법
WO2021066541A1 (ko) 신분증 인식 방법 및 장치
WO2023120831A1 (ko) 비식별 처리 방법 및 이를 실행시키기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2022075530A1 (ko) 인공지능 영상 처리를 이용한 선박 자동 인식 및 모니터링 시스템 및 그 제공 방법
US9571740B2 (en) Image recognition device that recognizes specific object area, method of controlling the device, and storage medium, as well as image pickup apparatus, and display device
WO2020004815A1 (ko) 데이터의 어노말리 감지 방법
WO2023080763A1 (en) Method and electronic device for segmenting objects in scene
WO2020017814A1 (ko) 이상 개체 검출 시스템 및 방법
WO2020045702A1 (ko) 비색표를 이용한 소변 검사를 제공하는 컴퓨터 프로그램 및 단말기
WO2020149601A1 (ko) 3d cnn을 이용한 고속 영상 인식 방법 및 장치
WO2020141888A1 (ko) 사육장 환경 관리 장치
WO2019235776A1 (ko) 이상 개체 판단 장치 및 방법
EP3545685A1 (en) Method and apparatus for filtering video
WO2022050558A1 (ko) 전자 장치 및 그 제어 방법
WO2019212237A1 (ko) 이상 개체 검출 장치 및 방법
WO2019194356A1 (ko) 전자 장치 및 그 제어 방법
WO2023167530A1 (en) Method for classifying images using novel classes
WO2021230680A1 (en) Method and device for detecting object in image
WO2020204287A1 (en) Display apparatus and image processing method thereof
WO2019212283A1 (ko) 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18936495

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18936495

Country of ref document: EP

Kind code of ref document: A1