WO2022071695A1 - 영상을 처리하는 디바이스 및 그 동작 방법 - Google Patents

영상을 처리하는 디바이스 및 그 동작 방법 Download PDF

Info

Publication number
WO2022071695A1
WO2022071695A1 PCT/KR2021/013118 KR2021013118W WO2022071695A1 WO 2022071695 A1 WO2022071695 A1 WO 2022071695A1 KR 2021013118 W KR2021013118 W KR 2021013118W WO 2022071695 A1 WO2022071695 A1 WO 2022071695A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
target object
compression ratio
value
feature vector
Prior art date
Application number
PCT/KR2021/013118
Other languages
English (en)
French (fr)
Inventor
김동찬
황진영
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to EP21875970.2A priority Critical patent/EP4220560A4/en
Priority to CN202180066370.3A priority patent/CN116261741A/zh
Publication of WO2022071695A1 publication Critical patent/WO2022071695A1/ko
Priority to US18/127,304 priority patent/US20230232026A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the present disclosure relates to a device for processing an image and an operating method thereof. More specifically, it relates to a device that performs image processing for recognizing a target object from an image photographed using a camera or acquired through a network.
  • standard compression techniques eg, H.264/AVC, HEVC (H.265), or JPEG
  • H.264/AVC High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • JPEG JPEG
  • encoding is performed by setting the compression rate to be excessively high, the image is deteriorated, and thus there is a problem in that the face, hair style, clothing, etc. of a person to be recognized cannot be recognized.
  • the present disclosure relates to a device for processing an image acquired through photographing using a camera or acquired through a network and an operating method thereof, and specifically, from an image using a pre-trained deep neural network model.
  • An object of the present invention is to provide a device for obtaining a compression rate for normally recognizing a target object, compressing and encoding an image using the obtained compression rate, and an operating method thereof.
  • an embodiment of the present disclosure provides a method of processing an image by a device.
  • the method according to an embodiment of the present disclosure includes the steps of: obtaining a feature map for detecting a target object from an image; a depth composed of pre-trained model parameters for the image and the feature map By inputting into a neural network model (Deep Neural Network), outputting a compression rate for normally recognizing a target object from the image, and compressing and encoding the image using the output compression rate to generate a bitstream including the steps of
  • a neural network model Deep Neural Network
  • the method includes a plurality of specially acquired original images, a plurality of feature maps extracted from the plurality of original images, and an optimal compression ratio value at which a target object is normally recognized from each of the plurality of original images.
  • the method may further include generating data.
  • the deep neural network model applies the plurality of original images and the plurality of feature maps as inputs, and performs training to apply the optimal compression ratio value as a ground-truth value. It may consist of model parameters obtained.
  • the generating of the training data includes generating a reconstructed image by compressing a specially acquired original image with a preset compression rate, encoding and decoding, and detecting a target object from the original image. detecting, extracting a first feature vector from the detected target object, detecting the target object from the reconstructed image, and extracting a second feature vector from the detected target object and the degree of overlap between the first ROI including the target object detected from the original image and the second ROI including the target object detected from the reconstructed image, and the first feature vector and the second feature vector
  • the method may include determining an optimal compression ratio value for normally recognizing the target object from the original image, based on the degree of similarity between the two groups.
  • the determining of the optimal compressibility value includes calculating a degree of overlap between the first ROI and the second ROI, and calculating a similarity between the first feature vector and the second feature vector. and comparing the calculated degree of overlap with a first preset threshold, and comparing the calculated similarity with a second preset threshold.
  • the determining of the optimal compression ratio may include setting the compression ratio to a value lower than the preset compression ratio when, as a result of the comparison, the degree of overlap is equal to or less than the first threshold or the degree of similarity is less than or equal to the second threshold. It may include a step of changing to .
  • the determining of the optimal compression ratio includes generating the reconstructed image when the calculated degree of overlap exceeds the first threshold and the calculated similarity exceeds the second threshold. It may include determining the used compression ratio as a final compression ratio.
  • the method includes: obtaining information about the plurality of target maps and the plurality of minimum compression ratio values by performing the generating of the training data with respect to the plurality of original images; and the plurality of original images , and storing the plurality of target maps and information on the plurality of minimum compression ratio values in a database.
  • the method uses the compression ratio information obtained from the output of the deep neural network model, a first compression ratio value determined based on bandwidth information of a network connected to the device, and an initial compression ratio preset by the encoding module. Comparing the compression ratio with a compression ratio value, and determining a final compression ratio value for normally recognizing the target object from the image based on the comparison result, wherein the generating of the bitstream includes the determined final compression ratio
  • the bitstream may be generated by compressing and encoding the image based on the value.
  • the plurality of values included in the image may include adjusting the compression ratio of at least one CTU in which the target object is not detected among Coding Tree Units (CTUs) of .
  • CTUs Coding Tree Units
  • an embodiment of the present disclosure provides a device for processing an image.
  • a device is connected to at least one camera, a server, or another device by wire or wireless, and a communication interface for performing data communication, a memory for storing a program including one or more instructions, and and a processor executing one or more instructions of a program stored in the memory, wherein the processor receives an image through the at least one camera or the communication interface, and a feature map for detecting a target object from the input image ( feature map) and input the image and the feature map to a deep neural network model composed of pre-trained model parameters, the compression rate for normally recognizing the target object from the image output, compressing and encoding the image using the output compression rate, thereby generating a bitstream.
  • the processor is configured to learn a plurality of originally acquired images, a plurality of feature maps extracted from the plurality of original images, and an optimal compression ratio value at which a target object is normally recognized from each of the plurality of original images. data can be generated.
  • the deep neural network model applies the plurality of original images and the plurality of feature maps as inputs, and performs training to apply the optimal compression ratio value as a ground-truth value. It may consist of model parameters obtained.
  • the processor compresses, encodes and decodes a specially acquired original image at a preset compression rate, generates a reconstructed image, detects a target object from the original image, extracting a first feature vector from the detected target object, detecting the target object from the reconstructed image, extracting a second feature vector from the detected target object, and extracting a second feature vector from the original image Based on the degree of overlap between the first ROI including the detected target object and the second ROI including the target object detected from the reconstructed image, and the similarity between the first feature vector and the second feature vector, the original It is possible to determine an optimal compression ratio value for normally recognizing the target object from the image.
  • the processor calculates a degree of overlap between the first ROI and the second ROI, calculates a similarity between the first feature vector and the second feature vector, and uses the calculated degree of overlap. It may be compared with a set first threshold, and the calculated similarity may be compared with a second preset threshold.
  • the processor may change the compression ratio to a value lower than the preset compression ratio.
  • the processor when the calculated degree of overlap exceeds the first threshold and the calculated similarity exceeds the second threshold, the processor sets the compression ratio used to generate the reconstructed image as a final compression ratio. can decide
  • the processor receives the compression rate information obtained from the output of the deep neural network model, a first compression rate value determined based on bandwidth information of a network connected to the device, and a second initial compression rate preset by the encoding module
  • the compression ratio value may be compared, and a final compression ratio value for normally recognizing the target object from the image may be determined based on the comparison result.
  • the processor when the obtained compression ratio value is smaller than the second compression ratio value and the first compression ratio value is greater than the second compression ratio value, the processor includes a plurality of coding tree units (CTUs) included in the image. Among them, the compression rate of at least one CTU in which the target object is not detected may be adjusted.
  • CTUs coding tree units
  • another embodiment of the present disclosure provides a computer program product including a computer-readable storage medium in which a program for execution in a computer is recorded.
  • FIG. 1 is a conceptual diagram illustrating image processing operations performed by a device according to an embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating a method for a device to determine a compression rate from an original image and to store the original image and the determined compression rate information according to an embodiment of the present disclosure.
  • FIG. 3 is a block diagram illustrating a configuration of a device according to an embodiment of the present disclosure.
  • FIG. 4 is a flowchart illustrating a method of operating a device according to an embodiment of the present disclosure.
  • FIG. 5 is a flowchart illustrating a method for a device to determine a compression rate for normally recognizing a target object from an original image according to an embodiment of the present disclosure.
  • FIG. 6 is a flowchart illustrating a method of determining whether a device recognizes a target object in a reconstructed image according to an embodiment of the present disclosure.
  • FIG. 7 is a flowchart illustrating a method of determining, by a device, a compression rate of an image based on a result of determining whether a target object is recognized, according to an embodiment of the present disclosure.
  • FIG. 8 is a diagram illustrating an embodiment in which a device determines different compression rates for each coding tree unit (CTU) according to an embodiment of the present disclosure.
  • CTU coding tree unit
  • FIG. 9 is a flowchart illustrating a method for a device to determine different compression ratios for each coding tree unit (CTU) according to an embodiment of the present disclosure.
  • FIG. 10 is a device according to an embodiment of the present disclosure comparing a compression ratio value determined through a deep neural network model with a compression ratio value according to network bandwidth and an initially set compression ratio value, and a method of determining a final compression ratio value based on the comparison result. It is a flowchart shown.
  • the expression “configured to (or configured to)” depends on the context, for example, “suitable for”, “having the capacity to” It can be used interchangeably with “,” “designed to”, “adapted to”, “made to”, or “capable of”.
  • the term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware. Instead, in some contexts, the expression “a system configured to” may mean that the system is “capable of” with other devices or components.
  • a processor configured (or configured to perform) A, B, and C refers to a dedicated processor (eg, an embedded processor) for performing the operations, or by executing one or more software programs stored in memory; It may refer to a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
  • 'video' means a single image or a video including at least one frame.
  • the image may be obtained through photographing through a camera or may be obtained through a network.
  • a 'raw image' is uncompressed image data that is not compressed with an image photographed through a camera or acquired through a network.
  • 'compression rate' indicates an image compression parameter for compressing an original image using a method matching a standard specification.
  • the compression ratio may exist in various forms for each standard specification. For example, in standard standards for compressing static images (eg, Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, etc.), a quantization table is used to determine the compression ratio of the image. This can be used. As another example, in a standard standard for reproducing a dynamic image (eg, H.264/AVC, HEVC (H.265), etc.), the compression rate of the image may be determined based on a quantization parameter.
  • JPEG Joint Photographic Coding Experts Group
  • JPEG-2000 Joint Photographic Coding Experts Group
  • JPEG-XR Joint Photographic Coding Experts Group (JPEG)
  • JPEG-2000 Joint Photographic Coding Experts Group
  • JPEG-XR Joint Photographic Coding Experts Group
  • WebP etc.
  • a 'quantization parameter' is a parameter indicating a degree of quantization of a transform coefficient defined in a standard (eg, H.264/AVC, or HEVC (H.265)) related to compression of a dynamic image.
  • a quantization parameter may determine the compression rate of the image.
  • the compression ratio is proportional to the value of the quantization parameter. For example, when the value of the quantization parameter is large, the compression ratio is high, and when the value of the quantization parameter is small, the compression ratio is low.
  • a 'transform coefficient' is a prediction image frame formed through intra prediction using spatial correlation or inter prediction using temporal correlation in a plurality of image frames (I-frame) It refers to a coefficient in which residual data (residual date), which is a difference value between an image and an original image, is transformed into a transform domain using various transformation techniques.
  • residual data residual date
  • residual data residual date
  • H.264/AVC for example, Discrete Cosine Transform (DCT), Hadamard Transform, or the like may be used.
  • FIG. 1 is a conceptual diagram illustrating image processing operations performed by a device according to an embodiment of the present disclosure.
  • the image processing step may include a learning step ( S100 ) using the deep neural network model 1340 and a step ( S200 ) of obtaining a compression rate by applying the deep neural network model 1340 .
  • the deep neural network model learning step (S100) is a step of generating training data from the original image (i o ), storing the generated training data in the training data storage unit 1410, and using the training data a deep neural network model 1340 ), and storing the model parameters of the deep neural network model 1340 obtained through training in the model parameter storage unit 1420 .
  • the training data generation module 1320 receives an original image (i o ), and a region of interest image (i oR ) including a target object from the original image (i o ) and a target object from the original image (i o ). It may be configured to output an optimal compression ratio value (QP) for normally recognizing a target object from the feature maps i f1 , i f2 , and the original image i o .
  • QP optimal compression ratio value
  • the 'target object' means an object of interest that the user wants to detect from the image.
  • the target object may include, for example, at least one of a person's face, hair, clothes, and a pose.
  • the feature map (i f1 , i f2 ) is an image including a feature vector extracted to detect a target object from the original image (i o ). There may be one or a plurality of feature maps i f1 , i f2 .
  • the feature map may include, for example, at least one of an edge map, a blur image, and a circular map.
  • the feature maps i f1 and i f2 may be obtained through learning using a well-known image processing technique or a deep learning-based neural network model.
  • the device when using a convolutional neural network model, calculates a convolutional product of the original image i o through a filter having a preset size and number of channels, and performs the convolutional product Through this, a 2D image layer equal to the number of filters may be extracted, and a feature map (i f1 , i f2 ) composed of the 2D image layer may be obtained.
  • the training data generation module 1320 compresses the original image (i o ) and the original image (i o ) at a preset compression rate, and encodes and decodes the original image (i o ).
  • QP can be determined.
  • the 'optimum compression rate for normally recognizing a target object' means a minimum compression rate value capable of maintaining an error rate of a target object recognition below a preset error rate.
  • the training data generation module 1320 detects a target object from each of the original image ( i o ) and the reconstructed image, extracts a feature vector from the detected target object, and The degree of overlap between the first ROI including the target object and the second ROI including the target object detected from the reconstructed image, and the first feature vector extracted from the original image i o and the second feature extracted from the reconstructed image
  • An optimal compression ratio value (QP) for normally recognizing a target object may be determined from the original image (i o ) by using the similarity information between the vectors.
  • the 'compression rate' refers to an image compression parameter for encoding the original image i o using a method matching the standard specification.
  • the compression ratio may exist in various forms for each standard specification.
  • standard standards for compressing static images eg, Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, etc.
  • JPEG Joint Photographic Coding Experts Group
  • JPEG-2000 JPEG-2000
  • JPEG-XR JPEG-XR
  • WebP etc.
  • a quantization table quantization table
  • the compression rate of the image may be determined based on a quantization parameter.
  • the 'quantization parameter' is defined in a standard specification related to compression of a static image (eg, JPEG) or a standard specification related to compression of a dynamic image (eg, H.264/AVC, or HEVC (H.265)).
  • the compression ratio of the image may be determined by the quantization parameter.
  • the compression ratio is proportional to the value of the quantization parameter. For example, when the value of the quantization parameter is large, the compression ratio is high, and when the value of the quantization parameter is small, the compression ratio is low.
  • the 'optimal compression rate capable of recognizing a target object normally' refers to an optimal compression rate value for generating an error rate below a preset threshold in the detection process of the target object.
  • the value of the compression ratio (QP) for normally recognizing the target object from the original image (i o ) may be 36.
  • the training data generation module 1320 includes a target object detection module 1321 (refer to FIG. 2), a feature vector extraction module 1322 (refer to FIG. 2), an overlap calculation module 1323 (refer to FIG. 2), a degree of similarity It may include a calculation module 1324 (refer to FIG. 2), a recognition result determination module 1325 (refer to FIG. 2), and a compression rate adjustment module 1326 (refer to FIG. 2).
  • a target object detection module 1321 (refer to FIG. 2)
  • a feature vector extraction module 1322 (refer to FIG. 2)
  • an overlap calculation module 1323 (refer to FIG. 2)
  • a degree of similarity It may include a calculation module 1324 (refer to FIG. 2), a recognition result determination module 1325 (refer to FIG. 2), and a compression rate adjustment module 1326 (refer to FIG. 2).
  • the training data generation module 1320 performs the above-described operations on a plurality of pre-obtained original images i o-1 to i on , so as to obtain a target from each of the plurality of original images i o-1 to i on .
  • Compression ratio values (QP 1 to QP n ) for normally recognizing an object may be determined.
  • the plurality of original images i o-1 to i on may be an ROI image including a target object.
  • a plurality of original images (i o-1 to i on ), a plurality of feature maps (i f-1 to i fn ) obtained by the training data generation module 1320, and a plurality of compression ratio values (QP 1 to QP n ) may be stored in the learning data storage unit 1410 .
  • the plurality of original images (i o-1 to i on ), the plurality of feature maps (i f-1 to i fn ), and the plurality of compression ratio values (QP 1 to QP n ) are key- It may be stored in the learning data storage 1410 as a value type.
  • a plurality of original images (i o-1 to i on ), a plurality of feature maps (i f-1 to i fn ), and a plurality of compression ratio values (QP 1 to QP n ) are a pair of related information.
  • a plurality of original images (i o-1 to i on ), a plurality of feature maps (i f-1 to i fn ), and a plurality of compression ratio values (QP 1 to QP n ) are a pair of related information.
  • the first feature map i f-1 extracted from the first original image i o-1 and the first original image i o-1 is a key
  • the first compression ratio value QP 1 determined from 1 may be paired as a value and stored in the learning data storage unit 1410 .
  • the second feature map (i f-2 ) extracted from the second original image (i o-2 ) and the second original image (i o-2 ) is a key
  • the second compression ratio value QP 2 determined from is a value, and may be paired and stored in the learning data storage unit 1410 .
  • the deep neural network model 1340 is an artificial intelligence model configured to perform training using the training data provided from the training data storage 1410 .
  • the deep neural network model 1340 uses a plurality of original images (i o-1 to i on ) and a plurality of feature maps (i f-1 to i fn ) pre-stored in the training data storage unit 1410 .
  • Supervised learning may be performed by applying it as an input and applying a label for a plurality of compression ratio values (QP 1 to QP n ) as a ground-truth value.
  • the deep neural network model 1340 may include a plurality of hidden layers that are internal layers for performing calculations.
  • the deep neural network model 1340 is, for example, a convolutional neural network model (CNN), a recurrent neural network model (RNN), a restricted boltzmann machine (RBM), a deep belief network (DBN). ), BRDNN (Bidirectional Recurrent Deep Neural Network), and may include at least one of deep Q-networks (Deep Q-Networks).
  • CNN convolutional neural network model
  • RNN recurrent neural network model
  • RBM restricted boltzmann machine
  • DNN deep belief network
  • BRDNN Bidirectional Recurrent Deep Neural Network
  • the deep neural network model 1340 is not limited to the above-described example, and may include all known deep learning-based neural network models.
  • the deep neural network model 1340 is implemented as a convolutional neural network model (CNN)
  • CNN convolutional neural network model
  • a plurality of original images applied as inputs using a filter having a preset size and a preset number of channels in the learning step (step S100) Extracting feature values by moving (i o-1 to i on ), obtaining a plurality of layers including the extracted feature values, and applying a weight to the plurality of layers
  • a feature vector map may be obtained.
  • a Rectified Linear Unit (ReLU) model is used, and the learning model is regularized through drop out to improve efficiency, and pooling is performed. ) or operations performing max pooling may be further added.
  • the feature values obtained through pooling or max pooling are integrated through a fully connected layer, and an activation function including softmax, sigmoid, and hyperbolic tangent. It can be learned to output a label related to the compression ratio value through .
  • ReLU Rectified Linear Unit
  • the deep neural network model 1340 may acquire model parameters through learning.
  • the deep neural network model 1340 when the deep neural network model 1340 is implemented as a convolutional neural network model (CNN), the deep neural network model 1340 performs a weight 1420w and a bias between a plurality of layers through supervised learning. ) 1420b may be obtained.
  • the 'weight 1420w' and 'bias 1420b' are parameters for inferring an output label (compression rate value) from input data (a plurality of original images and a plurality of feature maps). This can be adjusted.
  • the weight 1420w and the bias 1420b obtained through training of the deep neural network model 1340 may be stored in the model parameter storage unit 1420 .
  • the device receives the image (i) through a camera or network, and outputs the compression rate from the image (i) using the deep neural network model 1340 and generating a bitstream by compressing and encoding the image (i) using the output compression ratio.
  • the image (i) is input to the pre-processing module 1330, and the pre-processing module 1330 performs pre-processing on the input image (i).
  • the preprocessing module 1330 may be configured to resize the size of the input image i to a preset size and normalize the brightness and contrast of the image i.
  • An image that has been pre-processed through the pre-processing module 1330 may be input to the target object detection module 1321 .
  • the target object detection module 1321 is a module configured to detect a target object from an image.
  • the target object detection module 1321 may be configured to detect the target object from the image i using an artificial intelligence model including deep learning.
  • the target object detection module 1321 may detect the target object from the image i by performing learning using a convolutional neural network model (CNN).
  • CNN convolutional neural network model
  • the target object detection module 1321 may detect a human face from a dynamic image through a large-scale data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M. can be detected.
  • the target object detection module 1321 may include a previously trained MobileNet to perform face recognition using the VGGFace2 data set.
  • the target object detection module 1321 may output a feature map i f in the process of detecting the target object from the image i.
  • the 'feature map (i f )' is an image including a feature vector extracted to detect a target object from the image (i), for example, an edge map, a blur image, or a circle. It may include at least one of the maps.
  • the deep neural network model 1340 performs training by applying as an input the image (i) obtained through a camera or network and the feature map (i f ) extracted from the image (i), the image (i) It is possible to output the compression ratio that can normally recognize the target object.
  • the deep neural network model 1340 receives pre-trained model parameters from the model parameter storage unit 1420 and applies the provided model parameters to the input image (i) and feature map (i f ). , the compression rate value can be output.
  • the value of the compression ratio for normally recognizing the target object from the image (i) may be 34.
  • the deep neural network model 1340 may provide the output compression rate information to the encoding module 1312 .
  • the encoding module 1312 is configured to generate an encoded bitstream by compressing and encoding the input image i.
  • the encoding module 1312 obtains prediction data from the original image through inter prediction and intra prediction, and obtains residual data obtained by subtracting the prediction data from the original image.
  • the coded image data may be obtained by performing transformation and quantization on the residual data.
  • the encoded image data may be a quantized transform coefficient.
  • the encoding module 1312 may include a general code control module 1312a and a transform, scaling and quantization module 1312b.
  • the general code control module 1312a is a module configured to set encoding parameters related to data to be encoded.
  • the transform, scaling, and quantization module (Transform, Scaling, Quantization) 1312b may transform a block of a predetermined size included in the image i using a transform coefficient.
  • the transform, scaling and quantization module 1312b may transform a block using a discrete cosine transform (DCT) and a discrete sine transform (DST) based on information obtained from the general code control module 1312a.
  • DCT discrete cosine transform
  • DST discrete sine transform
  • the size of the block may be configured to be between 4x4 and 32x32.
  • the transform, scaling, and quantization module 1312b may set a normalization value of a transform coefficient to be greater than 1, and may scale the value of the encoded image accordingly. In an embodiment, the transform, scaling, and quantization module 1312b may quantize the transformed data based on a compression ratio value.
  • the encoding module 1312 compresses the image i using the compression rate information output from the deep neural network model 1340 (in the embodiment of FIG. 2 , the value of the compression rate is 34), and encodes the bit by You can create streams.
  • the generated bitstream may be transmitted to the external server 2000 or another device through the communication interface 1500 (refer to FIG. 3 ).
  • the device according to the embodiment shown in FIG. 1 is a specific target object (e.g., A method of using a deep neural network model 1340 in order to increase the recognition rate of faces, hairstyles, clothes, poses, etc.) is provided.
  • the device according to an embodiment of the present disclosure provides compression rates (QP 1 to QP) at which a target object is normally recognized from a plurality of original images (i o-1 to i on ) and a plurality of original images (i o-1 to i on ). n ) by using the information to train the deep neural network model 1340, and to output the compression ratio value optimized for the recognition of the target object with respect to the input image (i) using the pre-trained deep neural network model 1340.
  • the present disclosure uses a pre-trained deep neural network model 1340 through the learning step S100 , thereby reducing unnecessary processing time and reducing the amount of computation performed by the processor of the device.
  • the device of the present disclosure can significantly improve the recognition rate of a target object, for example, a human face, and reduce the false recognition rate.
  • FIG. 2 is a diagram illustrating a method for a device to determine a compression rate from an original image and to store the original image and the determined compression rate information according to an embodiment of the present disclosure.
  • an original image i o may be input to a target object detection module 1321 and an encoding module 1312 , respectively.
  • the original image i o may be acquired through a camera or a network.
  • the original image i o is input to the target object detection module 1321 , and the target object detection module 1321 may detect the target object from the original image i o .
  • the target object may include at least one of a person's face, hair style, clothes, and pose, but is not limited thereto.
  • the target object detection module 1321 is configured to detect a target object from the original image i o .
  • the target object detection module 1321 may be configured to detect the target object from the original image i o using an artificial intelligence model including deep learning.
  • the target object detection module 1321 may detect the target object from the original image i o by performing learning using a convolutional neural network model (CNN).
  • CNN convolutional neural network model
  • the target object detection module 1321 may detect a human face from a dynamic image through a large-scale data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M. can be detected.
  • the target object detection module 1321 may include a previously trained MobileNet to perform face recognition using the VGGFace2 data set.
  • the target object detection module 1321 may output at least one feature map i f1 and i f2 in the process of detecting the target object from the original image i o .
  • the 'feature map (i f1 , i f2 )' is an image including a feature vector extracted to detect a target object from the original image (i o ), for example, an edge map, a blur image image), or at least one of a circular map.
  • the target object detection module 1321 may detect the first ROI R 1 including the detected target object from the original image i o .
  • the first region of interest R 1 may be a target object image, for example, a bounding box including a human face.
  • the target object detection module 1321 may provide the detected image of the first region of interest R 1 and the detected at least one feature map if 1 and if 2 to the training data storage 1410 .
  • the training data storage unit 1410 may store an image of the first ROI R 1 and at least one feature map if 1 and if 2 as training data.
  • the target object detected from the original image i o is input to the feature vector extraction module 1322 , and the feature vector extraction module 1322 may extract the first feature vector f 1 from the target object image.
  • the first feature vector f 1 may be, for example, a vector including feature values corresponding to landmarks such as eyes, nose, and mouth of a person's face.
  • the present invention is not limited thereto, and the first feature vector f 1 is a vector including feature values corresponding to at least one key-points extracted from a person's hair style, clothes, or a specific posture. can be
  • the image of the first region of interest R 1 detected from the original image i o is input to the overlapping degree calculating module 1323 , and the first feature vector f 1 extracted from the target object is generated by the similarity calculating module 1324 . ) can be entered.
  • the encoding module 1312 compresses the original image (i o ) using a preset compression rate (QP 0 ) and encodes the encoded image data. can be printed out.
  • the encoded image data may be quantized transform coefficients.
  • the coded image data is input to the decoding module 1314, and the decoding module 1314 reconstructs residual data by inverse quantizing and inverse transforming the coded image data, and inter prediction and intra prediction with the reconstructed residual data.
  • a reconstructed image i recon can be obtained by adding the prediction data obtained through prediction.
  • the reconstructed image i recon is input to the target object detection module 1321 , and the target object detection module 1321 may detect the target object from the reconstructed image i recon .
  • the target object detected from the reconstructed image i recon may be the same as the target object detected from the original image i o , but the image quality such as resolution and sharpness of the target object is detected from the original image i o . It may be lower than the target object image.
  • the target object detection module 1321 may detect the second ROI R 2 including the detected target object from the reconstructed image i recon .
  • the second region of interest R 2 may be a target object image, for example, a bounding box including a human face.
  • the target object detected from the reconstructed image i recon is input to the feature vector extraction module 1322 , and the feature vector extraction module 1322 receives the second feature vector f from the target object image detected from the reconstructed image i recon . 2 ) can be extracted.
  • the second feature vector f 2 is the same as the first feature vector f 1 , except that it is extracted from the target object image detected from the reconstructed image i recon , and the overlapping description will be omitted.
  • the image of the second region of interest R 2 detected from the reconstructed image i recon is input to the overlapping degree calculating module 1323 , and the second feature vector f 2 extracted from the target object is generated by the similarity calculating module 1324 . ) can be entered.
  • the overlapping degree calculation module 1323 is configured to calculate a first region of interest (R 1 ) and The degree of overlap between the second regions of interest R 2 may be calculated. In an embodiment, the overlapping degree calculating module 1323 may calculate the overlapping degree between the first ROI R 1 and the second ROI R 2 using an intersection over union (IOU) method. The overlapping degree calculation module 1323 may provide information on the calculated overlapping degree value to the recognition result determination module 1325 .
  • IOU intersection over union
  • the similarity calculation module 1324 may calculate a similarity between the first feature vector f 1 and the second feature vector f 2 .
  • the similarity calculation module 1324 calculates a similarity representing a correlation between the first feature vector f 1 and the second feature vector f 2 as a numerical value, and The information may be provided to the recognition result determination module 1325 .
  • the recognition result determination module 1325 uses the degree of overlap (R 1 , R 2 ) input from the degree of overlap calculation module 1323 and the degree of similarity (f 1 , f 2 ) input from the degree of similarity calculation module 1324, It is configured to determine whether the target object is normally recognized. In an embodiment, the recognition result determination module 1325 compares the overlapping degree (R 1 , R 2 ) value with a first threshold value, and compares the similarity (f 1 , f 2 ) value with a second threshold value, whereby the reconstructed image From (i recon ), it can be determined whether the target object is normally recognized.
  • the recognition result determination module 1325 determines that the reconstructed image i recon ), it is determined that the target object is not recognized normally. In this case, the recognition result determination module 1325 provides the determination result regarding whether the target object is recognized to the compression ratio adjustment module 1326 .
  • the compression rate adjustment module 1326 sets the compression rate to a preset compression rate (QP 0 ) used to obtain the reconstructed image (irecon). It can be adjusted to a low first compression ratio (QP 1 ).
  • the compression rate adjustment module 1326 may provide the encoding module 1312 with information about the value of the adjusted first compression rate QP 1 .
  • the encoding module 1312 may obtain encoded image data by compressing and encoding the original image i o by using the first compression rate QP 1 received from the compression rate adjustment module 1326 .
  • a decoding module 1314, a target object detection module 1321, a feature vector extraction module 1322, an overlapping degree calculation module 1323, a similarity calculation module 1324, a recognition result determination module 1325, and a compression ratio adjustment module ( 1326) may be repeatedly performed as image data compressed and encoded using the first compression ratio QP 1 is input.
  • the recognition result determination module 1325 restores when the overlapping degree (R 1 , R 2 ) value exceeds a first threshold, and the similarity (f 1 , f 2 ) value exceeds a second threshold It is determined that the target object is normally recognized from the image (i recon ). In this case, the recognition result determination module 1325 may determine the value of the compression ratio QP k as an optimal compression ratio value at which the target object is normally recognized. The recognition result determination module 1325 may provide information on the determined compression rate (QP k ) value to the learning data storage unit 1410 , and the learning data storage unit 1410 may store the compression rate (QP k ) value.
  • the device performs the method shown in FIG. 2 on a plurality of previously acquired original images to normally recognize a target object from a plurality of original images, a plurality of feature maps extracted from the plurality of original images, and a plurality of original images It is possible to obtain an optimal compression ratio value for the purpose and store it in the learning data storage unit 1410 .
  • the device applies a plurality of original images and a plurality of feature maps stored in the training data storage 1410 as inputs to the deep neural network model 1340 (refer to FIG. 1), and sets a label for a plurality of compression rates to the correct answer value ( It is possible to perform training that is applied as ground-truth.
  • FIG. 3 is a block diagram illustrating components of the device 1000 according to an embodiment of the present disclosure.
  • the device 1000 is an electronic device that processes an image acquired through the camera 1100 or the communication interface 1500 and performs various operations.
  • the device 1000 is, for example, a smartphone, a tablet personal computer (PC), a mobile phone, a video phone, an e-book reader, or a desktop personal computer (PC).
  • laptop personal computer netbook computer, workstation, PDA (personal digital assistant), PMP (portable multimedia player), MP3 player, mobile medical device, wearable device, Or it may be at least one of IP cameras.
  • the device 1000 includes a camera 1100 , a processor 1200 , a memory 1300 , a training data storage 1410 , a model parameter storage 1420 , and a communication interface 1500 . can do.
  • the camera 1100 is configured to acquire an image by photographing a target area or a target object using the lens 1110 .
  • the camera 1100 may include a lens 1110 and an imaging sensor 1120 .
  • the imaging sensor 1120 may acquire an image of a target area or a target object photographed through the lens 1110 .
  • the image acquired through the imaging sensor 1120 is uncompressed image data that is not compressed, and is a raw image.
  • the imaging sensor 1120 may include a photodiode array.
  • the imaging sensor 1120 may include, for example, a charge-coupled device (CCD) module or a complementary metal-oxide-semiconductor (CMOS) module, but is not limited thereto. Although one imaging sensor 1120 is illustrated in FIG. 3 , the present invention is not limited thereto. In an embodiment, the imaging sensor 1120 may be configured in one or more plurality.
  • the processor 1200 may execute one or more instructions or program code of a program stored in the memory 1300 .
  • the processor 1200 may be configured as a hardware component that performs arithmetic, logic, input/output operations and signal processing.
  • the processor 1200 is, for example, a central processing unit (Central Processing Unit), a microprocessor (microprocessor), a graphic processor (Graphic Processing Unit), ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), and FPGAs (Field Programmable Gate Arrays) may be configured as at least one, but is not limited thereto.
  • the memory 1300 may include, for example, a flash memory type, a hard disk type, a multimedia card micro type, or a card type memory (eg, SD or XD memory). etc.), RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic It may be composed of at least one of a memory, a magnetic disk, and an optical disk.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrical Erasable Programmable Read-Only Memory
  • PROM Programmable Read-Only Memory
  • magnetic It may be composed of at least one of a memory, a magnetic disk, and an optical disk.
  • the memory 1300 determines a compression rate for normally recognizing a target object from a plurality of previously acquired original images, and inputs the image input through the camera 1100 or the communication interface 1500 into the deep neural network model 1340.
  • a program including instructions related to outputting a compression ratio and performing a function or operation of compressing and encoding an image using the output compression ratio may be stored.
  • the memory 1300 may store at least one of instructions readable by the processor 1200 , an algorithm, a data structure, and a program code. Instructions, algorithms, data structures, and program codes stored in the memory 1300 may be implemented in, for example, a programming or scripting language such as C, C++, Java, or assembler.
  • the memory 1300 may include an encoder 1310 , a training data generation module 1320 , a preprocessing module 1330 , and a deep neural network model 1340 .
  • a plurality of 'modules' included in the memory 1300 means a unit for processing a function or operation performed by the processor 1200 , which may be implemented in software such as instructions or program code.
  • the processor 1200 may be implemented by executing instructions or program codes of a program stored in a memory.
  • the encoder 1310 is configured to generate a reconstructed image by compressing, encoding, and decoding the image.
  • the encoder 1310 compresses the original image using at least one of image compression standard standards including JPEG, H.264/AVC, and HEVC (H.265), encodes and decodes the reconstructed image.
  • image compression standard standards including JPEG, H.264/AVC, and HEVC (H.265)
  • the encoder 1310 may include an encoding module 1312 and a decoding module 1314 .
  • the encoding module 1312 may be configured to encode an input image, that is, an original image, using a preset compression rate, and obtain encoded image data from the original image.
  • the processor 1200 executes instructions or program code related to the encoding module 1312 to obtain prediction data from an input image, ie, an original image, through inter prediction and intra prediction, and prediction from the original image.
  • Encoded image data may be obtained by obtaining residual data obtained by subtracting data and performing transformation and quantization on the residual data.
  • the encoded image data may be a quantized transform coefficient.
  • the decoding module 1314 may be configured to generate a reconstructed image by decoding the encoded image data.
  • the processor 1200 executes instructions or program code related to the decoding module 1314 to restore residual data by performing inverse quantization and inverse transformation on encoded image data, that is, quantized transform coefficients, and , a reconstructed image may be obtained by adding the reconstructed residual data to the prediction data obtained through inter prediction and intra prediction.
  • the encoder 1310 may include, for example, an inter prediction module, an intra prediction module, a de-blocking module, It may include a transform module, a quantization module, an inverse transform module, an inverse quantization module, and an entropy encoding module.
  • the modules listed above perform inter prediction and intra prediction, and perform encoding and decoding, they are not completely divided into an encoding module 1312 and a decoding module 1314 as shown in FIG. 3 .
  • the reconstructed image uses different quantization parameters for the original image according to a preset coding unit (eg, Coding Tree Unit (CTU)). It can be compressed, encoded, and decoded by applying a value.
  • CTU Coding Tree Unit
  • a specific CTU in which a target object (eg, a human face, hairstyle, clothes, pose, etc.) is detected among a plurality of CTUs in an image frame included in the original image has a relatively low quantization parameter value compared to other CTUs. This can be applied and compressed.
  • the training data generation module 1320 is a module configured to receive an original image and output training data from the original image.
  • 'learning data' means data applied to input and output in order to perform training using the deep neural network model 1340 .
  • the training data may include a plurality of pre-obtained original images, a plurality of feature maps extracted from each of the plurality of original images, and an optimal compression rate for normally recognizing a target object from each of the plurality of original images. .
  • the training data generation module 1320 includes a target object detection module 1321 , a feature vector extraction module 1322 , an overlapping degree calculation module 1323 , a similarity calculation module 1324 , a recognition result determination module 1325 , and a compression ratio adjustment module 1326 .
  • the target object detection module 1321 is a module configured to recognize a target object from a still image or a dynamic image.
  • the 'target object' means an object of interest that the user wants to detect from the image.
  • the target object may include, for example, at least one of a person's face, hair, clothes, and a pose.
  • the target object detection module 1321 may be configured to detect a target object from an input image using an artificial intelligence model including deep learning.
  • the target object detection module 1321 may detect a target object from an image by performing learning using a convolutional neural network model (CNN).
  • CNN convolutional neural network model
  • the target object detection module 1321 may detect a human face from a dynamic image through a large-scale data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M. can be detected.
  • the target object detection module 1321 may include a previously trained MobileNet to perform face recognition using the VGGFace2 data set.
  • the processor 1200 may detect the target object from each of the original image and the reconstructed image by executing instructions or program codes related to the target object detection module 1321 .
  • the processor 1200 may detect a human face from each of the original image and the reconstructed image by performing training using a model parameter previously learned through the convolutional neural network model.
  • the present invention is not limited thereto, and the processor 1200 performs learning by using the pre-learned model parameters included in the target object detection module 1321, so that a person's hairstyle, clothes, and at least one of a pose may be detected.
  • the target object detection module 1321 is not limited to detecting the target object using the above-described method.
  • the target object detection module 1321 is a recurrent neural network model (RNN), a support vector machine (SVM), a linear regression, a logistic regression, a naive Bayes classification ( Naive Bayes), a random forest, a decision tree, or a k-nearest neighbor algorithm may be configured to recognize a target object from a dynamic image using an artificial intelligence model including at least one.
  • the processor 1200 may detect the target object from the image by executing instructions or program codes related to the target object detection module 1321 .
  • the processor 1200 may output at least one feature map in the process of detecting the target object.
  • a 'feature map' is an image including a feature vector extracted to detect a target object from an image, and may include, for example, at least one of an edge map, a blur image, or a circular map.
  • the processor 1200 when using a convolutional neural network model, calculates a convolution by using a filter having a predetermined size and number of channels on the original image, and performs the convolutional product. Through this, a 2D image layer equal to the number of filters may be extracted, and at least one feature map composed of 2D image layers may be obtained.
  • the target object detection module 1321 may be configured to identify a bounding box of a target object detected on a dynamic image, and obtain a coordinate value of a location of the identified bounding box.
  • the processor 1200 identifies a bounding box of the target object detected from the original image by executing instructions or program codes related to the target object detection module 1321, and sets a region included in the bounding box to a first region of interest (Region). of Interest).
  • the processor 1200 identifies a bounding box of the target object detected from the reconstructed image by executing instructions or program codes related to the target object detection module 1321, and sets a region included in the bounding box as the second region of interest.
  • the feature vector extraction module 1322 is a module configured to extract a feature vector from the image of the detected target object.
  • the feature vector extraction module 1322 may be configured to extract a feature vector from a target object image using a known image processing method or an artificial intelligence model including deep learning.
  • the feature vector extraction module 1322 may be configured to extract a feature vector from the target object image using an Independent Component Analysis (ICA) or Principle Component Analysis (PCA) method.
  • ICA Independent Component Analysis
  • PCA Principle Component Analysis
  • the feature vector extraction module 1322 identifies landmarks including eyes, nose, and mouth (both mouth ends) of the face, and the identified land A feature value (eg, a position coordinate value) corresponding to the mark may be acquired, and a feature vector may be extracted using the acquired feature value.
  • the feature vector extraction module 1322 identifies at least one key-points from the target object image. Then, a feature value (eg, a position coordinate value) corresponding to the identified key point may be acquired, and a feature vector may be extracted using the acquired feature value.
  • the processor 1200 may extract a feature vector from the target object image by executing instructions or program code related to the feature vector extraction module 1322 . In an embodiment, the processor 1200 may extract a first feature vector from an image of the target object recognized from the original image, and extract a second feature vector from the image of the target object recognized from the reconstructed image.
  • the overlapping degree calculation module 1323 is a module configured to calculate an overlapping degree between two or more images and output a result value.
  • the degree of overlap calculation module 1323 obtains the coordinate value information of the bounding box of each of the two or more images, and compares the degree of overlap of the two or more images by using the coordinate values of the bounding box to determine the degree of overlap can be configured to calculate.
  • the overlapping degree calculation module 1323 may calculate the overlapping degree between two or more images using an IOU (Intersection Over Union) method of calculating the overlapping degree using coordinate value information.
  • IOU Intersection Over Union
  • the IOU value when the IOU value is 1, it means that two images are completely overlapped, and when the IOU value is 0, it means that the two images do not overlap at all. For example, if the IOU value is 0.5, it means that 2/3 of the two images overlap.
  • the overlapping degree calculation module 1323 may calculate the overlapping degree by calculating the sum of errors between the coordinate values of each of the plurality of images. For example, as shown in Equation 1 below, the overlapping degree calculation module 1323 calculates the upper-left coordinate values (x 11 , y 11 ) and the lower-right coordinate values (x 12 , y 12 ) of the first image and the second image. The coordinate value error may be calculated using the upper left coordinate values (x 21 , y 21 ) and the lower right coordinate values (x 22 , y 22 ).
  • the IOU method and the coordinate value error calculation method are an example of the overlap degree calculation method, and the method in which the overlapping degree calculation module 1323 calculates the overlap between two or more images is the above-described IOU method and the coordinate value error calculation method is not limited to
  • the processor 1200 executes instructions or program codes related to the overlapping degree calculation module 1323, and thus the bounding box coordinate value information of the first ROI including the target object recognized from the original image and the target recognized from the reconstructed image
  • the degree of overlap between the first ROI and the second ROI may be calculated based on bounding box coordinate value information of the second ROI including the object.
  • the processor 1200 may calculate the degree of overlap between the first ROI and the second ROI using the IOU method or the coordinate value error calculation method provided from the overlap calculation module 1323 .
  • the processor 1200 uses the upper-left and lower-right coordinate values of the bounding box of the first region of interest and the upper-left and lower-right coordinates of the bounding box of the second region of interest.
  • a coordinate value error between the region and the second ROI may be calculated, and a degree of overlap may be calculated based on the calculated coordinate value error.
  • the similarity calculation module 1324 is a module for calculating the similarity between two feature vectors as a numerical value.
  • the similarity calculation module 1324 may be configured to calculate a correlation between two feature vectors as a numerical value.
  • the processor 1200 executes instructions or program codes related to the similarity calculation module 1324 , so that the first feature vector extracted from the target object detected in the original image and the second feature extracted from the target object detected in the reconstructed image are executed.
  • the similarity between vectors can be calculated as a numerical value.
  • the processor 1200 may calculate the similarity between the first feature vector and the second feature vector, for example, through Equation 2 below.
  • F orig and F enc denote a first feature vector extracted from a target object detected in the original image and a second feature vector extracted from a target object detected in the reconstructed image, respectively, and N is the length of the feature vector.
  • is the average value of the feature vectors
  • is the standard deviation of the feature vectors.
  • Equation 2 is an example for calculating the degree of similarity, and the method by which the processor 1200 calculates the similarity between the first feature vector and the second feature vector using the similarity calculation module 1324 is not limited to Equation 2 .
  • the recognition result determination module 1325 determines whether the target object is normally recognized from the reconstructed image, based on the degree of overlap between the ROIs detected from each of the original image and the reconstructed image and the similarity between the feature vectors extracted from each of the original image and the reconstructed image. It is a module that is configured to determine whether or not The recognition result determination module 1325 compares the degree of overlap between the first region of interest and the second region of interest calculated using the overlapping degree calculation module 1323 with a preset first threshold, and performs the similarity calculation module 1324
  • the degree of similarity between the first feature vector and the second feature vector calculated by using the first feature vector may be compared with a preset second threshold value.
  • the first threshold may be 0.8
  • the second threshold may be 0.5.
  • the numerical values of the first threshold value and the second threshold value are not limited as described above.
  • the processor 1200 compares the degree of overlap between the first ROI and the second ROI with a first threshold by executing instructions or program codes related to the recognition result determination module 1325 , and the first feature vector and the second The similarity between the feature vectors may be compared with a second preset threshold.
  • the recognition result determination module 1325 may provide information on the comparison result to the compression rate adjustment module 1326 .
  • the compression ratio adjustment module 1326 is a module that determines a compression ratio for compressing the original image to obtain a reconstructed image, based on whether the target object is recognized by the recognition result determination module 1325 .
  • the 'compression rate' refers to an image compression parameter for encoding an original image using a method matching a standard specification.
  • the compression ratio may exist in various forms for each standard specification. For example, in a standard for reproducing a static image (eg, Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, etc.), a quantization table is used to determine the compression rate of the image. This can be used. For another example, in a standard (eg, H.
  • the compression rate of the image may be determined using a quantization parameter.
  • the compression rate adjustment module 1326 may be configured to determine the quantization parameter value based on the comparison result with preset thresholds of the degree of overlap and the degree of similarity obtained from the recognition result determination module 1325 .
  • the 'quantization parameter' is a parameter indicating the degree of quantization of a transform coefficient defined in a standard related to compression of a dynamic image, for example, H.264/AVC or HEVC (H.265).
  • a compression ratio may be determined.
  • the compression ratio is proportional to the value of the quantization parameter. For example, when the value of the quantization parameter is large, the compression ratio is high, and when the value of the quantization parameter is small, the compression ratio is low.
  • the compression ratio adjustment module 1326 may be configured to adjust a value of the compression ratio based on the comparison result provided from the recognition result determination module 1325 .
  • the processor 1200 executes instructions or program code related to the compression ratio adjustment module 1326 , thereby comparing the degree of overlap between the first region of interest and the second region of interest with the first threshold, and the first A value of the quantization parameter may be adjusted based on a comparison result between the similarity between the feature vector and the second feature vector and the second threshold.
  • the compression rate adjustment module 1326 may change the value of the compression rate by a preset unit.
  • the processor 1200 may change the value of the compression ratio when the degree of overlap is equal to or less than the first threshold or the degree of similarity is less than or equal to the second threshold as a result of comparison using the recognition result determination module 1325 .
  • the processor 1200 may change the compression ratio value to a value lower than the compression ratio used for compressing and encoding the existing reconstructed image.
  • the processor 1200 is used to generate a reconstructed image
  • the obtained compression ratio may be determined as the final compression ratio.
  • the processor 1200 may repeatedly perform operations of determining the compression ratio. For example, the processor 1200 performs an operation of compressing an original image using a compression rate changed through the compression rate adjustment module 1326, an operation of generating a reconstructed image through encoding and decoding processes, an operation of recognizing a target object from the reconstructed image, and , the operation of extracting the second feature vector, the operation of calculating the degree of overlap, the operation of calculating the similarity, the operation of determining whether the target object is normally recognized, and the operation of re-adjusting the compression ratio are repeated at least once or more can be done with
  • the processor 1200 determines a final compression ratio value, and stores information about the determined final compression ratio in the learning data storage unit 1410 ) can be stored in The processor 1200 may store the original image and at least one feature map extracted from the original image in the training data storage 1410 together with the determined final compression ratio information. In an embodiment, the processor 1200 stores the plurality of original images, the plurality of feature maps, and the plurality of compression ratio information in the learning data storage unit 1410 by performing the above-described learning data generating operation on the plurality of previously acquired original images. ) can be stored in
  • the pre-processing module 1330 is a module configured to perform pre-processing on an input image.
  • the preprocessing module 1330 may resize the image to a preset size and normalize brightness and contrast of the image.
  • the processor 1200 adjusts the size of the image by inputting the image obtained through photographing using the camera 1100 or obtained through the communication interface 1500 to the pre-processing module 1330, and the brightness and contrast of the image can be normalized.
  • the processor 1200 may input the pre-processed image to the deep neural network model 1340 .
  • the deep neural network model 1340 is an artificial intelligence model configured to perform machine learning (training) using training data pre-stored in the training data storage unit 1410 .
  • the processor 1200 applies a plurality of original images and a plurality of feature maps previously stored in the training data storage 1410 as inputs to the deep neural network model 1340 , and a target object from each of the plurality of original images.
  • Supervised learning may be performed by applying a label regarding an optimal compression rate value for normally recognizing , as a ground-truth value of the deep neural network model 1340 .
  • the deep neural network model 1340 may include a plurality of hidden layers that are internal layers for performing calculations.
  • the deep neural network model 1340 is, for example, a convolutional neural network model (CNN), a recurrent neural network model (RNN), a restricted boltzmann machine (RBM), a deep belief network (DBN). ), BRDNN (Bidirectional Recurrent Deep Neural Network), and may include at least one of deep Q-networks (Deep Q-Networks).
  • the deep neural network model 1340 is not limited to the above-described example, and may include all known deep learning-based neural network models.
  • the processor 1200 uses a filter having a preset size and a preset number of channels in the learning step to obtain training data Extracting feature values by moving a plurality of original images input from the storage 1410 , obtaining a plurality of layers including the extracted feature values, and applying a weight to the plurality of layers By applying , a feature vector map can be obtained.
  • a rectified linear unit (ReLU) model is used in the process of obtaining the feature vector map, and the learning model is regularized through drop out to improve efficiency, and pooling or max pooling Operations for performing (max pooling) may be further added. Then, the feature values obtained through pooling or max pooling are integrated through a fully connected layer, and an activation function including softmax, sigmoid, and hyperbolic tangent. It can be learned to output a label related to the compression ratio value through .
  • the processor 1200 may acquire model parameters through learning using the deep neural network model 1340 .
  • the processor 1200 when the deep neural network model 1340 is implemented as a convolutional neural network model (CNN), the processor 1200 performs supervised learning using the deep neural network model 1340 through a plurality of inter-layer weights and A model parameter including bias information may be obtained.
  • 'weight' and 'bias' are parameters for inferring an output label (compression rate value) from input data (a plurality of original images and a plurality of feature maps). This can be adjusted.
  • the processor 1200 may store information about weights and biases obtained through training of the deep neural network model 1340 in the model parameter storage unit 1420 .
  • the processor 1200 inputs the image that has been pre-processed through the pre-processing module 1330 into the deep neural network model 1340 composed of pre-learned model parameters, thereby determining the compression rate for normally recognizing the target object from the image. can be printed out.
  • the processor 1200 may input at least one feature map extracted in a process of detecting a target object from an image to the deep neural network model 1340 .
  • the output 'compression rate accuracy' means a degree to which a target object is accurately recognized from an image input to the deep neural network model 1340, and the compression rate accuracy is proportional to the target object recognition rate.
  • the deep neural network model 1340 may be implemented as a software module including at least one instruction or program code.
  • the deep neural network model 1340 may be stored in a computer-readable non-transitory computer readable media.
  • the deep neural network model 1340 may be provided by an operating system of the device 1000 or may be provided through a predetermined application.
  • the deep neural network model 1340 is illustrated as a software module stored in the memory 1300 and is described as being executed by the processor 1200 , but is not limited thereto.
  • the deep neural network model 1340 may be manufactured in the form of at least one hardware chip and mounted on the device 1000 .
  • the deep neural network model 1340 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or an existing general-purpose processor (eg, CPU or application processor) or a graphics-only processor (eg, : GPU) and may be included in the device 1000 described above.
  • AI artificial intelligence
  • an existing general-purpose processor eg, CPU or application processor
  • a graphics-only processor eg, : GPU
  • the deep neural network model 1340 may be mounted in a separate device other than the device 1000 .
  • the deep neural network model 1340 may be included in an external server 2000 (refer to FIG. 1 ).
  • the device 1000 transmits the pre-processed image to the server 2000 through the pre-processing module 1330, and information about the compression rate for normally recognizing the target object from the image may be received from the server 2000. there is.
  • the processor 1200 may provide information about the compression ratio output from the deep neural network model 1340 to the encoder 1310 .
  • the encoder 1310 may generate a bitstream by compressing and encoding an image using a compression rate input from the deep neural network model 1340 .
  • the processor 1200 may transmit the bitstream to an external server 2000 (refer to FIG. 1 ) or another device using the communication interface 1500 .
  • the processor 1200 receives the compression ratio information obtained from the output of the deep neural network model 1340 , the compression ratio value determined based on bandwidth information of a network connected through the communication interface 1500 and the encoding module 1312 . may be compared with an initial compression ratio preset by , and a final compression ratio value may be determined based on the comparison result. This will be described in detail with reference to FIG. 10 .
  • the training data storage unit 1410 is a database that stores the training data generated by the training data generation module 1320 .
  • the learning data storage unit 1410 may be configured as a non-volatile memory.
  • the non-volatile memory refers to a storage medium that stores and maintains information even when power is not supplied and can use the stored information again when power is supplied.
  • the learning data storage unit 1410 is, for example, a flash memory, a hard disk, a solid state drive (SSD), a multimedia card micro type, a card type memory (eg For example, SD or XD memory), a read only memory (ROM), a magnetic memory, a magnetic disk, and an optical disk may be configured as at least one.
  • the learning data storage unit 1410 is illustrated as a separate component rather than the memory 1300 of the device 1000 , but is not limited thereto.
  • the learning data storage unit 1410 may be included in the memory 1300 .
  • the learning data storage unit 1410 may be connected through wired/wireless communication through the communication interface 1500 as a component not included in the device 1000 .
  • the training data storage unit 1410 may include information about a plurality of original images, a plurality of feature maps output by the training data generation module 1320 , and a plurality of compression ratio values.
  • the training data storage 1410 may store a plurality of original images, a plurality of feature maps, and a plurality of compression ratio values as a key-value type.
  • the model parameter storage unit 1420 is a database for storing model parameters obtained through training of the deep neural network model 1340 .
  • the model parameters may vary according to the type of the deep neural network model 1340 .
  • the model parameter storage unit 1420 may store model parameters including weights and biases between a plurality of layers. there is.
  • the model parameter storage unit 1420 may be configured as a non-volatile memory.
  • the model parameter storage unit 1420 is, for example, a flash memory, a hard disk, a solid state drive (SSD), a multimedia card micro type, a card type memory (eg For example, SD or XD memory), a read only memory (ROM), a magnetic memory, a magnetic disk, and an optical disk may be configured as at least one.
  • the model parameter storage unit 1420 is illustrated as a separate component rather than the memory 1300 of the device 1000 , but is not limited thereto.
  • the model parameter storage unit 1420 may be included in the memory 1300 .
  • the model parameter storage unit 1420 may be connected through wired/wireless communication through the communication interface 1500 as a component not included in the device 1000 .
  • the communication interface 1500 is configured to transmit/receive data between the device 1000 and a server or another device.
  • Communication interface 1500 is, for example, Ethernet (Ethernet), wired and wireless LAN (Local Area Network), Wi-Fi (Wi-Fi), WFD (Wi-Fi Direct), and WiGig (Wireless Gigabit Allicance, WiGig) Data communication may be performed with a server or other device using at least one of the included wired/wireless data communication methods.
  • FIG. 4 is a flowchart illustrating a method of operating the device 1000 according to an embodiment of the present disclosure.
  • the device 1000 obtains a feature map for detecting the target object from the image.
  • the device 1000 may photograph an object using a camera or may acquire an image through a network.
  • Video means a still image of a single frame or a dynamic video including at least one frame.
  • the device 1000 may detect a target object from a static image or a dynamic image, and may obtain a feature map extracted in a process of detecting the target object.
  • the 'target object' means an object of interest that the user wants to detect from the image.
  • the target object may include, for example, at least one of a person's face, hair, clothes, and a pose.
  • the device 1000 may detect a target object from an image by using an artificial intelligence model including deep learning.
  • the device 1000 may detect a target object from an image by performing learning using a convolutional neural network model (CNN).
  • CNN convolutional neural network model
  • the device 1000 may detect a human face from a dynamic image through a large data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M.
  • the device 1000 may include a previously trained MobileNet to perform face recognition using the VGGFace2 data set.
  • the device 1000 may output at least one feature map in the process of detecting the target object.
  • a 'feature map' is an image including a feature vector extracted to detect a target object from an image, and may include, for example, at least one of an edge map, a blur image, or a circular map.
  • the device 1000 calculates a convolution using a filter having a predetermined size and number of channels on the original image, and performs the convolutional product. Through this, a 2D image layer equal to the number of filters may be extracted, and at least one feature map composed of 2D image layers may be obtained.
  • an operation of preprocessing an image may be performed before the step of acquiring the feature map ( S410 ).
  • the device 1000 may perform a preprocessing process of resizing an image to a preset size and normalizing brightness and contrast of the image.
  • step S420 the device 1000 inputs the image and the feature map to a deep neural network model composed of pre-trained model parameters, thereby outputting a compression rate for normally recognizing the target object from the image. do.
  • the device 1000 may output an image and a compression rate that can normally recognize a target object from the image by performing training by applying the feature map extracted from the image to the deep neural network model as an input. there is.
  • the 'compression rate at which a target object can be normally recognized' means a compression rate when an error rate for recognizing a target object from an image is less than a preset error rate.
  • the deep neural network model is an artificial intelligence model obtained by performing training using pre-stored learning data.
  • the deep neural network model may include model parameters obtained through learning performed before steps S410 and S420 are performed.
  • the 'pre-learned model parameter' may include weights and biases for a plurality of layers included in the deep neural network model.
  • Supervised learning is performed by applying a plurality of original images and a plurality of feature maps to the pre-learned model parameters as inputs, and applying a label for a plurality of compression ratio values as a ground-truth value. By doing so, it can be obtained.
  • a specific embodiment of determining a compression ratio value for normally recognizing a target object for each of the plurality of previously acquired original images will be described in detail with reference to FIGS. 5 to 7 .
  • the deep neural network model may include a plurality of hidden layers that are internal layers for performing calculations.
  • Deep neural network models include, for example, Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), DBN (Deep Belief Network), BRDNN It may include at least one of (Bidirectional Recurrent Deep Neural Network) and Deep Q-Networks.
  • CNN Convolutional Neural Network
  • RNN Recurrent Neural Network
  • RBM Restricted Boltzmann Machine
  • DBN Deep Belief Network
  • BRDNN Deep Q-Networks.
  • the deep neural network model is not limited to the above-described example, and may include all known deep learning-based neural network models.
  • the device 1000 uses a filter having a preset size and a preset number of channels to move a plurality of original images applied as inputs (stride) ) to extract feature values, obtain a plurality of layers including the extracted feature values, and obtain a feature vector map by applying a weight to the plurality of layers.
  • a rectified linear unit (ReLU) model is used in the process of obtaining the feature vector map, and the learning model is regularized through drop out to improve efficiency, and pooling or max pooling Operations for performing (max pooling) may be further added.
  • the feature values obtained through pooling or max pooling are integrated through a fully connected layer, and an activation function including softmax, sigmoid, and hyperbolic tangent. It can be learned to output a label related to the compression ratio value through .
  • step S430 the device 1000 compresses and encodes an image using the output compression rate, thereby generating a bitstream.
  • the device 1000 splits the image into a plurality of coding tree units (CTUs), and compresses and performs compression and After encoding, the CTU in which the target object is not detected may be compressed and encoded using an initially set compression rate. This will be described in detail with reference to FIGS. 8 and 9 .
  • CTUs coding tree units
  • the device 1000 converts the compression ratio output in step S420 to the network compression ratio value determined according to the bandwidth of the network connected to the device 1000 and the encoding module 1312 (refer to FIG. 3 ). By comparing with the set initial compression ratio value, it is possible to determine the final compression ratio for compressing the image. This will be described in detail with reference to FIG. 10 .
  • Step S500 shown in FIG. 5 is performed before step S410 of FIG. 4 is performed.
  • the device 1000 compresses, encodes and decodes the previously acquired original image at a preset compression rate, thereby generating a restored image.
  • the 'raw image' is an image captured by a camera or an image acquired through a network, and is uncompressed image data.
  • the preset compression ratio for compressing the original image may mean a compression ratio initially set by the encoding module 1312 (refer to FIG. 3 ).
  • the device 1000 may generate a reconstructed image by compressing, encoding, and decoding the original image at a preset compression rate using the encoder 1310 (refer to FIG. 3 ).
  • the encoder 1310 compresses the original image using at least one of dynamic image compression standard standards including, for example, H.264/AVC and HEVC (H.265), and encodes and decodes the restored image.
  • dynamic image compression standard standards including, for example, H.264/AVC and HEVC (H.265)
  • the encoder 1310 compresses the original image using, for example, at least one of a static image compression standard such as Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, etc. , encoding and decoding may be performed to generate a reconstructed image.
  • JPEG Joint Photographic Coding Experts Group
  • JPEG-2000 Joint Photographic Coding Experts Group
  • JPEG-XR Joint Photographic Coding Experts Group
  • WebP etc.
  • the device 1000 detects a target object from the original image and extracts a first feature vector from the detected target object.
  • the 'target object' may include, for example, at least one of a person's face, hair style, clothes, and pose.
  • the device 1000 may recognize a target object from an original image using a known image processing technology or an artificial intelligence model including deep learning, and extract a first feature vector from the recognized target object .
  • the processor 1200 may detect the target object from the original image by performing learning using a convolutional neural network (CNN).
  • CNN convolutional neural network
  • the processor 1200 may detect the target object from the original image by using a model parameter previously learned through the convolutional neural network model. For example, if the target object is a face, the processor 1200 may detect a human face from the original image through a large data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M.
  • a convolutional neural network for example, if the target object is a face, the processor 1200 may detect a human face from the original image through a large data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M.
  • the processor 1200 may extract the first feature vector from the image of the target object by using a well-known image processing technique or an artificial intelligence model including deep learning.
  • the processor 1200 may extract the first feature vector from the target object image by using an Independent Component Analysis (ICA) or a Principle Component Analysis (PCA) method.
  • ICA Independent Component Analysis
  • PCA Principle Component Analysis
  • the first feature vector may be, for example, a vector including feature values corresponding to landmarks such as eyes, nose, and mouth of a person's face.
  • the present invention is not limited thereto, and the first feature vector may be a vector including feature values corresponding to at least one key-points extracted from a person's hair style, clothes, or a specific posture.
  • the processor 1200 may extract the first feature vector from the target object image by using the convolutional neural network model. For example, the processor 1200 extracts feature values by moving on a target object image using a kernel having a preset size and a preset number of channels, and includes the extracted feature values.
  • a feature vector map may be obtained by obtaining a plurality of layers and applying a weight to the plurality of layers.
  • a rectification linear unit (ReLU) model is used in the process of obtaining a feature vector value, and to improve efficiency, regularization of feature values through drop out, pooling or max pooling ( max pooling) may be further added.
  • the processor 1200 may extract the first feature vector from the image of the target object detected from the original image using, for example, a convolutional neural network model such as MobileNet v1/v2.
  • the device 1000 detects a target object from the reconstructed image, and extracts a second feature vector from the detected target object.
  • the target object is recognized from the 'reconstructed image' rather than the original image, and a second feature vector is extracted.
  • the recognition target of the target object and the image from which the second feature vector is extracted There is a difference, but the method of operation is the same. Accordingly, a description overlapping with step S520 will be omitted.
  • the device 1000 determines the degree of overlap between the first region of interest including the target object detected from the original image and the second region of interest including the target object detected from the reconstructed image, the first feature vector, and the second feature Based on the similarity between vectors, it is determined whether the target object is normally recognized from the original image.
  • the processor 1200 of the device 1000 identifies a bounding box of the target object detected from the original image, and sets a region included in the identified bounding box to a first Region of Interest. ) can be set.
  • the processor 1200 may identify a bounding box of the target object detected from the reconstructed image, and set a region included in the bounding box as the second ROI.
  • the processor 1200 may calculate an overlap between the first ROI and the second ROI, and calculate a similarity between the first feature vector and the second feature vector. In an embodiment, the processor 1200 compares the calculated degree of overlap with a preset first threshold, compares the calculated similarity with a preset second threshold, and the target object is normally recognized from the reconstructed image based on the comparison result It can be determined whether or not
  • the 'compression rate' refers to an image compression parameter for encoding an original image using a method matching a standard specification.
  • the compression ratio may exist in various forms for each standard specification. For example, in standard standards for compressing static images (eg, Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, etc.), a quantization table is used to determine the compression ratio of the image. This can be used. For example, in a standard standard for reproducing a dynamic image (eg, H.264/AVC, HEVC (H.265), etc.), the compression rate of the image may be determined using a quantization parameter.
  • JPEG Joint Photographic Coding Experts Group
  • JPEG-2000 Joint Photographic Coding Experts Group
  • JPEG-XR Joint Photographic Coding Experts Group (JPEG)
  • JPEG-2000 Joint Photographic Coding Experts Group
  • JPEG-XR Joint Photographic Coding Experts Group
  • WebP etc.
  • the 'quantization parameter' is a parameter indicating the degree of quantization of a transform coefficient defined in a standard related to compression of a dynamic image, for example, H.264/AVC or HEVC (H.265).
  • a compression ratio may be determined.
  • the compression ratio is proportional to the value of the quantization parameter. For example, when the value of the quantization parameter is large, the compression ratio is high, and when the value of the quantization parameter is small, the compression ratio is low.
  • the processor 1200 may determine that the target object is not normally recognized from the reconstructed image.
  • the processor 1200 may determine that the target object is normally recognized from the reconstructed image.
  • processor 1200 of the device 1000 compares the degree of overlap with the first threshold and compares the degree of similarity with the second threshold to determine whether the target object is normally recognized will be described in detail with reference to FIG. 6 . do.
  • the device 1000 determines a compression rate based on a result of determining whether the target object is recognized. In an embodiment, when it is determined that the target object is not normally recognized from the reconstructed image, the device 1000 may change the value of the compression rate to a value lower than the compression rate used for compressing and encoding the existing reconstructed image. In an embodiment, when it is determined that the target object is normally recognized from the reconstructed image, the device 1000 may determine an initially set compression rate used to generate the reconstructed image received in step S510 as the final compression rate. A specific embodiment in which the device 1000 changes the compression ratio or determines the final compression ratio based on the determination result of whether the target object is recognized will be described in detail with reference to FIG. 7 .
  • the device 1000 normally recognizes the target object from each of the plurality of original images by performing step S500 including steps S510 to S550 shown in FIG. 5 for each of the plurality of previously acquired original images. It is possible to obtain compression rate information for In an embodiment, the device 1000 stores information about a plurality of feature maps extracted in a process of detecting a target object from a plurality of original images and a plurality of compression ratio values determined in step S500 to the learning data storage unit 1410 (FIG. 1410). 3) can be saved.
  • the device 1000 uses data stored in the training data storage unit 1410 , that is, data regarding a plurality of original images, a plurality of feature maps, and a plurality of compression ratio values to a deep neural network model 1340 ( FIG. 3 ). see) can be learned.
  • FIG. 6 is a flowchart illustrating a method of determining whether the device 1000 recognizes a target object in a reconstructed image according to an embodiment of the present disclosure.
  • Steps S610 to S650 shown in FIG. 6 are concrete steps of step S540 shown in FIG. 5 . Steps S610 and S620 shown in FIG. 6 are performed after step S530 shown in FIG. 5 is performed.
  • the device 1000 calculates the degree of overlap between the first ROI and the second ROI.
  • the device 1000 includes information about location coordinate values of a bounding box of a first region of interest including the target object detected from the original image and the second interest including the target object detected from the reconstructed image. Position coordinate value information of the bounding box of the region may be respectively obtained, and an overlap degree indicating the degree of overlap between the first region of interest and the second region of interest may be calculated using the obtained position coordinate values.
  • the processor 1200 (refer to FIG. 3 ) of the device 1000 uses an intersection over union (IOU) method of calculating a degree of overlap using location coordinate value information, the first region of interest and the second region of interest. The degree of overlap between them can be calculated.
  • IOU intersection over union
  • the device 1000 calculates a degree of similarity between the first feature vector and the second feature vector.
  • the processor 1200 of the device 1000 uses a known method of calculating a correlation between vectors, and the first feature vector extracted from the image of the target object detected from the original image and the target detected from the reconstructed image A degree of similarity between the second feature vectors extracted from the image of the object may be calculated.
  • steps S610 and S620 may be simultaneously and independently performed. However, the present invention is not limited thereto, and step S610 may be performed before step S620, or step S620 may be performed before step S610.
  • the device 1000 may compare the degree of overlap calculated in operation S610 with a preset first threshold ⁇ and compare the degree of similarity calculated in operation S620 with a second threshold ⁇ .
  • the first threshold ⁇ may have a value of 0.8 and the second threshold ⁇ may have a value of 0.5, but is not limited thereto.
  • step S640 the device 1000 determines that the target object is normally recognized from the reconstructed image.
  • the target object is normally recognized in the reconstructed image, it is connected to a of FIG. 7 , and after step S640 of FIG. 6 is performed, step S710 of FIG. 7 may be performed.
  • step S650 the device 1000 determines that the target object is not normally recognized from the reconstructed image.
  • the target object is not normally recognized in the reconstructed image, it is connected to b of FIG. 7 , and after step S650 of FIG. 6 is performed, step S720 of FIG. 7 may be performed.
  • FIG. 7 is a flowchart illustrating a method of determining, by the device 1000, a compression rate of an image based on a result of determining whether a target object is recognized, according to an embodiment of the present disclosure.
  • Steps S710 to S730 shown in FIG. 7 are concrete steps of step S550 shown in FIG. 5 .
  • Steps S510 to S540 shown in FIG. 7 are the same as the steps shown in FIG. 5 .
  • the device 1000 may determine a compression rate used to generate the reconstructed image in operation S510 , for example, a value of a quantization parameter as the final compression rate. Step S710 may be performed after step S640 of FIG. 6 connected through a is performed.
  • step S720 the device 1000 changes the compression ratio to a low value.
  • Step S720 may be performed after step S650 of FIG. 6 connected through b is performed.
  • the device 1000 may adjust the compression ratio to a value lower than the compression ratio used to generate the restored image in step S510 .
  • the processor 1200 (refer to FIG. 3 ) of the device 1000 may change the value of the quantization parameter used to generate the reconstructed image to a lower value.
  • step S730 the device 1000 provides the changed compression rate information to the encoding module 1312 (refer to FIG. 3 ).
  • the device 1000 After step S730 , the device 1000 repeatedly performs steps S510 , S520 , S530 , S540 , and S550 .
  • the device 1000 may compress the original image at a changed compression rate by executing the instructions or program code related to the encoding module 1312, and perform encoding and decoding, thereby generating a reconstructed image. there is.
  • the device 1000 performs an operation of generating a reconstructed image (step S510), recognizing a target object from an original image, and extracting a first feature vector (step S520), recognizing a target object from the reconstructed image, and performing a second feature
  • the operation of extracting the vector (step S530), the operation of determining whether the target object is normally recognized based on the degree of overlap and the degree of similarity (step S540), and the operation of determining the compression ratio (step S550) are repeated at least once or more can be done with
  • the device 1000 may repeatedly perform steps S510 , S520 , S530 , S540 , and S550 until the degree of overlap exceeds the first threshold ⁇ and the degree of similarity exceeds the second threshold ⁇ .
  • FIG 8 is a diagram illustrating an embodiment in which the device 1000 determines different compression rates for each coding tree unit (CTU) according to an embodiment of the present disclosure.
  • CTU coding tree unit
  • the device 1000 may split an input image 800 into CTU units, which is a preset image size.
  • the CTU may include a preset number of pixels.
  • the CTU may be configured with a number of pixels of 16 ⁇ 16 or 64 ⁇ 64, but is not limited thereto.
  • the processor 1200 (refer to FIG. 3 ) of the device 1000 may divide the input image 800 to include a plurality of CTUs 800 - 1 to 800 -n.
  • the plurality of CTUs 800-1 to 800-n are all illustrated as having the same size, but the present invention is not limited thereto.
  • each of the plurality of CTUs 800 - 1 to 800 - n includes a different number of pixels and may be formed in different sizes.
  • the device 1000 may detect a target object from the input image 800 .
  • the processor 1200 of the device 1000 may detect the target object from the input image 800 by executing instructions or program codes related to the target object detection module 1321 .
  • the 'target object' may include, for example, at least one of a person's face, hair style, clothes, and pose, but is not limited thereto.
  • the target object is a human face
  • the processor 1200 receives at least one target object 801 , 802 , 803 from the input image 800 using the target object detection module 1321 . can be detected.
  • the processor 1200 may identify a bounding box of the detected target object, and obtain a position coordinate value of the identified bounding box. In an embodiment, the processor 1200 may set a bounding box identified from each of the at least one target object 801 , 802 , and 803 as the at least one ROI R 1 , R 2 , R 3 .
  • the processor 1200 may identify at least one CTU in which the target object is detected among the plurality of CTUs 800-1 to 800-n.
  • the processor 1200 executes instructions or program codes related to the overlapping degree calculation module 1323 and uses coordinate information of each of the at least one region of interest R 1 , R 2 , and R 3 . It is possible to calculate the degree of overlap with the plurality of CTUs (800-1 to 800-n).
  • the processor 1200 uses at least one region of interest (R 1 , R 2 , R 3 ) and a plurality of CTUs using an intersection over union (IOU) method of calculating an overlap by using coordinate value information.
  • the degree of overlap between (800-1 to 800-n) can be calculated.
  • the processor 1200 may use an error calculation method of calculating the degree of overlap by calculating the sum of errors between coordinate values.
  • the processor 1200 identifies at least one CTU having a calculated overlap value among the plurality of CTUs 800-1 to 800-n, that is, at least one overlapping CTU, at least one CTU including the target object. can be identified.
  • the processor 1200 performs coordinate information (coordinate values and At least one overlapping CTU (800-9, 800-10, 800-17, 800-18) may be identified based on the information about the coordinate size).
  • the processor 1200 is at least one CTU (800-20, 800-21, 800) that overlaps based on the coordinate information of the second region of interest (R 2 ) among the plurality of CTUs (800-1 to 800-n) -28, 800-29), and at least one overlapping CTU (800-14, 800-15, 800-22, 800-23) is identified based on the coordinate information of the third region of interest (R 3 ) can do.
  • the processor 1200 is configured to at least one CTU in which the target object is detected among the plurality of CTUs 800-1 to 800-n (800-9, 800-10, 800-14, 800-n in the embodiment shown in FIG. 8 ). 15, 800-17, 800-18, 800-20, 800-21, 800-22, 800-23, 800-28, 800-29) to the deep neural network model 1340 to perform training By doing so, it is possible to obtain a compression rate capable of recognizing a target object normally. If at least one CTU in which the target object is detected is referred to as a first CTU 810, the device 1000 in the embodiment shown in FIG. 8 calculates the compression ratio (QP) applied to the first CTU 810 in a deep neural network model ( 1340) may be determined as a value of the output compression ratio, for example, 20.
  • QP compression ratio
  • the processor 1200 determines at least one CTU in which a target object is not detected among the plurality of CTUs 800-1 to 800-n as the second CTU 820, and at least one second CTU 820 for Instead of the compression ratio output from the deep neural network model 1340 , a preset initial compression ratio may be applied.
  • the processor 1200 may apply 30, which is a value (QP) of an initially set compression rate, to at least one second CTU 820 .
  • FIG. 9 is a flowchart illustrating a method for the device 1000 to determine different compression rates for each coding tree unit (CTU) according to an embodiment of the present disclosure.
  • CTU coding tree unit
  • the device 1000 detects at least one target object from the input image.
  • the 'target object' may include, for example, at least one of a person's face, hair style, clothes, and pose, but is not limited thereto.
  • the device 1000 may detect a target object from an input image using a well-known image processing technology or an artificial intelligence model including deep learning.
  • the processor 1200 may detect a target object from an input image by performing learning using a convolutional neural network (CNN).
  • CNN convolutional neural network
  • the processor 1200 may detect a target object from an input image using a model parameter previously learned through a convolutional neural network model.
  • the processor 1200 may detect a human face from an input image through a large data set, for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M.
  • a large data set for example, CASIA-WebFace, VGGFace/VGGFace 2, or MS-Celeb-1M.
  • the device 1000 obtains coordinate information of each of the detected at least one target object.
  • the device 1000 may identify a bounding box of at least one target object detected from the input image, and obtain information about a position coordinate value and a coordinate size of the identified bounding box. .
  • the processor 1200 of the device 1000 may set the bounding box identified from each of the at least one target object as at least one ROI.
  • the device 1000 splits the input image in units of coding tree units (CTUs).
  • the CTU may include a preset number of pixels.
  • the CTU may be configured with a number of pixels of 16 ⁇ 16 or 64 ⁇ 64, but is not limited thereto.
  • the processor 1200 of the device 1000 may divide the input image to include a plurality of CTUs. Each of the plurality of CTUs may have the same size, but is not limited thereto. In an embodiment, the processor 1200 may divide the input image into a plurality of CTUs having different sizes.
  • Steps S910 and S920 may be simultaneously and independently performed. However, the present invention is not limited thereto, and step S910 may be performed before step S920, or step S920 may be performed before step S910.
  • the device 1000 calculates an overlap with a plurality of CTUs based on coordinate information of a bounding box of at least one target object.
  • the processor 1200 of the device 1000 uses an intersection over union (IOU) method for calculating an overlap degree using coordinate value information to overlap between a bounding box of at least one target object and a plurality of CTUs. degrees can be calculated.
  • IOU intersection over union
  • the present invention is not limited thereto, and the processor 1200 may use an error calculation method of calculating the degree of overlap by calculating the sum of errors between coordinate values.
  • the processor 1200 calculates the error between the position coordinate value of each of the bounding boxes of the at least one target object and the position coordinate value of each of the plurality of CTUs, and calculates the sum of squares of the errors. can be calculated.
  • step S940 the device 1000 checks whether the calculated overlapping degree exceeds 0.
  • the calculated overlapping value is 1, it means that the two images completely overlap, and when the overlapping value is 0, This means that the two images do not overlap at all.
  • the value of the degree of overlap is 0.5, it means that 2/3 of the two images are overlapped.
  • the device 1000 identifies at least one first CTU including the target object (identify).
  • the device 1000 may identify at least one first CTU overlapping a bounding box of at least one target object among a plurality of CTUs.
  • the at least one first CTU may be a CTU corresponding to an area in which the at least one target object is detected.
  • step S960 the device 1000 obtains a compression ratio value for at least one first CTU by inputting at least one first CTU to a pre-trained deep neural network model.
  • the processor 1200 (refer to FIG. 3 ) of the device 1000 inputs at least one first CTU to the deep neural network model 1340 (see FIG. 3 ) composed of pre-trained model parameters, and the deep neural network model A compression ratio value capable of recognizing a target object normally may be obtained from at least one first CTU through learning in step 1340 .
  • step S970 the device 1000 determines the obtained compression ratio value as a compression ratio value for at least one first CTU.
  • the device 1000 identifies at least one second CTU that does not include the target object (identify).
  • the device 1000 may identify at least one second CTU that does not overlap a bounding box of at least one target object among the plurality of CTUs.
  • the at least one second CTU may be a CTU corresponding to an area in which at least one target object is not detected.
  • the target object is a human face
  • the at least one second CTU is related to a body part other than the face, such as a human body, arm, or leg, or a CTU disposed in a region corresponding to the background image.
  • step S972 the device 1000 applies an initially set compression ratio value to the at least one second CTU.
  • the initially set compression ratio value means a compression ratio value preset by the encoding module 1312 (refer to FIG. 3 ).
  • the initially set compression rate value may be determined according to a user input.
  • the device 1000 In step S980 , the device 1000 generates a bitstream by compressing and encoding the at least one first CTU and the at least one second CTU using the compression ratio value.
  • the device 1000 may compress and encode an image using the encoder 1310 (refer to FIG. 3 ).
  • the encoder 1310 may generate a bitstream by compressing and encoding the image using, for example, at least one of dynamic image compression standards including H.264/AVC and HEVC (H.265). .
  • the encoder 1310 compresses the image using, for example, at least one of a static image compression standard such as Joint Photographic Coding Experts Group (JPEG), JPEG-2000, JPEG-XR, WebP, and the like; can be coded.
  • the device 1000 may compress the at least one first CTU by applying the compression ratio value determined in step S970, and may compress the at least one second CTU using the initially set compression ratio value applied in step S972.
  • the device 1000 divides the input image 800 (refer to FIG. 8) into a plurality of CTUs (800-1 to 800-n, see FIG. 8), and a plurality of CTUs Applying the compression ratio output through the deep neural network model (1340, see FIG. 3) only to at least one first CTU (810, see FIG. 8) in which the target object is detected among (800-1 to 800-n), the target object
  • the target object By applying an initially set compression ratio to at least one second CTU 820 (refer to FIG. 8 ) in which is not detected, it is possible to improve the recognition accuracy of the target object.
  • the device 1000 of the present disclosure can reduce the data capacity after compression by compressing it at a higher compression rate than in the case of at least one first CTU 810 in which the target object is detected, as well as the amount of computation of compression and encoding. can be reduced, and processing speed can be improved.
  • FIG. 10 is a diagram illustrating a device 1000 according to an embodiment of the present disclosure comparing a compression ratio value determined through a deep neural network model with a compression ratio value according to a network bandwidth and an initially set compression ratio value, and determining a final compression ratio value based on the comparison result This is a flowchart showing how to do it.
  • Steps S1010 to S1070 shown in FIG. 10 are steps performed after step S420 shown in FIG. 4 is performed. After step S1070 is performed, step S430 shown in FIG. 4 may be performed.
  • the device 1000 obtains information about the compression ratio value QP NW based on the network bandwidth.
  • the compression rate value QP NW may be determined based on a transmit/receive bitrate according to a network environment connected to the device 1000 , for example, a network bandwidth.
  • the device 1000 may measure a bandwidth of a network connected to the device 1000 and obtain information about a compression ratio value QP NW according to the measured network bandwidth.
  • step S1020 the device 1000 compares QP det , which is a compression rate value determined by the deep neural network model, and QP init , which is an initially set compression rate value, with QP NW , which is a compression rate value determined according to network bandwidth.
  • the device 1000 inputs an image to the deep neural network model 1340 (see FIG. 3 ), and QP det , which is an output compression ratio value, and QP init , which is a compression ratio value initially set by the encoding module 1312 (see FIG. 3 ) may be compared with QP NW , which is a compression ratio value according to the network bandwidth obtained in step S1010.
  • step S1030 the device 1000 checks whether QP det , which is a compression rate value determined by the deep neural network model 1340, is greater than or equal to QP init , which is an initially set compression rate value, and QP NW , which is a compression rate value determined according to network bandwidth, is less than or equal to QP init . (identify).
  • the device 1000 compresses and encodes the final image to be encoded with the compression rate value QP det output through the deep neural network model 1340 . It is determined by the compression ratio value.
  • QP det which is the compression rate value determined by the deep neural network model 1340
  • QP init the compression rate value that can normally recognize the target object from the image
  • QP init the compression rate value that can normally recognize the target object from the image
  • QP NW the compression rate value
  • the device 1000 sets the compression rate value QP det output through the deep neural network model 1340 to be initially set. Check whether the compression ratio is less than or equal to QP init .
  • the device 1000 determines the value of the compression ratio for at least one CTU in which a target object is detected among a plurality of CTUs included in the image as QP det . .
  • the device 1000 determines whether QP NW , which is a compression ratio value determined according to the network bandwidth, exceeds the value of QP init , which is an initially set compression ratio value. Check it.
  • the device 1000 determines QP NW , which is a compression ratio value determined according to the network bandwidth, as a compression ratio for at least one CTU including the target object. . This is because, when QP NW is larger than QP init , which is an initially set compression rate, the image must be compressed using QP NW , which is a compression rate value according to network bandwidth, in order to transmit the bitstream over the network.
  • step S1060 the device 1000 adjusts a value of a compression ratio of at least one CTU in which a target object is not detected among a plurality of CTUs included in the image.
  • the compression rate regarding at least one CTU in which the target object is detected is determined as QP det in step S1042 and QP NW in step S1052
  • the device 1000 compresses the image with QP init , which is the value of the initially set compression rate.
  • a value of a compression rate for at least one CTU in which a target object is not detected may be adjusted.
  • the device 1000 may change a value of a compression ratio applied to at least one CTU in which a target object is not detected among a plurality of CTUs included in an image to be higher than a value of a previously set compression ratio.
  • the device 1000 determines QP init , which is an initial compression ratio, as a final compression ratio value.
  • the device 1000 compresses and encodes an image using the determined compression ratio value, thereby generating a bitstream.
  • the device 1000 does not determine the compression rate value QP det output through the deep neural network model 1340 as the final compression rate for compressing the image, but a network environment (eg, network bandwidth information), the final compression ratio may be determined in consideration of the obtained compression ratio value QP NW and the initially set compression ratio value QP init . Accordingly, the device 1000 of the present disclosure may not only recognize a target object from an image, but may also determine a compression rate of an image in consideration of a transmit/receive bit rate according to a network bandwidth.
  • a network environment eg, network bandwidth information
  • a program executed by the device 1000 described through the present disclosure may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component.
  • a program may be executed by any system capable of executing computer readable instructions.
  • Software may include a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
  • the software may be implemented as a computer program including instructions stored in a computer-readable storage medium.
  • the computer-readable recording medium includes, for example, a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optically readable medium (eg, CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc.
  • the computer-readable recording medium may be distributed among network-connected computer systems, so that the computer-readable code may be stored and executed in a distributed manner.
  • the medium may be readable by a computer, stored in a memory, and executed on a processor.
  • the computer-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.
  • the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
  • programs according to the embodiments disclosed in the present specification may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product may include a software program, a computer-readable storage medium in which the software program is stored.
  • the computer program product may include a product (eg, a downloadable application) in the form of a software program distributed electronically through a manufacturer of the device or an electronic market (eg, Samsung Galaxy Store).
  • a product eg, a downloadable application
  • the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing a software program.
  • the computer program product in a system consisting of a server and a device, may include a storage medium of the server or a storage medium of the device.
  • the computer program product when there is a server or a third device (eg, a smart phone) that is communicatively connected with the device, the computer program product may include a storage medium of the third device.
  • the computer program product may include the software program itself transmitted from the server to the device or the third device, or transmitted from the third device to the device.
  • one of the server, the device and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
  • two or more of a server, a device, and a third device may execute a computer program product to distribute the method according to the disclosed embodiments.
  • the server may execute a computer program product stored in the server to control a device communicatively connected with the server to perform the method according to the disclosed embodiments.
  • the third device may execute a computer program product to control the device communicatively connected to the third device to perform the method according to the disclosed embodiment.
  • the third device may download the computer program product from the server and execute the downloaded computer program product.
  • the third device may execute a computer program product provided in a pre-loaded state to perform the method according to the disclosed embodiments.

Landscapes

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

Abstract

심층 신경망 모델(Deep Neural Network)을 이용하여 영상으로부터 타겟 객체를 인식하기 위한 압축률 정보를 획득하고, 압축률 정보를 이용하여 영상을 압축하고 부호화하는 디바이스 및 그 동작 방법을 개시한다. 본 개시의 일 실시예는 적어도 하나의 카메라 또는 통신 인터페이스를 통해 영상을 입력받고, 입력된 영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하고, 영상 및 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델에 입력함으로써, 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하고, 압축률을 이용하여 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성하는 디바이스를 제공한다.

Description

영상을 처리하는 디바이스 및 그 동작 방법
본 개시는 영상을 처리하는 디바이스 및 그 동작 방법에 관한 것이다. 보다 구체적으로는, 카메라를 이용하여 촬영되거나 또는 네트워크를 통해 획득한 영상으로부터 타겟 객체를 인식하기 위한 영상 처리를 수행하는 디바이스에 관한 것이다.
일반적인 디바이스에서는, 저장 용량의 한계 또는 네트워크 대역폭의 제한 조건으로 인하여 영상 데이터를 전송하거나, 저장하는 경우 표준 압축 기술(예를 들어, H.264/AVC, HEVC(H.265), 또는 JPEG)을 이용하여 압축하여 전송 또는 저장한다. 이 때 이로 손실 압축하여 전송/저장 한다. 이 경우, 압축률을 과도하게 높게 설정하여 인코딩을 하는 경우 영상이 열화(degrading)되어 인식하여야 하는 사람의 얼굴, 헤어 스타일, 옷 차림, 등을 인식할 수 없게 되는 문제점이 있다. 또한, 제한적인 네트워크 대역폭, 네트워크의 불안정성으로 인한 데이터 패킷(packet) 손실, 인코딩 단계에서의 오류, 또는 UDP 환경에서 데이터 패킷 손실 등 예외 상황에서 디코딩된 영상 프레임이 열화되고, 열화된 영상 프레임으로부터 사람의 얼굴 등을 인식할 수 없는 문제점이 있다. 열화된 영상 프레임으로부터 사람의 얼굴을 정확하게 인식하지 못하는 경우, 다른 사람으로 오 인식되고, 비(非) 인가자를 추적하기 어려운 문제가 발생된다.
압축률을 낮게 설정하는 경우, 영상 데이터의 저장 용량 낭비가 심해지거나, 네트워크 전송이 지연되어 실시간 감시 등이 불가능해지는 문제점이 있다.
따라서, 영상으로부터 타겟 객체를 정확하게 인식하면서도 저장 용량의 한계 및 네트워크 대역폭의 제한 조건에 적합한 최적화된 압축률을 결정할 필요가 있다.
본 개시는 카메라를 이용한 촬영을 통해 획득하거나, 또는 네트워크를 통해 획득한 영상을 처리하는 디바이스 및 그 동작 방법에 관한 것으로서, 구체적으로는 기 학습된(pre-trained) 심층 신경망 모델을 이용하여 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 획득하고, 획득된 압축률을 이용하여 영상을 압축하고 부호화하는 디바이스 및 그 동작 방법을 제공하는 것을 목적으로 한다.
상술한 기술적 과제를 해결하기 위하여, 본 개시의 일 실시예는 디바이스(device)가 영상을 처리하는 방법을 제공한다. 본 개시의 일 실시예에 따른 방법은, 영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하는 단계, 상기 영상 및 상기 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 상기 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하는 단계, 및 상기 출력된 압축률을 이용하여 상기 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성하는 단계를 포함한다.
일 실시 예에서, 상기 방법은 기획득된 복수의 원본 영상, 상기 복수의 원본 영상으로부터 추출된 복수의 특징 맵 및 상기 복수의 원본 영상 각각으로부터 타겟 객체가 정상적으로 인식되는 최적의 압축률 값을 포함하는 학습 데이터를 생성하는 단계를 더 포함할 수 있다.
일 실시 예에서, 상기 심층 신경망 모델은 상기 복수의 원본 영상 및 상기 복수의 특징 맵을 입력으로 적용하고, 상기 최적의 압축률 값을 정답값(ground-truth)으로 적용하는 학습(training)을 수행함으로써 획득되는 모델 파라미터로 구성될 수 있다.
일 실시 예에서, 상기 학습 데이터를 생성하는 단계는, 기획득된 원본 영상을 기 설정된 압축률로 압축하고, 부호화 및 복호화함으로써 복원 영상을 생성하는 단계, 상기 원본 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 상기 검출된 타겟 객체로부터 제1 특징 벡터(feature vector)를 추출(extract)하는 단계, 상기 복원 영상으로부터 상기 타겟 객체를 검출하고, 상기 검출된 타겟 객체로부터 제2 특징 벡터를 추출하는 단계, 및 상기 원본 영상으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 상기 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도에 기초하여, 상기 원본 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값을 결정하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 최적의 압축률 값을 결정하는 단계는, 상기 제1 관심 영역과 상기 제2 관심 영역 간의 중첩도를 산출하는 단계, 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도를 산출하는 단계, 및 상기 산출된 중첩도를 기설정된 제1 임계치와 비교하고, 상기 산출된 유사도를 기설정된 제2 임계치와 비교하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 최적의 압축률을 결정하는 단계는, 비교 결과, 상기 중첩도가 상기 제1 임계치 이하이거나, 또는 상기 유사도가 상기 제2 임계치 이하인 경우, 상기 압축률을 상기 기설정된 압축률 보다 낮은 값으로 변경하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 최적의 압축률 값을 결정하는 단계는, 상기 산출된 중첩도가 상기 제1 임계치를 초과하고, 상기 산출된 유사도가 상기 제2 임계치를 초과하는 경우, 상기 복원 영상을 생성하는데 이용된 상기 압축률을 최종 압축률로 결정하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 방법은 학습 데이터를 생성하는 단계를 상기 복수의 원본 영상에 대하여 수행함으로써, 상기 복수의 타겟 맵 및 상기 복수의 최소 압축률 값에 관한 정보를 획득하는 단계 및 상기 복수의 원본 영상, 상기 복수의 타겟 맵, 및 상기 복수의 최소 압축률 값에 관한 정보를 데이터베이스에 저장하는 단계를 더 포함할 수 있다.
일 실시 예에서, 상기 방법은 상기 심층 신경망 모델의 출력으로부터 획득된 압축률 정보를, 상기 디바이스와 연결되는 네트워크의 대역폭 정보에 기초하여 결정된 제1 압축률 값 및 인코딩 모듈에 의해 기 설정된 초기 압축률인 제2 압축률 값과 비교하는 단계, 및 비교 결과에 기초하여, 상기 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최종 압축률 값을 결정하는 단계를 더 포함하고, 상기 비트스트림을 생성하는 단계는, 상기 결정된 최종 압축률 값에 기초하여 상기 영상을 압축하고 부호화함으로써 상기 비트스트림을 생성할 수 있다.
일 실시 예에서, 상기 최종 압축률 값을 결정하는 단계는, 상기 획득된 압축률 값이 상기 제2 압축률 값 보다 작고, 상기 제1 압축률 값이 상기 제2 압축률 값 보다 큰 경우, 상기 영상에 포함되는 복수의 CTU(Coding Tree Unit) 중 상기 타겟 객체가 검출되지 않은 적어도 하나의 CTU의 압축률을 조절하는(adjust) 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위하여, 본 개시의 일 실시예는 영상을 처리하는 디바이스를 제공한다. 본 개시의 일 실시예에 따른 디바이스는 적어도 하나의 카메라, 서버 또는 타 디바이스와 유무선으로 연결되고, 데이터 통신을 수행하는 통신 인터페이스, 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리, 및 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 적어도 하나의 카메라 또는 상기 통신 인터페이스를 통해 영상을 입력받고, 상기 입력된 영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하고, 상기 영상 및 상기 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 상기 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하고, 상기 출력된 압축률을 이용하여 상기 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성한다.
일 실시 예에서, 상기 프로세서는 기획득된 복수의 원본 영상, 상기 복수의 원본 영상으로부터 추출된 복수의 특징 맵 및 상기 복수의 원본 영상 각각으로부터 타겟 객체가 정상적으로 인식되는 최적의 압축률 값을 포함하는 학습 데이터를 생성할 수 있다.
일 실시 예에서, 상기 심층 신경망 모델은 상기 복수의 원본 영상 및 상기 복수의 특징 맵을 입력으로 적용하고, 상기 최적의 압축률 값을 정답값(ground-truth)으로 적용하는 학습(training)을 수행함으로써 획득되는 모델 파라미터로 구성될 수 있다.
일 실시 예에서, 상기 프로세서는 기획득된 원본 영상을 기 설정된 압축률로 압축하고, 부호화 및 복호화함으로써 생성된 복원 영상을 생성하고, 상기 원본 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 상기 검출된 타겟 객체로부터 제1 특징 벡터(feature vector)를 추출(extract)하고, 상기 복원 영상으로부터 상기 타겟 객체를 검출하고, 상기 검출된 타겟 객체로부터 제2 특징 벡터를 추출하고, 상기 원본 영상으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 상기 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도에 기초하여, 상기 원본 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값을 결정할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 제1 관심 영역과 상기 제2 관심 영역 간의 중첩도를 산출하고, 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도를 산출하고, 상기 산출된 중첩도를 기설정된 제1 임계치와 비교하고, 상기 산출된 유사도를 기설정된 제2 임계치와 비교할 수 있다.
일 실시 예에서, 상기 프로세서는 비교 결과, 상기 중첩도가 상기 제1 임계치 이하이거나, 또는 상기 유사도가 상기 제2 임계치 이하인 경우, 상기 압축률을 상기 기설정된 압축률 보다 낮은 값으로 변경할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 산출된 중첩도가 상기 제1 임계치를 초과하고, 상기 산출된 유사도가 상기 제2 임계치를 초과하는 경우, 상기 복원 영상을 생성하는데 이용된 상기 압축률을 최종 압축률로 결정할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 심층 신경망 모델의 출력으로부터 획득된 압축률 정보를, 상기 디바이스와 연결되는 네트워크의 대역폭 정보에 기초하여 결정된 제1 압축률 값 및 인코딩 모듈에 의해 기 설정된 초기 압축률인 제2 압축률 값과 비교하고, 비교 결과에 기초하여, 상기 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최종 압축률 값을 결정할 수 있다.
일 실시 예에서, 상기 프로세서는 상기 획득된 압축률 값이 상기 제2 압축률 값 보다 작고, 상기 제1 압축률 값이 상기 제2 압축률 값 보다 큰 경우, 상기 영상에 포함되는 복수의 CTU(Coding Tree Unit) 중 상기 타겟 객체가 검출되지 않은 적어도 하나의 CTU의 압축률을 조절(adjust)할 수 있다.
상술한 기술적 과제를 해결하기 위하여, 본 개시의 다른 실시예는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다.
도 1은 본 개시의 일 실시예에 따른 디바이스에 의해 수행되는 영상 처리 동작들을 설명하기 위한 개념도이다.
도 2는 본 개시의 일 실시예에 따른 디바이스가 원본 영상으로부터 압축률을 결정하고, 원본 영상 및 결정된 압축률 정보를 저장하는 방법을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 디바이스의 구성을 도시한 블록도이다.
도 4는 본 개시의 일 실시예에 따른 디바이스의 동작 방법을 도시한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 디바이스가 원본 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 결정하는 방법을 도시한 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 디바이스가 복원 영상에서의 타겟 객체 인식 여부를 판단하는 방법을 도시한 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 디바이스가 타겟 객체의 인식 여부 판단 결과에 기초하여, 영상의 압축률을 결정하는 방법을 도시한 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 디바이스가 CTU(Coding Tree Unit) 별로 서로 다른 압축률을 결정하는 실시예를 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른 디바이스가 CTU(Coding Tree Unit) 별로 서로 다른 압축률을 결정하는 방법을 도시한 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 디바이스가 심층 신경망 모델을 통해 결정된 압축률 값을 네트워크 대역폭에 따른 압축률 값 및 초기 설정된 압축률 값과 비교하고, 비교 결과에 기초하여 최종 압축률 값을 결정하는 방법을 도시한 흐름도이다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시에서 '영상'은 단일 이미지 또는 적어도 하나의 프레임을 포함하는 동영상(video)를 의미한다. 예를 들어, 영상은 카메라를 통한 촬영을 통해 획득하거나, 네트워크를 통해 획득될 수 있다.
본 개시에서 '원본 영상(Raw image)'은 카메라를 통해 촬영되거나 또는 네트워크를 통해 획득한 영상을 압축하지 않은 비압축 영상 데이터이다.
본 개시에서 '압축률'은 표준 규격에 매칭되는 방법을 이용하여 원본 영상을 압축하기 위한 영상 압축 파라미터를 나타낸다. 압축률은 표준 규격 마다 다양한 형태로 존재할 수 있다. 예를 들어, 정적 영상을 압축하는 표준 규격(예를 들어, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등)에서는 영상의 압축률을 결정하기 위하여 양자화 테이블(Quantization Table)이 이용될 수 있다. 다른 예를 들어, 동적 영상을 재생하기 위한 표준 규격(예를 들어, H. 264/AVC, HEVC(H.265) 등)에서는 양자화 파라미터(Quantization Parameter)에 기초하여 영상의 압축률이 결정될 수 있다.
본 개시에서 '양자화 파라미터'는 동적 영상의 압축과 관련된 표준 규격(예를 들어 H.264/AVC, 또는 HEVC(H.265))에서 정의되는 변환 계수를 양자화하는 정도를 나타내는 파라미터로서, 양자화 파라미터에 의해 영상의 압축률이 결정될 수 있다. 일 실시예에서, 압축률은 양자화 파라미터의 값에 비례한다. 예를 들어, 양자화 파라미터의 값이 큰 경우, 압축률이 높고, 양자화 파라미터의 값이 작은 경우, 압축률이 낮다.
본 개시에서, '변환 계수(transform coefficient)'는 복수의 영상 프레임에서 공간적 상관 관계를 이용하는 인트라(intra) 예측 또는 시간적 상관 관계를 이용하는 인터(inter) 예측을 통해 형성된 예측 영상 프레임(I-frame)과 원 영상의 차이값인 잔차 데이터(residual date)가 다양한 변환 기법을 이용하여 변환 영역(transform domain)으로 변환된 계수를 의미한다. H. 264/AVC에서 변환 계수가 변환되는 방법은, 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT), 하다마드 변환(Hadamard Transform) 등이 사용될 수 있다.
도 1은 본 개시의 일 실시예에 따른 디바이스에 의해 수행되는 영상 처리 동작들을 설명하기 위한 개념도이다.
도 1을 참조하면, 영상 처리 단계는 심층 신경망 모델(1340)을 이용하는 학습 단계(S100) 및 심층 신경망 모델(1340) 적용하여 압축률을 획득하는 단계(S200)를 포함할 수 있다.
심층 신경망 모델 학습 단계(S100)는 원본 영상(io)으로부터 학습 데이터를 생성하는 단계, 생성된 학습 데이터를 학습 데이터 저장부(1410)에 저장하는 단계, 학습 데이터를 이용하여 심층 신경망 모델(1340)을 학습(training)하는 단계 및 학습을 통해 획득된 심층 신경망 모델(1340)의 모델 파라미터를 모델 파라미터 저장부(1420)에 저장하는 단계를 포함할 수 있다.
학습 데이터 생성 모듈(1320)은 원본 영상(io)을 입력받고, 원본 영상(io)으로부터 타겟 객체를 포함하는 관심 영역 이미지(io-R), 원본 영상(io)으로부터 타겟 객체를 검출하기 위한 특징 맵(if1, if2), 및 원본 영상(io)으로부터 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값(QP)을 출력하도록 구성될 수 있다. 여기서, '타겟 객체(target object)'는 사용자가 영상으로부터 검출하고자 하는 관심있는 객체를 의미한다. 타겟 객체는 예를 들어, 사람의 얼굴, 헤어, 옷, 및 포즈(posture) 중 적어도 하나를 포함할 수 있다.
특징 맵(if1, if2)은 원본 영상(io)으로부터 타겟 객체를 검출하기 위하여 추출되는 특징 벡터를 포함하는 이미지이다. 특징 맵(if1, if2)은 하나 또는 복수 개일 수 있다. 특징 맵은 예를 들어, 엣지 맵(edge map), 블러 이미지(blur image), 또는 원형 맵 중 적어도 하나를 포함할 수 있다. 특징 맵(if1, if2)은 공지의 이미지 처리 기술(image processing) 또는 딥 러닝(Deep Learning) 기반의 신경망 모델(neural network)을 이용하는 학습을 통해 획득될 수 있다. 일 실시예에서, 컨볼루션 신경망 모델을 이용하는 경우, 디바이스는 원본 영상(io)을 기설정된 크기 및 채널(channel) 수를 갖는 필터(filter)를 통해 합성 곱(convolution)을 산출하고, 합성 곱을 통해 필터의 개수와 동일한 2차원 이미지 레이어(layer)를 추출하고, 2D 이미지 레이어로 구성된 특징 맵(if1, if2)을 획득할 수 있다.
학습 데이터 생성 모듈(1320)은 원본 영상(io) 및 원본 영상(io)을 기설정된 압축률로 압축하고, 부호화 및 복호화함으로써 생성된 복원 영상으로부터 타겟 객체를 정상적으로 인식할 수 있는 최적의 압축률 값(QP)을 결정할 수 있다. '타겟 객체를 정상적으로 인식할 수 있는 최적의 압축률'은 타겟 객체의 인식 오류율(error rate)을 기 설정된 오류율 미만으로 유지할 수 있는 최소의 압축률 값을 의미한다. 일 실시예에서, 학습 데이터 생성 모듈(1320)은 원본 영상(io) 및 복원 영상 각각으로부터 타겟 객체를 검출하고, 검출된 타겟 객체로부터 특징 벡터를 추출하며, 원본 영상(io)으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 원본 영상(io)으로부터 추출된 제1 특징 벡터와 복원 영상으로부터 추출된 제2 특징 벡터 간의 유사도 정보를 이용하여, 원본 영상(io)으로부터 타겟 객체를 정상적으로 인식할 수 있는 최적의 압축률 값(QP)을 결정할 수 있다.
여기서, '압축률'은 원본 영상(io)을 표준 규격에 매칭되는 방법을 이용하여 인코딩하기 위한 영상 압축 파라미터를 의미한다. 압축률은 표준 규격 마다 다양한 형태로 존재할 수 있다. 예를 들어, 정적 영상을 압축하는 표준 규격(예를 들어, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등)에서는 영상의 압축 정도를 결정하기 위하여 양자화 테이블(Quantization Table)이 이용될 수 있다. 다른 예를 들어, 동적 영상을 재생하기 위한 표준 규격(예를 들어, H. 264/AVC, HEVC(H.265) 등)에서는 양자화 파라미터(Quantization Parameter)에 기초하여 영상의 압축률이 결정될 수 있다.
'양자화 파라미터'는 정적 영상의 압축과 관련된 표준 규격(예를 들어, JPEG) 또는 동적 영상의 압축과 관련된 표준 규격(예를 들어 H.264/AVC, 또는 HEVC(H.265))에서 정의되는 변환 계수를 양자화하는 정도를 나타내는 파라미터로서, 양자화 파라미터에 의해 영상의 압축률이 결정될 수 있다. 일 실시예에서, 압축률은 양자화 파라미터의 값에 비례한다. 예를 들어, 양자화 파라미터의 값이 큰 경우, 압축률이 높고, 양자화 파라미터의 값이 작은 경우, 압축률이 낮다.
'타겟 객체를 정상적으로 인식할 수 있는 최적의 압축률'은 타겟 객체의 검출 과정에서 오류 율(error rate)을 기 설정된 임계치 미만으로 발생시키기 위한 최적의 압축률 값을 의미한다. 도 1에 도시된 실시예에서, 원본 영상(io)으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률(QP)의 값은 36일 수 있다.
일 실시예에서, 학습 데이터 생성 모듈(1320)은 타겟 객체 검출 모듈(1321, 도 2 참조), 특징 벡터 추출 모듈(1322, 도 2 참조), 중첩도 산출 모듈(1323, 도 2 참조), 유사도 산출 모듈(1324, 도 2 참조), 인식 결과 판단 모듈(1325, 도 2 참조), 및 압축률 조절 모듈(1326, 도 2 참조)을 포함할 수 있다. 학습 데이터 생성 모듈(1320)이 원본 영상(io)으로부터 타겟 객체를 정상적으로 인식할 수 있는 최적의 압축률 값을 결정하는 구체적인 실시예에 대해서는, 도 2에서 상세하게 설명하기로 한다.
학습 데이터 생성 모듈(1320)은 전술한 동작들을 기 획득된 복수의 원본 영상(io-1 내지 io-n)에 대하여 각각 수행함으로써, 복수의 원본 영상(io-1 내지 io-n) 각각으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률 값(QP1 내지 QPn)을 결정할 수 있다. 일 실시예에서, 복수의 원본 영상(io-1 내지 io-n)은 타겟 객체를 포함하는 관심 영역 이미지일 수 있다. 복수의 원본 영상(io-1 내지 io-n)과 학습 데이터 생성 모듈(1320)에 의해 획득된 복수의 특징 맵(if-1 내지 if-n) 및 복수의 압축률 값(QP1 내지 QPn)은 학습 데이터 저장부(1410)에 저장될 수 있다. 일 실시예에서, 복수의 원본 영상(io-1 내지 io-n), 복수의 특징 맵(if-1 내지 if-n) 및 복수의 압축률 값(QP1 내지 QPn)은 키(key)-밸류(value) 타입으로 학습 데이터 저장부(1410)에 저장될 수 있다. 즉, 복수의 원본 영상(io-1 내지 io-n), 복수의 특징 맵(if-1 내지 if-n) 및 복수의 압축률 값(QP1 내지 QPn)은 관련되는 정보들끼리 쌍(pair)을 형성하여 학습 데이터 저장부(1410)에 저장될 수 있다. 예를 들어, 제1 원본 영상(io-1) 및 제1 원본 영상(io-1)으로부터 추출된 제1 특징 맵(if-1)은 키로서, 제1 원본 영상(io-1)로부터 결정된 제1 압축률 값(QP1)은 밸류로서 페어링(pairing)되어 학습 데이터 저장부(1410)에 저장될 수 있다. 마찬가지로, 제2 원본 영상(io-2) 및 제2 원본 영상(io-2)으로부터 추출된 제2 특징 맵(if-2)은 키로서, 제2 원본 영상(io-2)로부터 결정된 제2 압축률 값(QP2)은 밸류로서, 페어링(pairing)되어 학습 데이터 저장부(1410)에 저장될 수 있다.
심층 신경망 모델(1340)은 학습 데이터 저장부(1410)로부터 제공받은 학습 데이터를 이용하는 학습(training)을 수행하도록 구성되는 인공지능 모델이다. 일 실시예에서, 심층 신경망 모델(1340)은 학습 데이터 저장부(1410)에 기 저장된 복수의 원본 영상(io-1 내지 io-n) 및 복수의 특징 맵(if-1 내지 if-n)을 입력으로 적용하고, 복수의 압축률 값(QP1 내지 QPn)에 관한 라벨(label)을 정답값(ground-truth)로 적용하는 지도 학습(supervised learning)을 수행할 수 있다. 일 실시예에서, 심층 신경망 모델(1340)은 연산을 수행하는 내부의 레이어(layer)인 복수의 은닉 레이어(hidden layer)를 포함할 수 있다. 심층 신경망 모델(1340)은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), 제한 볼츠만 머신(Restricted Boltzmann Machine; RBM), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. 그러나, 심층 신경망 모델(1340)이 전술한 예시로 한정되는 것은 아니고, 공지의 모든 딥 러닝(Deep Learning) 기반의 신경망 모델을 포함할 수 있다.
심층 신경망 모델(1340)이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 학습 단계(단계 S100)에서 기설정된 크기 및 기설정된 채널 수를 갖는 필터(filter)을 이용하여 입력으로 적용된 복수의 원본 영상(io-1 내지 io-n)을 이동함(stride)으로써 특징 값들을 추출하고, 추출된 특징 값들을 포함하는 복수 개의 레이어(layer)를 획득하며, 복수 개의 레이어에 가중치(weight)를 적용함으로써 특징 벡터 맵(feature vector map)을 획득할 수 있다. 상기 특징 벡터 맵을 획득하는 과정에서 정류 선형 유닛(Rectified Linear Unit, ReLU) 모델이 이용되고, 효율을 향상시키기 위하여 드롭 아웃(drop out)을 통해 학습 모델을 정칙화(regularization)하고, 풀링(pooling) 또는 맥스 풀링(max pooling)을 수행하는 동작들이 더 추가될 수 있다. 이어서, 풀링 또는 맥스 풀링을 통해 획득된 특징값들은 fully connected layer를 통해 통합되고, 소프트맥스(softmax), 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent)를 포함하는 활성 함수(activation function)를 통해 압축률 값과 관련된 라벨을 출력하도록 학습될 수 있다.
심층 신경망 모델(1340)은 학습을 통해, 모델 파라미터를 획득할 수 있다. 일 실시예에서, 심층 신경망 모델(1340)이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 심층 신경망 모델(1340)은 지도 학습을 통해 복수의 레이어 간 가중치(weight)(1420w) 및 편향(bias)(1420b)을 포함하는 모델 파라미터를 획득할 수 있다. 여기서, '가중치(1420w)'와 '편향(1420b)'은 입력 데이터(복수의 원본 영상 및 복수의 특징 맵)로부터 출력 라벨(압축률 값)을 추론하기 위한 매개 변수로서, 학습이 수행됨에 따라 값이 조정(adjust)될 수 있다. 심층 신경망 모델(1340)의 학습을 통해 획득된 가중치(1420w) 및 편향(1420b)은 모델 파라미터 저장부(1420)에 저장될 수 있다.
심층 신경망 모델(1340) 이용하여 압축률 획득 단계(S200)에서, 디바이스는 카메라 또는 네트워크를 통해 영상(i)을 입력받는 단계, 심층 신경망 모델(1340)을 이용하여 영상(i)으로부터 압축률을 출력하는 단계, 및 출력된 압축률을 이용하여 영상(i)을 압축하고 부호화함으로써 비트스트림을 생성하는 단계를 포함할 수 있다.
영상(i)은 전처리 모듈(1330)에 입력되고, 전처리 모듈(1330)은 입력된 영상(i)에 대하여 전처리(pre-processing)를 수행한다. 전처리 모듈(1330)은 입력된 영상(i)의 크기를 기 설정된 크기로 조절(resize)하고, 영상(i)의 밝기 및 대조도(contrast)를 정규화(normalize)하도록 구성될 수 있다. 전처리 모듈(1330)을 통해 전처리가 완료된 영상은 타겟 객체 검출 모듈(1321)로 입력될 수 있다.
타겟 객체 검출 모듈(1321)은 영상으로부터 타겟 객체를 검출하도록 구성되는 모듈이다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 딥 러닝(Deep Learning)을 포함하는 인공 지능 모델을 이용하여 영상(i)으로부터 타겟 객체를 검출하도록 구성될 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 컨볼루션 신경망 모델(CNN)을 이용하여 학습을 수행함으로써 영상(i)으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 타겟 객체 검출 모듈(1321)은 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 동적 영상으로부터 사람의 얼굴을 검출할 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 VGGFace2 데이터 셋을 이용하여 얼굴 인식을 수행하도록 기 학습된 MobileNet을 포함할 수 있다.
타겟 객체 검출 모듈(1321)은 영상(i)으로부터 타겟 객체를 검출하는 과정에서 특징 맵(if)을 출력할 수 있다. '특징 맵(if)'은 영상(i)으로부터 타겟 객체를 검출하기 위하여 추출되는 특징 벡터를 포함하는 이미지로서, 예를 들어, 엣지 맵(edge map), 블러 이미지(blur image), 또는 원형 맵 중 적어도 하나를 포함할 수 있다.
심층 신경망 모델(1340)은, 카메라 또는 네트워크를 통해 획득된 영상(i) 및 영상(i)으로부터 추출된 특징 맵(if)을 입력으로 적용하는 학습(training)을 수행함으로써, 영상(i)으로부터 타겟 객체를 정상적으로 인식할 수 있는 압축률을 출력할 수 있다. 심층 신경망 모델(1340)은 모델 파라미터 저장부(1420)로부터 기 학습된(pre-trained) 모델 파라미터를 제공받고, 제공받은 모델 파라미터를 입력되는 영상(i) 및 특징 맵(if)에 적용함으로써, 압축률 값을 출력할 수 있다. 도 1에 도시된 실시예에서, 영상(i)으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률의 값은 34일 수 있다. 심층 신경망 모델(1340)은 출력된 압축률 정보를 인코딩 모듈(1312)에 제공할 수 있다.
인코딩 모듈(1312)은 입력된 영상(i)을 압축하고, 부호화함으로써, 부호화된 비트스트림을 생성하도록 구성된다. 일 실시예에서, 인코딩 모듈(1312)는 원본 영상으로부터 인터 예측(inter prediction) 및 인트라 예측(intra prediction)을 통해 예측 데이터를 획득하고, 원본 영상으로부터 예측 데이터를 뺀 잔차 데이터(residual date)를 획득하고, 잔차 데이터에 대하여 변환 및 양자화를 수행함으로써 부호화된 영상 데이터를 획득할 수 있다. 예를 들어, 부호화된 영상 데이터는 양자화된 변환 계수(transform coefficient)일 수 있다.
인코딩 모듈(1312)은 General code control 모듈(1312a) 및 변환, 스케일링 및 양자화 모듈(1312b)을 포함할 수 있다. General code control 모듈(1312a)은 인코딩할 데이터에 관한 인코딩 파라미터(encoding parameter)를 설정하도록 구성되는 모듈이다. 변환, 스케일링 및 양자화 모듈(Transform, Scaling, Quantization)(1312b)은 영상(i)에 포함되는 일정 크기의 블록(block)을 변환 계수(transform coefficient)를 이용하여 변환할 수 있다. 일 실시예에서, 변환, 스케일링 및 양자화 모듈(1312b)은 General code control 모듈(1312a)로부터 획득한 정보에 기초하여 discrete cosine transform (DCT) 및 discrete sine transform (DST)를 사용하여 블록을 변환할 수 있다. 예를 들어, 블록의 크기는 4×4 내지 32×32 사이의 크기로 구성될 수 있다. 일 실시예에서, 변환, 스케일링 및 양자화 모듈(1312b)은 변환 계수(transform coefficient)의 정규화(normalization) 값을 1보다 크게 설정하고, 이에 따라 인코딩된 영상의 값 크기를 스케일링할 수 있다. 일 실시예에서, 변환, 스케일링 및 양자화 모듈(1312b)은 변환된 데이터를 압축률 값에 기초하여, 양자화할 수 있다.
일 실시예에서, 인코딩 모듈(1312)은 심층 신경망 모델(1340)로부터 출력된 압축률 정보(도 2의 실시예에서, 압축률의 값은 34)를 이용하여 영상(i)을 압축하고, 부호화함으로써 비트스트림을 생성할 수 있다.
일 실시예에서, 생성된 비트스트림은 통신 인터페이스(1500, 도 3 참조)를 통해 외부 서버(2000) 또는 타 디바이스로 전송될 수 있다.
일반적인 디바이스는 저장 용량 또는 네트워크 대역폭의 한계로 인하여 카메라를 이용하여 촬영된 영상 또는 비디오를 표준 규격에 따른 압축 방법(예를 들어, JPEG, H.264/AVC, HEVC(H.265) 등)을 이용하여 압축하고, 부호화함으로써 서버(2000)에 전송한다. 이 경우, 압축률을 과도하게 높게 설정하여 인코딩을 하는 경우 영상이 열화(degrading)되어 인식하여야 하는 사람의 얼굴, 헤어 스타일, 옷 차림, 등을 인식할 수 없게 되는 문제점이 있다. 또한, 제한적인 네트워크 대역폭, 네트워크의 불안정성으로 인한 데이터 패킷(packet) 손실, 인코딩 단계에서의 오류, 또는 UDP 환경에서 데이터 패킷 손실 등 예외 상황에서 디코딩된 영상 프레임이 열화되고, 열화된 영상 프레임으로부터 사람의 얼굴 등을 인식할 수 없는 문제점이 있다. 열화된 영상 프레임으로부터 사람의 얼굴을 인식하지 못하는 경우, 다른 사람으로 오 인식되고, 비(非) 인가자를 추적하기 어려운 문제가 발생된다. 사람의 얼굴, 헤어 스타일, 옷 차림 등을 포함하는 타겟 객체를 오류없이 정확하게 인식하기 위해서는, 영상 또는 비디오를 압축하기 위한 최적의 압축률을 결정할 필요가 있다. 그러나, 최적의 압축률을 결정하기 위해서는 서로 다른 압축률 값을 이용하여 영상 또는 비디오를 압축하고, 부호화한 이후, 복호화된 복원 영상으로부터 타겟 객체가 인식되었는지, 또는 오류율은 얼마인지를 측정해야 하므로, 처리 시간(processing time)이 많이 소요되고, 연산량도 많아서 효율이 저하되는 문제점이 있다.
도 1에 도시된 실시예에 따른 디바이스는 전술한 문제점, 즉 제한적인 네트워크 대역폭, 네트워의 불안정성, 인코딩 단계에서의 오류, UDP 환경에서 데이터 패킷 손실 등의 예외 상황에서도 특정 타겟 객체(예를 들어, 얼굴, 헤어 스타일, 옷, 포즈 등)의 인식률을 높이기 위하여, 심층 신경망 모델(1340)을 이용하는 방법을 제공한다. 본 개시의 일 실시예에 따른 디바이스는 복수의 원본 영상(io-1 내지 io-n)과 복수의 원본 영상(io-1 내지 io-n)으로부터 타겟 객체가 정상적으로 인식되는 압축률(QP1 내지 QPn) 정보를 이용하여 심층 신경망 모델(1340)을 학습(training)시키고, 기 학습된 심층 신경망 모델(1340)을 이용하여 입력 영상(i)에 관한 타겟 객체의 인식에 최적화된 압축률 값을 출력할 수 있다. 본 개시는 학습 단계(S100)를 통해 미리 학습된 심층 신경망 모델(1340)을 이용하는바, 불필요한 처리 시간을 감소시킬 수 있고, 디바이스의 프로세서에 의해 수행되는 연산량도 감소시킬 수 있다.
또한, 본 개시의 디바이스는, 타겟 객체, 예를 들어 사람의 얼굴의 인식률을 현저하게 향상시키고, 오 인식률을 감소시킬 수 있다.
도 2는 본 개시의 일 실시예에 따른 디바이스가 원본 영상으로부터 압축률을 결정하고, 원본 영상 및 결정된 압축률 정보를 저장하는 방법을 도시한 도면이다.
도 2를 참조하면, 원본 영상(io)은 타겟 객체 검출 모듈(1321) 및 인코딩 모듈(1312)로 각각 입력될 수 있다. 원본 영상(io)은 카메라 또는 네트워크를 통해 획득될 수 있다.
원본 영상(io)은 타겟 객체 검출 모듈(1321)에 입력되고, 타겟 객체 검출 모듈(1321)은 원본 영상(io)으로부터 타겟 객체를 검출할 수 있다. 일 실시예에서, 타겟 객체는 사람의 얼굴, 헤어 스타일, 옷, 및 포즈(posture) 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않는다.
타겟 객체 검출 모듈(1321)은 원본 영상(io)로부터 타겟 객체를 검출하도록 구성된다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 딥 러닝(Deep Learning)을 포함하는 인공 지능 모델을 이용하여 원본 영상(io)으로부터 타겟 객체를 검출하도록 구성될 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 컨볼루션 신경망 모델(CNN)을 이용하여 학습을 수행함으로써 원본 영상(io)으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 타겟 객체 검출 모듈(1321)은 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 동적 영상으로부터 사람의 얼굴을 검출할 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 VGGFace2 데이터 셋을 이용하여 얼굴 인식을 수행하도록 기 학습된 MobileNet을 포함할 수 있다.
타겟 객체 검출 모듈(1321)은 원본 영상(io)으로부터 타겟 객체를 검출하는 과정에서 적어도 하나의 특징 맵(if1, if2)을 출력할 수 있다. '특징 맵(if1, if2)'은 원본 영상(io)으로부터 타겟 객체를 검출하기 위하여 추출되는 특징 벡터를 포함하는 이미지로서, 예를 들어, 엣지 맵(edge map), 블러 이미지(blur image), 또는 원형 맵 중 적어도 하나를 포함할 수 있다.
타겟 객체 검출 모듈(1321)은 원본 영상(io)으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역(R1)을 검출할 수 있다. 제1 관심 영역(R1)은 타겟 객체 이미지, 예를 들어 사람의 얼굴을 포함하는 바운딩 박스일 수 있다.
타겟 객체 검출 모듈(1321)은 검출된 제1 관심 영역(R1)의 이미지 및 검출된 적어도 하나의 특징 맵(if1, if2)을 학습 데이터 저장부(1410)에 제공할 수 있다. 학습 데이터 저장부(1410)는 제1 관심 영역(R1)의 이미지 및 적어도 하나의 특징 맵(if1, if2)을 학습 데이터로서 저장할 수 있다.
원본 영상(io)으로부터 검출된 타겟 객체는 특징 벡터 추출 모듈(1322)에 입력되고, 특징 벡터 추출 모듈(1322)은 타겟 객체 이미지로부터 제1 특징 벡터(f1)를 추출할 수 있다. 제1 특징 벡터(f1)는 예를 들어, 사람의 얼굴의 눈, 코, 입과 같은 랜드마크에 대응되는 특징값들을 포함하는 벡터일 수 있다. 그러나, 이에 한정되는 것은 아니고, 제1 특징 벡터(f1)는 사람의 헤어 스타일, 옷 차림, 또는 특정 자세로부터 추출된 적어도 하나의 키 포인트(key-points)에 대응되는 특징값들을 포함하는 벡터일 수 있다.
원본 영상(io)으로부터 검출된 제1 관심 영역(R1)의 이미지는 중첩도 산출 모듈(1323)에 입력되고, 타겟 객체로부터 추출된 제1 특징 벡터(f1)는 유사도 산출 모듈(1324)에 입력될 수 있다.
원본 영상(io)이 인코딩 모듈(1312)에 입력되는 경우, 인코딩 모듈(1312)은 기설정된 압축률(QP0)을 이용하여 원본 영상(io)를 압축하고, 부호화함으로써 부호화된 영상 데이터를 출력할 수 있다. 일 실시예에서, 부호화된 영상 데이터는 양자화된 변환 계수일 수 있다.
부호화된 영상 데이터는 디코딩 모듈(1314)에 입력되고, 디코딩 모듈(1314)은 부호화된 영상 데이터를 역 양자화 및 역 변환함으로써 잔차 데이터(residual data)를 복원하고, 복원된 잔차 데이터와 인터 예측 및 인트라 예측을 통해 획득한 예측 데이터를 더함으로써 복원 영상(irecon)을 획득할 수 있다.
복원 영상(irecon)은 타겟 객체 검출 모듈(1321)에 입력되고, 타겟 객체 검출 모듈(1321)은 복원 영상(irecon)으로부터 타겟 객체를 검출할 수 있다. 복원 영상(irecon)으로부터 검출된 타겟 객체는, 원본 영상(io)으로부터 검출된 타겟 객체와 동일할 수 있으나, 타겟 객체의 이미지의 해상도, 선예도 등 이미지 품질은 원본 영상(io)으로부터 검출된 타겟 객체 이미지 보다 낮을 수 있다. 타겟 객체 검출 모듈(1321)은 복원 영상(irecon)으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역(R2)을 검출할 수 있다. 제2 관심 영역(R2)은 타겟 객체 이미지, 예를 들어 사람의 얼굴을 포함하는 바운딩 박스일 수 있다.
복원 영상(irecon)으로부터 검출된 타겟 객체는 특징 벡터 추출 모듈(1322)에 입력되고, 특징 벡터 추출 모듈(1322)은 복원 영상(irecon)에서 검출된 타겟 객체 이미지로부터 제2 특징 벡터(f2)를 추출할 수 있다. 제2 특징 벡터(f2)는 복원 영상(irecon)에서 검출된 타겟 객체 이미지로부터 추출되었다는 점을 제외하고는 제1 특징 벡터(f1)와 동일한 바, 중복되는 설명은 생략한다.
복원 영상(irecon)으로부터 검출된 제2 관심 영역(R2)의 이미지는 중첩도 산출 모듈(1323)에 입력되고, 타겟 객체로부터 추출된 제2 특징 벡터(f2)는 유사도 산출 모듈(1324)에 입력될 수 있다.
중첩도 산출 모듈(1323)은 제1 관심 영역(R1)의 바운딩 박스 좌표값 정보 및 제2 관심 영역(R2)의 바운딩 박스 좌표값 정보에 기초하여, 제1 관심 영역(R1)과 제2 관심 영역(R2) 간의 중첩도를 산출할 수 있다. 일 실시예에서, 중첩도 산출 모듈(1323)은 IOU(Intersection Over Union) 방식을 이용하여 제1 관심 영역(R1)과 제2 관심 영역(R2) 간의 중첩도를 계산할 수 있다. 중첩도 산출 모듈(1323)은 계산된 중첩도 값의 정보를 인식 결과 판단 모듈(1325)에 제공할 수 있다.
유사도 산출 모듈(1324)은 제1 특징 벡터(f1)와 제2 특징 벡터(f2) 간의 유사도를 계산할 수 있다. 일 실시예에서, 유사도 산출 모듈(1324)은 제1 특징 벡터(f1)와 제2 특징 벡터(f2) 간의 상관 관계(correlation)를 수치값으로 나타내는 유사도를 계산하고, 계산된 유사도 값의 정보를 인식 결과 판단 모듈(1325)에 제공할 수 있다.
인식 결과 판단 모듈(1325)은 중첩도 산출 모듈(1323)로부터 입력된 중첩도(R1, R2) 및 유사도 산출 모듈(1324)로부터 입력된 유사도(f1, f2) 값을 이용하여, 타겟 객체가 정상적으로 인식되었는지 판단하도록 구성된다. 일 실시예에서, 인식 결과 판단 모듈(1325)은 중첩도(R1, R2) 값을 제1 임계치와 비교하고, 유사도(f1, f2) 값을 제2 임계치와 비교함으로써, 복원 영상(irecon)으로부터 타겟 객체가 정상적으로 인식되었는지 여부를 판단할 수 있다.
예를 들어, 인식 결과 판단 모듈(1325)은 중첩도(R1, R2) 값이 제1 임계치 이하이거나, 또는 유사도(f1, f2) 값이 제2 임계치 이하인 경우, 복원 영상(irecon)으로부터 타겟 객체가 정상적으로 인식되지 않았다고 판단한다. 이 경우, 인식 결과 판단 모듈(1325)은 타겟 객체 인식 여부에 관한 판단 결과를 압축률 조절 모듈(1326)에 제공한다.
압축률 조절 모듈(1326)은 인식 결과 판단 모듈(1325)로부터 타겟 객체가 정상적으로 인식되지 않았다는 판단 결과가 입력되면, 압축률을 복원 영상(irecon)을 획득하는데 이용된 기설정된 압축률(QP0)의 값보다 낮은 제1 압축률(QP1)로 조절할 수 있다. 압축률 조절 모듈(1326)은 조절된 압축률인 제1 압축률(QP1)의 값에 관한 정보를 인코딩 모듈(1312)에 제공할 수 있다.
인코딩 모듈(1312)은 압축률 조절 모듈(1326)로부터 입력받은 제1 압축률(QP1) 값을 이용하여, 원본 영상(io)을 압축하고, 부호화함으로써 부호화된 영상 데이터를 획득할 수 있다. 디코딩 모듈(1314), 타겟 객체 검출 모듈(1321), 특징 벡터 추출 모듈(1322), 중첩도 산출 모듈(1323), 유사도 산출 모듈(1324), 인식 결과 판단 모듈(1325), 및 압축률 조절 모듈(1326)이 수행하는 동작들은 제1 압축률(QP1)을 통해 압축되고 부호화된 영상 데이터가 입력됨에 따라 반복적으로 수행될 수 있다.
다른 예를 들어, 인식 결과 판단 모듈(1325)은 중첩도(R1, R2) 값이 제1 임계치를 초과하고, 유사도(f1, f2) 값이 제2 임계치를 초과하는 경우, 복원 영상(irecon)으로부터 타겟 객체가 정상적으로 인식되었다고 판단한다. 이 경우, 인식 결과 판단 모듈(1325)은 압축률(QPk)의 값을 타겟 객체가 정상적으로 인식되는 최적의 압축률 값으로 결정할 수 있다. 인식 결과 판단 모듈(1325)은 결정된 압축률(QPk) 값의 정보를 학습 데이터 저장부(1410)에 제공하고, 학습 데이터 저장부(1410)는 압축률(QPk) 값을 저장할 수 있다.
디바이스는 도 2에 도시된 방법을 기 획득된 복수의 원본 영상에 대하여 수행함으로써, 복수의 원본 영상, 복수의 원본 영상으로부터 추출된 복수의 특징 맵, 및 복수의 원본 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값을 획득하고, 학습 데이터 저장부(1410)에 저장할 수 있다.
디바이스는 학습 데이터 저장부(1410)에 저장된 복수의 원본 영상 및 복수의 특징 맵을 심층 신경망 모델(1340, 도 1 참조)에 입력으로 적용하고, 복수의 압축률에 관한 라벨(label)을 정답값(ground-truth)으로 적용하는 학습(training)을 수행할 수 있다.
도 3은 본 개시의 일 실시예에 따른 디바이스(1000)의 구성 요소를 도시한 블록도이다.
디바이스(1000)는 카메라(1100) 또는 통신 인터페이스(1500)를 통해 획득된 영상을 처리하고, 각종 연산을 수행하는 전자 장치이다. 디바이스(1000)는 예를 들어, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 웨어러블 장치(wearable device), 또는 IP 카메라 중 적어도 하나일 수 있다.
도 3을 참조하면, 디바이스(1000)는 카메라(1100), 프로세서(1200), 메모리(1300), 학습 데이터 저장부(1410), 모델 파라미터 저장부(1420), 및 통신 인터페이스(1500)를 포함할 수 있다.
카메라(1100)는 렌즈(1110)를 이용하여 대상 영역 또는 대상 객체를 촬영함으로써, 영상을 획득하도록 구성된다. 카메라(1100)는 렌즈(1110) 및 이미징 센서(1120)를 포함할 수 있다.
이미징 센서(1120)는 렌즈(1110)를 통해 촬영되는 대상 영역 또는 대상 객체에 관한 영상을 획득할 수 있다. 이미징 센서(1120)를 통해 획득된 영상은 압축되지 않은 비압축 영상 데이터로서, 원본 영상(raw image)이다. 이미징 센서(1120)는 광 다이오드 어레이를 포함할 수 있다. 이미징 센서(1120)는 예를 들어, CCD 모듈(Charge-coupled device) 또는 CMOS(Complementary Metal-Oxide-Semiconductor) 모듈로 구성될 수 있지만, 이에 한정되는 것은 아니다. 도 3에는 이미징 센서(1120)가 하나로 도시되어 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, 이미징 센서(1120)는 하나 이상의 복수 개로 구성될 수도 있다.
프로세서(1200)는, 메모리(1300)에 저장된 프로그램의 하나 이상의 명령어들(instructions) 또는 프로그램 코드(program code)를 실행할 수 있다. 프로세서(1200)는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소로 구성될 수 있다. 프로세서(1200)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 한정되는 것은 아니다.
메모리(1300)는 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나로 구성될 수 있다.
메모리(1300)에는 기 획득된 복수의 원본 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 결정하고, 카메라(1100) 또는 통신 인터페이스(1500)를 통해 입력된 영상을 심층 신경망 모델(1340)에 입력함으로써 압축률을 출력하고, 출력된 압축률을 이용하여 영상을 압축하고 부호화하는 기능 또는 동작의 수행과 관련된 명령어들(instruction)을 포함하는 프로그램이 저장될 수 있다. 메모리(1300)에는 프로세서(1200)가 판독할 수 있는 명령어들, 알고리즘(algorithm), 데이터 구조, 및 프로그램 코드(program code) 중 적어도 하나가 저장될 수 있다. 메모리(1300)에 저장되는 명령어들, 알고리즘, 데이터 구조, 및 프로그램 코드는 예를 들어, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 
메모리(1300)는 인코더(1310), 학습 데이터 생성 모듈(1320), 전처리 모듈(1330), 및 심층 신경망 모델(1340)을 포함할 수 있다. 메모리(1300)에 포함되는 복수의 '모듈'은 프로세서(1200)에 의해 수행되는 기능이나 동작을 처리하는 단위를 의미하고, 이는 명령어들 또는 프로그램 코드와 같은 소프트웨어로 구현될 수 있다.
이하의 실시예에서, 프로세서(1200)는 메모리에 저장된 프로그램의 명령어들 또는 프로그램 코드들을 실행함으로써 구현될 수 있다.
인코더(1310)는 영상을 압축하고, 부호화 및 복호화함으로써 복원 영상을 생성하도록 구성된다. 일 실시예에서, 인코더(1310)는 JPEG, H.264/AVC 및 HEVC(H.265)를 포함하는 영상 압축 표준 규격 중 적어도 하나를 이용하여 원본 영상을 압축하고, 부호화 및 복호화함으로써 복원 영상을 생성할 수 있다.
인코더(1310)는 인코딩 모듈(1312) 및 디코딩 모듈(1314)을 포함할 수 있다. 인코딩 모듈(1312)은 입력된 영상, 즉 원본 영상을 기설정된 압축률을 이용하여 부호화하고, 원본 영상으로부터 부호화된 영상 데이터를 획득하도록 구성될 수 있다. 일 실시예에서, 프로세서(1200)는 인코딩 모듈(1312)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 입력 영상, 즉 원본 영상으로부터 인터 예측 및 인트라 예측을 통해 예측 데이터를 획득하고, 원본 영상으로부터 예측 데이터를 뺀 잔차 데이터(residual date)를 획득하고, 잔차 데이터에 대하여 변환 및 양자화를 수행함으로써 부호화된 영상 데이터를 획득할 수 있다. 예를 들어, 부호화된 영상 데이터는 양자화된 변환 계수(transform coefficient)일 수 있다.
디코딩 모듈(1314)은 부호화된 영상 데이터를 복호화함으로써, 복원 영상을 생성하도록 구성될 수 있다. 일 실시예에서, 프로세서(1200)는 디코딩 모듈(1314)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 부호화된 영상 데이터, 즉 양자화된 변환 계수에 대하여 역 양자화 및 역변환을 수행함으로써 잔차 데이터를 복원하고, 복원된 잔차 데이터와 인터 예측 및 인트라 예측을 통해 획득한 예측 데이터를 더함으로써 복원 영상을 획득할 수 있다.
H.264/ACV 또는 HEVC(H.265)와 같은 영상 압축 표준 규격을 사용하는 경우, 인코더(1310)는 예를 들어, 인터 예측 모듈, 인트라 예측 모듈, 디블록킹 모듈(de-blocking module), 변환 모듈(transform module), 양자화 모듈(quantization module), 역 변환 모듈(inverse transform module), 역 양자화 모듈(inverse quantization module), 엔트로피 부호화 모듈을 포함할 수 있다. 이 경우, 상기 나열되는 모듈들은 인터 예측 및 인트라 예측을 수행하고, 부호화 및 복호화를 수행하는바, 도 3에 도시된 바와 같이 인코딩 모듈(1312)과 디코딩 모듈(1314)로 완전히 구분되지는 않는다.
H.264/AVC 또는 HEVC(H.265)를 이용하여 복원 영상이 생성되는 경우, 복원 영상은 원본 영상을 기설정된 코딩 단위(예를 들어, CTU(Coding Tree Unit)) 에 따라 서로 다른 양자화 파라미터 값을 적용하여 압축, 부호화 및 복호화 될 수 있다. 이 경우, 원본 영상에 포함되는 영상 프레임 내의 복수의 CTU 중 타겟 객체(예를 들어, 사람의 얼굴, 헤어 스타일, 옷, 포즈 등)가 검출된 특정 CTU에는 다른 CTU에 비하여 상대적으로 낮은 양자화 파라미터 값이 적용되어 압축될 수 있다.
학습 데이터 생성 모듈(1320)은 원본 영상을 입력받고, 원본 영상으로부터 학습 데이터를 출력하도록 구성되는 모듈이다. 여기서, '학습 데이터'는 심층 신경망 모델(1340)을 이용하는 학습(training)을 수행하기 위하여 입력 및 출력에 적용되는 데이터를 의미한다. 일 실시예에서, 학습 데이터는 기 획득된 복수의 원본 영상, 복수의 원본 영상 각각으로부터 추출된 복수의 특징 맵 및 복수의 원본 영상 각각으로부터 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률을 포함할 수 있다.
학습 데이터 생성 모듈(1320)은 타겟 객체 검출 모듈(1321), 특징 벡터 추출 모듈(1322), 중첩도 산출 모듈(1323), 유사도 산출 모듈(1324), 인식 결과 판단 모듈(1325), 및 압축률 조절 모듈(1326)을 포함할 수 있다.
타겟 객체 검출 모듈(1321)은 정적 영상(still image) 또는 동적 영상으로부터 타겟 객체를 인식하도록 구성되는 모듈이다. 여기서, '타겟 객체(target object)'는 사용자가 영상으로부터 검출하고자 하는 관심있는 객체를 의미한다. 타겟 객체는 예를 들어, 사람의 얼굴, 헤어, 옷, 및 포즈(posture) 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 딥 러닝(Deep Learning)을 포함하는 인공 지능 모델을 이용하여 입력되는 영상으로부터 타겟 객체를 검출하도록 구성될 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 컨볼루션 신경망 모델(CNN)을 이용하여 학습을 수행함으로써 영상으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 타겟 객체 검출 모듈(1321)은 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 동적 영상으로부터 사람의 얼굴을 검출할 수 있다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 VGGFace2 데이터 셋을 이용하여 얼굴 인식을 수행하도록 기 학습된 MobileNet을 포함할 수 있다.
일 실시예에서, 프로세서(1200)는 타겟 객체 검출 모듈(1321)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 원본 영상 및 복원 영상 각각으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 프로세서(1200)는 컨볼루션 신경망 모델을 통해 기 학습된 모델 파라미터를 이용하여 학습(training)을 수행함으로써, 원본 영상 및 복원 영상 각각으로부터 사람의 얼굴을 검출할 수 있다. 그러나, 이에 한정되는 것은 아니고, 프로세서(1200)는 타겟 객체 검출 모듈(1321)에 포함된 기 학습된 모델 파라미터를 이용하여 학습을 수행함으로써, 원본 영상 및 복원 영상 각각으로부터 사람의 헤어 스타일, 옷, 및 포즈(posture) 중 적어도 하나를 검출할 수 있다.
그러나, 타겟 객체 검출 모듈(1321)이 전술한 방법을 이용하여 타겟 객체를 검출하는 것으로 한정되지는 않는다. 일 실시예에서, 타겟 객체 검출 모듈(1321)은 순환 신경망 모델(Recurrent Neural Network; RNN), SVM(Support Vector Machine), 선형 회귀(linear regression), 로지스틱 회귀(logistic regression), 나이브 베이즈 분류(Naive Bayes), 랜덤 포레스트(random forest), decision tree, 또는 k-nearest neighbor algorithm 중 적어도 하나를 포함하는 인공 지능 모델을 이용하여 동적 영상으로부터 타겟 객체를 인식하도록 구성될 수 있다.
일 실시예에서, 프로세서(1200)는 타겟 객체 검출 모듈(1321)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 영상으로부터 타겟 객체를 검출할 수 있다. 프로세서(1200)는 타겟 객체를 검출하는 과정에서 적어도 하나의 특징 맵(feature map)을 출력할 수 있다. '특징 맵'은 영상으로부터 타겟 객체를 검출하기 위하여 추출되는 특징 벡터를 포함하는 이미지로서, 예를 들어, 엣지 맵(edge map), 블러 이미지(blur image), 또는 원형 맵 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 컨볼루션 신경망 모델을 이용하는 경우, 프로세서(1200)는 원본 영상을 기설정된 크기 및 채널(channel) 수를 갖는 필터(filter)를 이용하여 합성 곱(convolution)을 산출하고, 합성 곱을 통해 필터의 개수와 동일한 2차원 이미지 레이어(layer)를 추출하고, 2D 이미지 레이어로 구성된 적어도 하나의 특징 맵을 획득할 수 있다.
일 실시예에서, 타겟 객체 검출 모듈(1321)은 동적 영상 상에서 검출된 타겟 객체의 바운딩 박스(bounding box)를 식별하고, 식별된 바운딩 박스의 위치 좌표값을 획득하도록 구성될 수 있다. 프로세서(1200)는 타겟 객체 검출 모듈(1321)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 원본 영상으로부터 검출된 타겟 객체의 바운딩 박스를 식별하고, 바운딩 박스 내에 포함된 영역을 제1 관심 영역(Region of Interest)으로 설정할 수 있다. 프로세서(1200)는 타겟 객체 검출 모듈(1321)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 복원 영상으로부터 검출된 타겟 객체의 바운딩 박스를 식별하고, 바운딩 박스 내에 포함된 영역을 제2 관심 영역으로 설정할 수 있다.
특징 벡터 추출 모듈(1322)은 검출된 타겟 객체의 이미지로부터 특징 벡터(feature vector)를 추출하도록 구성되는 모듈이다. 특징 벡터 추출 모듈(1322)은 공지의 영상 처리 방법(image processing method) 또는 딥 러닝을 포함하는 인공 지능 모델을 이용하여 타겟 객체 이미지로부터 특징 벡터를 추출하도록 구성될 수 있다. 예를 들어, 특징 벡터 추출 모듈(1322)은 ICA(Independent Component Analysis) 또는 PCA(Principle Component Analysis) 방법을 이용하여 타겟 객체 이미지로부터 특징 벡터를 추출하도록 구성될 수 있다.
예를 들어, 타겟 객체 이미지가 사람의 얼굴인 경우, 특징 벡터 추출 모듈(1322)은 얼굴의 눈, 코, 및 입(양쪽 입 끝)을 포함하는 랜드마크(landmark)를 식별하고, 식별된 랜드마크에 대응되는 특징값(예를 들어, 위치 좌표값)을 획득하고, 획득된 특징값을 이용하여 특징 벡터를 추출할 수 있다. 다른 예를 들어, 타겟 객체 이미지가 사람의 헤어 스타일, 옷 차림, 또는 특정 자세(posture)인 경우, 특징 벡터 추출 모듈(1322)은 타겟 객체 이미지로부터 적어도 하나의 키 포인트(key-points)를 식별하고, 식별된 키 포인트에 대응되는 특징값(예를 들어, 위치 좌표값)을 획득하고, 획득된 특징값을 이용하여 특징 벡터를 추출할 수 있다.
일 실시예에서, 프로세서(1200)는 특징 벡터 추출 모듈(1322)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 타겟 객체 이미지로부터 특징 벡터를 추출할 수 있다. 일 실시예에서, 프로세서(1200)는 원본 영상으로부터 인식된 타겟 객체의 이미지로부터 제1 특징 벡터를 추출하고, 복원 영상으로부터 인식된 타겟 객체의 이미지로부터 제2 특징 벡터를 추출할 수 있다.
중첩도 산출 모듈(1323)은 두 개 이상의 이미지 간의 중첩되는 정도를 계산하고, 결과값을 출력하도록 구성되는 모듈이다. 중첩도 산출 모듈(1323)은 두 개 이상의 이미지 각각의 바운딩 박스(bounding box)의 좌표값 정보를 획득하고, 바운딩 박스의 좌표값을 이용하여 두 개 이상의 이미지가 겹치는 정도를 비교함으로써, 중첩도를 산출하도록 구성될 수 있다.
일 실시예에서, 중첩도 산출 모듈(1323)은 좌표값 정보를 이용하여 중첩도를 계산하는 IOU(Intersection Over Union) 방식을 이용하여 두 개 이상의 이미지 간의 중첩도를 계산할 수 있다. IOU 방식을 이용하는 중첩도 계산에서, IOU 값이 1인 경우, 두 개의 이미지가 완전히 겹쳐지는 것을 의미하고, IOU 값이 0인 경우, 두 개의 이미지가 전혀 겹쳐지지 않음을 의미한다. 예를 들어, IOU 값이 0.5 인 경우, 두 개의 이미지의 2/3 가 겹쳐지는 것을 의미한다.
일 실시예에서, 중첩도 산출 모듈(1323)은 복수의 이미지 각각의 좌표값 사이의 오차의 합을 계산함으로써, 중첩도를 산출할 수 있다. 예를 들어, 중첩도 산출 모듈(1323)은 하기 수식 1과 같이, 제1 이미지의 좌상단의 좌표값(x11, y11)과 우하단 좌표값(x12, y12) 및 제2 이미지의 좌상단 좌표값(x21, y21), 우하단 좌표값(x22, y22)을 이용하여, 좌표값 오차를 계산할 수 있다.
Figure PCTKR2021013118-appb-img-000001
그러나, IOU 방식 및 좌표값 오차 계산 방식은 중첩도 계산 방식의 일 예시이고, 중첩도 산출 모듈(1323)이 두 개 이상의 이미지 간의 중첩도를 계산하는 방식이 전술한 IOU 방식 및 좌표값 오차 계산 방식으로 한정되는 것은 아니다.
프로세서(1200)는 중첩도 산출 모듈(1323)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 원본 영상으로부터 인식된 타겟 객체가 포함되는 제1 관심 영역의 바운딩 박스 좌표값 정보 및 복원 영상으로부터 인식된 타겟 객체가 포함되는 제2 관심 영역의 바운딩 박스 좌표값 정보에 기초하여, 제1 관심 영역과 제2 관심 영역 간의 중첩도를 산출할 수 있다. 일 실시예에서, 프로세서(1200)는 중첩도 산출 모듈(1323)로부터 제공되는 IOU 방식 또는 좌표값 오차 계산 방식을 이용하여 제1 관심 영역과 제2 관심 영역 간의 중첩도를 계산할 수 있다. 일 실시예에서, 프로세서(1200)는 제1 관심 영역의 바운딩 박스의 좌상단 좌표값 및 우하단 좌표값과 제2 관심 영역의 바운딩 박스의 좌상단 좌표값 및 우하단 좌표값을 이용하여, 제1 관심 영역과 제2 관심 영역 간의 좌표값 오차를 계산하고, 계산된 좌표값 오차에 기초하여 중첩도를 계산할 수 있다.
유사도 산출 모듈(1324)은 두 개의 특징 벡터 간의 유사도를 수치값으로 산출하는 모듈이다. 일 실시예에서, 유사도 산출 모듈(1324)은 두 개의 특징 벡터 간의 상관 관계(correlation)를 수치값으로 계산하도록 구성될 수 있다.
프로세서(1200)는 유사도 산출 모듈(1324)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 원본 영상에서 검출된 타겟 객체로부터 추출된 제1 특징 벡터와 복원 영상에서 검출된 타겟 객체로부터 추출된 제2 특징 벡터 간의 유사도를 수치값으로 산출할 수 있다. 프로세서(1200) 예를 들어, 하기의 수식 2를 통해 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 계산할 수 있다.
Figure PCTKR2021013118-appb-img-000002
상기 수식 2에서 Forig 및 Fenc는 각각 원본 영상에서 검출된 타겟 객체로부터 추출된 제1 특징 벡터, 복원 영상에서 검출된 타겟 객체로부터 추출된 제2 특징 벡터를 의미하고, N은 특징 벡터의 길이, μ는 특징 벡터의 평균값, σ는 특징 벡터의 표준 편차를 의미한다.
수식 2는 유사도를 계산하기 위한 일 예시이고, 프로세서(1200)가 유사도 산출 모듈(1324)을 이용하여 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 계산하는 방식이 상기 수식 2로 한정되는 것은 아니다.
인식 결과 판단 모듈(1325)은, 원본 영상과 복원 영상 각각으로부터 검출된 관심 영역 간의 중첩도 및 원본 영상과 복원 영상 각각으로부터 추출된 특징 벡터 간의 유사도에 기초하여, 복원 영상으로부터 타겟 객체가 정상적으로 인식되었는지 여부를 판단하도록 구성되는 모듈이다. 인식 결과 판단 모듈(1325)은, 중첩도 산출 모듈(1323)을 이용하여 산출된 제1 관심 영역과 제2 관심 영역 간의 중첩도를 기설정된 제1 임계치와 비교하고, 유사도 산출 모듈(1324)을 이용하여 산출된 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 기설정된 제2 임계치와 비교할 수 있다. 예를 들어, 제1 임계치는 0.8이고, 제2 임계치는 0.5일 수 있다. 그러나, 제1 임계치 및 제2 임계치의 수치가 전술한 바와 같이 한정되는 것은 아니다.
프로세서(1200)는 인식 결과 판단 모듈(1325)와 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 제1 관심 영역과 제2 관심 영역 간의 중첩도를 제1 임계치와 비교하고, 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 기설정된 제2 임계치와 비교할 수 있다. 인식 결과 판단 모듈(1325)은 비교 결과에 관한 정보를 압축률 조절 모듈(1326)에 제공할 수 있다.
압축률 조절 모듈(1326)은 인식 결과 판단 모듈(1325)에 의해 판단된 타겟 객체의 인식 여부에 기초하여, 원본 영상을 압축하여 복원 영상을 획득하기 위한 압축률을 결정하는 모듈이다. 여기서 '압축률'은 원본 영상을 표준 규격에 매칭되는 방법을 이용하여 인코딩하기 위한 영상 압축 파라미터를 의미한다. 압축률은 표준 규격 마다 다양한 형태로 존재할 수 있다. 예를 들어, 정적 이미지를 재생하기 위한 표준(예를 들면, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등)에서는 영상의 압축률을 결정하기 위하여 양자화 테이블(Quantization Table)이 이용될 수 있다. 다른 예를 들면 동적 이미지를 재생하기 위한 표준(예를 들면, H. 264, HEVC 등)에서는 양자화 파라미터(Quantization Parameter)를 이용하여 영상의 압축률이 결정될 수 있다. 일 실시예에서, 압축률 조절 모듈(1326)은 인식 결과 판단 모듈(1325)로부터 획득한 중첩도 및 유사도의 기설정된 임계치와의 비교 결과에 기초하여 양자화 파라미터 값을 결정하도록 구성될 수 있다.
'양자화 파라미터'는 동적 영상의 압축과 관련된 표준 규격, 예를 들어 H.264/AVC, 또는 HEVC(H.265)에서 정의되는 변환 계수를 양자화하는 정도를 나타내는 파라미터로서, 양자화 파라미터에 의해 영상의 압축률이 결정될 수 있다. 일 실시예에서, 압축률은 양자화 파라미터의 값에 비례한다. 예를 들어, 양자화 파라미터의 값이 큰 경우, 압축률이 높고, 양자화 파라미터의 값이 작은 경우, 압축률이 낮다.
압축률 조절 모듈(1326)은, 인식 결과 판단 모듈(1325)로부터 제공받은 비교 결과에 기초하여, 압축률의 값을 조절하도록 구성될 수 있다. 일 실시예에서, 프로세서(1200)는 압축률 조절 모듈(1326)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 제1 관심 영역과 제2 관심 영역 간의 중첩도와 제1 임계치와의 비교 결과, 및 제1 특징 벡터와 제2 특징 벡터 간의 유사도와 제2 임계치와의 비교 결과에 기초하여 양자화 파라미터의 값을 조절할 수 있다. 압축률 조절 모듈(1326)은 기설정된 단위만큼 압축률의 값을 변경할 수 있다.
일 실시예에서, 프로세서(1200)는 인식 결과 판단 모듈(1325)을 이용하여 비교한 결과, 중첩도가 제1 임계치 이하이거나, 또는 유사도가 제2 임계치 이하인 경우, 압축률의 값을 변경할 수 있다. 이 경우, 프로세서(1200)는 압축률 값을 기존 복원 영상을 압축하고 부호화하는데 사용되었던 압축률 보다 더 낮은 값으로 변경할 수 있다. 일 실시예에서, 프로세서(1200)는 인식 결과 판단 모듈(1325)을 이용하여 비교한 결과, 중첩도가 제1 임계치를 초과하고, 유사도가 제2 임계치를 초과하는 경우, 복원 영상을 생성하는데 이용된 압축률을 최종 압축률로 결정할 수 있다.
일 실시예에서, 프로세서(1200)는 중첩도가 제1 임계치 이하이거나, 또는 유사도가 제2 임계치 이하인 경우, 압축률을 결정하는 동작들을 반복적으로 수행할 수 있다. 예를 들어, 프로세서(1200)는 압축률 조절 모듈(1326)을 통해 변경된 압축률을 이용하여 원본 영상을 압축하는 동작, 부호화 및 복호화 과정을 거쳐 복원 영상을 생성하는 동작, 복원 영상으로부터 타겟 객체를 인식하고, 제2 특징 벡터를 추출하는 동작, 중첩도를 산출하는 동작, 유사도를 산출하는 동작, 타겟 객체가 정상적으로 인식되었는지 판단하는 동작, 및 압축률을 재조정(re-adjust)하는 동작들을 적어도 1회 이상 반복적으로 수행할 수 있다.
일 실시예에서, 프로세서(1200)는 중첩도가 제1 임계치를 초과하고, 유사도가 제2 임계치를 초과하는 경우, 최종 압축률 값을 결정하고, 결정된 최종 압축률에 관한 정보를 학습 데이터 저장부(1410)에 저장할 수 있다. 프로세서(1200)는 결정된 최종 압축률에 관한 정보와 함께, 원본 영상 및 원본 영상으로부터 추출된 적어도 하나의 특징 맵을 학습 데이터 저장부(1410)에 저장할 수 있다. 일 실시예에서, 프로세서(1200)는 전술한 학습 데이터 생성 동작을 기 획득된 복수의 원본 영상에 대하여 수행함으로써, 복수의 원본 영상, 복수의 특징 맵 및 복수의 압축률 정보를 학습 데이터 저장부(1410)에 저장할 수 있다.
전처리 모듈(1330)은 입력된 영상에 대하여 전처리(pre-processing)를 수행하도록 구성되는 모듈이다. 전처리 모듈(1330)은 영상의 크기를 기 설정된 크기로 조절(resize)하고, 영상의 밝기 및 대조도(contrast)를 정규화(normalize)할 수 있다. 프로세서(1200)는 카메라(1100)를 이용하는 촬영을 통해 획득되거나 또는 통신 인터페이스(1500)를 통해 획득된 영상을 전처리 모듈(1330)에 입력함으로써, 영상의 크기를 조절하고, 영상의 밝기 및 대조도를 정규화할 수 있다. 프로세서(1200)는 전처리가 완료된 영상을 심층 신경망 모델(1340)에 입력할 수 있다.
심층 신경망 모델(1340)은 학습 데이터 저장부(1410)에 기 저장된 학습 데이터를 이용하여 기계 학습(training)을 수행하도록 구성되는 인공 지능 모델이다. 일 실시예에서, 프로세서(1200)는 학습 데이터 저장부(1410)에 기 저장된 복수의 원본 영상 및 복수의 특징 맵을 심층 신경망 모델(1340)에 입력으로 적용하고, 복수의 원본 영상 각각으로부터 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값에 관한 라벨(label)을 심층 신경망 모델(1340)의 정답값(ground-truth)으로 적용하는 지도 학습(supervised learning)을 수행할 수 있다.
일 실시예에서, 심층 신경망 모델(1340)은 연산을 수행하는 내부의 레이어(layer)인 복수의 은닉 레이어(hidden layer)를 포함할 수 있다. 심층 신경망 모델(1340)은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), 제한 볼츠만 머신(Restricted Boltzmann Machine; RBM), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. 그러나, 심층 신경망 모델(1340)이 전술한 예시로 한정되는 것은 아니고, 공지의 모든 딥 러닝(Deep Learning) 기반의 신경망 모델을 포함할 수 있다.
예를 들어, 심층 신경망 모델(1340)이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 프로세서(1200)는 학습 단계에서 기설정된 크기 및 기설정된 채널 수를 갖는 필터(filter)을 이용하여 학습 데이터 저장부(1410)로부터 입력되는 복수의 원본 영상을 이동함(stride)으로써 특징 값들을 추출하고, 추출된 특징 값들을 포함하는 복수 개의 레이어(layer)를 획득하며, 복수 개의 레이어에 가중치(weight)를 적용함으로써 특징 벡터 맵(feature vector map)을 획득할 수 있다. 상기 특징 벡터 맵을 획득하는 과정에서 정류 선형 유닛(ReLU) 모델이 이용되고, 효율을 향상시키기 위하여 드롭 아웃(drop out)을 통해 학습 모델을 정칙화(regularization)하고, 풀링(pooling) 또는 맥스 풀링(max pooling)을 수행하는 동작들이 더 추가될 수 있다. 이어서, 풀링 또는 맥스 풀링을 통해 획득된 특징값들은 fully connected layer를 통해 통합되고, 소프트맥스(softmax), 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent)를 포함하는 활성 함수(activation function)를 통해 압축률 값과 관련된 라벨을 출력하도록 학습될 수 있다.
프로세서(1200)는 심층 신경망 모델(1340)을 이용하는 학습을 통해, 모델 파라미터를 획득할 수 있다. 일 실시예에서, 심층 신경망 모델(1340)이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 프로세서(1200)는 심층 신경망 모델(1340)을 이용하는 지도 학습을 통해 복수의 레이어 간 가중치(weight) 및 편향(bias) 정보를 포함하는 모델 파라미터를 획득할 수 있다. 여기서, '가중치(weight)'와 '편향(bias)'은 입력 데이터(복수의 원본 영상 및 복수의 특징 맵)로부터 출력 라벨(압축률 값)을 추론하기 위한 매개 변수로서, 학습이 수행됨에 따라 값이 조정(adjust)될 수 있다. 프로세서(1200)는, 심층 신경망 모델(1340)의 학습을 통해 획득된 가중치 및 편향에 관한 정보를 모델 파라미터 저장부(1420)에 저장할 수 있다.
일 실시예에서, 프로세서(1200)는 전처리 모듈(1330)을 통해 전처리가 완료된 영상을 기 학습된 모델 파라미터로 구성된 심층 신경망 모델(1340)에 입력함으로써, 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력할 수 있다. 일 실시예에서, 프로세서(1200)는 영상으로부터 타겟 객체를 검출하는 과정에서 추출되는 적어도 하나의 특징 맵을 심층 신경망 모델(1340)에 입력할 수도 있다. 적어도 하나의 특징 맵을 심층 신경망 모델(1340)에 입력함으로써, 출력되는 압축률의 정확도가 더 향상될 수 있다. 출력되는 '압축률의 정확도'는 심층 신경망 모델(1340)에 입력되는 영상으로부터 타겟 객체가 정확하게 인식되는 정도를 의미하고, 압축률의 정확도는 타겟 객체 인식률과 비례한다.
심층 신경망 모델(1340)은 적어도 하나의 명령어들(instructions) 또는 프로그램 코드를 포함하는 소프트웨어 모듈로 구현될 수 있다. 이 경우, 심층 신경망 모델(1340)은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 심층 신경망 모델(1340)은 디바이스(1000)의 운영 체제(Operating System)에 의해 제공되거나, 소정의 애플리케이션을 통해 제공될 수도 있다.
도 3에서 심층 신경망 모델(1340)은 메모리(1300) 내에 저장되는 소프트웨어 모듈로 도시되고, 프로세서(1200)에 의해 실행되는 것으로 설명되고 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, 심층 신경망 모델(1340)은 적어도 하나의 하드웨어 칩 형태로 제작되어 디바이스(1000)에 탑재될 수 있다. 예를 들어, 심층 신경망 모델(1340)은 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 디바이스(1000)에 포함될 수도 있다.
또한, 심층 신경망 모델(1340)은 디바이스(1000)가 아닌, 별개의 장치에 탑재될 수도 있다. 예를 들어, 심층 신경망 모델(1340)은 외부의 서버(2000, 도 1 참조)에 포함될 수 있다. 이 경우, 디바이스(1000)는 전처리 모듈(1330)을 통해 전처리가 완료된 영상을 서버(2000)에 전송하고, 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률에 관한 정보를 서버(2000)로부터 수신할 수 있다.
프로세서(1200)는 심층 신경망 모델(1340)로부터 출력된 압축률에 관한 정보를 인코더(1310)에 제공할 수 있다. 인코더(1310)는 심층 신경망 모델(1340)로부터 입력받은 압축률을 이용하여 영상을 압축하고, 부호화함으로써 비트스트림(bitstream)을 생성할 수 있다. 프로세서(1200)는 통신 인터페이스(1500)를 이용하여, 비트스트림을 외부의 서버(2000, 도 1 참조) 또는 타 디바이스에 전송할 수 있다.
일 실시예에서, 프로세서(1200)는 심층 신경망 모델(1340)의 출력으로부터 획득된 압축률 정보를, 통신 인터페이스(1500)를 통해 연결되는 네트워크의 대역폭 정보에 기초하여 결정된 압축률 값 및 인코딩 모듈(1312)에 의해 기 설정된 초기 압축률 값과 비교하고, 비교 결과에 기초하여 최종 압축률 값을 결정할 수 있다. 이에 대해서는 도 10에서 상세하게 설명하기로 한다.
학습 데이터 저장부(1410)는 학습 데이터 생성 모듈(1320)에 의해 생성된 학습 데이터를 저장하는 데이터베이스(database)이다. 일 실시예에서, 학습 데이터 저장부(1410)는 비휘발성 메모리로 구성될 수 있다. 비휘발성 메모리(Non-volatile memory)는 전원이 공급되지 않은 상태에서도 정보를 저장 및 유지하고, 전원이 공급되면 다시 저장된 정보를 사용할 수 있는 기억 매체를 의미한다. 학습 데이터 저장부(1410)는 예를 들어, 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Drive), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(Read Only Memory; ROM), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나로 구성될 수 있다.
도 3에서 학습 데이터 저장부(1410)는 디바이스(1000)의 메모리(1300)가 아닌, 별개의 구성 요소로 도시되었지만, 이에 한정되는 것은 아니다. 일 실시예에서, 학습 데이터 저장부(1410)는 메모리(1300) 내에 포함될 수도 있다. 또는 학습 데이터 저장부(1410)는 디바이스(1000)에 포함되지 않은 구성 요소로서 통신 인터페이스(1500)를 통해 유무선 통신을 통해 연결될 수도 있다.
학습 데이터 저장부(1410)는 복수의 원본 영상, 학습 데이터 생성 모듈(1320)에 의해 출력된 복수의 특징 맵 및 복수의 압축률 값에 관한 정보를 포함할 수 있다. 일 실시예에서, 학습 데이터 저장부(1410)는 복수의 원본 영상, 복수의 특징 맵 및 복수의 압축률 값은 키(key)-밸류(value) 타입으로 저장할 수 있다.
모델 파라미터 저장부(1420)는 심층 신경망 모델(1340)의 학습을 통해 획득된 모델 파라미터를 저장하는 데이터베이스이다. 모델 파라미터는, 심층 신경망 모델(1340)의 타입에 따라 달라질 수 있다. 예를 들어, 심층 신경망 모델(1340)이 컨볼루션 신경망 모델(CNN)인 경우, 모델 파라미터 저장부(1420)는 복수의 레이어 간 가중치(weight) 및 편향(bias)을 포함하는 모델 파라미터를 저장할 수 있다.
모델 파라미터 저장부(1420)는 비휘발성 메모리로 구성될 수 있다. 모델 파라미터 저장부(1420)는 예를 들어, 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Drive), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(Read Only Memory; ROM), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나로 구성될 수 있다.
도 3에서 모델 파라미터 저장부(1420)는 디바이스(1000)의 메모리(1300)가 아닌, 별개의 구성 요소로 도시되었지만, 이에 한정되는 것은 아니다. 일 실시예에서, 모델 파라미터 저장부(1420)는 메모리(1300) 내에 포함될 수도 있다. 또는 모델 파라미터 저장부(1420)는 디바이스(1000)에 포함되지 않은 구성 요소로서 통신 인터페이스(1500)를 통해 유무선 통신을 통해 연결될 수도 있다.
통신 인터페이스(1500)는 디바이스(1000)와 서버 또는 타 디바이스 간 데이터 송수신을 수행하도록 구성된다. 통신 인터페이스(1500)는 예를 들어, 이더넷(Ethernet), 유무선 LAN(Local Area Network), 와이파이(Wi-Fi), WFD(Wi-Fi Direct), 및 와이기그(Wireless Gigabit Allicance, WiGig)를 포함하는 유무선 데이터 통신 방식 중 적어도 하나를 이용하여 서버 또는 타 디바이스와 데이터 통신을 수행할 수 있다.
도 4는 본 개시의 일 실시예에 따른 디바이스(1000)의 동작 방법을 도시한 흐름도이다.
단계 S410에서, 디바이스(1000)는 영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득한다. 디바이스(1000)는 카메라를 이용하여 대상체를 촬영하거나 또는 네트워크를 통해 영상을 획득할 수 있다. '영상'은 단일 프레임의 정적 이미지(still image) 또는 적어도 하나의 프레임을 포함하는 동적 영상(video)를 의미한다. 디바이스(1000)는 정적 영상 또는 동적 영상으로부터 타겟 객체를 검출하고, 타겟 객체의 검출 과정에서 추출되는 특징 맵을 획득할 수 있다. 여기서, '타겟 객체(target object)'는 사용자가 영상으로부터 검출하고자 하는 관심있는 객체를 의미한다. 타겟 객체는 예를 들어, 사람의 얼굴, 헤어, 옷, 및 포즈(posture) 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 디바이스(1000)는 딥 러닝(Deep Learning)을 포함하는 인공 지능 모델을 이용하여, 영상으로부터 타겟 객체를 검출할 수 있다. 일 실시예에서, 디바이스(1000)는 컨볼루션 신경망 모델(CNN)을 이용하여 학습을 수행함으로써 영상으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 디바이스(1000)는 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 동적 영상으로부터 사람의 얼굴을 검출할 수 있다. 일 실시예에서, 디바이스(1000)는 VGGFace2 데이터 셋을 이용하여 얼굴 인식을 수행하도록 기 학습된 MobileNet을 포함할 수 있다.
디바이스(1000)는 타겟 객체를 검출하는 과정에서 적어도 하나의 특징 맵(feature map)을 출력할 수 있다. '특징 맵'은 영상으로부터 타겟 객체를 검출하기 위하여 추출되는 특징 벡터를 포함하는 이미지로서, 예를 들어, 엣지 맵(edge map), 블러 이미지(blur image), 또는 원형 맵 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 컨볼루션 신경망 모델을 이용하는 경우, 디바이스(1000)는 원본 영상을 기설정된 크기 및 채널(channel) 수를 갖는 필터(filter)를 이용하여 합성 곱(convolution)을 산출하고, 합성 곱을 통해 필터의 개수와 동일한 2차원 이미지 레이어(layer)를 추출하고, 2D 이미지 레이어로 구성된 적어도 하나의 특징 맵을 획득할 수 있다.
도 4에는 도시되지 않았지만, 특징 맵을 획득하는 단계(S410) 이전에 영상을 전처리(preprocessing)하는 동작이 수행될 수 있다. 디바이스(1000)는 영상의 크기를 기 설정된 크기로 조절(resize)하고, 영상의 밝기 및 대조도(contrast)를 정규화(normalize)하는 전처리 과정을 수행할 수 있다.
단계 S420에서, 디바이스(1000)는 영상 및 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력한다. 일 실시예에서, 디바이스(1000)는 영상 및 영상으로부터 추출된 특징 맵을 심층 신경망 모델에 입력으로 적용하는 학습(training)을 수행함으로써, 영상으로부터 타겟 객체를 정상적으로 인식할 수 있는 압축률을 출력할 수 있다. '타겟 객체를 정상적으로 인식할 수 있는 압축률'은 영상으로부터의 타겟 객체에 관한 인식 오류율(error rate)이 기 설정된 오류율 미만인 경우의 압축률을 의미한다.
심층 신경망 모델은 기 저장된 학습 데이터를 이용하여 학습(training)을 수행함으로써 획득되는 인공지능 모델이다. 일 실시예에서, 심층 신경망 모델은 단계 S410, S420이 수행되기 이전에 수행된 학습을 통해 획득된 모델 파라미터를 포함할 수 있다. 여기서, '기 학습된 모델 파라미터'는 심층 신경망 모델에 포함되는 복수의 레이어에 관한 가중치(weight) 및 편향(bias)을 포함할 수 있다. 기 학습된 모델 파라미터는 복수의 원본 영상 및 복수의 특징 맵을 입력으로 적용하고, 복수의 압축률 값에 관한 라벨(label)을 정답값(ground-truth)로 적용하는 지도 학습(supervised learning)을 수행함으로써, 획득할 수 있다. 기 획득된 복수의 원본 영상 각각에 대하여 타겟 객체를 정상적으로 인식할 수 있는 압축률 값을 결정하는 구체적인 실시예에 대해서는 도 5 내지 도 7에서 상세하게 설명하기로 한다.
일 실시예에서, 심층 신경망 모델은 연산을 수행하는 내부의 레이어(layer)인 복수의 은닉 레이어(hidden layer)를 포함할 수 있다. 심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), 제한 볼츠만 머신(Restricted Boltzmann Machine; RBM), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. 그러나, 심층 신경망 모델이 전술한 예시로 한정되는 것은 아니고, 공지의 모든 딥 러닝(Deep Learning) 기반의 신경망 모델을 포함할 수 있다.
심층 신경망 모델이 컨볼루션 신경망 모델(CNN)로 구현되는 경우, 디바이스(1000)는 기 설정된 크기 및 기 설정된 채널 수를 갖는 필터(filter)를 이용하여 입력으로 적용된 복수의 원본 영상을 이동함(stride)으로써 특징 값들을 추출하고, 추출된 특징 값들을 포함하는 복수 개의 레이어(layer)를 획득하며, 복수 개의 레이어에 가중치(weight)를 적용함으로써 특징 벡터 맵(feature vector map)을 획득할 수 있다. 상기 특징 벡터 맵을 획득하는 과정에서 정류 선형 유닛(ReLU) 모델이 이용되고, 효율을 향상시키기 위하여 드롭 아웃(drop out)을 통해 학습 모델을 정칙화(regularization)하고, 풀링(pooling) 또는 맥스 풀링(max pooling)을 수행하는 동작들이 더 추가될 수 있다. 이어서, 풀링 또는 맥스 풀링을 통해 획득된 특징값들은 fully connected layer를 통해 통합되고, 소프트맥스(softmax), 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent)를 포함하는 활성 함수(activation function)를 통해 압축률 값과 관련된 라벨을 출력하도록 학습될 수 있다.
단계 S430에서, 디바이스(1000)는 출력된 압축률을 이용하여 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성한다. 일 실시예에서, 디바이스(1000)는 영상을 복수의 CTU(Coding Tree Unit)으로 분할(split)하고, 복수의 CTU 중 타겟 객체가 검출된 CTU에 대해서는 단계 S420에서 출력된 압축률을 이용하여 압축 및 부호화하고, 타겟 객체가 검출되지 않은 CTU에 대해서는 초기에 설정된 압축률을 이용하여 압축 및 부호화할 수 있다. 이에 대해서는 도 8 및 도 9에서 상세하게 설명하기로 한다.
일 실시예에서, 디바이스(1000)는 단계 S420에서 출력된 압축률의 값을 디바이스(1000)와 연결된 네트워크의 대역폭(bandwidth)에 따라 결정되는 네트워크 압축률 값 및 인코딩 모듈(1312, 도 3 참조)에 의해 설정된 초기 압축률 값과 비교함으로서, 영상을 압축할 최종 압축률을 결정할 수 있다. 이에 대해서는 도 10에서 상세하게 설명하기로 한다.
도 5는 본 개시의 일 실시예에 따른 디바이스(1000)가 원본 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 결정하는 방법을 도시한 흐름도이다. 도 5에 도시된 단계(S500)는 도 4의 단계 S410이 수행되기 이전의 시점에 수행된다.
단계 S510에서, 디바이스(1000)는 기 획득된 원본 영상을 기 설정된 압축률로 압축하고 부호화 및 복호화함으로써, 복원 영상을 생성한다. 여기서, '원본 영상(Raw image)'는 카메라를 통해 촬영된 영상 또는 네트워크를 통해 획득한 영상으로서, 압축되지 않은 비압축 영상 데이터이다. 일 실시예에서, 원본 영상을 압축하기 위한 기 설정된 압축률은 인코딩 모듈(1312, 도 3 참조)에 의해 초기 설정된(initially set) 압축률을 의미할 수 있다. 일 실시예에서, 디바이스(1000)는 인코더(1310, 도 3 참조)를 이용하여 기 설정된 압축률로 원본 영상을 압축하고, 부호화 및 복호화함으로써 복원 영상을 생성할 수 있다. 인코더(1310)는 예를 들어, H.264/AVC 및 HEVC(H.265)를 포함하는 동적 영상 압축 표준 규격 중 적어도 하나를 이용하여 상기 원본 영상을 압축하고, 부호화 및 복호화를 수행함으로써 복원 영상을 생성할 수 있다. 다른 실시예에서, 인코더(1310)는 예를 들어, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등과 같은 정적 영상 압축 표준 규격 중 적어도 하나를 이용하여 원본 영상을 압축하고, 부호화 및 복호화를 수행함으로써 복원 영상을 생성할 수 있다.
단계 S520에서, 디바이스(1000)는 원본 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 검출된 타겟 객체로부터 제1 특징 벡터(feature vector)를 추출(extract)한다. '타겟 객체'는 예를 들어, 사람의 얼굴, 헤어 스타일, 옷, 및 포즈(posture) 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 디바이스(1000)는 공지의 영상 처리 기술 또는 딥 러닝을 포함하는 인공 지능 모델을 이용하여 원본 영상으로부터 타겟 객체를 인식하고, 인식된 타겟 객체로부터 제1 특징 벡터를 추출할 수 있다.
일 실시예에서, 디바이스(1000)의 프로세서(1200, 도 3 참조)는 컨볼루션 신경망 모델(Convolution Neural Network; CNN)을 이용하여 학습을 수행함으로써 원본 영상으로부터 타겟 객체를 검출할 수 있다. 프로세서(1200)는 컨볼루션 신경망 모델을 통해 기 학습된 모델 파라미터를 이용하여 원본 영상으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 프로세서(1200)은 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 원본 영상으로부터 사람의 얼굴을 검출할 수 있다.
일 실시예에서, 프로세서(1200)는 공지의 이미지 처리 기술 또는 딥 러닝을 포함하는 인공 지능 모델을 이용하여, 타겟 객체의 이미지로부터 제1 특징 벡터를 추출할 수 있다. 예를 들어, 프로세서(1200)는 ICA(Independent Component Analysis) 또는 PCA(Principle Component Analysis) 방법을 이용하여 타겟 객체 이미지로부터 제1 특징 벡터를 추출할 수 있다. 제1 특징 벡터는 예를 들어, 사람의 얼굴의 눈, 코, 입과 같은 랜드마크에 대응되는 특징값들을 포함하는 벡터일 수 있다. 그러나, 이에 한정되는 것은 아니고, 제1 특징 벡터는 사람의 헤어 스타일, 옷 차림, 또는 특정 자세로부터 추출된 적어도 하나의 키 포인트(key-points)에 대응되는 특징값들을 포함하는 벡터일 수 있다.
일 실시예에서, 프로세서(1200)는 컨볼루션 신경망 모델을 이용하여 타겟 객체 이미지로부터 제1 특징 벡터를 추출할 수 있다. 예를 들어, 프로세서(1200)는 기설정된 크기 및 기설정된 채널 수를 갖는 커널(kernel)을 이용하여 타겟 객체 이미지 상을 이동함(stride)으로써 특징값들을 추출하고, 추출된 특징값들을 포함하는 복수 개의 레이어(layer)를 획득하고, 복수 개의 레이어에 가중치(weight)를 적용함으로써 특징 벡터 맵(feature vector map)을 획득할 수 있다. 특징 벡터 값을 획득하는 과정에서 정류 선형 유닛(ReLU) 모델이 이용되고, 효율을 향상시키기 위하여 드롭 아웃(drop out)을 통해 특징값들을 정칙화(regularization)하고, 풀링(pooling) 또는 맥스 풀링(max pooling)을 수행하는 동작들이 더 추가될 수 있다. 프로세서(1200)은 예를 들어, MobileNet v1/v2 과 같은 컨볼루션 신경망 모델을 이용하여 원본 영상에서 검출된 타겟 객체의 이미지로부터 제1 특징 벡터를 추출할 수 있다.
단계 S530에서, 디바이스(1000)는 복원 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 검출된 타겟 객체로부터 제2 특징 벡터(feature vector)를 추출(extract)한다. 단계 S530은 원본 영상이 아닌 '복원 영상'으로부터 타겟 객체를 인식하고, 제2 특징 벡터를 추출하는바, 단계 S520과 비교하면 타겟 객체의 인식 대상 및 제2 특징 벡터가 추출되는 대상이 되는 영상의 차이만 있을 뿐 동작 방법은 동일한다. 따라서, 단계 S520과 중복되는 설명은 생략한다.
단계 S540에서, 디바이스(1000)는 원본 영상으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 제1 특징 벡터와 제2 특징 벡터 간의 유사도에 기초하여, 원본 영상으로부터 타겟 객체가 정상적으로 인식되었는지 여부를 판단한다. 일 실시예에서, 디바이스(1000)의 프로세서(1200)는 원본 영상으로부터 검출된 타겟 객체의 바운딩 박스(bounding box)를 식별하고, 식별된 바운딩 박스 내에 포함된 영역을 제1 관심 영역(Region of Interest)으로 설정할 수 있다. 마찬가지로, 프로세서(1200)는 복원 영상으로부터 검출된 타겟 객체의 바운딩 박스를 식별하고, 바운딩 박스 내에 포함된 영역을 제2 관심 영역으로 설정할 수 있다.
프로세서(1200)는 제1 관심 영역과 제2 관심 영역 간의 중첩도를 산출하고, 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 산출할 수 있다. 일 실시예에서, 프로세서(1200)는 산출된 중첩도를 기 설정된 제1 임계치와 비교하고, 산출된 유사도를 기 설정된 제2 임계치와 비교하며, 비교 결과에 기초하여 복원 영상으로부터 타겟 객체가 정상적으로 인식되었는지 여부를 판단할 수 있다.
여기서 '압축률'은 원본 영상을 표준 규격에 매칭되는 방법을 이용하여 인코딩하기 위한 영상 압축 파라미터를 의미한다. 압축률은 표준 규격 마다 다양한 형태로 존재할 수 있다. 예를 들어, 정적 영상을 압축하는 표준 규격(예를 들어, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등)에서는 영상의 압축률을 결정하기 위하여 양자화 테이블(Quantization Table)이 이용될 수 있다. 예를 들어, 동적 영상을 재생하기 위한 표준 규격(예를 들어, H. 264/AVC, HEVC(H.265) 등)에서는 양자화 파라미터(Quantization Parameter)를 이용하여 영상의 압축률이 결정될 수 있다.
'양자화 파라미터'는 동적 영상의 압축과 관련된 표준 규격, 예를 들어 H.264/AVC, 또는 HEVC(H.265)에서 정의되는 변환 계수를 양자화하는 정도를 나타내는 파라미터로서, 양자화 파라미터에 의해 영상의 압축률이 결정될 수 있다. 일 실시예에서, 압축률은 양자화 파라미터의 값에 비례한다. 예를 들어, 양자화 파라미터의 값이 큰 경우, 압축률이 높고, 양자화 파라미터의 값이 작은 경우, 압축률이 낮다.
일 실시예에서, 프로세서(1200)는 중첩도가 제1 임계치 이하이거나, 또는 유사도가 제2 임계치 이하인 경우, 복원 영상으로부터 타겟 객체가 정상적으로 인식되지 않았다고 판단할 수 있다.
일 실시예에서, 프로세서(1200)는 중첩도가 제1 임계치를 초과하고, 유사도가 제2 임계치를 초과하는 경우, 복원 영상으로부터 타겟 객체가 정상적으로 인식되었다고 판단할 수 있다.
디바이스(1000)의 프로세서(1200)가 중첩도를 제1 임계치와 비교하고, 유사도를 제2 임계치와 비교함으로써 타겟 객체가 정상적으로 인식되었는지 여부를 판단하는 구체적인 실시예는 도 6에서 상세하게 설명하기로 한다.
단계 S550에서, 디바이스(1000)는 타겟 객체의 인식 여부 판단 결과에 기초하여 압축률을 결정한다. 일 실시예에서, 디바이스(1000)는 복원 영상으로부터 타겟 객체가 정상적으로 인식되지 않았다고 판단된 경우, 압축률의 값을 기존 복원 영상을 압축하고 부호화하는데 사용되었던 압축률 보다 더 낮은 값으로 변경할 수 있다. 일 실시예에서, 디바이스(1000)는 복원 영상으로부터 타겟 객체가 정상적으로 인식되었다고 판단된 경우, 단계 S510에서 수신된 복원 영상을 생성하는데 이용된 초기에 설정된 압축률을 최종 압축률로 결정할 수 있다. 디바이스(1000)가 타겟 객체의 인식 여부 판단 결과에 기초하여 압축률을 변경하거나, 또는 최종 압축률로 결정하는 구체적인 실시계에 대해서는 도 7에서 상세하게 설명하기로 한다.
일 실시예에서, 디바이스(1000)는 도 5에 도시된 단계 S510 내지 단계 S550을 포함하는 단계 S500을 기 획득된 복수의 원본 영상 각각에 대하여 수행함으로써, 복수의 원본 영상 각각으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률 정보를 획득할 수 있다. 일 실시예에서, 디바이스(1000)는 복수의 원본 영상으로부터 타겟 객체를 검출하는 과정에서 추출되는 복수의 특징 맵 및 단계 S500을 통해 결정된 복수의 압축률 값에 관한 정보를 학습 데이터 저장부(1410, 도 3 참조)에 저장할 수 있다. 일 실시예에서, 디바이스(1000)는 학습 데이터 저장부(1410)에 저장된 데이터, 즉 복수의 원본 영상, 복수의 특징 맵 및 복수의 압축률 값에 관한 데이터를 이용하여 심층 신경망 모델(1340, 도 3 참조)을 학습 할 수 있다.
도 6은 본 개시의 일 실시예에 따른 디바이스(1000)가 복원 영상에서의 타겟 객체 인식 여부를 판단하는 방법을 도시한 흐름도이다.
도 6에 도시된 단계 S610 내지 단계 S650은 도 5에 도시된 단계 S540을 구체화한 단계들이다. 도 6에 도시된 단계 S610 및 단계 S620은 도 5에 도시된 단계 S530이 수행된 이후에 수행된다.
단계 S610에서, 디바이스(1000)는 제1 관심 영역과 제2 관심 영역 간의 중첩도를 산출한다. 일 실시예에서, 디바이스(1000)는 원본 영상에서 검출된 타겟 객체가 포함되는 제1 관심 영역의 바운딩 박스(bounding box)의 위치 좌표값 정보 및 복원 영상에서 검출된 타겟 객체가 포함되는 제2 관심 영역의 바운딩 박스의 위치 좌표값 정보를 각각 획득하고, 획득된 위치 좌표값을 이용하여 제1 관심 영역과 제2 관심 영역이 겹치는 정도를 나타내는 중첩도를 산출할 수 있다. 일 실시예에서, 디바이스(1000)의 프로세서(1200, 도 3 참조)는 위치 좌표값 정보를 이용하여 중첩도를 계산하는 IOU(Intersection Over Union) 방식을 이용하여 제1 관심 영역과 제2 관심 영역 간의 중첩도를 계산할 수 있다.
단계 S620에서, 디바이스(1000)는 제1 특징 벡터와 제2 특징 벡터 간의 유사도를 산출한다. 디바이스(1000)의 프로세서(1200)는 벡터 간의 상관 관계(correlation)를 계산하는 공지의 방법을 이용하여, 원본 영상에서 검출된 타겟 객체의 이미지로부터 추출된 제1 특징 벡터와 복원 영상에서 검출된 타겟 객체의 이미지로부터 추출된 제2 특징 벡터 간의 유사도를 계산할 수 있다.
도 6에서, 단계 S610과 단계 S620은 동시에 독립적으로 수행될 수 있다. 그러나, 이에 한정되는 것은 아니고, 단계 S610이 단계 S620 보다 먼저 수행되거나, 또는 단계 S620이 단계 S610 보다 먼저 수행될 수도 있다.
단계 S630에서, 디바이스(1000)는 단계 S610에서 산출된 중첩도를 기 설정된 제1 임계치(α)와 비교하고, 단계 S620에서 산출된 유사도를 기 설정된 제2 임계치(β)와 비교할 수 있다. 예를 들어, 제1 임계치(α)의 값은 0.8이고, 제2 임계치(β)의 값은 0.5일 수 있지만, 이에 한정되는 것은 아니다.
중첩도가 제1 임계치(α)를 초과하고, 유사도가 제2 임계치(β)를 초과하는 경우(단계 S640), 디바이스(1000)는 복원 영상으로부터 타겟 객체가 정상적으로 인식되었다고 판단한다. 복원 영상에서 타겟 객체가 정상적으로 인식된 경우는 도 7의 ⓐ와 연결되고, 도 6의 단계 S640이 수행된 이후에는 도 7의 단계 S710이 수행될 수 있다.
중첩도가 제1 임계치(α) 이하 이거나, 또는 유사도가 제2 임계치(β) 이하인 경우(단계 S650), 디바이스(1000)는 복원 영상으로부터 타겟 객체가 정상적으로 인식되지 않았다고 판단한다. 복원 영상에서 타겟 객체가 정상적으로 인식되지 않은 경우는 도 7의 ⓑ와 연결되고, 도 6의 단계 S650이 수행된 이후에는 도 7의 단계 S720이 수행될 수 있다.
도 7은 본 개시의 일 실시예에 따른 디바이스(1000)가 타겟 객체의 인식 여부 판단 결과에 기초하여, 영상의 압축률을 결정하는 방법을 도시한 흐름도이다.
도 7에 도시된 단계 S710 내지 단계 S730은 도 5에 도시된 단계 S550을 구체화한 단계들이다. 도 7에 도시된 단계 S510 내지 S540은 도 5에 도시된 단계들과 동일하다.
단계 S710에서, 디바이스(1000)는 단계 S510에서 복원 영상을 생성하는데 이용되었던 압축률, 예를 들어 양자화 파라미터의 값을 최종 압축률로 결정할 수 있다. 단계 S710은 ⓐ를 통해 연결된 도 6의 단계 S640이 수행된 이후에 수행될 수 있다.
단계 S720에서, 디바이스(1000)는 압축률을 낮은 값으로 변경한다. 단계 S720은 ⓑ를 통해 연결된 도 6의 단계 S650이 수행된 이후에 수행될 수 있다. 일 실시예에서, 디바이스(1000)는 단계 S510에서 복원 영상을 생성하는데 이용되었던 압축률 보다 더 낮은 값으로 압축률을 조절할 수 있다. 예를 들어, 디바이스(1000)의 프로세서(1200, 도 3 참조)는 복원 영상을 생성하는데 사용되었던 양자화 파라미터의 값을 더 낮은 값으로 변경할 수 있다.
단계 S730에서, 디바이스(1000)는 변경된 압축률 정보를 인코딩 모듈(1312, 도 3 참조)에 제공한다.
단계 S730 이후, 디바이스(1000)는 단계 S510, 단계 S520, 단계 S530, 단계 S540, 및 단계 S550을 반복 수행한다. 일 실시예에서, 디바이스(1000)는 인코딩 모듈(1312)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 변경된 압축률로 원본 영상을 압축하고, 부호화 및 복호화를 수행하고, 이를 통해 복원 영상을 생성할 수 있다. 디바이스(1000)는 복원 영상을 생성하는 동작(단계 S510), 원본 영상으로부터 타겟 객체를 인식하고, 제1 특징 벡터를 추출하는 동작(단계 S520), 복원 영상으로부터 타겟 객체를 인식하고, 제2 특징 벡터를 추출하는 동작(단계 S530), 및 중첩도 및 유사도에 기초하여 타겟 객체가 정상적으로 인식되었는지 여부를 판단하는 동작(단계 S540), 및 압축률을 결절하는 동작(단계 S550)을 적어도 1회 이상 반복적으로 수행할 수 있다. 디바이스(1000)는 중첩도가 제1 임계치(α)를 초과하고, 유사도가 제2 임계치(β)를 초과할 때까지 단계 S510, S520, S530, S540, 및 S550을 반복적으로 수행할 수 있다.
도 8은 본 개시의 일 실시예에 따른 디바이스(1000)가 CTU(Coding Tree Unit) 별로 서로 다른 압축률을 결정하는 실시예를 도시한 도면이다.
도 8을 참조하면, 디바이스(1000)는 입력 영상(800)을 기설정된 영상 크기인 CTU 단위로 분할(split)할 수 있다. 일 실시예에서, CTU는 기설정된 픽셀의 개수를 포함할 수 있다. 예를 들어, CTU는 16×16 또는 64×64의 픽셀 수로 구성될 수 있으나, 이에 한정되는 것은 아니다. 디바이스(1000)의 프로세서(1200, 도 3 참조)는 입력 영상(800)이 복수의 CTU(800-1 내지 800-n)를 포함하도록 분할할 수 있다. 도 8에는 복수의 CTU(800-1 내지 800-n)이 모두 동일한 크기인 것으로 도시되었지만, 이에 한정되는 것은 아니다. 일 실시예에서, 복수의 CTU(800-1 내지 800-n) 각각은 서로 다른 개수의 픽셀을 포함하고, 서로 다른 크기로 형성될 수 있다.
디바이스(1000)는 입력 영상(800)으로부터 타겟 객체를 검출할 수 있다. 일 실시예에서, 디바이스(1000)의 프로세서(1200)는 타겟 객체 검출 모듈(1321)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 입력 영상(800)으로부터 타겟 객체를 검출할 수 있다. '타겟 객체'는 예를 들어, 사람의 얼굴, 헤어 스타일, 옷, 및 포즈 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 도 8에 도시된 실시예에서, 타겟 객체는 사람의 얼굴이고, 프로세서(1200)는 타겟 객체 검출 모듈(1321)을 이용하여 입력 영상(800)으로부터 적어도 하나의 타겟 객체(801, 802, 803)를 검출할 수 있다.
프로세서(1200)는 검출된 타겟 객체의 바운딩 박스(bounding box)를 식별하고, 식별된 바운딩 박스의 위치 좌표값을 획득할 수 있다. 일 실시예에서, 프로세서(1200)는 적어도 하나의 타겟 객체(801, 802, 803) 각각으로부터 식별된 바운딩 박스를 적어도 하나의 관심 영역(R1, R2, R3)으로 설정할 수 있다.
프로세서(1200)는 복수의 CTU(800-1 내지 800-n) 중 타겟 객체가 검출된 적어도 하나의 CTU를 식별할 수 있다. 일 실시예에서, 프로세서(1200)는 중첩도 산출 모듈(1323)과 관련된 명령어들 또는 프로그램 코드를 실행하여, 적어도 하나의 관심 영역(R1, R2, R3) 각각의 좌표 정보를 이용하여 복수의 CTU(800-1 내지 800-n)와의 중첩도를 산출할 수 있다. 일 실시예에서, 프로세서(1200)는 좌표값 정보를 이용하여 중첩도를 계산하는 IOU(Intersection Over Union) 방식을 이용하여 적어도 하나의 관심 영역(R1, R2, R3)과 복수의 CTU(800-1 내지 800-n) 간의 중첩도를 계산할 수 있다. IOU 방식을 이용하는 중첩도 계산에서, IOU 값이 1인 경우, 두 개의 이미지가 완전히 겹쳐지는 것을 의미하고, IOU 값이 0인 경우, 두 개의 이미지가 전혀 겹쳐지지 않음을 의미한다. 그러나, 이에 한정되는 것은 아니고, 프로세서(1200)는 좌표값 사이의 오차의 합을 계산함으로써, 중첩도를 산출하는 오차 계산 방식을 이용할 수도 있다.
프로세서(1200)는 복수의 CTU(800-1 내지 800-n) 중 산출된 중첩도 값이 0 이상인 CTU, 즉 중첩이 되는 적어도 하나의 CTU를 식별함으로써, 타겟 객체가 포함되는 적어도 하나의 CTU를 식별할 수 있다. 도 8에 도시된 실시예에서, 프로세서(1200)는 입력 영상(800)에 포함되는 복수의 CTU(800-1 내지 800-n) 중 제1 관심 영역(R1)의 좌표 정보(좌표 값 및 좌표 크기에 관한 정보 포함)에 기초하여 중첩되는 적어도 하나의 CTU(800-9, 800-10, 800-17, 800-18)를 식별할 수 있다. 마찬가지로, 프로세서(1200)는 복수의 CTU(800-1 내지 800-n) 중 제2 관심 영역(R2)의 좌표 정보에 기초하여 중첩되는 적어도 하나의 CTU(800-20, 800-21, 800-28, 800-29)를 식별하고, 제3 관심 영역(R3)의 좌표 정보에 기초하여 중첩되는 적어도 하나의 CTU(800-14, 800-15, 800-22, 800-23)를 식별할 수 있다.
프로세서(1200)는 복수의 CTU(800-1 내지 800-n) 중 타겟 객체가 검출된 적어도 하나의 CTU(도 8에 도시된 실시예에서는 800-9, 800-10, 800-14, 800-15, 800-17, 800-18, 800-20, 800-21, 800-22, 800-23, 800-28, 800-29)를 심층 신경망 모델(1340)에 입력하는 학습(training)을 수행함으로써, 타겟 객체를 정상적으로 인식할 수 있는 압축률을 획득할 수 있다. 타겟 객체가 검출된 적어도 하나의 CTU를 제1 CTU(810)라고 하면, 도 8에 도시된 실시예에서 디바이스(1000)는 제1 CTU(810)에 적용되는 압축률(QP)을 심층 신경망 모델(1340)을 통해 출력된 압축률의 값, 예를 들어 20으로 결정할 수 있다.
프로세서(1200)는 복수의 CTU(800-1 내지 800-n) 중 타겟 객체가 검출되지 않은 적어도 하나의 CTU를 제2 CTU(820)로 결정하고, 적어도 하나의 제2 CTU(820)에 대해서는 심층 신경망 모델(1340)로부터 출력되는 압축률이 아닌, 기 설정된 초기 압축률을 적용할 수 있다. 도 8에 도시된 실시예에서, 프로세서(1200)는 적어도 하나의 제2 CTU(820)에 대해서는 초기 설정된 압축률의 값(QP)인 30을 적용할 수 있다.
도 9는 본 개시의 일 실시예에 따른 디바이스(1000)가 CTU(Coding Tree Unit) 별로 서로 다른 압축률을 결정하는 방법을 도시한 흐름도이다.
단계 S910에서, 디바이스(1000)는 입력 영상으로부터 적어도 하나의 타겟 객체를 검출한다. '타겟 객체'는 예를 들어, 사람의 얼굴, 헤어 스타일, 옷, 및 포즈 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에서, 디바이스(1000)는 공지의 영상 처리 기술 또는 딥 러닝을 포함하는 인공 지능 모델을 이용하여 입력 영상으로부터 타겟 객체를 검출할 수 있다.
일 실시예에서, 디바이스(1000)의 프로세서(1200, 도 3 참조)는 컨볼루션 신경망 모델(Convolution Neural Network; CNN)을 이용하여 학습을 수행함으로써 입력 영상으로부터 타겟 객체를 검출할 수 있다. 프로세서(1200)는 컨볼루션 신경망 모델을 통해 기 학습된 모델 파라미터를 이용하여 입력 영상으로부터 타겟 객체를 검출할 수 있다. 예를 들어, 타겟 객체가 얼굴인 경우, 프로세서(1200)은 대규모의 데이터 셋, 예를 들어 CASIA-WebFace, VGGFace/VGGFace 2, 또는 MS-Celeb-1M을 통해 입력 영상으로부터 사람의 얼굴을 검출할 수 있다.
단계 S912에서, 디바이스(1000)는 검출된 적어도 하나의 타겟 객체 각각의 좌표 정보를 획득한다. 일 실시예에서, 디바이스(1000)는 입력 영상으로부터 검출된 적어도 하나의 타겟 객체의 바운딩 박스(bounding box)를 식별하고, 식별된 바운딩 박스의 위치 좌표값 및 좌표 크기에 관한 정보를 획득할 수 있다.
일 실시예에서, 디바이스(1000)의 프로세서(1200)는 적어도 하나의 타겟 객체 각각으로부터 식별된 바운딩 박스를 적어도 하나의 관심 영역으로 설정할 수 있다.
단계 S920에서, 디바이스(1000)는 입력 영상을 CTU(Coding Tree Unit) 단위로 분할(split)한다. 일 실시예에서, CTU는 기설정된 픽셀의 개수를 포함할 수 있다. 예를 들어, CTU는 16×16 또는 64×64의 픽셀 수로 구성될 수 있으나, 이에 한정되는 것은 아니다. 디바이스(1000)의 프로세서(1200)는 입력 영상이 복수의 CTU를 포함하도록 분할 수 있다. 복수의 CTU 각각은 동일한 크기일 수 있지만, 이에 한정되지 않는다. 일 실시예에서, 프로세서(1200)는 입력 영상을 서로 다른 크기의 복수의 CTU로 분할할 수 있다.
단계 S910과 단계 S920은 동시에 독립적으로 수행될 수 있다. 그러나, 이에 한정되는 것은 아니고, 단계 S910이 단계 S920 보다 먼저 수행되거나, 또는 단계 S920이 단계 S910 보다 먼저 수행될 수도 있다.
단계 S930에서, 디바이스(1000)는 적어도 하나의 타겟 객체의 바운딩 박스의 좌표 정보에 기초하여, 복수의 CTU와의 중첩도를 산출한다. 일 실시예에서, 디바이스(1000)의 프로세서(1200)는 좌표값 정보를 이용하여 중첩도를 계산하는 IOU(Intersection Over Union) 방식을 이용하여 적어도 하나의 타겟 객체의 바운딩 박스와 복수의 CTU 간의 중첩도를 계산할 수 있다. 그러나, 이에 한정되는 것은 아니고, 프로세서(1200)는 좌표값 사이의 오차의 합을 계산함으로써, 중첩도를 산출하는 오차 계산 방식을 이용할 수도 있다. 오차 계산 방식을 이용하는 경우, 프로세서(1200)는 적어도 하나의 타겟 객체의 바운딩 박스 각각의 위치 좌표값과 복수의 CTU 각각의 위치 좌표값 간의 오차를 계산하고, 오차의 제곱 합을 계산함으로써, 중첩도를 산출할 수 있다.
단계 S940에서, 디바이스(1000)는 산출된 중첩도가 0을 초과하였는지 확인한다. IOU(Intersection Over Union) 방식을 이용하여 중첩도를 산출하는 실시예에서, 산출된 중첩도의 값이 1인 경우, 두 개의 이미지가 완전히 겹쳐지는 것을 의미하고, 중첩도의 값이 0인 경우, 두 개의 이미지가 전혀 겹쳐지지 않음을 의미한다. 예를 들어, 중첩도의 값이 0.5 인 경우, 두 개의 이미지의 2/3 가 겹쳐지는 것을 의미한다.
중첩도가 0을 초과하는 경우(단계 S950), 디바이스(1000)는 타겟 객체가 포함되는 적어도 하나의 제1 CTU를 식별한다(identify). 일 실시예에서, 디바이스(1000)는 복수의 CTU 중 적어도 하나의 타겟 객체의 바운딩 박스와 중첩되는 적어도 하나의 제1 CTU를 식별할 수 있다. 적어도 하나의 제1 CTU는 적어도 하나의 타겟 객체가 검출된 영역에 해당되는 CTU일 수 있다.
단계 S960에서, 디바이스(1000)는 기 획득된(pre-trained) 심층 신경망 모델에 적어도 하나의 제1 CTU를 입력함으로써, 적어도 하나의 제1 CTU에 관한 압축률 값을 획득한다. 일 실시예에서, 디바이스(1000)의 프로세서(1200, 도 3 참조)는 기 학습된 모델 파라미터로 구성된 심층 신경망 모델(1340, 도 3 참조)에 적어도 하나의 제1 CTU를 입력하고, 심층 신경망 모델(1340)을 통한 학습을 통해 적어도 하나의 제1 CTU로부터 타겟 객체를 정상적으로 인식할 수 있는 압축률 값을 획득할 수 있다.
단계 S970에서, 디바이스(1000)는 획득된 압축률 값을 적어도 하나의 제1 CTU에 관한 압축률 값으로 결정한다.
중첩도가 0인 경우(단계 S952), 디바이스(1000)는 타겟 객체가 포함되지 않은 적어도 하나의 제2 CTU를 식별한다(identify). 일 실시예에서, 디바이스(1000)는 복수의 CTU 중 적어도 하나의 타겟 객체의 바운딩 박스와 중첩되지 않는 적어도 하나의 제2 CTU를 식별할 수 있다. 적어도 하나의 제2 CTU는 적어도 하나의 타겟 객체가 검출되지 않은 영역에 해당되는 CTU일 수 있다. 예를 들어, 타겟 객체가 사람의 얼굴인 경우, 적어도 하나의 제2 CTU는 사람의 몸, 팔, 다리 등 얼굴을 제외한 다른 신체 부위와 관련되거나, 또는 배경 이미지에 해당되는 영역에 배치된 CTU일 수 있다.
단계 S972에서, 디바이스(1000)는 적어도 하나의 제2 CTU에 대하여 초기 설정된 압축률 값을 적용한다. 초기 설정된 압축률 값은 인코딩 모듈(1312, 도 3 참조)에 의해 기 설정된 압축률 값을 의미한다. 일 실시예에서, 초기 설정된 압축률 값은 사용자 입력에 따라 결정될 수 있다.
단계 S980에서, 디바이스(1000)는 압축률 값을 이용하여 적어도 하나의 제1 CTU 및 적어도 하나의 제2 CTU에 관하여 압축 및 부호화함으로써, 비트스트림을 생성한다. 일 실시예에서, 디바이스(1000)는 인코더(1310, 도 3 참조)를 이용하여 영상을 압축하고, 부호화할 수 있다. 인코더(1310)는 예를 들어, H.264/AVC 및 HEVC(H.265)를 포함하는 동적 영상 압축 표준 규격 중 적어도 하나를 이용하여 상기 영상을 압축하고, 부호화함으로써 비트스트림을 생성할 수 있다. 다른 실시예에서, 인코더(1310)는 예를 들어, JPEG(Joint Photographic Coding Experts Group), JPEG-2000, JPEG- XR, WebP 등과 같은 정적 영상 압축 표준 규격 중 적어도 하나를 이용하여 영상을 압축하고, 부호화할 수 있다. 디바이스(1000)는 적어도 하나의 제1 CTU에 대해서는 단계 S970에서 결정된 압축률 값을 적용하여 압축하고, 적어도 하나의 제2 CTU에 대해서는 단계 S972에서 적용된 초기 설정된 압축률 값을 이용하여 압축할 수 있다.
도 8 및 도 9에 도시된 실시예에서, 디바이스(1000)는 입력 영상(800, 도 8 참조)를 복수의 CTU(800-1 내지 800-n, 도 8 참조)으로 분할하고, 복수의 CTU(800-1 내지 800-n) 중 타겟 객체가 검출된 적어도 하나의 제1 CTU(810, 도 8 참조)에만 심층 신경망 모델(1340, 도 3 참조)을 통해 출력된 압축률을 적용하고, 타겟 객체가 검출되지 않은 적어도 하나의 제2 CTU(820, 도 8 참조)에는 초기 설정된 압축률을 적용함으로써, 타겟 객체의 인식 정확도를 향상시킬 수 있다. 또한, 복수의 CTU(800-1 내지 800-n) 중 타겟 객체가 검출되지 않은 적어도 하나의 제2 CTU(820)의 경우, 상대적으로 중요도가 떨어지는 배경 이미지일 가능성이 높다. 따라서, 본 개시의 디바이스(1000)는 타겟 객체가 검출된 적어도 하나의 제1 CTU(810)의 경우보다 더 높은 압축률로 압축함으로써 압축 후의 데이터 용량을 감소시킬 수 있을 뿐만 아니라, 압축 및 부호화의 연산량을 감소시키고, 처리 속도(processing speed)를 향상시킬 수 있다.
도 10은 본 개시의 일 실시예에 따른 디바이스(1000)가 심층 신경망 모델을 통해 결정된 압축률 값을 네트워크 대역폭에 따른 압축률 값 및 초기 설정된 압축률 값과 비교하고, 비교 결과에 기초하여 최종 압축률 값을 결정하는 방법을 도시한 흐름도이다.
도 10에 도시된 단계 S1010 내지 단계 S1070은 도 4에 도시된 단계 S420이 수행된 이후 수행되는 단계들이다. 단계 S1070이 수행된 이후에는 도 4에 도시된 단계 S430이 수행될 수 있다.
단계 S1010에서, 디바이스(1000)는 네트워크 대역폭에 기초하여 압축률 값 QPNW에 관한 정보를 획득한다. 일 실시예에서, 압축률 값 QPNW은 디바이스(1000)와 연결된 네트워크 환경, 예를 들어 네트워크 대역폭에 따라 송수신 가능한 비트레이트(bitrate)에 기초하여 결정될 수 있다. 디바이스(1000)는, 디바이스(1000)와 연결된 네트워크의 대역폭을 측정하고, 측정된 네트워크 대역폭에 따른 압축률 값 QPNW에 관한 정보를 획득할 수 있다.
단계 S1020에서, 디바이스(1000)는 심층 신경망 모델에 의해 결정된 압축률 값인 QPdet 및 초기 설정된 압축률 값인 QPinit을 네트워크 대역폭에 따라 결정되는 압축률 값인 QPNW과 비교한다. 일 실시예에서, 디바이스(1000)는 심층 신경망 모델(1340, 도 3 참조)에 영상을 입력함으로써, 출력된 압축률 값인 QPdet와 인코딩 모듈(1312, 도 3 참조)에 의해 초기 설정된 압축률 값인 QPinit을 단계 S1010에서 획득된 네트워크 대역폭에 따른 압축률 값인 QPNW과 비교할 수 있다.
단계 S1030에서, 디바이스(1000)는 심층 신경망 모델(1340)에 의해 결정된 압축률 값인 QPdet가 초기 설정된 압축률 값인 QPinit 이상이고, 네트워크 대역폭에 따라 결정된 압축률 값인 QPNW가 QPinit 이하인지 여부를 확인한다(identify).
QPdet 값이 QPinit 이상이고, QPNW의 값이 QPinit 이하인 경우(단계 S1032), 디바이스(1000)는 심층 신경망 모델(1340)을 통해 출력된 압축률 값인 QPdet를 영상을 압축하고 부호화할 최종 압축률 값으로 결정한다. 심층 신경망 모델(1340)에 의해 결정된 압축률 값인 QPdet가 초기 설정된 압축률 값인 QPinit 보다 큰 경우, 영상으로부터 타겟 객체를 정상적으로 인식할 수 있는 압축률 값(QPdet)이 초기 설정된 압축률 값(QPinit) 보다 크므로 타겟 객체의 인식이 가능하고, 초기 설정된 압축률 값(QPinit)이 네트워크 대역폭에 따라 결정되는 압축률 값(QPNW) 보다는 크므로, 네트워크를 통해 비트스트림을 전송하는데에도 문제가 없기 때문에, 디바이스(1000)는 심층 신경망 모델(1340)에 의해 결정된 압축률 값인 QPdet을 최종 압축률 값으로 결정할 수 있다.
QPdet 값이 QPinit 이하이고, QPNW의 값이 QPinit을 초과하는 것으로 확인된 경우(단계 S1040), 디바이스(1000)는 심층 신경망 모델(1340)을 통해 출력된 압축률 값인 QPdet가 초기 설정된 압축률 값인 QPinit 이하인지 여부를 확인한다.
QPdet의 값이 QPinit 이하인 것으로 확인된 경우(단계 S1042), 디바이스(1000)는 영상에 포함되는 복수의 CTU 중 타겟 객체가 검출된 적어도 하나의 CTU에 관한 압축률의 값을 QPdet로 결정한다.
QPdet의 값이 QPinit의 값을 초과하는 것으로 확인된 경우(단계 S1050), 디바이스(1000)는 네트워크 대역폭에 따라 결정되는 압축률 값인 QPNW가 초기 설정된 압축률 값인 QPinit의 값을 초과하는지 여부를 확인한다.
QPNW의 값이 QPinit을 초과하는 것으로 확인된 경우(단계 S1052), 디바이스(1000)는 네트워크 대역폭에 따라 결정되는 압축률 값인 QPNW를 타겟 객체가 포함되는 적어도 하나의 CTU에 관한 압축률로 결정한다. QPNW가 초기 설정된 압축률 값인 QPinit 보다 큰 경우, 네트워크를 통해 비트스트림을 전송하기 위해서는 네트워크 대역폭에 따른 압축률 값인 QPNW로 영상을 압축해야 하기 때문이다.
단계 S1060에서, 디바이스(1000)는 영상에 포함되는 복수의 CTU 중 타겟 객체가 검출되지 않은 적어도 하나의 CTU의 압축률의 값을 조정한다(adjust). 타겟 객체가 검출된 적어도 하나의 CTU에 관한 압축률이 단계 S1042에서는 QPdet로 결정되고, 단계 S1052에서는 QPNW로 결정되었는바, 디바이스(1000)는 초기 설정된 압축률의 값인 QPinit로 영상을 압축하는 경우와 비교하여 증가된 비트레이트(bitrate)를 보상하기 위하여, 타겟 객체가 검출되지 않은 적어도 하나의 CTU에 관한 압축률의 값을 조정할 수 있다. 일 실시예에서, 디바이스(1000)는 영상에 포함되는 복수의 CTU 중 타겟 객체가 검출되지 않은 적어도 하나의 CTU에 적용되는 압축률의 값을 기존에 설정된 압축률의 값보다 높게 변경할 수 있다.
QPNW의 값이 QPinit 이하인 경우(단계 S1060), 디바이스(1000)는 초기 압축률 값인 QPinit을 최종 압축률 값으로 결정한다.
단계 S430에서, 디바이스(1000)는 결정된 압축률 값으로 영상을 압축하고, 부호화함으로써, 비트스트림을 생성한다.
도 10에 도시된 실시예에서, 디바이스(1000)는 심층 신경망 모델(1340)을 통해 출력된 압축률 값인 QPdet를 영상을 압축하는 최종 압축률로 결정하는 것이 아니라, 네트워크 환경(예를 들어, 네트워크 대역폭 정보)에 따라 획득된 압축률 값 QPNW 및 초기 설정된 압축률 값 QPinit을 고려하여 최종 압축률을 결정할 수 있다. 따라서, 본 개시의 디바이스(1000)는 영상으로부터 타겟 객체를 인식할 수 있을 뿐 아니라, 네트워크 대역폭에 따라 송수신 가능한 비트레이트를 고려하여 영상의 압축률을 정할 수 있다.
본 개시를 통해 설명된 디바이스(1000)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. 예를 들어, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
또한, 본 명세서에 개시된 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예를 들어, 삼성 갤럭시 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제3의 디바이스(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3의 디바이스의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제3 디바이스로 전송되거나, 제3 디바이스로부터 디바이스로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 디바이스 및 제3 디바이스 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제3 디바이스 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 디바이스가 컴퓨터 프로그램 제품을 실행하여, 제3 디바이스와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다.
제3 디바이스가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 디바이스는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 디바이스는 프리로드(pre-loaded)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (15)

  1. 디바이스(device)가 영상을 처리(processing)하는 방법에 있어서,
    영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하는 단계;
    상기 영상 및 상기 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 상기 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하는 단계; 및
    상기 출력된 압축률을 이용하여 상기 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성하는 단계;
    를 포함하는, 방법.
  2. 제1 항에 있어서,
    기획득된 복수의 원본 영상, 상기 복수의 원본 영상으로부터 추출된 복수의 특징 맵 및 상기 복수의 원본 영상 각각으로부터 타겟 객체가 정상적으로 인식되는 최적의 압축률 값을 포함하는 학습 데이터를 생성하는 단계;
    를 더 포함하는, 방법.
  3. 제2 항에 있어서,
    상기 학습 데이터를 생성하는 단계는,
    기획득된 원본 영상을 기 설정된 압축률로 압축하고, 부호화 및 복호화함으로써 복원 영상을 생성하는 단계;
    상기 원본 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 상기 검출된 타겟 객체로부터 제1 특징 벡터(feature vector)를 추출(extract)하는 단계;
    상기 복원 영상으로부터 상기 타겟 객체를 검출하고, 상기 검출된 타겟 객체로부터 제2 특징 벡터를 추출하는 단계; 및
    상기 원본 영상으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 상기 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도에 기초하여, 상기 원본 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값을 결정하는 단계;
    를 포함하는, 방법.
  4. 제3 항에 있어서,
    상기 최적의 압축률 값을 결정하는 단계는,
    상기 제1 관심 영역과 상기 제2 관심 영역 간의 중첩도를 산출하는 단계;
    상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도를 산출하는 단계; 및
    상기 산출된 중첩도를 기설정된 제1 임계치와 비교하고, 상기 산출된 유사도를 기설정된 제2 임계치와 비교하는 단계;
    를 포함하는, 방법.
  5. 제4 항에 있어서,
    상기 최적의 압축률을 결정하는 단계는,
    비교 결과, 상기 중첩도가 상기 제1 임계치 이하이거나, 또는 상기 유사도가 상기 제2 임계치 이하인 경우, 상기 압축률을 상기 기설정된 압축률 보다 낮은 값으로 변경하는 단계;
    를 포함하는, 방법.
  6. 제4 항에 있어서,
    상기 최적의 압축률 값을 결정하는 단계는,
    상기 산출된 중첩도가 상기 제1 임계치를 초과하고, 상기 산출된 유사도가 상기 제2 임계치를 초과하는 경우, 상기 복원 영상을 생성하는데 이용된 상기 압축률을 최종 압축률로 결정하는 단계;
    를 포함하는, 방법.
  7. 제3 항에 있어서,
    상기 학습 데이터를 생성하는 단계를 상기 복수의 원본 영상에 대하여 수행함으로써, 상기 복수의 타겟 맵 및 상기 복수의 최소 압축률 값에 관한 정보를 획득하는 단계; 및
    상기 복수의 원본 영상, 상기 복수의 타겟 맵, 및 상기 복수의 최소 압축률 값에 관한 정보를 데이터베이스에 저장하는 단계;
    를 더 포함하는, 방법.
  8. 영상을 처리하는 디바이스에 있어서,
    적어도 하나의 카메라;
    서버 또는 타 디바이스와 유무선으로 연결되고, 데이터 통신을 수행하는 통신 인터페이스;
    하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및
    상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 프로세서;
    를 포함하고,
    상기 프로세서는,
    상기 적어도 하나의 카메라 또는 상기 통신 인터페이스를 통해 영상을 입력받고,
    상기 입력된 영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하고,
    상기 영상 및 상기 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 상기 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하고,
    상기 출력된 압축률을 이용하여 상기 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성하는, 디바이스.
  9. 제8 항에 있어서,
    상기 프로세서는,
    기획득된 복수의 원본 영상, 상기 복수의 원본 영상으로부터 추출된 복수의 특징 맵 및 상기 복수의 원본 영상 각각으로부터 타겟 객체가 정상적으로 인식되는 최적의 압축률 값을 포함하는 학습 데이터를 생성하는, 디바이스.
  10. 제9 항에 있어서,
    상기 심층 신경망 모델은, 상기 복수의 원본 영상 및 상기 복수의 특징 맵을 입력으로 적용하고, 상기 최적의 압축률 값을 정답값(groundtruth)으로 적용하는 학습(training)을 수행함으로써 획득되는 모델 파라미터로 구성되는, 디바이스.
  11. 제9 항에 있어서,
    상기 프로세서는,
    기획득된 원본 영상을 기 설정된 압축률로 압축하고, 부호화 및 복호화함으로써 생성된 복원 영상을 생성하고,
    상기 원본 영상으로부터 타겟 객체(target object)를 검출(detect)하고, 상기 검출된 타겟 객체로부터 제1 특징 벡터(feature vector)를 추출(extract)하고,
    상기 복원 영상으로부터 상기 타겟 객체를 검출하고, 상기 검출된 타겟 객체로부터 제2 특징 벡터를 추출하고,
    상기 원본 영상으로부터 검출된 타겟 객체를 포함하는 제1 관심 영역과 상기 복원 영상으로부터 검출된 타겟 객체를 포함하는 제2 관심 영역 간의 중첩도 및 상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도에 기초하여, 상기 원본 영상으로부터 상기 타겟 객체를 정상적으로 인식하기 위한 최적의 압축률 값을 결정하는, 디바이스.
  12. 제11 항에 있어서,
    상기 프로세서는,
    상기 제1 관심 영역과 상기 제2 관심 영역 간의 중첩도를 산출하고,
    상기 제1 특징 벡터와 상기 제2 특징 벡터 간의 유사도를 산출하고,
    상기 산출된 중첩도를 기설정된 제1 임계치와 비교하고, 상기 산출된 유사도를 기설정된 제2 임계치와 비교하는, 디바이스.
  13. 제12 항에 있어서,
    상기 프로세서는,
    비교 결과, 상기 중첩도가 상기 제1 임계치 이하이거나, 또는 상기 유사도가 상기 제2 임계치 이하인 경우, 상기 압축률을 상기 기설정된 압축률 보다 낮은 값으로 변경하는, 디바이스.
  14. 제12 항에 있어서,
    상기 프로세서는,
    상기 산출된 중첩도가 상기 제1 임계치를 초과하고, 상기 산출된 유사도가 상기 제2 임계치를 초과하는 경우, 상기 복원 영상을 생성하는데 이용된 상기 압축률을 최종 압축률로 결정하는, 디바이스.
  15. 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)에 있어서,
    상기 저장 매체는,
    영상으로부터 타겟 객체를 검출하기 위한 특징 맵(feature map)을 획득하는 단계;
    상기 영상 및 상기 특징 맵을 기 학습된(pre-trained) 모델 파라미터로 구성된 심층 신경망 모델(Deep Neural Network)에 입력함으로써, 상기 영상으로부터 타겟 객체를 정상적으로 인식하기 위한 압축률을 출력하는 단계; 및
    상기 출력된 압축률을 이용하여 상기 영상을 압축하고 부호화함으로써, 비트스트림(bitstream)을 생성하는 단계;
    를 포함하는, 디바이스가 수행하는 명령어들(instructions)을 포함하는 컴퓨터 프로그램 제품.
