WO2022203342A1 - Method for processing image acquired from imaging device linked with computing device, and system using same - Google Patents

Method for processing image acquired from imaging device linked with computing device, and system using same Download PDF

Info

Publication number
WO2022203342A1
WO2022203342A1 PCT/KR2022/003965 KR2022003965W WO2022203342A1 WO 2022203342 A1 WO2022203342 A1 WO 2022203342A1 KR 2022003965 W KR2022003965 W KR 2022003965W WO 2022203342 A1 WO2022203342 A1 WO 2022203342A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
information
posture
model
dimensional
Prior art date
Application number
PCT/KR2022/003965
Other languages
French (fr)
Korean (ko)
Inventor
이충열
Original Assignee
이충열
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이충열 filed Critical 이충열
Publication of WO2022203342A1 publication Critical patent/WO2022203342A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional 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
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Definitions

  • the present disclosure discloses a method for processing an image obtained from a photographing device and a system using the same.
  • the computing device acquires the entire image from a photographing device integrated with the computing device or interoperates with the computing device, detects one or more objects appearing in the entire image, and the detected Classification is performed to calculate a category of each object, and detailed classification information including characteristics and state of the object is generated as a result of analysis of each object.
  • a portable computing apparatus generally refers to a device equipped with a processor, a display, a microphone, and a speaker, and some of them may be used as a portable terminal, which is a type of communication device.
  • the mobile terminal has conventionally received a user's command through an input device that requires user contact, such as a keypad and a touch display. Through this, it is possible to receive a user's command from a distance and to interact according to the command.
  • the portable computing device does not have its own mobility, the range of input/output is limited according to its physical location.
  • the camera which is a non-contact input device, is mounted on the front or back of the mobile phone and has a limited field of view, so that the desired image can be captured in the camera.
  • the user must manually change the composition (angle of view or field of view; FOV) after holding it by hand.
  • FOV field of view
  • the reception sensitivity of a microphone mounted on a portable computing device is lowered according to the direction of the sound source.
  • the touch display which is an output device, is attached to some of the six surfaces of the mobile terminal with a shape close to a plane, so that the user can hold the mobile phone. After doing so, use the mobile phone with the touch display of the mobile terminal facing in the direction of one's face.
  • the irradiation direction and angle of the infrared ray are limited to one direction range of the mobile terminal, so the user holds the mobile terminal and then adjusts the irradiation direction according to the guidance shall.
  • Korean Patent Laid-Open Publication Nos Korean Patent Laid-Open Publication Nos.
  • Non-Patent Document 1 Y. Zhou et al., "Learning to Reconstruct 3D Manhattan Wireframes From a Single Image," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 7697-7706, doi: 10.1109/ICCV.2019.00779.
  • Non-Patent Document 2 Shin, D., & Kim, I. (2018). Deep Image Understanding Using Multilayered Contexts. Mathematical Problems in Engineering, 2018, 1-11.
  • Non-Patent Document 3 Mo, K., Zhu, S., Chang, AX, Yi, L., Tripathi, S., Guibas, LJ, & Su , H. (2019).
  • PartNet A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr.2019.00100 , (Non-Patent Document 4) Babaee, M., Li, L., & Rigoll, G. (2019). Person identification from partial gait cycle using fully convolutional neural networks.
  • Non-Patent Document 5 Notice, UR, Svanera, M., Leonardi, R., & Benini, S. (2018). Hair detection, segmentation, and hairstyle classification in the wild. Image and Vision Computing, 71, 25-37. https://doi.org/10.1016/j.imavis.2018.02.001 , (Non-Patent Document 6) Mougeot, G., Li, D., & Jia, S. (2019). A Deep Learning Approach for Dog Face Verification and Recognition. In PRICAI 2019: Trends in Artificial Intelligence (pp. 418-430). Springer International Publishing.
  • Non-Patent Document 7 Huly, Z., Sulyok, C., Vadaszi, Z., & Zolde, A. (2016). Dog Breed Identification Using Deep Learning.
  • SIY Intelligent Systems and Informatics
  • IEEE https://doi.org/10.1109/sisy.2018.8524715
  • Non-Patent Document 8 Wu, Z., Yao, T., Fu, Y., & Jiang, Y.-G. (2017). Deep learning for video classification and captioning. In Frontiers of Multimedia Research (pp. 3-29). ACM.
  • Non-Patent Document 9 Wu, C.-Y., Girshick, R., He, K., Feichtenhofer, C., & Krahenbuhl, P. (2020). A Multigrid Method for Efficiently Training Video Models. In 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr42600.2020.00023 , (Non-Patent Document 10) Ullah, A., Ahmad, J., Bengal, K., Sajjad, M., & Baik, SW (2018). Action Recognition in Video Sequences using Deep Bi-Directional LSTM With CNN Features. IEEE Access, 6, 1155-1166. https://doi.org/10.1109/access.2017.2778011 has been devised.
  • the present disclosure aims to suggest a method capable of overcoming the limitations regarding image input among the limitations of the aforementioned prior art portable computing devices, and is an image capturing device such as a camera interworking with the portable computing device.
  • the present disclosure solves the problems of the prior art, and in a portable computing device, it is possible to recognize and track an object in an image captured by a camera or the like, and to actively acquire information of the object and environment, in particular, based on the image Presenting an image processing method that enables remote input through an image, such as identifying the position of an object in space by identifying relative position information and space information of an object in the coordinate system centered on the system of the present disclosure The purpose.
  • a method of processing an image performed by a computing device including a processor comprising: acquiring an image; obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model; obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and obtaining, from the posture information on the object, the behavior information on the object, including an N-dimensional motion vector corresponding to the object, by using the behavior discrimination model.
  • the analysis information may include at least one of classification information indicating the category of the object, location information indicating the location of the object, or importance information indicating the priority of the object in the image.
  • a posture determination method to be applied to the object among a plurality of posture determination methods may be determined based on the analysis information corresponding to the object.
  • the posture determination model may apply a different posture determination method according to classification information indicating the category of the object.
  • the posture determination model may generate posture information about the object, including information about an N-dimensional posture corresponding to the object, from the analysis information.
  • the posture information on the object may include information on the temporally continuous posture with respect to the object.
  • the movement vector may include a two-dimensional movement vector including at least one of a two-dimensional direction or a velocity of the object.
  • the movement vector may include a three-dimensional movement vector of the object calculated based on at least one of a position, a speed, and an acceleration of a photographing device that has captured the image.
  • the behavior determination model may generate behavior information of the object with respect to the context of the object, including an N-dimensional behavior classification corresponding to the object, from the posture information of the object.
  • the context of the object may include at least one of the object's state or purpose of action.
  • the behavior classification may include: identifying a position of a partial object included in the object, determining a posture of the object based on the position of the partial object, and determining a posture of the object based on the posture of the object; It can be calculated by determining the behavior classification of
  • the partial object may include at least one of a part of the object or an attribute belonging to the object.
  • the method of claim 1 wherein the behavior discrimination model may apply a different behavior discrimination method according to classification information indicating the category of the object.
  • a non-transitory computer readable medium including a computer program for solving the above problems, the computer program causing a computing device to perform a method for processing an image, the method comprising: acquiring an image; obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model; obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and obtaining, from the posture information on the object, the behavior information on the object, including an N-dimensional motion vector corresponding to the object, by using the behavior discrimination model.
  • a computing device comprising: a processor; and a communication unit, wherein the processor obtains an image, uses an object analysis model, obtains analysis information corresponding to the object included in the image, from the image, and uses the posture determination model, wherein the Obtaining posture information about the object from the analysis information corresponding to the object, and using a behavior discrimination model, from the posture information on the object, including an N-dimensional motion vector corresponding to the object, the object behavior information can be obtained.
  • one or more objects can be recognized and tracked using an image, and information about objects and environments can be actively acquired, and in particular, state information of objects can be converted into images from a distance. It is possible to acquire, determine the object with which the object interacts as an image, obtain a higher resolution detailed image of a part of the object from a distance, and output it printed on the object or using other means such as a display. Since characters can be recognized from a distance, there is an effect that a remote input using an image of a portable computing device is possible.
  • FIG. 1 is a conceptual diagram schematically illustrating an exemplary configuration of a computing device performing a method of processing an image (hereinafter referred to as an “image processing method”) by a computing device according to an embodiment of the present disclosure.
  • FIG. 2 is a conceptual diagram exemplarily illustrating an overall hardware and software architecture including a computing device, a photographing device, and a gimbal as a system for performing an image processing method according to an embodiment of the present disclosure.
  • FIG. 3 is a flowchart exemplarily illustrating an image processing method according to an embodiment of the present disclosure
  • FIG. 4 exemplarily shows modules performing each step of the image processing method according to an embodiment of the present disclosure. It is a block diagram.
  • FIG. 5 is a block diagram exemplarily illustrating machine learning models used in modules for an image processing method according to an embodiment of the present disclosure.
  • 6A to 6D are flowcharts exemplarily illustrating methods that may be used to detect a floor plane of an object in the image processing method of the present disclosure.
  • FIG. 7A is a diagram exemplarily illustrating object segmentation obtained by an image processing method according to an embodiment of the present disclosure.
  • FIG. 7B is an exemplary diagram for explaining steps of detecting two or more floor planes in an image processing method according to an embodiment of the present disclosure.
  • 7C is a conceptual diagram for explaining a method of generating and using a reference plane circle and a measurement plane circle in an image processing method according to an embodiment of the present disclosure
  • 8A to 8C are flowcharts exemplarily illustrating methods that may be used to determine a target position in the image processing method of the present disclosure.
  • 9A and 9B are flowcharts exemplarily illustrating methods that may be used to control the orientation of a photographing apparatus in the image processing method of the present disclosure.
  • 10A to 10C are flowcharts exemplarily illustrating methods that may be used to perform OCR in the image processing method of the present disclosure.
  • 11A to 11D are diagrams exemplified to describe methods of performing OCR in the image processing method of the present disclosure.
  • first or second may be used to describe various elements, these terms should be interpreted only for the purpose of distinguishing one element from another, and no order is implied. because it doesn't For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.
  • part or “portion” of an object may mean only a part, but not all, of the object, but should be understood to include the whole of the object unless the context dictates otherwise.
  • a subset of a set is the same as a concept that includes the set itself.
  • a 'module' may mean hardware capable of performing functions and operations according to each name described in the present disclosure, or may mean computer program code capable of performing specific functions and operations, , or may refer to a recording medium on which a computer program code capable of performing a specific function and operation is loaded.
  • a module may mean a functional and/or structural combination of hardware for carrying out the spirit of the present disclosure and/or software for driving the hardware.
  • a 'model' refers to a function configured to produce output data from input data as trained by machine learning. Such a 'model' may be used by the aforementioned 'module' as a kind of data structure or function.
  • 'training' and 'learning' are terms that refer to performing machine learning through procedural computing, and are intended to refer to mental actions such as human educational activities. It will be understood by those skilled in the art that this is not the case.
  • 'machine learning' refers to a series of processes that create a target function (f) that maps input variables (X) to output variables (Y). It is often used to refer to Calculating the output variables from the input variables by the target function is referred to as 'prediction', and 'mapped well' means that the difference between the true value and the predicted value is reasonably reduced.
  • optimization may cause the so-called overfitting problem, that is, a problem of poor prediction when applying real data that deviate from the training data. This is because appropriate empirical means are devised for
  • 'inference' is a term referring to a process of calculating output data from input data by a machine-learning model, and in particular, it is used to refer to a mechanical imitation of a human mental action.
  • 'analysis' by a machine is used to refer to a mechanical imitation of a human's mental action, such as reasoning.
  • the present invention encompasses all possible combinations of embodiments indicated in the present disclosure. It should be understood that various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in relation to one embodiment. In addition, it should be understood that the position or arrangement of individual components in each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description set forth below is not intended to be taken in a limiting sense. Like reference numerals in the drawings refer to the same or similar functions throughout the various aspects.
  • FIG. 1 is a conceptual diagram schematically illustrating an exemplary configuration of a computing device performing an image processing method according to an embodiment of the present disclosure.
  • a computing device 100 includes a communication unit 110 and a processor 120 , and may communicate with an external computing device (not shown) through the communication unit 110 . can communicate directly or indirectly.
  • the computing device 100 includes typical computer hardware (eg, a computer; a device that may include a processor, memory, storage, input and output devices, and other components of a conventional computing device; a router; , electronic communication devices such as switches, etc.; electronic information storage systems such as network-attached storage (NAS) and storage area networks (SAN)) and computer software (ie, enabling the computing device to perform a specific method to achieve the desired system performance using a combination of instructions that make it function as
  • the storage may include a storage device such as a hard disk and a Universal Serial Bus (USB) memory, as well as a storage device based on a network connection such as a cloud server.
  • the memory may be DDR2, DDR3, DDR4, SDP, DDP, QDP, magnetic hard disk, flash memory, etc., but is not limited thereto.
  • the communication unit 110 of such a computing device may transmit/receive a request and a response between an interworking other computing device, for example, a mobile terminal, etc.
  • a request and a response are the same Transmission Control Protocol (TCP) session ( session), but is not limited thereto, and may be transmitted and received as, for example, User Datagram Protocol (UDP) datagrams.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the communication unit 110 may be implemented in the form of a communication module including a communication interface.
  • the communication interface is WLAN (Wireless LAN), WiFi (Wireless Fidelity) Direct, DLNA (Digital Living Network Alliance), WiBro (Wireless Broadband), WiMax (World interoperability for Microwave access), HSDPA (High Speed Downlink Packet Access), Wireless Internet interfaces such as 4G and 5G and short-distance such as BluetoothTM, RFID (Radio Frequency IDentification), Infrared Data Association (IrDA), UWB (Ultra-WideBand), ZigBee, NFC (Near Field Communication), etc. It may include a communication interface.
  • the communication interface may represent any interface (eg, a wired interface) capable of performing communication with the outside.
  • the communication unit 110 may transmit/receive data to and from other computing devices through an appropriate communication interface as described above.
  • the communication unit 110 includes a keyboard, a mouse, a touch sensor, an input unit of a touch screen, a microphone, a video camera, or an external input such as a LIDAR, a radar, a switch, a button, a joystick, etc. for receiving commands or instructions.
  • An external output device such as a device, a sound card, a graphic card, a printing device, a display, for example, a display unit of a touch screen, or the like may be interlocked with these devices.
  • the computing device 100 has a built-in display device or an external display device through the communication unit 110 . It is known that it can be linked with
  • a display device may be a touch screen capable of a touch input.
  • a touchscreen may detect an object, such as a finger, a stylus pen, in contact with or proximity to a display, capacitively or inductively or optically, and determine a position on the detected display.
  • the input device may include a microphone.
  • the type of the microphone may include a dynamic microphone, a condenser microphone, and the like, and a microphone having characteristics such as omni-directional, unidirectional, and super-directional may be used.
  • a beamforming microphone and a microphone array may also be used, but are not limited thereto.
  • a microphone array refers to two or more microphones used to detect the direction of a sound source.
  • the output device may include a speaker.
  • the type of speaker may include, but is not limited to, an omni-directional speaker, a directional speaker, and a super-directional speaker using ultrasonic waves.
  • the processor 120 of the computing device is a micro processing unit (MPU), central processing unit (CPU), graphics processing unit (GPU), neural processing unit (NPU), ASIC, CISC, RISC, FPGA, SOC chip or TPU. It may include a hardware configuration such as a tensor processing unit, a cache memory, and a data bus. In addition, it may further include an operating system, a software configuration of an application for performing a specific purpose. According to an embodiment of the present disclosure, the processor 120 may perform an operation for learning a neural network of various models.
  • the processor 120 for learning of the neural network such as processing input data for learning in deep learning (DL), extracting features from the input data, calculating an error, updating the weight of the neural network using backpropagation calculations can be performed.
  • a CPU of the processor 110 a general purpose graphics processing unit (GPGPU), and/or a TPU may process learning of a network function.
  • the CPU and the GPGPU can process learning of a network function and data classification using the network function.
  • learning of a network function and data classification using the network function may be processed by using the processors of a plurality of computing devices together.
  • the computer program executed in the computing device 100 may be a CPU, GPGPU, or TPU executable program.
  • a neural network may be composed of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons.
  • a neural network is configured to include at least one or more nodes. Nodes (or neurons) constituting the neural networks may be interconnected by one or more links.
  • one or more nodes connected through a link may relatively form a relationship between an input node and an output node.
  • the concepts of an input node and an output node are relative, and any node in an output node relationship with respect to one node may be in an input node relationship in a relationship with another node, and vice versa.
  • an input node-to-output node relationship may be created around a link.
  • One or more output nodes may be connected to one input node through a link, and vice versa.
  • the value of the data of the output node may be determined based on data input to the input node.
  • a link interconnecting the input node and the output node may have a weight.
  • the weight may be variable, and may be changed by the user or algorithm in order for the neural network to perform a desired function. For example, when one or more input nodes are interconnected to one output node by respective links, the output node sets values input to input nodes connected to the output node and links corresponding to the respective input nodes. An output node value may be determined based on the weight.
  • one or more nodes are interconnected through one or more links to form an input node and an output node relationship in the neural network.
  • the characteristics of the neural network may be determined according to the number of nodes and links in the neural network, the correlation between the nodes and the links, and the value of a weight assigned to each of the links. For example, when the same number of nodes and links exist and there are two neural networks having different weight values of the links, the two neural networks may be recognized as different from each other.
  • a neural network may consist of a set of one or more nodes.
  • a subset of nodes constituting the neural network may constitute a layer.
  • Some of the nodes constituting the neural network may configure one layer based on distances from the initial input node.
  • a set of nodes having a distance n from the initial input node may constitute n layers.
  • the distance from the initial input node may be defined by the minimum number of links that must be traversed to reach the corresponding node from the initial input node.
  • the definition of such a layer is arbitrary for description, and the order of the layer in the neural network may be defined in a different way from the above.
  • a layer of nodes may be defined by a distance from the final output node.
  • the initial input node may mean one or more nodes to which data is directly input without going through a link in a relationship with other nodes among nodes in the neural network.
  • it may mean nodes that do not have other input nodes connected by a link.
  • the final output node may refer to one or more nodes that do not have an output node in relation to other nodes among nodes in the neural network.
  • the hidden node may mean nodes constituting the neural network other than the first input node and the last output node.
  • the neural network according to an embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be the same as the number of nodes in the output layer, and the number of nodes decreases and then increases again as the input layer progresses to the hidden layer.
  • the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be less than the number of nodes in the output layer, and the number of nodes decreases as the number of nodes progresses from the input layer to the hidden layer. have.
  • the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be greater than the number of nodes in the output layer, and the number of nodes increases as the number of nodes progresses from the input layer to the hidden layer.
  • the neural network according to another embodiment of the present disclosure may be a neural network in a combined form of the aforementioned neural networks.
  • a deep neural network may refer to 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 the latent structures of data. In other words, it can identify the potential structure of photos, texts, videos, voices, and music (e.g., what objects are in the photos, what the text and emotions are, what the texts and emotions are, etc.) .
  • Deep neural networks are a convolutional neural network (CNN), a recurrent neural network (RNN), an auto encoder, a restricted boltzmann machine (RBM), and a deep trust network ( DBN: deep belief network), Q network, U network, Siamese network, and may include a generative adversarial network (GAN: Generative Adversarial Network), and the like.
  • CNN convolutional neural network
  • RNN recurrent neural network
  • RBM restricted boltzmann machine
  • DBN deep trust network
  • Q network Q network
  • U network Siamese network
  • GAN Generative Adversarial Network
  • the neural network may be trained using at least one of supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning. Learning of the neural network may be a process of applying knowledge for the neural network to perform a specific operation to the neural network.
  • a neural network can be trained in a way that minimizes output errors.
  • iteratively input the training data into the neural network, calculate the output of the neural network and the target error for the training data, and calculate the error of the neural network from the output layer of the neural network to the input layer in the direction to reduce the error. It is the process of updating the weight of each node of the neural network by backpropagation in the direction.
  • learning data in which the correct answer is labeled in each learning data is used (ie, labeled learning data), and in the case of comparative learning, the correct answer may not be labeled in each learning data.
  • the learning data in the case of teacher learning regarding data classification may be data in which categories are labeled for each of the learning data.
  • Labeled training data is input to the neural network, and an error can be calculated by comparing the output (category) of the neural network with the label of the training data.
  • an error may be calculated by comparing the input training data with the output of the neural network. The calculated error is back propagated in the reverse direction (ie, from the output layer to the input layer) in the neural network, and the connection weight of each node of each layer of the neural network may be updated according to the back propagation.
  • a change amount of the connection weight of each node to be updated may be determined according to a learning rate.
  • the computation of the neural network on the input data and the backpropagation of errors can constitute a learning cycle (epoch).
  • the learning rate may be applied differently depending on the number of repetitions of the learning cycle of the neural network. For example, in the early stage of learning of a neural network, a high learning rate can be used to enable the neural network to quickly acquire a certain level of performance, thereby increasing efficiency, and using a low learning rate at the end of learning can increase accuracy.
  • the training data may be a subset of real data (that is, data to be processed using the trained neural network), and thus the error on the training data is reduced, but the error on the real data is reduced.
  • Overfitting is a phenomenon in which errors on actual data increase by over-learning on training data as described above. For example, a phenomenon in which a neural network that has learned a cat by seeing a yellow cat does not recognize that it is a cat when it sees a cat other than yellow may be a type of overfitting. Overfitting can act as a cause of increasing errors in machine learning algorithms. In order to prevent such overfitting, various optimization methods can be used. In order to prevent overfitting, methods such as increasing the training data, regularization, and dropout that deactivate some of the nodes of the network in the process of learning, and the use of a batch normalization layer are applied. can
  • a computer-readable medium storing a data structure is disclosed according to an embodiment of the present disclosure.
  • the data structure may refer to the organization, management, and storage of data that enables efficient access and modification of data.
  • a data structure may refer to an organization of data to solve a specific problem (eg, data retrieval, data storage, and data modification in the shortest time).
  • a data structure may be defined as a physical or logical relationship between data elements designed to support a particular data processing function.
  • the logical relationship between data elements may include a connection relationship between user-defined data elements.
  • Physical relationships between data elements may include actual relationships between data elements physically stored on a computer-readable storage medium (eg, persistent storage).
  • a data structure may specifically include a set of data, relationships between data, and functions or instructions applicable to data.
  • a computing device can perform an operation while using the computing device's resources to a minimum. Specifically, the computing device may increase the efficiency of operations, reads, insertions, deletions, comparisons, exchanges, and retrievals through effectively designed data structures.
  • a data structure may be classified into a linear data structure and a non-linear data structure according to the type of the data structure.
  • the linear data structure may be a structure in which only one piece of data is connected after one piece of data.
  • the linear data structure may include a list, a stack, a queue, and a deck.
  • a list may mean a set of data in which an order exists internally.
  • the list may include a linked list.
  • the linked list may be a data structure in which data is linked in such a way that each data is linked in a line with a pointer. In a linked list, a pointer may contain information about a link with the next or previous data.
  • a linked list may be expressed as a single linked list, a doubly linked list, or a circularly linked list according to a shape.
  • a stack can be a data enumeration structure with limited access to data.
  • a stack can be a linear data structure in which data can be processed (eg, inserted or deleted) at only one end of the data structure.
  • the data stored in the stack may be a data structure LIFO-Last in First Out.
  • a queue is a data listing structure that allows limited access to data, and unlike a stack, it may be a data structure that comes out later (FIFO-First in First Out) as data stored later.
  • a deck can be a data structure that can process data at either end of the data structure.
  • the nonlinear data structure may be a structure in which a plurality of data is connected after one data.
  • the nonlinear data structure may include a graph data structure.
  • a graph data structure may be defined as a vertex and an edge, and the edge may include a line connecting two different vertices.
  • a graph data structure may include a tree data structure.
  • the tree data structure may be a data structure in which one path connects two different vertices among a plurality of vertices included in the tree. That is, it may be a data structure that does not form a loop in the graph data structure.
  • the data structure may include a neural network.
  • the data structure including the neural network may be stored in a computer-readable medium.
  • Data structures, including neural networks also include preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, and the neural network. It may include a loss function for learning of .
  • a data structure comprising a neural network may include any of the components disclosed above.
  • the data structure including the neural network includes preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, and the neural network It may be configured to include all or any combination thereof, such as a loss function for learning of .
  • a data structure including a neural network may include any other information that determines a characteristic of the neural network.
  • the data structure may include all types of data used or generated in the operation process of the neural network, and is not limited thereto.
  • Computer-readable media may include computer-readable recording media and/or computer-readable transmission media.
  • a neural network may be composed of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons.
  • a neural network is configured to include at least one or more nodes.
  • the data structure may include data input to the neural network.
  • a data structure including data input to the neural network may be stored in a computer-readable medium.
  • the data input to the neural network may include learning data input in a neural network learning process and/or input data input to the neural network in which learning is completed.
  • Data input to the neural network may include pre-processing data and/or pre-processing target data.
  • the preprocessing may include a data processing process for inputting data into the neural network.
  • the data structure may include data to be pre-processed and data generated by pre-processing.
  • the above-described data structure is merely an example, and the present disclosure is not limited thereto.
  • the data structure may include the weights of the neural network.
  • a weight and a parameter may be used interchangeably.
  • a data structure including a weight of a neural network may be stored in a computer-readable medium.
  • the neural network may include a plurality of weights.
  • the weight may be variable, and may be changed by the user or algorithm in order for the neural network to perform a desired function. For example, when one or more input nodes are interconnected to one output node by respective links, the output node sets values input to input nodes connected to the output node and links corresponding to the respective input nodes. A data value output from the output node may be determined based on the weight.
  • the above-described data structure is merely an example, and the present disclosure is not limited thereto.
  • the weight may include a weight variable in a neural network learning process and/or a weight in which neural network learning is completed.
  • the variable weight in the neural network learning process may include a weight at the start of the learning cycle and/or a variable weight during the learning cycle.
  • the weight for which neural network learning is completed may include a weight for which a learning cycle is completed.
  • the data structure including the weights of the neural network may include a data structure including the weights that vary in the neural network learning process and/or the weights on which the neural network learning is completed. Therefore, it is assumed that the above-described weights and/or combinations of weights are included in the data structure including the weights of the neural network.
  • the above-described data structure is merely an example, and the present disclosure is not limited thereto.
  • the data structure including the weights of the neural network may be stored in a computer-readable storage medium (eg, memory, hard disk) after being serialized.
  • Serialization can be the process of converting a data structure into a form that can be reconstructed and used later by storing it on the same or a different computing device.
  • the computing device may serialize the data structure to send and receive data over a network.
  • a data structure including weights of the serialized neural network may be reconstructed in the same computing device or in another computing device through deserialization.
  • the data structure including the weight of the neural network is not limited to serialization.
  • the data structure including the weights of the neural network is a data structure to increase the efficiency of computation while using the resources of the computing device to a minimum (e.g., B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree).
  • a minimum e.g., B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree.
  • the data structure may include hyper-parameters of the neural network.
  • the data structure including the hyperparameters of the neural network may be stored in a computer-readable medium.
  • the hyper parameter may be a variable variable by a user.
  • Hyperparameters are, for example, learning rate, cost function, number of iterations of the learning cycle, weight initialization (e.g., setting the range of weight values to be initialized for weights), Hidden Unit The number (eg, the number of hidden layers, the number of nodes of the hidden layer) may be included.
  • the above-described data structure is merely an example, and the present disclosure is not limited thereto.
  • FIG. 2 is a conceptual diagram exemplarily illustrating an overall hardware and software architecture including a computing device, a photographing device, and a gimbal as a system for performing an image processing method according to an embodiment of the present disclosure.
  • the computing device 100 may include the photographing device 200 , and may interwork with the external photographing apparatus 200 wirelessly or by wire.
  • the computing device 100 may work with or include a gimbal 300 that performs a function of controlling the posture of the photographing device 200 wirelessly or wiredly.
  • the gimbal 300 may include the photographing apparatus 200 or may include a predetermined mechanism (eg, a sucker, etc.) capable of fixing the photographing apparatus 200 .
  • the gimbal 300 may have one or more rotation axes, and an example thereof can be found in Korean Patent Application Laid-Open No. 10-2019-0036323.
  • the gimbal 300 may actively improve the input range of the photographing apparatus 200 through posture control.
  • the axis of rotation may be a yaw axis (Y).
  • Y yaw axis
  • the rotation axes may be a yaw axis and a pitch axis P. Also, when the gimbal 300 has three rotation axes, the rotation axes may be a yaw axis, a pitch axis, and a roll axis R.
  • the gimbal 300 may include a power supply unit 310 as a component of its hardware.
  • the power supply unit 310 may be supplied with external power by wire or wirelessly and by direct current or alternating current.
  • the power supplied to the power supply unit 310 may be used in the gimbal 300 or the computing device 100 .
  • the power supply unit 310 may be used to charge a battery built into the gimbal 300 or a battery built into the computing device.
  • the gimbal 300 may include at least one gimbal motor 330 (not shown) as a component of its hardware.
  • Each of the gimbal motors 330 is configured to change the direction of the photographing device 200 or the computing device 100 in which the photographing apparatus 200 is embedded according to the above-described rotation axis, and the gimbal motor 330 is a DC motor. , a stepper motor, or a brushless motor, but is not limited thereto.
  • the gimbal 300 may further include a gear for converting torque of the motor as well as the gimbal motor 330 .
  • the motor 330 of the gimbal 300 is for orienting the photographing device 200 or the computing device 100 attached to the gimbal in the direction of a specific object, and the respective rotation axis is the photographing device 200 or the computing device.
  • the apparatus 100 parallel to each axis, such as the yaw, pitch, and roll axis, but there is no reason to be limited thereto.
  • the gimbal 300 may further include at least one sensor 340 (not shown) as a hardware component thereof.
  • the sensor 340 may perform a function of detecting one or more of a position, an angular position, a displacement, an angular displacement, a speed, an angular velocity, an acceleration, and an angular acceleration with respect to the fixed part of the gimbal 300 or the motor 330.
  • the types of the sensor 340 include an acceleration sensor, a gyro sensor, a magnetic sensor such as a geomagnetic sensor, a hall sensor, a pressure sensor, an infrared sensor, a proximity sensor, a motion sensor, a photosensitive sensor, an image (video) sensor, a GPS sensor, a temperature
  • an acceleration sensor e.g., a Bosch Sensortec BMA150 accelerometer
  • a gyro sensor e.gyro sensor
  • a magnetic sensor such as a geomagnetic sensor, a hall sensor, a pressure sensor, an infrared sensor, a proximity sensor, a motion sensor, a photosensitive sensor, an image (video) sensor, a GPS sensor, a temperature
  • a humidity sensor e.g., a humidity sensor, a barometric pressure sensor, a LIDAR sensor, and the like, but is not limited thereto.
  • the sensor 340 that is not mounted on the computing device 100 due to restrictions on the weight and volume that the computing device 100, particularly the portable computing device can have, may be mounted on the gimbal 300, which is (300) can be used to obtain surrounding information.
  • FIG. 2 the components shown in FIG. 2 are exemplified as being realized in one computing device for convenience of description, it will be understood that the computing device 100 for performing the method of the present disclosure may be configured such that a plurality of devices may interwork with each other.
  • the gimbal 300 is configured to be an independent computing device, the gimbal 300 and the computing device 100, for example, a portable computing device such as a portable terminal, may be interlocked with each other, in that case The gimbal 300 may instead perform at least some functions performed by the mobile terminal 100 . That is, a person skilled in the art will be able to configure a plurality of devices to perform the method of the present disclosure by interworking with each other in various ways.
  • FIG. 3 is a flowchart exemplarily illustrating an image processing method according to an embodiment of the present disclosure
  • FIG. 4 exemplarily shows modules performing each step of the image processing method according to an embodiment of the present disclosure.
  • It is a block diagram. 5 is a block diagram exemplarily illustrating machine learning models used in modules for an image processing method according to an embodiment of the present disclosure.
  • the image input module 4100 implemented by the computing device 100 is included in the computing device 100 or a communication unit of the computing device 100 . It includes an image acquisition step (S1000), which is a step of acquiring the entire image from the photographing device 200 interworking through 110 .
  • S1000 image acquisition step
  • the 'full image' refers to an image that is contrasted with an image corresponding to a portion of the entire image, such as an object image, which will be described later.
  • the object analysis module 4200 implemented by the computing device 100 detects one or more objects appearing in the entire image, and classifies each of the detected object categories. It further includes a category classification step (S2000) that is performed.
  • S2000 category classification step
  • the category of the object refers to the result of classifying the object into a person, a tree, a dog, and the like.
  • the position of each of one or more objects in the entire image may be calculated as part of the two-dimensional measurement at the same time as the classification.
  • the two-dimensional measurement is a measurement based on the two-dimensional coordinate system shown in the image without considering the three-dimensional depth information, whereas the three-dimensional measurement is not only the two-dimensional coordinates in the image It is different in that it is a measurement that considers depth information.
  • the category classification step (S2000) includes resizing the entire image to a resolution lower than the original resolution of the entire image (S2100), and converting the resized image to an object analysis model (M420). ) and calculating the category, location, and importance of each of the objects ( S2200 ).
  • the processor 120 of the computing device 100 may obtain analysis information corresponding to an object included in the image from the image by using the object analysis model M420 .
  • the analysis information may include at least one of classification information indicating a category of an object, location information indicating a location of an object, and/or importance information indicating a priority of an object in an image.
  • the object analysis model M420 is a model for performing analysis on an object included in an image, and includes an object classification model, a localization model, an object detection model, a segmentation model, and the like. may include
  • the processor 120 may classify a class of an object in an image given as an input by using the object analysis model M420 that classifies the object. For example, when there is a person in the image given as an input, the processor 120 may obtain an output of “the type of the input image is a person” by using the object analysis model M420 for the input image.
  • the object analysis model M420 for the input image.
  • the processor 120 may also output location information indicating where the object in the image is located in the image by using the object analysis model M420 for classifying and localizing. For example, when using the object analysis model M420 for classifying and localizing, the processor 120 may recognize an object in an image using a bounding box and output location information.
  • the bounding box may return object location information by outputting the left, right, upper, and lower coordinates of the box.
  • the processor 120 may detect at least one object using the object analysis model M420 that detects the object.
  • the processor 120 may simultaneously classify and localize at least one object using the object analysis model M420 that detects a body to detect a plurality of objects and extract location information.
  • the foregoing is merely an example, and the present disclosure is not limited thereto.
  • the processor 120 may classify a pixel using the segmented object analysis model M420 to distinguish the boundary line of the object in the image from the background to detect the object.
  • the processor 120 may classify a pixel using the segmented object analysis model M420 to distinguish the boundary line of the object in the image from the background to detect the object.
  • step S2100 is for improving the processing speed of the object analysis module 4200 by reducing the amount of computation by the object analysis model M420.
  • step S2200 The importance resulting from step S2200 may be used as a measure for determining the priority of the object. can be given. The priority will be described later in detail.
  • the computing device 100 may extract and sample an object image, which is an image of the object, from the entire image (crop feed step; S2500 ⁇ . Since the resized image is used in step S2200 and a part of the data of the entire image is lost, the crop feed step S2500 is to use image information before loss for an object of relatively high importance.
  • the detailed classification module 4300 implemented by the computing device 100 analyzes each detected object as a result of the object's characteristics and state. It further includes a detailed classification step (S3000) of generating detailed classification information including.
  • the object is a concept including a spatial object that is an object corresponding to the 'space' itself in which the entire image is captured, and detailed classification information of the spatial object may include information about the corresponding space.
  • a property of the object refers to a property of an object that is largely immutable with respect to time, whereas a state of the object refers to a property of an object that is substantially changeable over time.
  • the property of the object may include information on a partial object that forms a part of the object or is a component to which the object belongs.
  • a partial object that forms a part of the object or is a component to which the object belongs.
  • parts of the person's arms, legs, eyes, etc., and clothes and shoes worn by the person are partial objects of the object.
  • the detailed classification step (S3000) may include: attempting to detect a partial object that forms a part of the object or is a component of the object (S3920); and when the partial object is detected, further generating an analysis result of characteristics and states of the partial object as a part of the detailed classification information (S3940).
  • the characteristic of the object may include a main color of the object, a general object that is information indicating the partial object of the object, a subject that is information indicating another object when the object is a partial object of another object, and the object. It may include at least one of the size of the object, one or more materials of the object including the main material of the object, transparency of the object, text displayed on the surface of the object, and whether magnetic movement of the object is possible.
  • the size of the object may be a size measured by two-dimensional measurement or three-dimensional measurement.
  • the transparency of the object is a property that can be possessed when the object is an object having a transparent portion such as a glass window.
  • an opaque object has a value of 0, and an object of a transparent material such as glass has a positive value. can have
  • the state of the object may include at least one of a position of the object, a posture of the object, an action of the object, a direction of the object, whether the object is in contact with the floor, and a speed of the object.
  • the position of the object may be a position measured by two-dimensional measurement or three-dimensional measurement.
  • the posture of the object may be inferred based on location information of partial objects of the object, and the behavior of the object may be inferred from the temporally continuous posture.
  • the direction of the object may be inferred based on location information of the object or an action of the object.
  • Whether the object is in contact with the floor indicates whether the object is in contact with the floor plane of the spatial object to which the object belongs, and for example, a chair, a desk, a power pole, a tire of a car, etc. have a true value.
  • the detailed classification information of the object may further include an attribute indicating information related to system input/output of the object as well as the characteristics and state.
  • the property of the object may include at least one of a data input time including a time when raw data of the object was initially input, and an operation right for the system according to the present disclosure granted to the object. .
  • the detailed classification step ( S3000 ) is performed in each of the objects corresponding to the individual category to which the individual object belongs, with respect to the individual object whose importance is the object having the second predetermined value or more.
  • the detailed classification model M430 is for distinguishing one or more objects from each other.
  • each of the objects can be distinguished from each other
  • a possible identifier may be assigned.
  • the object record herein refers to a record including information attributed to the identifier of each object.
  • information attributed to the identifier of each object if the object is a person, it may include the person's face shape, height, gait aspect, tattoo, hair style, etc., and if the object is a dog, the It may include the shape of the head, the shape and color of the hair, the breed, and the like.
  • the object record may include information of other objects that are owned by each object, and this may be an identifier of the other object.
  • Selecting the detailed classification model M430 for each individual object ( S3200 ) may be performed by the classification model selection module 4320 implemented by the computing device 100 .
  • the classification model selection module 4320 performs a function of selecting a detailed classification model suitable for the category after the category of the object is obtained together with an algorithm applied to the detailed classification model.
  • the classification model selection module 4320 For example, if the category of the object is a person, the classification model selection module 4320 generates detailed classification information that can specify a person, such as a person's face shape, height, gait aspect, tattoo, and hair style. A classification model may be selected, and if the category of an object is an individual, a detailed classification model that generates detailed classification information that can specify a dog, such as a dog's head shape, hair shape and color, and breed, may be selected.
  • the detailed classification model M430 is a set of models, and by performing at least one of two-dimensional measurement and three-dimensional measurement of the object, the position of the object, whether the object is in contact with the floor, the direction of the object, and the object
  • the measurement model M431 for calculating at least one (one or more) of the velocity of the object, the posture of the object, and/or the size of the object may be included.
  • the size of the object is a one-dimensional dimension including at least one (one or more) of height, width and/or depth, a two-dimensional dimension including the surface area of the object, and/or a three-dimensional dimension including the volume of the object. It may include at least one (one or more) of
  • the volume of the object may be calculated based on at least one (one or more) of object segmentation of the object, posture and/or depth information of the object.
  • the metrology model M431 indicates a system position that is the origin of at least one of an orientation and coordinates of the spatial object, a Manhattan space that is a volume space including an object included in the space of the spatial object, and the space. At least one of a floor plane detected in , a vector of gravity applied to the space, an empty volume space excluding an object included in the space in the space, a partial object of the space object, and a direction of the space can be calculated have.
  • the space is irrespective of indoor or outdoor space.
  • a partial object of a spatial object refers to a partial object constituting the space of the spatial object, and the partial object is fixed in the space.
  • Examples of partial objects of such spatial objects may include glass windows, doors, walls, kitchens, roads, overpasses, and the like.
  • a system location refers to a location of a system according to the present disclosure that serves as an origin of azimuth or coordinates within an indoor or outdoor space.
  • the direction of the space refers to the direction of the object that is the spatial object, and may be based on the system or part of the space of the present disclosure.
  • Depth information in 3D measurement may be predicted by an artificial intelligence methodology for deriving depth information from the image or may be supplementally provided with respect to the image from other sensors 340 such as lidar, radar, and ultrasonic sensors.
  • the three-dimensional measurement is performed under the condition that the deviation of the length of at least one part among the object or the partial object that forms a part of the object or is a component belonging to the object is smaller than a predetermined criterion.
  • the method may further include a process ( S3410 ) of identifying a length reference object that is a satisfying object, measuring a two-dimensional length of the length reference object ( S3410 ), and a process ( S3420 ) of detecting a floor plane of the object.
  • This three-dimensional measurement is to determine the relative position between the system of the present disclosure and the object or/and the absolute position of the object using information of one or more objects.
  • the height of an adult male which is an example of a length reference object
  • a reference length of an object belonging to another category such as a door, a pencil, and a cup, which may also be used for distance measurement.
  • the length reference object when a plurality of doors are detected in one entire image or space (or space object), the doors of the same design in one space have similar heights, so they are used as length reference objects for distance determination. can be used
  • a partial object can also be used as a length reference object when the deviation of the length of the partial object is a relatively small object.
  • the horizontal length of the human eye is used as a length reference object because the standard deviation is relatively small can be
  • a corrected length may be calculated by reflecting the inclination due to the posture of the length reference object. The posture of the object and its calculation will be described later.
  • a method using Manhattan space detection a method of generating a floor plane between the length reference objects and extending them when there are two or more length reference objects, and a method of moving the length reference object
  • 6A to 6D are flowcharts exemplarily illustrating methods that may be used to detect a floor plane of an object in the image processing method of the present disclosure.
  • a deviation in the size of an object corresponding to a certain category among at least one category or at least one part of a partial object of the object is predetermined. It starts with the step of detecting at least one size similarity object corresponding to the size similarity category, which is a category that satisfies a condition smaller than the criterion of ( S3422a ).
  • the size may be one or more of width, height, and depth.
  • a category satisfying a condition in which the size deviation is smaller than a predetermined criterion may be a desk category.
  • Certain types of desks have relatively small variations in height. Assuming that the height of a certain kind of desk is 70 ⁇ 74 cm on average, the standard length of an object similar to that size can be set as 72 cm.
  • the size-like object may be a floor reference object at the same time.
  • the floor reference object is an object used for detection of a floor plane, and refers to an object in which at least a portion of the object segmentation generally touches the floor. For example, desks and chairs correspond to such floor reference objects.
  • a first embodiment of the process S3420 includes a step S3424a of detecting a bottom contact point that is a contact point for the lowermost end of the object segmentation of the size-like object.
  • FIG. 7A is a diagram exemplarily illustrating object segmentation obtained by the image processing method of the present disclosure.
  • PartNet A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding.
  • CVPR Computer Vision and Pattern Recognition
  • the lowermost end of the regions 712 , 714 , 716 , and 718 corresponding to the chair leg may be considered to be in contact with the floor. 720 can be detected. As another example, since the lowermost end of the door object segmentation contacts the floor, a floor contact point that is a contact point may be detected.
  • a first embodiment of the process S3420 includes determining a three-dimensional distance of the size-like object based on the two-dimensional length of the size-like object (S3426a). For example, since at least one (one or more) of a two-dimensional length (height), width, and/or depth is measured to be smaller than a chair positioned closer to a chair positioned farther away, the three-dimensional distance may be determined using this.
  • the first embodiment of the process S3420 connects the floor contact points 720 to each other to create a three-dimensional reference plane 730, and expands the three-dimensional reference plane to form a floor plane ( It further includes generating (S3428a) 740).
  • a three-dimensional reference plane may be generated by connecting the lowermost ends of the chair legs to each other, which may further extend to the floor plane 740 .
  • the gravity horizontal object generally refers to an object disposed to stand upright in parallel to the direction of gravity, for example, a glass window and a wall surface.
  • the gravity horizontal object may be an object (eg, a door, a window, etc.) having lines and/or faces disposed in a horizontal direction to the gravity vector.
  • a gravity horizontal object may be an object (eg, a door frame, a wall, etc.) with one or more lines and/or faces touching the floor plane.
  • Gravity A horizontal object may have a horizontal to vertical ratio (a value obtained by dividing a horizontal length by a vertical length) of 1 or less.
  • the second embodiment of the detection of the floor plane using a plurality of objects starts with the step of detecting a plurality of similar objects having a degree of similarity equal to or greater than a predetermined value ( S3422b ).
  • a predetermined value For example, a door, a desk, a chair, etc. of a certain design may be such a similar object.
  • the image processing method of the present disclosure can be continuously and repeatedly performed, if the image processing method has already been applied to a space in which the similar object exists, in step S3422b, the previously detected similar object is The similar objects can be detected with reference to the position and length.
  • the second embodiment of the process S3420 further includes the step of detecting at least one lowermost object, which is an object located at the lowermost level among the plurality of similar objects (S3424b).
  • at least one lowermost object which is an object located at the lowermost level among the plurality of similar objects (S3424b).
  • the second embodiment of the process S3420 further includes a step S3426b of detecting a bottom contact point that is a contact point for the lowest end of the object segmentation of each of the lowermost objects, and following step S3426b
  • the method further includes generating a three-dimensional reference plane by connecting the floor contact points to each other, and generating a floor plane by expanding the three-dimensional reference plane (S3428b).
  • the process ( S3420 ) includes detecting a plurality of similar objects having a degree of similarity equal to or greater than a predetermined value ( S3422b ′), one of the plurality of similar objects being detected.
  • FIG. 7B is an exemplary diagram for explaining steps of detecting two or more floor planes in an image processing method according to an embodiment of the present disclosure.
  • step S3422b' is the same as step S3422b, the 'complete upper end' of steps S3424b' and S3426b' will be described with reference to FIG. 7B.
  • an object having a similarity greater than or equal to a predetermined threshold can be assumed that the height h is the same within the error range.
  • each object is located apart from each other along the vertical axis (y-axis) in the entire image, it can be detected that (i) there is a distance between the objects or (ii) there is a difference in height of the floor that supports the object. If the leftmost lower end of the entire image is taken as the origin of the coordinate system, and when there is a distance between the objects, the object 700b having a lower y-axis coordinate value than the other object 700a is closer to the imaging device, so the height (hb) ) is larger and the height ha of the object 700a having a relatively higher y-axis coordinate value should be reduced by a certain ratio compared to the height hb.
  • objects eg, 700b and 700a
  • the groups (eg, 700b and 700d) exist in the same floor, and thus the corresponding floor set may be generated.
  • the height hc does not decrease at a certain rate from the height ha of the other object 700a, or the height hc is equal to or greater than the object 700c. ) can be determined to exist on different floors, so different sets of floors can be created.
  • the floor-to-floor sets can be generated.
  • the height or area of the three-dimensional reference plane formed by each object may be used.
  • an object corresponding to a certain category among at least one category or a deviation in the length of at least one part among partial objects of the object is a predetermined value. It starts with the step of detecting at least one length similarity object corresponding to the length similarity category, which is a category that satisfies a condition smaller than the reference ( S3422c ).
  • Such length-like objects may include desks with relatively small variations in height.
  • a third embodiment of the process S3420 includes the steps of detecting a Manhattan space created by the set of length-like objects (S3424c), and detecting the bottom of the Manhattan space (S3426c) , and expanding the floor of the Manhattan space in a horizontal direction to generate a floor plane (S3428c).
  • the detection of the Manhattan space includes a first step (S3424c-1) of detecting a floor object that is an object forming a floor among the objects and generating a boundary of the floor object (S3424c-1), the boundary of the floor object
  • a second step of detecting a wall object that is an object perpendicular to (S3424c-2), and a third step of detecting a ceiling object that is an object perpendicular to the wall object as an object other than the floor object (S3424c- 3) can be configured.
  • the Manhattan space here refers to a space surrounded by a floor object, a wall object, and a ceiling object.
  • wall objects perpendicular to the floor object include a glass window, a door, and the like.
  • the fourth embodiment using objects having the same pattern in the detection of the floor plane ( S3420 ) starts with the step ( S3422d ) of detecting the same pattern objects, which are a plurality of objects having the same pattern.
  • a fourth embodiment of the process S3420 includes, when the same pattern objects are detected, detecting lower ends of the same pattern objects (S3424d), and occlusion between the same pattern objects and the The method further includes measuring a relative distance between the same pattern objects based on one of the length differences in the image between the same pattern objects (S3426d).
  • the one object may be detected as being closer to the system than the other object. Also, if one of the objects having the same pattern is smaller than the other objects, the one object may be detected as being farther away from the system than the other objects.
  • a fourth embodiment of the process S3420 is performed virtual from the bottom contact point of two or more of the same pattern objects, or from three or more points included in one of the same pattern objects.
  • the method further includes generating a plane (S3428d).
  • a plane for each floor can be created using the plurality of virtual planes as each floor according to differences in length, state, and position.
  • a fourth embodiment of the process S3420 further includes generating a floor plane by expanding the virtual plane (S3429d).
  • the three-dimensional measurement is a process of setting a virtual length reference line on the detected floor plane after the detection of the floor plane (S3420). (S3430); and a process (S3440) of measuring a distance between the object and a system position, which is the origin of at least one of the orientation and coordinates of the spatial object, or the position of the object based on the system position.
  • the two-dimensional measurement in step S3400 includes posture and direction measurement for calculating the two-dimensional posture and two-dimensional direction of the object based on the relative positions between the partial objects of the object, and the two-dimensionality of the object.
  • Area measurement for calculating the area may be included, and this may be performed by the detailed classification module 4300 using the measurement model M431 of the detailed classification model M430.
  • the area here means the area in the entire image or object image without considering the depth. Measurement of this two-dimensional area may be performed by classification and measurement of object segmentation.
  • the detailed classification model M430 may include information on a partial object that forms a part of the object or is a component belonging to the object, and deep classification information of the object.
  • an advanced characteristic model (M432) for calculating at least one of the main color of the object, the type of the object, the subject of the object, one or more materials of the object, the transparency of the object, and whether the object can be moved by magnetic force may include more.
  • the deep classification information of the object refers to information obtained by deep classifying the category of the object.
  • the category of the object is a dog
  • the deep classification information may be the breed of the dog.
  • the detailed classification model M430 may further include a posture determination model M433 for calculating the posture of the object based on the processing results of the measurement model M431 and the deep characteristic model M432, and the posture determination It may further include a behavior determination model M434 for classifying the behavior of the object based on the temporally continuous posture calculated from the model M433.
  • the processor 120 of the computing device 100 may obtain posture information on the object from the analysis information corresponding to the object by using the posture determination model M433 .
  • the processor 120 of the computing device 100 may obtain behavior information on the object from the posture information on the object by using the behavior determination model M434 .
  • an action is a concept that includes both a behavior that does not reflect a context and an action that reflects the context, and the behavior will be described later.
  • the posture determination model M433 may be a posture determination model for each category that is different for each category. For example, a dog posture determination model that calculates a dog's posture in a sitting state and a human posture determination model that calculates a human posture in a sitting state may be different from each other. Accordingly, a posture determination method to be applied to an object among a plurality of posture determination methods may be determined based on the analysis information corresponding to the object in the posture determination model M433 . The posture determination model M433 may apply different posture determination methods according to classification information indicating the category of the object.
  • the action determination model M434 may be a different category-specific action determination model for each category.
  • the behavior determination model M434 may apply a different method of determining an action according to classification information indicating a category of an object.
  • the posture determination model M433 may generate posture information about an object, including information about an N-dimensional (eg, one-dimensional, two-dimensional, three-dimensional, etc.) posture corresponding to the object, from the analysis information. have.
  • the posture information on the object may include information on the temporally continuous posture with respect to the object.
  • the behavior determination model M434 may obtain behavior information about the object, including the N-dimensional (eg, 1-dimensional, 2-dimensional, 3-dimensional, etc.) movement vector corresponding to the object, from the posture information on the object.
  • the behavior determination model M434 includes the N-dimensional (eg, 1-dimensional, 2-dimensional, 3-dimensional, etc.) behavior classification corresponding to the object from the object's posture information, including the object's context.
  • An object's context may include at least one of the object's state and/or the purpose of its behavior.
  • the behavior classification may be calculated by identifying the position of the partial object included in the object, determining the posture of the object based on the position of the partial object, and determining the behavior classification of the object based on the posture of the object.
  • a partial object may include at least one of a part of the object or an attribute belonging to the object.
  • the movement vector may include a two-dimensional movement vector including at least one of a two-dimensional direction and/or a velocity of the object.
  • the movement vector may include a three-dimensional movement vector of the object calculated based on at least one of a position, a speed, and/or an acceleration of a photographing device that has captured an image.
  • the detailed classification module 4300 performs a two-dimensional motion vector of the object and a two-dimensional action of the object from temporally consecutive object images. It is also possible to calculate the two-dimensional motion information of the object including the classification, the two-dimensional behavior classification, the step of identifying the position of each partial object included in the object (S3450a), the posture determination model (M433) determining the two-dimensional posture of the object based on the relative position of each of the partial objects using the It may be calculated by performing the step (S3470a) of determining the two-dimensional behavior classification of the object.
  • the two-dimensional motion vector represents the two-dimensional direction and speed of the object
  • the two-dimensional behavior classification represents the type of action determined from the two-dimensional posture of the object.
  • step S3400 the detailed classification module 4300 determines the three-dimensional movement vector of the object and the three-dimensional movement vector of the object from temporally consecutive object images.
  • the three-dimensional motion information of the object including the three-dimensional behavior classification, the three-dimensional behavior classification, the step of identifying the position of each partial object included in the object (S3450b), the posture determination model (M433) ) to determine the three-dimensional posture of the object based on the relative positions of each of the partial objects using (S3460b), and based on the temporally continuous three-dimensional posture of the object using the behavior discrimination model M434
  • it can be calculated by performing the step (S3470b) of determining the three-dimensional behavior classification of the object.
  • the computing device 100 uses the interlocking sensor 340 .
  • at least one (one or more) of the position, speed, and/or acceleration of the photographing device may be calculated or estimated, and the three-dimensional movement vector of the object may be calculated by reflecting the calculation.
  • the system of the present disclosure drives the gimbal motor 330 to rotate the axis of the gimbal to track a bicycle, which is an object running in the right direction based on the system, while calculating a three-dimensional movement vector of the bicycle.
  • both the motion vector by the motor 330 and the motion vector in the image may be reflected in the 3D motion vector.
  • a standard focal length of the photographing apparatus 200 and/or a standard focal length of the entire image or the object image may be used to calculate the 3D position and 3D motion vector of the object.
  • the distance between the photographing device 200 and the object, the standard focal length, the three-dimensional height (actual height) of the object, the height of the image (ie, the vertical size of the image), the height of the object in the image, the photographing device 200 The relationship between the heights is expressed by Equation 1 below.
  • the distance from the photographing apparatus 200 to the object or the three-dimensional height of the object may be calculated.
  • the distance reference line which is one of the criteria used to measure the distance from the imaging device 200 to the object, is, for example, a concentric sphere based on the system of the present disclosure when two or more objects having the same length are detected. It may be a distance reference line set using This line is composed of a reference plane circle and a measurement plane circle, which will be described later. Each step of setting this up is as follows.
  • 7C is a conceptual diagram for explaining a method of generating and using a reference plane circle and a measurement plane circle in an image processing method according to an embodiment of the present disclosure
  • a reference plane circle 750 is generated in a plane direction perpendicular to gravity, wherein when determining that it is perpendicular to gravity, at least one of an accelerometer, a gyroscope and/or the gravity horizontal object ( more than one) may be used.
  • the reference plane circle 750 corresponds to the shape of the cross-section of the system, that is, the surface of the concentric sphere 740 with the imaging device 200 as the origin, that is, the concentric sphere surface cut in the xy plane.
  • objects having the same length which are objects having the same length, among objects of similar length, are detected.
  • the object using the same length is interposed between the metrology plane circles for each angle ⁇ . Measure the difference in angle ( ⁇ ) coordinate values between them.
  • the distance from the photographing device 200 to each object may be measured using the difference in the angular coordinate values.
  • at least one of the standard focal length and the lens and/or aperture size of the photographing device. (one or more) optical properties may be used as an auxiliary.
  • the models listed in the present disclosure including the behavior discrimination model M434 may be generated by supervised learning or reinforcement learning. It is known that an interpretation value (text or classification index) and video information corresponding to each behavior of an object can be used as training data for supervised learning. In addition, reinforcement learning of a method of outputting behavior information by the behavior discrimination model M434 to the user and modifying the model using the output when the user reports positive or negative feedback may be used.
  • the detailed classification model M430 as a set may further include a context model M435 for inferring a context from the entire image.
  • Context is a description of the object's state and the purpose of its behavior. As an example, if an image of a person peeling oranges with a knife in the kitchen is input, the context model M435 uses the sentence 'The person in the kitchen is peeling oranges with a knife' or a signal corresponding to the context. can be printed out.
  • Behavior refers to an action of an object that does not reflect context. For example, both a person running on a basketball court and a person running on a treadmill show the action of 'running'. Such behavior may be combined with a context to be described later, and an action in consideration of the context may be determined. According to this, the former corresponds to the act of 'playing basketball', and the latter corresponds to the act of 'using a treadmill'.
  • the context includes at least one of an action and a state of each individual object displayed in the entire image, and a context interaction object that is another object detected as interacting with the individual object by the action. It may be the containing object context.
  • the context refers to at least one of a place that is a type of the spatial object inferred from each of the spatial object and individual objects other than the spatial object displayed in the entire image, the action and state of each individual object, and an individual corresponding to the subject of the action. It may be a spatial context including an actor, which is an object, and a context interaction object, which is an object that is detected as interacting with the individual object by the action.
  • the synthesis of an action and a context for determining a context-considered action may be implemented as supervised learning using an artificial neural network model.
  • an artificial neural network model For example, a sequence of images, that is, one scene of a video, is taken as input data, and language interpretation (ie, data expressed in language) including the behavior and spatial context of an object is labeled as the correct output data.
  • An artificial neural network model can be trained using the training data.
  • the action is heterogeneous with the spatial context, and in this case, there is room for the action to be interpreted out of context. For example, for an object that is a person running in a cafe, it can be interpreted as an act of 'moving in a hurry' rather than an act of 'running'. This discrepancy is because the behavior does not sufficiently reflect the context or the context does not sufficiently reflect the behavior.
  • the priority of the object closely related to the importance of the aforementioned object will be described in detail.
  • the importance is a value handled to give priority
  • an order based on the importance may be prioritized.
  • the priority of the object may include a permission-based priority that is designated for each of the objects based on the permission of the object. This is to assign a priority according to the privileges of each classified object. For example, if an object, which is a specific user, has the highest privilege for the system of the present disclosure, a high priority will be given to the specific user. can
  • the authority-based priority is determined based on the characteristics of the object analyzed using the detailed classification model (M430), determining whether the object is a predetermined authority to handle the computing device, and the object is If it is a predetermined authority, it may be calculated by performing the step of setting a predetermined priority for the authority to the authority-based priority of the object.
  • M430 detailed classification model
  • the authority since the authority is expected to be a person, it is possible to first detect an object that is a person, and set the authority-based priority only for the object that is the detected person.
  • the computing device of the present disclosure can specify an individual from among a plurality of people by using the above-described deep classification information. , or an object record of the object.
  • the priority of the object there may be a classification-based priority designated for each of the object sets divided according to at least one characteristic including at least the category of the object or the deep classification information of the object among the characteristics of the object. have.
  • the classification-based priority may be a priority given in advance to categories such as people, animals, other objects, or the in-depth classification information, and the authority of the system may manually set it.
  • the computing device of the present disclosure may variably automatically set a priority for each category or deep classification information based on a pattern in which the authority of the system uses the system of the present disclosure.
  • the priority of the object may include a size-based priority designated for each of the object sets divided according to at least one characteristic including at least the size of the object among the characteristics of the object.
  • the size-based priority is a step in which the detailed classification module 4300 acquires the object segmentation of the object, and selects an object in which the ratio of the size of the object segmentation in the entire image among the objects is equal to or greater than a predetermined ratio and setting the size-based priority according to the size of the object segmentation of the selected object.
  • This is a method of setting a high priority considering that the larger the object or the closer the distance between the system and the object of the present disclosure is, the greater the object segmentation of the object occupies the entire image. .
  • the priority of the object may include an action-based priority designated for each of the object sets divided according to at least one state including the behavior of the object among the states of the object.
  • the detailed classification module 4300 may search for an object performing a specific action and assign a priority corresponding to the action.
  • the highest priority may be set for the person who has fallen down.
  • a high priority may be given to the object that is the commander.
  • the priority of the object may have a context-based priority designated for each of the object sets divided according to at least one state including at least the context of the object among the states of the object.
  • the detailed classification module 4300 infers an object context and a spatial context from the entire image by performing a state analysis or a spatial analysis on the entire image, and the object determines the inferred object context and Giving a relatively high priority to the actor or the contextual interaction object based on whether it is an actor by at least one of spatial contexts or a context interaction object that is an object that is detected as interacting with the actor by an action of the actor. can be set.
  • a relatively high priority may be given to a person detected as holding a baseball bat.
  • steps may be performed once, but preferably, the steps are performed in real-time and/or iteratively to obtain temporally continuous images as described above.
  • the image processing method of the present disclosure may further include a step ( S4000 ) of returning to the image acquisition step ( S1000 ) in order to acquire a new full image, in which case the available resources are determined by the tracking controller 4400 . By controlling the image acquisition step (S1000) may be performed again.
  • the tracking controller 4400 is a module similar to the image input module 4100 , the object analysis module 4200 , and the detailed classification module 4300 . It performs a function of implementing the movement of the photographing device, ie, tracking, so as to be able to direct the space, where available resources refer to hardware and/or software that enables such tracking.
  • the tracking controller 4400 is configured to obtain a target position determination module 4420 that determines a target position and a magnification corresponding to a composition to be captured by the photographing device 200 and the entire image of the target position. It may include a tracking resource controller 4440 for controlling available resources, that is, hardware and software resources.
  • 8A to 8C are flowcharts exemplarily illustrating methods that may be used to determine a target position in the image processing method of the present disclosure.
  • the target location determination module 4420 obtains an object priority of at least one candidate object appearing in the entire image (S4110a), obtaining an object segmentation of the candidate object Step (S4120a), the step of identifying a context interaction object that is an object detected to interact with the candidate object according to the context inferred from the entire image (S4130a), an object priority of a predetermined rank or higher Determining the composition to be photographed by the photographing apparatus 200 to include at least one target object that is a candidate object and the context interaction object of the target object (S4140a), and the direction of the target object according to the direction of the target object
  • an additional composition prediction step (S4150a) of determining the target position and magnification may be performed.
  • the context interaction object may be identified by the context model M435.
  • This context model (M435) can be generated by supervised learning is a non-patent literature paper Shin, D., & Kim, I. (2016). Deep Image Understanding Using Multilayered Contexts. As disclosed in Mathematical Problems in Engineering, 2018, 1-11.
  • the additional composition prediction step (S4150a) may include obtaining the direction of the target object (S4152a) and obtaining the speed of the target object (S4154a).
  • the direction of the target object may be obtained based on relative positions between partial objects included in the target object, and the speed of the target object, that is, a 3D motion vector, is a 2D motion vector obtained from an image and It may be calculated based on the information of the sensor 340 .
  • the additional composition prediction step (S4150a) calculating an influence range of the target object, which is a range in which interaction with the target object is possible, based on the direction and speed of the target object (S4156a), and the The method may further include determining the target position and magnification by expanding the composition by reflecting the influence range ( S4158a ).
  • the influence range is the range of space that the target object is likely to occupy at least temporarily over a predetermined time range starting from the present, or is likely to be occupied by the context interaction object with which it is likely to interact, that is, , a range of a space in which the target object can be physically contacted, for example, a range in which a human body part can be physically contacted, or a context in which the target object can transmit and receive signals through eyes, ears, mouth, etc. It refers to a range in which an action object can exist, for example, a field of view (FOV) in which signals are received and transmitted with the target object.
  • FOV field of view
  • the range of influence of the eye is 20 m.
  • the range of influence of the hand may be 1 m. This may be combined with the behavior information (action classification) of each object and used to adjust the composition. For example, if 'a child standing with a bat at the baseball batting table' is the target object, the composition may be adjusted to include the direction of the child's gaze and the bat object held in the child's hand in step S4158a.
  • the target positioning module 4420 may determine the composition to be photographed based on the priority of the object. Specifically, the target positioning module 4420 may include: Obtaining an object priority of at least one candidate object appearing in the entire image (S4120b), determining at least one target object that is a candidate object having an object priority of a predetermined priority or higher (S4140b) , and determining the composition to be photographed by the photographing apparatus 200 to include the target object ( S4160b ).
  • the target location determination module 4420 obtains the object priority of at least one candidate object appearing in the entire image (S4120c), generating a virtual segmentation including the candidate object according to the object priority of the candidate object, wherein the virtual segmentation is generated so that the area of the virtual segmentation becomes larger as the object priority is higher (S4140c);
  • the step of determining the target position and magnification corresponding to the composition may be performed.
  • the tracking resource controller 4440 is an image conversion controller 4442 that controls to acquire the new image from the image acquired from the photographing device 200 without controlling the posture of the gimbal 300 and the photographing apparatus 200, and photographing
  • the control may include a frame switching controller 4444 that controls the photographing device 200 to acquire the new image.
  • the frame transition controller 4444 and the image transition controller 4442 may operate to complement each other, and the tracking resource controller 4440 first acquires a new image of a desired resolution from the frame transition controller 4444, and In case of failure, it is possible to control to acquire a new image through image reconstruction by the image conversion controller 4442 .
  • the video conversion controller 4442 determines whether there is an idle resource capable of performing image reconstruction ( S4310 ). If the idle resource exists, the pre-obtained full image or the entire image loading a portion of the original image into the memory as an original image (S4320), and cropping the original image according to the target position and magnification, or when the resolution of the original image is less than a predetermined threshold, Acquiring the new image according to the target position and magnification by performing super-resolution (S4330) may be performed.
  • super-resolution for example, can be performed using a neural network such as an autoencoder.
  • the frame change controller 4444 is a gimbal controller that controls the direction of the photographing device 200 by operating the one or more rotation axes of the gimbal 300 to achieve the target position (that is, to reach the target position).
  • 4444a a zoom controller 4444b that controls zoom-in and zoom-out of the photographing device 200 to achieve the magnification, and an environment while reducing the operation of hardware among the available resources It may include a front and rear photographing device controller 4444c for controlling the photographing, and at least a gimbal controller 4444a among them.
  • the photographing apparatus 200 may be composed of two or more, for example, the photographing apparatus 200 mounted on the front and rear surfaces of the portable terminal 100 , respectively.
  • the front and rear photographing device controller 4444c can scan the entire space surrounding the system, that is, the surrounding space, using the front photographing device 200a (not shown) and the rear photographing device 200b; According to the user's convenience, the photographing apparatus 200 used may be selected from the front and rear photographing apparatuses.
  • the front and rear photographing device controller 4444c may select the front photographing device 200a as a photographing device to be used to acquire an image of the user when the user is looking at the display of the portable terminal 100 .
  • the front and rear photographing device controller 4444c may request an image having a higher resolution than that of the front photographing device 200a for the object. It is possible to control the object to be recognized as the rear photographing device 200b having a resolution.
  • front and rear photographing device controller 4444c can use the front photographing device 200a and the rear photographing device 200b simultaneously or sequentially to obtain images of the surrounding space while minimizing the rotation of the gimbal 300 axis. .
  • the frame change controller 4444 sets the ratio of the width to the height of the specific object or the partial object included in the specific object or the specific partial object so that the composition includes all of the at least one specific object or the specific partial object (horizontal length to vertical length).
  • the orientation of the photographing apparatus 200 may be controlled in one of a portrait direction and a landscape direction. For example, this may be achieved by rotation of the roll axis R of the gimbal 300 .
  • the width may mean perpendicular to the gravity vector.
  • the length may mean that it is horizontal to the gravity vector.
  • the horizontal to vertical ratio may be a horizontal to vertical ratio in which a portion of one reference plane is calculated as a horizontal length.
  • the reference plane may be a plane perpendicular to the gravity vector and/or a plane in contact with the floor.
  • the reference plane is not limited thereto, and various planes may be set as the reference plane.
  • a tendency eg, 1 or more or 1 or less
  • the frame change controller 4444 determines that the object segmentation of the at least one specific object or the specific partial object or an object box including the at least one specific object or the specific partial object determines the frame boundary of the entire image.
  • the orientation of the photographing device may be controlled in any one of a vertical direction and a horizontal direction so as not to contact the .
  • 9A and 9B are flowcharts exemplarily illustrating methods that may be used to control the orientation of a photographing apparatus in the image processing method of the present disclosure.
  • the frame change controller 4444 may perform object segmentation of the at least one specific object or a specific partial object.
  • the gimbal moves in the opposite direction to the first contacted position within the limit that the object segmentation or the center point of the object box exists in the composition.
  • Resolving the first contact by controlling (S4210a), and when the object segmentation or the object box makes a second contact with the frame boundary line on the opposite side of the first contacted position after the movement, (i) the photographing an act of switching the orientation of the device from one of a portrait and a landscape orientation to another; and (ii) an act of controlling the zoom-in and zoom-out of the imaging device. Resolving the second contact through at least one of (S4220a) may be performed.
  • the frame change controller 4444 is a step of acquiring a ratio characteristic among the characteristics of the at least one specific object or a specific partial object,
  • the ratio characteristic is a ratio of width to height (a value obtained by dividing a horizontal length by a vertical length) that is predetermined for each category of the specific object or the specific partial object, or calculated for each category by measurement of the specific object or the specific partial object.
  • Ratio characteristic for each category the ratio of width to length (horizontal length to vertical length) determined in advance for each detailed classification of the specific object or the specific partial object, or calculated for each detailed classification by measurement of the specific object or the specific partial object
  • a ratio characteristic for each detailed classification that is a divided value A ratio characteristic for each detailed classification that is a divided value
  • a step (S4210b) including a ratio of width and height (a value obtained by dividing a horizontal length by a vertical length) of the composition determined by the target position determination module (S4210b), and in the ratio characteristic Based on the determination, whether to perform roll rotation, which is an operation for changing the orientation of the photographing device from any one of a portrait and a landscape to another, is determined, and the orientation of the photographing device is determined according to whether or not
  • a step of adjusting (S4220b) may be performed.
  • the orientation of the photographing apparatus 200 may be adjusted in the horizontal direction, and the horizontal and vertical ratio of a person standing Since the ratio (a value obtained by dividing the horizontal length by the vertical length) is 1 or less, the orientation of the photographing apparatus 200 may be adjusted in the vertical direction.
  • Step (S4220b) Next, the frame switching controller 4444 of this embodiment, when the object segmentation or object box of the at least one specific object or specific partial object comes into contact with the frame boundary line of the entire image, (i) the photographing an act of switching the orientation of the device from one of a portrait and a landscape orientation to another; and (ii) an act of controlling the zoom-in and zoom-out of the imaging device.
  • the step of allowing the at least one specific object or a specific partial object to be included in the composition by resolving the contact through at least one of (S4230b) may be further performed.
  • step S4220b is terminated and step S4230b is not performed.
  • the classification model M430 may further include an OCR model M436 for reading the text displayed on the surface of the object. Accordingly, the processor 120 of the computing device 100 may obtain a character included in the object from the analysis information corresponding to the object by using the OCR model M436 .
  • the detailed classification module 4300 performs OCR using the OCR model M436 of the detailed classification model M430 to calculate the text of the object as a part of the characteristics of the object. It may include a step (S3500) of doing.
  • the OCR model M436 may include, first, determining whether characters are displayed on the surface of the object (S3520).
  • step S3520 it is known that the object on which the character is displayed can be determined by detecting the character using deep learning or a conventional OCR technique.
  • the OCR model M436 performs OCR on the displayed characters (eg, the entire character and/or character set) if characters are displayed on the surface of the object, and the result of the OCR
  • An OCR performing step (S3540) of inputting (saving) text as a characteristic of the object may be performed.
  • the OCR model determines whether characters are displayed on the surface of the object, and when it is determined that the characters are displayed on the surface of the object, OCR is applied to all characters including The steps to be performed can be performed.
  • the OCR model M436 includes the steps of determining whether characters are displayed on the surface of the object and performing OCR for each character set when it is determined that characters are displayed on the surface of the object. can be done
  • At least one of the processor 120 or the OCR model M436 may classify a character set to which a character belongs based on at least one of a type, a shape, a size, and an arrangement of the character.
  • the processor 120 may distinguish a character set with a high probability of being closely related in the interpretation of one context.
  • a method of distinguishing a character set belonging to a character or a character set belonging to a context may be as follows.
  • at least one of the processor 120 and the OCR model M436 may classify the character set based on the character set characteristic.
  • Character set attributes include the language type of the character, line spacing, kerning, length (e.g., aspect ratio), size, thickness, color, font (font), style, related characters at the beginning or end of a sentence, blanks (e.g., For example, it may include one or more of the following sentence, a space with a boundary of at least one of an object or a partial object), or a position where a character is displayed in the object.
  • At least one of the processor 120 or the OCR model M436 determines the language type of the character, line spacing, kerning, length (eg, aspect ratio), size, thickness, color, font (font), style,
  • a character set can be distinguished using one or more of the following characteristics: a character at the beginning or end of a sentence, a space (e.g., a space between the boundaries of at least one of the following sentences, an object, or a sub-object), or a position in an object where the character appears. .
  • At least one of the processor 120 or the OCR model M436 may classify a completed sentence or context according to a language type to which a character belongs. At least one of the processor 120 or the OCR model M436 may classify a completed sentence or context according to a language type to which each character belongs when the recognized characters such as the surface of the product manual are multilingual.
  • At least one of the processor 120 or the OCR model M436 may classify paragraphs based on at least one of line spacing, letter spacing, length, and color.
  • At least one of the processor 120 and the OCR model M436 may classify the character set based on the top or start position of one paragraph. At the top or starting position of a paragraph, the character or title of the paragraph may be displayed in a bold style or in another size.
  • the processor 120 and/or the OCR model M436 may classify the character set based on the above-described 'character set discrimination method'.
  • the processor 120 and/or the OCR model M436 may recognize a character set object based on the character set.
  • the character set object may be a character set set as one target.
  • the character set object may include at least one of a character image, text information, or character set characteristics.
  • a character set object may contain a character image prior to OCR or natural language understanding (processing).
  • the character set object may contain text information after OCR or natural language understanding (processing).
  • the character set object may be divided into a plurality of character set objects after OCR or natural language understanding (processing).
  • the processor 120 and/or the OCR model M436 may distinguish one or more character sets displayed on the surface of the object or partial object.
  • the processor 120 and/or the OCR model M436 may perform context analysis based on at least one of characteristics or state information of an object in which a character set is displayed or a partial object. Properties and/or states of objects and/or partial objects may be included in character set properties.
  • the processor 120 and/or the OCR model M436 may use the type and/or location of the object or partial object on which the character set is indicated as additional information for natural language understanding (processing) and/or context interpretation.
  • the processor 120 and/or OCR model M436 may determine that the text displayed on the shirt (object or partial object) and the text displayed on the car (object or partial object) are the same, the text displayed on either the shirt or the vehicle. (eg brand name) can be used as additional information.
  • the processor 120 and/or the OCR model M436 determines that the characters displayed on the car will reflect the characteristics of the object and/or the characteristics of the entire context (determining that the probability of reflection will be relatively higher), And the text displayed on the car can be used as additional information.
  • the processor 120 and/or the OCR model M436 may acquire characteristics of the object based on positions where the plurality of characters are displayed.
  • the plurality of characters may have different meanings according to positions.
  • the processor 120 and/or the OCR model M436 may determine that when the text displayed on the front of the shirt (object or partial object) and the text displayed on the label of the shirt (eg, care label) exist at the same time, It is determined that the text displayed on the label of the shirt reflects the characteristics of the object (it is determined that the probability of reflection is relatively higher), and the text displayed on the label of the shirt can be used as additional information.
  • the processor 120 and/or the OCR model M436 may perform OCR and/or natural language understanding (processing) of the objectified character set for each character set object.
  • the processor 120 and/or the OCR model M436 may perform OCR and/or natural language understanding (processing) of one or more character set objects based on character set characteristics.
  • the processor 120 and/or the OCR model M436 may sequentially or simultaneously perform OCR and/or natural language understanding (processing) of one or more character set objects based on character set characteristics.
  • the unit of OCR and/or natural language understanding (processing) is not limited to the entire character of the surface of an object or a partial object, and a character or character set classified by the above-described character set characteristic may be the minimum unit.
  • the OCR performing step ( S3540 ) may be performed in various ways.
  • performing OCR on characters may include at least one Based on at least one of extracting an image sample, determining a boundary line of a region in which characters are displayed from at least one image sample, and a boundary point that is a boundary line or a point belonging to the boundary line among at least one image sample,
  • the method may include generating the entire character display image and/or character set display image) and performing OCR on the character display image.
  • the image sample may be an image pattern existing at at least one of a boundary line and/or a boundary point.
  • the image pattern may include at least one of a partial text, a border portion of the text, a portion of the text, and/or a background.
  • the background may mean an image pattern that does not constitute a character.
  • the generating a text display image and performing OCR on the text display image based on at least one of a boundary line or a boundary point that is a point belonging to the boundary line among the at least one image sample may include: It may include acquiring image patterns located at one location as boundary markers, and generating a text display image, which is an image including boundary markers, as a partial image included in an image of an object on which text is displayed. It may include at least one of a marker and/or an end marker.
  • the start marker may be an image pattern corresponding to the start character of the character.
  • the end marker may be an image pattern corresponding to the end character of the character.
  • the step of acquiring image patterns located at at least one of a boundary line or a boundary point among at least one image sample as boundary markers includes, using the tracking controller 4400, acquiring a character image including a start marker and a character recognition rate equal to or greater than a threshold value and determining whether an end marker is included in the text image.
  • the processor 120 may determine the text image as the text display image.
  • the processor 120 When the end marker is not included in the text image, the processor 120 includes the next marker of the last marker among the boundary markers included in the text image using the tracking controller 4400 and the text recognition rate is higher than or equal to the threshold. image can be obtained.
  • the processor 120 may generate the merged text image by merging the additional text image with the text image. And, when the end marker is included in the merged text image, the processor 120 may determine the merged text image as the text display image.
  • the step of performing OCR on the character performed by the processor 120 of the computing device 100 includes the starting point of the character using a tracking controller, and the character recognition rate is a threshold
  • the character recognition rate is a threshold
  • the processor 120 may determine the first text as the result text resulting from the OCR.
  • the processor 120 may perform OCR on the next sentence region of the first sentence region.
  • the processor 120 may calculate a second semantic value that is a numerical value of the semantic value by performing natural language understanding on the second text, which is the primary result of the OCR. Then, when the second semantic value is equal to or greater than the threshold, the processor 120 may determine the second text as the result text resulting from the OCR.
  • the initial sentence region may be a region occupied by a sentence detected as being arranged first in an arrangement method of characters according to a language used in the sentence.
  • the computing device 100 may interwork with the photographing device 200 and the gimbal 300 .
  • the computing device 100 may include the photographing device 200 and may interwork with a gimbal 300 that controls the posture of the photographing apparatus 200 .
  • the processor 120 of the computing device 100 may control the direction of the photographing device 200 by operating one or more rotation axes of the gimbal 300 using the tracking controller 4400 .
  • the processor 120 may acquire an image through zoom-in and/or zoom-out of the photographing device 200 using the tracking controller 4400 .
  • FIGS. 11A to 11D are OCRs performed in the image processing method of the present disclosure
  • the drawings are exemplified to explain the methods.
  • the OCR performing step (S3540a) in the embodiment using the boundary marker is a step of extracting image samples from the object on which the character is displayed (eg, a paper document of reference numeral 1110). It starts with ( S3542a ), and then includes a step ( S3544a ) of defining a boundary line (eg, a closed curve at reference numeral 1130 ) of an area in which characters are displayed from the image samples following the step ( S3542a ).
  • a boundary line eg, a closed curve at reference numeral 1130
  • the image sample is an image pattern existing at the position of the boundary line or boundary point, and the image pattern may be composed of some characters, a boundary part of the characters, a part of the characters, or a background.
  • the boundary line refers to a boundary line of a group of characters displayed on the surface of an object
  • the boundary point refers to a set of points that may constitute the boundary line.
  • the background refers to an image pattern that does not constitute a character by itself.
  • the boundary marker acquisition step (S3546a) of acquiring image patterns located at the boundary line or a boundary point that is a point belonging to the boundary line among the image samples as boundary markers The method further includes, in this step, an image pattern corresponding to a start character among all characters among the boundary markers may be referred to as a start marker, and an image pattern corresponding to an end character among all characters among the boundary markers may be referred to as an end marker.
  • the boundary marker functions as a marker for determining a coordinate region of a space occupied by each character belonging to the entire character in the object image.
  • the boundary part of the character may be used as one of the image patterns located at the boundary marker, that is, the boundary line or a boundary point that is a point belonging to the boundary line.
  • the character boundary part refers to a part of an image constituting a part of a character extending along the width or length of a sentence in a sentence. For example, in the sentence "Kanadaramabashi", the letter ' ⁇ ' and ' ⁇ ' in the poem are part of the letter and can be said to be a boundary marker that is the boundary of the letter.
  • a part (or all) of the character may be used as one of the boundary markers.
  • a and G may be used as border markers that are part of a border point and/or a character located on a border line.
  • Acquisition of the start marker or the end marker reflects the arrangement of the characters according to the language of the sentence constituting the entire character.
  • the image sample 1132 at the upper left of the area where the characters are displayed may be a start marker
  • the image sample 1132 at the lower right of the area may be
  • the image sample 1134 may be an end marker.
  • the boundary marker acquisition step (S3546a) is, more specifically, a step of controlling the available resources by the tracking controller 4400 to acquire a text image that includes the start marker and has a text recognition rate equal to or greater than a predetermined threshold (S3546a-) 1) may be included.
  • the character recognition rate refers to a rate at which a specific character is recognized as a certain text in a character image. For example, it can be estimated by deep learning that there is a certain character from a distant image where an object with a character appears, but it is difficult to determine which character the character is because the remote image is small or the resolution is low. That is, the character recognition rate by OCR may be low.
  • the text image having the text recognition rate equal to or greater than a predetermined threshold value refers to an OCR-capable resolution.
  • the system of the present disclosure can control the zoom-in, zoom-out, and rotation of the photographing device 200 through the tracking controller 4400. have.
  • FIG. 11A in a composition including both the paper document 1110 and the person 1120, the rotation control 1160 of the photographing apparatus 200 to bring the paper document 1110 to the center of the image, and Zoom-in controls 1170 and 1180 are illustrated.
  • this embodiment of the boundary marker acquisition step S3546a includes the end marker determination step S3546a-2 for determining whether the acquired text image includes the end marker, and the acquired If the end marker is included in the text image, the text image is taken as the full text display image, and if the obtained text image does not include the end marker, the next marker of the last marker among the boundary markers displayed in the text image is searched for. to control the available resources by the tracking controller 4400 to obtain an additional text image, which is an image including the next marker and a text recognition rate equal to or greater than a predetermined threshold, and merge the additional text image into the text image, thereby ending the It includes a step (S3546a-3) of re-performing the marker determination step (S3546a-2).
  • the control of available resources in step S3546a-3 includes control of the gimbal 300, for example, control of the gimbal 300 for books in Korean and English is performed by the photographing device 200. It may be a control (eg, rotation control 1190 in FIG. 11B ) that assists in causing the character to scan from left to right of the region marked with the character and from top to bottom of the region.
  • control eg, rotation control 1190 in FIG. 11B
  • image merging may be performed using image patterns 1136a and 1136b overlapping with each other between two or more images captured temporally or spatially apart.
  • the OCR performing step (S3540a) of this embodiment is a partial image including the image of the object marked with the text, and includes both the start marker and the end marker.
  • the method may include obtaining text by performing OCR on the entire character display image (S3468a).
  • the OCR performing step (S3540b) starts with the step of extracting image samples from the object on which the character is displayed (S3542b), and , step (S3542b), followed by a step (S3544b) of defining a boundary line 1130 of an area in which characters are displayed from the image samples.
  • the OCR performing step (S3540b) is generated by acquiring at least one image pattern 1142a and 1142b not located on the boundary line among the image samples as a division marker and merging the text images using the division marker. and performing OCR on the entire character display image, which is an image to be used (S3546b).
  • the segmentation marker refers to image patterns 1142a and 1142b that overlap with each other between two or more images taken while being spaced apart temporally or spatially.
  • the OCR performing step ( S3540c ) includes the starting point of the entire character and the character recognition rate is equal to or greater than a predetermined threshold value. and controlling the available resources by the tracking controller 4400 to obtain the object image, that is, so that the object image has a predetermined resolution capable of OCR (S3542c).
  • performing OCR further includes performing OCR on the first sentence region 1152 of the obtained object image ( S3544c ).
  • the initial sentence region refers to a region occupied by a sentence detected as being arranged first when considering a general arrangement method of characters according to a language used in the sentence.
  • the first sentence section may be determined by scanning punctuation marks indicating the end point of a sentence, such as “,”, “.”, and “?”.
  • punctuation marks indicating the end point of a sentence, such as “,”, “.”, and “?”.
  • the first sentence section 1152 determines that the size of the character changes by more than a predetermined threshold when the size of the next character is sequentially compared from the size of the starting character. It may also be determined as the area occupied by the sentence consisting of the letters consecutive from the beginning of the previous letter.
  • the first sentence section 1152 determines the size of the letter space when sequentially comparing the size of the letters between the start character and the next letter from the size of the next letter. It may be determined as an area occupied by a sentence composed of consecutive characters from the start character until .
  • the semantic value of the first text is The method further includes a semantic value calculation step (S3546c) of calculating a semantic value, which is a numerical value.
  • step S3540c if the semantic value in step S3546c is greater than or equal to a predetermined threshold, the OCR is completed by taking the first text as the result text, and the semantic value is If it is less than the predetermined threshold, the method further includes performing OCR on the next sentence region 1154 of the first sentence region and re-performing the semantic value calculation step (S3546c) (S3548c).
  • OCR may be sequentially and repeatedly performed on new sentence sections including the following sentences existing after the punctuation mark of the first sentence section.
  • a computing device that processes an image obtained by photographing objects may grasp various information of objects detected in the image.
  • each step of the method of the present invention described above may be performed by the gimbal 300 having a built-in communication unit and a processor in addition to the portable terminal. It is apparent that this may be performed by supporting other computing devices interlocked with the computing device to perform the operation.
  • the method and apparatus of the present disclosure can recognize and track one or more objects using an image, and actively acquire information of objects and environments, throughout all embodiments and modifications thereof.
  • the hardware may include general purpose computers and/or dedicated computing devices or specific computing devices or special features or components of specific computing devices.
  • the processes may include one or more processors, eg, microprocessors, controllers, eg, microcontrollers, embedded microcontrollers, microcomputers, arithmetic logic units (ALUs), digital signal processors, with internal and/or external memory. , for example, by a programmable digital signal processor or other programmable device.
  • the processes may be implemented using an application specific integrated circuit (ASIC), a programmable gate array, such as a field programmable gate array (FPGA), a programmable logic unit (PLU) or programmable array logic. (Programmable Array Logic; PAL) or any other device capable of executing and responding to instructions, any other device or combination of devices that can be configured to process electronic signals.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • PLU programmable logic unit
  • PAL Programmable Array Logic
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
  • the software may comprise a computer program, code, instructions, or a combination of one or more of these, which configures the processing device to operate as desired or is independently or collectively processed You can command the device.
  • the software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device for interpretation by or providing instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave.
  • the software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more machine-readable recording media.
  • the objects of the technical solution of the present invention or parts contributing to the prior arts may be implemented in the form of program instructions that can be executed through various computer components and recorded in a machine-readable medium.
  • the machine-readable medium may include program instructions, data files, data structures, and the like, alone or in combination.
  • the program instructions recorded on the machine-readable recording medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the machine-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs, DVDs, and Blu-rays, and floppy disks.
  • magneto-optical media such as
  • hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • program instructions include any one of the devices described above, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or stored and compiled or interpreted for execution on a machine capable of executing any other program instructions.
  • machine code which may be created using a structured programming language such as C, an object-oriented programming language such as C++, or a high-level or low-level programming language This includes not only bytecode, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the methods and combinations of methods when the method and combinations thereof described above are performed by one or more computing devices, the methods and combinations of methods may be implemented as executable code for performing respective steps.
  • the method may be implemented as systems that perform the steps, the methods may be distributed in various ways across devices or all functions may be integrated into one dedicated, standalone device or other hardware.
  • the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such sequential combinations and combinations are intended to fall within the scope of this disclosure.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
  • the hardware device may include a processor such as an MPU, CPU, GPU, TPU coupled with a memory such as ROM/RAM for storing program instructions and configured to execute the instructions stored in the memory, an external device and a signal It may include a communication unit that can send and receive.
  • the hardware device may include a keyboard, a mouse, and other external input devices for receiving instructions written by developers.
  • the present disclosure may be used in a system for processing an image.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

An image processing method performed by a computing device including a processor according to several embodiments disclosed herein comprises the steps of: acquiring an image; acquiring, from the image, analysis information corresponding to an object included in the image, wherein the analysis information is acquired using an object analysis model; acquiring posture information about the object from the analysis information corresponding to the object by using a posture discrimination model; and acquiring behavioral information about the object from the posture information about the object by using a behavior discrimination model, the behavioral information including an N-dimensional movement vector corresponding to the object.

Description

컴퓨팅 장치와 연동하는 촬영 장치로부터 획득되는 영상을 처리하는 방법 및 이를 이용한 시스템A method for processing an image obtained from a photographing device interworking with a computing device and a system using the same
본 개시서에는 촬영 장치로부터 획득되는 영상을 처리하는 방법 및 이를 이용한 시스템이 개시된다. 구체적으로, 본 개시서의 방법에 의하면, 컴퓨팅 장치에 일체화되거나 상기 컴퓨팅 장치와 연동하는 촬영 장치로부터 그 컴퓨팅 장치가 전체 영상을 획득하며, 상기 전체 영상에 나타난 하나 이상의 객체를 검출하고, 검출된 상기 객체 각각의 카테고리를 산출하는 분류를 수행하며, 상기 객체 각각에 대한 분석 결과로서 상기 객체의 특성 및 상태를 포함하는 상세 분류 정보를 생성한다.The present disclosure discloses a method for processing an image obtained from a photographing device and a system using the same. Specifically, according to the method of the present disclosure, the computing device acquires the entire image from a photographing device integrated with the computing device or interoperates with the computing device, detects one or more objects appearing in the entire image, and the detected Classification is performed to calculate a category of each object, and detailed classification information including characteristics and state of the object is generated as a result of analysis of each object.
휴대 가능 컴퓨팅 장치(portable computing apparatus)는 일반적으로 프로세서, 디스플레이, 마이크로폰 및 스피커를 장착하고 있는 장치를 일컫는바, 그 중의 일부는 통신기기의 일종인 휴대 단말로 이용될 수 있다. 휴대 단말은 종래에 키패드, 터치 디스플레이 등 사용자의 접촉이 요구되는 입력 장치를 통하여 사용자의 명령을 입력받았으나, 음성 인식 기술 및 컴퓨터 비전(computer vision) 기술의 발달에 따라 마이크로폰 및 카메라 등의 입력 장치를 통하여 사용자의 명령을 원거리에서 수신하여 그 명령에 따라 상호작용할 수 있다.A portable computing apparatus generally refers to a device equipped with a processor, a display, a microphone, and a speaker, and some of them may be used as a portable terminal, which is a type of communication device. The mobile terminal has conventionally received a user's command through an input device that requires user contact, such as a keypad and a touch display. Through this, it is possible to receive a user's command from a distance and to interact according to the command.
그런데 휴대 가능 컴퓨팅 장치는 자체적인 이동력을 갖추지 못하고 있기 때문에 그 물리적 위치에 따라 입출력의 범위가 제한된다. However, since the portable computing device does not have its own mobility, the range of input/output is limited according to its physical location.
휴대 가능 컴퓨팅 장치에 탑재된 입력 장치의 물리적 제한의 일 예시로서, 비접촉 입력 장치인 카메라는 휴대폰의 전면 또는 후면에 장착되어 있고 제한된 화각(field of view)을 가지고 있어, 원하는 영상을 카메라에 담기 위하여 사용자가 손으로 파지한 후에 직접 구도(화각 또는 시야 범위, field of view; FOV)를 변경해야만 한다. 그러한 물리적 제한의 다른 예시로서, 휴대 가능 컴퓨팅 장치에 장착된 마이크로폰은 음원의 방향에 따라 수신 감도가 저하된다.As an example of the physical limitation of the input device mounted on the portable computing device, the camera, which is a non-contact input device, is mounted on the front or back of the mobile phone and has a limited field of view, so that the desired image can be captured in the camera. The user must manually change the composition (angle of view or field of view; FOV) after holding it by hand. As another example of such a physical limitation, the reception sensitivity of a microphone mounted on a portable computing device is lowered according to the direction of the sound source.
입력뿐만 아니라 출력도 물리적 위치에 따라 제한되는데, 그 일 예시로서, 출력 장치인 터치 디스플레이는 일반적으로 평면에 가까운 형상을 가진 채 휴대 단말의 6면 중 일부 면에 부착되어 있어, 사용자는 휴대폰을 파지한 후에 그 휴대 단말의 터치 디스플레이가 자신의 얼굴 방향을 향하도록 하여 그 휴대폰을 사용한다. 또 다른 예시로서, 3차원 형상의 획득을 위한 적외선 프로젝터는 그 적외선 광선의 조사 방향 및 각도가 휴대 단말의 일 방향 범위로 제한되어 마찬가지로 사용자가 휴대 단말을 파지한 후 안내에 따라 그 조사 방향을 조절하여야 한다. 또한, 이와 관련하여 대한민국 공개특허공보 제10-2011-0032244호, 제10-2019-0085464호, 제10-2019-0074011호, 제10-2019-0098091호, 제10-2019-0106943호, 제10-2018-0109499호가 안출되어 있다. 그리고, 이와 관련하여 (비특허문헌 1)Y. Zhou et al., "Learning to Reconstruct 3D Manhattan Wireframes From a Single Image," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 7697-7706, doi: 10.1109/ICCV.2019.00779., (비특허문헌 2)Shin, D., & Kim, I. (2018). Deep Image Understanding Using Multilayered Contexts. Mathematical Problems in Engineering, 2018, 1-11. https://doi.org/10.1155/2018/5847460, (비특허문헌 3) Mo, K., Zhu, S., Chang, A. X., Yi, L., Tripathi, S., Guibas, L. J., & Su, H. (2019). PartNet: A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr.2019.00100, (비특허문헌 4) Babaee, M., Li, L., & Rigoll, G. (2019). Person identification from partial gait cycle using fully convolutional neural networks. Neurocomputing, 338, 116-125., (비특허문헌 5) Muhammad, U. R., Svanera, M., Leonardi, R., & Benini, S. (2018). Hair detection, segmentation, and hairstyle classification in the wild. Image and Vision Computing, 71, 25-37. https://doi.org/10.1016/j.imavis.2018.02.001, (비특허문헌 6) Mougeot, G., Li, D., & Jia, S. (2019). A Deep Learning Approach for Dog Face Verification and Recognition. In PRICAI 2019: Trends in Artificial Intelligence (pp. 418-430). Springer International Publishing. https://doi.org/10.1007/978-3-030-29894-4_34, (비특허문헌 7) Raduly, Z., Sulyok, C., Vadaszi, Z., & Zolde, A. (2018). Dog Breed Identification Using Deep Learning. In 2018 IEEE 16th International Symposium on Intelligent Systems and Informatics (SISY). IEEE. https://doi.org/10.1109/sisy.2018.8524715, (비특허문헌 8) Wu, Z., Yao, T., Fu, Y., & Jiang, Y.-G. (2017). Deep learning for video classification and captioning. In Frontiers of Multimedia Research (pp. 3-29). ACM. https://doi.org/10.1145/3122865.3122867, (비특허문헌 9) Wu, C.-Y., Girshick, R., He, K., Feichtenhofer, C., & Krahenbuhl, P. (2020). A Multigrid Method for Efficiently Training Video Models. In 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr42600.2020.00023, (비특허문헌 10) Ullah, A., Ahmad, J., Muhammad, K., Sajjad, M., & Baik, S. W. (2018). Action Recognition in Video Sequences using Deep Bi-Directional LSTM With CNN Features. IEEE Access, 6, 1155-1166. https://doi.org/10.1109/access.2017.2778011이 안출되어 있다.Not only the input but also the output are limited according to the physical location. As an example, the touch display, which is an output device, is attached to some of the six surfaces of the mobile terminal with a shape close to a plane, so that the user can hold the mobile phone. After doing so, use the mobile phone with the touch display of the mobile terminal facing in the direction of one's face. As another example, in the infrared projector for obtaining a three-dimensional shape, the irradiation direction and angle of the infrared ray are limited to one direction range of the mobile terminal, so the user holds the mobile terminal and then adjusts the irradiation direction according to the guidance shall. In addition, in this regard, Korean Patent Laid-Open Publication Nos. 10-2011-0032244, 10-2019-0085464, 10-2019-0074011, 10-2019-0098091, 10-2019-0106943, No. No. 10-2018-0109499 has been devised. And, in this regard (Non-Patent Document 1) Y. Zhou et al., "Learning to Reconstruct 3D Manhattan Wireframes From a Single Image," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 7697-7706, doi: 10.1109/ICCV.2019.00779., (Non-Patent Document 2) Shin, D., & Kim, I. (2018). Deep Image Understanding Using Multilayered Contexts. Mathematical Problems in Engineering, 2018, 1-11. https://doi.org/10.1155/2018/5847460 , (Non-Patent Document 3) Mo, K., Zhu, S., Chang, AX, Yi, L., Tripathi, S., Guibas, LJ, & Su , H. (2019). PartNet: A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr.2019.00100 , (Non-Patent Document 4) Babaee, M., Li, L., & Rigoll, G. (2019). Person identification from partial gait cycle using fully convolutional neural networks. Neurocomputing, 338, 116-125., (Non-Patent Document 5) Muhammad, UR, Svanera, M., Leonardi, R., & Benini, S. (2018). Hair detection, segmentation, and hairstyle classification in the wild. Image and Vision Computing, 71, 25-37. https://doi.org/10.1016/j.imavis.2018.02.001 , (Non-Patent Document 6) Mougeot, G., Li, D., & Jia, S. (2019). A Deep Learning Approach for Dog Face Verification and Recognition. In PRICAI 2019: Trends in Artificial Intelligence (pp. 418-430). Springer International Publishing. https://doi.org/10.1007/978-3-030-29894-4_34 , (Non-Patent Document 7) Raduly, Z., Sulyok, C., Vadaszi, Z., & Zolde, A. (2018). Dog Breed Identification Using Deep Learning. In 2018 IEEE 16th International Symposium on Intelligent Systems and Informatics (SISY). IEEE. https://doi.org/10.1109/sisy.2018.8524715 , (Non-Patent Document 8) Wu, Z., Yao, T., Fu, Y., & Jiang, Y.-G. (2017). Deep learning for video classification and captioning. In Frontiers of Multimedia Research (pp. 3-29). ACM. https://doi.org/10.1145/3122865.3122867 , (Non-Patent Document 9) Wu, C.-Y., Girshick, R., He, K., Feichtenhofer, C., & Krahenbuhl, P. (2020). A Multigrid Method for Efficiently Training Video Models. In 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr42600.2020.00023 , (Non-Patent Document 10) Ullah, A., Ahmad, J., Muhammad, K., Sajjad, M., & Baik, SW (2018). Action Recognition in Video Sequences using Deep Bi-Directional LSTM With CNN Features. IEEE Access, 6, 1155-1166. https://doi.org/10.1109/access.2017.2778011 has been devised.
본 개시내용은 전술한 종래 기술의 휴대 가능 컴퓨팅 장치가 가진 한계점 가운데 영상의 입력에 관한 제한을 극복할 수 있는 일 방안을 제시하고자 하는 목적으로, 휴대 가능 컴퓨팅 장치와 연동하는 카메라 등의 영상 촬영 장치에 짐벌을 결합하고 그 컴퓨팅 장치가 그 짐벌을 제어하여 영상 촬영 장치를 1축 이상으로 회전하게 함으로써 보다 동적으로 영상을 입력받고 이를 처리할 수 있게 하는 기술적 방안을 제시하고자 한다.The present disclosure aims to suggest a method capable of overcoming the limitations regarding image input among the limitations of the aforementioned prior art portable computing devices, and is an image capturing device such as a camera interworking with the portable computing device. We intend to propose a technical method that allows the image capture device to more dynamically receive and process an image by combining the gimbal with the device and allowing the computing device to control the gimbal to rotate the image capturing device more than one axis.
본 개시서는 종래 기술의 문제점을 해결하여, 휴대 가능 컴퓨팅 장치에 있어서 카메라 등에 의한 촬영 영상에서 객체를 인식 및 추적하고, 그 객체 및 환경의 정보를 능동적으로 획득할 수 있으며, 특히, 영상을 기초로 본 개시서의 시스템을 중심으로 하는 좌표계에서의 객체의 상대적 위치 정보 및 공간의 정보를 파악하여 공간 내 객체의 위치를 확인하는 등 영상을 통한 원거리 입력이 가능하게 되는 영상 처리 방법을 제시하는 것을 그 목적으로 한다.The present disclosure solves the problems of the prior art, and in a portable computing device, it is possible to recognize and track an object in an image captured by a camera or the like, and to actively acquire information of the object and environment, in particular, based on the image Presenting an image processing method that enables remote input through an image, such as identifying the position of an object in space by identifying relative position information and space information of an object in the coordinate system centered on the system of the present disclosure The purpose.
전술한 과제를 해결하기 위한, 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는 영상을 처리하는 방법으로서, 상기 방법은: 영상을 획득하는 단계; 객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하는 단계; 자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하는 단계; 및 행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득하는 단계;를 포함할 수 있다.A method of processing an image performed by a computing device including a processor, the method comprising: acquiring an image; obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model; obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and obtaining, from the posture information on the object, the behavior information on the object, including an N-dimensional motion vector corresponding to the object, by using the behavior discrimination model.
대안적으로, 상기 분석 정보는, 상기 객체의 카테고리를 나타내는 분류 정보, 상기 객체의 위치를 나타내는 위치 정보 또는 상기 객체가 영상 내에서 가지는 우선순위를 나타내는 중요도 정보 중 적어도 하나를 포함할 수 있다.Alternatively, the analysis information may include at least one of classification information indicating the category of the object, location information indicating the location of the object, or importance information indicating the priority of the object in the image.
대안적으로, 상기 자세 판별 모델에서, 상기 객체에 대응되는 상기 분석 정보에 기초하여, 복수의 자세 판별 방식들 중 상기 객체에 적용될 자세 판별 방식이 결정될 수 있다.Alternatively, in the posture determination model, a posture determination method to be applied to the object among a plurality of posture determination methods may be determined based on the analysis information corresponding to the object.
대안적으로, 상기 자세 판별 모델은, 상기 객체의 카테고리를 나타내는 분류 정보에 따라서 자세의 판별 방식을 상이하게 적용할 수 있다.Alternatively, the posture determination model may apply a different posture determination method according to classification information indicating the category of the object.
대안적으로, 상기 자세 판별 모델은, 상기 분석 정보로부터, 상기 객체에 대응되는 N차원의 자세에 대한 정보를 포함하는, 상기 객체에 대한 자세 정보를 생성할 수 있다.Alternatively, the posture determination model may generate posture information about the object, including information about an N-dimensional posture corresponding to the object, from the analysis information.
대안적으로, 상기 객체에 대한 자세 정보는, 상기 객체에 대해서 시간적으로 연속된 자세에 대한 정보를 포함할 수 있다.Alternatively, the posture information on the object may include information on the temporally continuous posture with respect to the object.
대안적으로, 상기 이동 벡터는, 상기 객체의 2차원적 방향 또는 속도 중 적어도 하나를 포함하는 2차원 이동 벡터를 포함할 수 있다.Alternatively, the movement vector may include a two-dimensional movement vector including at least one of a two-dimensional direction or a velocity of the object.
대안적으로, 상기 이동 벡터는, 상기 영상을 촬영한 촬영 장치의 위치, 속도 또는 가속도 중 적어도 하나에 기초하여 산출되는 상기 객체의 3차원 이동 벡터를 포함할 수 있다.Alternatively, the movement vector may include a three-dimensional movement vector of the object calculated based on at least one of a position, a speed, and an acceleration of a photographing device that has captured the image.
대안적으로, 상기 행위 판별 모델은, 상기 객체의 자세 정보로부터, 상기 객체에 대응되는 N차원의 행위 분류를 포함하는, 객체의 맥락에 대한 상기 객체의 행위 정보를 생성할 수 있다.Alternatively, the behavior determination model may generate behavior information of the object with respect to the context of the object, including an N-dimensional behavior classification corresponding to the object, from the posture information of the object.
대안적으로, 상기 객체의 맥락은, 상기 객체의 상태 또는 행위의 목적 중 적어도 하나를 포함할 수 있다.Alternatively, the context of the object may include at least one of the object's state or purpose of action.
대안적으로, 상기 행위 분류는, 상기 객체에 포함된 부분 객체의 위치를 식별하고, 상기 부분 객체의 위치에 기초하여, 상기 객체의 자세를 결정하고, 그리고 상기 객체의 자세에 기초하여, 상기 객체의 행위 분류를 결정함으로써 산출될 수 있다.Alternatively, the behavior classification may include: identifying a position of a partial object included in the object, determining a posture of the object based on the position of the partial object, and determining a posture of the object based on the posture of the object; It can be calculated by determining the behavior classification of
대안적으로, 상기 부분 객체는, 상기 객체의 일부 또는 상기 객체의 귀속된 구성요소 중 적어도 하나를 포함할 수 있다.Alternatively, the partial object may include at least one of a part of the object or an attribute belonging to the object.
대안적으로, 제1항에 있어서, 상기 행위 판별 모델은, 상기 객체의 카테고리를 나타내는 분류 정보에 따라서 행위의 판별 방식을 상이하게 적용할 수 있다.Alternatively, the method of claim 1 , wherein the behavior discrimination model may apply a different behavior discrimination method according to classification information indicating the category of the object.
전술한 과제를 해결하기 위한, 컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치로 하여금 영상을 처리하기 위한 방법을 수행하도록 하며, 상기 방법은: 영상을 획득하는 단계; 객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하는 단계; 자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하는 단계; 및 행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득하는 단계;를 포함할 수 있다.A non-transitory computer readable medium including a computer program for solving the above problems, the computer program causing a computing device to perform a method for processing an image, the method comprising: acquiring an image; obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model; obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and obtaining, from the posture information on the object, the behavior information on the object, including an N-dimensional motion vector corresponding to the object, by using the behavior discrimination model.
전술한 과제를 해결하기 위한, 컴퓨팅 장치에 있어서, 프로세서; 및 통신부;를 포함하고, 상기 프로세서는, 영상을 획득하고, 객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하고, 자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하고, 그리고 행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득할 수 있다.In order to solve the above problems, a computing device, comprising: a processor; and a communication unit, wherein the processor obtains an image, uses an object analysis model, obtains analysis information corresponding to the object included in the image, from the image, and uses the posture determination model, wherein the Obtaining posture information about the object from the analysis information corresponding to the object, and using a behavior discrimination model, from the posture information on the object, including an N-dimensional motion vector corresponding to the object, the object behavior information can be obtained.
본 개시서의 예시적인 실시 예에 따르면, 영상을 이용하여 하나 이상의 객체를 인식 및 추적할 수 있고, 객체 및 환경의 정보를 능동적으로 획득할 수 있으며, 특히, 객체의 상태 정보를 원거리에서 영상으로 획득할 수 있고, 객체가 상호작용하는 객체를 영상으로 판별하고, 객체 일부분에 대한 더 높은 해상도의 상세 영상을 원거리에서 획득할 수 있으며, 객체에 인쇄되어 있거나 디스플레이 등의 타 수단을 이용하여 출력하는 문자를 원거리에서 파악할 수 있어 휴대 가능 컴퓨팅 장치의, 영상을 이용한 원거리 입력이 가능해지는 효과가 있다.According to an exemplary embodiment of the present disclosure, one or more objects can be recognized and tracked using an image, and information about objects and environments can be actively acquired, and in particular, state information of objects can be converted into images from a distance. It is possible to acquire, determine the object with which the object interacts as an image, obtain a higher resolution detailed image of a part of the object from a distance, and output it printed on the object or using other means such as a display. Since characters can be recognized from a distance, there is an effect that a remote input using an image of a portable computing device is possible.
본 발명의 실시 예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시 예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 사람(이하 "통상의 기술자"라 함)에게 있어서는 발명에 이르는 노력 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.The accompanying drawings for use in the description of the embodiments of the present invention are only a part of the embodiments of the present invention, and for a person of ordinary skill in the art to which the present invention belongs (hereinafter referred to as "a person skilled in the art") Other drawings may be obtained based on these drawings without an effort leading to the invention.
도 1은 본 개시서의 일 실시 예에 따라 컴퓨팅 장치에 의하여 영상을 처리하는 방법(이하 "영상 처리 방법"이라 함)을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.1 is a conceptual diagram schematically illustrating an exemplary configuration of a computing device performing a method of processing an image (hereinafter referred to as an “image processing method”) by a computing device according to an embodiment of the present disclosure.
도 2는 본 개시서의 일 실시 예에 따른 영상 처리 방법을 수행하는 시스템으로서, 컴퓨팅 장치, 촬영 장치 및 짐벌을 포함하는 전체 하드웨어 및 소프트웨어 아키텍처를 예시적으로 도시한 개념도이다.FIG. 2 is a conceptual diagram exemplarily illustrating an overall hardware and software architecture including a computing device, a photographing device, and a gimbal as a system for performing an image processing method according to an embodiment of the present disclosure.
도 3은 본 개시서의 일 실시 예에 따른 영상 처리 방법을 예시적으로 나타낸 흐름도이며, 도 4는 본 개시서의 일 실시 예에 따른 영상 처리 방법의 각 단계를 수행하는 모듈들을 예시적으로 도시한 블록도이다.3 is a flowchart exemplarily illustrating an image processing method according to an embodiment of the present disclosure, and FIG. 4 exemplarily shows modules performing each step of the image processing method according to an embodiment of the present disclosure. It is a block diagram.
도 5는 본 개시서의 일 실시 예에 따른 영상 처리 방법을 위한 모듈들에서 이용되는 기계 학습 모델들을 예시적으로 도시한 블록도이다.5 is a block diagram exemplarily illustrating machine learning models used in modules for an image processing method according to an embodiment of the present disclosure.
도 6a 내지 도 6d는 본 개시서의 영상 처리 방법에서 객체의 바닥 평면을 검출하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.6A to 6D are flowcharts exemplarily illustrating methods that may be used to detect a floor plane of an object in the image processing method of the present disclosure.
도 7a은 본 개시서의 일 실시 예에 따른 영상 처리 방법에 의하여 획득되는 객체 세그먼테이션을 예시적으로 나타낸 도면이다.7A is a diagram exemplarily illustrating object segmentation obtained by an image processing method according to an embodiment of the present disclosure.
도 7b는 본 개시서의 일 실시 예에 따른 영상 처리 방법에 있어서 2개 이상의 바닥 평면을 검출하는 단계들을 설명하기 위한 예시적 도면이다.7B is an exemplary diagram for explaining steps of detecting two or more floor planes in an image processing method according to an embodiment of the present disclosure.
도 7c는 본 개시서의 일 실시 예에 다른 영상 처리 방법에 있어서 기준 평면원 및 계측 평면원을 생성하여 이용하는 방식을 설명하기 위한 개념도이다.7C is a conceptual diagram for explaining a method of generating and using a reference plane circle and a measurement plane circle in an image processing method according to an embodiment of the present disclosure;
도 8a 내지 도 8c는 본 개시서의 영상 처리 방법에서 목표 위치를 결정하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.8A to 8C are flowcharts exemplarily illustrating methods that may be used to determine a target position in the image processing method of the present disclosure.
도 9a 및 도 9b는 본 개시서의 영상 처리 방법에서 촬영 장치의 배향을 제어하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.9A and 9B are flowcharts exemplarily illustrating methods that may be used to control the orientation of a photographing apparatus in the image processing method of the present disclosure.
도 10a 내지 도 10c는 본 개시서의 영상 처리 방법에서의 OCR을 수행하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.10A to 10C are flowcharts exemplarily illustrating methods that may be used to perform OCR in the image processing method of the present disclosure.
도 11a 내지 도 11d는 본 개시서의 영상 처리 방법에서 OCR을 수행하는 방식들을 설명하기 위하여 예시된 도면들이다.11A to 11D are diagrams exemplified to describe methods of performing OCR in the image processing method of the present disclosure.
본 개시서에서 인용된 모든 선행문헌들은 마치 본 개시서에 다 제시된 것처럼 그 전체가 참조로써 통합된다. 달리 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.All prior publications cited in this disclosure are incorporated by reference in their entirety as if they were all set forth in this disclosure. Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The following detailed description of the present invention refers to the accompanying drawings, which show by way of illustration a specific embodiment in which the present invention may be practiced, in order to clarify the objects, technical solutions and advantages of the present invention. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. In the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted.
실시 예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시 예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be changed and implemented in various forms. Accordingly, the embodiments are not limited to a specific disclosure form, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical spirit.
"제1" 또는 "제2" 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 하는바, 어떠한 순서도 시사하고 있지 않기 때문이다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as "first" or "second" may be used to describe various elements, these terms should be interpreted only for the purpose of distinguishing one element from another, and no order is implied. because it doesn't For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being “connected” to another component, it may be directly connected or connected to the other component, but it should be understood that another component may exist in between.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features, number, step , it should be understood that it does not preclude the possibility of the existence or addition of , operation, components, parts or combinations thereof.
또한 어떤 대상의 "부분" 또는 "일부분"은 그 대상의 전체가 아닌 일부만을 의미하는 것일 수도 있지만, 그 문맥에서 달리 명시되지 않는 한 그 대상의 전체도 포함하는 것으로 이해되어야 한다. 어떤 집합의 부분집합은 그 집합 자체를 포함하는 개념인 것과 마찬가지이다.Also, "part" or "portion" of an object may mean only a part, but not all, of the object, but should be understood to include the whole of the object unless the context dictates otherwise. A subset of a set is the same as a concept that includes the set itself.
본 개시서에서 '모듈'은 본 개시서에서 설명되는 각 명칭에 따른 기능 및 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능 및 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능 및 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 기록 매체를 의미할 수도 있다. 달리 말하자면, 모듈은 본 개시서의 기술적 사상을 수행하기 위한 하드웨어 및/또는 그 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In the present disclosure, a 'module' may mean hardware capable of performing functions and operations according to each name described in the present disclosure, or may mean computer program code capable of performing specific functions and operations, , or may refer to a recording medium on which a computer program code capable of performing a specific function and operation is loaded. In other words, a module may mean a functional and/or structural combination of hardware for carrying out the spirit of the present disclosure and/or software for driving the hardware.
엄밀하게, '모델'은 기계 학습(machine learning)에 의하여 훈련된 대로 입력 데이터로부터 출력 데이터를 산출하도록 구성된 함수를 지칭한다. 그러한 '모델'은 일종의 자료 구조 또는 함수로서 전술한 '모듈'에 의하여 이용될 수 있다.Strictly speaking, a 'model' refers to a function configured to produce output data from input data as trained by machine learning. Such a 'model' may be used by the aforementioned 'module' as a kind of data structure or function.
다만, 인공지능이 적용되는 분야에 속한 통상의 기술자들 중 일부에게서 '모듈'과 '모델'을 서로 혼용하는 습관이 발견되는바, 이에 따라 본 개시서에서도 '모듈'과 '모델'이 서로 교환 가능하도록 혼용될 수 있는데, 이는 이들이 서로 간의 개념 혼동 없이 통상의 기술자에게 쉽게 이해될 수 있기 때문이다.However, a habit of mixing 'module' and 'model' is found in some of ordinary engineers in the field to which artificial intelligence is applied. Accordingly, in this disclosure, 'module' and 'model' are interchanged with each other. They may be used interchangeably as possible, since they can be easily understood by those skilled in the art without confusing concepts with each other.
본 개시서에서 '훈련(training)', '학습(learning)'은 절차에 따른 컴퓨팅(computing)을 통하여 기계 학습을 수행함을 일컫는 용어인바, 인간의 교육 활동과 같은 정신적 작용을 지칭하도록 의도된 것이 아님을 통상의 기술자는 이해할 수 있을 것이다. 통계학 분야에서 일반적으로 이용되는 의미와 같이 '기계 학습'이라는 용어는 입력 변수들(X)을 출력 변수(Y)에 잘 사상(mapping)시키는 표적 함수(target function)(f)를 만드는 일련의 과정을 지칭하는 데 흔히 이용된다. 표적 함수에 의하여 입력 변수들로부터 출력 변수를 산출하는 것을 '예측(predict)'이라고 지칭하는바, '잘 사상시킨다'는 것은 참값과 예측값의 차이를 합리적으로 줄였다는 의미이다. 단지 그 차이를 최소화하는 것이 아니라 합리적으로 줄이는 이유는 최적화는 이른바 과적합(overfitting) 문제, 즉, 훈련 데이터에서 벗어난 실제 데이터를 적용할 때 예측이 잘 안 맞는 문제를 야기할 우려가 있어 이를 해소하기 위한 적절한 경험적 수단이 강구되기 때문이다.In this disclosure, 'training' and 'learning' are terms that refer to performing machine learning through procedural computing, and are intended to refer to mental actions such as human educational activities. It will be understood by those skilled in the art that this is not the case. As is commonly used in the field of statistics, the term 'machine learning' refers to a series of processes that create a target function (f) that maps input variables (X) to output variables (Y). It is often used to refer to Calculating the output variables from the input variables by the target function is referred to as 'prediction', and 'mapped well' means that the difference between the true value and the predicted value is reasonably reduced. The reason for rationally reducing the difference rather than minimizing the difference is that optimization may cause the so-called overfitting problem, that is, a problem of poor prediction when applying real data that deviate from the training data. This is because appropriate empirical means are devised for
또한, 본 개시서에서 '추론(inference)'은 기계 학습된 모델에 의하여 입력 데이터로부터 출력 데이터를 산출하는 과정을 일컫는 용어인바, 특히 인간의 정신적 작용을 기계적으로 흉내낸 것을 지칭하는 데 이용된다. 마찬가지로, 본 개시서에서 기계에 의한 '해석(analysis)'은 추론과 마찬가지로 인간의 정신적 작용을 기계적으로 흉내낸 것을 지칭하는 데 이용된다.Also, in the present disclosure, 'inference' is a term referring to a process of calculating output data from input data by a machine-learning model, and in particular, it is used to refer to a mechanical imitation of a human mental action. Similarly, in the present disclosure, 'analysis' by a machine is used to refer to a mechanical imitation of a human's mental action, such as reasoning.
본 개시서에서 '맨하탄 공간'은 비특허문헌인 논문 Y. Zhou et al., "Learning to Reconstruct 3D Manhattan Wireframes From a Single Image," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 7697-7706, doi: 10.1109/ICCV.2019.00779.에 개시된 것과 동일한 것을 지칭하는 데 이용된다.In this disclosure, 'Manhattan space' is a non-patent literature paper Y. Zhou et al., "Learning to Reconstruct 3D Manhattan Wireframes From a Single Image," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 7697-7706, doi: 10.1109/ICCV.2019.00779.
더욱이 본 발명은 본 개시서에 표시된 실시 예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. Moreover, the present invention encompasses all possible combinations of embodiments indicated in the present disclosure. It should be understood that various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in relation to one embodiment. In addition, it should be understood that the position or arrangement of individual components in each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description set forth below is not intended to be taken in a limiting sense. Like reference numerals in the drawings refer to the same or similar functions throughout the various aspects.
본 명세서에서 달리 표시되거나 분명히 문맥에 모순되지 않는 한, 단수로 지칭된 항목은, 그 문맥에서 달리 요구되지 않는 한, 복수의 것을 아우른다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Unless otherwise indicated herein or otherwise clearly contradicted by context, items referred to in the singular encompass the plural unless the context requires otherwise. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
이하, 통상의 기술자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, in order to enable those skilled in the art to easily practice the present invention, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 개시서의 일 실시 예에 따른 영상 처리 방법을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.1 is a conceptual diagram schematically illustrating an exemplary configuration of a computing device performing an image processing method according to an embodiment of the present disclosure.
도 1을 참조하면, 본 개시서의 일 실시 예에 따른 컴퓨팅 장치(100)는, 통신부(110) 및 프로세서(120)를 포함하며, 상기 통신부(110)를 통하여 외부 컴퓨팅 장치(미도시)와 직간접적으로 통신할 수 있다.Referring to FIG. 1 , a computing device 100 according to an embodiment of the present disclosure includes a communication unit 110 and a processor 120 , and may communicate with an external computing device (not shown) through the communication unit 110 . can communicate directly or indirectly.
구체적으로, 상기 컴퓨팅 장치(100)는, 전형적인 컴퓨터 하드웨어(예컨대, 컴퓨터; 프로세서, 메모리, 스토리지(storage), 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS; network-attached storage) 및 스토리지 영역 네트워크(SAN; storage area network)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 명령어들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다. 상기 스토리지는 하드 디스크, USB(Universal Serial Bus) 메모리와 같은 기억 장치뿐만 아니라 클라우드 서버와 같은 네트워크 연결 기반의 저장 장치의 형태를 포함할 수 있다. 여기에서, 메모리는 DDR2, DDR3, DDR4, SDP, DDP, QDP, 자기 하드 디스크, 플래시 메모리 등일 수 있으나 이에 한정되지 않는다.Specifically, the computing device 100 includes typical computer hardware (eg, a computer; a device that may include a processor, memory, storage, input and output devices, and other components of a conventional computing device; a router; , electronic communication devices such as switches, etc.; electronic information storage systems such as network-attached storage (NAS) and storage area networks (SAN)) and computer software (ie, enabling the computing device to perform a specific method to achieve the desired system performance using a combination of instructions that make it function as The storage may include a storage device such as a hard disk and a Universal Serial Bus (USB) memory, as well as a storage device based on a network connection such as a cloud server. Here, the memory may be DDR2, DDR3, DDR4, SDP, DDP, QDP, magnetic hard disk, flash memory, etc., but is not limited thereto.
이와 같은 컴퓨팅 장치의 통신부(110)는 연동되는 타 컴퓨팅 장치, 예컨대 휴대 단말 등과의 사이에서 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP(Transmission Control Protocol) 세션(session)에 의하여 이루어질 수 있지만, 이에 한정되지는 않는 바, 예컨대 UDP(User Datagram Protocol) 데이터그램(datagram)으로서 송수신될 수도 있을 것이다.The communication unit 110 of such a computing device may transmit/receive a request and a response between an interworking other computing device, for example, a mobile terminal, etc. As an example, such a request and a response are the same Transmission Control Protocol (TCP) session ( session), but is not limited thereto, and may be transmitted and received as, for example, User Datagram Protocol (UDP) datagrams.
구체적으로, 통신부(110)는 통신 인터페이스를 포함하는 통신 모듈의 형태로 구현될 수 있다. 이를테면, 통신 인터페이스는 WLAN(Wireless LAN), WiFi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMax(World interoperability for Microwave access), HSDPA(High Speed Downlink Packet Access), 4G, 5G 등의 무선 인터넷 인터페이스와 블루투스(Bluetooth™), RFID(Radio Frequency IDentification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra-WideBand), ZigBee, NFC(Near Field Communication) 등의 근거리 통신 인터페이스를 포함할 수 있다. 뿐만 아니라, 통신 인터페이스는 외부와 통신을 수행할 수 있는 모든 인터페이스(예를 들어, 유선 인터페이스)를 나타낼 수 있다.Specifically, the communication unit 110 may be implemented in the form of a communication module including a communication interface. For example, the communication interface is WLAN (Wireless LAN), WiFi (Wireless Fidelity) Direct, DLNA (Digital Living Network Alliance), WiBro (Wireless Broadband), WiMax (World interoperability for Microwave access), HSDPA (High Speed Downlink Packet Access), Wireless Internet interfaces such as 4G and 5G and short-distance such as Bluetooth™, RFID (Radio Frequency IDentification), Infrared Data Association (IrDA), UWB (Ultra-WideBand), ZigBee, NFC (Near Field Communication), etc. It may include a communication interface. In addition, the communication interface may represent any interface (eg, a wired interface) capable of performing communication with the outside.
예를 들어, 통신부(110)는 이와 같이 적합한 통신 인터페이스를 통해 타 컴퓨팅 장치로부터 데이터를 송수신할 수 있다. 덧붙여, 넓은 의미에서 상기 통신부(110)는 명령어 또는 지시 등을 전달받기 위한 키보드, 마우스, 터치 센서, 터치 스크린의 입력부, 마이크로폰, 비디오 카메라, 또는 LIDAR, 레이더, 스위치, 버튼, 조이스틱 등의 외부 입력 장치, 사운드 카드, 그래픽 카드, 인쇄 장치, 디스플레이, 예컨대, 터치 스크린의 디스플레이부 등의 외부 출력 장치를 포함하거나 이들과 연동될 수 있다. 컴퓨팅 장치, 예컨대 휴대 단말의 사용자에게 적절한 사용자 인터페이스를 표시하여 제공함으로써 사용자와의 상호작용을 가능하게 하기 위하여, 컴퓨팅 장치(100)는 디스플레이 장치를 내장하거나 상기 통신부(110)를 통하여 외부의 디스플레이 장치와 연동될 수 있음이 알려져 있다. 예컨대, 그러한 디스플레이 장치는 터치 입력이 가능한 터치스크린일 수 있다. 터치스크린은 용량성으로나 유도성으로 또는 광학적으로 디스플레이에 접촉 또는 근접하는 손가락, 스타일러스 펜과 같은 물체를 검출할 수 있고, 그 검출된 디스플레이 상의 위치를 결정할 수 있다.For example, the communication unit 110 may transmit/receive data to and from other computing devices through an appropriate communication interface as described above. In addition, in a broad sense, the communication unit 110 includes a keyboard, a mouse, a touch sensor, an input unit of a touch screen, a microphone, a video camera, or an external input such as a LIDAR, a radar, a switch, a button, a joystick, etc. for receiving commands or instructions. An external output device such as a device, a sound card, a graphic card, a printing device, a display, for example, a display unit of a touch screen, or the like may be interlocked with these devices. In order to enable interaction with a user by displaying and providing an appropriate user interface to a user of a computing device, for example, a portable terminal, the computing device 100 has a built-in display device or an external display device through the communication unit 110 . It is known that it can be linked with For example, such a display device may be a touch screen capable of a touch input. A touchscreen may detect an object, such as a finger, a stylus pen, in contact with or proximity to a display, capacitively or inductively or optically, and determine a position on the detected display.
상기 입력 장치에는 마이크로폰이 포함될 수도 있다. 마이크로폰의 종류에는 다이나믹 마이크, 콘덴서 마이크 등이 포함될 수 있고, 전지향성, 단일 지향성, 초지향성 등의 특성을 가진 마이크가 이용될 수 있다. 빔포밍 마이크로폰, 마이크로폰 어레이도 이용될 수 있으나 이에 한정되지 않는다. 마이크로폰 어레이는 음원의 방향을 검출하기 위하여 이용되는 2개 이상의 마이크로폰들을 지칭한다.The input device may include a microphone. The type of the microphone may include a dynamic microphone, a condenser microphone, and the like, and a microphone having characteristics such as omni-directional, unidirectional, and super-directional may be used. A beamforming microphone and a microphone array may also be used, but are not limited thereto. A microphone array refers to two or more microphones used to detect the direction of a sound source.
상기 출력 장치에는 스피커가 포함될 수도 있다. 스피커의 종류에는 무지향성 스피커, 지향성 스피커, 초음파를 이용한 초지향성 스피커 등이 이용될 수 있으나 이에 한정되지 않는다.The output device may include a speaker. The type of speaker may include, but is not limited to, an omni-directional speaker, a directional speaker, and a super-directional speaker using ultrasonic waves.
또한, 컴퓨팅 장치의 프로세서(120)는 MPU(micro processing unit), CPU(central processing unit), GPU(graphics processing unit), NPU(neural processing unit), ASIC, CISC, RISC, FPGA, SOC 칩 또는 TPU(tensor processing unit), 캐시 메모리(cache memory), 데이터 버스(data bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다. 본 개시의 일 실시예에 따라 프로세서(120)는 다양한 모델들의 신경망의 학습을 위한 연산을 수행할 수 있다. 프로세서(120)는 딥러닝(DL: deep learning)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피처 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다. 프로세서(110)의 CPU, 범용 그래픽 처리 장치(GPGPU: general purpose graphics processing unit), 또는/및 TPU 중 적어도 하나가 네트워크 함수의 학습을 처리할 수 있다. 예를 들어, CPU 와 GPGPU가 함께 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에서 복수의 컴퓨팅 장치의 프로세서를 함께 사용하여 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에 따른 컴퓨팅 장치(100)에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.In addition, the processor 120 of the computing device is a micro processing unit (MPU), central processing unit (CPU), graphics processing unit (GPU), neural processing unit (NPU), ASIC, CISC, RISC, FPGA, SOC chip or TPU. It may include a hardware configuration such as a tensor processing unit, a cache memory, and a data bus. In addition, it may further include an operating system, a software configuration of an application for performing a specific purpose. According to an embodiment of the present disclosure, the processor 120 may perform an operation for learning a neural network of various models. The processor 120 for learning of the neural network, such as processing input data for learning in deep learning (DL), extracting features from the input data, calculating an error, updating the weight of the neural network using backpropagation calculations can be performed. At least one of a CPU of the processor 110 , a general purpose graphics processing unit (GPGPU), and/or a TPU may process learning of a network function. For example, the CPU and the GPGPU can process learning of a network function and data classification using the network function. Also, in an embodiment of the present disclosure, learning of a network function and data classification using the network function may be processed by using the processors of a plurality of computing devices together. In addition, the computer program executed in the computing device 100 according to an embodiment of the present disclosure may be a CPU, GPGPU, or TPU executable program.
본 명세서에 걸쳐, 연산 모델, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다. 신경망들을 구성하는 노드(또는 뉴런)들은 하나 이상의 링크에 의해 상호 연결될 수 있다.Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. A neural network may be composed of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons. A neural network is configured to include at least one or more nodes. Nodes (or neurons) constituting the neural networks may be interconnected by one or more links.
신경망 내에서, 링크를 통해 연결된 하나 이상의 노드들은 상대적으로 입력 노드 및 출력 노드의 관계를 형성할 수 있다. 입력 노드 및 출력 노드의 개념은 상대적인 것으로서, 하나의 노드에 대하여 출력 노드 관계에 있는 임의의 노드는 다른 노드와의 관계에서 입력 노드 관계에 있을 수 있으며, 그 역도 성립할 수 있다. 상술한 바와 같이, 입력 노드 대 출력 노드 관계는 링크를 중심으로 생성될 수 있다. 하나의 입력 노드에 하나 이상의 출력 노드가 링크를 통해 연결될 수 있으며, 그 역도 성립할 수 있다. In the neural network, one or more nodes connected through a link may relatively form a relationship between an input node and an output node. The concepts of an input node and an output node are relative, and any node in an output node relationship with respect to one node may be in an input node relationship in a relationship with another node, and vice versa. As described above, an input node-to-output node relationship may be created around a link. One or more output nodes may be connected to one input node through a link, and vice versa.
하나의 링크를 통해 연결된 입력 노드 및 출력 노드 관계에서, 출력 노드의 데이터는 입력 노드에 입력된 데이터에 기초하여 그 값이 결정될 수 있다. 여기서 입력 노드와 출력 노드를 상호 연결하는 링크는 가중치(weight)를 가질 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드 값을 결정할 수 있다.In the relationship between the input node and the output node connected through one link, the value of the data of the output node may be determined based on data input to the input node. Here, a link interconnecting the input node and the output node may have a weight. The weight may be variable, and may be changed by the user or algorithm in order for the neural network to perform a desired function. For example, when one or more input nodes are interconnected to one output node by respective links, the output node sets values input to input nodes connected to the output node and links corresponding to the respective input nodes. An output node value may be determined based on the weight.
상술한 바와 같이, 신경망은 하나 이상의 노드들이 하나 이상의 링크를 통해 상호 연결되어 신경망 내에서 입력 노드 및 출력 노드 관계를 형성한다. 신경망 내에서 노드들과 링크들의 개수 및 노드들과 링크들 사이의 연관관계, 링크들 각각에 부여된 가중치의 값에 따라, 신경망의 특성이 결정될 수 있다. 예를 들어, 동일한 개수의 노드 및 링크들이 존재하고, 링크들의 가중치 값이 상이한 두 신경망이 존재하는 경우, 두 개의 신경망들은 서로 상이한 것으로 인식될 수 있다.As described above, in a neural network, one or more nodes are interconnected through one or more links to form an input node and an output node relationship in the neural network. The characteristics of the neural network may be determined according to the number of nodes and links in the neural network, the correlation between the nodes and the links, and the value of a weight assigned to each of the links. For example, when the same number of nodes and links exist and there are two neural networks having different weight values of the links, the two neural networks may be recognized as different from each other.
신경망은 하나 이상의 노드들의 집합으로 구성될 수 있다. 신경망을 구성하는 노드들의 부분 집합은 레이어(layer)를 구성할 수 있다. 신경망을 구성하는 노드들 중 일부는, 최초 입력 노드로부터의 거리들에 기초하여, 하나의 레이어(layer)를 구성할 수 있다. 예를 들어, 최초 입력 노드로부터 거리가 n인 노드들의 집합은, n 레이어를 구성할 수 있다. 최초 입력 노드로부터 거리는, 최초 입력 노드로부터 해당 노드까지 도달하기 위해 거쳐야 하는 링크들의 최소 개수에 의해 정의될 수 있다. 그러나, 이러한 레이어의 정의는 설명을 위한 임의적인 것으로서, 신경망 내에서 레이어의 차수는 상술한 것과 상이한 방법으로 정의될 수 있다. 예를 들어, 노드들의 레이어는 최종 출력 노드로부터 거리에 의해 정의될 수도 있다.A neural network may consist of a set of one or more nodes. A subset of nodes constituting the neural network may constitute a layer. Some of the nodes constituting the neural network may configure one layer based on distances from the initial input node. For example, a set of nodes having a distance n from the initial input node may constitute n layers. The distance from the initial input node may be defined by the minimum number of links that must be traversed to reach the corresponding node from the initial input node. However, the definition of such a layer is arbitrary for description, and the order of the layer in the neural network may be defined in a different way from the above. For example, a layer of nodes may be defined by a distance from the final output node.
최초 입력 노드는 신경망 내의 노드들 중 다른 노드들과의 관계에서 링크를 거치지 않고 데이터가 직접 입력되는 하나 이상의 노드들을 의미할 수 있다. 또는, 신경망 네트워크 내에서, 링크를 기준으로 한 노드 간의 관계에 있어서, 링크로 연결된 다른 입력 노드들을 가지지 않는 노드들을 의미할 수 있다. 이와 유사하게, 최종 출력 노드는 신경망 내의 노드들 중 다른 노드들과의 관계에서, 출력 노드를 가지지 않는 하나 이상의 노드들을 의미할 수 있다. 또한, 히든 노드는 최초 입력 노드 및 최후 출력 노드가 아닌 신경망을 구성하는 노드들을 의미할 수 있다. The initial input node may mean one or more nodes to which data is directly input without going through a link in a relationship with other nodes among nodes in the neural network. Alternatively, in a relationship between nodes based on a link in a neural network, it may mean nodes that do not have other input nodes connected by a link. Similarly, the final output node may refer to one or more nodes that do not have an output node in relation to other nodes among nodes in the neural network. In addition, the hidden node may mean nodes constituting the neural network other than the first input node and the last output node.
본 개시의 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수와 동일할 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 감소하다가 다시 증가하는 형태의 신경망일 수 있다. 또한, 본 개시의 다른 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수 보다 적을 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 감소하는 형태의 신경망일 수 있다. 또한, 본 개시의 또 다른 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수보다 많을 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 증가하는 형태의 신경망일 수 있다. 본 개시의 또 다른 일 실시예에 따른 신경망은 상술한 신경망들의 조합된 형태의 신경망일 수 있다.The neural network according to an embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be the same as the number of nodes in the output layer, and the number of nodes decreases and then increases again as the input layer progresses to the hidden layer. can In addition, the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be less than the number of nodes in the output layer, and the number of nodes decreases as the number of nodes progresses from the input layer to the hidden layer. have. In addition, the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be greater than the number of nodes in the output layer, and the number of nodes increases as the number of nodes progresses from the input layer to the hidden layer. can The neural network according to another embodiment of the present disclosure may be a neural network in a combined form of the aforementioned neural networks.
딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 신경망을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크(CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 오토 인코더(auto encoder), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크, 적대적 생성 네트워크(GAN: Generative Adversarial Network) 등을 포함할 수 있다. 전술한 딥 뉴럴 네트워크의 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. A deep neural network (DNN) may refer to 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 the latent structures of data. In other words, it can identify the potential structure of photos, texts, videos, voices, and music (e.g., what objects are in the photos, what the text and emotions are, what the texts and emotions are, etc.) . Deep neural networks are a convolutional neural network (CNN), a recurrent neural network (RNN), an auto encoder, a restricted boltzmann machine (RBM), and a deep trust network ( DBN: deep belief network), Q network, U network, Siamese network, and may include a generative adversarial network (GAN: Generative Adversarial Network), and the like. The description of the deep neural network described above is only an example, and the present disclosure is not limited thereto.
뉴럴 네트워크는 교사 학습(supervised learning), 비교사 학습(unsupervised learning), 반교사학습(semi supervised learning), 또는 강화학습(reinforcement learning) 중 적어도 하나의 방식으로 학습될 수 있다. 뉴럴 네트워크의 학습은 뉴럴 네트워크가 특정한 동작을 수행하기 위한 지식을 뉴럴 네트워크에 적용하는 과정일 수 있다. The neural network may be trained using at least one of supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning. Learning of the neural network may be a process of applying knowledge for the neural network to perform a specific operation to the neural network.
뉴럴 네트워크는 출력의 오류를 최소화하는 방향으로 학습될 수 있다. 뉴럴 네트워크의 학습에서 반복적으로 학습 데이터를 뉴럴 네트워크에 입력시키고 학습 데이터에 대한 뉴럴 네트워크의 출력과 타겟의 에러를 계산하고, 에러를 줄이기 위한 방향으로 뉴럴 네트워크의 에러를 뉴럴 네트워크의 출력 레이어에서부터 입력 레이어 방향으로 역전파(backpropagation)하여 뉴럴 네트워크의 각 노드의 가중치를 업데이트 하는 과정이다. 교사 학습의 경우 각각의 학습 데이터에 정답이 라벨링되어있는 학습 데이터를 사용하며(즉, 라벨링된 학습 데이터), 비교사 학습의 경우는 각각의 학습 데이터에 정답이 라벨링되어 있지 않을 수 있다. 즉, 예를 들어 데이터 분류에 관한 교사 학습의 경우의 학습 데이터는 학습 데이터 각각에 카테고리가 라벨링 된 데이터 일 수 있다. 라벨링된 학습 데이터가 뉴럴 네트워크에 입력되고, 뉴럴 네트워크의 출력(카테고리)과 학습 데이터의 라벨을 비교함으로써 오류(error)가 계산될 수 있다. 다른 예로, 데이터 분류에 관한 비교사 학습의 경우 입력인 학습 데이터가 뉴럴 네트워크 출력과 비교됨으로써 오류가 계산될 수 있다. 계산된 오류는 뉴럴 네트워크에서 역방향(즉, 출력 레이어에서 입력 레이어 방향)으로 역전파 되며, 역전파에 따라 뉴럴 네트워크의 각 레이어의 각 노드들의 연결 가중치가 업데이트 될 수 있다. 업데이트 되는 각 노드의 연결 가중치는 학습률(learning rate)에 따라 변화량이 결정될 수 있다. 입력 데이터에 대한 뉴럴 네트워크의 계산과 에러의 역전파는 학습 사이클(epoch)을 구성할 수 있다. 학습률은 뉴럴 네트워크의 학습 사이클의 반복 횟수에 따라 상이하게 적용될 수 있다. 예를 들어, 뉴럴 네트워크의 학습 초기에는 높은 학습률을 사용하여 뉴럴 네트워크가 빠르게 일정 수준의 성능을 확보하도록 하여 효율성을 높이고, 학습 후기에는 낮은 학습률을 사용하여 정확도를 높일 수 있다.A neural network can be trained in a way that minimizes output errors. In the training of a neural network, iteratively input the training data into the neural network, calculate the output of the neural network and the target error for the training data, and calculate the error of the neural network from the output layer of the neural network to the input layer in the direction to reduce the error. It is the process of updating the weight of each node of the neural network by backpropagation in the direction. In the case of teacher learning, learning data in which the correct answer is labeled in each learning data is used (ie, labeled learning data), and in the case of comparative learning, the correct answer may not be labeled in each learning data. That is, for example, the learning data in the case of teacher learning regarding data classification may be data in which categories are labeled for each of the learning data. Labeled training data is input to the neural network, and an error can be calculated by comparing the output (category) of the neural network with the label of the training data. As another example, in the case of comparison learning about data classification, an error may be calculated by comparing the input training data with the output of the neural network. The calculated error is back propagated in the reverse direction (ie, from the output layer to the input layer) in the neural network, and the connection weight of each node of each layer of the neural network may be updated according to the back propagation. A change amount of the connection weight of each node to be updated may be determined according to a learning rate. The computation of the neural network on the input data and the backpropagation of errors can constitute a learning cycle (epoch). The learning rate may be applied differently depending on the number of repetitions of the learning cycle of the neural network. For example, in the early stage of learning of a neural network, a high learning rate can be used to enable the neural network to quickly acquire a certain level of performance, thereby increasing efficiency, and using a low learning rate at the end of learning can increase accuracy.
뉴럴 네트워크의 학습에서 일반적으로 학습 데이터는 실제 데이터(즉, 학습된 뉴럴 네트워크를 이용하여 처리하고자 하는 데이터)의 부분집합일 수 있으며, 따라서, 학습 데이터에 대한 오류는 감소하나 실제 데이터에 대해서는 오류가 증가하는 학습 사이클이 존재할 수 있다. 과적합(overfitting)은 이와 같이 학습 데이터에 과하게 학습하여 실제 데이터에 대한 오류가 증가하는 현상이다. 예를 들어, 노란색 고양이를 보여 고양이를 학습한 뉴럴 네트워크가 노란색 이외의 고양이를 보고는 고양이임을 인식하지 못하는 현상이 과적합의 일종일 수 있다. 과적합은 머신러닝 알고리즘의 오류를 증가시키는 원인으로 작용할 수 있다. 이러한 과적합을 막기 위하여 다양한 최적화 방법이 사용될 수 있다. 과적합을 막기 위해서는 학습 데이터를 증가시키거나, 레귤라이제이션(regularization), 학습의 과정에서 네트워크의 노드 일부를 비활성화하는 드롭아웃(dropout), 배치 정규화 레이어(batch normalization layer)의 활용 등의 방법이 적용될 수 있다.In training of a neural network, in general, the training data may be a subset of real data (that is, data to be processed using the trained neural network), and thus the error on the training data is reduced, but the error on the real data is reduced. There may be increasing learning cycles. Overfitting is a phenomenon in which errors on actual data increase by over-learning on training data as described above. For example, a phenomenon in which a neural network that has learned a cat by seeing a yellow cat does not recognize that it is a cat when it sees a cat other than yellow may be a type of overfitting. Overfitting can act as a cause of increasing errors in machine learning algorithms. In order to prevent such overfitting, various optimization methods can be used. In order to prevent overfitting, methods such as increasing the training data, regularization, and dropout that deactivate some of the nodes of the network in the process of learning, and the use of a batch normalization layer are applied. can
본 개시의 일 실시예에 따라 데이터 구조를 저장한 컴퓨터 판독가능 매체가 개시된다.A computer-readable medium storing a data structure is disclosed according to an embodiment of the present disclosure.
데이터 구조는 데이터에 효율적인 접근 및 수정을 가능하게 하는 데이터의 조직, 관리, 저장을 의미할 수 있다. 데이터 구조는 특정 문제(예를 들어, 최단 시간으로 데이터 검색, 데이터 저장, 데이터 수정) 해결을 위한 데이터의 조직을 의미할 수 있다. 데이터 구조는 특정한 데이터 처리 기능을 지원하도록 설계된, 데이터 요소들 간의 물리적이거나 논리적인 관계로 정의될 수도 있다. 데이터 요소들 간의 논리적인 관계는 사용자 정의 데이터 요소들 간의 연결관계를 포함할 수 있다. 데이터 요소들 간의 물리적인 관계는 컴퓨터 판독가능 저장매체(예를 들어, 영구 저장 장치)에 물리적으로 저장되어 있는 데이터 요소들 간의 실제 관계를 포함할 수 있다. 데이터 구조는 구체적으로 데이터의 집합, 데이터 간의 관계, 데이터에 적용할 수 있는 함수 또는 명령어를 포함할 수 있다. 효과적으로 설계된 데이터 구조를 통해 컴퓨팅 장치는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산을 수행할 수 있다. 구체적으로 컴퓨팅 장치는 효과적으로 설계된 데이터 구조를 통해 연산, 읽기, 삽입, 삭제, 비교, 교환, 검색의 효율성을 높일 수 있다.The data structure may refer to the organization, management, and storage of data that enables efficient access and modification of data. A data structure may refer to an organization of data to solve a specific problem (eg, data retrieval, data storage, and data modification in the shortest time). A data structure may be defined as a physical or logical relationship between data elements designed to support a particular data processing function. The logical relationship between data elements may include a connection relationship between user-defined data elements. Physical relationships between data elements may include actual relationships between data elements physically stored on a computer-readable storage medium (eg, persistent storage). A data structure may specifically include a set of data, relationships between data, and functions or instructions applicable to data. Through an effectively designed data structure, a computing device can perform an operation while using the computing device's resources to a minimum. Specifically, the computing device may increase the efficiency of operations, reads, insertions, deletions, comparisons, exchanges, and retrievals through effectively designed data structures.
데이터 구조는 데이터 구조의 형태에 따라 선형 데이터 구조와 비선형 데이터 구조로 구분될 수 있다. 선형 데이터 구조는 하나의 데이터 뒤에 하나의 데이터만이 연결되는 구조일 수 있다. 선형 데이터 구조는 리스트(List), 스택(Stack), 큐(Queue), 데크(Deque)를 포함할 수 있다. 리스트는 내부적으로 순서가 존재하는 일련의 데이터 집합을 의미할 수 있다. 리스트는 연결 리스트(Linked List)를 포함할 수 있다. 연결 리스트는 각각의 데이터가 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터가 연결된 데이터 구조일 수 있다. 연결 리스트에서 포인터는 다음이나 이전 데이터와의 연결 정보를 포함할 수 있다. 연결 리스트는 형태에 따라 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트로 표현될 수 있다. 스택은 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조일 수 있다. 스택은 데이터 구조의 한 쪽 끝에서만 데이터를 처리(예를 들어, 삽입 또는 삭제)할 수 있는 선형 데이터 구조일 수 있다. 스택에 저장된 데이터는 늦게 들어갈수록 빨리 나오는 데이터 구조(LIFO-Last in First Out)일 수 있다. 큐는 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조로서, 스택과 달리 늦게 저장된 데이터일수록 늦게 나오는 데이터 구조(FIFO-First in First Out)일 수 있다. 데크는 데이터 구조의 양 쪽 끝에서 데이터를 처리할 수 있는 데이터 구조일 수 있다.A data structure may be classified into a linear data structure and a non-linear data structure according to the type of the data structure. The linear data structure may be a structure in which only one piece of data is connected after one piece of data. The linear data structure may include a list, a stack, a queue, and a deck. A list may mean a set of data in which an order exists internally. The list may include a linked list. The linked list may be a data structure in which data is linked in such a way that each data is linked in a line with a pointer. In a linked list, a pointer may contain information about a link with the next or previous data. A linked list may be expressed as a single linked list, a doubly linked list, or a circularly linked list according to a shape. A stack can be a data enumeration structure with limited access to data. A stack can be a linear data structure in which data can be processed (eg, inserted or deleted) at only one end of the data structure. The data stored in the stack may be a data structure LIFO-Last in First Out. A queue is a data listing structure that allows limited access to data, and unlike a stack, it may be a data structure that comes out later (FIFO-First in First Out) as data stored later. A deck can be a data structure that can process data at either end of the data structure.
비선형 데이터 구조는 하나의 데이터 뒤에 복수개의 데이터가 연결되는 구조일 수 있다. 비선형 데이터 구조는 그래프(Graph) 데이터 구조를 포함할 수 있다. 그래프 데이터 구조는 정점(Vertex)과 간선(Edge)으로 정의될 수 있으며 간선은 서로 다른 두개의 정점을 연결하는 선을 포함할 수 있다. 그래프 데이터 구조 트리(Tree) 데이터 구조를 포함할 수 있다. 트리 데이터 구조는 트리에 포함된 복수개의 정점 중에서 서로 다른 두개의 정점을 연결시키는 경로가 하나인 데이터 구조일 수 있다. 즉 그래프 데이터 구조에서 루프(loop)를 형성하지 않는 데이터 구조일 수 있다.The nonlinear data structure may be a structure in which a plurality of data is connected after one data. The nonlinear data structure may include a graph data structure. A graph data structure may be defined as a vertex and an edge, and the edge may include a line connecting two different vertices. A graph data structure may include a tree data structure. The tree data structure may be a data structure in which one path connects two different vertices among a plurality of vertices included in the tree. That is, it may be a data structure that does not form a loop in the graph data structure.
본 명세서에 걸쳐, 연산 모델, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 이하에서는 신경망으로 통일하여 기술한다. 데이터 구조는 신경망을 포함할 수 있다. 그리고 신경망을 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망을 포함한 데이터 구조는 또한 신경망에 의한 처리를 위하여 전처리된 데이터, 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 학습을 위한 손실 함수 등을 포함할 수 있다. 신경망을 포함한 데이터 구조는 상기 개시된 구성들 중 임의의 구성 요소들을 포함할 수 있다. 즉 신경망을 포함한 데이터 구조는 신경망에 의한 처리를 위하여 전처리된 데이터, 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 학습을 위한 손실 함수 등 전부 또는 이들의 임의의 조합을 포함하여 구성될 수 있다. 전술한 구성들 이외에도, 신경망을 포함한 데이터 구조는 신경망의 특성을 결정하는 임의의 다른 정보를 포함할 수 있다. 또한, 데이터 구조는 신경망의 연산 과정에 사용되거나 발생되는 모든 형태의 데이터를 포함할 수 있으며 전술한 사항에 제한되는 것은 아니다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 기록 매체 및/또는 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다.Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. Hereinafter, the neural network is unified and described. The data structure may include a neural network. And the data structure including the neural network may be stored in a computer-readable medium. Data structures, including neural networks, also include preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, and the neural network. It may include a loss function for learning of . A data structure comprising a neural network may include any of the components disclosed above. That is, the data structure including the neural network includes preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data obtained from the neural network, activation functions associated with each node or layer of the neural network, and the neural network It may be configured to include all or any combination thereof, such as a loss function for learning of . In addition to the above-described configurations, a data structure including a neural network may include any other information that determines a characteristic of the neural network. In addition, the data structure may include all types of data used or generated in the operation process of the neural network, and is not limited thereto. Computer-readable media may include computer-readable recording media and/or computer-readable transmission media. A neural network may be composed of a set of interconnected computational units, which may generally be referred to as nodes. These nodes may also be referred to as neurons. A neural network is configured to include at least one or more nodes.
데이터 구조는 신경망에 입력되는 데이터를 포함할 수 있다. 신경망에 입력되는 데이터를 포함하는 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망에 입력되는 데이터는 신경망 학습 과정에서 입력되는 학습 데이터 및/또는 학습이 완료된 신경망에 입력되는 입력 데이터를 포함할 수 있다. 신경망에 입력되는 데이터는 전처리(pre-processing)를 거친 데이터 및/또는 전처리 대상이 되는 데이터를 포함할 수 있다. 전처리는 데이터를 신경망에 입력시키기 위한 데이터 처리 과정을 포함할 수 있다. 따라서 데이터 구조는 전처리 대상이 되는 데이터 및 전처리로 발생되는 데이터를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include data input to the neural network. A data structure including data input to the neural network may be stored in a computer-readable medium. The data input to the neural network may include learning data input in a neural network learning process and/or input data input to the neural network in which learning is completed. Data input to the neural network may include pre-processing data and/or pre-processing target data. The preprocessing may include a data processing process for inputting data into the neural network. Accordingly, the data structure may include data to be pre-processed and data generated by pre-processing. The above-described data structure is merely an example, and the present disclosure is not limited thereto.
데이터 구조는 신경망의 가중치를 포함할 수 있다. (본 명세서에서 가중치, 파라미터는 동일한 의미로 사용될 수 있다.) 그리고 신경망의 가중치를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망은 복수개의 가중치를 포함할 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드에서 출력되는 데이터 값을 결정할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include the weights of the neural network. (In this specification, a weight and a parameter may be used interchangeably.) And a data structure including a weight of a neural network may be stored in a computer-readable medium. The neural network may include a plurality of weights. The weight may be variable, and may be changed by the user or algorithm in order for the neural network to perform a desired function. For example, when one or more input nodes are interconnected to one output node by respective links, the output node sets values input to input nodes connected to the output node and links corresponding to the respective input nodes. A data value output from the output node may be determined based on the weight. The above-described data structure is merely an example, and the present disclosure is not limited thereto.
제한이 아닌 예로서, 가중치는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함할 수 있다. 신경망 학습 과정에서 가변되는 가중치는 학습 사이클이 시작되는 시점의 가중치 및/또는 학습 사이클 동안 가변되는 가중치를 포함할 수 있다. 신경망 학습이 완료된 가중치는 학습 사이클이 완료된 가중치를 포함할 수 있다. 따라서 신경망의 가중치를 포함한 데이터 구조는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함한 데이터 구조를 포함할 수 있다. 그러므로 상술한 가중치 및/또는 각 가중치의 조합은 신경망의 가중치를 포함한 데이터 구조에 포함되는 것으로 한다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.By way of example and not limitation, the weight may include a weight variable in a neural network learning process and/or a weight in which neural network learning is completed. The variable weight in the neural network learning process may include a weight at the start of the learning cycle and/or a variable weight during the learning cycle. The weight for which neural network learning is completed may include a weight for which a learning cycle is completed. Accordingly, the data structure including the weights of the neural network may include a data structure including the weights that vary in the neural network learning process and/or the weights on which the neural network learning is completed. Therefore, it is assumed that the above-described weights and/or combinations of weights are included in the data structure including the weights of the neural network. The above-described data structure is merely an example, and the present disclosure is not limited thereto.
신경망의 가중치를 포함한 데이터 구조는 직렬화(serialization) 과정을 거친 후 컴퓨터 판독가능 저장 매체(예를 들어, 메모리, 하드 디스크)에 저장될 수 있다. 직렬화는 데이터 구조를 동일하거나 다른 컴퓨팅 장치에 저장하고 나중에 다시 재구성하여 사용할 수 있는 형태로 변환하는 과정일 수 있다. 컴퓨팅 장치는 데이터 구조를 직렬화하여 네트워크를 통해 데이터를 송수신할 수 있다. 직렬화된 신경망의 가중치를 포함한 데이터 구조는 역직렬화(deserialization)를 통해 동일한 컴퓨팅 장치 또는 다른 컴퓨팅 장치에서 재구성될 수 있다. 신경망의 가중치를 포함한 데이터 구조는 직렬화에 한정되는 것은 아니다. 나아가 신경망의 가중치를 포함한 데이터 구조는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산의 효율을 높이기 위한 데이터 구조(예를 들어, 비선형 데이터 구조에서 B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree)를 포함할 수 있다. 전술한 사항은 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure including the weights of the neural network may be stored in a computer-readable storage medium (eg, memory, hard disk) after being serialized. Serialization can be the process of converting a data structure into a form that can be reconstructed and used later by storing it on the same or a different computing device. The computing device may serialize the data structure to send and receive data over a network. A data structure including weights of the serialized neural network may be reconstructed in the same computing device or in another computing device through deserialization. The data structure including the weight of the neural network is not limited to serialization. Furthermore, the data structure including the weights of the neural network is a data structure to increase the efficiency of computation while using the resources of the computing device to a minimum (e.g., B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree). The foregoing is merely an example, and the present disclosure is not limited thereto.
데이터 구조는 신경망의 하이퍼 파라미터(Hyper-parameter)를 포함할 수 있다. 그리고 신경망의 하이퍼 파라미터를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 하이퍼 파라미터는 사용자에 의해 가변되는 변수일 수 있다. 하이퍼 파라미터는 예를 들어, 학습률(learning rate), 비용 함수(cost function), 학습 사이클 반복 횟수, 가중치 초기화(Weight initialization)(예를 들어, 가중치 초기화 대상이 되는 가중치 값의 범위 설정), Hidden Unit 개수(예를 들어, 히든 레이어의 개수, 히든 레이어의 노드 수)를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include hyper-parameters of the neural network. In addition, the data structure including the hyperparameters of the neural network may be stored in a computer-readable medium. The hyper parameter may be a variable variable by a user. Hyperparameters are, for example, learning rate, cost function, number of iterations of the learning cycle, weight initialization (e.g., setting the range of weight values to be initialized for weights), Hidden Unit The number (eg, the number of hidden layers, the number of nodes of the hidden layer) may be included. The above-described data structure is merely an example, and the present disclosure is not limited thereto.
도 2는 본 개시서의 일 실시 예에 따른 영상 처리 방법을 수행하는 시스템으로서, 컴퓨팅 장치, 촬영 장치 및 짐벌을 포함하는 전체 하드웨어 및 소프트웨어 아키텍처를 예시적으로 도시한 개념도이다.FIG. 2 is a conceptual diagram exemplarily illustrating an overall hardware and software architecture including a computing device, a photographing device, and a gimbal as a system for performing an image processing method according to an embodiment of the present disclosure.
도 2를 참조하여 본 발명에 따른 방법 및 장치의 구성을 개관하면, 컴퓨팅 장치(100)는 촬영 장치(200)를 포함할 수도 있고, 무선 또는 유선으로 외부의 촬영 장치(200)와 연동할 수 있으며, 컴퓨팅 장치(100)는 촬영 장치(200)의 자세를 제어하는 기능을 수행하는 짐벌(gimbal; 300)과 무선 또는 유선으로 연동하거나 이를 포함할 수 있다. 촬영 장치(200)의 자세를 제어하기 위하여 짐벌(300)은 촬영 장치(200)를 포함하거나 촬영 장치(200)를 고정할 수 있는 소정의 메커니즘(예컨대 흡착판 등)을 구비할 수 있다.An overview of the configuration of the method and apparatus according to the present invention with reference to FIG. 2 , the computing device 100 may include the photographing device 200 , and may interwork with the external photographing apparatus 200 wirelessly or by wire. In addition, the computing device 100 may work with or include a gimbal 300 that performs a function of controlling the posture of the photographing device 200 wirelessly or wiredly. In order to control the posture of the photographing apparatus 200 , the gimbal 300 may include the photographing apparatus 200 or may include a predetermined mechanism (eg, a sucker, etc.) capable of fixing the photographing apparatus 200 .
그 자세의 제어를 위하여 짐벌(300)은 하나 이상의 회전 축을 가질 수 있는바, 공개특허공보 제10-2019-0036323호에서 그 예시를 찾을 수 있다. 짐벌(300)은 자세 제어를 통하여 촬영 장치(200)의 입력 범위를 능동적으로 개선할 수 있다.In order to control the posture, the gimbal 300 may have one or more rotation axes, and an example thereof can be found in Korean Patent Application Laid-Open No. 10-2019-0036323. The gimbal 300 may actively improve the input range of the photographing apparatus 200 through posture control.
짐벌(300)이 하나의 회전 축을 가질 때, 그 회전 축은 요(yaw) 축(Y)일 수 있다. 요 축은 촬영 장치(200)로 하여금 최소한의 회전만으로 공간 내에 있는 객체와의 상호작용이 가능해지도록 한다. When the gimbal 300 has one axis of rotation, the axis of rotation may be a yaw axis (Y). The yaw axis enables the photographing apparatus 200 to interact with an object in space with minimal rotation.
짐벌(300)이 두 개의 회전 축을 가질 때, 그 회전 축은 요(yaw) 축 및 피치(pitch) 축(P)일 수 있다. 또한, 짐벌(300)이 세 개의 회전 축을 가질 때, 그 회전 축은 요 축, 피치 축, 및 롤(roll) 축(R)일 수 있다.When the gimbal 300 has two rotation axes, the rotation axes may be a yaw axis and a pitch axis P. Also, when the gimbal 300 has three rotation axes, the rotation axes may be a yaw axis, a pitch axis, and a roll axis R.
짐벌(300)은 그 하드웨어의 구성요소로서 전력 공급 유닛(310)을 포함할 수 있다. 전력 공급 유닛(310)은 유선 또는 무선으로, 그리고 직류 또는 교류 전류로 외부 전력을 공급받을 수 있다. 전력 공급 유닛(310)에 공급된 전력은 짐벌(300) 또는 컴퓨팅 장치(100)에 이용될 수 있다. 덧붙여, 전력 공급 유닛(310)은 짐벌(300)에 내장된 배터리 또는 컴퓨팅 장치에 내장된 배터리를 충전하는 데 이용될 수 있다.The gimbal 300 may include a power supply unit 310 as a component of its hardware. The power supply unit 310 may be supplied with external power by wire or wirelessly and by direct current or alternating current. The power supplied to the power supply unit 310 may be used in the gimbal 300 or the computing device 100 . In addition, the power supply unit 310 may be used to charge a battery built into the gimbal 300 or a battery built into the computing device.
또한, 짐벌(300)은 그 하드웨어의 구성요소로서 적어도 하나의 짐벌 모터(330; 미도시)를 포함할 수 있다. 짐벌 모터(330) 각각은 전술한 회전 축에 따라 촬영 장치(200) 혹은 촬영 장치(200)가 내장된 컴퓨팅 장치(100)의 방향을 변경할 수 있도록 구성되는바, 짐벌 모터(330)는 DC 모터, 스텝 모터, 브러시리스 모터일 수 있으나 이에 한정되지 않는다. 짐벌(300)은 짐벌 모터(330)뿐만 아니라 모터의 토크를 변환하기 위한 기어를 더 포함할 수 있다.Also, the gimbal 300 may include at least one gimbal motor 330 (not shown) as a component of its hardware. Each of the gimbal motors 330 is configured to change the direction of the photographing device 200 or the computing device 100 in which the photographing apparatus 200 is embedded according to the above-described rotation axis, and the gimbal motor 330 is a DC motor. , a stepper motor, or a brushless motor, but is not limited thereto. The gimbal 300 may further include a gear for converting torque of the motor as well as the gimbal motor 330 .
짐벌(300)의 모터(330)는 짐벌에 부착된 촬영 장치(200) 또는 컴퓨팅 장치(100)로 하여금 특정 객체의 방향을 지향하기 위한 것인바, 그 각각의 회전 축은 촬영 장치(200) 또는 컴퓨팅 장치(100)의 요, 피치, 롤 축 등 각각의 축에 평행하도록 배치하는 것이 바람직할 것이나 이에 한정될 이유가 없음을 통상의 기술자는 쉽게 이해할 수 있을 것이다.The motor 330 of the gimbal 300 is for orienting the photographing device 200 or the computing device 100 attached to the gimbal in the direction of a specific object, and the respective rotation axis is the photographing device 200 or the computing device. Those of ordinary skill in the art will readily understand that it is preferable to arrange the apparatus 100 parallel to each axis, such as the yaw, pitch, and roll axis, but there is no reason to be limited thereto.
짐벌(300)은 그 하드웨어 구성요소로서 적어도 하나의 센서(340; 미도시)를 더 포함할 수 있다. 센서(340)는 짐벌(300)의 고정된 부분 또는 모터(330)에 대하여 위치, 각위치, 변위, 각변위, 속도, 각속도, 가속도, 각가속도 중 하나 이상을 검출하는 기능을 수행할 수 있는바, 그러한 센서(340)의 종류에는 가속도 센서, 자이로 센서, 지자기 센서 등의 마그네틱 센서, 홀 센서, 압력 센서, 적외선 센서, 근접 센서, 모션 센서, 감광 센서, 이미지(영상) 센서, GPS 센서, 온도 센서, 습도 센서, 기압 센서, LIDAR 센서 등이 있을 수 있되 이에 한정되지 않는다.The gimbal 300 may further include at least one sensor 340 (not shown) as a hardware component thereof. The sensor 340 may perform a function of detecting one or more of a position, an angular position, a displacement, an angular displacement, a speed, an angular velocity, an acceleration, and an angular acceleration with respect to the fixed part of the gimbal 300 or the motor 330. , the types of the sensor 340 include an acceleration sensor, a gyro sensor, a magnetic sensor such as a geomagnetic sensor, a hall sensor, a pressure sensor, an infrared sensor, a proximity sensor, a motion sensor, a photosensitive sensor, an image (video) sensor, a GPS sensor, a temperature There may be a sensor, a humidity sensor, a barometric pressure sensor, a LIDAR sensor, and the like, but is not limited thereto.
컴퓨팅 장치(100), 특히 휴대 가능 컴퓨팅 장치가 가질 수 있는 무게, 부피에 관한 제한으로 인하여 컴퓨팅 장치(100)에 탑재되지 못한 센서(340)는 짐벌(300)에 탑재될 수 있는바, 이는 짐벌(300) 주위의 정보를 획득하는 데 이용될 수 있다.The sensor 340 that is not mounted on the computing device 100 due to restrictions on the weight and volume that the computing device 100, particularly the portable computing device can have, may be mounted on the gimbal 300, which is (300) can be used to obtain surrounding information.
이제 도 2를 참조하여 개략적으로 설명된 개별 구성요소들에 의하여 달성될 수 있는 본 발명의 구체적인 기능 및 효과에 관하여 도 3 내지 도 11d를 참조하여 상세히 후술하기로 한다. 도 2에 나타난 구성요소들은 설명의 편의상 하나의 컴퓨팅 장치에서 실현되는 것으로 예시되었으나, 본 개시서의 방법을 수행하는 컴퓨팅 장치(100)는 복수개의 장치들이 서로 연동되도록 구성될 수도 있다는 점이 이해될 것이다. 예를 들어, 짐벌(300)이 독립적인 컴퓨팅 장치인 것으로 구성되어 그 짐벌(300)과 컴퓨팅 장치(100), 예컨대, 휴대 단말과 같은 휴대 가능 컴퓨팅 장치가 서로 연동될 수도 있는바, 그 경우에 짐벌(300)이 휴대 단말(100)에 의하여 수행되는 적어도 일부의 기능을 대신 수행할 수도 있다. 즉, 통상의 기술자는 다양한 방식으로 복수개의 장치들이 서로 연동하여 본 개시서의 방법을 수행하도록 구성할 수 있을 것이다.Now, specific functions and effects of the present invention that can be achieved by the individual components schematically described with reference to FIG. 2 will be described below in detail with reference to FIGS. 3 to 11D . Although the components shown in FIG. 2 are exemplified as being realized in one computing device for convenience of description, it will be understood that the computing device 100 for performing the method of the present disclosure may be configured such that a plurality of devices may interwork with each other. . For example, since the gimbal 300 is configured to be an independent computing device, the gimbal 300 and the computing device 100, for example, a portable computing device such as a portable terminal, may be interlocked with each other, in that case The gimbal 300 may instead perform at least some functions performed by the mobile terminal 100 . That is, a person skilled in the art will be able to configure a plurality of devices to perform the method of the present disclosure by interworking with each other in various ways.
도 3은 본 개시서의 일 실시 예에 따른 영상 처리 방법을 예시적으로 나타낸 흐름도이며, 도 4는 본 개시서의 일 실시 예에 따른 영상 처리 방법의 각 단계를 수행하는 모듈들을 예시적으로 도시한 블록도이다. 또한, 도 5는 본 개시서의 일 실시 예에 따른 영상 처리 방법을 위한 모듈들에서 이용되는 기계 학습 모델들을 예시적으로 도시한 블록도이다.3 is a flowchart exemplarily illustrating an image processing method according to an embodiment of the present disclosure, and FIG. 4 exemplarily shows modules performing each step of the image processing method according to an embodiment of the present disclosure. It is a block diagram. 5 is a block diagram exemplarily illustrating machine learning models used in modules for an image processing method according to an embodiment of the present disclosure.
도 3을 참조하면, 본 개시서에 따른 영상 처리 방법은, 먼저, 컴퓨팅 장치(100)에 의하여 구현되는 영상 입력 모듈(4100)이, 컴퓨팅 장치(100)에 포함되거나 컴퓨팅 장치(100)의 통신부(110)를 통하여 연동하는 촬영 장치(200)로부터 전체 영상을 획득하는 단계인 영상 획득 단계(S1000)를 포함한다. Referring to FIG. 3 , in the image processing method according to the present disclosure, first, the image input module 4100 implemented by the computing device 100 is included in the computing device 100 or a communication unit of the computing device 100 . It includes an image acquisition step (S1000), which is a step of acquiring the entire image from the photographing device 200 interworking through 110 .
여기에서 '전체 영상'은 후술하는 객체 영상 등과 같이 전체 영상의 일부에 해당하는 영상과 대비되는 영상을 지칭한다.Here, the 'full image' refers to an image that is contrasted with an image corresponding to a portion of the entire image, such as an object image, which will be described later.
다음으로, 상기 영상 처리 방법은, 컴퓨팅 장치(100)에 의하여 구현되는 객체 분석 모듈(4200)이, 상기 전체 영상에 나타난 하나 이상의 객체를 검출하고, 그 검출된 객체 각각의 카테고리를 산출하는 분류를 수행하는 단계인 카테고리 분류 단계(S2000)를 더 포함한다. Next, in the image processing method, the object analysis module 4200 implemented by the computing device 100 detects one or more objects appearing in the entire image, and classifies each of the detected object categories. It further includes a category classification step (S2000) that is performed.
여기에서 객체의 카테고리란 객체를 사람, 나무, 강아지 등으로 분류한 결과를 지칭한다.Here, the category of the object refers to the result of classifying the object into a person, a tree, a dog, and the like.
카테고리 분류 단계(S2000)에서는 상기 분류와 동시에 2차원 계측의 일부로서 상기 전체 영상에서 하나 이상의 객체 각각의 위치가 산출될 수 있다.In the category classification step ( S2000 ), the position of each of one or more objects in the entire image may be calculated as part of the two-dimensional measurement at the same time as the classification.
이 2차원 계측과 후술하는 3차원 계측은, 2차원 계측이 3차원 깊이 정보를 고려하지 않고 영상에 나타난 2차원 좌표계를 기준으로 하는 계측인 반면, 3차원 계측이 영상에서의 2차원 좌표뿐만 아니라 깊이 정보를 고려하는 계측이라는 점에서 상이하다. In this two-dimensional measurement and the three-dimensional measurement described later, the two-dimensional measurement is a measurement based on the two-dimensional coordinate system shown in the image without considering the three-dimensional depth information, whereas the three-dimensional measurement is not only the two-dimensional coordinates in the image It is different in that it is a measurement that considers depth information.
구체적으로, 카테고리 분류 단계(S2000)는 상기 전체 영상을 상기 전체 영상의 원래 해상도보다 낮은 해상도로 크기를 재조정(resizing; 리사이징)하는 단계(S2100), 및 그 크기 재조정된 영상을 객체 분석 모델(M420)에 입력하여 상기 객체 각각의 카테고리, 위치, 및 중요도를 산출하는 단계(S2200)를 포함할 수 있다.Specifically, the category classification step (S2000) includes resizing the entire image to a resolution lower than the original resolution of the entire image (S2100), and converting the resized image to an object analysis model (M420). ) and calculating the category, location, and importance of each of the objects ( S2200 ).
예를 들어, 컴퓨팅 장치(100)의 프로세서(120)는 객체 분석 모델(M420)을 이용하여, 영상으로부터, 영상에 포함된 객체에 대응되는 분석 정보를 획득할 수 있다. 분석 정보는 객체의 카테고리를 나타내는 분류 정보, 객체의 위치를 나타내는 위치 정보 또는/및 객체가 영상 내에서 가지는 우선순위를 나타내는 중요도 정보 중 적어도 하나를 포함할 수 있다.For example, the processor 120 of the computing device 100 may obtain analysis information corresponding to an object included in the image from the image by using the object analysis model M420 . The analysis information may include at least one of classification information indicating a category of an object, location information indicating a location of an object, and/or importance information indicating a priority of an object in an image.
객체 분석 모델(M420)은 영상에 포함된 객체에 대한 분석을 수행하기 위한 모델로, 객체 분류(classification) 모델, 지역화(localization) 모델, 객체 감지(object detection) 모델, 세그먼테이션(segmentation) 모델 등을 포함할 수 있다.The object analysis model M420 is a model for performing analysis on an object included in an image, and includes an object classification model, a localization model, an object detection model, a segmentation model, and the like. may include
본 개시의 일 실시예에 따라, 프로세서(120)는 객체 분류를 하는 객체 분석 모델(M420)을 이용하여 입력으로 주어진 영상 안의 객체의 종류(class)를 구분할 수 있다. 예를 들어, 입력으로 주어진 영상 안에 사람이 있는 경우, 입력된 영상에 대해 프로세서(120)는 객체 분석 모델(M420)을 이용하여 “입력된 영상의 종류는 사람” 이라는 출력을 획득할 수 있다. 전술한 사항은 예시일 뿐, 본 개시는 이에 제한되지 않는다.According to an embodiment of the present disclosure, the processor 120 may classify a class of an object in an image given as an input by using the object analysis model M420 that classifies the object. For example, when there is a person in the image given as an input, the processor 120 may obtain an output of “the type of the input image is a person” by using the object analysis model M420 for the input image. The foregoing is merely an example, and the present disclosure is not limited thereto.
본 개시의 일 실시예에 따라, 프로세서(120)는 분류하고 지역화 하는 객체 분석 모델(M420)을 이용하여 영상 안의 객체에 영상 안의 어느 위치에 있는지는 나타내는 위치 정보도 출력할 수 있다. 예를 들어, 프로세서(120)는 분류하고 지역화 하는 객체 분석 모델(M420)을 이용하는 경우, 바운딩 박스(bounding box)를 사용하여 이미지 내의 객체를 인식하고 위치 정보를 출력할 수 있다. 바운딩 박스는 박스의 좌측, 우측, 상부, 하부 좌표를 출력하는 방식을 통해 객체의 위치 정보를 반환할 수 있다. 전술한 사항은 예시일 뿐, 본 개시는 이에 제한되지 않는다.According to an embodiment of the present disclosure, the processor 120 may also output location information indicating where the object in the image is located in the image by using the object analysis model M420 for classifying and localizing. For example, when using the object analysis model M420 for classifying and localizing, the processor 120 may recognize an object in an image using a bounding box and output location information. The bounding box may return object location information by outputting the left, right, upper, and lower coordinates of the box. The foregoing is merely an example, and the present disclosure is not limited thereto.
본 개시의 일 실시예에 따라, 프로세서(120)는 객체 감지를 하는 객체 분석 모델(M420)을 이용하여 적어도 하나의 객체를 감지할 수 있다. 프로세서(120)는 체 감지를 하는 객체 분석 모델(M420)을 이용하여 적어도 하나의 객체를 동시에 분류하고 지역화 하여, 복수개의 객체를 감지하고 위치 정보를 추출할 수 있다. 전술한 사항은 예시일 뿐, 본 개시는 이에 제한되지 않는다.According to an embodiment of the present disclosure, the processor 120 may detect at least one object using the object analysis model M420 that detects the object. The processor 120 may simultaneously classify and localize at least one object using the object analysis model M420 that detects a body to detect a plurality of objects and extract location information. The foregoing is merely an example, and the present disclosure is not limited thereto.
본 개시의 일 실시예에 따라, 프로세서(120)는 세그먼테이션을 하는 객체 분석 모델(M420)을 이용하여 픽셀(pixel)을 분류하여 이미지 내 객체의 경계선을 배경과 구분하여 객체를 감지할 수 있다. 전술한 사항은 예시일 뿐, 본 개시는 이에 제한되지 않는다.According to an embodiment of the present disclosure, the processor 120 may classify a pixel using the segmented object analysis model M420 to distinguish the boundary line of the object in the image from the background to detect the object. The foregoing is merely an example, and the present disclosure is not limited thereto.
단계(S2100)에서와 같은 크기 재조정은 객체 분석 모델(M420)에 의한 연산량을 절감하여 객체 분석 모듈(4200)의 처리 속도를 향상시키기 위한 것임이 통상의 기술자에게 잘 알려져 있다.It is well known to those skilled in the art that the resizing as in step S2100 is for improving the processing speed of the object analysis module 4200 by reducing the amount of computation by the object analysis model M420.
단계(S2200)의 결과인 중요도는 상기 객체의 우선순위를 결정하기 위한 척도로 이용될 수 있는바, 반대로 우선순위가 높은 객체에 높은 중요도가 부여되거나, 그리고/또는 우선순위가 낮은 객체에 낮은 중요도가 부여될 수 있다. 우선순위에 관하여는 상세히 후술하기로 한다.The importance resulting from step S2200 may be used as a measure for determining the priority of the object. can be given. The priority will be described later in detail.
상기 중요도가 소정의 경계치 이상인 객체에 대하여, 컴퓨팅 장치(100)는, 상기 객체의 영상인 객체 영상을 상기 전체 영상으로부터 추출 및 샘플링(sampling)할 수 있다{크롭 피드(crop feed) 단계; S2500}. 단계(S2200)에서 크기 재조정된 영상이 이용되어 전체 영상의 데이터 일부가 손실되므로, 크롭 피드 단계(S2500)는 중요도가 비교적 높은 객체에 대해 손실되기 전의 영상 정보를 이용할 수 있게 하려는 것이다.With respect to the object whose importance is greater than or equal to a predetermined boundary value, the computing device 100 may extract and sample an object image, which is an image of the object, from the entire image (crop feed step; S2500}. Since the resized image is used in step S2200 and a part of the data of the entire image is lost, the crop feed step S2500 is to use image information before loss for an object of relatively high importance.
계속해서 도 3을 참조하면, 본 개시서에 따른 영상 처리 방법은, 컴퓨팅 장치(100)에 의하여 구현되는 상세 분류 모듈(4300)이, 검출된 객체 각각에 대한 분석 결과로서 상기 객체의 특성 및 상태를 포함하는 상세 분류 정보를 생성하는 상세 분류 단계(S3000)를 더 포함한다. Continuing to refer to FIG. 3 , in the image processing method according to the present disclosure, the detailed classification module 4300 implemented by the computing device 100 analyzes each detected object as a result of the object's characteristics and state. It further includes a detailed classification step (S3000) of generating detailed classification information including.
여기에서, 객체는 그 전체 영상이 촬영된 '공간' 자체에 해당하는 객체인 공간 객체를 포함하는 개념인바, 그 공간 객체의 상세 분류 정보는 해당 공간에 대한 정보를 포함할 수 있다.Here, the object is a concept including a spatial object that is an object corresponding to the 'space' itself in which the entire image is captured, and detailed classification information of the spatial object may include information about the corresponding space.
객체의 특성 및 상태Properties and State of Objects
상기 객체의 특성(property)은 시간에 대해 대체로 불변인 객체의 성질을 지칭하는 반면, 상기 객체의 상태(state)는 시간에 따라 대체로 변화 가능한 객체의 성질을 지칭한다. A property of the object refers to a property of an object that is largely immutable with respect to time, whereas a state of the object refers to a property of an object that is substantially changeable over time.
구체적으로, 상기 객체의 특성은, 상기 객체의 일부를 이루거나 상기 객체의 귀속된 구성요소인 부분 객체의 정보를 포함할 수 있다. 일 예시로서, 전체 영상에서 사람이 객체로서 검출된다면, 그 사람의 팔, 다리, 눈 등의 부분, 그 사람이 입고 있는 옷 및 신발은 그 객체의 부분 객체들이다.Specifically, the property of the object may include information on a partial object that forms a part of the object or is a component to which the object belongs. As an example, if a person is detected as an object in the entire image, parts of the person's arms, legs, eyes, etc., and clothes and shoes worn by the person are partial objects of the object.
이러한 부분 객체들의 검출을 위하여, 상세 분류 단계(S3000)는, 상기 객체의 일부를 이루거나 상기 객체의 귀속된 구성요소인 부분 객체의 검출을 시도하는 단계(S3920); 및 상기 부분 객체가 검출되면, 상기 상세 분류 정보의 일부로서, 상기 부분 객체에 대한 특성 및 상태의 분석 결과를 더 생성하는 단계(S3940)를 포함할 수 있다.For the detection of such partial objects, the detailed classification step (S3000) may include: attempting to detect a partial object that forms a part of the object or is a component of the object (S3920); and when the partial object is detected, further generating an analysis result of characteristics and states of the partial object as a part of the detailed classification information (S3940).
또한, 상기 객체의 특성은, 상기 객체의 주요 색상, 상기 객체의 상기 부분 객체를 지칭하는 정보인 종체, 상기 객체가 타 객체의 부분 객체인 경우에 상기 타 객체를 지칭하는 정보인 주체, 상기 객체의 크기, 상기 객체의 주요 재질을 포함하는 상기 객체의 하나 이상의 재질, 상기 객체의 투명도, 상기 객체의 표면에 나타난 텍스트 및 상기 객체의 자력 이동 가능 여부 중 적어도 하나를 포함할 수 있다.In addition, the characteristic of the object may include a main color of the object, a general object that is information indicating the partial object of the object, a subject that is information indicating another object when the object is a partial object of another object, and the object. It may include at least one of the size of the object, one or more materials of the object including the main material of the object, transparency of the object, text displayed on the surface of the object, and whether magnetic movement of the object is possible.
여기에서 상기 객체의 크기는 2차원 계측 또는 3차원 계측으로 측정된 크기일 수 있다. 또한, 상기 객체의 투명도는 그 객체가 유리 창과 같이 투명한 부분을 가지는 물체일 경우에 가질 수 있는 성질로서, 예컨대, 불투명한 물체는 0의 값을, 유리와 같이 투명한 재질의 물체는 양의 값을 가질 수 있다.Here, the size of the object may be a size measured by two-dimensional measurement or three-dimensional measurement. In addition, the transparency of the object is a property that can be possessed when the object is an object having a transparent portion such as a glass window. For example, an opaque object has a value of 0, and an object of a transparent material such as glass has a positive value. can have
한편, 상기 객체의 상태는, 상기 객체의 위치, 상기 객체의 자세, 상기 객체의 행동, 상기 객체의 방향, 상기 객체의 바닥 접촉 여부, 상기 객체의 속도 중 적어도 하나를 포함할 수 있다.Meanwhile, the state of the object may include at least one of a position of the object, a posture of the object, an action of the object, a direction of the object, whether the object is in contact with the floor, and a speed of the object.
여기에서 상기 객체의 위치는 2차원 계측 또는 3차원 계측으로 측정된 위치일 수 있다. 상기 객체의 자세는 상기 객체의 부분 객체들의 위치 정보에 의하여 추론될 수 있고, 상기 객체의 행동은 시간적으로 연속된 상기 자세로부터 추론될 수 있다. Here, the position of the object may be a position measured by two-dimensional measurement or three-dimensional measurement. The posture of the object may be inferred based on location information of partial objects of the object, and the behavior of the object may be inferred from the temporally continuous posture.
또한, 상기 객체의 방향은 상기 객체의 위치 정보 또는 상기 객체의 행동에 의하여 추론될 수 있다. Also, the direction of the object may be inferred based on location information of the object or an action of the object.
상기 객체의 바닥 접촉 여부는 상기 객체가 그 객체가 속한 공간 객체의 바닥 평면에 접촉하는 상태에 있는지 여부를 나타내며, 그 예시로서, 의자, 책상, 전봇대, 자동차의 타이어 등이 참인 값을 가진다.Whether the object is in contact with the floor indicates whether the object is in contact with the floor plane of the spatial object to which the object belongs, and for example, a chair, a desk, a power pole, a tire of a car, etc. have a true value.
상기 객체의 상세 분류 정보는 상기 특성 및 상태뿐만 아니라 그 객체의 시스템 입출력과 관련된 정보를 지칭하는 속성(attribute)을 더 포함할 수 있다. 상기 객체의 속성은 상기 객체의 원시 데이터(raw data)가 최초 입력된 시각을 포함하는 데이터 입력 시각, 및 상기 객체에게 부여된 본 개시서에 따른 시스템에 대한 조작 권한 중 적어도 하나를 포함할 수 있다.The detailed classification information of the object may further include an attribute indicating information related to system input/output of the object as well as the characteristics and state. The property of the object may include at least one of a data input time including a time when raw data of the object was initially input, and an operation right for the system according to the present disclosure granted to the object. .
이와 같은 상기 객체의 상세 분류 정보를 생성하기 위하여, 상세 분류 단계(S3000)는, 상기 중요도가 소정의 제2 수치 이상인 객체인 개별 객체에 대하여, 상기 개별 객체가 속한 개별 카테고리에 해당하는 객체 각각의 상기 특성 및 상기 상태를 획득하게끔 상기 개별 카테고리에 적합화되도록 미리 훈련된 적어도 하나의 모델로 구성된 모델의 집합인 상세 분류 모델(M430)을 선택하는 단계(S3200); 및 상기 개별 객체의 영상인 개별 객체 영상을 선택된 상기 상세 분류 모델(M430)에 입력하여 상기 개별 객체의 식별자, 및 상기 식별자를 통하여 상기 개별 객체에 귀속되는 객체 기록으로서, 상기 상세 분류 정보를 포함하는 객체 기록을 생성하는 단계(S3400)를 포함할 수 있다. In order to generate the detailed classification information of the object as described above, the detailed classification step ( S3000 ) is performed in each of the objects corresponding to the individual category to which the individual object belongs, with respect to the individual object whose importance is the object having the second predetermined value or more. selecting (S3200) a detailed classification model (M430), which is a set of models consisting of at least one model trained in advance to be fitted to the individual category to obtain the characteristic and the state; and inputting an individual object image, which is an image of the individual object, into the selected detailed classification model (M430), an identifier of the individual object, and an object record belonging to the individual object through the identifier, including the detailed classification information It may include generating an object record (S3400).
여기에서, 상세 분류 모델(M430)은 하나 이상의 객체들을 서로 구분하기 위한 것인바, 달리 말하자면, 상세 분류 모델(M430)에 의해서 생성되는 상세 분류 정보로써, 객체들 각각에 그 객체들 각각을 서로 구분할 수 있는 식별자가 부여될 수 있다.Here, the detailed classification model M430 is for distinguishing one or more objects from each other. In other words, as detailed classification information generated by the detailed classification model M430, each of the objects can be distinguished from each other A possible identifier may be assigned.
또한, 여기에서 객체 기록이란 각 객체의 식별자에 귀속된 정보들을 포함하는 기록을 지칭한다. 각 객체의 식별자에 귀속된 정보의 예시로서, 그 객체가 사람이라면, 그 사람의 얼굴 형상, 키, 걸음걸이의 양상, 문신, 헤어 스타일 등을 포함할 수 있고, 그 객체가 개라면, 그 개의 머리 형상, 털의 형태 및 색상, 품종 등을 포함할 수 있다. 객체 기록에는 각 객체의 소유물인 타 객체의 정보가 포함될 수 있는바, 이는 그 타 객체의 식별자일 수 있다.Also, the object record herein refers to a record including information attributed to the identifier of each object. As an example of information attributed to the identifier of each object, if the object is a person, it may include the person's face shape, height, gait aspect, tattoo, hair style, etc., and if the object is a dog, the It may include the shape of the head, the shape and color of the hair, the breed, and the like. The object record may include information of other objects that are owned by each object, and this may be an identifier of the other object.
이 중에서, 특히, 사람의 걸음걸이의 양상이 인공지능 방법론에 의하여 분류될 수 있음은, 예컨대, 비특허문헌인 논문 Babaee, M., Li, L., & Rigoll, G. (2019). Person identification from partial gait cycle using fully convolutional neural networks. Neurocomputing, 338, 116-125.에 밝혀진 바와 같다.Among them, in particular, it is possible to classify human gait patterns by artificial intelligence methodologies, for example, the non-patent paper Babaee, M., Li, L., & Rigoll, G. (2019). Person identification from partial gait cycle using fully convolutional neural networks. Neurocomputing, 338, 116-125.
또한, 사람의 헤어 스타일이 인공지능 방법론에 의하여 분류될 수 있음은, 예컨대, 비특허문헌인 논문 Muhammad, U. R., Svanera, M., Leonardi, R., & Benini, S. (2018). Hair detection, segmentation, and hairstyle classification in the wild. Image and Vision Computing, 71, 25-37. https://doi.org/10.1016/j.imavis.2018.02.001에 밝혀진 바와 같다.In addition, it is reported that human hair styles can be classified by AI methodologies, for example, in the non-patent literature papers Muhammad, U. R., Svanera, M., Leonardi, R., & Benini, S. (2018). Hair detection, segmentation, and hairstyle classification in the wild. Image and Vision Computing, 71, 25-37. As revealed in https://doi.org/10.1016/j.imavis.2018.02.001.
다만, 통상의 기술자는 이와 같은 선행문헌들에 나타난 것 이외의 정보들도 인공지능 방법론에 의하여 획득될 수 있음을 이해할 수 있을 것이다.However, those of ordinary skill in the art will be able to understand that information other than those shown in such prior documents may also be obtained by the artificial intelligence methodology.
개별 객체 각각에 대하여 상세 분류 모델(M430)을 선택하는 단계(S3200)는 컴퓨팅 장치(100)에 의하여 구현되는 분류 모델 선택 모듈(4320)에 의하여 수행될 수 있다. 분류 모델 선택 모듈(4320)은 객체의 카테고리가 획득된 후 그 카테고리에 적합한 상세 분류 모델을 그 상세 분류 모델에 적용되는 알고리즘과 함께 선택하는 기능을 수행한다.Selecting the detailed classification model M430 for each individual object ( S3200 ) may be performed by the classification model selection module 4320 implemented by the computing device 100 . The classification model selection module 4320 performs a function of selecting a detailed classification model suitable for the category after the category of the object is obtained together with an algorithm applied to the detailed classification model.
예를 들어, 객체의 카테고리가 사람인 경우라면, 분류 모델 선택 모듈(4320)은 사람의 얼굴 형상, 키, 걸음걸이의 양상, 문신, 헤어 스타일 등 사람을 특정할 수 있는 상세 분류 정보를 생성하는 상세 분류 모델을 선택할 수 있고, 객체의 카테고리가 개인 경우라면, 개의 머리 형상, 털의 형태 및 색상, 품종 등 개를 특정할 수 있는 상세 분류 정보를 생성하는 상세 분류 모델을 선택할 수 있다.For example, if the category of the object is a person, the classification model selection module 4320 generates detailed classification information that can specify a person, such as a person's face shape, height, gait aspect, tattoo, and hair style. A classification model may be selected, and if the category of an object is an individual, a detailed classification model that generates detailed classification information that can specify a dog, such as a dog's head shape, hair shape and color, and breed, may be selected.
사람의 얼굴 형상뿐만 아니라 개의 머리 형상이 인공지능 방법론에 의하여 분류될 수 있음은, 예컨대, 비특허문헌인 논문 Mougeot, G., Li, D., & Jia, S. (2019). A Deep Learning Approach for Dog Face Verification and Recognition. In PRICAI 2019: Trends in Artificial Intelligence (pp. 418-430). Springer International Publishing. https://doi.org/10.1007/978-3-030-29894-4_34에 밝혀진 바와 같다.It is reported that not only human face shape but also dog head shape can be classified by AI methodology, for example, the non-patent paper Mougeot, G., Li, D., & Jia, S. (2019). A Deep Learning Approach for Dog Face Verification and Recognition. In PRICAI 2019: Trends in Artificial Intelligence (pp. 418-430). Springer International Publishing. As revealed in https://doi.org/10.1007/978-3-030-29894-4_34.
또한, 개의 품종을 분류하는 인공지능 방법론에 관하여는, 비특허문헌인 논문 Raduly, Z., Sulyok, C., Vadaszi, Z., & Zolde, A. (2018). Dog Breed Identification Using Deep Learning. In 2018 IEEE 16th International Symposium on Intelligent Systems and Informatics (SISY). IEEE. https://doi.org/10.1109/sisy.2018.8524715를 참조할 수 있다.In addition, regarding the AI methodology for classifying dog breeds, the non-patent literature paper Raduly, Z., Sulyok, C., Vadaszi, Z., & Zolde, A. (2018). Dog Breed Identification Using Deep Learning. In 2018 IEEE 16th International Symposium on Intelligent Systems and Informatics (SISY). IEEE. See https://doi.org/10.1109/sisy.2018.8524715.
한편, 상세 분류 모델(M430)은 모델의 집합인바, 상기 객체에 대한 2차원 계측 및 3차원 계측 중 적어도 하나를 수행함으로써 상기 객체의 위치, 상기 객체의 바닥 접촉 여부, 상기 객체의 방향, 상기 객체의 속도, 상기 객체의 자세 및/또는 상기 객체의 크기 중 적어도 하나(하나 이상)를 산출하는 계측 모델(M431)을 포함할 수 있다. 여기에서 상기 객체의 크기는, 높이, 너비 및/또는 깊이 중 적어도 하나(하나 이상)을 포함하는 1차원 치수, 객체의 표면적을 포함하는 2차원 치수 및/또는 객체의 부피를 포함하는 3차원 치수 중 적어도 하나(하나 이상)를 포함할 수 있다.Meanwhile, the detailed classification model M430 is a set of models, and by performing at least one of two-dimensional measurement and three-dimensional measurement of the object, the position of the object, whether the object is in contact with the floor, the direction of the object, and the object The measurement model M431 for calculating at least one (one or more) of the velocity of the object, the posture of the object, and/or the size of the object may be included. Here, the size of the object is a one-dimensional dimension including at least one (one or more) of height, width and/or depth, a two-dimensional dimension including the surface area of the object, and/or a three-dimensional dimension including the volume of the object. It may include at least one (one or more) of
예를 들어, 객체의 부피는 그 객체의 객체 세그먼테이션, 객체의 자세 및/또는 깊이 정보 중 적어도 하나(하나 이상)에 기초하여 산출될 수 있다.For example, the volume of the object may be calculated based on at least one (one or more) of object segmentation of the object, posture and/or depth information of the object.
계측 모델(M431)은 상기 객체가 공간 객체이면, 상기 공간 객체의 방위 및 좌표 중 적어도 하나의 원점이 되는 시스템 위치, 상기 공간 객체의 공간 내에 포함된 객체를 포함하는 부피 공간인 맨하탄 공간, 상기 공간에서 검출되는 바닥 평면, 상기 공간에 적용되는 중력의 벡터, 상기 공간에서 상기 공간에 포함된 객체를 제외한 비어 있는 부피 공간, 상기 공간 객체의 부분 객체, 및 상기 공간의 방향 중 적어도 하나를 산출할 수 있다. 상기 공간은 실내외 공간을 막론한다.When the object is a spatial object, the metrology model M431 indicates a system position that is the origin of at least one of an orientation and coordinates of the spatial object, a Manhattan space that is a volume space including an object included in the space of the spatial object, and the space. At least one of a floor plane detected in , a vector of gravity applied to the space, an empty volume space excluding an object included in the space in the space, a partial object of the space object, and a direction of the space can be calculated have. The space is irrespective of indoor or outdoor space.
여기에서 공간 객체의 부분 객체라 함은, 그 공간 객체의 공간을 구성하는 부분 객체를 지칭하는바, 그 부분 객체는 그 공간에 고정되어 있다. 그러한 공간 객체의 부분 객체의 예시에는 유리 창, 문, 벽, 주방, 도로, 육교 등이 포함될 수 있다.Here, a partial object of a spatial object refers to a partial object constituting the space of the spatial object, and the partial object is fixed in the space. Examples of partial objects of such spatial objects may include glass windows, doors, walls, kitchens, roads, overpasses, and the like.
시스템 위치는 실내 또는 실외 공간 내에서 방위 또는 좌표의 원점의 역할을 하는 본 개시서에 따른 시스템의 위치를 지칭한다.A system location refers to a location of a system according to the present disclosure that serves as an origin of azimuth or coordinates within an indoor or outdoor space.
또한, 상기 공간의 방향이라 함은, 상기 공간 객체인 객체의 방향을 지칭하는바, 본 개시서의 시스템 또는 공간의 일부분을 기준으로 할 수 있다.In addition, the direction of the space refers to the direction of the object that is the spatial object, and may be based on the system or part of the space of the present disclosure.
3차원 계측에서서의 깊이 정보는 상기 영상으로부터 깊이 정보를 도출하는 인공지능 방법론에 의하여 예측되거나 라이다, 레이더, 초음파 센서 등 기타 센서(340)로부터 상기 영상에 대해 보충적으로 제공될 수 있다.Depth information in 3D measurement may be predicted by an artificial intelligence methodology for deriving depth information from the image or may be supplementally provided with respect to the image from other sensors 340 such as lidar, radar, and ultrasonic sensors.
구체적으로, 단계(S3400)에서 상기 3차원 계측은, 상기 객체 또는 상기 객체의 일부를 이루거나 상기 객체에 귀속된 구성요소인 부분 객체 중에서 적어도 일 부분의 길이의 편차가 소정의 기준보다 작은 조건을 만족하는 객체인 길이 기준 객체를 식별하고, 그 길이 기준 객체의 2차원 길이를 측정하는 프로세스(S3410), 및 상기 객체의 바닥 평면을 검출하는 프로세스(S3420)를 더 포함할 수 있다.Specifically, in step S3400, the three-dimensional measurement is performed under the condition that the deviation of the length of at least one part among the object or the partial object that forms a part of the object or is a component belonging to the object is smaller than a predetermined criterion. The method may further include a process ( S3410 ) of identifying a length reference object that is a satisfying object, measuring a two-dimensional length of the length reference object ( S3410 ), and a process ( S3420 ) of detecting a floor plane of the object.
이 3차원 계측의 목적은, 하나 이상의 객체의 정보를 이용하여, 본 개시서의 시스템과 객체 간의 상대적 위치 또는/및 객체의 절대적 위치를 파악하는 것이다.The purpose of this three-dimensional measurement is to determine the relative position between the system of the present disclosure and the object or/and the absolute position of the object using information of one or more objects.
예를 들어, 길이 기준 객체의 일 예시인 성인 남자의 키는 문, 연필, 컵 등 다른 카테고리에 속하는 객체의 기준 길이로 활용될 수 있는바, 이는 거리 측정에도 이용될 수 있다.For example, the height of an adult male, which is an example of a length reference object, may be used as a reference length of an object belonging to another category, such as a door, a pencil, and a cup, which may also be used for distance measurement.
또한, 길이 기준 객체의 다른 예시로서, 하나의 전체 영상 또는 공간(또는 공간 객체)에서 복수개의 문이 검출되면, 한 공간에서 동일한 디자인의 문은 유사한 높이를 가지므로 거리 판별을 위한 길이 기준 객체로 이용될 수 있다.In addition, as another example of the length reference object, when a plurality of doors are detected in one entire image or space (or space object), the doors of the same design in one space have similar heights, so they are used as length reference objects for distance determination. can be used
그리고 부분 객체 또한 그 부분 객체의 길이의 편차가 상대적으로 작은 객체인 경우에 길이 기준 객체로 이용될 수 있는바, 예컨대, 사람의 안구의 가로 길이는 표준 편차가 상대적으로 작으므로 길이 기준 객체로 이용될 수 있다.In addition, a partial object can also be used as a length reference object when the deviation of the length of the partial object is a relatively small object. For example, the horizontal length of the human eye is used as a length reference object because the standard deviation is relatively small can be
프로세스(S3410)에서 길이 기준 객체의 2차원 길이를 측정함에 있어서 그 길이 기준 객체의 자세 정보가 있으면 길이 기준 객체의 자세로 인한 기울기를 반영하여 보정된 길이를 산출할 수 있다. 객체의 자세 및 그 산출에 관하여는 후술하기로 한다.In measuring the two-dimensional length of the length reference object in the process S3410, if there is posture information of the length reference object, a corrected length may be calculated by reflecting the inclination due to the posture of the length reference object. The posture of the object and its calculation will be described later.
바닥 평면floor plane
프로세스(S3420)에서의 객체의 바닥 평면의 검출에는 여러 가지 방식이 있을 수 있는바, 예시적으로 상기 객체에 작용하는 중력의 벡터 방향으로 상기 객체에 닿은 바닥 평면을 검출하는 방식이 있을 수 있다.There may be various methods for detecting the floor plane of the object in the process S3420, for example, there may be a method of detecting the floor plane touching the object in a vector direction of gravity acting on the object.
또한, 객체의 바닥 평면의 검출에는, 맨하탄 공간 검출을 이용하는 방식, 상기 길이 기준 객체가 2개 이상 존재하는 경우 상기 길이 기준 객체 간의 바닥 평면을 생성하여 이를 확장하는 방식, 및 상기 길이 기준 객체가 이동한 경우 그 이동 전의 길이 기준 객체와 이동 후의 길이 이동 객체 사이에 바닥 평면을 생성하고 이를 확장하는 방식도 있을 수 있다.In addition, in the detection of the floor plane of the object, a method using Manhattan space detection, a method of generating a floor plane between the length reference objects and extending them when there are two or more length reference objects, and a method of moving the length reference object In one case, there may be a method of creating a floor plane between the length reference object before the movement and the length movement object after the movement and extending it.
도 6a 내지 도 6d는 본 개시서의 영상 처리 방법에서 객체의 바닥 평면을 검출하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.6A to 6D are flowcharts exemplarily illustrating methods that may be used to detect a floor plane of an object in the image processing method of the present disclosure.
도 6a를 참조하면, 객체의 바닥 평면의 검출(S3420)의 구체적인 제1 실시 예는, 적어도 하나의 카테고리 중에서 어느 카테고리에 해당하는 객체 또는 그 객체의 부분 객체 중에서 적어도 일 부분의 크기의 편차가 소정의 기준보다 작은 조건을 만족하는 카테고리인 크기 유사 카테고리에 해당하는 적어도 하나의 크기 유사 객체를 검출하는 단계(S3422a)로 시작한다. 여기에서의 크기는 폭, 높이, 깊이 중 하나 이상일 수 있다. Referring to FIG. 6A , in a specific first embodiment of detecting the floor plane of an object ( S3420 ), a deviation in the size of an object corresponding to a certain category among at least one category or at least one part of a partial object of the object is predetermined. It starts with the step of detecting at least one size similarity object corresponding to the size similarity category, which is a category that satisfies a condition smaller than the criterion of ( S3422a ). Here, the size may be one or more of width, height, and depth.
예컨대, 크기의 편차가 소정의 기준보다 작은 조건을 만족하는 카테고리는 책상의 카테고리일 수 있다. 특정한 종류의 책상은 높이의 편차가 비교적 작다. 어떤 종류의 책상의 높이가 평균적으로 70 ~ 74 cm라고 가정하면, 그 크기 유사 객체의 표준 길이는 72 cm로 정할 수 있다.For example, a category satisfying a condition in which the size deviation is smaller than a predetermined criterion may be a desk category. Certain types of desks have relatively small variations in height. Assuming that the height of a certain kind of desk is 70 ~ 74 cm on average, the standard length of an object similar to that size can be set as 72 cm.
임의선택적으로, 상기 크기 유사 객체는 동시에 바닥 기준 객체일 수도 있다. 바닥 기준 객체는 바닥 평면의 검출에 이용되는 객체로서, 그 객체 세그먼테이션의 적어도 일 부분이 일반적으로 바닥에 닿아 있는 객체를 지칭한다. 예를 들어, 책상 및 의자는 그러한 바닥 기준 객체에 해당한다.Optionally, the size-like object may be a floor reference object at the same time. The floor reference object is an object used for detection of a floor plane, and refers to an object in which at least a portion of the object segmentation generally touches the floor. For example, desks and chairs correspond to such floor reference objects.
단계(S3422a) 다음으로, 프로세스(S3420)의 제1 실시 예는, 상기 크기 유사 객체의 객체 세그먼테이션의 최하단에 대한 접점인 바닥 접촉점을 검출하는 단계(S3424a)를 포함한다.Step S3422a Next, a first embodiment of the process S3420 includes a step S3424a of detecting a bottom contact point that is a contact point for the lowermost end of the object segmentation of the size-like object.
도 7a은 본 개시서의 영상 처리 방법에 의하여 획득되는 객체 세그먼테이션을 예시적으로 나타낸 도면이다.7A is a diagram exemplarily illustrating object segmentation obtained by the image processing method of the present disclosure.
객체 세그먼테이션을 획득하는 방법은 통상의 기술자에게 알려져 있는데, 예를 들어, 비특허문헌인 논문 Mo, K., Zhu, S., Chang, A. X., Yi, L., Tripathi, S., Guibas, L. J., & Su, H. (2019). PartNet: A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. 을 참고할 수 있다.Methods for obtaining object segmentation are known to those skilled in the art, for example, in the non-patent papers Mo, K., Zhu, S., Chang, A. X., Yi, L., Tripathi, S., Guibas, L. J. , & Su, H. (2019). PartNet: A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level 3D Object Understanding. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. can be referred to.
도 7a을 참조하면, 예시된 의자의 객체 세그먼테이션 중에서 의자 다리에 해당하는 영역(712, 714, 716, 718)의 최하단은 바닥에 접촉하는 것으로 간주할 수 있는바, 그 최하단에 대한 접점인 바닥 접촉점(720)을 검출할 수 있다. 다른 예시로서, 문의 객체 세그먼테이션의 최하단은 바닥에 접촉하는바, 이에 대한 접점인 바닥 접촉점을 검출할 수 있다.Referring to FIG. 7A , among the exemplified object segmentation of the chair, the lowermost end of the regions 712 , 714 , 716 , and 718 corresponding to the chair leg may be considered to be in contact with the floor. 720 can be detected. As another example, since the lowermost end of the door object segmentation contacts the floor, a floor contact point that is a contact point may be detected.
단계(S3424a) 다음으로, 프로세스(S3420)의 제1 실시 예는, 상기 크기 유사 객체의 2차원 길이에 기초하여 상기 크기 유사 객체의 3차원 거리를 결정하는 단계(S3426a)를 포함한다. 예를 들어, 멀리 위치한 의자는 보다 가까이 위치한 의자에 비해 2차원 길이(높이), 폭 또는/및 깊이 중 적어도 하나(하나 이상)가 작게 측정되므로, 이를 이용하여 상기 3차원 거리를 결정할 수 있다.Step S3424a Next, a first embodiment of the process S3420 includes determining a three-dimensional distance of the size-like object based on the two-dimensional length of the size-like object (S3426a). For example, since at least one (one or more) of a two-dimensional length (height), width, and/or depth is measured to be smaller than a chair positioned closer to a chair positioned farther away, the three-dimensional distance may be determined using this.
단계(S3426a) 다음으로, 프로세스(S3420)의 제1 실시 예는, 상기 바닥 접촉점(720)을 서로 연결하여 3차원 기준 평면(730)을 생성하고, 상기 3차원 기준 평면을 확장하여 바닥 평면(740)을 생성하는 단계(S3428a)를 더 포함한다. 도 7a을 참조하면, 의자 다리의 최하단을 서로 연결하여 3차원 기준 평면이 생성될 수 있고, 이는 바닥 평면(740)으로 더 확장될 수 있다.After step S3426a, the first embodiment of the process S3420 connects the floor contact points 720 to each other to create a three-dimensional reference plane 730, and expands the three-dimensional reference plane to form a floor plane ( It further includes generating (S3428a) 740). Referring to FIG. 7A , a three-dimensional reference plane may be generated by connecting the lowermost ends of the chair legs to each other, which may further extend to the floor plane 740 .
여기에서, 3차원 기준 평면으로부터의 확장은 중력 수평 객체의 모서리, 벽면의 시작점, 중력 수평 객체의 최하단 등의 경계까지 수행되는바, 그 결과가 바닥 평면이다. 여기에서 중력 수평 객체는 일반적으로 중력 방향에 나란하게 직립되도록 배치되는 객체를 지칭하는바, 예컨대, 유리창 및 벽면이 이에 해당한다. 구체적으로, 중력 수평 객체는 중력 벡터에 수평 방향으로 배치된 선 및/또는 면을 가진 객체(예를 들어, 문, 창문 등)일 수 있다. 중력 수평 객체는 바닥 평면에 하나 이상의 선 또는/및 면이 닿아 있는 객체(예를 들어, 문틀, 벽 등)일 수 있다. 중력 수평 객체는 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)이 1 이하일 수도 있다.Here, the extension from the three-dimensional reference plane is performed up to the boundary of the edge of the gravity horizontal object, the starting point of the wall, the lowest end of the gravity horizontal object, and the like, and the result is the floor plane. Here, the gravity horizontal object generally refers to an object disposed to stand upright in parallel to the direction of gravity, for example, a glass window and a wall surface. Specifically, the gravity horizontal object may be an object (eg, a door, a window, etc.) having lines and/or faces disposed in a horizontal direction to the gravity vector. A gravity horizontal object may be an object (eg, a door frame, a wall, etc.) with one or more lines and/or faces touching the floor plane. Gravity A horizontal object may have a horizontal to vertical ratio (a value obtained by dividing a horizontal length by a vertical length) of 1 or less.
한편, 다수의 객체를 이용하는 바닥 평면의 검출(S3420)의 제2 실시 예는, 서로의 유사도가 소정의 값과 같거나 그보다 큰 다수의 유사 객체들을 검출하는 단계(S3422b)로 시작한다. 예컨대, 디자인이 일정한 문, 책상, 의자 등이 그러한 유사 객체일 수 있다. Meanwhile, the second embodiment of the detection of the floor plane using a plurality of objects ( S3420 ) starts with the step of detecting a plurality of similar objects having a degree of similarity equal to or greater than a predetermined value ( S3422b ). For example, a door, a desk, a chair, etc. of a certain design may be such a similar object.
본 개시서의 영상 처리 방법이 지속적, 반복적으로 수행될 수 있음을 고려하면, 상기 유사 객체가 존재하는 공간에 이미 상기 영상 처리 방법이 적용된 적이 있으면, 단계(S3422b)에서는 종래에 검출되었던 유사 객체의 위치 및 길이를 참조로 하여 상기 유사 객체들을 검출할 수 있다.Considering that the image processing method of the present disclosure can be continuously and repeatedly performed, if the image processing method has already been applied to a space in which the similar object exists, in step S3422b, the previously detected similar object is The similar objects can be detected with reference to the position and length.
단계(S3422b) 다음으로, 프로세스(S3420)의 제2 실시 예는 상기 다수의 유사 객체들 중 최하단에 위치한 객체인 적어도 하나의 최하단 객체를 검출하는 단계(S3424b)를 더 포함한다. 도 7a의 예시에서와 마찬가지로, 의자의 다리, 문의 최하단은 바닥에 접촉하는바, 의자 및 문은 최하단 객체이다.After the step S3422b, the second embodiment of the process S3420 further includes the step of detecting at least one lowermost object, which is an object located at the lowermost level among the plurality of similar objects (S3424b). As in the example of FIG. 7A , the legs of the chair and the lowermost end of the door are in contact with the floor, and the chair and the door are the lowermost objects.
단계(S3424b) 다음으로, 프로세스(S3420)의 제2 실시 예는 상기 최하단 객체 각각의 객체 세그먼테이션의 최하단에 대한 접점인 바닥 접촉점을 검출하는 단계(S3426b)를 더 포함하고, 단계(S3426b) 다음으로 상기 바닥 접촉점을 서로 연결하여 3차원 기준 평면을 생성하고, 그 3차원 기준 평면을 확장하여 바닥 평면을 생성하는 단계(S3428b)를 더 포함한다.After step S3424b, the second embodiment of the process S3420 further includes a step S3426b of detecting a bottom contact point that is a contact point for the lowest end of the object segmentation of each of the lowermost objects, and following step S3426b The method further includes generating a three-dimensional reference plane by connecting the floor contact points to each other, and generating a floor plane by expanding the three-dimensional reference plane (S3428b).
전술한 제2 실시 예의 변형례로서, 프로세스(S3420)는, 서로의 유사도가 소정의 값과 같거나 그보다 큰 다수의 유사 객체들을 검출하는 단계(S3422b'), 상기 다수의 유사 객체들 중 하나의 객체가 상기 다수의 유사 객체들 중 다른 객체의 완전 상단에 위치하는지 여부를 판정하는 단계(S3424b'), 상기 완전 상단에 위치하는지 여부에 기초하여 상기 다수의 유사 객체들 중 층바닥에 차이가 있는 객체들을 상이한 층바닥 집합들에 포함시키는 단계(S3426b'), 및 상기 상이한 층바닥 집합들 각각에 대하여, 상기 각각의 층바닥 집합에 속하는 객체인 층바닥 집합 객체의 객체 세그먼테이션의 최하단에 대한 접점인 바닥 접촉점을 서로 연결하여 3차원 기준 평면을 생성하고, 상기 3차원 기준 평면을 확장하여 층바닥 평면을 생성함으로서, 상기 층바닥 평면을 2개 이상의 바닥 평면으로서 생성하는 단계(S3428b')를 포함할 수 있다.As a modification of the above-described second embodiment, the process ( S3420 ) includes detecting a plurality of similar objects having a degree of similarity equal to or greater than a predetermined value ( S3422b ′), one of the plurality of similar objects being detected. Step (S3424b') of determining whether an object is located on the complete top of another object among the plurality of similar objects, based on whether the object is located on the complete top Including objects in different floor sets (S3426b'), and for each of the different floor sets, a contact point to the lowest end of object segmentation of a floor set object that is an object belonging to each floor set Creating a three-dimensional reference plane by connecting floor contact points to each other, and generating a floor floor plane by expanding the three-dimensional reference plane, thereby generating the floor floor plane as two or more floor planes (S3428b'). can
도 7b는 본 개시서의 일 실시 예에 따른 영상 처리 방법에 있어서 2개 이상의 바닥 평면을 검출하는 단계들을 설명하기 위한 예시적 도면이다.7B is an exemplary diagram for explaining steps of detecting two or more floor planes in an image processing method according to an embodiment of the present disclosure.
단계(S3422b')는 단계(S3422b)와 같으므로, 도 7b를 참조하여 단계(S3424b') 및 단계(S3426b')의 '완전 상단'에 관하여 설명하면, 먼저, 유사도가 소정의 문턱값 이상인 객체는 그 높이 h가 오차 범위 내에서 동일하다고 가정할 수 있다.Since step S3422b' is the same as step S3422b, the 'complete upper end' of steps S3424b' and S3426b' will be described with reference to FIG. 7B. First, an object having a similarity greater than or equal to a predetermined threshold can be assumed that the height h is the same within the error range.
전체 영상에 있어서 세로축(y축)으로 각각의 객체가 서로 떨어져 위치한다면 (i) 객체 간에 거리가 있거나 (ii) 객체를 지지하는 층바닥의 높이 차이가 있음을 검출할 수 있다. 전체 영상의 가장 왼쪽 하단을 좌표계의 원점으로 삼으면, 객체 간에 거리가 있는 경우에는, 다른 객체(700a)에 비해 낮은 y축 좌표값을 가지는 객체(700b)가 촬영 장치에 더 가까이 있으므로 높이(hb)가 더 크고, 상대적으로 더 높은 y축 좌표값을 가지는 객체(700a)의 높이(ha)는 높이(hb)에 비하여 일정 비율로 작아져야 한다.If each object is located apart from each other along the vertical axis (y-axis) in the entire image, it can be detected that (i) there is a distance between the objects or (ii) there is a difference in height of the floor that supports the object. If the leftmost lower end of the entire image is taken as the origin of the coordinate system, and when there is a distance between the objects, the object 700b having a lower y-axis coordinate value than the other object 700a is closer to the imaging device, so the height (hb) ) is larger and the height ha of the object 700a having a relatively higher y-axis coordinate value should be reduced by a certain ratio compared to the height hb.
즉, y축 좌표값에 따라 일정 비율로 높이가 달라지는 객체들(예컨대, 700b 및 700a), 및 가로축(x축) 좌표값에 차이가 있으나 y축 좌표값에 있어서는 일정 수준 이하의 차이만 있는 객체들(예컨대, 700b 및 700d)은 동일한 층바닥에 존재한다고 판정하여 이에 대응하는 상기 층바닥 집합을 생성할 수 있다.That is, objects (eg, 700b and 700a) whose height varies at a certain rate according to the y-axis coordinate value, and objects with a difference in the horizontal axis (x-axis) coordinate value, but with a difference below a certain level in the y-axis coordinate value It is determined that the groups (eg, 700b and 700d) exist in the same floor, and thus the corresponding floor set may be generated.
만약, y축 좌표값이 다른 객체(700a)보다 크지만, 그 다른 객체(700a)의 높이(ha)로부터 일정 비율로 높이(hc)가 줄어들지 않거나 높이(hc)가 같거나 더 커지는 객체(700c)는 서로 다른 층바닥 위에 존재하는 것으로 판정할 수 있는바, 상이한 층바닥 집합을 생성할 수 있다.If the y-axis coordinate value is greater than that of the other object 700a, the height hc does not decrease at a certain rate from the height ha of the other object 700a, or the height hc is equal to or greater than the object 700c. ) can be determined to exist on different floors, so different sets of floors can be created.
이와 같은 추론 과정을 반복함으로써 상기 층바닥 집합들을 생성할 수 있다.By repeating such an inference process, the floor-to-floor sets can be generated.
대안으로서, 각각의 객체의 높이 대신에 각 객체가 이루는 3차원 기준 평면의 높이 또는 면적이 이용될 수도 있다.Alternatively, instead of the height of each object, the height or area of the three-dimensional reference plane formed by each object may be used.
다른 한편, 바닥 평면의 검출(S3420)에 있어서 맨하탄 공간을 이용하는 제3 실시 예는, 적어도 하나의 카테고리 중에서 어느 카테고리에 해당하는 객체 또는 그 객체의 부분 객체 중에서 적어도 일 부분의 길이의 편차가 소정의 기준보다 작은 조건을 만족하는 카테고리인 길이 유사 카테고리에 해당하는 적어도 하나의 길이 유사 객체를 검출하는 단계(S3422c)로 시작한다.On the other hand, in the third embodiment using the Manhattan space in the detection of the floor plane ( S3420 ), an object corresponding to a certain category among at least one category or a deviation in the length of at least one part among partial objects of the object is a predetermined value. It starts with the step of detecting at least one length similarity object corresponding to the length similarity category, which is a category that satisfies a condition smaller than the reference ( S3422c ).
그러한 길이 유사 객체에는 높이의 편차가 비교적 작은 책상이 포함될 수 있다.Such length-like objects may include desks with relatively small variations in height.
단계(S3422c) 다음으로, 프로세스(S3420)의 제3 실시 예는, 상기 길이 유사 객체의 집합에 의하여 생성되는 맨하탄 공간을 검출하는 단계(S3424c), 상기 맨하탄 공간의 바닥을 검출하는 단계(S3426c), 및 상기 맨하탄 공간의 바닥을 수평 방향으로 확장하여 바닥 평면을 생성하는 단계(S3428c)를 더 포함한다. Step S3422c Next, a third embodiment of the process S3420 includes the steps of detecting a Manhattan space created by the set of length-like objects (S3424c), and detecting the bottom of the Manhattan space (S3426c) , and expanding the floor of the Manhattan space in a horizontal direction to generate a floor plane (S3428c).
더 구체적으로, 상기 맨하탄 공간의 검출(S3424c)은, 상기 객체 중 바닥을 이루는 객체인 바닥 객체를 검출하고 상기 바닥 객체의 경계를 생성하는 제1 단계(S3424c-1), 상기 바닥 객체의 상기 경계에 대해 수직을 이루는 객체인 벽체 객체를 검출하는 제2 단계(S3424c-2), 및 상기 바닥 객체 외의 객체로서, 상기 벽체 객체에 대해 수직을 이루는 객체인 천장 객체를 검출하는 제3 단계(S3424c-3)로 구성될 수 있다. More specifically, the detection of the Manhattan space (S3424c) includes a first step (S3424c-1) of detecting a floor object that is an object forming a floor among the objects and generating a boundary of the floor object (S3424c-1), the boundary of the floor object A second step of detecting a wall object that is an object perpendicular to (S3424c-2), and a third step of detecting a ceiling object that is an object perpendicular to the wall object as an object other than the floor object (S3424c- 3) can be configured.
즉, 여기에서의 맨하탄 공간은 바닥 객체, 벽체 객체, 천장 객체에 의하여 둘러싸인 공간을 지칭한다. 바닥 객체와 수직을 이루는 벽체 객체의 예시에는 유리 창, 문 등이 있다.That is, the Manhattan space here refers to a space surrounded by a floor object, a wall object, and a ceiling object. Examples of wall objects perpendicular to the floor object include a glass window, a door, and the like.
전술한 실시 예들과 달리 바닥 평면의 검출(S3420)에 있어서 동일한 패턴을 가진 객체들을 이용하는 제4 실시 예는, 동일한 패턴을 가진 다수의 객체인 동일 패턴 객체들을 검출하는 단계(S3422d)로부터 시작한다.Unlike the above-described embodiments, the fourth embodiment using objects having the same pattern in the detection of the floor plane ( S3420 ) starts with the step ( S3422d ) of detecting the same pattern objects, which are a plurality of objects having the same pattern.
단계(S3422d) 다음으로, 프로세스(S3420)의 제4 실시 예는, 상기 동일 패턴 객체들이 검출되면, 상기 동일 패턴 객체들의 하단을 검출하는 단계(S3424d), 및 상기 동일 패턴 객체들 간의 폐색 및 상기 동일 패턴 객체들 간 영상에서의 길이 차이 중 하나에 기초하여 상기 동일 패턴 객체들 간의 상대 거리를 측정하는 단계(S3426d)를 더 포함한다.After step S3422d, a fourth embodiment of the process S3420 includes, when the same pattern objects are detected, detecting lower ends of the same pattern objects (S3424d), and occlusion between the same pattern objects and the The method further includes measuring a relative distance between the same pattern objects based on one of the length differences in the image between the same pattern objects (S3426d).
예를 들어, 단계(S3426d)에서 하나의 객체가 다른 객체의 객체 세그먼테이션을 가린다면, 그 하나의 객체는 다른 객체에 비해 시스템에 더 가까이 있는 것으로 검출될 수 있다. 또한, 패턴이 서로 동일한 객체들 중 하나의 객체가 다른 객체들보다 작다면 그 하나의 객체는 다른 객체들에 비해 시스템으로부터 더 멀리 있는 것으로 검출될 수 있다.For example, if one object obscures the object segmentation of another object in step S3426d, the one object may be detected as being closer to the system than the other object. Also, if one of the objects having the same pattern is smaller than the other objects, the one object may be detected as being farther away from the system than the other objects.
단계(S3426d) 다음으로, 프로세스(S3420)의 제4 실시 예는, 상기 동일 패턴 객체들 중 2 이상의 객체들의 바닥 접점으로부터, 또는 동일 패턴 객체들 중 하나의 객체에 포함된 3개 이상의 점으로부터 가상 평면을 생성하는 단계(S3428d)를 더 포함한다. 생성된 가상 평면이 여러 개인 경우에, 통상의 기술자는 길이, 상태 및 위치의 차이에 따라 그 여러 개의 가상 평면을 각 층으로 하는 층별 가상 평면을 생성할 수 있음을 쉽게 이해할 것이다.Next to step S3426d, a fourth embodiment of the process S3420 is performed virtual from the bottom contact point of two or more of the same pattern objects, or from three or more points included in one of the same pattern objects. The method further includes generating a plane (S3428d). When there are several generated virtual planes, a person skilled in the art will easily understand that a virtual plane for each floor can be created using the plurality of virtual planes as each floor according to differences in length, state, and position.
단계(S3428d) 다음으로, 프로세스(S3420)의 제4 실시 예는, 상기 가상 평면을 확장하여 바닥 평면을 생성하는 단계(S3429d)를 더 포함한다.Next to step S3428d, a fourth embodiment of the process S3420 further includes generating a floor plane by expanding the virtual plane (S3429d).
이제, 다시 단계(S3400)에서의 상기 3차원 계측으로 돌아와 이에 관하여 계속 설명하면, 상기 3차원 계측은, 바닥 평면의 검출(S3420) 후, 검출된 바닥 평면 상에 가상의 길이 기준선을 설정하는 프로세스(S3430); 및 상기 공간 객체의 방위 및 좌표 중 적어도 하나의 원점이 되는 시스템 위치와 상기 객체 사이의 거리 또는 상기 시스템 위치를 기준으로 한 상기 객체의 위치를 측정하는 프로세스(S3440)를 더 포함할 수 있다.Now, returning to the three-dimensional measurement in step S3400 and continuing to explain this, the three-dimensional measurement is a process of setting a virtual length reference line on the detected floor plane after the detection of the floor plane (S3420). (S3430); and a process (S3440) of measuring a distance between the object and a system position, which is the origin of at least one of the orientation and coordinates of the spatial object, or the position of the object based on the system position.
한편, 단계(S3400)에서의 상기 2차원 계측은, 상기 객체의 부분 객체들 사이의 상대적 위치에 기초하여 상기 객체의 2차원 자세 및 2차원 방향을 산출하는 자세 및 방향 계측, 상기 객체의 2차원 넓이를 산출하는 넓이 계측 등을 포함할 수 있는바, 이는 상세 분류 모듈(4300)이 상세 분류 모델(M430)의 계측 모델(M431)을 이용하여 수행될 수 있다. Meanwhile, the two-dimensional measurement in step S3400 includes posture and direction measurement for calculating the two-dimensional posture and two-dimensional direction of the object based on the relative positions between the partial objects of the object, and the two-dimensionality of the object. Area measurement for calculating the area may be included, and this may be performed by the detailed classification module 4300 using the measurement model M431 of the detailed classification model M430.
2차원 계측의 성격 상, 여기에서의 넓이는 깊이를 고려하지 않은 전체 영상 또는 객체 영상에서의 넓이를 의미한다. 이 2차원 넓이의 계측은 객체 세그먼테이션의 분류 및 계측에 의할 수 있다.Due to the nature of the two-dimensional measurement, the area here means the area in the entire image or object image without considering the depth. Measurement of this two-dimensional area may be performed by classification and measurement of object segmentation.
또한, 단계(S3400)에서 상기 객체의 특성을 생성하기 위하여, 상세 분류 모델(M430)은, 상기 객체의 일부를 이루거나 상기 객체에 귀속된 구성요소인 부분 객체의 정보, 상기 객체의 심화 분류 정보, 상기 객체의 주요 색상, 상기 객체의 종체, 상기 객체의 주체, 상기 객체의 하나 이상의 재질, 상기 객체의 투명도 및 상기 객체의 자력 이동 가능 여부 중 적어도 하나를 산출하기 위한 심화 특성 모델(M432)을 더 포함할 수 있다.In addition, in order to generate the characteristic of the object in step S3400, the detailed classification model M430 may include information on a partial object that forms a part of the object or is a component belonging to the object, and deep classification information of the object. , an advanced characteristic model (M432) for calculating at least one of the main color of the object, the type of the object, the subject of the object, one or more materials of the object, the transparency of the object, and whether the object can be moved by magnetic force may include more.
여기에서 상기 객체의 심화 분류 정보는 상기 객체의 카테고리를 심화 구분한 정보를 지칭하는바, 예컨대, 객체의 카테고리가 개라면, 그 심화 분류 정보는 그 개의 품종일 수 있다.Here, the deep classification information of the object refers to information obtained by deep classifying the category of the object. For example, if the category of the object is a dog, the deep classification information may be the breed of the dog.
자세 및 행위posture and behavior
또한, 상세 분류 모델(M430)은, 계측 모델(M431) 및 심화 특성 모델(M432)의 처리 결과에 기초하여 상기 객체의 자세를 산출하는 자세 판별 모델(M433)을 더 포함할 수 있고, 자세 판별 모델(M433)로부터 산출된, 시간적으로 연속된 자세에 기초하여 상기 객체의 행위를 분류하는 행위 판별 모델(M434)을 더 포함할 수 있다.In addition, the detailed classification model M430 may further include a posture determination model M433 for calculating the posture of the object based on the processing results of the measurement model M431 and the deep characteristic model M432, and the posture determination It may further include a behavior determination model M434 for classifying the behavior of the object based on the temporally continuous posture calculated from the model M433.
예를 들어, 컴퓨팅 장치(100)의 프로세서(120)는 자세 판별 모델(M433)을 이용하여, 객체에 대응되는 분석 정보로부터, 객체에 대한 자세 정보를 획득할 수 있다.For example, the processor 120 of the computing device 100 may obtain posture information on the object from the analysis information corresponding to the object by using the posture determination model M433 .
또한, 컴퓨팅 장치(100)의 프로세서(120)는 행위 판별 모델(M434)을 이용하여, 객체에 대한 자세 정보로부터, 객체에 대한 행위 정보를 획득할 수 있다.Also, the processor 120 of the computing device 100 may obtain behavior information on the object from the posture information on the object by using the behavior determination model M434 .
여기에서 행위(action)란, 맥락을 반영하지 않은 행동(behavior)과 맥락을 반영한 행위를 모두 포함하는 개념인바, 행동에 관하여는 후술하기로 한다.Here, an action is a concept that includes both a behavior that does not reflect a context and an action that reflects the context, and the behavior will be described later.
객체의 카테고리에 따라 그 자세의 판별 방식이 상이할 수 있으므로 자세 판별 모델(M433)은 카테고리별로 상이한 카테고리별 자세 판별 모델일 수 있다. 예를 들어, 개가 앉아 있는 상태인 것으로 개의 자세를 산출하는 개의 자세 판별 모델과 사람이 앉아 있는 상태인 것으로 사람의 자세를 산출하는 사람의 자세 판별 모델은 상이할 수 있다. 따라서, 자세 판별 모델(M433)에서 객체에 대응되는 분석 정보에 기초하여, 복수의 자세 판별 방식들 중 객체에 적용될 자세 판별 방식이 결정될 수 있다. 자세 판별 모델(M433)은 객체의 카테고리를 나타내는 분류 정보에 따라서 자세의 판별 방식을 상이하게 적용할 수 있다.Since a method for determining a posture may be different according to a category of an object, the posture determination model M433 may be a posture determination model for each category that is different for each category. For example, a dog posture determination model that calculates a dog's posture in a sitting state and a human posture determination model that calculates a human posture in a sitting state may be different from each other. Accordingly, a posture determination method to be applied to an object among a plurality of posture determination methods may be determined based on the analysis information corresponding to the object in the posture determination model M433 . The posture determination model M433 may apply different posture determination methods according to classification information indicating the category of the object.
마찬가지로, 객체의 카테고리에 따라 그 행위의 판별 방식이 상이할 수 있으므로 행위 판별 모델(M434)은 카테고리별로 상이한 카테고리별 행위 판별 모델일 수 있다. 행위 판별 모델(M434)은 객체의 카테고리를 나타내는 분류 정보에 따라서 행위의 판별 방식을 상이하게 적용할 수 있다.Similarly, since a method for determining an action may be different depending on the category of an object, the action determination model M434 may be a different category-specific action determination model for each category. The behavior determination model M434 may apply a different method of determining an action according to classification information indicating a category of an object.
자세 판별 모델(M433)은 분석 정보로부터, 객체에 대응되는 N차원(예를 들어, 1차원, 2차원, 3차원 등)의 자세에 대한 정보를 포함하는, 객체에 대한 자세 정보를 생성할 수 있다. 객체에 대한 자세 정보는 객체에 대해서 시간적으로 연속된 자세에 대한 정보를 포함할 수 있다.The posture determination model M433 may generate posture information about an object, including information about an N-dimensional (eg, one-dimensional, two-dimensional, three-dimensional, etc.) posture corresponding to the object, from the analysis information. have. The posture information on the object may include information on the temporally continuous posture with respect to the object.
행위 판별 모델(M434)은 객체에 대한 자세 정보로부터, 객체에 대응되는 N차원(예를 들어, 1차원, 2차원, 3차원 등)의 이동 벡터를 포함하는, 객체에 대한 행위 정보를 획득할 수 있다. 또한, 행위 판별 모델(M434)은 객체의 자세 정보로부터, 객체에 대응되는 N차원(예를 들어, 1차원, 2차원, 3차원 등)의 행위 분류를 포함하는, 객체의 맥락에 대한 객체의 행위 정보를 생성할 수 있다. 객체의 맥락은 객체의 상태 또는/및 행위의 목적 중 적어도 하나를 포함할 수 있다. 행위 분류는 객체에 포함된 부분 객체의 위치를 식별하고, 부분 객체의 위치에 기초하여, 객체의 자세를 결정하고, 그리고 객체의 자세에 기초하여, 객체의 행위 분류를 결정함으로써 산출될 수 있다. 부분 객체는 객체의 일부 도는 객체의 귀속된 구성요소 중 적어도 하나를 포함할 수 있다.The behavior determination model M434 may obtain behavior information about the object, including the N-dimensional (eg, 1-dimensional, 2-dimensional, 3-dimensional, etc.) movement vector corresponding to the object, from the posture information on the object. can In addition, the behavior determination model M434 includes the N-dimensional (eg, 1-dimensional, 2-dimensional, 3-dimensional, etc.) behavior classification corresponding to the object from the object's posture information, including the object's context. You can create behavioral information. An object's context may include at least one of the object's state and/or the purpose of its behavior. The behavior classification may be calculated by identifying the position of the partial object included in the object, determining the posture of the object based on the position of the partial object, and determining the behavior classification of the object based on the posture of the object. A partial object may include at least one of a part of the object or an attribute belonging to the object.
자세 및 행위의 판별은 2차원적으로도 수행될 수 있고, 3차원적으로도 수행될 수 있다. 따라서, 이동 벡터는 객체의 2차원 방향 또는/및 속도 중 적어도 하나를 포함하는 2차원 이동 벡터를 포함할 수 있다. 또한, 이동 벡터는 영상을 촬영한 촬영 장치의 위치, 속도 또는/및 가속도 중 적어도 하나에 기초하여 산출되는 객체의 3차원 이동 벡터를 포함할 수 있다. Determination of posture and behavior may be performed two-dimensionally or three-dimensionally. Accordingly, the movement vector may include a two-dimensional movement vector including at least one of a two-dimensional direction and/or a velocity of the object. In addition, the movement vector may include a three-dimensional movement vector of the object calculated based on at least one of a position, a speed, and/or an acceleration of a photographing device that has captured an image.
자세 및 행위의 판별이 2차원적으로 수행되는 실시 예에서는, 단계(S3400)에서 상세 분류 모듈(4300)이 시간적으로 연속된 객체 영상들로부터 상기 객체의 2차원 이동 벡터 및 상기 객체의 2차원 행위 분류를 포함하는 상기 객체의 2차원 운동 정보를 산출할 수도 있는바, 상기 2차원 행위 분류는, 상기 객체에 포함된 부분 객체 각각의 위치를 식별하는 단계(S3450a), 자세 판별 모델(M433)을 이용하여 상기 부분 객체 각각의 상대적 위치에 기초하여 상기 객체의 2차원 자세를 결정하는 단계(S3460a), 및 행위 판별 모델(M434)을 이용하여 시간적으로 연속된 상기 객체의 2차원 자세에 기초하여 상기 객체의 2차원 행위 분류를 결정하는 단계(S3470a)를 수행함으로써 산출될 수 있다.In an embodiment in which the determination of posture and behavior is performed two-dimensionally, in step S3400, the detailed classification module 4300 performs a two-dimensional motion vector of the object and a two-dimensional action of the object from temporally consecutive object images. It is also possible to calculate the two-dimensional motion information of the object including the classification, the two-dimensional behavior classification, the step of identifying the position of each partial object included in the object (S3450a), the posture determination model (M433) determining the two-dimensional posture of the object based on the relative position of each of the partial objects using the It may be calculated by performing the step (S3470a) of determining the two-dimensional behavior classification of the object.
여기에서 2차원 이동 벡터는 상기 객체의 2차원적 방향 및 속도를 나타내며, 2차원 행위 분류는 객체의 2차원 자세로부터 판별된 행위의 종류를 나타낸다.Here, the two-dimensional motion vector represents the two-dimensional direction and speed of the object, and the two-dimensional behavior classification represents the type of action determined from the two-dimensional posture of the object.
한편, 자세 및 행위의 판별이 3차원적으로 수행되는 실시 예에서, 단계(S3400)에서 상세 분류 모듈(4300)이 시간적으로 연속된 객체 영상들로부터 상기 객체의 3차원 이동 벡터 및 상기 객체의 3차원 행위 분류를 포함하는 상기 객체의 3차원 운동 정보를 산출할 수도 있는바, 상기 3차원 행위 분류는, 상기 객체에 포함된 부분 객체 각각의 위치를 식별하는 단계(S3450b), 자세 판별 모델(M433)을 이용하여 상기 부분 객체 각각의 상대적 위치에 기초하여 상기 객체의 3차원 자세를 결정하는 단계(S3460b), 및 행위 판별 모델(M434)을 이용하여 시간적으로 연속된 상기 객체의 3차원 자세에 기초하여 상기 객체의 3차원 행위 분류를 결정하는 단계(S3470b)를 수행함으로써 산출될 수 있다.On the other hand, in an embodiment in which the determination of posture and behavior is performed in three dimensions, in step S3400 , the detailed classification module 4300 determines the three-dimensional movement vector of the object and the three-dimensional movement vector of the object from temporally consecutive object images. It is also possible to calculate the three-dimensional motion information of the object including the three-dimensional behavior classification, the three-dimensional behavior classification, the step of identifying the position of each partial object included in the object (S3450b), the posture determination model (M433) ) to determine the three-dimensional posture of the object based on the relative positions of each of the partial objects using (S3460b), and based on the temporally continuous three-dimensional posture of the object using the behavior discrimination model M434 Thus, it can be calculated by performing the step (S3470b) of determining the three-dimensional behavior classification of the object.
2차원 자세 및 행위의 판별과 달리, 3차원 자세의 행위 및 판별에 있어서는, 촬영 장치로부터의 깊이 방향의 움직임도 반영되어야 할 필요가 있으므로, 컴퓨팅 장치(100)는 연동하는 센서(340)를 이용하여 상기 촬영 장치의 위치, 속도 및/또는 가속도 중 적어도 하나(한 개 이상)를 산출 또는 추정하고, 이를 반영하여 상기 객체의 3차원 이동 벡터를 산출할 수 있다.Unlike the determination of the two-dimensional posture and behavior, in the action and determination of the three-dimensional posture, it is necessary to reflect the movement in the depth direction from the imaging device, so the computing device 100 uses the interlocking sensor 340 . Thus, at least one (one or more) of the position, speed, and/or acceleration of the photographing device may be calculated or estimated, and the three-dimensional movement vector of the object may be calculated by reflecting the calculation.
예를 들어, 본 개시서의 시스템이 짐벌 모터(330)를 구동하여 짐벌의 축을 회전시켜 그 시스템을 기준으로 우측 방향으로 달리고 있는 일 객체인 자전거를 추적하면서 그 자전거의 3차원 이동 벡터를 산출하는 때에는, 그 3차원 이동 벡터에는 모터(330)에 의한 이동 벡터와 영상 중의 이동 벡터가 모두 반영될 수 있다.For example, the system of the present disclosure drives the gimbal motor 330 to rotate the axis of the gimbal to track a bicycle, which is an object running in the right direction based on the system, while calculating a three-dimensional movement vector of the bicycle. In this case, both the motion vector by the motor 330 and the motion vector in the image may be reflected in the 3D motion vector.
상기 객체의 3차원 위치 및 3차원 이동 벡터의 산출을 위하여 촬영 장치(200)의 표준 초점 거리, 및/또는 상기 전체 영상 또는 상기 객체 영상의 표준 초점 거리가 이용될 수 있다. 촬영 장치(200)와 객체 사이의 거리, 표준 초점 거리, 객체의 3차원 높이(실제 높이), 영상의 높이(즉, 영상의 세로 크기), 영상에서의 객체의 높이, 촬영 장치(200)의 높이 간의 관계는 다음 수학식 1과 같다.A standard focal length of the photographing apparatus 200 and/or a standard focal length of the entire image or the object image may be used to calculate the 3D position and 3D motion vector of the object. The distance between the photographing device 200 and the object, the standard focal length, the three-dimensional height (actual height) of the object, the height of the image (ie, the vertical size of the image), the height of the object in the image, the photographing device 200 The relationship between the heights is expressed by Equation 1 below.
Figure PCTKR2022003965-appb-img-000001
Figure PCTKR2022003965-appb-img-000001
수학식 1을 이용하여 촬영 장치(200)로부터 객체까지의 거리 또는 객체의 3차원 높이를 계산할 수 있다.Using Equation 1, the distance from the photographing apparatus 200 to the object or the three-dimensional height of the object may be calculated.
촬영 장치(200)로부터 객체까지의 거리를 측정하는 데 이용되는 기준 중 하나인 거리 기준선은, 예컨대, 서로 길이가 동일한 객체들이 2개 이상 검출될 때, 본 개시서의 시스템을 기준으로 하는 동심구를 이용하여 설정되는 거리 기준선일 수 있다. 이 선은 후술하는 기준 평면원 및 계측 평면원으로 구성된다. 이를 설정하는 각 단계는 다음과 같다.The distance reference line, which is one of the criteria used to measure the distance from the imaging device 200 to the object, is, for example, a concentric sphere based on the system of the present disclosure when two or more objects having the same length are detected. It may be a distance reference line set using This line is composed of a reference plane circle and a measurement plane circle, which will be described later. Each step of setting this up is as follows.
도 7c는 본 개시서의 일 실시 예에 다른 영상 처리 방법에 있어서 기준 평면원 및 계측 평면원을 생성하여 이용하는 방식을 설명하기 위한 개념도이다.7C is a conceptual diagram for explaining a method of generating and using a reference plane circle and a measurement plane circle in an image processing method according to an embodiment of the present disclosure;
도 7c를 참조하면, 먼저, 중력에 수직인 평면 방향으로 기준 평면원(750)을 생성하는데, 여기에서 중력에 수직임을 판단할 때, 가속도계, 자이로스코프 및/또는 상기 중력 수평 객체 중 적어도 하나(한 개 이상)가 이용될 수 있다. Referring to FIG. 7C , first, a reference plane circle 750 is generated in a plane direction perpendicular to gravity, wherein when determining that it is perpendicular to gravity, at least one of an accelerometer, a gyroscope and/or the gravity horizontal object ( more than one) may be used.
여기에서 기준 평면원(750)은 상기 시스템, 즉, 촬영 장치(200)를 원점으로 하는 동심구(740)의 표면, 즉 동심구면을 xy 평면으로 자른 단면의 형상에 해당한다.Here, the reference plane circle 750 corresponds to the shape of the cross-section of the system, that is, the surface of the concentric sphere 740 with the imaging device 200 as the origin, that is, the concentric sphere surface cut in the xy plane.
다음으로, 길이 유사 객체 중 서로 길이가 동일한 객체인 길이 동일 객체들을 검출한다.Next, objects having the same length, which are objects having the same length, among objects of similar length, are detected.
도 7c의 동심구면 상의 z축으로부터 각도(θ)만큼 떨어진 점들의 집합은 계측 평면원이라고 지칭할 때, 상기 길이 동일 객체들이 각도(θ)별 계측 평면원들 사이에 개재함을 이용하여 상기 객체들 사이의 각도(θ) 좌표값의 차이를 측정한다. When the set of points separated by an angle θ from the z-axis on the concentric sphere of FIG. 7C is referred to as a metrology plane circle, the object using the same length is interposed between the metrology plane circles for each angle θ. Measure the difference in angle (θ) coordinate values between them.
그러면, 상기 각도 좌표값의 차이를 이용하여 상기 촬영장치(200)로부터 각각의 객체까지의 거리가 측정될 수 있는바, 이때, 표준 초점 거리, 기타 촬영 장치의 렌즈 및/또는 조리개 크기 중 적어도 하나(한 개 이상)의 광학적 특성이 보조적으로 활용될 수 있다.Then, the distance from the photographing device 200 to each object may be measured using the difference in the angular coordinate values. In this case, at least one of the standard focal length and the lens and/or aperture size of the photographing device. (one or more) optical properties may be used as an auxiliary.
한편, 행위 판별 모델(M434)을 포함하여 본 개시서에 열거된 모델들은 지도 학습 또는 강화 학습에 의하여 생성될 수 있다. 객체의 행위들 각각에 대응하는 해석값(텍스트 또는 분류 인덱스)과 동영상 정보를 지도 학습의 훈련 데이터로 이용할 수 있음이 알려져 있다. 또한, 사용자에게 행위 판별 모델(M434)에 의한 행위 정보를 출력하고, 사용자가 이를 보고서 긍정 또는 부정의 피드백을 주면 이를 이용하여 모델을 수정하는 방식의 강화학습이 이용될 수도 있다.Meanwhile, the models listed in the present disclosure including the behavior discrimination model M434 may be generated by supervised learning or reinforcement learning. It is known that an interpretation value (text or classification index) and video information corresponding to each behavior of an object can be used as training data for supervised learning. In addition, reinforcement learning of a method of outputting behavior information by the behavior discrimination model M434 to the user and modifying the model using the output when the user reports positive or negative feedback may be used.
맥락(context)context
집합으로서의 상세 분류 모델(M430)은 상기 전체 영상에서 맥락을 추론하는 맥락 모델(M435)을 더 포함할 수 있다. 맥락은 객체의 상태 및 행위의 목적을 기술한 것이다. 그 일 예시로서, 주방에서 칼로 오렌지 껍질을 벗기고 있는 사람의 영상을 입력받았다면 맥락 모델(M435)은 '주방에 있는 사람이 칼로 오렌지 껍질을 벗기고 있다.'라는 문장 또는 이에 상응하는 신호를 맥락으로 출력할 수 있다.The detailed classification model M430 as a set may further include a context model M435 for inferring a context from the entire image. Context is a description of the object's state and the purpose of its behavior. As an example, if an image of a person peeling oranges with a knife in the kitchen is input, the context model M435 uses the sentence 'The person in the kitchen is peeling oranges with a knife' or a signal corresponding to the context. can be printed out.
행동(behavior)은 맥락을 반영하지 않은 객체의 행위(action)를 지칭하는데, 예컨대, 농구장에서 달리는 사람과 런닝 머신 위에서 달리는 사람은 모두 '달리고 있다'라는 행동을 보인다. 이러한 행동(behavior)은 후술하는 맥락과 합성하여, 맥락이 고려된 행위(action)가 결정될 수 있다. 이에 따르면 전자는 '농구를 하는' 행위에 해당하고, 후자는 '런닝 머신을 이용하는' 행위에 해당한다.Behavior refers to an action of an object that does not reflect context. For example, both a person running on a basketball court and a person running on a treadmill show the action of 'running'. Such behavior may be combined with a context to be described later, and an action in consideration of the context may be determined. According to this, the former corresponds to the act of 'playing basketball', and the latter corresponds to the act of 'using a treadmill'.
구체적으로, 맥락은 상기 전체 영상에 나타난 개별 객체 각각의 행위(action) 및 상태(state) 중 적어도 하나, 및 상기 행위에 의하여 상기 개별 객체와 상호작용하는 것으로 검출되는 타 객체인 맥락 상호작용 객체를 포함하는 객체 맥락일 수 있다.Specifically, the context includes at least one of an action and a state of each individual object displayed in the entire image, and a context interaction object that is another object detected as interacting with the individual object by the action. It may be the containing object context.
또한, 맥락은 상기 전체 영상에 나타난 공간 객체 및 상기 공간 객체 외의 개별 객체 각각으로부터 추론되는 상기 공간 객체의 종류인 장소, 상기 개별 객체 각각의 행위 및 상태 중 적어도 하나, 상기 행위의 주체에 해당하는 개별 객체인 행위자 및 상기 행위에 의하여 상기 개별 객체와 상호작용하는 것으로 검출되는 객체인 맥락 상호작용 객체를 포함하는 공간 맥락일 수 있다.In addition, the context refers to at least one of a place that is a type of the spatial object inferred from each of the spatial object and individual objects other than the spatial object displayed in the entire image, the action and state of each individual object, and an individual corresponding to the subject of the action. It may be a spatial context including an actor, which is an object, and a context interaction object, which is an object that is detected as interacting with the individual object by the action.
일 실시 예에서, 맥락이 고려된 행위를 결정하기 위한 행동과 맥락의 합성은 인공 신경망 모델을 이용한 지도 학습으로서 구현될 수 있다. 예를 들면, 연속된 영상, 즉, 동영상(video)의 한 장면을 입력 데이터로 삼고, 객체의 행동 및 공간 맥락을 포함하는 언어 해석(즉, 언어로 나타낸 데이터)을 정답인 출력 데이터로 레이블링한 훈련 데이터를 이용하여 인공 신경망 모델을 훈련시킬 수 있다.In an embodiment, the synthesis of an action and a context for determining a context-considered action may be implemented as supervised learning using an artificial neural network model. For example, a sequence of images, that is, one scene of a video, is taken as input data, and language interpretation (ie, data expressed in language) including the behavior and spatial context of an object is labeled as the correct output data. An artificial neural network model can be trained using the training data.
이는, 비특허문헌인 논문 Wu, Z., Yao, T., Fu, Y., & Jiang, Y.-G. (2017). Deep learning for video classification and captioning. In Frontiers of Multimedia Research (pp. 3-29). ACM.에서 밝혀진 바와 같다.This is a non-patent literature article Wu, Z., Yao, T., Fu, Y., & Jiang, Y.-G. (2017). Deep learning for video classification and captioning. In Frontiers of Multimedia Research (pp. 3-29). As found in ACM.
한편, 각각의 객체마다 그 객체의 행위를 결정하는 더 구체적인 방법은, Wu, C.-Y., Girshick, R., He, K., Feichtenhofer, C., & Krahenbuhl, P. (2020). A Multigrid Method for Efficiently Training Video Models. In 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://doi.org/10.1109/cvpr42600.2020.00023을 참조할 수 있다.On the other hand, a more specific method for determining the behavior of each object for each object is described in Wu, C.-Y., Girshick, R., He, K., Feichtenhofer, C., & Krahenbuhl, P. (2020). A Multigrid Method for Efficiently Training Video Models. In 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. See https://doi.org/10.1109/cvpr42600.2020.00023.
한편, 행동이 공간 맥락과 이질적인 경우가 있을 수 있는데, 이 경우에는 행위가 맥락에 맞지 않게 해석될 여지가 있다. 예컨대, 카페에서 달리기를 하고 있는 사람인 객체에 대해서는 '달리기를 하고 있다'라는 행위가 아닌 '급하게 움직이고 있다'라는 행위로 해석될 수 있다. 이러한 불일치는 행위가 맥락을 충분히 반영하고 있지 못하거나 맥락이 행위를 충분히 반영하고 있지 못하기 때문이다. 즉, 행위는 맥락으로부터 추론될 수 있고, 맥락 또한 행위로부터 추론될 수 있으므로, 행위로부터 맥락을 추론하고, 맥락으로부터 행위를 다시 추론하는 순환적인 처리가 요구될 수 있는데, 이는, 예컨대, 비특허문헌인 논문 Ullah, A., Ahmad, J., Muhammad, K., Sajjad, M., & Baik, S. W. (2018). Action Recognition in Video Sequences using Deep Bi-Directional LSTM With CNN Features. IEEE Access, 6, 1155-1166. https://doi.org/10.1109/access.2017.2778011에 개시된 바와 같은 순환 신경망(RNN) 또는 양방향 LSTM 등의 신경망 모델에 의하여 달성될 수 있다.On the other hand, there may be cases where the action is heterogeneous with the spatial context, and in this case, there is room for the action to be interpreted out of context. For example, for an object that is a person running in a cafe, it can be interpreted as an act of 'moving in a hurry' rather than an act of 'running'. This discrepancy is because the behavior does not sufficiently reflect the context or the context does not sufficiently reflect the behavior. That is, since the action can be inferred from the context, and the context can also be inferred from the action, a cyclical process of inferring the context from the action and inferring the action back from the context may be required, which, for example, in non-patent literature In the dissertation Ullah, A., Ahmad, J., Muhammad, K., Sajjad, M., & Baik, S. W. (2018). Action Recognition in Video Sequences using Deep Bi-Directional LSTM With CNN Features. IEEE Access, 6, 1155-1166. This may be achieved by a neural network model such as a recurrent neural network (RNN) or a bidirectional LSTM as disclosed in https://doi.org/10.1109/access.2017.2778011.
우선순위Priority
이제, 전술한 객체의 중요도와 밀접하게 연관되는 객체의 우선순위에 관하여 상술한다. 여기에서 중요도는 우선순위를 부여하기 위하여 다뤄지는 값인바, 통상적으로 각 객체의 중요도를 산출한 후, 그 중요도에 기반하여 매긴 순서를 우선순위로 할 수 있다.Now, the priority of the object closely related to the importance of the aforementioned object will be described in detail. Here, since the importance is a value handled to give priority, in general, after calculating the importance of each object, an order based on the importance may be prioritized.
객체의 우선순위에는 상기 객체의 권한에 기초하여 상기 객체 각각에 대하여 지정되는 권한 기반 우선순위가 포함될 수 있다. 이는 분류된 객체 각각의 권한에 따라 우선순위를 지정하는 것인바, 예를 들어, 본 개시서의 시스템에 대해 특정 사용자인 객체가 최고 권한을 가지고 있다면, 그 특정 사용자에 대해 높은 우선순위를 부여할 수 있다.The priority of the object may include a permission-based priority that is designated for each of the objects based on the permission of the object. This is to assign a priority according to the privileges of each classified object. For example, if an object, which is a specific user, has the highest privilege for the system of the present disclosure, a high priority will be given to the specific user. can
상기 권한 기반 우선순위는 상세 분류 모델(M430)을 이용하여 분석된 상기 객체의 특성에 기초하여 상기 객체가 상기 컴퓨팅 장치를 취급할 수 있도록 미리 정해진 권한자인지 여부를 판별하는 단계, 및 상기 객체가 미리 정해진 권한자라면, 그 권한자에 대하여 미리 정해진 순위를 상기 객체의 상기 권한 기반 우선순위로 설정하는 단계를 수행함으로서 산출될 수 있다. The authority-based priority is determined based on the characteristics of the object analyzed using the detailed classification model (M430), determining whether the object is a predetermined authority to handle the computing device, and the object is If it is a predetermined authority, it may be calculated by performing the step of setting a predetermined priority for the authority to the authority-based priority of the object.
예컨대, 상기 권한자는 사람일 것으로 기대되므로, 먼저 사람인 객체를 검출하고, 그 검출된 사람인 객체에 대해서만 권한 기반 우선순위를 설정할 수 있다.For example, since the authority is expected to be a person, it is possible to first detect an object that is a person, and set the authority-based priority only for the object that is the detected person.
또한, 본 개시서의 컴퓨팅 장치는 전술한 심화 분류 정보를 이용하여 복수 명의 사람 중에서 개개인을 특정할 수 있는바, 그 개개인을 특정하기 위하여 객체의 색상 등 객체의 특성을 이용하거나 그 부분 객체의 특성, 또는 상기 객체의 객체 기록을 이용할 수 있다.In addition, the computing device of the present disclosure can specify an individual from among a plurality of people by using the above-described deep classification information. , or an object record of the object.
한편, 객체의 우선순위에는 객체의 특성들 중 적어도 상기 객체의 카테고리 또는 상기 객체의 심화 분류 정보를 포함하는 적어도 하나의 특성에 따라 구분된 객체 집합들 각각에 대하여 지정되는 분류 기반 우선순위가 있을 수 있다.On the other hand, in the priority of the object, there may be a classification-based priority designated for each of the object sets divided according to at least one characteristic including at least the category of the object or the deep classification information of the object among the characteristics of the object. have.
분류 기반 우선순위는, 사람, 동물, 기타 사물 등의 카테고리 또는 심화 분류 정보에 대하여 미리 설정된 대로 부여되는 우선순위일 수 있는바, 상기 시스템의 권한자는 이를 수동으로 설정할 수 있다. 다른 예시로서, 본 개시서의 컴퓨팅 장치는 상기 시스템의 권한자가 본 개시서의 시스템을 이용하는 패턴에 기초하여 카테고리 또는 심화 분류 정보별 우선순위를 가변적으로 자동 설정할 수도 있다.The classification-based priority may be a priority given in advance to categories such as people, animals, other objects, or the in-depth classification information, and the authority of the system may manually set it. As another example, the computing device of the present disclosure may variably automatically set a priority for each category or deep classification information based on a pattern in which the authority of the system uses the system of the present disclosure.
다음으로, 객체의 우선순위에는 객체의 특성들 중 적어도 상기 객체의 크기를 포함하는 적어도 하나의 특성에 따라 구분되는 객체 집합들 각각에 대하여 지정되는 크기 기반 우선순위가 있을 수 있다.Next, the priority of the object may include a size-based priority designated for each of the object sets divided according to at least one characteristic including at least the size of the object among the characteristics of the object.
상기 크기 기반 우선순위는 상세 분류 모듈(4300)이 상기 객체의 객체 세그먼테이션을 획득하는 단계, 상기 객체 중 상기 전체 영상에서 상기 객체 세그먼테이션의 크기가 차지하는 비율이 소정의 비율과 같거나 그보다 큰 객체를 선별하는 단계, 및 상기 선별된 객체의 상기 객체 세그먼테이션의 크기에 따라 상기 크기 기반 우선순위를 설정하는 단계를 수행함으로써 산출될 수 있다. 이는 객체가 클수록, 또는 본 개시서의 시스템과 객체 간의 거리가 가까울수록 상기 객체의 객체 세그먼테이션이 전체 영상을 차지하는 비율이 클 것이므로, 그 비율이 높을수록 더 중요한 것이라고 보고 높은 우선순위를 설정하는 방식이다.The size-based priority is a step in which the detailed classification module 4300 acquires the object segmentation of the object, and selects an object in which the ratio of the size of the object segmentation in the entire image among the objects is equal to or greater than a predetermined ratio and setting the size-based priority according to the size of the object segmentation of the selected object. This is a method of setting a high priority considering that the larger the object or the closer the distance between the system and the object of the present disclosure is, the greater the object segmentation of the object occupies the entire image. .
또한, 객체의 우선순위에는 객체의 상태들 중 적어도 상기 객체의 행위를 포함하는 적어도 하나의 상태에 따라 구분된 객체 집합들 각각에 대하여 지정되는 행위 기반 우선순위가 있을 수 있다.In addition, the priority of the object may include an action-based priority designated for each of the object sets divided according to at least one state including the behavior of the object among the states of the object.
구체적으로, 상세 분류 모듈(4300)은 특정 행위를 하는 객체를 탐색하여 그 행위에 대응되는 우선순위를 부여할 수 있다. Specifically, the detailed classification module 4300 may search for an object performing a specific action and assign a priority corresponding to the action.
예컨대, 사람이 쓰러지는 행위가 탐색되는 경우, 그 쓰러진 사람에 대해 가장 높은 우선순위를 설정할 수 있다. 또 다른 예시로서, 공중에 스와이프(swipe) 등 특정 제스처로 명령을 내리는 사람인 객체가 있다면, 그 명령하는 사람인 객체에 높은 우선순위를 부여할 수 있다.For example, when an act of a person falling is detected, the highest priority may be set for the person who has fallen down. As another example, if there is an object that is a person who gives a command with a specific gesture such as a swipe in the air, a high priority may be given to the object that is the commander.
마지막 예시로서, 객체의 우선순위에는 객체의 상태들 중 적어도 상기 객체의 맥락을 포함하는 적어도 하나의 상태에 따라 구분된 객체 집합들 각각에 대하여 지정되는 맥락 기반 우선순위가 있을 수 있다.As a final example, the priority of the object may have a context-based priority designated for each of the object sets divided according to at least one state including at least the context of the object among the states of the object.
상기 맥락 기반 우선순위에 따르면, 상세 분류 모듈(4300)이 상기 전체 영상에 대한 상태 분석 또는 공간 분석을 수행함으로써 상기 전체 영상으로부터 객체 맥락 및 공간 맥락을 추론하고, 상기 객체가 그 추론된 객체 맥락 및 공간 맥락 중 적어도 하나에 의한 행위자 또는 상기 행위자의 행위에 의하여 상기 행위자와 상호작용하는 것으로 검출되는 객체인 맥락 상호작용 객체인지 여부에 기초하여 상기 행위자 또는 상기 맥락 상호작용 객체에 상대적으로 높은 우선순위를 설정할 수 있다.According to the context-based priority, the detailed classification module 4300 infers an object context and a spatial context from the entire image by performing a state analysis or a spatial analysis on the entire image, and the object determines the inferred object context and Giving a relatively high priority to the actor or the contextual interaction object based on whether it is an actor by at least one of spatial contexts or a context interaction object that is an object that is detected as interacting with the actor by an action of the actor. can be set.
예를 들어, 공간 맥락이 '아이인 연령대의 사람들이 운동장에서 야구를 하고 있다.'라는 맥락이라면 야구 배트를 들고 있는 것으로 검출되는 사람에 상대적으로 높은 우선순위가 부여될 수 있다.For example, if the spatial context is 'people of the age of children are playing baseball on the playground', a relatively high priority may be given to a person detected as holding a baseball bat.
본 개시서에서 설명되는 단계들 및 프로세스들은 논리적으로 모순되거나 맥락상 달리 명시되어 있지 않는 한 기재된 순서대로 수행되어야 함을 의미하는 것이 아니며, 각각의 단계들 및 프로세스들은 동시에 또는 이시(異時)에 수행될 수 있다는 점을 통상의 기술자는 이해할 수 있을 것이다. The steps and processes described in this disclosure are not meant to be performed in the order described unless otherwise logically contradicted or otherwise indicated by context, and each of the steps and processes may be performed concurrently or at different times. It will be understood by those skilled in the art that it can be performed.
또한, 전술한 단계들은 1회 수행될 여지도 있으나, 바람직하게는, 전술한 바와 같이 시간적으로 연속된 영상들을 획득하기 위하여 상기 단계들은 실시간(real-time)으로, 그리고/또는 반복적으로(iteratively) 수행될 수 있다. In addition, the above steps may be performed once, but preferably, the steps are performed in real-time and/or iteratively to obtain temporally continuous images as described above. can be
즉, 본 개시서의 영상 처리 방법은, 새 전체 영상을 획득하기 위하여, 영상 획득 단계(S1000)로 되돌아가는 단계(S4000)를 더 포함할 수 있고, 이때 추적 컨트롤러(4400)에 의하여 가용 자원을 제어함으로써 영상 획득 단계(S1000)가 다시 수행될 수 있다. That is, the image processing method of the present disclosure may further include a step ( S4000 ) of returning to the image acquisition step ( S1000 ) in order to acquire a new full image, in which case the available resources are determined by the tracking controller 4400 . By controlling the image acquisition step (S1000) may be performed again.
여기에서 추적 컨트롤러(4400)는 영상 입력 모듈(4100), 객체 분석 모듈(4200) 및 상세 분류 모듈(4300)과 마찬가지로 모듈인바, 본 개시서의 시스템이 촬영 장치(200)로 하여금 목표 객체 또는 목표 공간을 지향할 수 있도록 그 촬영 장치의 움직임, 즉 추적을 구현하는 기능을 수행하는데, 여기에서 가용 자원이란 그러한 추적을 가능하게 하는 하드웨어 및/또는 소프트웨어를 지칭한다.Here, the tracking controller 4400 is a module similar to the image input module 4100 , the object analysis module 4200 , and the detailed classification module 4300 . It performs a function of implementing the movement of the photographing device, ie, tracking, so as to be able to direct the space, where available resources refer to hardware and/or software that enables such tracking.
일 실시 예에서, 추적 컨트롤러(4400)는 촬영 장치(200)에 의하여 촬영될 구도에 대응하는 목표 위치 및 배율을 결정하는 목표 위치 결정 모듈(4420) 및 상기 목표 위치의 상기 전체 영상을 획득하도록 상기 가용 자원, 즉 하드웨어 및 소프트웨어 자원을 제어하는 추적 자원 컨트롤러(4440)를 포함할 수 있다.In an embodiment, the tracking controller 4400 is configured to obtain a target position determination module 4420 that determines a target position and a magnification corresponding to a composition to be captured by the photographing device 200 and the entire image of the target position. It may include a tracking resource controller 4440 for controlling available resources, that is, hardware and software resources.
목표 위치 결정 모듈target positioning module
도 8a 내지 도 8c는 본 개시서의 영상 처리 방법에서 목표 위치를 결정하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.8A to 8C are flowcharts exemplarily illustrating methods that may be used to determine a target position in the image processing method of the present disclosure.
도 8a로써 예시된 일 실시 예에서, 목표 위치 결정 모듈(4420)은, 상기 전체 영상에 나타나는 적어도 하나의 후보 객체의 객체 우선순위를 획득하는 단계(S4110a), 상기 후보 객체의 객체 세그먼테이션을 획득하는 단계(S4120a), 상기 전체 영상에서 추론된 맥락에 따라 상기 후보 객체와 상호작용하는 것으로 검출되는 객체인 맥락 상호작용 객체를 식별하는 단계(S4130a), 소정의 순위 또는 그보다 높은 순위의 객체 우선순위를 가지는 후보 객체인 적어도 하나의 대상 객체 및 상기 대상 객체의 상기 맥락 상호작용 객체를 포함하도록 촬영 장치(200)에 의하여 촬영될 상기 구도를 결정하는 단계(S4140a), 및 상기 대상 객체의 방향에 따라 상기 구도를 확장함으로써 상기 목표 위치 및 배율을 결정하는 추가 구도 예측 단계(S4150a)를 수행할 수 있다.In the embodiment illustrated in FIG. 8A , the target location determination module 4420 obtains an object priority of at least one candidate object appearing in the entire image (S4110a), obtaining an object segmentation of the candidate object Step (S4120a), the step of identifying a context interaction object that is an object detected to interact with the candidate object according to the context inferred from the entire image (S4130a), an object priority of a predetermined rank or higher Determining the composition to be photographed by the photographing apparatus 200 to include at least one target object that is a candidate object and the context interaction object of the target object (S4140a), and the direction of the target object according to the direction of the target object By expanding the composition, an additional composition prediction step (S4150a) of determining the target position and magnification may be performed.
맥락 상호작용 객체의 식별은 맥락 모델(M435)에 의하여 이루어질 수 있다. 이러한 맥락 모델(M435)이 지도 학습에 의하여 생성될 수 있음은 비특허문헌인 논문 Shin, D., & Kim, I. (2018). Deep Image Understanding Using Multilayered Contexts. Mathematical Problems in Engineering, 2018, 1-11.에 개시된 바와 같다.The context interaction object may be identified by the context model M435. This context model (M435) can be generated by supervised learning is a non-patent literature paper Shin, D., & Kim, I. (2018). Deep Image Understanding Using Multilayered Contexts. As disclosed in Mathematical Problems in Engineering, 2018, 1-11.
더 구체적으로, 추가 구도 예측 단계(S4150a)는 상기 대상 객체의 방향을 획득하는 단계(S4152a) 및 상기 대상 객체의 속도를 획득하는 단계(S4154a)를 포함할 수 있다. 전술한 바와 같이 대상 객체의 방향은 그 대상 객체에 포함된 부분 객체들 간의 상대적 위치에 기초하여 획득될 수 있고, 대상 객체의 속도, 즉, 3차원 운동 벡터는 영상으로부터 획득되는 2차원 운동 벡터 및 센서(340)의 정보에 기초하여 산출될 수 있다.More specifically, the additional composition prediction step (S4150a) may include obtaining the direction of the target object (S4152a) and obtaining the speed of the target object (S4154a). As described above, the direction of the target object may be obtained based on relative positions between partial objects included in the target object, and the speed of the target object, that is, a 3D motion vector, is a 2D motion vector obtained from an image and It may be calculated based on the information of the sensor 340 .
그 다음으로, 추가 구도 예측 단계(S4150a)는 상기 대상 객체와의 상호작용이 가능한 범위인 상기 대상 객체의 영향 범위를 상기 대상 객체의 상기 방향 및 속도에 기초하여 산출하는 단계(S4156a), 및 상기 영향 범위를 반영하여 상기 구도를 확장함으로써 상기 목표 위치 및 배율을 결정하는 단계(S4158a)를 더 포함할 수 있다. Next, in the additional composition prediction step (S4150a), calculating an influence range of the target object, which is a range in which interaction with the target object is possible, based on the direction and speed of the target object (S4156a), and the The method may further include determining the target position and magnification by expanding the composition by reflecting the influence range ( S4158a ).
여기에서 영향 범위는 상기 대상 객체가 현재로부터 시작되는 소정 시간 범위에 걸쳐 적어도 일시적으로라도 점유할 가능성이 있거나, 상호작용을 할 가능성이 있는 상기 맥락 상호작용 객체가 점유할 가능성이 있는 공간의 범위, 즉, 상기 대상 객체의 물리적인 접촉이 가능한 공간의 범위, 예컨대, 사람의 신체 일부분이 물리적으로 접촉할 수 있는 범위, 또는 상기 대상 객체가 눈, 귀, 입 등을 통하여 신호를 수발신할 수 있는 맥락 상호작용 객체가 존재할 수 있는 범위, 예컨대, 상기 대상 객체와의 신호 수발신이 가능한 시야 범위(FOV)를 지칭한다. Here, the influence range is the range of space that the target object is likely to occupy at least temporarily over a predetermined time range starting from the present, or is likely to be occupied by the context interaction object with which it is likely to interact, that is, , a range of a space in which the target object can be physically contacted, for example, a range in which a human body part can be physically contacted, or a context in which the target object can transmit and receive signals through eyes, ears, mouth, etc. It refers to a range in which an action object can exist, for example, a field of view (FOV) in which signals are received and transmitted with the target object.
일 예시로서, 단계(S4156a)에서는 눈(eye)의 영향 범위가 20 m. 손의 영향 범위는 1m일 수 있다. 이는 각 객체의 행위 정보(행위 분류)와 결합되어 구도를 조절하는 데 이용될 수 있다. 예컨대, '야구 타석에서 배트를 들고 서 있는 아이'가 대상 객체라면 단계(S4158a)에서는 아이의 시선의 방향 및 아이의 손에 쥐어진 배트 객체를 포함하도록 상기 구도가 조절될 수 있다.As an example, in step S4156a, the range of influence of the eye is 20 m. The range of influence of the hand may be 1 m. This may be combined with the behavior information (action classification) of each object and used to adjust the composition. For example, if 'a child standing with a bat at the baseball batting table' is the target object, the composition may be adjusted to include the direction of the child's gaze and the bat object held in the child's hand in step S4158a.
한편, 도 8b로써 예시된 다른 실시 예에서, 목표 위치 결정 모듈(4420)은, 객체의 우선순위에 기반하여 상기 촬영될 구도를 결정할 수 있는바, 구체적으로, 목표 위치 결정 모듈(4420)은, 상기 전체 영상에 나타나는 적어도 하나의 후보 객체의 객체 우선순위를 획득하는 단계(S4120b), 소정의 순위 또는 그보다 높은 순위의 객체 우선순위를 가지는 후보 객체인 적어도 하나의 대상 객체를 결정하는 단계(S4140b), 및 상기 대상 객체를 포함하도록 촬영 장치(200)에 의하여 촬영될 상기 구도를 결정하는 단계(S4160b)를 수행할 수 있다.Meanwhile, in another embodiment illustrated in FIG. 8B , the target positioning module 4420 may determine the composition to be photographed based on the priority of the object. Specifically, the target positioning module 4420 may include: Obtaining an object priority of at least one candidate object appearing in the entire image (S4120b), determining at least one target object that is a candidate object having an object priority of a predetermined priority or higher (S4140b) , and determining the composition to be photographed by the photographing apparatus 200 to include the target object ( S4160b ).
도 8c를 참조하면, 객체의 우선순위를 반영하는 또 다른 실시 예에서, 목표 위치 결정 모듈(4420)은, 상기 전체 영상에 나타나는 적어도 하나의 후보 객체의 객체 우선순위를 획득하는 단계(S4120c), 상기 후보 객체의 객체 우선순위에 따라 상기 후보 객체를 포함하는 가상 세그먼테이션을 생성하는 단계로서, 상기 객체 우선순위가 높을수록 상기 가상 세그먼테이션의 면적이 크도록 상기 가상 세그먼테이션이 생성되는, 단계(S4140c), 소정의 증가 함수에 의하여 상기 가상 세그먼테이션의 면적에 따라 단조 증가하는 상기 가상 세그먼테이션 간의 인력, 소정의 제1 감소 함수에 따라 상기 후보 객체 간의 거리에 따라 단조 감소하는 상기 후보 객체 간의 제1 척력, 및 소정의 제2 감소 함수에 따라 상기 후보 객체와 상기 전체 영상의 프레임 경계선 간의 제2 척력을 산출하고, 상기 인력, 상기 제1 척력 및 상기 제2 척력의 평형 상태를 결정하는 단계(S4160c), 및 상기 평형 상태에서 상기 적어도 하나의 후보 객체의 중앙 지점인 목표 중앙을 산출함으로써, 상기 구도에 대응하는 목표 위치 및 배율을 결정하는 단계(S4180c)를 수행할 수 있다.Referring to FIG. 8C , in another embodiment reflecting the priority of the object, the target location determination module 4420 obtains the object priority of at least one candidate object appearing in the entire image (S4120c), generating a virtual segmentation including the candidate object according to the object priority of the candidate object, wherein the virtual segmentation is generated so that the area of the virtual segmentation becomes larger as the object priority is higher (S4140c); The attractive force between the virtual segments monotonically increasing according to the area of the virtual segmentation by a predetermined increasing function, a first repulsive force between the candidate objects monotonically decreasing according to the distance between the candidate objects according to a predetermined first decreasing function, and a predetermined calculating a second repulsive force between the candidate object and a frame boundary of the entire image according to a second decreasing function of By calculating the target center, which is the center point of the at least one candidate object in the equilibrium state, the step of determining the target position and magnification corresponding to the composition ( S4180c ) may be performed.
추적 자원 컨트롤러tracking resource controller
추적 자원 컨트롤러(4440)는 짐벌(300) 및 촬영 장치(200)의 자세에 대한 제어 없이 촬영 장치(200)로부터 획득되는 영상으로부터 상기 새 영상을 획득하도록 제어하는 영상 전환 컨트롤러(4442), 및 촬영 장치(200)가 장착되어 그 촬영 장치(200)의 자세를 제어하는 하나 이상의 회전 축을 가진 짐벌(300)과 컴퓨팅 장치(100)가 연동하는 경우에 짐벌(300) 및 촬영 장치(200)에 대한 제어를 통하여 촬영 장치(200)로 하여금 상기 새 영상을 획득하도록 제어하는 프레임 전환 컨트롤러(4444)를 포함할 수 있다.The tracking resource controller 4440 is an image conversion controller 4442 that controls to acquire the new image from the image acquired from the photographing device 200 without controlling the posture of the gimbal 300 and the photographing apparatus 200, and photographing When the apparatus 200 is mounted and the gimbal 300 having one or more rotation axes for controlling the posture of the photographing apparatus 200 and the computing apparatus 100 interwork, the gimbal 300 and the photographing apparatus 200 The control may include a frame switching controller 4444 that controls the photographing device 200 to acquire the new image.
프레임 전환 컨트롤러(4444) 및 영상 전환 컨트롤러(4442)는 서로 보완하도록 작동할 수 있는바, 추적 자원 컨트롤러(4440)는 먼저 프레임 전환 컨트롤러(4444)로부터 원하는 해상도의 새 영상을 획득하고, 그 획득에 실패하는 경우에, 영상 전환 컨트롤러(4442)에 의한 영상 재구성을 통하여 새 영상을 획득하도록 제어할 수 있다.The frame transition controller 4444 and the image transition controller 4442 may operate to complement each other, and the tracking resource controller 4440 first acquires a new image of a desired resolution from the frame transition controller 4444, and In case of failure, it is possible to control to acquire a new image through image reconstruction by the image conversion controller 4442 .
구체적인 일 실시 예에서, 영상 전환 컨트롤러(4442)는, 영상 재구성을 수행할 수 있는 유휴 자원이 존재하는지 판단하는 단계(S4310), 상기 유휴 자원이 존재하면, 상기 기 획득된 전체 영상 또는 상기 전체 영상의 부분을 원본 영상으로서 메모리에 적재(load)하는 단계(S4320), 및 상기 목표 위치 및 배율에 따라 상기 원본 영상을 크롭(crop)하거나, 상기 원본 영상의 해상도가 미리 정해진 문턱값에 미달하면, 초해상(super-resolution)을 수행함으로써 상기 목표 위치 및 배율에 따른 상기 새 영상을 획득하는 단계(S4330)를 수행할 수 있다.In a specific embodiment, the video conversion controller 4442 determines whether there is an idle resource capable of performing image reconstruction ( S4310 ). If the idle resource exists, the pre-obtained full image or the entire image loading a portion of the original image into the memory as an original image (S4320), and cropping the original image according to the target position and magnification, or when the resolution of the original image is less than a predetermined threshold, Acquiring the new image according to the target position and magnification by performing super-resolution (S4330) may be performed.
초해상이, 예컨대, 자기부호화기(autoencoder) 등의 신경망을 이용하여 수행될 수 있음은 통상의 기술자에게 알려져 있다.It is known to those skilled in the art that super-resolution, for example, can be performed using a neural network such as an autoencoder.
한편, 프레임 전환 컨트롤러(4444)는, 상기 목표 위치를 달성하도록(즉, 상기 목표 위치에 도달하도록) 짐벌(300)의 상기 하나 이상의 회전 축을 작동시켜 촬영 장치(200)의 방향을 제어하는 짐벌 컨트롤러(4444a), 상기 배율을 달성하도록 촬영 장치(200)의 줌인(zoom-in) 및 줌아웃(zoom-out)을 제어하는 줌 컨트롤러(4444b), 및 상기 가용 자원 중 하드웨어의 작동을 저감하면서 환경을 촬영하도록 제어하는 전후면 촬영 장치 컨트롤러(4444c)를 포함할 수 있고, 이 중에서 적어도 짐벌 컨트롤러(4444a)를 포함한다.Meanwhile, the frame change controller 4444 is a gimbal controller that controls the direction of the photographing device 200 by operating the one or more rotation axes of the gimbal 300 to achieve the target position (that is, to reach the target position). 4444a, a zoom controller 4444b that controls zoom-in and zoom-out of the photographing device 200 to achieve the magnification, and an environment while reducing the operation of hardware among the available resources It may include a front and rear photographing device controller 4444c for controlling the photographing, and at least a gimbal controller 4444a among them.
촬영 장치(200)는 2개 이상으로 구성될 수도 있는바, 예컨대 휴대 단말(100)의 전면과 후면에 각각 탑재된 촬영 장치(200)일 수 있다. 전후면 촬영 장치 컨트롤러(4444c)는 전면의 촬영 장치(200a; 미도시) 및 후면의 촬영 장치(200b; 미도시)를 이용하여 시스템을 둘러싼 전체 공간, 즉, 주위 공간을 스캔하게 할 수 있고, 사용자의 편의에 따라 이용하는 촬영 장치(200)를 전면과 후면 촬영 장치 중에서 선택할 수 있다. The photographing apparatus 200 may be composed of two or more, for example, the photographing apparatus 200 mounted on the front and rear surfaces of the portable terminal 100 , respectively. The front and rear photographing device controller 4444c can scan the entire space surrounding the system, that is, the surrounding space, using the front photographing device 200a (not shown) and the rear photographing device 200b; According to the user's convenience, the photographing apparatus 200 used may be selected from the front and rear photographing apparatuses.
예를 들어, 전후면 촬영 장치 컨트롤러(4444c)는 사용자가 휴대 단말(100)의 디스플레이를 바라보고 있는 경우에 사용자의 영상을 획득하기 위하여 이용할 촬영 장치로서 전면 촬영 장치(200a)를 선택할 수 있다.For example, the front and rear photographing device controller 4444c may select the front photographing device 200a as a photographing device to be used to acquire an image of the user when the user is looking at the display of the portable terminal 100 .
또 다른 예시로서, 전후면 촬영 장치 컨트롤러(4444c)는 전면 촬영 장치(200a)로써 객체를 인식한 후, 그 객체에 대해 전면 촬영 장치(200a)의 해상도보다 높은 해상도의 영상이 요구되는 때에는 더 높은 해상도를 지닌 후면 촬영 장치(200b)로써 그 객체를 인식하도록 제어할 수 있다.As another example, after recognizing an object as the front photographing device 200a, the front and rear photographing device controller 4444c may request an image having a higher resolution than that of the front photographing device 200a for the object. It is possible to control the object to be recognized as the rear photographing device 200b having a resolution.
또한, 전후면 촬영 장치 컨트롤러(4444c)는 전면 촬영 장치(200a) 및 후면 촬영 장치(200b)를 동시에 또는 순차적으로 이용하여 짐벌(300) 축의 회전을 최소화하면서 주위 공간의 영상을 획득하게 할 수 있다.In addition, the front and rear photographing device controller 4444c can use the front photographing device 200a and the rear photographing device 200b simultaneously or sequentially to obtain images of the surrounding space while minimizing the rotation of the gimbal 300 axis. .
한편, 프레임 전환 컨트롤러(4444)는 적어도 하나의 특정 객체 또는 특정 부분 객체를 상기 구도가 모두 포함하도록 그 특정 객체 또는 그 특정 부분 객체에 포함된 부분 객체의 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)에 따라 촬영 장치(200)의 배향(orientation)을 세로 방향(portrait) 및 가로 방향(landscape) 중 어느 하나로 제어할 수 있다. 예컨대, 이는 짐벌(300)의 롤 축(R)의 회전에 의하여 달성될 수 있다. 가로와 세로의 비율에서 가로는 중력 벡터에 수직인 것을 의미할 수 있다. 가로와 세로의 비율에서 세로는 중력 벡터에 수평인 것을 의미할 수 있다. 따라서, 가로와 세로의 비율은 한 기준면의 일부를 가로 길이로 계산하는 가로와 세로의 비율일 수 있다. 해당 기준면은 중력 벡터에 수직한 면 또는/및 바닥에 접촉하는 면일 수 있다. 다만, 해당 기준면은 이에 한정되지 않고, 다양한 면이 기준면으로 설정될 수 있다. 가로와 세로의 비율은 객체의 방향에 따라 경향성(예를 들어, 1 이상 또는 1 이하)이 변화하지 않을 수 있다.On the other hand, the frame change controller 4444 sets the ratio of the width to the height of the specific object or the partial object included in the specific object or the specific partial object so that the composition includes all of the at least one specific object or the specific partial object (horizontal length to vertical length). According to a value divided by ), the orientation of the photographing apparatus 200 may be controlled in one of a portrait direction and a landscape direction. For example, this may be achieved by rotation of the roll axis R of the gimbal 300 . In the ratio of the width to the length, the width may mean perpendicular to the gravity vector. In the ratio of the width to the length, the length may mean that it is horizontal to the gravity vector. Accordingly, the horizontal to vertical ratio may be a horizontal to vertical ratio in which a portion of one reference plane is calculated as a horizontal length. The reference plane may be a plane perpendicular to the gravity vector and/or a plane in contact with the floor. However, the reference plane is not limited thereto, and various planes may be set as the reference plane. A tendency (eg, 1 or more or 1 or less) may not change in the ratio of the width to the length depending on the direction of the object.
구체적으로, 프레임 전환 컨트롤러(4444)는 상기 적어도 하나의 특정 객체 또는 특정 부분 객체의 객체 세그먼테이션 또는 상기 적어도 하나의 특정 객체 또는 특정 부분 객체를 포함하는 객체 박스(object box)가 상기 전체 영상의 프레임 경계선에 접촉하지 않도록 상기 촬영 장치의 배향을 세로 방향 및 가로 방향 중 어느 하나로 제어할 수 있다.Specifically, the frame change controller 4444 determines that the object segmentation of the at least one specific object or the specific partial object or an object box including the at least one specific object or the specific partial object determines the frame boundary of the entire image. The orientation of the photographing device may be controlled in any one of a vertical direction and a horizontal direction so as not to contact the .
도 9a 및 도 9b는 본 개시서의 영상 처리 방법에서 촬영 장치의 배향을 제어하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이다.9A and 9B are flowcharts exemplarily illustrating methods that may be used to control the orientation of a photographing apparatus in the image processing method of the present disclosure.
도 9a를 참조하여 상기 촬영 장치의 배향을 위한 프레임 전환 컨트롤러(4444)의 일 실시 예를 더 구체적으로 설명하면, 프레임 전환 컨트롤러(4444)는, 상기 적어도 하나의 특정 객체 또는 특정 부분 객체의 객체 세그먼테이션 또는 객체 박스가 상기 전체 영상의 프레임 경계선에 제1 접촉하면, 상기 객체 세그먼테이션 또는 상기 객체 박스의 중심점이 상기 구도 내에 존재하는 한도 내에서 상기 짐벌로 하여금 상기 제1 접촉된 위치의 반대 방향으로 이동하도록 제어함으로써 상기 제1 접촉을 해소하는 단계(S4210a), 및 상기 이동 후 상기 객체 세그먼테이션 또는 상기 객체 박스가 상기 제1 접촉된 위치의 반대 측에서 상기 프레임 경계선에 제2 접촉하면, (i) 상기 촬영 장치의 배향을 세로 방향(portrait) 및 가로 방향(landscape) 중 어느 하나에서 다른 하나로 전환하는 작동, 및 (ii) 상기 촬영 장치의 줌인(zoom-in) 및 줌아웃(zoom-out)을 제어하는 작동 중 적어도 하나를 통하여 상기 제2 접촉을 해소하는 단계(S4220a)를 수행할 수 있다.When an embodiment of the frame change controller 4444 for orientation of the photographing device is described in more detail with reference to FIG. 9A , the frame change controller 4444 may perform object segmentation of the at least one specific object or a specific partial object. Alternatively, when the object box first contacts the frame boundary of the entire image, the gimbal moves in the opposite direction to the first contacted position within the limit that the object segmentation or the center point of the object box exists in the composition. Resolving the first contact by controlling (S4210a), and when the object segmentation or the object box makes a second contact with the frame boundary line on the opposite side of the first contacted position after the movement, (i) the photographing an act of switching the orientation of the device from one of a portrait and a landscape orientation to another; and (ii) an act of controlling the zoom-in and zoom-out of the imaging device. Resolving the second contact through at least one of (S4220a) may be performed.
도 9b를 참조하여 프레임 전환 컨트롤러(4444)의 다른 실시 예를 구체적으로 설명하면, 프레임 전환 컨트롤러(4444)는, 상기 적어도 하나의 특정 객체 또는 특정 부분 객체의 특성 중 비율 특성을 획득하는 단계로서, 상기 비율 특성은 상기 특정 객체 또는 상기 특정 부분 객체의, 카테고리별로 미리 정해져 있거나 상기 특정 객체 또는 상기 특정 부분 객체의 계측에 의하여 카테고리별로 산출된 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)인 카테고리별 비율 특성, 상기 특정 객체 또는 상기 특정 부분 객체의 상세 분류별로 미리 정해져 있거나 상기 특정 객체 또는 상기 특정 부분 객체의 계측에 의하여 상세 분류별로 산출된 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)인 상세 분류별 비율 특성, 및 상기 목표 위치 결정 모듈에 의하여 결정된 상기 구도의 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)를 포함하는, 단계(S4210b), 및 상기 비율 특성에 기초하여, 상기 촬영 장치의 배향을 세로 방향(portrait) 및 가로 방향(landscape) 중 어느 하나에서 다른 하나로 전환하는 작동인 롤 회전의 수행 여부를 결정하고, 상기 수행 여부에 따라 상기 촬영 장치의 배향을 조절하는 단계(S4220b)를 수행할 수 있다.Another embodiment of the frame change controller 4444 will be described in detail with reference to FIG. 9B. The frame change controller 4444 is a step of acquiring a ratio characteristic among the characteristics of the at least one specific object or a specific partial object, The ratio characteristic is a ratio of width to height (a value obtained by dividing a horizontal length by a vertical length) that is predetermined for each category of the specific object or the specific partial object, or calculated for each category by measurement of the specific object or the specific partial object. Ratio characteristic for each category, the ratio of width to length (horizontal length to vertical length) determined in advance for each detailed classification of the specific object or the specific partial object, or calculated for each detailed classification by measurement of the specific object or the specific partial object A ratio characteristic for each detailed classification that is a divided value), and a step (S4210b), including a ratio of width and height (a value obtained by dividing a horizontal length by a vertical length) of the composition determined by the target position determination module (S4210b), and in the ratio characteristic Based on the determination, whether to perform roll rotation, which is an operation for changing the orientation of the photographing device from any one of a portrait and a landscape to another, is determined, and the orientation of the photographing device is determined according to whether or not A step of adjusting (S4220b) may be performed.
예를 들어, 텔레비전의 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)는 1보다 크므로 촬영 장치(200)의 배향은 가로 방향으로 조절될 수 있고, 서 있는 사람의 가로와 세로의 비율(가로 길이를 세로 길이로 나눈 값)는 1 이하이므로 세로 방향으로 촬영 장치(200)의 배향이 조절될 수 있다.For example, since the horizontal to vertical ratio (a value obtained by dividing the horizontal length by the vertical length) of the television is greater than 1, the orientation of the photographing apparatus 200 may be adjusted in the horizontal direction, and the horizontal and vertical ratio of a person standing Since the ratio (a value obtained by dividing the horizontal length by the vertical length) is 1 or less, the orientation of the photographing apparatus 200 may be adjusted in the vertical direction.
단계(S4220b) 다음으로, 이 실시 예의 프레임 전환 컨트롤러(4444)는, 상기 적어도 하나의 특정 객체 또는 특정 부분 객체의 객체 세그먼테이션 또는 객체 박스가 상기 전체 영상의 프레임 경계선에 접촉하면, (i) 상기 촬영 장치의 배향을 세로 방향(portrait) 및 가로 방향(landscape) 중 어느 하나에서 다른 하나로 전환하는 작동, 및 (ii) 상기 촬영 장치의 줌인(zoom-in) 및 줌아웃(zoom-out)을 제어하는 작동 중 적어도 하나를 통하여 상기 접촉을 해소함으로써 상기 적어도 하나의 특정 객체 또는 특정 부분 객체로 하여금 상기 구도 내에 포함되도록 하는 단계(S4230b)를 더 수행할 수 있다. 여기에서 상기 객체 세그먼테이션 또는 객체 박스가 상기 프레임 경계선에 접촉하지 않으면, 단계(S4220b)로 종료하고 단계(S4230b)는 수행되지 않는다.Step (S4220b) Next, the frame switching controller 4444 of this embodiment, when the object segmentation or object box of the at least one specific object or specific partial object comes into contact with the frame boundary line of the entire image, (i) the photographing an act of switching the orientation of the device from one of a portrait and a landscape orientation to another; and (ii) an act of controlling the zoom-in and zoom-out of the imaging device. The step of allowing the at least one specific object or a specific partial object to be included in the composition by resolving the contact through at least one of (S4230b) may be further performed. Here, if the object segmentation or the object box does not contact the frame boundary line, step S4220b is terminated and step S4230b is not performed.
OCR(광학 문자 인식)OCR (Optical Character Recognition)
이제, 다시 상세 분류 모델(M430)의 설명으로 돌아가 이에 의한 OCR을 설명하기로 한다. 상기 분류 모델(M430)은 상기 객체의 표면에 나타난 텍스트를 독출하는 OCR 모델(M436)을 더 포함할 수 있다. 따라서, 컴퓨팅 장치(100)의 프로세서(120)는 OCR 모델(M436)을 이용하여, 객체에 대응되는 분석 정보로부터 객체에 포함된 문자를 획득할 수 있다.Now, returning to the description of the detailed classification model M430 again, OCR by this will be described. The classification model M430 may further include an OCR model M436 for reading the text displayed on the surface of the object. Accordingly, the processor 120 of the computing device 100 may obtain a character included in the object from the analysis information corresponding to the object by using the OCR model M436 .
이에 상응하여, 전술한 단계(S3400)는, 상세 분류 모델(M430)의 OCR 모델(M436)을 이용하여 상세 분류 모듈(4300)이 OCR을 수행함으로써 객체의 특성의 일부로서 그 객체의 텍스트를 산출하는 단계(S3500)를 포함할 수 있다.Correspondingly, in the above-described step S3400, the detailed classification module 4300 performs OCR using the OCR model M436 of the detailed classification model M430 to calculate the text of the object as a part of the characteristics of the object. It may include a step (S3500) of doing.
단계(S3500)를 구체적으로 설명하면, OCR 모델(M436)은, 먼저, 상기 객체의 표면에 문자가 표시되었는지 여부를 판별하는 단계(S3520)를 포함할 수 있다.Specifically describing step S3500, the OCR model M436 may include, first, determining whether characters are displayed on the surface of the object (S3520).
단계(S3520)에서는 딥 러닝 또는 종래의 OCR 기술을 이용하여 문자를 검출함으로써 문자가 표시되어 있는 객체를 판별할 수 있음이 알려져 있다.In step S3520, it is known that the object on which the character is displayed can be determined by detecting the character using deep learning or a conventional OCR technique.
단계(S3520)의 다음으로 OCR 모델(M436)은 상기 객체의 표면에 문자가 표시되었으면, 표시된 문자(예를 들어, 전체 문자 및/또는 문자 집합)에 OCR을 수행하고, 그 OCR의 결과인 결과 텍스트를 상기 객체의 특성으로서 입력(저장)하는 OCR 수행 단계(S3540)를 수행할 수 있다. Following the step S3520, the OCR model M436 performs OCR on the displayed characters (eg, the entire character and/or character set) if characters are displayed on the surface of the object, and the result of the OCR An OCR performing step (S3540) of inputting (saving) text as a characteristic of the object may be performed.
본 개시의 일 실시예에 따르면, OCR 모델(M436)은 객체의 표면에 문자가 표시되었는지 여부를 판별하는 단계 및 객체의 표면에 문자가 표시된 것으로 판별된 경우, 문자가 포함된 전체 문자에 OCR을 수행하는 단계를 수행할 수 있다.According to an embodiment of the present disclosure, the OCR model (M436) determines whether characters are displayed on the surface of the object, and when it is determined that the characters are displayed on the surface of the object, OCR is applied to all characters including The steps to be performed can be performed.
본 개시의 다른 실시예에 따르면, OCR 모델(M436)은 객체의 표면에 문자가 표시되었는지 여부를 판별하는 단계 및 객체의 표면에 문자가 표시된 것으로 판별된 경우, 문자 집합별로 OCR을 수행하는 단계를 수행할 수 있다.According to another embodiment of the present disclosure, the OCR model M436 includes the steps of determining whether characters are displayed on the surface of the object and performing OCR for each character set when it is determined that characters are displayed on the surface of the object. can be done
문자 집합의 구분 방법How to distinguish character sets
프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 문자의 종류, 형태, 크기 또는 배치 중 적어도 하나에 기초하여 문자가 속한 문자 집합을 구분할 수 있다. 또한, 프로세서(120)는 한 문맥의 해석에 있어 밀접하게 관련될 확률이 높은 문자 집합을 구분할 수 있다.At least one of the processor 120 or the OCR model M436 may classify a character set to which a character belongs based on at least one of a type, a shape, a size, and an arrangement of the character. In addition, the processor 120 may distinguish a character set with a high probability of being closely related in the interpretation of one context.
문자가 속한 문자 집합 또는 문맥에 속한 문자 집합을 구분하는 방법은 다음과 같을 수 있다. 예를 들어, 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 문자 집합 특성에 기초하여 문자 집합을 구분할 수 있다. A method of distinguishing a character set belonging to a character or a character set belonging to a context may be as follows. For example, at least one of the processor 120 and the OCR model M436 may classify the character set based on the character set characteristic.
문자 집합 특성은 문자의 언어 종류, 줄 간격, 자간, 장평(예를 들어, 가로 세로 비율), 크기, 두께, 색깔, 글꼴(폰트), 스타일, 문장의 시작 또는 마침 관련 문자, 빈칸(예를 들어, 다음 문장, 객체 또는 부분 객체 중 적어도 하나의 경계와의 공백) 또는 객체에서 문자가 표시된 위치 중 하나 이상을 포함할 수 있다. 따라서, 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 문자의 언어 종류, 줄 간격, 자간, 장평(예를 들어, 가로 세로 비율), 크기, 두께, 색깔, 글꼴(폰트), 스타일, 문장의 시작 또는 마침 관련 문자, 빈칸(예를 들어, 다음 문장, 객체 또는 부분 객체 중 적어도 하나의 경계와의 공백) 또는 객체에서 문자가 표시된 위치 중 하나 이상의 특징을 사용하여 문자 집합을 구분할 수 있다.Character set attributes include the language type of the character, line spacing, kerning, length (e.g., aspect ratio), size, thickness, color, font (font), style, related characters at the beginning or end of a sentence, blanks (e.g., For example, it may include one or more of the following sentence, a space with a boundary of at least one of an object or a partial object), or a position where a character is displayed in the object. Accordingly, at least one of the processor 120 or the OCR model M436 determines the language type of the character, line spacing, kerning, length (eg, aspect ratio), size, thickness, color, font (font), style, A character set can be distinguished using one or more of the following characteristics: a character at the beginning or end of a sentence, a space (e.g., a space between the boundaries of at least one of the following sentences, an object, or a sub-object), or a position in an object where the character appears. .
예를 들어, 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 문자가 속한 언어 종류에 따라 완결된 문장 또는 문맥을 구분할 수 있다. 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 제품 설명서의 표면과 같이 인식되는 문자가 다국어인 경우, 문자별로 속한 언어 종류에 따라 완결된 문장 또는 문맥을 구분할 수 있다.For example, at least one of the processor 120 or the OCR model M436 may classify a completed sentence or context according to a language type to which a character belongs. At least one of the processor 120 or the OCR model M436 may classify a completed sentence or context according to a language type to which each character belongs when the recognized characters such as the surface of the product manual are multilingual.
다른 예를 들어, 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 같은 크기 및 글꼴의 문장인 경우에 줄 간격, 자간, 장평 또는 색깔 중 적어도 하나에 기초하여 단락을 구분할 수 있다.As another example, in the case of sentences having the same size and font, at least one of the processor 120 or the OCR model M436 may classify paragraphs based on at least one of line spacing, letter spacing, length, and color.
또 다른 예를 들어, 프로세서(120) 또는 OCR 모델(M436) 중 적어도 하나는 한 문단의 상단 또는 시작 위치에 기초하여 문자 집합을 구분할 수 있다. 한 문단의 상단 또는 시작 위치에는 볼드 스타일 또는 다른 크기로 문단의 성격 또는 제목이 표시될 수도 있다.As another example, at least one of the processor 120 and the OCR model M436 may classify the character set based on the top or start position of one paragraph. At the top or starting position of a paragraph, the character or title of the paragraph may be displayed in a bold style or in another size.
문자 집합의 객체화objectification of character sets
프로세서(120) 및/또는 OCR 모델(M436)은 상술한 ‘문자 집합의 구분 방법’에 기초하여 문자 집합을 구분할 수 있다. 프로세서(120) 및/또는 OCR 모델(M436)은 문자 집합에 기초하여 문자 집합 객체를 인식할 수 있다. 문자 집합 객체는 하나의 대상으로 설정된 문자 집합일 수 있다. 문자 집합 객체는 문자 이미지, 텍스트 정보 또는 문자 집합 특성 중 적어도 하나를 포함할 수 있다. 예를 들어, 문자 집합 객체는 OCR 또는 자연어 이해(처리) 이전에 문자 이미지를 포함할 수 있다. 다른 예를 들어, 문자 집합 객체는 OCR 또는 자연어 이해(처리) 이후에 텍스트 정보를 포함할 수 있다. 여기서, 문자 집합 객체는 OCR 또는 자연어 이해(처리) 이후에 복수의 문자 집합 객체로 분리될 수도 있다.The processor 120 and/or the OCR model M436 may classify the character set based on the above-described 'character set discrimination method'. The processor 120 and/or the OCR model M436 may recognize a character set object based on the character set. The character set object may be a character set set as one target. The character set object may include at least one of a character image, text information, or character set characteristics. For example, a character set object may contain a character image prior to OCR or natural language understanding (processing). For another example, the character set object may contain text information after OCR or natural language understanding (processing). Here, the character set object may be divided into a plurality of character set objects after OCR or natural language understanding (processing).
프로세서(120) 및/또는 OCR 모델(M436)은 객체 또는 부분 객체의 표면에 표시된 하나 이상의 문자 집합을 구분할 수 있다. 프로세서(120) 및/또는 OCR 모델(M436)은 문자 집합이 표시된 객체 또는 부분 객체의 특성 또는 상태 정보 중 적어도 하나에 기초하여 문맥 해석을 수행할 수도 있다. 객체 및/또는 부분 객체의 특성 및/또는 상태는 문자 집합 특성에 포함될 수 있다. The processor 120 and/or the OCR model M436 may distinguish one or more character sets displayed on the surface of the object or partial object. The processor 120 and/or the OCR model M436 may perform context analysis based on at least one of characteristics or state information of an object in which a character set is displayed or a partial object. Properties and/or states of objects and/or partial objects may be included in character set properties.
프로세서(120) 및/또는 OCR 모델(M436)은 문자 집합이 표시되어 있는 객체 또는 부분 객체의 종류 및/또는 위치를 자연어 이해(처리) 및/또는 문맥 해석의 추가 정보로 사용할 수 있다.The processor 120 and/or the OCR model M436 may use the type and/or location of the object or partial object on which the character set is indicated as additional information for natural language understanding (processing) and/or context interpretation.
예를 들어, 프로세서(120) 및/또는 OCR 모델(M436)은 셔츠(객체 또는 부분 객체)에 표시된 문자와 자동차(객체 또는 부분 객체)에 표시된 문자가 동일한 경우, 셔츠 또는 자동차 중 하나에 표시된 문자(예를 들어, 브랜드 이름)를 추가 정보로 사용할 수 있다. 여기서, 프로세서(120) 및/또는 OCR 모델(M436)은 자동차에 표시된 문자가 객체의 특성 및/또는 전체 문맥의 특성을 반영할 것으로 판단하고(반영할 확률이 상대적으로 더 높을 것으로 판단하고), 그리고 자동차에 표시된 문자를 추가 정보로 사용할 수 있다.For example, the processor 120 and/or OCR model M436 may determine that the text displayed on the shirt (object or partial object) and the text displayed on the car (object or partial object) are the same, the text displayed on either the shirt or the vehicle. (eg brand name) can be used as additional information. Here, the processor 120 and/or the OCR model M436 determines that the characters displayed on the car will reflect the characteristics of the object and/or the characteristics of the entire context (determining that the probability of reflection will be relatively higher), And the text displayed on the car can be used as additional information.
프로세서(120) 및/또는 OCR 모델(M436)은 객체에 복수의 문자가 존재하는 경우, 복수의 문자가 표시된 위치에 기초하여 객체의 특성을 획득할 수 있다. 복수의 문자는 위치에 따라서 의미가 서로 다를 수 있다. 예를 들어, 프로세서(120) 및/또는 OCR 모델(M436)는 셔츠(객체 또는 부분 객체)의 전면에 표시된 문자와 셔츠의 레이블(예를 들어, 케어 레이블)에 표시된 문자가 동시에 존재하는 경우, 셔츠의 레이블에 표시된 문자가 객체의 특성을 반영할 것으로 판단하고(반영할 확률이 상대적으로 더 높을 것으로 판단하고), 그리고 셔츠의 레이블에 표시된 문자를 추가 정보로 사용할 수 있다.When a plurality of characters are present in the object, the processor 120 and/or the OCR model M436 may acquire characteristics of the object based on positions where the plurality of characters are displayed. The plurality of characters may have different meanings according to positions. For example, the processor 120 and/or the OCR model M436 may determine that when the text displayed on the front of the shirt (object or partial object) and the text displayed on the label of the shirt (eg, care label) exist at the same time, It is determined that the text displayed on the label of the shirt reflects the characteristics of the object (it is determined that the probability of reflection is relatively higher), and the text displayed on the label of the shirt can be used as additional information.
프로세서(120) 및/또는 OCR 모델(M436)은 객체화 된 문자 집합을 각 문자 집합 객체 별로 OCR 및/또는 자연어 이해(처리)를 수행할 수 있다. 프로세서(120) 및/또는 OCR 모델(M436)는 하나 이상의 문자 집합 객체를 문자 집합 특성에 기초하여 OCR 및/또는 자연어 이해(처리)를 수행할 수 있다. 여기서, 프로세서(120) 및/또는 OCR 모델(M436)는 하나 이상의 문자 집합 객체를 문자 집합 특성에 기초하여 OCR 및/또는 자연어 이해(처리)를 순차적으로 또는 동시적으로 수행할 수도 있다. The processor 120 and/or the OCR model M436 may perform OCR and/or natural language understanding (processing) of the objectified character set for each character set object. The processor 120 and/or the OCR model M436 may perform OCR and/or natural language understanding (processing) of one or more character set objects based on character set characteristics. Here, the processor 120 and/or the OCR model M436 may sequentially or simultaneously perform OCR and/or natural language understanding (processing) of one or more character set objects based on character set characteristics.
OCR 및/또는 자연어 이해(처리)의 단위는 객체 또는 부분 객체의 표면의 전체 문자에 한정되지 않고, 상술한 문자 집합 특성으로 분류된 문자 또는 문자 집합을 최소 단위로 할 수 있다.The unit of OCR and/or natural language understanding (processing) is not limited to the entire character of the surface of an object or a partial object, and a character or character set classified by the above-described character set characteristic may be the minimum unit.
한편, OCR 수행 단계(S3540)는 다양한 방식으로 수행될 수 있다. Meanwhile, the OCR performing step ( S3540 ) may be performed in various ways.
예를 들어, 컴퓨팅 장치(100)의 프로세서(120)에 의해 수행되는 문자(예를 들어, 전체 문자 및/또는 문자 집합)에 OCR를 수행하는 단계(S3540)는 문자가 표시된 객체로부터 적어도 하나의 영상 샘플을 추출하는 단계, 적어도 하나의 영상 샘플로부터 문자가 표시된 구역의 경계선을 결정하는 단계, 적어도 하나의 영상 샘플 중에서 경계선 또는 경계선에 속한 점인 경계점 중 적어도 하나에 기초하여, 문자 표시 영상(예를 들어, 전체 문자 표시 영상 및/또는 문자 집합 표시 영상)을 생성하는 단계 및 문자 표시 영상에 OCR을 수행하는 단계를 포함할 수 있다.For example, performing OCR on characters (eg, the entire character and/or character set) performed by the processor 120 of the computing device 100 ( S3540 ) may include at least one Based on at least one of extracting an image sample, determining a boundary line of a region in which characters are displayed from at least one image sample, and a boundary point that is a boundary line or a point belonging to the boundary line among at least one image sample, For example, the method may include generating the entire character display image and/or character set display image) and performing OCR on the character display image.
영상 샘플은 경계선 또는/및 경계점 중 적어도 하나의 위치에 존재하는 영상 패턴일 수 있다. 영상 패턴은 일부 문자, 문자의 경계부, 문자의 일부분 또는/및 배경 중 적어도 하나를 포함할 수 있다. 배경은 문자를 구성하지 않는 영상 패턴을 의미할 수 있다.The image sample may be an image pattern existing at at least one of a boundary line and/or a boundary point. The image pattern may include at least one of a partial text, a border portion of the text, a portion of the text, and/or a background. The background may mean an image pattern that does not constitute a character.
적어도 하나의 영상 샘플 중에서 경계선 또는 경계선에 속한 점인 경계점 중 적어도 하나에 기초하여, 문자 표시 영상을 생성하는 단계 및 문자 표시 영상에 OCR을 수행하는 단계는, 적어도 하나의 영상 샘플 중에서 경계선 또는 경계점 중 적어도 하나에 위치한 영상 패턴들을 경계 마커로서 획득하는 단계 및 문자가 표시된 객체의 영상에 포함된 부분 영상으로서, 경계 마커를 포함하는 영상인 문자 표시 영상을 생성하는 단계를 포함할 수 있다.경계 마커는 시작 마커 및/또는 종료 마커 중 적어도 하나를 포함할 수 있다. 시작 마커는 문자의 시작 문자에 대응하는 영상 패턴일 수 있다. 종료 마커는 문자의 종료 문자에 대응하는 영상 패턴일 수 있다.The generating a text display image and performing OCR on the text display image based on at least one of a boundary line or a boundary point that is a point belonging to the boundary line among the at least one image sample may include: It may include acquiring image patterns located at one location as boundary markers, and generating a text display image, which is an image including boundary markers, as a partial image included in an image of an object on which text is displayed. It may include at least one of a marker and/or an end marker. The start marker may be an image pattern corresponding to the start character of the character. The end marker may be an image pattern corresponding to the end character of the character.
적어도 하나의 영상 샘플 중에서 경계선 또는 경계점 중 적어도 하나에 위치한 영상 패턴들을 경계 마커로서 획득하는 단계는, 추적 컨트롤러(4400)를 이용하여, 시작 마커를 포함하고 그리고 문자 인식률이 문턱값 이상인 문자 영상을 획득하는 단계 및 문자 영상에 종료 마커가 포함되어 있는지 여부를 판별하는 단계를 포함할 수 있다. The step of acquiring image patterns located at at least one of a boundary line or a boundary point among at least one image sample as boundary markers includes, using the tracking controller 4400, acquiring a character image including a start marker and a character recognition rate equal to or greater than a threshold value and determining whether an end marker is included in the text image.
그리고, 프로세서(120)는 문자 영상에 종료 마커가 포함된 경우, 문자 표시 영상으로서, 문자 영상을 결정할 수 있다. Also, when the end marker is included in the text image, the processor 120 may determine the text image as the text display image.
프로세서(120)는 문자 영상에 종료 마커가 포함되지 않은 경우, 추적 컨트롤러(4400)를 이용하여, 문자 영상에 포함된 경계 마커 중에서 마지막 마커의 다음 마커를 포함하고 그리고 문자 인식률이 문턱값 이상인 추가 문자 영상을 획득할 수 있다. 프로세서(120)는 추가 문자 영상을 문자 영상에 병합하여 병합 문자 영상을 생성할 수 있다. 그리고, 프로세서(120)는 병합 문자 영상에 종료 마커가 포함된 경우, 문자 표시 영상으로서, 병합 문자 영상을 결정할 수 있다.When the end marker is not included in the text image, the processor 120 includes the next marker of the last marker among the boundary markers included in the text image using the tracking controller 4400 and the text recognition rate is higher than or equal to the threshold. image can be obtained. The processor 120 may generate the merged text image by merging the additional text image with the text image. And, when the end marker is included in the merged text image, the processor 120 may determine the merged text image as the text display image.
한편, 다른 예를 들어, 컴퓨팅 장치(100)의 프로세서(120)에 의해 수행되는 문자에 OCR를 수행하는 단계(S3540)는 추적 컨트롤러를 이용하여, 문자의 시작 지점을 포함하고 그리고 문자 인식률이 문턱값 이상인 객체의 영상을 획득하는 단계, 객체의 영상의 최초 문장 구역에 대한 OCR을 수행하는 단계 및 OCR의 1차적 결과인 제 1 텍스트에 대한 자연어 이해(NLU; natural language understanding)를 수행하여, 의미 가치의 수치인 제 1 의미 가치값을 산출하는 단계를 포함할 수 있다.On the other hand, for another example, the step of performing OCR on the character performed by the processor 120 of the computing device 100 ( S3540 ) includes the starting point of the character using a tracking controller, and the character recognition rate is a threshold Obtaining an image of an object equal to or greater than a value, performing OCR on the first sentence region of the image of the object, and performing natural language understanding (NLU) on the first text, which is the primary result of OCR, means The method may include calculating a first semantic value that is a numerical value of the value.
프로세서(120)는 제 1 의미 가치값이 문턱값 이상인 경우, 제 1 텍스트를 OCR의 결과인 결과 텍스트로 결정할 수 있다.When the first semantic value is equal to or greater than the threshold, the processor 120 may determine the first text as the result text resulting from the OCR.
프로세서(120)는 제 1 의미 가치값이 문턱값 미만인 경우, 최초 문장 구역의 다음 문장 구역에 대한 OCR을 수행할 수 있다. 프로세서(120)는 OCR의 1차적 결과인 제 2 텍스트에 대한 자연어 이해를 수행하여, 의미 가치의 수치인 제 2 의미 가치값을 산출할 수 있다. 그리고, 프로세서(120)는 제 2 의미 가치값이 문턱값 이상인 경우, 제 2 텍스트를 OCR의 결과인 결과 텍스트로 결정할 수 있다.When the first semantic value is less than the threshold, the processor 120 may perform OCR on the next sentence region of the first sentence region. The processor 120 may calculate a second semantic value that is a numerical value of the semantic value by performing natural language understanding on the second text, which is the primary result of the OCR. Then, when the second semantic value is equal to or greater than the threshold, the processor 120 may determine the second text as the result text resulting from the OCR.
최초 문장 구역은 문장에 사용된 언어에 따른 문자들의 배치 방식에서 가장 먼저 배치된 것으로 검출되는 문장이 차지하는 구역일 수 있다.The initial sentence region may be a region occupied by a sentence detected as being arranged first in an arrangement method of characters according to a language used in the sentence.
컴퓨팅 장치(100)는 촬영 장치(200) 및 짐벌(300)과 연동될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 촬영 장치(200)를 포함하고, 그리고 촬영 장치(200)의 자세를 제어하는 짐벌(300)과 연동할 수 있다.The computing device 100 may interwork with the photographing device 200 and the gimbal 300 . For example, the computing device 100 may include the photographing device 200 and may interwork with a gimbal 300 that controls the posture of the photographing apparatus 200 .
컴퓨팅 장치(100)의 프로세서(120)는 추적 컨트롤러(4400)를 이용하여, 짐벌(300)의 하나 이상의 회전 축을 작동시켜 촬영 장치(200)의 방향을 제어할 수 있다.The processor 120 of the computing device 100 may control the direction of the photographing device 200 by operating one or more rotation axes of the gimbal 300 using the tracking controller 4400 .
프로세서(120)는 추적 컨트롤러(4400)를 이용하여, 촬영 장치(200)의 줌인(zoom-in) 및/또는 줌아웃(zoom-out)을 통해 영상을 획득할 수 있다.The processor 120 may acquire an image through zoom-in and/or zoom-out of the photographing device 200 using the tracking controller 4400 .
도 10a 내지 도 10c는 본 개시서의 영상 처리 방법에서의 OCR을 수행하는 데 이용될 수 있는 방식들을 예시적으로 나타낸 흐름도들이고, 도 11a 내지 도 11d는 본 개시서의 영상 처리 방법에서 OCR을 수행하는 방식들을 설명하기 위하여 예시된 도면들이다.10A to 10C are flowcharts exemplarily showing methods that can be used to perform OCR in the image processing method of the present disclosure, and FIGS. 11A to 11D are OCRs performed in the image processing method of the present disclosure The drawings are exemplified to explain the methods.
첫 번째, 도 10a 및 도 11a를 참조하면, 경계 마커를 이용하는 실시 예에서의 OCR 수행 단계(S3540a)는, 상기 문자가 표시된 객체(예컨대, 참조부호 1110의 종이 문서)로부터 영상 샘플들을 추출하는 단계(S3542a)로 시작하고, 단계(S3542a) 다음으로 상기 영상 샘플들로부터 문자가 표시된 구역(area)의 경계선(예컨대, 참조부호 1130의 폐곡선)을 획정하는 단계(S3544a)를 포함한다. First, referring to FIGS. 10A and 11A , the OCR performing step (S3540a) in the embodiment using the boundary marker is a step of extracting image samples from the object on which the character is displayed (eg, a paper document of reference numeral 1110). It starts with ( S3542a ), and then includes a step ( S3544a ) of defining a boundary line (eg, a closed curve at reference numeral 1130 ) of an area in which characters are displayed from the image samples following the step ( S3542a ).
여기에서, 영상 샘플은 경계선 또는 경계점의 위치에 존재하는 영상 패턴으로서, 그 영상 패턴은 일부 문자, 문자의 경계부, 문자의 일부분 또는 배경으로 구성될 수 있다. 상기 경계선은 객체의 표면에 표시되어 있는 문자들의 군집의 경계선을 지칭하며, 경계점은 경계선을 구성할 수 있는 점들의 집합을 지칭한다. 여기에서 배경은 그 자체로 문자를 구성하지 않는 영상 패턴을 지칭한다.Here, the image sample is an image pattern existing at the position of the boundary line or boundary point, and the image pattern may be composed of some characters, a boundary part of the characters, a part of the characters, or a background. The boundary line refers to a boundary line of a group of characters displayed on the surface of an object, and the boundary point refers to a set of points that may constitute the boundary line. Here, the background refers to an image pattern that does not constitute a character by itself.
이 실시 예의 OCR 수행 단계(S3540a)는, 단계(S3544a) 다음으로, 상기 영상 샘플들 중에서 상기 경계선 또는 상기 경계선에 속한 점인 경계점에 위치한 영상 패턴들을 경계 마커로서 획득하는 경계 마커 획득 단계(S3546a)를 더 포함하는데, 이 단계에서, 상기 경계 마커 중에서 전체 문자 중 시작 문자에 대응하는 영상 패턴은 시작 마커, 상기 경계 마커 중에서 상기 전체 문자 중 종료 문자에 대응하는 영상 패턴은 종료 마커로 지칭될 수 있다.In the OCR performing step (S3540a) of this embodiment, following the step (S3544a), the boundary marker acquisition step (S3546a) of acquiring image patterns located at the boundary line or a boundary point that is a point belonging to the boundary line among the image samples as boundary markers The method further includes, in this step, an image pattern corresponding to a start character among all characters among the boundary markers may be referred to as a start marker, and an image pattern corresponding to an end character among all characters among the boundary markers may be referred to as an end marker.
경계 마커는 객체 영상에서 상기 전체 문자에 속한 각각의 문자가 점유하고 있는 공간의 좌표 영역을 판별하기 위한 마커로서 기능한다.The boundary marker functions as a marker for determining a coordinate region of a space occupied by each character belonging to the entire character in the object image.
경계 마커, 즉, 상기 경계선 또는 상기 경계선에 속한 점인 경계점에 위치한 영상 패턴의 하나로서 문자의 경계부가 이용될 수 있다. 문자의 경계부는, 어느 문장에서 그 문장의 가로 또는 세로를 따라 연장되는 문자의 일부분을 구성하는 영상의 일부를 지칭한다. 예를 들면, "가나다라마바시"라는 문장에서 가의 'ㄱ'과 시의 'ㅣ'는 문자의 일부으로서 문자의 경계부인 경계 마커라고 할 수 있다. The boundary part of the character may be used as one of the image patterns located at the boundary marker, that is, the boundary line or a boundary point that is a point belonging to the boundary line. The character boundary part refers to a part of an image constituting a part of a character extending along the width or length of a sentence in a sentence. For example, in the sentence "Kanadaramabashi", the letter 'ㄱ' and 'ㅣ' in the poem are part of the letter and can be said to be a boundary marker that is the boundary of the letter.
또한, 경계 마커의 하나로서 문자의 일부분(또는 전체)가 이용될 수 있다. 예를 들어, "ABCDEFG"라는 문장에 있어서 A와 G는 경계점 및/또는 경계선에 위치한 문자의 일부분인 경계 마커로서 이용될 수 있다.Also, a part (or all) of the character may be used as one of the boundary markers. For example, in the sentence "ABCDEFG", A and G may be used as border markers that are part of a border point and/or a character located on a border line.
시작 마커 또는 종료 마커의 획득은 전체 문자가 구성하는 문장의 언어에 따른 문자들의 배치 방식을 반영한다. 예를 들어, 한국어 및 영어로 된 책에 대한 OCR에 있어서는 도 11에 예시된 바와 같이 상기 문자가 표시된 구역의 왼쪽 상단의 영상 샘플(1132)이 시작 마커가 될 수 있으며, 그 구역의 오른쪽 하단의 영상 샘플(1134)이 종료 마커가 될 수 있다.Acquisition of the start marker or the end marker reflects the arrangement of the characters according to the language of the sentence constituting the entire character. For example, in OCR for books in Korean and English, as illustrated in FIG. 11 , the image sample 1132 at the upper left of the area where the characters are displayed may be a start marker, and the image sample 1132 at the lower right of the area may be The image sample 1134 may be an end marker.
경계 마커 획득 단계(S3546a)는, 더 구체적으로, 상기 시작 마커를 포함하면서 문자 인식률이 소정의 문턱값 이상인 영상인 문자 영상을 획득하도록 추적 컨트롤러(4400)에 의하여 가용 자원을 제어하는 단계(S3546a-1)를 포함할 수 있다. The boundary marker acquisition step (S3546a) is, more specifically, a step of controlling the available resources by the tracking controller 4400 to acquire a text image that includes the start marker and has a text recognition rate equal to or greater than a predetermined threshold (S3546a-) 1) may be included.
여기에서 문자 인식률은 문자 영상에서 특정 문자가 어떠한 텍스트로 인식되는 비율을 지칭한다. 예를 들어, 문자가 나타난 객체가 나타나는 원거리의 영상으로부터 어떤 문자가 있다는 것은 딥 러닝 등으로 추정이 가능할 수 있지만, 그 원거리의 영상이 작거나 해상도가 낮은 이유로 그 문자가 어떤 문자인지를 판별하기 어려울 수 있는바, 즉, OCR에 의한 문자 인식률이 낮을 수 있다.Here, the character recognition rate refers to a rate at which a specific character is recognized as a certain text in a character image. For example, it can be estimated by deep learning that there is a certain character from a distant image where an object with a character appears, but it is difficult to determine which character the character is because the remote image is small or the resolution is low. That is, the character recognition rate by OCR may be low.
달리 말하자면, 상기 문자 인식률이 소정의 문턱값 이상인 문자 영상은 OCR 가능 해상도의 것을 지칭한다. 이 단계(S3546a-1)의 수행에 있어서 충분히 높은 해상도의 확대된 문자 영상을 얻기 위하여 본 개시서의 시스템은 추적 컨트롤러(4400)를 통하여 촬영 장치(200)의 줌인, 줌아웃 및 회전을 제어할 수 있다. 예를 들어, 도 11a를 참조하면, 종이 문서(1110)와 사람(1120)이 모두 포함된 구도에서 종이 문서(1110)를 영상의 중앙에 오도록 하는 촬영 장치(200)의 회전 제어(1160) 및 줌인 제어(1170, 1180)가 예시되어 있다.In other words, the text image having the text recognition rate equal to or greater than a predetermined threshold value refers to an OCR-capable resolution. In order to obtain an enlarged text image of sufficiently high resolution in performing this step (S3546a-1), the system of the present disclosure can control the zoom-in, zoom-out, and rotation of the photographing device 200 through the tracking controller 4400. have. For example, referring to FIG. 11A , in a composition including both the paper document 1110 and the person 1120, the rotation control 1160 of the photographing apparatus 200 to bring the paper document 1110 to the center of the image, and Zoom-in controls 1170 and 1180 are illustrated.
단계(S3546a-1) 다음으로 경계 마커 획득 단계(S3546a)의 이 실시 예는, 상기 획득된 문자 영상에 상기 종료 마커가 포함되어 있는지 판별하는 종료 마커 판별 단계(S3546a-2), 및 상기 획득된 문자 영상에 상기 종료 마커가 포함되었으면 상기 전체 문자 표시 영상으로서 상기 문자 영상을 취하고, 상기 획득된 문자 영상에 상기 종료 마커가 포함되지 않았으면 상기 문자 영상에 나타난 경계 마커 중 마지막 마커의 다음 마커를 탐색하여 상기 다음 마커를 포함하면서도 문자 인식률이 소정의 문턱값 이상인 영상인 추가 문자 영상을 획득하도록 추적 컨트롤러(4400)에 의하여 가용 자원을 제어하고, 상기 추가 문자 영상을 상기 문자 영상에 병합함으로써, 상기 종료 마커 판별 단계(S3546a-2)부터 다시 수행하는 단계(S3546a-3)를 포함한다.Following step S3546a-1, this embodiment of the boundary marker acquisition step S3546a includes the end marker determination step S3546a-2 for determining whether the acquired text image includes the end marker, and the acquired If the end marker is included in the text image, the text image is taken as the full text display image, and if the obtained text image does not include the end marker, the next marker of the last marker among the boundary markers displayed in the text image is searched for. to control the available resources by the tracking controller 4400 to obtain an additional text image, which is an image including the next marker and a text recognition rate equal to or greater than a predetermined threshold, and merge the additional text image into the text image, thereby ending the It includes a step (S3546a-3) of re-performing the marker determination step (S3546a-2).
단계(S3546a-3)에서의 가용 자원의 제어는 짐벌(300)에 대한 제어를 포함하는바, 예를 들어, 한국어 및 영어로 된 책에 대한 짐벌(300)의 제어는 촬영 장치(200)로 하여금 상기 문자가 표시된 구역의 왼쪽으로부터 오른쪽으로, 그리고 그 구역의 위로부터 아래로 스캔하도록 보조하는 제어(예컨대, 도 11b의 참조부호 1190의 회전 제어)일 수 있다.The control of available resources in step S3546a-3 includes control of the gimbal 300, for example, control of the gimbal 300 for books in Korean and English is performed by the photographing device 200. It may be a control (eg, rotation control 1190 in FIG. 11B ) that assists in causing the character to scan from left to right of the region marked with the character and from top to bottom of the region.
또한, 단계(S3546a-3)에서의 문자 영상의 병합에는 여러 영상 바느질(image stitching) 기법이 이용될 수 있음을 통상의 기술자는 이해할 것이다. 도 11b를 참조하면, 시간적으로 또는 공간적으로 이격을 두고 촬영된 2개 이상의 영상 사이에서 서로 겹치는 영상 패턴들(1136a, 1136b)을 이용하여 영상 병합이 이루어질 수 있다.In addition, those skilled in the art will understand that several image stitching techniques may be used for merging text images in step S3546a-3. Referring to FIG. 11B , image merging may be performed using image patterns 1136a and 1136b overlapping with each other between two or more images captured temporally or spatially apart.
이와 같은 경계 마커 획득 단계(S3546a)의 다음으로, 이 실시 예의 OCR 수행 단계(S3540a)는, 상기 문자가 표시된 객체의 영상이 포함된 부분 영상으로서, 상기 시작 마커 및 상기 종료 마커를 모두 포함하는 영상인 전체 문자 표시 영상에 대해 OCR을 수행함으로써 텍스트를 획득하는 단계(S3468a)를 포함할 수 있다.Following the boundary marker acquisition step (S3546a), the OCR performing step (S3540a) of this embodiment is a partial image including the image of the object marked with the text, and includes both the start marker and the end marker. The method may include obtaining text by performing OCR on the entire character display image (S3468a).
한편, 도 10b 및 도 11c를 참조하면, OCR 수행 단계(S3540)의 제2 실시 예에서, OCR 수행 단계(S3540b)는, 상기 문자가 표시된 객체로부터 영상 샘플들을 추출하는 단계(S3542b)로 시작하고, 단계(S3542b) 다음으로 상기 영상 샘플들로부터 문자가 표시된 구역(area)의 경계선(1130)을 획정하는 단계(S3544b)를 포함한다. Meanwhile, referring to FIGS. 10B and 11C , in the second embodiment of the OCR performing step (S3540), the OCR performing step (S3540b) starts with the step of extracting image samples from the object on which the character is displayed (S3542b), and , step (S3542b), followed by a step (S3544b) of defining a boundary line 1130 of an area in which characters are displayed from the image samples.
그 다음, OCR 수행 단계(S3540b)는, 상기 영상 샘플들 중에서 상기 경계선에 위치하지 않은 적어도 하나의 영상 패턴(1142a, 1142b)을 분할 마커로서 획득하고 상기 분할 마커를 이용하여 문자 영상들을 병합함으로써 생성되는 영상인 전체 문자 표시 영상에 OCR을 수행하는 단계(S3546b)를 포함한다.Next, the OCR performing step (S3540b) is generated by acquiring at least one image pattern 1142a and 1142b not located on the boundary line among the image samples as a division marker and merging the text images using the division marker. and performing OCR on the entire character display image, which is an image to be used (S3546b).
단계(S3546b)에서 분할 마커는 시간적으로 또는 공간적으로 이격을 두고 촬영된 2개 이상의 영상 사이에서 서로 겹치는 영상 패턴(1142a, 1142b)을 지칭한다. 서로 다른 영상에서 동일한 분할 마커를 포착함으로써 그 분할 마커를 이용한 영상 병합, 즉, 영상 바느질이 이루어질 수 있다.In step S3546b, the segmentation marker refers to image patterns 1142a and 1142b that overlap with each other between two or more images taken while being spaced apart temporally or spatially. By capturing the same segmentation marker in different images, image merging using the segmentation marker, that is, image stitching can be performed.
마지막으로, 도 10c 및 도 11d를 참조하면, OCR 수행 단계(S3540)의 제3 실시 예에서, OCR 수행 단계(S3540c)는, 상기 전체 문자의 시작 지점을 포함하고 문자 인식률이 소정의 문턱값 이상인 상기 객체 영상을 획득하도록, 즉, 그 객체 영상이 OCR 가능한 소정의 해상도를 가지도록 추적 컨트롤러(4400)에 의하여 가용 자원을 제어하는 단계(S3542c)를 포함한다.Finally, referring to FIGS. 10C and 11D , in the third embodiment of the OCR performing step ( S3540 ), the OCR performing step ( S3540c ) includes the starting point of the entire character and the character recognition rate is equal to or greater than a predetermined threshold value. and controlling the available resources by the tracking controller 4400 to obtain the object image, that is, so that the object image has a predetermined resolution capable of OCR (S3542c).
단계(S3542c)를 수행하는 추적 컨트롤러(4400)의 방침(policy)으로서, 상기 객체 영상이 OCR 가능한 소정의 해상도를 가질 조건뿐만 아니라 그러한 해상도에서 최대한 많은 개수의 문자들을 상기 객체 영상에 포함시킬 조건이 부여될 수 있다.As a policy of the tracking controller 4400 performing step S3542c, not only the condition that the object image has a predetermined resolution capable of OCR, but also the condition to include the maximum number of characters in the object image at such resolution can be given
다음으로, OCR 수행 단계(S3540c)는, 획득된 상기 객체 영상의 최초 문장 구역(1152)에 대한 OCR을 수행하는 단계(S3544c)를 더 포함한다. Next, performing OCR ( S3540c ) further includes performing OCR on the first sentence region 1152 of the obtained object image ( S3544c ).
여기에서 최초 문장 구역은, 문장에 사용된 언어에 따른 문자들의 일반적인 배치 방식을 고려할 때, 가장 먼저 배치된 것으로 검출되는 문장이 차지하는 구역을 지칭한다.Here, the initial sentence region refers to a region occupied by a sentence detected as being arranged first when considering a general arrangement method of characters according to a language used in the sentence.
예를 들어, 이 단계(S3544c)의 최초 실행 시에, 상기 최초 문장 구역은 ",", ".", "?"와 같이 한 문장의 완결 지점을 나타내는 문장 부호를 스캔하여 결정할 수 있다. 이러한 문장 부호가 스캔되면, 시작 문자로부터 그 문장 부호까지를 상기 최초 문장 구역(1152)으로 상정할 수 있다.For example, in the first execution of this step S3544c, the first sentence section may be determined by scanning punctuation marks indicating the end point of a sentence, such as “,”, “.”, and “?”. When these punctuation marks are scanned, it can be assumed that the first punctuation area 1152 is from the start character to the punctuation mark.
다른 예로서, 이 단계(S3544c)의 최초 실행 시에, 상기 최초 문장 구역(1152)은 시작 문자의 크기부터 다음 문자들의 크기를 순차적으로 비교할 때 그 문자의 크기가 소정의 문턱값 이상으로 변화하기 전까지 시작 문자로부터 연이어지는 문자들로 구성된 문장이 차지하는 구역으로 결정될 수도 있다.As another example, in the first execution of this step S3544c, the first sentence section 1152 determines that the size of the character changes by more than a predetermined threshold when the size of the next character is sequentially compared from the size of the starting character. It may also be determined as the area occupied by the sentence consisting of the letters consecutive from the beginning of the previous letter.
또 다른 예로서, 이 단계(S3544c)의 최초 실행 시에, 상기 최초 문장 구역(1152)은 시작 문자와 그 다음 문자 사이의 자간의 크기부터 그 다음 자간들의 크기를 순차적으로 비교할 때 그 자간의 크기가 소정의 문턱값 이상으로 변화하기 전까지 시작 문자로부터 연이어지는 문자들로 구성된 문장이 차지하는 구역으로 결정될 수도 있다.As another example, in the first execution of this step S3544c, the first sentence section 1152 determines the size of the letter space when sequentially comparing the size of the letters between the start character and the next letter from the size of the next letter. It may be determined as an area occupied by a sentence composed of consecutive characters from the start character until .
그 다음, OCR 수행 단계(S3540c)는, 단계(S3544c)에서의 OCR에 의한 1차적 결과인 제1 텍스트에 대한 자연어 이해(NLU; natural language understanding)를 수행함으로써, 그 제1 텍스트의 의미 가치의 수치인 의미 가치값을 산출하는 의미 가치값 산출 단계(S3546c)를 더 포함한다.Next, in the OCR performing step (S3540c), by performing natural language understanding (NLU) on the first text, which is the primary result by the OCR in the step (S3544c), the semantic value of the first text is The method further includes a semantic value calculation step (S3546c) of calculating a semantic value, which is a numerical value.
다음으로, OCR 수행 단계(S3540c)는, 단계(S3546c)에서의 의미 가치값이 소정의 문턱값 이상이면, 상기 제1 텍스트를 상기 결과 텍스트로 취함으로써 상기 OCR을 완료하고, 상기 의미 가치값이 상기 소정의 문턱값 미만이면, 상기 최초 문장 구역의 다음 문장 구역(1154)에 대한 OCR을 수행하고 의미 가치값 산출 단계(S3546c)부터 다시 수행하는 단계(S3548c)를 더 포함한다.Next, in the OCR performing step (S3540c), if the semantic value in step S3546c is greater than or equal to a predetermined threshold, the OCR is completed by taking the first text as the result text, and the semantic value is If it is less than the predetermined threshold, the method further includes performing OCR on the next sentence region 1154 of the first sentence region and re-performing the semantic value calculation step (S3546c) (S3548c).
의미 가치값의 산출은 누적적으로 이루어질 수 있는바, 자연어 이해는 OCR이 이루어진 하나의 문장에만 적용되는 것이 아닌 방식으로, 즉, 이전에 OCR이 이루어졌던 문장을 새 문장과 결합하여 더 커진 문장 구역에 대하여 다시 적용되는 방식으로 이루어질 수 있기 때문이다.Since the calculation of the semantic value can be cumulative, natural language understanding is not applied only to one sentence in which OCR has been performed, that is, a sentence area that has been enlarged by combining a sentence that has been previously OCRed with a new sentence. This is because it can be done in a way that is applied again for
이를 위하여, 단계(S3548c)는 상기 최초 문장 구역의 문장 부호 이후에 존재하는 다음 문장들을 포함하는 새로운 문장 구역들에 대하여 OCR을 순차적으로, 반복적으로 수행할 수 있다.To this end, in step S3548c, OCR may be sequentially and repeatedly performed on new sentence sections including the following sentences existing after the punctuation mark of the first sentence section.
물론, 마지막 문장까지 OCR을 수행하여도 그 의미 가치값이 소정의 문턱값에 도달하지 못하는 경우, 상기 전체 문자에 의한 텍스트는 없는 것으로 검출될 수 있다.Of course, even if the OCR is performed up to the last sentence, if the semantic value does not reach a predetermined threshold, it may be detected that there is no text by the entire character.
이처럼 본 개시서의 전술한 단계들의 수행에 의하여 객체들을 촬영한 영상을 처리하는 컴퓨팅 장치가 그 영상에서 검출되는 객체들의 다양한 정보를 파악할 수 있다. As such, by performing the above-described steps of the present disclosure, a computing device that processes an image obtained by photographing objects may grasp various information of objects detected in the image.
도면들에 나타난 구성요소들은 설명의 편의상 하나의 컴퓨팅 장치, 예컨대, 휴대 단말에서 실현되는 것으로 예시되었으나, 본 발명의 방법을 수행하는 컴퓨팅 장치(100)는 복수개의 장치들이 서로 연동된 것으로 구성될 수도 있다는 점이 이해될 것이다. 따라서 전술한 본 발명 방법의 각 단계는, 휴대 단말 외에도 통신부 및 프로세서를 내장한 짐벌(300)에 의하여 수행될 수 있는바, 이밖에도 하나의 컴퓨팅 장치가 직접 수행하거나 상기 하나의 컴퓨팅 장치가 상기 하나의 컴퓨팅 장치에 연동되는 타 컴퓨팅 장치로 하여금 수행하도록 지원(support)함으로써 수행될 수 있음이 자명하다.The components shown in the drawings are exemplified as being realized in one computing device, for example, a portable terminal for convenience of description, but the computing device 100 performing the method of the present invention may be configured as a plurality of devices interworking with each other. It will be understood that there is Therefore, each step of the method of the present invention described above may be performed by the gimbal 300 having a built-in communication unit and a processor in addition to the portable terminal. It is apparent that this may be performed by supporting other computing devices interlocked with the computing device to perform the operation.
지금까지 설명된 바와 같이 본 개시서의 방법 및 장치는 그 모든 실시 예 및 변형례에 걸쳐, 영상을 이용하여 하나 이상의 객체를 인식 및 추적할 수 있고, 객체 및 환경의 정보를 능동적으로 획득할 수 있으며, 특히, 객체의 상태 정보를 원거리에서 영상으로 획득할 수 있고, 객체가 상호작용하는 객체를 영상으로 판별하고, 객체 일부분에 대한 더 높은 해상도의 상세 영상을 원거리에서 획득할 수 있으며, 객체에 인쇄되어 있거나 디스플레이 등의 타 수단을 이용하여 출력하는 문자를 원거리에서 파악할 수 있어 휴대 가능 컴퓨팅 장치의, 영상을 이용한 원거리 입력이 가능해지는 장점이 있다.As described so far, the method and apparatus of the present disclosure can recognize and track one or more objects using an image, and actively acquire information of objects and environments, throughout all embodiments and modifications thereof. In particular, it is possible to obtain the state information of the object as an image from a distance, determine the object with which the object interacts as an image, and obtain a higher resolution detailed image of a part of the object from a distance, Since characters printed or output using other means such as a display can be grasped from a distance, there is an advantage in that remote input using an image of a portable computing device is possible.
이상, 본 개시서의 다양한 실시 예들에 관한 설명에 기초하여 해당 기술분야의 통상의 기술자는, 본 발명의 방법 및/또는 프로세스들, 그리고 그 단계들이 하드웨어, 소프트웨어 또는 특정 용례에 적합한 하드웨어 및 소프트웨어의 임의의 조합으로 실현될 수 있다는 점을 명확하게 이해할 수 있다. 상기 하드웨어는 범용 컴퓨터 및/또는 전용 컴퓨팅 장치 또는 특정 컴퓨팅 장치 또는 특정 컴퓨팅 장치의 특별한 모습 또는 구성요소를 포함할 수 있다. 상기 프로세스들은 내부 및/또는 외부 메모리를 가지는, 하나 이상의 프로세서, 예컨대, 마이크로프로세서, 컨트롤러, 예컨대, 마이크로컨트롤러, 임베디드 마이크로컨트롤러, 마이크로컴퓨터, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 예컨대, 프로그래머블 디지털 신호 프로세서 또는 기타 프로그래머블 장치에 의하여 실현될 수 있다. 게다가, 혹은 대안으로서, 상기 프로세스들은 주문형 집적회로(application specific integrated circuit; ASIC), 프로그래머블 게이트 어레이(programmable gate array), 예컨대, FPGA(field programmable gate array), PLU(programmable logic unit) 혹은 프로그래머블 어레이 로직(Programmable Array Logic; PAL) 또는 기타 인스트럭션(instruction)을 실행하고 응답할 수 있는 임의의 다른 장치, 전자 신호들을 처리하기 위해 구성될 수 있는 임의의 다른 장치 또는 장치들의 조합으로 실시될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.As described above, based on the description of various embodiments of the present disclosure, those skilled in the art will recognize that the method and/or processes of the present invention, and the steps thereof, are hardware, software, or hardware and software suitable for a specific application. It can be clearly understood that it can be realized in any combination. The hardware may include general purpose computers and/or dedicated computing devices or specific computing devices or special features or components of specific computing devices. The processes may include one or more processors, eg, microprocessors, controllers, eg, microcontrollers, embedded microcontrollers, microcomputers, arithmetic logic units (ALUs), digital signal processors, with internal and/or external memory. , for example, by a programmable digital signal processor or other programmable device. Additionally, or alternatively, the processes may be implemented using an application specific integrated circuit (ASIC), a programmable gate array, such as a field programmable gate array (FPGA), a programmable logic unit (PLU) or programmable array logic. (Programmable Array Logic; PAL) or any other device capable of executing and responding to instructions, any other device or combination of devices that can be configured to process electronic signals. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 인스트럭션(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치에 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 인스트럭션 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 기계 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more of these, which configures the processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device for interpretation by or providing instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more machine-readable recording media.
더욱이 본 발명의 기술적 해법의 대상물 또는 선행 기술들에 기여하는 부분들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 인스트럭션의 형태로 구현되어 기계 판독 가능 매체에 기록될 수 있다. 기계 판독 가능 매체는 프로그램 인스트럭션, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기계 판독 가능한 기록 매체에 기록되는 프로그램 인스트럭션은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 기계 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD, Blu-ray와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 인스트럭션을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 인스트럭션의 예에는, 전술한 장치들 중 어느 하나뿐만 아니라 프로세서, 프로세서 아키텍처 또는 상이한 하드웨어 및 소프트웨어의 조합들의 이종 조합, 또는 다른 어떤 프로그램 인스트럭션들을 실행할 수 있는 기계 상에서 실행되기 위하여 저장 및 컴파일 또는 인터프리트될 수 있는, C와 같은 구조적 프로그래밍 언어, C++ 같은 객체지향적 프로그래밍 언어 또는 고급 또는 저급 프로그래밍 언어(어셈블리어, 하드웨어 기술 언어들 및 데이터베이스 프로그래밍 언어 및 기술들)를 사용하여 만들어질 수 있는 바, 기계어 코드, 바이트코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 이에 포함된다. Moreover, the objects of the technical solution of the present invention or parts contributing to the prior arts may be implemented in the form of program instructions that can be executed through various computer components and recorded in a machine-readable medium. The machine-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the machine-readable recording medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the machine-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs, DVDs, and Blu-rays, and floppy disks. magneto-optical media, such as ), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include any one of the devices described above, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or stored and compiled or interpreted for execution on a machine capable of executing any other program instructions. machine code, which may be created using a structured programming language such as C, an object-oriented programming language such as C++, or a high-level or low-level programming language This includes not only bytecode, but also high-level language code that can be executed by a computer using an interpreter or the like.
따라서 본 발명에 따른 일 태양에서는, 앞서 설명된 방법 및 그 조합들이 하나 이상의 컴퓨팅 장치들에 의하여 수행될 때, 그 방법 및 방법의 조합들이 각 단계들을 수행하는 실행 가능한 코드로서 실시될 수 있다. 다른 일 태양에서는, 상기 방법은 상기 단계들을 수행하는 시스템들로서 실시될 수 있고, 방법들은 장치들에 걸쳐 여러 가지 방법으로 분산되거나 모든 기능들이 하나의 전용, 독립형 장치 또는 다른 하드웨어에 통합될 수 있다. 또 다른 일 태양에서는, 위에서 설명한 프로세스들과 연관된 단계들을 수행하는 수단들은 앞서 설명한 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 그러한 모든 순차 결합 및 조합들은 본 개시서의 범위 내에 속하도록 의도된 것이다.Accordingly, in one aspect according to the present invention, when the method and combinations thereof described above are performed by one or more computing devices, the methods and combinations of methods may be implemented as executable code for performing respective steps. In another aspect, the method may be implemented as systems that perform the steps, the methods may be distributed in various ways across devices or all functions may be integrated into one dedicated, standalone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such sequential combinations and combinations are intended to fall within the scope of this disclosure.
예를 들어, 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는, 프로그램 인스트럭션을 저장하기 위한 ROM/RAM 등과 같은 메모리와 결합되고 상기 메모리에 저장된 인스트럭션들을 실행하도록 구성되는 MPU, CPU, GPU, TPU와 같은 프로세서를 포함할 수 있으며, 외부 장치와 신호를 주고받을 수 있는 통신부를 포함할 수 있다. 덧붙여, 상기 하드웨어 장치는 개발자들에 의하여 작성된 인스트럭션들을 전달받기 위한 키보드, 마우스, 기타 외부 입력 장치를 포함할 수 있다.For example, the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa. The hardware device may include a processor such as an MPU, CPU, GPU, TPU coupled with a memory such as ROM/RAM for storing program instructions and configured to execute the instructions stored in the memory, an external device and a signal It may include a communication unit that can send and receive. In addition, the hardware device may include a keyboard, a mouse, and other external input devices for receiving instructions written by developers.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시 예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 사람이라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described with specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments, Those of ordinary skill in the art to which the present invention pertains can devise various modifications and variations from these descriptions.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니되며, 본 개시서에 첨부된 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and not only the claims appended to the present disclosure but also all modifications equivalently or equivalently to the claims attached to the present disclosure are the spirit of the present invention. would be said to belong to the category of For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그와 같이 균등하게 또는 등가적으로 변형된 것에는, 예컨대 본 발명에 따른 방법을 실시한 것과 동일한 결과를 낼 수 있는, 논리적으로 동치(logically equivalent)인 방법이 포함될 것인 바, 본 발명의 진의 및 범위는 전술한 예시들에 의하여 제한되어서는 아니되며, 법률에 의하여 허용 가능한 가장 넓은 의미로 이해되어야 한다.Such equivalent or equivalent modifications will include, for example, logically equivalent methods capable of producing the same results as practicing the methods according to the present invention, the spirit and spirit of the present invention. The scope should not be limited by the above examples, but should be understood in the broadest sense permitted by law.
상기와 같이 발명의 실시를 위한 최선의 형태에서 관련 내용을 기술하였다.As described above, the relevant content has been described in the best mode for carrying out the invention.
본 개시는 영상을 처리하는 시스템에서 사용될 수 있다.The present disclosure may be used in a system for processing an image.

Claims (15)

  1. 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는 영상을 처리하는 방법으로서, 상기 방법은:A method of processing an image performed by a computing device comprising a processor, the method comprising:
    영상을 획득하는 단계;acquiring an image;
    객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하는 단계;obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model;
    자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하는 단계; 및obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and
    행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득하는 단계;obtaining behavior information about the object, including an N-dimensional motion vector corresponding to the object, from the posture information on the object by using a behavior discrimination model;
    를 포함하는,containing,
    방법.Way.
  2. 제1항에 있어서, According to claim 1,
    상기 분석 정보는,The analysis information is
    상기 객체의 카테고리를 나타내는 분류 정보, 상기 객체의 위치를 나타내는 위치 정보 또는 상기 객체가 영상 내에서 가지는 우선순위를 나타내는 중요도 정보 중 적어도 하나를 포함하는,including at least one of classification information indicating the category of the object, location information indicating the location of the object, or importance information indicating the priority of the object in an image,
    방법.Way.
  3. 제1항에 있어서, According to claim 1,
    상기 자세 판별 모델에서, 상기 객체에 대응되는 상기 분석 정보에 기초하여, 복수의 자세 판별 방식들 중 상기 객체에 적용될 자세 판별 방식이 결정되는,In the posture determination model, based on the analysis information corresponding to the object, a posture determination method to be applied to the object among a plurality of posture determination methods is determined,
    방법.Way.
  4. 제1항에 있어서, According to claim 1,
    상기 자세 판별 모델은,The posture determination model is
    상기 객체의 카테고리를 나타내는 분류 정보에 따라서 자세의 판별 방식을 상이하게 적용하는,Differently applying the determination method of the posture according to the classification information indicating the category of the object,
    방법.Way.
  5. 제1항에 있어서, According to claim 1,
    상기 자세 판별 모델은,The posture determination model is
    상기 분석 정보로부터, 상기 객체에 대응되는 N차원의 자세에 대한 정보를 포함하는, 상기 객체에 대한 자세 정보를 생성하는,From the analysis information, generating posture information about the object, including information about an N-dimensional posture corresponding to the object,
    방법. Way.
  6. 제1항에 있어서, According to claim 1,
    상기 객체에 대한 자세 정보는,Posture information about the object,
    상기 객체에 대해서 시간적으로 연속된 자세에 대한 정보를 포함하는,Including information about the temporally continuous posture with respect to the object,
    방법.Way.
  7. 제1항에 있어서, According to claim 1,
    상기 이동 벡터는,The movement vector is
    상기 객체의 2차원적 방향 또는 속도 중 적어도 하나를 포함하는 2차원 이동 벡터를 포함하는,comprising a two-dimensional motion vector including at least one of a two-dimensional direction or velocity of the object,
    방법.Way.
  8. 제1항에 있어서, According to claim 1,
    상기 이동 벡터는,The movement vector is
    상기 영상을 촬영한 촬영 장치의 위치, 속도 또는 가속도 중 적어도 하나에 기초하여 산출되는 상기 객체의 3차원 이동 벡터를 포함하는,including a three-dimensional movement vector of the object calculated based on at least one of a position, speed, or acceleration of a photographing device that has captured the image,
    방법.Way.
  9. 제1항에 있어서, According to claim 1,
    상기 행위 판별 모델은,The behavior discrimination model is
    상기 객체의 자세 정보로부터, 상기 객체에 대응되는 N차원의 행위 분류를 포함하는, 객체의 맥락에 대한 상기 객체의 행위 정보를 생성하는,From the posture information of the object, generating behavior information of the object with respect to the context of the object, including an N-dimensional behavior classification corresponding to the object,
    방법.Way.
  10. 제9항에 있어서,10. The method of claim 9,
    상기 객체의 맥락은,The context of the object is
    상기 객체의 상태 또는 행위의 목적 중 적어도 하나를 포함하는,containing at least one of the object's state or purpose of action,
    방법.Way.
  11. 제9항에 있어서, 10. The method of claim 9,
    상기 행위 분류는,The action classification is
    상기 객체에 포함된 부분 객체의 위치를 식별하고,Identifies the location of the partial object included in the object,
    상기 부분 객체의 위치에 기초하여, 상기 객체의 자세를 결정하고, 그리고determine a pose of the object based on the position of the partial object, and
    상기 객체의 자세에 기초하여, 상기 객체의 행위 분류를 결정함으로써 산출되는,Calculated by determining the action classification of the object based on the posture of the object,
    방법.Way.
  12. 제11항에 있어서, 12. The method of claim 11,
    상기 부분 객체는,The partial object is
    상기 객체의 일부 또는 상기 객체의 귀속된 구성요소 중 적어도 하나를 포함하는,comprising at least one of a part of the object or an attribute belonging to the object,
    방법.Way.
  13. 제1항에 있어서, According to claim 1,
    상기 행위 판별 모델은, 상기 객체의 카테고리를 나타내는 분류 정보에 따라서 행위의 판별 방식을 상이하게 적용하는,The behavior determination model applies a different method of determining an action according to classification information indicating the category of the object,
    방법.Way.
  14. 컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치로 하여금 영상을 처리하기 위한 방법을 수행하도록 하며, 상기 방법은:A non-transitory computer readable medium comprising a computer program, the computer program causing a computing device to perform a method for processing an image, the method comprising:
    영상을 획득하는 단계;acquiring an image;
    객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하는 단계;obtaining, from the image, analysis information corresponding to the object included in the image by using the object analysis model;
    자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하는 단계; 및obtaining posture information about the object from the analysis information corresponding to the object by using the posture determination model; and
    행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득하는 단계;obtaining behavior information about the object, including an N-dimensional motion vector corresponding to the object, from the posture information on the object by using a behavior discrimination model;
    를 포함하는,containing,
    컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 매체.A non-transitory computer-readable medium containing a computer program.
  15. 컴퓨팅 장치에 있어서,A computing device, comprising:
    프로세서; 및processor; and
    통신부;communication department;
    를 포함하고,including,
    상기 프로세서는,The processor is
    영상을 획득하고,acquire video,
    객체 분석 모델을 이용하여, 상기 영상으로부터, 상기 영상에 포함된 객체에 대응되는 분석 정보를 획득하고,Obtaining analysis information corresponding to the object included in the image from the image by using the object analysis model,
    자세 판별 모델을 이용하여, 상기 객체에 대응되는 분석 정보로부터, 상기 객체에 대한 자세 정보를 획득하고, 그리고Using the posture determination model, from the analysis information corresponding to the object, obtain posture information about the object, and
    행위 판별 모델을 이용하여, 상기 객체에 대한 자세 정보로부터, 상기 객체에 대응되는 N차원의 이동 벡터를 포함하는, 상기 객체에 대한 행위 정보를 획득하는,Obtaining behavior information about the object, including an N-dimensional motion vector corresponding to the object, from the posture information about the object by using a behavior discrimination model,
    컴퓨팅 장치.computing device.
PCT/KR2022/003965 2021-03-22 2022-03-22 Method for processing image acquired from imaging device linked with computing device, and system using same WO2022203342A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210036958 2021-03-22
KR10-2021-0036958 2021-03-22

Publications (1)

Publication Number Publication Date
WO2022203342A1 true WO2022203342A1 (en) 2022-09-29

Family

ID=83395882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/003965 WO2022203342A1 (en) 2021-03-22 2022-03-22 Method for processing image acquired from imaging device linked with computing device, and system using same

Country Status (1)

Country Link
WO (1) WO2022203342A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130047131A (en) * 2011-10-31 2013-05-08 주식회사 지오위즈넷 Method and system for surveilling contents of surveillance using mobile terminal
KR20130122262A (en) * 2012-04-30 2013-11-07 전자부품연구원 System for searching video and server for analysing video
KR20140088597A (en) * 2011-12-28 2014-07-10 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 Preventing classification of object contextual information
KR102019301B1 (en) * 2018-04-24 2019-09-06 군산대학교 산학협력단 A video surveillance apparatus for detecting agro-livestock theft and method thereof
KR102152318B1 (en) * 2019-11-13 2020-09-04 주식회사 벡터시스 Tracking system that can trace object's movement path

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130047131A (en) * 2011-10-31 2013-05-08 주식회사 지오위즈넷 Method and system for surveilling contents of surveillance using mobile terminal
KR20140088597A (en) * 2011-12-28 2014-07-10 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 Preventing classification of object contextual information
KR20130122262A (en) * 2012-04-30 2013-11-07 전자부품연구원 System for searching video and server for analysing video
KR102019301B1 (en) * 2018-04-24 2019-09-06 군산대학교 산학협력단 A video surveillance apparatus for detecting agro-livestock theft and method thereof
KR102152318B1 (en) * 2019-11-13 2020-09-04 주식회사 벡터시스 Tracking system that can trace object's movement path

Similar Documents

Publication Publication Date Title
WO2020159232A1 (en) Method, apparatus, electronic device and computer readable storage medium for image searching
WO2019107724A1 (en) Method and system for providing recommendation information related to photography
WO2018143630A1 (en) Device and method for recommending product
WO2019027240A1 (en) Electronic device and method for providing search result thereof
WO2017043857A1 (en) Method for providing application, and electronic device therefor
WO2018128362A1 (en) Electronic apparatus and method of operating the same
WO2018084577A1 (en) Data recognition model construction apparatus and method for constructing data recognition model thereof, and data recognition apparatus and method for recognizing data thereof
WO2014025185A1 (en) Method and system for tagging information about image, apparatus and computer-readable recording medium thereof
WO2016048102A1 (en) Image display method performed by device including switchable mirror and the device
EP3545436A1 (en) Electronic apparatus and method of operating the same
WO2016111584A1 (en) User terminal for displaying image and image display method thereof
WO2019027258A1 (en) Electronic device and method for controlling the electronic device
EP3198376A1 (en) Image display method performed by device including switchable mirror and the device
EP3532990A1 (en) Data recognition model construction apparatus and method for constructing data recognition model thereof, and data recognition apparatus and method for recognizing data thereof
WO2016089079A1 (en) Device and method for outputting response
WO2020235852A1 (en) Device for automatically capturing photo or video about specific moment, and operation method thereof
WO2019135621A1 (en) Video playback device and control method thereof
WO2019146942A1 (en) Electronic apparatus and control method thereof
WO2020105871A1 (en) Electronic device and control method thereof
WO2021054589A1 (en) Electronic apparatus and controlling method thereof
WO2020138564A1 (en) Electronic device
WO2019135631A1 (en) Electronic device for obfuscating and decoding data and method for controlling same
AU2018310111B2 (en) Electronic device and method for providing search result thereof
WO2016126083A1 (en) Method, electronic device, and recording medium for notifying of surrounding situation information
WO2020122293A1 (en) Laundry scheduling apparatus

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: 22776042

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: 22776042

Country of ref document: EP

Kind code of ref document: A1