PCT/KR2021/013118 2020-09-29 2021-09-27 영상을 처리하는 디바이스 및 그 동작 방법 WO2022071695A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21875970.2A EP4220560A4 (en) 2020-09-29 2021-09-27 APPARATUS FOR PROCESSING AN IMAGE AND METHOD FOR OPERATING SAME
CN202180066370.3A CN116261741A (zh) 2020-09-29 2021-09-27 用于处理图像的设备以及用于操作该设备的方法
US18/127,304 US20230232026A1 (en) 2020-09-29 2023-03-28 Device for processing image and method for operating same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0127386 2020-09-29
KR1020200127386A KR20220043694A (ko) 2020-09-29 2020-09-29 영상을 처리하는 디바이스 및 그 동작 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/127,304 Continuation US20230232026A1 (en) 2020-09-29 2023-03-28 Device for processing image and method for operating same

Publications (1)

Publication Number Publication Date
WO2022071695A1 true WO2022071695A1 (ko) 2022-04-07

Family

ID=80950770

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/013118 WO2022071695A1 (ko) 2020-09-29 2021-09-27 영상을 처리하는 디바이스 및 그 동작 방법

Country Status (5)

Country Link
US (1) US20230232026A1 (ko)
EP (1) EP4220560A4 (ko)
KR (1) KR20220043694A (ko)
CN (1) CN116261741A (ko)
WO (1) WO2022071695A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116347080A (zh) * 2023-03-27 2023-06-27 任红梅 基于下采样处理的智能算法应用系统及方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022059843A (ja) * 2020-10-02 2022-04-14 株式会社東芝 学習モデルの生成方法、学習済みモデル、画像処理方法、画像処理システム、及び溶接システム
EP4017003A1 (en) * 2020-12-17 2022-06-22 Palantir Technologies Inc. Approaches for lossy compression using machine learning
WO2024043760A1 (ko) * 2022-08-25 2024-02-29 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
US20240163564A1 (en) * 2022-11-16 2024-05-16 Advanced Micro Devices, Inc. Method and apparatus for normalizing an image in an image capturing device
CN117968222B (zh) * 2024-04-01 2024-05-28 深圳市森皓伟业制冷设备有限公司 一种基于目标检测的制冷设备的控制方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062732A (ko) * 2003-01-03 2004-07-09 엘지전자 주식회사 오브젝트 기반 비트율 제어방법 및 장치
JP2011087090A (ja) * 2009-10-14 2011-04-28 Panasonic Corp 画像処理方法、画像処理装置、及び撮像システム
KR20180105294A (ko) * 2017-03-14 2018-09-28 한국전자통신연구원 이미지 압축 장치
US20190132591A1 (en) * 2017-10-26 2019-05-02 Intel Corporation Deep learning based quantization parameter estimation for video encoding
JP2020518191A (ja) * 2017-07-11 2020-06-18 ソニー株式会社 ディープニューラルネットワークを用いた、視覚的品質を維持した量子化パラメータ予測

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10499056B2 (en) * 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
EP3808086B1 (en) * 2018-08-14 2024-10-09 Huawei Technologies Co., Ltd. Machine-learning-based adaptation of coding parameters for video encoding using motion and object detection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062732A (ko) * 2003-01-03 2004-07-09 엘지전자 주식회사 오브젝트 기반 비트율 제어방법 및 장치
JP2011087090A (ja) * 2009-10-14 2011-04-28 Panasonic Corp 画像処理方法、画像処理装置、及び撮像システム
KR20180105294A (ko) * 2017-03-14 2018-09-28 한국전자통신연구원 이미지 압축 장치
JP2020518191A (ja) * 2017-07-11 2020-06-18 ソニー株式会社 ディープニューラルネットワークを用いた、視覚的品質を維持した量子化パラメータ予測
US20190132591A1 (en) * 2017-10-26 2019-05-02 Intel Corporation Deep learning based quantization parameter estimation for video encoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4220560A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116347080A (zh) * 2023-03-27 2023-06-27 任红梅 基于下采样处理的智能算法应用系统及方法
CN116347080B (zh) * 2023-03-27 2023-10-31 苏州利博特信息科技有限公司 基于下采样处理的智能算法应用系统及方法

Also Published As

Publication number Publication date
EP4220560A1 (en) 2023-08-02
EP4220560A4 (en) 2023-11-15
CN116261741A (zh) 2023-06-13
US20230232026A1 (en) 2023-07-20
KR20220043694A (ko) 2022-04-05

Similar Documents

Publication Publication Date Title
WO2022071695A1 (ko) 영상을 처리하는 디바이스 및 그 동작 방법
WO2021101243A1 (en) Apparatus and method for using ai metadata related to image quality
WO2016064185A1 (ko) 최적화 함수를 이용하여 그래프 기반 예측을 수행하는 방법 및 장치
WO2021107406A1 (en) Electronic device, control method thereof, and system
WO2019074252A1 (en) METHOD AND ELECTRONIC DEVICE FOR PROCESSING A CAMERA-ACQUIRED RAW IMAGE USING AN EXTERNAL ELECTRONIC DEVICE
WO2020235852A1 (ko) 특정 순간에 관한 사진 또는 동영상을 자동으로 촬영하는 디바이스 및 그 동작 방법
WO2020013631A1 (ko) 3차원 영상을 부호화 하는 방법 및 장치, 및 3차원 영상을 복호화 하는 방법 및 장치
WO2019017641A1 (ko) 전자 장치 및 전자 장치의 이미지 압축 방법
WO2019164185A1 (en) Electronic device and method for correcting image corrected in first image processing scheme in external electronic device in second image processing scheme
WO2022114731A1 (ko) 딥러닝 기반 비정상 행동을 탐지하여 인식하는 비정상 행동 탐지 시스템 및 탐지 방법
WO2019156428A1 (en) Electronic device and method for correcting images using external electronic device
WO2021091161A1 (en) Electronic device and method of controlling the same
WO2022010122A1 (ko) 영상을 제공하는 방법 및 이를 지원하는 전자 장치
WO2022186443A1 (ko) 전자 장치에서 이미지의 압축 품질에 기반한 이미지 보정 방법 및 장치
WO2021256781A1 (ko) 영상을 처리하는 디바이스 및 그 동작 방법
WO2019017720A1 (ko) 사생활 보호를 위한 카메라 시스템 및 그 방법
WO2019160262A1 (ko) 전자 장치 및 전자 장치의 이미지 처리 방법
WO2021230680A1 (en) Method and device for detecting object in image
WO2022108201A1 (ko) 영상을 제공하는 방법 및 이를 지원하는 전자 장치
WO2022031041A1 (ko) 단말에 3d 캐릭터 이미지를 제공하는 엣지 데이터 네트워크 및 그 동작 방법
WO2022225375A1 (ko) 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치
WO2020235861A1 (ko) 집중 레이어를 포함하는 생성기를 기반으로 예측 이미지를 생성하는 장치 및 그 제어 방법
WO2021235641A1 (ko) 나이 추정 장치 및 나이를 추정하는 방법
WO2023146286A1 (ko) 이미지의 화질을 개선하기 위한 전자 장치 및 방법
WO2022191495A1 (ko) 전자 장치 및 그의 얼굴 인식 방법

Legal Events

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

Ref document number: 21875970

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021875970

Country of ref document: EP

Effective date: 20230426