WO2019088657A1 - 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치 - Google Patents

은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치 Download PDF

Info

Publication number
WO2019088657A1
WO2019088657A1 PCT/KR2018/013013 KR2018013013W WO2019088657A1 WO 2019088657 A1 WO2019088657 A1 WO 2019088657A1 KR 2018013013 W KR2018013013 W KR 2018013013W WO 2019088657 A1 WO2019088657 A1 WO 2019088657A1
Authority
WO
WIPO (PCT)
Prior art keywords
components
hidden variable
neural network
variable
hidden
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2018/013013
Other languages
English (en)
French (fr)
Inventor
이주영
조승현
김연희
석진욱
임웅
김종호
이대열
정세윤
김휘용
최진수
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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 Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Priority to US16/760,609 priority Critical patent/US11477468B2/en
Priority claimed from KR1020180130680A external-priority patent/KR102285064B1/ko
Publication of WO2019088657A1 publication Critical patent/WO2019088657A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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

Definitions

  • the following embodiments relate to a method and apparatus for image compression, and more particularly, to a method and apparatus for image and neural network compression using hidden variables.
  • High-efficiency video encoding and / or decoding techniques are required to solve these problems that occur as images become ultra-high resolution and high quality.
  • the neural network for image compression based on the auto encoder consists of an encoder neural network and a decoder neural network.
  • the encoder neural network receives the image as input and generates a lower level of concealment variable called a bottleneck.
  • the decoder neural network receives the hidden variable as an input and reconstructs the image using the received hidden variable.
  • Neural network pruning is a neural network compression method that speeds up the execution speed of a network by reducing the size of parameters. It is a technique that allows the performance of the neural network to be maintained as much as possible even when the size of the parameters is reduced.
  • the complexity and performance of the neural network have a trade-off relationship with each other, and the ratio of required performance to complexity may vary depending on the application purpose and environment of the neural network.
  • the rate and distortion that is, the required bit amount and the image quality of the reconstructed image
  • the neural network pruning method can be used to derive neural networks of various performance and complexity from one network.
  • One embodiment may provide an apparatus and method for performing encoding and / or decoding on an image using an ordered hidden variable.
  • One embodiment may provide an apparatus and method for performing neural network pruning using ordered hidden variables.
  • obtaining a concealment variable obtaining a concealment variable; And performing a selection or processing associated with the hidden variable, wherein a plurality of components of the hidden variable are arranged in a specified order.
  • the plurality of components may be arranged in order of importance.
  • the hidden variable may be obtained through a pre-learned encoder neural network.
  • Losses in the learning of the neural network may include reconstruction losses and rare penalties.
  • the rare penalty may be a weighted sum of values of a plurality of components of the hidden variable.
  • the weight given to each component of the plurality of components may be related to the frequency with which feature information represented by each component is used in input images used for learning.
  • only the element of the component of the upper index of a part of the plurality of components of the hidden variable may be activated for each learning step of the plurality of learning steps.
  • the number of components of the upper index of the activated part may be determined at random.
  • the loss in learning of the neural network may be reconstruction loss.
  • the probability that each component influences the magnitude of the reconstruction loss can be adjusted by adjusting the activation of each component of the plurality of components of the hidden variable.
  • the selection may be to remove information of insignificance in the reconstruction of the image from the hidden variable.
  • the processing may be to reduce the amount of data for the hidden variable by removing a specified component of the plurality of components of the hidden variable.
  • the specified component may be one or more components having the lowest importance.
  • the processing may be a quantization for the hidden variable.
  • the plurality of components may be arranged in order of importance.
  • the processing method may further include generating the concealment variable using the concealed variable generation information.
  • the reconstructed image may be generated using only feature information of some of the plurality of components of the hidden variable.
  • the ranking of each component of the plurality of components may be determined based on the component index of each component.
  • a computer-readable recording medium storing a bitstream is provided.
  • the bitstream may include hidden variable generation information.
  • a concealment variable may be generated using the concealment variable information.
  • the reconstructed image can be generated using the decoder neural network to which the hidden variable is applied.
  • the plurality of components of the hidden variable may be arranged in a specified order.
  • An apparatus and method for performing encoding and / or decoding on an image using an ordered hidden variable are provided.
  • An apparatus and method for performing neural network pruning using ordered hidden variables are provided.
  • FIG. 1 illustrates a relationship between an input image, a restored image, and a concealment parameter according to an exemplary embodiment of the present invention.
  • FIG. 2 is a structural diagram of an encoder according to an embodiment.
  • FIG. 3 is a structural diagram of a decoder according to an embodiment.
  • FIG. 4 is a flow chart of an encoding method according to one embodiment.
  • FIG. 5 is a flow chart of a decoding method according to one embodiment.
  • FIG. 6 shows a learning method for sorting hidden variables according to an embodiment in order of importance.
  • FIG. 8 shows a learning method for sorting hidden variables according to an embodiment in order of importance.
  • FIG. 9 illustrates an electronic device implementing an encoder in accordance with one embodiment.
  • FIG. 10 illustrates an electronic device implementing a decoder in accordance with one embodiment.
  • FIG. 11 shows a neural network pruning method according to an embodiment.
  • FIG. 12 illustrates a method of providing various performance neural networks based on a learned neural network to which a neural network pruning method according to an exemplary embodiment is applied.
  • first and second may be used to describe various components, but the components should not be limited by the terms above. The above terms are used to distinguish one component from another.
  • the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
  • each component is listed as each component for convenience of explanation. For example, at least two of the components may be combined into a single component. Also, one component can be divided into a plurality of components. The integrated embodiments and the separate embodiments of each of these components are also included in the scope of the right without departing from the essence.
  • components are not essential components to perform essential functions, but may be optional components only to improve performance.
  • Embodiments may be implemented only with components that are essential to implementing the essentials of the embodiments, and structures within which the optional components are excluded, such as, for example, components used only for performance enhancement, are also included in the scope of the right.
  • DCT discrete cosine transform
  • Embodiments describe a transformation method that uses artificial neural networks based on convolutional auto-encoders to provide better energy condensation performance over conventional 2D DCT. This conversion method can be called a transformative autoencoder.
  • FIG. 1 illustrates a relationship between an input image, a restored image, and a concealment parameter according to an exemplary embodiment of the present invention.
  • the auto-encoder may be an artificial neural network that converts the input image data into a hidden variable space. As the coefficients of the transformed hidden variable have energy condensation properties, the image information can be expressed with fewer components due to the coefficients of the transformed hidden variable.
  • the component of the hidden variable may be one value constituting the hidden variable.
  • the components of the hidden variable may be a set of values obtained from the same feature filter. If the component of the hidden variable is a set, the index identifying the component may be an index to identify a particular set from the sets. For example, if the neural network is constructed using a convolution layer, the component may denote the channel of the hidden variable, and the component index may denote the channel index.
  • Fig. 1 the hiding parameters of the auto encoder are shown. Hidden variables can be sorted in order of importance.
  • the encoder neural network can receive the input image and extract feature information of the input image.
  • the encoder neural network can construct hidden variables based on extracted feature information.
  • the decoder neural network can receive the hidden variable and reconstruct the image using the received hidden variable.
  • the decoder neural network can output the reconstructed image.
  • the concealment variable can be composed of N components.
  • Each component constituting the concealment variable having N components can represent unique feature information on the input image.
  • Feature information can represent various characteristics of the input image such as brightness, color and shape learned through the encoder neural network.
  • the lower the index of the component the more important the feature information is in reconstructing the image.
  • the characteristic information of a low frequency component considered to be important in a human visual system (HVS) can be represented by a component having a low index.
  • the higher the index of the component the more the feature information of the high frequency component can be expressed. That is to say, a component having a low index can be regarded as a higher component.
  • the auto encoder can concentrate the above information on higher-order components based on the index of the hidden variable as the information that greatly influences reconstruction of the image.
  • the sorted feature information can be learned variously according to the importance.
  • FIG. 2 is a structural diagram of an encoder according to an embodiment.
  • the encoder 200 can receive an input image and can generate a bitstream.
  • the encoder 200 may include a feature extraction unit 210, a hidden variable selection unit 220, and an encoding unit 230.
  • FIG. 3 is a structural diagram of a decoder according to an embodiment.
  • the decoder 300 can receive the bitstream and generate reconstructed images.
  • the decoder 300 may include a decoding unit 310, a hidden variable restoring unit 320, and an image reconstructing unit 330.
  • decoding unit 310 Functions and operations of the decoding unit 310, the hidden variable restoring unit 320, and the image reconstructing unit 330 will be described below with reference to FIG. 5 and the like.
  • FIG. 4 is a flow chart of an encoding method according to one embodiment.
  • the encoder 200 can receive an input image, and can perform encoding on the input image to generate an encoded bitstream.
  • the feature extraction unit 210 may obtain the concealment variable.
  • the encoder 200 may include an encoder neural network. Alternatively, the encoder 200 may operate the learning of the encoder neural network. The encoder 200 can perform learning of the encoder neural network using the input image. The hidden variable of the encoder neural network can be constructed according to the learning of the encoder neural network.
  • the feature extraction unit 210 may acquire the concealment variable through the previously learned encoder neural network.
  • the obtained hidden variables may be arranged in a specified order.
  • the concealment variable may have N components.
  • a hidden variable arranged in a specified order may mean that the N components of the hidden variable are arranged in a specified order.
  • sorting hidden variables in a specified order may mean sorting the N components of the hidden variable in a specified order.
  • the specified order may be an order of importance.
  • the feature extraction unit 210 may obtain hidden variables arranged in order of importance through the previously-learned encoder neural network.
  • the hidden variable selector 220 may perform a selection or processing associated with the hidden variable.
  • the hidden variable selecting unit 220 may generate hidden variable generating information by performing selection or processing related to the hidden variable.
  • the secret variable creation information may be information used to generate the secret variable to which the above selection or processing is applied.
  • the format of the hiding variable generation information may be different from that of the hidden variable.
  • the hidden variable selecting unit 220 may remove information having low importance in reconstructing an image from the hidden variables.
  • information of high importance can be selectively extracted from the hidden variables.
  • the hidden variable selector 220 may reduce the amount of data for the hidden variable by removing a specified component among the N components of the hidden variable.
  • the specified component may be a component with low importance.
  • the hidden variable selecting unit 220 may remove M components in order of decreasing significance among the N components of the hidden variable. M may be an integer less than N.
  • the hidden variable selector 220 may remove one or more components having the lowest significance among the N components of the hidden variable.
  • hidden variables arranged in order of importance may have an energy compaction property.
  • the hidden variable selecting unit 220 can remove the low energy value from the hidden variable by performing quantization on the hidden variable.
  • the encoding unit 230 may perform entropy encoding.
  • the encoding unit 230 may generate an encoded bitstream by performing entropy encoding on the output from the hidden variable selecting unit 220.
  • the output from the hidden variable selecting unit 220 may include hidden variable generating information.
  • the encoded bitstream may include information of an encoded image.
  • Step 430 may be optional.
  • FIG. 5 is a flow chart of a decoding method according to one embodiment.
  • the decoder 300 may receive the encoded bit stream and may perform decoding using the encoded bit stream to generate a reconstructed image.
  • the decoding unit 310 may generate an input to the hidden variable restoring unit 320 by performing entropy decoding on the encoded bitstream.
  • the input to the hidden variable restoring unit 320 may include hidden variable generating information.
  • Step 510 may be optional.
  • the hidden variable restoring unit 320 may generate the hidden variable using the hidden variable generating information.
  • the generated hidden variables may be hidden variables arranged in a specified order.
  • step 420 by selection or processing associated with the hidden variable, hidden variable creation information having a format different from that of the hidden variable may be generated.
  • the selection or processing may include the removal of components and the process of quantization.
  • the creation of a hidden variable using the hidden variable creation information may include initializing or recovering the removed element of the hidden variable.
  • the creation of the hidden variable may include returning the form of the quantized hidden variable back to its pre-quantization form.
  • the hidden variable restoring unit 320 can generate hidden variables that can be interpreted by the decoder neural network of the decoder 300 using the hidden variable information. For example, the hidden variable creation information may be changed to the hidden variable form by the hidden variable restoring unit 320.
  • the image reconstructing unit 330 may apply the reconstructed concealed variable to the decoder neural network, and generate the reconstructed image using the decoder neural network to which the reconstructed concealment variable is applied.
  • the reconstructed image can be as similar as the input image.
  • FIG. 6 shows a learning method for sorting hidden variables according to an embodiment in order of importance.
  • a conventional auto encoder can perform learning of a neural network based on an error between an input image and a reconstructed image (i.e., reconstruction loss).
  • the feature information included in the components of the hidden variable may not be sorted in order of importance.
  • the component including the feature information having a large influence on the image quality of the reconstructed image and the component including the feature information having the small influence are randomly arranged .
  • the influence of the sorting of the hidden variables can be clearly revealed when the reconstructed image is generated using only the feature information of some of the components of the hidden variable.
  • the reconstruction of the reconstructed image may be performed using only the components of the upper portion of the plurality of components of the hidden variable.
  • the plurality of components may be N pieces.
  • the rank (i.e., upper and lower) of each component of the plurality of components can be determined based on the component index of the component. For example, the lower the component index of a component, the higher the component.
  • the quality of the reconstructed image generated using the sorted hidden variable and the unaligned hidden variable can be almost the same.
  • the quality of the reconstructed image may be higher than that of the reconstructed image generated using the unaligned concealment variable.
  • the quality of the reconstructed image generated using the sorted hidden variable and the reconstructed image generated using the unaligned hidden variable The difference between the qualities can be larger.
  • the quality of the reconstructed image may appear to increase linearly with the number of components used in the reconstruction. At this time, in order to obtain a reconstructed image of good quality, the entirety of the components of the hidden variable may have to be used.
  • Fig. 6 a learning method for sorting the plurality of components of the concealment variable in order of importance is shown.
  • the loss in learning of the neural network may include reconstruction loss and a differential sparsity penalty.
  • losses may include reconstruction losses and differential rare penalties.
  • the reconstruction loss may be an error between the input image and the reconstructed image.
  • the rare penalty may be a weighted-sum of the values of the plurality of components of the hidden variable Z. That is to say, different weights can be assigned to the plurality of components of the confidential variable Z, respectively, and values can be obtained by respectively multiplying the values and weights of the plurality of components. The sum of the obtained values can be used as a rare penalty.
  • the weight assigned to each component of the plurality of components may be related to the frequency with which the feature information represented by each component is used in the input images used for learning.
  • the weight assigned to each component of the plurality of components may correspond to the frequency with which the feature information represented by each component is used in the input images used for learning.
  • the weight assigned to each component of the plurality of components may be proportional to the frequency with which the feature information represented by each component is used in the input images used for the learning.
  • the neural network can be learned so that the component to which the weight is applied can express feature information frequently used for various input images. Also, as the value of the differential weight is higher, the neural network can be learned so that the component to which the weight is applied can express characteristic information rarely used for various input images.
  • FIG. 8 shows a learning method for sorting hidden variables according to an embodiment in order of importance.
  • the loss in the learning of the neural network of the embodiment may be a reconstruction loss.
  • the auto encoder can perform learning.
  • the auto-encoder may be at least a part of the encoder 200 or at least a part of the decoder 300.
  • the auto-encoder may be included in the feature extraction unit 210 or the decoding unit 310.
  • the auto encoder may be a device separate from the encoder 200 and the decoder 300.
  • the auto-encoder can transmit the results of the learning to the encoder 200 and the decoder 300. [ The results of the learning can include hidden variables.
  • the loss function of learning can be calculated using the l1 distance between the patch of the input image and the patch of the reconstructed image.
  • the components of the upper index of any part of all the components of the hidden variable Z are activated, and the remaining components can be deactivated. Also, when one level of learning is performed, learning can be performed only on the neural network weight values connected to the activated components.
  • learning is performed by N learning steps, and it is shown that only a certain number of upper index components are activated in each step.
  • the component located below is shown to be a component of the upper index.
  • higher-order components can participate in learning at a higher frequency
  • lower-order components can participate in lower learning.
  • the probability that each component influences the magnitude of the reconstruction loss can be adjusted by adjusting the activation of each component of the plurality of components of the concealed variable.
  • the vector element of the component of the upper index of the hidden variable can influence the magnitude of the reconstruction loss with high probability. Therefore, the vector element of the component of the upper index of the hidden variable can express relatively more important feature information. On the other hand, the vector element of the component of the upper index of the hidden variable can influence the size of the reconstruction loss with a low probability, and can express relatively less important feature information.
  • a component having a higher index among the components of the hidden parameter of the auto encoder may contain more important information in the reconstruction of the image.
  • the number of higher-order components involved in the reconstruction of the image among the N components of the hidden variable may be defined using the random variable M. Even if any upper M components are used, the corresponding M components may contain the maximum information required for reconstruction.
  • the auto encoder can consider the values of the remaining components except for the upper components as '0' in reconstructing the image. In this case, the component set to '0' may not affect reconstruction of the image. Therefore, if the elements of the array are used, the auto-encoder can be regarded as an auto-encoder whose total number of elements of the hidden variable is m.
  • the probability distribution of the auto-encoder using a concealment variable with m components may be p ( x
  • x , ? , m ) Can be regarded as an expected value of. Can be expressed as Equation 1 below.
  • Lt; EMI ID 1.0 >
  • Equation 1 p ( x ) can mean the distribution of the input image x .
  • p (m ) can be a prior probability of the number of upper components used in reconstructing an image.
  • P for each of the m order to maximize (x
  • the learning process described below may be a process of optimizing the parameter [theta ].
  • the frequency with which each component of the hidden variable participates in the school can be set differentially.
  • m the number of components participating in learning, can be sampled according to the prior probability of Equation 2 below for each learning step, and only the top m components of the components of the hidden variable can participate in the learning have.
  • the first ingredient that has to contain the most important information is always able to participate in learning, and as the index of the ingredient increases, the frequency with which the ingredient participates in the learning process may be lower.
  • an element-wise multiplication of binary masks and concealment variables consisting of m consecutive ones and Nm consecutive zeros can be performed during learning .
  • the total number N of the components of the hidden variable is shown to be 16 for the simplicity of the notation.
  • a new m can be sampled and a sampled m can be used for learning.
  • the magnitude of the effect of the upper component of the hidden variable on the reconstructed image and the magnitude of the effect of the sub-component of the hidden variable on the reconstructed image may be different from each other. That is to say, the higher the component of the concealed variable is, the larger the influence of the above components on the reconstructed image can be.
  • Equation 3 The effect of the components of the hidden vector on the reconstructed image can be expressed as Equation 3 below.
  • Equation 3 g i can mean the degree of influence of z i , the ith component of the hidden variable z , on the output of the auto-encoder.
  • c is May be the number of channels.
  • w Can be defined as the width.
  • h is Quot; height "
  • the degree to which each component of the hidden variable affects video reconstruction may be different.
  • the inter-element multiplication of z and g can be used to perform normalization on the hidden variable signal based on these different degrees.
  • the final transformed signal can be generated by element-by-element multiplication.
  • the auto-encoder may include a transformed neural network and an inverse transformed neural network.
  • the transformed neural network transforms an 8x8 red, green, blue (RGB) image patch x into 192 hidden variables z using the convolution layer and the fully connected (FC) layer .
  • the convolution layer can have five layers.
  • the transformed neural network can obtain the final transformed signal through the inter-element multiplication of g and z .
  • g can represent the degree to which the components affect image reconstruction.
  • the inverse transform network is a process for converting the reconstructed image patch for the image patch x through the reverse process of the conversion process by the above- Lt; / RTI >
  • the process of generating the inter-element multiplication of z and g may be omitted in the learning process.
  • the binary masking operation for the hidden variable z can be performed only in the learning process, and may not be applied to the test for the auto encoder.
  • FIG. 9 illustrates an electronic device implementing an encoder in accordance with one embodiment.
  • the encoder 200 may be implemented as the electronic device 900 shown in Fig.
  • the electronic device 900 may be a general purpose computer system that operates as an encoder 200.
  • the electronic device 900 may include at least some of a processing unit 910, a communication unit 920, a memory 930, a storage 940, and a bus 990.
  • Components of the electronic device 900 such as the processing unit 910, the communication unit 920, the memory 930, and the storage 940, may communicate with each other via the bus 990.
  • the processing unit 910 may be a semiconductor device that executes the processing instructions stored in the memory 930 or the storage 940.
  • the processing unit 910 may be at least one hardware processor.
  • the processing unit 910 can process the job required for the operation of the electronic device 900. [ The processing unit 910 may execute the code of the operation or step of the processing unit 910 described in the embodiments.
  • the processing unit 910 may perform generation, storage, and output of information, and may perform operations of the steps performed in the other electronic device 900.
  • the communication unit 920 can be connected to the network 999. May receive data or information required for operation of electronic device 900 and may transmit data or information required for operation of electronic device 900. [ The communication unit 920 can transmit data to another device via the network 999 and can receive data from another device.
  • the communication unit 920 may be a network chip or a port.
  • Memory 930 and storage 940 may be various types of volatile or non-volatile storage media.
  • memory 930 may include at least one of ROM (R) 931 and RAM (RAM) 932.
  • the storage 940 may include internal storage media such as RAM, flash memory and hard disk, and may include removable storage media such as memory cards and the like.
  • the function or operation of the electronic device 900 may be performed as the processing unit 910 executes at least one program module.
  • the memory 930 and / or the storage 940 may store at least one program module.
  • At least one program module may be configured to be executed by the processing unit 910.
  • At least some of the feature extraction unit 210, the hidden variable selection unit 220 and the encoding unit 230 of the encoder 200 may be at least one program module.
  • the program modules may be included in the electronic device 900 in the form of an operating system, an application module, a library, and other program modules, and may be physically stored on various well-known storage devices. Also, at least some of these program modules may be stored in a remote storage device capable of communicating with the electronic device 900.
  • These program modules may be implemented as routines, subroutines, programs, and / or programs for performing specific operations or tasks according to the embodiments or for executing specific abstract data types. and may include, but is not limited to, an object, a component, and a data structure.
  • the electronic device 900 may further include a user interface (UI) input device 950 and a UI output device 960.
  • the UI input device 950 may receive the user's input required for operation of the electronic device 900.
  • the UI output device 960 can output information or data according to the operation of the electronic device 900.
  • FIG. 10 illustrates an electronic device implementing a decoder in accordance with one embodiment.
  • the decoder 300 may be implemented as the electronic device 1000 shown in FIG.
  • the electronic device 1000 may be a general purpose computer system that operates as a decoder 300.
  • the electronic device 1000 may include at least some of the processing unit 1010, the communication unit 1020, the memory 1030, the storage 1040, and the bus 1090. [ Components of the electronic device 1000 such as the processing unit 1010, the communication unit 1020, the memory 1030 and the storage 1040 can communicate with each other via the bus 1090. [
  • the processing unit 1010 may be a semiconductor device that executes the processing instructions stored in the memory 1030 or the storage 1040. [
  • the processing unit 1010 may be at least one hardware processor.
  • the processing unit 1010 can process a job required for the operation of the electronic device 1000. [ The processing unit 1010 may execute the code of the operation or step of the processing unit 1010 described in the embodiments.
  • the processing unit 1010 may perform generation, storage, and output of information, and may perform the operations of the steps performed in the other electronic device 1000.
  • the communication unit 1020 can be connected to the network 1099. May receive data or information required for operation of electronic device 1000 and may transmit data or information required for operation of electronic device 1000. [ The communication unit 1020 can transmit data to another device via the network 1099 and can receive data from another device.
  • the communication unit 1020 may be a network chip or a port.
  • Memory 1030 and storage 1040 can be various types of volatile or non-volatile storage media.
  • the memory 1030 may include at least one of a ROM (ROM) 1031 and a RAM (RAM)
  • the storage 1040 may include internal storage media such as RAM, flash memory and a hard disk, and may include removable storage media such as memory cards and the like.
  • the function or operation of the electronic device 1000 may be performed as the processing unit 1010 executes at least one program module.
  • Memory 1030 and / or storage 1040 may store at least one program module.
  • the at least one program module may be configured to be executed by the processing unit 1010.
  • At least some of the decoding unit 310, the hidden variable restoring unit 320 and the image reconstructing unit 330 of the decoder 300 may be at least one program module.
  • the program modules may be included in the electronic device 1000 in the form of an operating system, an application module, a library, and other program modules, and may be physically stored on various known memory devices. Also, at least some of these program modules may be stored in a remote storage device capable of communicating with electronic device 1000. These program modules may be implemented as routines, subroutines, programs, and / or programs for performing specific operations or tasks according to the embodiments or for executing specific abstract data types. and may include, but is not limited to, an object, a component, and a data structure.
  • the electronic device 1000 may further include a user interface (UI) input device 1050 and a UI output device 1060.
  • the UI input device 1050 can receive a user's input required for operation of the electronic device 1000.
  • the UI output device 1060 can output information or data according to the operation of the electronic device 1000.
  • FIG. 11 shows a neural network pruning method according to an embodiment.
  • a sorting method of hidden variables based on importance can be used for neural network pruning.
  • the encoder 200 performing the neural network pruning may be named as a neural network pruning device or the like.
  • the feature extraction unit 210 may acquire the concealment variable.
  • the obtained hidden variables can be sorted in order of importance.
  • the processing associated with the hidden variable may be neural network pruning.
  • Neural network pruning may be to remove nodes with low importance on the neural network.
  • the neural network may have an input layer and an output layer, and may have a plurality of hidden layers between the input layer and the output layer.
  • Fig. 11 illustratively two hidden layers are shown.
  • One layer may include a plurality of nodes.
  • the nodes of the neural network may correspond to the components of the above-mentioned hidden variables.
  • the plurality of components of the hidden variable may correspond to the nodes of the layer of the neural network, respectively.
  • the nodes of the neural network with the same indices and the components of the hidden variable may correspond to each other.
  • the alignment of the hidden variables of the embodiment can be applied to a plurality of layers at the same time.
  • the intensity of each node of the two hidden layers may indicate the importance of the sorted nodes according to the learning of the node.
  • the hidden variable selecting unit 220 may preferentially remove the node having the lowest importance in order to reduce the number of nodes of the neural network. Alternatively, the hidden variable selection unit 220 may remove M nodes in order of decreasing significance among the N nodes of the hidden layer.
  • This neural network pruning can be applied not only to compression of video and image but also to various kinds of neural networks, and the order of importance of hidden variables can be applied to the neural networks of various purposes as well.
  • FIG. 12 illustrates a method of providing various performance neural networks based on a learned neural network to which a neural network pruning method according to an exemplary embodiment is applied.
  • the concealed variable selection unit 220 may perform neural network pruning.
  • the hidden variable selection unit 220 can derive other neural networks having various performances and complexities from one neural network by defining parameters.
  • the hidden variable selecting unit 220 may derive a plurality of neural networks from one neural network using parameters indicating the pruning degree of the neural network pruning.
  • the plurality of neural networks may differ in performance and complexity.
  • the parameter may be the number or percentage of nodes used in each hidden layer of the plurality of hidden layers of the neural network. That is to say, the concealment variable selection unit 220 can derive other neural networks having various performances and complexities from one neural network by defining the number or the ratio of nodes used in each concealment layer of the plurality of concealment layers of the neural network .
  • Fig. 12 the value of the parameter p is shown on the right, and the neural network according to the value of the parameter p is shown on the left.
  • the parameter p may be the ratio of the nodes used among the nodes of each hidden layer of the entire hidden layers.
  • the parameter p may be the ratio of the nodes to be activated among the nodes of each hidden layer of the entire hidden layers.
  • the parameter p may be the number of nodes used among the nodes of each hidden layer of the entire hidden layers.
  • the parameter p may be common to all the hidden layers. Alternatively, the parameter p may be used for each of the plurality of hidden layers of the neural network.
  • the parameter p may be transmitted from another device to the neural network pruning device as needed and transmitted between neural network rendering devices.
  • the encoded bit stream may comprise a parameter p.
  • the encoder 200 may include the parameter p in the bitstream.
  • the decoder 300 may obtain the parameter p from the bitstream.
  • the degree of rate-distortion can be controlled by transmitting the information of parameter p as additional information.
  • the parameter p may be utilized as profile information for applying the neural network to the device appropriate to the performance level of the device. For example, with the parameter p, a hidden layer having a high ratio of nodes used in a device having high performance can be used, and a hidden layer having a low ratio of nodes used in a device having low performance can be used.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG.
  • the processing unit may comprise a plurality of processors or one processor and one controller.
  • Other processing configurations are also possible, such as a parallel processor.
  • the software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded.
  • the software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave.
  • the software may be distributed over a networked computer system and stored or executed in a distributed manner.
  • the software and data may be stored on one or more computer readable recording media.
  • the method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination.
  • the program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software.
  • the computer-readable recording medium may include information used in embodiments according to the present invention.
  • the computer readable recording medium may comprise a bit stream, and the bit stream may comprise the information described in embodiments according to the present invention.
  • the computer-readable recording medium may comprise a non-transitory computer-readable medium.
  • Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Includes hardware devices that are specially configured to store and execute program instructions such as magneto-tical media and ROM, RAM, flash memory, and the like.
  • Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

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

Abstract

은닉 변수를 이용하는 영상 압축을 위한 방법 및 장치가 제공된다. 은닉 변수의 복수의 성분들은 중요도의 순서로 정렬될 수 있다. 이러한 정렬을 통해 복수의 성분들 중 일부의 성분의 특징 정보들 만이 사용되는 경우에, 재구축된 영상의 품질이 향상될 수 있다. 이러한 중요도의 순서로 정렬된 은닉 변수를 생성하기 위해, 다양한 방식의 학습이 수행될 수 있다. 또한, 은닉 변수로부터 중요도가 낮은 정보가 제거될 수 있으며, 양자화와 같은 처리가 은닉 변수에 적용될 수 있다. 이러한 제거 및 처리에 의해 은닉 변수에 대한 데이터의 양이 감소될 수 있다.

Description

은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치
아래의 실시예들은 영상 압축을 위한 방법 및 장치에 관한 것으로 보다 상세히는 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치가 개시된다.
초고해상도 및 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상이 초고해상도 및 고품질이 될수록 전송되는 영상의 데이터 량이 증가하고, 영상의 데이터를 저장 및 전송하는 비용 또한 상승한다는 문제가 발생한다.
영상이 초고해상도 및 고품질이 됨에 따라 발생하는 이러한 문제들을 해결하기 위해 고효율의 영상 인코딩 및/또는 디코딩 기술이 요구된다.
종래의 영상 인코딩 및/또는 디코딩 알고리즘의 성능의 개선을 위한 복잡도가 기하급수적으로 증가하고, 성능 증가폭은 점차 줄어들고 있다. 이에 딥러닝(deep-learning) 기반의 신경망(neural network)을 이용한 비디오 인코딩 및/또는 디코딩에 대한 연구가 시작되고 있으며, 신경망의 한 유형인 오토인코더(autoencoder) 기반의 압축 기술이 주로 연구되고 있다.
오토인코더에 기반하는 영상 압축 용 신경망은 인코더 신경망 및 디코더 신경망으로 구성된다. 인코더 신경망은 영상을 입력으로 수신하고, 병목(bottleneck)이라고 불리우는 보다 낮은 차원의 은닉 변수를 생성한다. 디코더 신경망은 은닉 변수를 입력으로 수신하고, 수신된 은닉 변수를 사용하여 영상을 재구축(reconstruct)한다.
신경망 프루닝(pruning)은 파라미터의 크기를 감소시킴으로써 네트워크의 실행 속도를 빠르게 하는 신경망 압축 방식이며, 파라미터의 크기가 감소되더라도 신경망의 성능이 최대한 유지될 수 있도록 하는 기술이다.
나아가, 다양한 분야에 있어서, 신경망의 복잡도 및 성능은 서로 간에 상쇄(trade-off) 관계를 가지며, 신경망의 적용 목적 및 환경에 따라 요구되는 성능 대 복잡도의 비율이 달라질 수 있다. 일 예로 영상 및 비디오 압축의 경우에 있어서, 율 및 왜곡(말하자면, 요구되는 비트량 및 재구축된 영상의 화질)이 서로 간에 상쇄 관계를 가지며, 영상 및 비디오 압축의 응용 분야에 따라서 상이한 성능이 요구될 수 있다. 신경망 프루닝 방법을 이용하여 하나의 네트워크로부터 다양한 성능들 및 복잡도들의 신경망들이 유도될 수 있다.
일 실시예는 정렬된 은닉 변수를 이용하여 영상에 대한 인코딩 및/또는 디코딩을 수행하는 장치 및 방법을 제공할 수 있다.
일 실시예는 정렬된 은닉 변수를 이용하여 신경망 프루닝을 수행하는 장치 및 방법을 제공할 수 있다.
일 측에 있어서, 은닉 변수를 획득하는 단계; 및 상기 은닉 변수와 관련된 선택 또는 처리를 수행하는 단계를 포함하고, 상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬된 처리 방법이 제공된다.
상기 복수의 성분들은 중요도의 순서로 정렬될 수 있다.
상기 은닉 변수는 미리 학습된 인코더 신경망을 통하여 획득될 수 있다.
신경망의 학습에 있어서의 손실은 재구축 손실 및 희소 패널티를 포함할 수 있다.
상기 희소 패널티는 상기 은닉 변수의 복수의 성분들의 값들의 가중치가 부여된 합일 수 있다.
상기 복수의 성분들의 각 성분에게 부여된 상기 가중치는 상기 각 성분이 표현하는 특징 정보가 학습을 위해 사용된 입력 영상들에서 이용되는 빈도와 관련될 수 있다.
복수의 학습 단계들로 이루어지는 신경망의 학습에 있어서, 복수의 학습 단계들의 각 학습 단계마다 상기 은닉 변수의 복수의 성분들 중 일부의 상위 인덱스의 성분의 요소만이 활성화될 수 있다.
상기 활성화되는 일부의 상위 인덱스의 성분들의 개수는 랜덤으로 결정될 수 있다.
상기 신경망의 학습에 있어서의 손실은 재구축 손실일 수 있다.
상기 은닉 변수의 복수의 성분들의 각 성분의 활성화 여부를 조정함으로써 상기 각 성분이 재구축 손실의 크기에 영향을 미치는 확률이 조정될 수 있다.
상기 선택은 상기 은닉 변수로부터 영상의 재구축에 있어서 중요도가 낮은 정보를 제거하는 것일 수 있다.
상기 처리는 상기 은닉 변수의 복수의 성분들 중 특정된 성분을 제거하여 상기 은닉 변수에 대한 데이터의 양을 감소시키는 것일 수 있다.
상기 특정된 성분은 가장 낮은 중요도를 갖는 하나 이상의 성분일 수 있다.
상기 처리는 상기 은닉 변수에 대한 양자화일 수 있다.
다른 일 측에 있어서, 은닉 변수가 적용된 디코더 신경망을 사용하여 재구축된 영상을 생성하는 단계를 포함하고, 상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬된 처리 방법이 제공된다.
상기 복수의 성분들은 중요도의 순서로 정렬될 수 있다.
상기 처리 방법은, 은닉 변수 생성 정보를 사용하여 상기 은닉 변수를 생성하는 단계를 더 포함할 수 있다.
상기 재구축된 영상은 상기 은닉 변수의 복수의 성분들 중 상위의 일부 성분들의 특징 정보만을 사용하여 생성될 수 있다.
상기 복수의 성분들의 각 성분의 순위는 상기 각 성분의 성분 인덱스를 기준으로 결정될 수 있다.
또 다른 일 측에 있어서, 비트스트림을 저장하는 컴퓨터 판독 가능한 기록매체가 제공된다.
상기 비트스트림은, 은닉 변수 생성 정보를 포함할 수 있다.
상기 은닉 변수 정보를 사용하여 은닉 변수가 생성될 수 있다.
상기 은닉 변수가 적용된 디코더 신경망을 사용하여 재구축된 영상이 생성될 수 있다.
상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬될 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
정렬된 은닉 변수를 이용하여 영상에 대한 인코딩 및/또는 디코딩을 수행하는 장치 및 방법이 제공된다.
정렬된 은닉 변수를 이용하여 신경망 프루닝을 수행하는 장치 및 방법이 제공된다.
도 1은 일 예에 따른 입력 영상, 복원 영상 및 은닉 변수 간의 관계를 도시한다.
도 2는 일 실시예에 따른 인코더의 구조도이다.
도 3는 일 실시예에 따른 디코더의 구조도이다.
도 4는 일 실시예에 따른 인코딩 방법의 흐름도이다.
도 5는 일 실시예에 따른 디코딩 방법의 흐름도이다.
도 6은 일 실시예에 따른 은닉 변수를 중요도의 순서로 정렬하기 위한 학습 방법을 나타낸다.
도 7은 일 예에 따른 희소 패널티를 나타낸다.
도 8은 일 실시예에 따른 은닉 변수를 중요도의 순서로 정렬하기 위한 학습 방법을 나타낸다.
도 9은 일 실시예에 따른 인코더를 구현하는 전자 장치를 도시한다.
도 10은 일 실시예에 따른 디코더를 구현하는 전자 장치를 도시한다.
도 11은 일 실시예에 따른 신경망 프루닝 방법을 나타낸다.
도 12는 일 예에 따른 신경망 프루닝 방법이 적용된 하나의 학습된 신경망에 기반하여 다양한 성능의 신경망을 제공하는 방법을 도시한다.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한, 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서, 용어 "은닉 변수(latent variable)", "은닉 벡터(latent vector)", "히든 변수(hidden variable)" 및 "히든 벡터(hidden vector)"는 동일 및/또는 유사한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.
이하에서, 용어 "차원(dimension)" 및 "성분(component)"은 동일 및/또는 유사한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.
인공 신경망이 다양한 분야에서 우수한 성능을 보임에 따라 영상 압축 분야에서도 점차 인공 신경망을 기반으로 하는 압축 기술에 대한 연구가 이루어지고 있다. 연구가 이루어지는 하나의 분야가 컨볼루셔널 오토인코더(convolutional autoencoder)를 이용한 영상 압축 방식이다. 오토인코더는 입력 공간의 데이터를 더 적은 차원의 매니폴드(manifold) 공간으로 매핑하는 역할을 수행한다. 이와 같은 매칭을 포함하는 과정을 통해 더 적은 차원의 공간으로 줄어든 은닉 변수 데이터는 양자화(quantization) 및 엔트로피 코딩의 과정들을 통해 비트스트림으로 압축된다. 즉, 기존의 영상 코덱의 구조에 비교하였을 때, 컨볼루셔널 오토인코더는 일종의 변환(transform) 기능을 담당하는 것으로 간주될 수 있다. 기존의 영상 코덱에서는 높은 에너지 응축 특성(energy compaction property)를 제공하는 이진 코사인 변환(Discrete Cosine Transform; DCT) 방식이 주로 사용되었다. 그러나, DCT는 입력 영상의 채널들 간의 상관 관계를 고려하지 않기 때문에, 에너지 응축 측면에 있어서 비효율이 발생하였다. 실시예들에서는 컨볼루셔널 오토인코더에 기반한 인공 신경망을 이용하여, 기존의 2D DCT에 비해 더 우수한 에너지 응축 성능을 제공하는, 변환 방법이 설명된다. 이러한 변환 방법은 변환 오토인코더(transformative autoencoder)라고 명명될 수 있다.
도 1은 일 예에 따른 입력 영상, 복원 영상 및 은닉 변수 간의 관계를 도시한다.
오토 인코더는 입력 영상 데이터를 은닉 변수 공간으로 변환하는 인공 신경망일 수 있다. 변환된 은닉 변수의 계수들이 에너지 응축 특성을 가짐에 따라, 변환된 은닉 변수의 계수들로 인해, 보다 적은 성분으로 영상 정보가 표현될 수 있다.
은닉 변수의 성분은 은닉 변수를 구성하는 하나의 값일 수 있다. 또는, 은닉 변수의 성분은 동일한 특징 필터로부터 획득된 값들의 집합일 수 있다. 은닉 변수의 성분이 집합인 경우, 성분을 식별하는 인덱스는 집합들로부터 특정한 집합을 식별하기 위한 인덱스일 수 있다. 예를 들면, 신경망이 컨볼루션 레이어(convolution layer)를 사용하여 구성된 경우, 성분은 은닉 변수의 채널을 의미할 수 있고, 성분 인덱스는 채널 인덱스를 나타낼 수 있다.
종래의 오토인코더에 기반한 영상 압축 기술은 차원 축소의 측면에서 강점을 가질 수 있다. 그러나, 종래의 오토인코더에 기반한 영상 압축 기술은 은닉 변수 내의 각 성분의 중요도를 고려하지 못할 수 있다.
즉, 학습된 신경망을 통해 영상을 인코딩하는 경우, 인코더 신경망의 학습의 결과인 은닉 변수의 각 구성요소가 재구축된 영상에 어느 정도로 중요한 영향을 미치는지가 파악되지 못할 수 있다. 반면, 재구축된 영상에 미치는 중요도에 기반하여 은닉 변수가 정렬되도록 학습이 수행될 경우, 이러한 중요도에 기반하여 선택적으로 은닉 변수를 이용함으로써 영상 압축 효율성이 증대될 수 있다.
도 1에서는, 오토 인코더의 은닉 변수가 도시되었다. 은닉 변수는 중요도의 순서로 정렬될 수 있다.
인코더 신경망은 입력 영상을 수신할 수 있고, 입력 영상의 특징 정보를 추출할 수 있다. 인코더 신경망은 추출된 특징 정보에 기반하여 은닉 변수를 구성할 수 있다. 디코더 신경망은 은닉 변수를 수신할 수 있고, 수신된 은닉 변수를 사용하여 영상을 재구축할 수 있다. 디코더 신경망은 재구축된 영상을 출력할 수 있다.
은닉 변수는 N 개의 성분들로 구성될 수 있다. N 개의 성분들을 갖는 은닉 변수를 구성하는 각각의 성분은 입력 영상에 대한 고유의 특징 정보를 나타낼 수 있다. 특징 정보는 인코더 신경망을 통해 학습된 밝기, 색상 및 형상 등 입력 영상의 다양한 특징을 나타낼 수 있다.
정렬된 은닉 변수의 성분들에 있어서, 성분의 인덱스가 낮을수록 성분이 영상을 재구축함에 있어서 중요한 특징 정보를 포함하고 있다고 가정될 수 있다. 예를 들면, 휴먼 비주얼 시스템(Human Visual System; HVS)에서 중요한 것으로 간주되는 저주파 성분의 특징 정보는 낮은 인덱스를 갖는 성분에 의해 표현될 수 있다. 또한, 성분의 인덱스가 높을수록 고주파 성분의 특징 정보를 표현할 수 있다. 말하자면, 낮은 인덱스를 갖는 성분이 더 상위의 성분으로 간주될 수 있다.
DCT 변환 방식이 사용될 경우, 입력이 DC 성분에 가까울수록 계수의 값이 높아질 수 있다. 이러한 DCT 변환 방식과 유사하게, 오토 인코더는 영상의 재구축에 있어서 큰 영향을 미치는 정보일수록 상기의 정보를 은닉 변수의 인덱스를 기준으로 더 상위의 성분에 집중시킬 수 있다.
신경망의 학습 방법에 따라 중요도에 따라서 정렬된 특징 정보가 다양하게 학습될 수 있다.
도 2는 일 실시예에 따른 인코더의 구조도이다.
인코더(200)는 입력 영상을 수신할 수 있고, 비트스트림을 생성할 수 있다.
인코더(200)는 특징 추출부(210), 은닉 변수 선택부(220) 및 인코딩부(230)를 포함할 수 있다.
특징 추출부(210), 은닉 변수 선택부(220) 및 인코딩부(230)의 기능 및 동작 등에 대해서는 아래에서 도 4 등을 참조하여 설명된다.
도 3는 일 실시예에 따른 디코더의 구조도이다.
디코더(300)는 비트스트림을 수신할 수 있고, 재구축된 영상을 생성할 수 있다.
디코더(300)는 디코딩부(310), 은닉 변수 복원부(320) 및 영상 재구축부(330)를 포함할 수 있다.
디코딩부(310), 은닉 변수 복원부(320) 및 영상 재구축부(330)의 기능 및 동작 등에 대해서는 아래에서 도 5 등을 참조하여 설명된다.
도 4는 일 실시예에 따른 인코딩 방법의 흐름도이다.
인코더(200)는 입력 영상을 수신할 수 있고, 입력 영상에 대해 인코딩을 수행하여 인코딩된 비트스트림을 생성할 수 있다.
단계(410)에서, 특징 추출부(210)는 은닉 변수를 획득할 수 있다.
인코더(200)는 인코더 신경망을 포함할 수 있다. 또는, 인코더(200)는 인코더 신경망의 학습을 운용할 수 있다. 인코더(200)는 입력 영상을 사용하여 인코더 신경망의 학습을 수행할 수 있다. 인코더 신경망의 학습에 따라 인코더 신경망의 은닉 변수가 구성될 수 있다.
특징 추출부(210)는 미리 학습된 인코더 신경망을 통하여 은닉 변수를 획득할 수 있다. 획득된 은닉 변수는 특정된 순서로 정렬된 것일 수 있다.
은닉 변수는 N 개의 성분들을 가질 수 있다. 특정된 순서로 정렬된 은닉 변수는 은닉 변수의 N 개의 성분들이 특정된 순서로 정렬된 것을 의미할 수 있다. 또는, 은닉 변수를 특정된 순서로 정렬한다는 것은 은닉 변수의 N 개의 성분들을 특정된 순서로 정렬한다는 것을 의미할 수 있다.
예를 들면, 특정된 순서는 중요도의 순서일 수 있다. 예를 들면, 특징 추출부(210)는 미리 학습된 인코더 신경망을 통하여 중요도의 순서로 정렬된 은닉 변수를 획득할 수 있다.
단계(420)에서, 은닉 변수 선택부(220)는 은닉 변수와 관련된 선택 또는 처리를 수행할 수 있다.
은닉 변수 선택부(220)는 은닉 변수와 관련된 선택 또는 처리를 수행함으로써 은닉 변수 생성 정보를 생성할 수 있다. 은닉 변수 생성 정보는 상기의 선택 또는 처리가 적용된 은닉 변수를 생성하기 위해 사용되는 정보일 수 있다. 은닉 변수 생성 정보의 형식은 은닉 변수의 형식과는 다를 수 있다.
예를 들면, 은닉 변수 선택부(220)는 은닉 변수로부터 영상의 재구축에 있어서 중요도가 낮은 정보를 제거할 수 있다. 또는, 은닉 변수로부터 중요도가 높은 정보를 선별적으로 추출할 수 있다.
예를 들면, 은닉 변수 선택부(220)는 은닉 변수의 N 개의 성분들 중 특정된 성분을 제거하여 은닉 변수에 대한 데이터의 양을 감소시킬 수 있다. 특정된 성분은 낮은 중요도를 갖는 성분일 수 있다. 은닉 변수 선택부(220)는 은닉 변수의 N 개의 성분들 중 성분의 중요도가 낮은 순서로 M 개의 성분들을 제거할 수 있다. M은 N 보다 작은 정수일 수 있다. 또는, 은닉 변수 선택부(220)는 은닉 변수의 N 개의 성분들 중 가장 낮은 중요도를 갖는 하나 이상의 성분을 제거할 수 있다.
예를 들면, 중요도의 순서로 정렬된 은닉 변수는 에너지 응축 특성(energy compaction property)를 가질 수 있다. 은닉 변수 선택부(220)는 은닉 변수에 대한 양자화를 수행함으로써 은닉 변수로부터 낮은 에너지의 값을 제거할 수 있다.
단계(430)에서, 인코딩부(230)는 엔트로피 인코딩을 수행할 수 있다.
예를 들면, 인코딩부(230)는 은닉 변수 선택부(220)로부터의 출력에 대해 엔트로피 인코딩을 수행함으로써 인코딩된 비트스트림을 생성할 수 있다.
은닉 변수 선택부(220)로부터의 출력은 은닉 변수 생성 정보를 포함할 수 있다.
인코딩된 비트스트림은 인코딩된 영상의 정보를 포함할 수 있다.
단계(430)는 선택적일 수 있다.
도 5는 일 실시예에 따른 디코딩 방법의 흐름도이다.
디코더(300)는 인코딩된 비트스트림을 수신할 수 있고, 인코딩된 비트스트림을 사용하는 디코딩을 수행하여 재구축된 영상을 생성할 수 있다.
단계(510)에서, 디코딩부(310)는 인코딩된 비트스트림에 대해 엔트로피 디코딩을 수행함으로써 은닉 변수 복원부(320)로의 입력을 생성할 수 있다.
은닉 변수 복원부(320)로의 입력은 은닉 변수 생성 정보를 포함할 수 있다.
단계(510)은 선택적일 수 있다.
단계(520)에서, 은닉 변수 복원부(320)는 은닉 변수 생성 정보를 사용하여 은닉 변수를 생성할 수 있다. 여기에서, 생성된 은닉 변수는 특정된 순서로 정렬된 은닉 변수일 수 있다.
전술된 것과 같이, 단계(420)에서는 은닉 변수와 관련된 선택 또는 처리에 의해 은닉 변수의 형식과는 다른 형식을 갖는 은닉 변수 생성 정보가 생성될 수 있다. 여기에서, 선택 또는 처리는 성분의 제거 및 양자화의 과정 등을 포함할 수 있다.
예를 들면, 은닉 변수 생성 정보를 사용하는 은닉 변수의 생성은 은닉 변수의 제거된 성분의 초기화 또는 복원(recover)을 포함할 수 있다. 또는, 은닉 변수의 생성은 양자화된 은닉 변수의 형태를 양자화 이전의 형태로 되돌리는 것을 포함할 수 있다.
은닉 변수 복원부(320)는 은닉 변수 정보를 사용하여 디코더(300)의 디코더 신경망에 의해 해석될 수 있는 은닉 변수를 생성할 수 있다. 예를 들면 은닉 변수 생성 정보는 은닉 변수 복원부(320)에 의해 은닉 변수의 형식으로 변경될 수 있다.
단계(530)에서, 영상 재구축부(330)는 복원된 은닉 변수를 디코더 신경망에 적용할 수 있고, 복원된 은닉 변수가 적용된 디코더 신경망을 사용하여 재구축된 영상을 생성할 수 있다.
재구축된 영상은 입력 영상과 최대한 유사한 영상일 수 있다.
도 6은 일 실시예에 따른 은닉 변수를 중요도의 순서로 정렬하기 위한 학습 방법을 나타낸다.
종래의 오토인코더는 입력 영상 및 재구축된 영상 간의 오차(즉, 재구축 손실)에 기반하여 신경망의 학습을 수행할 수 있다. 그러나, 단순한 재구축 손실에 기반한 학습을 수행하는 경우 은닉 변수의 성분들이 포함하는 특징 정보들은 중요도의 순서로 정렬되지 않을 수 있다. 은닉 변수의 성분들의 특징 정보들이 중요도의 순서로 정렬되지 않은 경우, 재구축된 영상의 화질에 큰 영향을 미치는 특징 정보를 포함하는 성분과, 작은 영향을 미치는 특징 정보를 포함하는 성분이 랜덤하게 배열될 수 있다.
이러한 은닉 변수의 정렬 여부에 의한 영향은, 은닉 변수의 성분들 중 상위의 일부 성분들의 특징 정보만을 사용하여 재구축된 영상을 생성할 때 분명하게 드러날 수 있다.
일 실시예에서, 재구축된 영상의 생성은 은닉 변수의 복수의 성분들 중 상위의 일부의 성분들 만을 이용하여 수행될 수 있다. 복수의 성분들은 N 개일 수 있다. 여기에서, 복수의 성분들의 각 성분의 순위(즉, 상위 및 하위)는 성분의 성분 인덱스를 기준으로 결정될 수 있다. 예를 들면, 성분의 성분 인덱스가 더 낮을수록 더 상위의 성분일 수 있다.
은닉 변수의 모든 정보(즉, 전체의 성분들의 특징 정보들)가 재구축된 영상의 생성을 위해 사용되는 경우, 정렬된 은닉 변수를 사용하여 생성된 재구축된 영상의 품질 및 정렬되지 않은 은닉 변수를 사용하여 생성된 재구축된 영상의 품질은 거의 동일할 수 있다.
반면, 은닉 변수의 정보의 일부(즉, 전체의 성분들 중 상위의 일부의 성분들의 특징 정보들)가 재구축된 영상의 생성을 위해 사용되는 경우, 정렬된 은닉 변수를 사용하여 생성된 재구축된 영상의 품질은 정렬되지 않은 은닉 변수를 사용하여 생성된 재구축된 영상의 품질에 비해 더 높을 수 있다. 특히, 재구축된 영상의 생성을 위해 사용되는 성분들의 개수가 더 적을수록 정렬된 은닉 변수를 사용하여 생성된 재구축된 영상의 품질 및 정렬되지 않은 은닉 변수를 사용하여 생성된 재구축된 영상의 품질 간의 차이는 더 커질 수 있다.
정렬되지 않은 은닉 변수가 사용되는 경우, 재구축된 영상의 품질이 재구축에 이용된 성분들의 개수에 따라 선형적으로 증가하는 특징이 나타날 수 있다. 이 때, 우수한 품질의 재구축한 영상이 획득되기 위해서는 은닉 변수의 성분들의 전체가 이용되어야 할 수 있다.
반면, 정렬된 은닉 변수가 사용되는 경우, 재구축된 영상의 품질에 큰 영향을 미치는 특징 정보일수록 은닉 변수의 더 상위의 성분에 포함될 수 있다. 따라서, 정렬된 은닉 변수가 사용되는 경우, 보다 적은 개수의 성분들의 특징 정보들을 이용하여 보다 높은 품질의 재구축된 영상이 획득될 수 있다.
도 6에서는 은닉 변수의 복수의 성분들을 중요도의 순서로 정렬하기 위한 학습 방법이 도시되었다.
실시예에서, 신경망의 학습에 있어서의 손실은 재구축 손실(reconstruction loss) 및 차등적인 희소 패널티(sparsity penalty)를 포함할 수 있다. 말하자면, 인코더 신경망 및 디코더 신경망을 사용하는 학습에 있어서 손실은 재구축 손실 및 차등적인 희소 패널티를 포함할 수 있다. 여기에서, 재구축 손실은 입력 영상 및 재구축된 영상 간의 오차일 수 있다.
도 7은 일 예에 따른 희소 패널티를 나타낸다.
도 7에서는 N 개의 성분들을 갖는 은닉 변수 Z가 도시되었다.
은닉 변수 Z가 복수의 성분들을 가질 때, 희소 패널티는 은닉 변수 Z의 복수의 성분들의 값들의 가중치가 부여된 합(weighted-sum)일 수 있다. 말하자면, 은닉 변수 Z의 복수의 성분들에 대하여 차등적인 가중치들이 각각 부여될 수 있고, 복수의 성분들의 값들 및 가중치들을 각각 곱합으로써 값들이 획득될 수 있다. 획득된 값들의 합이 희소 패널티로서 이용될 수 있다.
복수의 성분들의 각 성분에게 부여된 가중치는, 각 성분이 표현하는 특징 정보가 학습을 위해 사용된 입력 영상들에서 이용되는 빈도와 관련될 수 있다. 예를 들면, 복수의 성분들의 각 성분에게 부여된 가중치는, 각 성분이 표현하는 특징 정보가 학습을 위해 사용된 입력 영상들에서 이용되는 빈도에 대응할 수 있다. 또는, 복수의 성분들의 각 성분에게 부여된 가중치는, 각 성분이 표현하는 특징 정보가 학습을 위해 사용된 입력 영상들에서 이용되는 빈도에 비례할 수 있다.
예를 들면, 차등적인 가중치의 값이 낮을수록, 가중치가 적용되는 성분이 다양한 입력 영상들에 대해 자주 이용되는 특징 정보를 표현할 수 있도록 신경망이 학습될 수 있다. 또한, 차등적인 가중치의 값이 높을수록, 가중치가 적용되는 성분이 다양한 입력 영상들에 대해 드물게 이용되는 특징 정보를 표현할 수 있도록 신경망이 학습될 수 있다.
도 8은 일 실시예에 따른 은닉 변수를 중요도의 순서로 정렬하기 위한 학습 방법을 나타낸다.
실시예에서는, 재구축 손실만을 이용하는 학습이 수행될 수 있다. 말하자면, 실시예의 신경망의 학습에 있어서의 손실은 재구축 손실일 수 있다.
오토 인코더는 학습을 수행할 수 있다. 여기에서, 오토 인코더는 인코더(200)의 적어도 일부 또는 디코더(300)의 적어도 일부일 수 있다. 예를 들면, 오토 인코더는 특징 추출부(210) 또는 디코딩부(310)에 포함될 수 있다. 또는, 오토 인코더는 인코더(200) 및 디코더(300)와는 별개의 장치일 수 있다. 오토 인코더는 학습의 결과를 인코더(200) 및 디코더(300)에게 전송할 수 있다. 학습의 결과는 은닉 변수를 포함할 수 있다.
예를 들면, 학습의 손실 함수는 입력 영상의 패치 및 복원 영상의 패치 간의 l1 거리를 이용하여 계산될 수 있다.
복수의 학습 단계들로 이루어지는 인코더 신경망 및 디코더 신경망을 사용하는 학습에 있어서, 복수의 학습 단계들의 각 학습 단계마다 은닉 변수 Z의 복수의 성분들 중 일부의 상위의 성분들의 요소만이 활성화될(activated) 수 있다. 말하자면, 각 학습의 단계마다 은닉 변수 Z의 복수의 성분들 중 임의의 일부의 하위의 성분들의 요소는 비활성화될(deactivated) 수 있다. 활성화되는 일부의 상위의 성분들의 개수는 랜덤으로 결정될 수 있다.
즉, 한 단계의 학습이 수행될 때, 은닉 변수 Z의 전체의 성분들 중 임의의 일부의 상위 인덱스의 성분들이 활성화되고, 나머지의 성분들은 비활성화될 수 있다. 또한, 한 단계의 학습이 수행될 때, 활성화된 성분들과 연결된 신경망 가중치 값에 대해서만 학습이 이루어질 수 있다.
도 8에서는, N 개의 학습 단계들에 의한 학습이 이루어지면서, 각 단계에서 임의의 개수의 상위 인덱스의 성분들 만이 활성화되는 것이 도시되었다. 도 8에서는, 아래에 위치한 성분일수록 상위 인덱스의 성분인 것으로 도시되었다.
도 8에서, 상위의 성분일수록 더 높은 빈도로 학습에 참여할 수 있고, 하위의 성분일수록 더 낮은 학습에 참여할 수 있다.
은닉 변수의 복수의 성분들의 각 성분의 활성화 여부를 조정함으로써 각 성분이 재구축 손실의 크기에 영향을 미치는 확률이 조정될 수 있다.
전술된 것과 같은 방식으로 학습이 수행되는 경우, 은닉 변수의 상위 인덱스의 성분의 벡터 요소는 높은 확률로 재구축 손실의 크기에 영향을 줄 수 있다. 따라서, 은닉 변수의 상위 인덱스의 성분의 벡터 요소는 상대적으로 더 중요한 특징 정보를 표현할 수 있다. 반면, 은닉 변수의 상위 인덱스의 성분의 벡터 요소는 낮은 확률로 재구축 손실의 크기에 영향을 줄 수 있고, 상대적으로 덜 중요한 특징 정보를 표현할 수 있다.
전술된 것과 같이, 오토 인코더의 은닉 변수의 성분들 중 더 상위의 인덱스를 갖는 성분일수록 영상의 재구축에 있어서 더 중요한 정보를 포함할 수 있다.
모델 학습을 위해, 은닉 변수의 N 개의 성분들 중 영상의 재구축에 관여하는 상위의 성분들의 개수가 확률 변수 M을 사용하여 정의될 수 있다. 임의의 상위의 M 개의 성분들이 이용되더라도, 해당되는 M 개의 성분들이 재구축에 요구되는 최대한의 정보를 포함힐 수 있다.
M의 값이 瑚인 경우, 영상의 재구축에 있어서 오토 인코더는 상위의 瑚 개의 성분들을 제외한 나머지의 성분들의 값을 '0'으로 간주할 수 있다. 이러한 경우, '0'으로 설정된 성분은 영상의 재구축에 영향을 주지 않을 수 있다. 따라서, 瑚 개의 성분들이 이용되는 경우 오토 인코더는 은닉 변수의 성분들의 총 개수가 m인 오토 인코더로 간주될 수 있다.
은닉 변수의 성분들의 총 개수가 m인 이상적인 오토 인코더의 확률 분포가
Figure PCTKR2018013013-appb-I000001
라고 가정될 수 있다. m 개의 성분들을 갖는 은닉 변수를 이용하는 오토 인코더의 확률 분포는 p(x|x,θ,m)일 수 있다. p(x|x,θ,m)의 기대 값의 최대 값은
Figure PCTKR2018013013-appb-I000002
의 기대 값으로 간주될 수 있다.
Figure PCTKR2018013013-appb-I000003
의 기대 값은 아래의 수식 1과 같이 표현될 수 있다.
[수식 1]
Figure PCTKR2018013013-appb-I000004
수식 1에서, p(x)는 입력 영상 x의 분포를 의미할 수 있다. p(m)은 영상의 재구축에 이용되는 상위 성분의 개수의 사전 확률을 의미할 수 있다.
Figure PCTKR2018013013-appb-I000005
를 최대화하기 위해 각각의 m에 대해 p(x|x,θ,m)이
Figure PCTKR2018013013-appb-I000006
에 근접해야 할 수 있다.
아래에서 설명될 학습 과정은 파라미터 θ를 최적화하는 과정일 수 있다.
오토 인코더의 학습을 위해, 은닉 변수의 각 성분이 학숩에 참여하는 빈도가 차등적으로 설정될 수 있다. 이러한 설정을 위해, 학습에 참여하는 성분의 개수인 m이 학습 스탭 별로 아래의 수식 2의 사전 확률에 따라서 샘플링될 수 있고, 은닉 변수의 성분들 중 상위의 m 개의 성분들만이 학습에 참여될 수 있다.
[수식 2]
Figure PCTKR2018013013-appb-I000007
말하자면, 가장 중요한 정보를 포함해야 하는 첫 번째 성분은 항상 학습에 참여할 수 있고, 성분의 인덱스가 증가할수록 성분이 학습에 참여하는 빈도가 낮아질 수 있다.
m 번째 성분의 이후의 성분을 학습에서 배제하기 위해, 학습 시 m 개의 연속된 1들 과 N-m 개의 연속된 0들로 구성된 이진 마스크 및 은닉 변수의 요소-간(element-wise) 곱이 수행될 수 있다.
도 8에서는 표기의 간결성을 위해 은닉 변수의 성분들의 총 개수 N이 16인 것으로 도시되었다. 학습 스탭이 진행됨에 따라서 새로운 m이 샘플링될 수 있고, 샘플링된 m이 학습에 이용될 수 있다.
실시예에 있어서, 은닉 변수의 상위 성분이 재구축된 영상에 미치는 영항의 정도 및 은닉 변수의 하위 성분이 재구축된 영상에 미치는 영항의 정도는 서로 다를 수 있다. 말하자면, 은닉 변수의 성분이 더 상위의 성분일수록 상기의 성분이 재구축된 영상에 미치는 영향이 더 커질 수 있다.
은닉 벡터의 성분이 재구축된 영상에 미치는 영향은 아래의 수식 3과 같이 표현될 수 있다.
[수식 3]
Figure PCTKR2018013013-appb-I000008
수식 3에서, g i는 은닉 변수 zi 번째 성분인 z i가 오토 인코더의 출력인 에 미치는 영향의 정도를 의미할 수 있다.
Figure PCTKR2018013013-appb-I000009
Figure PCTKR2018013013-appb-I000010
j 번째 채널 및 (k, l) 좌표들의 성분 값을 의미할 수 있다. c
Figure PCTKR2018013013-appb-I000011
의 채널 수를 의미할 수 있다. w
Figure PCTKR2018013013-appb-I000012
의 너비를 의미할 수 있다. h
Figure PCTKR2018013013-appb-I000013
의 높이를 의미할 수 있다.
은닉 변수의 각 성분이 영상 재구축에 영향을 주는 정도는 서로 다를 수있다. 이러한 서로 다른 정도를 기준으로 하는 은닉 변수 신호에 대한 정규화를 수행하기 위해 zg의 요소-간 곱이 사용될 수 있다. 요소-간 곱에 의해 최종 변환 신호가 생성될 수 있다.
오토 인코더는 변환 신경망 및 역변환 신경망을 포함할 수 있다.
예를 들면, 변환 신경망은 8x8 크기의 적녹청(Red, Green, Blue; RGB) 영상 패치 x를 컨볼루션 레이어 및 완전 결합(Fully Connected; FC) 레이어를 이용하여 192 개의 은닉 변수들 z로 변환할 수 있다. 컨볼루션 레이어는 5 개의 레이어들을 가질 수 있다. 변환 신경망은 gz의 요소-간 곱을 통해 최종적인 변환된 신호를 획득될 수 있다. g는 성분들이 영상 재구축에 영향을 주는 정도들을 나타낼 수 있다.
역변환 네트워크는 전술된 변환 네트워크에 의한 변환 과정의 반대 과정을 통해 영상 패치 x에 대한 복원 영상 패치
Figure PCTKR2018013013-appb-I000014
를 생성할 수 있다.
zg의 요소-간 곱은 학습에 있어서는 요구되지 않으므로, 학습 과정에서는 zg의 요소-간 곱을 생성하는 과정이 생략될 수 있다. 반면, 은닉 변수 z에 대한 이진 마스킹 작업은 학습 과정에서만 수행될 수 있으며, 오토 인코더에 대한 테스트에서는 적용되지 않을 수 있다.
도 9은 일 실시예에 따른 인코더를 구현하는 전자 장치를 도시한다.
인코더(200)는 도 9에서 도시된 전자 장치(900)로서 구현될 수 있다. 전자 장치(900)는 인코더(200)로서 동작하는 범용의 컴퓨터 시스템일 수 있다.
도 9에서 도시된 바와 같이, 전자 장치(900)는 처리부(910), 통신부(920), 메모리(930), 저장소(940) 및 버스(990) 중 적어도 일부를 포함할 수 있다. 처리부(910), 통신부(920), 메모리(930) 및 저장소(940) 등과 같은 전자 장치(900)의 구성요소들은 버스(990)를 통해 서로 간에 통신할 수 있다.
처리부(910)는 메모리(930) 또는 저장소(940)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 예를 들면, 처리부(910)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.
처리부(910)는 전자 장치(900)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(910)는 실시예들에서 설명된 처리부(910)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(910)는 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 전자 장치(900)에서 이루어지는 단계의 동작을 수행할 수 있다.
통신부(920)는 네트워크(999)에 연결될 수 있다. 전자 장치(900)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 전자 장치(900)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(920)는 네트워크(999)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(920)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(930) 및 저장소(940)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리(930)는 롬(ROM)(931) 및 램(RAM)(932) 중 적어도 하나를 포함할 수 있다. 저장소(940)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착 가능한 저장 매체를 포함할 수 있다.
전자 장치(900)의 기능 또는 동작은 처리부(910)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 수 있다. 메모리(930) 및/또는 저장소(940)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로그램 모듈은 처리부(910)에 의해 실행되도록 구성될 수 있다.
전술된 인코더(200)의 특징 추출부(210), 은닉 변수 선택부(220) 및 인코딩부(230) 중 적어도 일부는 적어도 하나의 프로그램 모듈일 수 있다.
프로그램 모듈들은 운영 체제(Operating System), 어플리케이션 모듈, 라이브러리(library) 및 기타 프로그램 모듈의 형태로 전자 장치(900)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 전자 장치(900)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 실시예에 따른 특정 동작 또는 특정 테스크(task)를 수행하거나 특정 추상 데이터 타입(abstract data type)을 실행하는 루틴(routine), 서브루틴(subroutine), 프로그램(program), 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있고, 이러한 것들에 제한되지는 않을 수 있다.
전자 장치(900)는 사용자 인터페이스(User Interface; UI) 입력 디바이스(950) 및 UI 출력 디바이스(960)를 더 포함할 수 있다. UI 입력 디바이스(950)는 전자 장치(900)의 동작을 위해 요구되는 사용자의 입력을 수신할 수 있다. UI 출력 디바이스(960)는 전자 장치(900)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
도 10은 일 실시예에 따른 디코더를 구현하는 전자 장치를 도시한다.
디코더(300)는 도 10에서 도시된 전자 장치(1000)로서 구현될 수 있다. 전자 장치(1000)는 디코더(300)로서 동작하는 범용의 컴퓨터 시스템일 수 있다.
도 10에서 도시된 바와 같이, 전자 장치(1000)는 처리부(1010), 통신부(1020), 메모리(1030), 저장소(1040) 및 버스(1090) 중 적어도 일부를 포함할 수 있다. 처리부(1010), 통신부(1020), 메모리(1030) 및 저장소(1040) 등과 같은 전자 장치(1000)의 구성요소들은 버스(1090)를 통해 서로 간에 통신할 수 있다.
처리부(1010)는 메모리(1030) 또는 저장소(1040)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 예를 들면, 처리부(1010)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.
처리부(1010)는 전자 장치(1000)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(1010)는 실시예들에서 설명된 처리부(1010)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(1010)는 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 전자 장치(1000)에서 이루어지는 단계의 동작을 수행할 수 있다.
통신부(1020)는 네트워크(1099)에 연결될 수 있다. 전자 장치(1000)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 전자 장치(1000)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(1020)는 네트워크(1099)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(1020)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(1030) 및 저장소(1040)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 롬(ROM)(1031) 및 램(RAM)(1032) 중 적어도 하나를 포함할 수 있다. 저장소(1040)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착 가능한 저장 매체를 포함할 수 있다.
전자 장치(1000)의 기능 또는 동작은 처리부(1010)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 수 있다. 메모리(1030) 및/또는 저장소(1040)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로그램 모듈은 처리부(1010)에 의해 실행되도록 구성될 수 있다.
전술된 디코더(300)의 디코딩부(310), 은닉 변수 복원부(320) 및 영상 재구축부(330) 중 적어도 일부는 적어도 하나의 프로그램 모듈일 수 있다.
프로그램 모듈들은 운영 체제(Operating System), 어플리케이션 모듈, 라이브러리(library) 및 기타 프로그램 모듈의 형태로 전자 장치(1000)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 전자 장치(1000)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 실시예에 따른 특정 동작 또는 특정 테스크(task)를 수행하거나 특정 추상 데이터 타입(abstract data type)을 실행하는 루틴(routine), 서브루틴(subroutine), 프로그램(program), 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있고, 이러한 것들에 제한되지는 않을 수 있다.
전자 장치(1000)는 사용자 인터페이스(User Interface; UI) 입력 디바이스(1050) 및 UI 출력 디바이스(1060)를 더 포함할 수 있다. UI 입력 디바이스(1050)는 전자 장치(1000)의 동작을 위해 요구되는 사용자의 입력을 수신할 수 있다. UI 출력 디바이스(1060)는 전자 장치(1000)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
도 11은 일 실시예에 따른 신경망 프루닝 방법을 나타낸다.
실시예에 따른 중요도에 기반하는 은닉 변수의 정렬 방법이 신경망 프루닝(pruning)을 위해 사용될 수 있다. 이 때, 신경망 프루닝을 수행하는 인코더(200)는 신경망 프루닝 장치 등으로 명명될 수 있다.
전술된 도 4의 단계(410)에서, 특징 추출부(210)는 은닉 변수를 획득할 수 있다. 획득된 은닉 변수는 중요도의 순서로 정렬될 수 있다.
전술된 도 4의 단계(420)에서, 은닉 변수와 관련된 처리는 신경망 프루닝일 수 있다.
신경망 프루닝은 신경망 상에서 낮은 중요도를 갖는 노드를 제거하는 것일 수 있다.
도 11에서 도시된 것과 같이, 신경망은 입력 레이어 및 출력 레이어를 가질 수 있고, 입력 레이어 및 출력 레이어 사이에 복수의 은닉 레이어들을 가질 수 있다. 도 11에서는, 예시적으로 2 개의 은닉 레이어들이 도시되었다.
도 11에서 및 후술될 도 12에서, 더 높은 중요도를 갖는 노드는 더 진한 명암으로 표시되었다.
하나의 레이어는 복수의 노드들을 포함할 수 있다. 신경망의 노드는 전술된 은닉 변수의 성분에 대응할 수 있다. 또는, 은닉 변수의 복수의 성분들은 신경망의 레이어의 노드들에 각각 대응할 수 있다. 예를 들면, 동일한 인덱스들을 갖는 신경망의 노드 및 은닉 변수의 성분은 서로 대응할 수 있다.
말하자면, 은닉 변수의 성분에 대하여 전술된 설명은 레이어의 노드에 적용될 수 있다.
실시예의 은닉 변수의 정렬은 복수의 계층들에 동시에 적용될 수 있다. 도 11에서, 2 개의 은닉 계층들의 각 노드의 명암은 노드의 학습에 따라서 정렬된 노드의 중요도를 나타낼 수 있다.
은닉 변수 선택부(220)는, 신경망의 노드들의 개수를 감소시키기 위해, 가장 낮은 중요도를 갖는 노드를 우선적으로 제거할 수 있다. 또는, 은닉 변수 선택부(220)는 은닉 레이어의 N 개의 노드들 중 노드의 중요도가 낮은 순서로 M 개의 노드들을 제거할 수 있다.
이러한 신경망 프루닝은 비디오 및 영상의 압축뿐만 아니라 다양한 용도의 신경망들에 적용될 수 있으며, 이러한 다양한 용도의 신경망들에 대하여 은닉 변수의 중요도의 순서의 정렬은 동일하게 적용될 수 있다.
도 12는 일 예에 따른 신경망 프루닝 방법이 적용된 하나의 학습된 신경망에 기반하여 다양한 성능의 신경망을 제공하는 방법을 도시한다.
전술된 도 4의 단계(420)에서, 은닉 변수 선택부(220)는 신경망 프루닝을 수행할 수 있다.
은닉 변수 선택부(220)는 파라미터를 정의함으로써 하나의 신경망으로부터 다양한 성능들 및 복잡도들을 갖는 다른 신경망들을 유도할 수 있다. 은닉 변수 선택부(220)는 신경망 프루닝의 프루닝 정도를 나타내는 파라미터를 사용하여 하나의 신경망으로부터 복수의 신경망들을 유도할 수 있다. 복수의 신경망들은 성능 및 복잡도에 있어서 서로 상이할 수 있다.
파라미터는 신경망의 복수의 은닉 계층들의 각 은닉 계층에서 사용되는 노드의 개수 또는 비율일 수 있다. 말하자면, 은닉 변수 선택부(220)는 신경망의 복수의 은닉 계층들의 각 은닉 계층에서 사용되는 노드의 개수 또는 비율을 정의함으로써, 하나의 신경망으로부터 다양한 성능들 및 복잡도들을 갖는 다른 신경망들을 유도할 수 있다.
도 12에서는, 파라미터 p의 값이 우측에 도시되었고, 파라미터 p의 값에 따른 신경망이 좌측에 도시되었다.
도 12에서 도시된 것과 같이, 예를 들면, 파라미터 p는 전체의 은닉 계층들의 각 은닉 계층의 노드들 중 사용되는 노드의 비율일 수 있다. 또는, 파라미터 p는 전체의 은닉 계층들의 각 은닉 계층의 노드들 중 활성화할 노드의 비율일 수 있다.
또는, 예를 들면, 파라미터 p는 전체의 은닉 계층들의 각 은닉 계층의 노드들 중 사용되는 노드의 개수일 수 있다.
파라미터 p는 전체의 은닉 계층들에게 공통될 수 있다. 또는, 신경망의 복수의 은닉 계층들의 각각에 대해서 파라미터 p가 사용될 수 있다.
파라미터 p는 필요에 따라 다른 장치로부터 신경망 프루닝 장치로 전송될 수 있으며, 신경망 프로닝 장치들 간에 전송될 수 있다. 또는, 인코딩된 비트스트림은 파라미터 p를 포함할 수 있다. 인코더(200)는 파라미터 p를 비트스트림 내에 포함시킬 수 있다. 디코더(300)는 비트스트림으로부터 파라미터 p를 획득할 수 있다.
비디오 및 영상의 압축에 있어서, 파라미터 p의 정보를 부가 정보로서 전송함으로써 율-왜곡의 정도가 제어될 수 있다. 또는, 파라미터 p는 장치의 성능 수준에 적합한 신경망을 장치에 적용하기 위한 프로파일 정보로서 활용될 수 있다. 예를 들면, 파라미터 p에 의해, 높은 성능을 갖는 장치에서는 사용되는 노드의 비율이 높은 은닉 계층이 사용될 수 있고, 낮은 성능을 갖는 장치에서는 사용되는 노드의 비율이 낮은 은닉 계층이 사용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체는 본 발명에 따른 실시예들에서 사용되는 정보를 포함할 수 있다. 예를 들면, 컴퓨터 판독 가능한 기록 매체는 비트스트림을 포함할 수 있고, 비트스트림은 본 발명에 따른 실시예들에서 설명된 정보를 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체는 비-일시적 컴퓨터 판독 가능한 매체(non-transitory computer-readable medium)를 포함할 수 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto--tical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (20)

  1. 은닉 변수를 획득하는 단계; 및
    상기 은닉 변수와 관련된 선택 또는 처리를 수행하는 단계
    를 포함하고,
    상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬된 처리 방법.
  2. 제1항에 있어서,
    상기 복수의 성분들은 중요도의 순서로 정렬된 처리 방법.
  3. 제1항에 있어서,
    상기 은닉 변수는 미리 학습된 인코더 신경망을 통하여 획득되는 처리 방법.
  4. 제3항에 있어서,
    신경망의 학습에 있어서의 손실은 재구축 손실 및 희소 패널티를 포함하고, 상기 희소 패널티는 상기 은닉 변수의 복수의 성분들의 값들의 가중치가 부여된 합인 처리 방법.
  5. 제4항에 있어서,
    상기 복수의 성분들의 각 성분에게 부여된 상기 가중치는 상기 각 성분이 표현하는 특징 정보가 학습을 위해 사용된 입력 영상들에서 이용되는 빈도와 관련된 처리 방법.
  6. 제3항에 있어서,
    복수의 학습 단계들로 이루어지는 신경망의 학습에 있어서, 복수의 학습 단계들의 각 학습 단계마다 상기 은닉 변수의 복수의 성분들 중 일부의 상위 인덱스의 성분의 요소만이 활성화되는 처리 방법.
  7. 제6항에 있어서,
    상기 활성화되는 일부의 상위 인덱스의 성분들의 개수는 랜덤으로 결정되는 처리 방법.
  8. 제6항에 있어서,
    상기 은닉 변수의 복수의 성분들의 각 성분의 활성화 여부를 조정함으로써 상기 각 성분이 재구축 손실의 크기에 영향을 미치는 확률이 조정되는 처리 방법.
  9. 제1항에 있어서,
    상기 선택은 상기 은닉 변수로부터 영상의 재구축에 있어서 중요도가 낮은 정보를 제거하는 것인 처리 방법.
  10. 제1항에 있어서,
    상기 처리는 상기 은닉 변수의 복수의 성분들 중 특정된 성분을 제거하여 상기 은닉 변수에 대한 데이터의 양을 감소시키는 것인 처리 방법.
  11. 제10항에 있어서,
    상기 특정된 성분은 가장 낮은 중요도를 갖는 하나 이상의 성분인 처리 방법.
  12. 제1항에 있어서,
    상기 처리는 상기 은닉 변수에 대한 양자화인 처리 방법.
  13. 제1항에 있어서,
    상기 복수의 성분들은 중요도의 순서로 정렬되고,
    상기 처리는 신경망 프루닝이고,
    상기 신경망 프루닝은 신경망의 은닉 레이어의 노드들 중 가장 낮은 중요도를 갖는 노드들을 제거하는 것인 처리 방법.
  14. 제13항에 있어서,
    상기 신경망 프루닝의 프루닝 정도를 나타내는 파라미터를 사용하여 상기 신경망으로부터 복수의 신경망들이 유도되는 처리 방법.
  15. 은닉 변수가 적용된 디코더 신경망을 사용하여 재구축된 영상을 생성하는 단계
    를 포함하고,
    상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬된 처리 방법.
  16. 제15항에 있어서,
    상기 복수의 성분들은 중요도의 순서로 정렬된 처리 방법.
  17. 제15항에 있어서,
    은닉 변수 생성 정보를 사용하여 상기 은닉 변수를 생성하는 단계
    를 더 포함하는 처리 방법.
  18. 제15항에 있어서,
    상기 재구축된 영상은 상기 은닉 변수의 복수의 성분들 중 상위 인덱스의 일부 성분들의 특징 정보만을 사용하여 생성되는 처리 방법.
  19. 제18항에 있어서,
    상기 복수의 성분들의 각 성분의 순위는 상기 각 성분의 성분 인덱스를 기준으로 결정되는 처리 방법.
  20. 비트스트림을 저장하는 컴퓨터 판독 가능한 기록매체에 있어서, 상기 비트스트림은,
    은닉 변수 생성 정보
    를 포함하고,
    상기 은닉 변수 정보를 사용하여 은닉 변수가 생성되고,
    상기 은닉 변수가 적용된 디코더 신경망을 사용하여 재구축된 영상이 생성되고,
    상기 은닉 변수의 복수의 성분들은 특정된 순서로 정렬된 컴퓨터 판독 가능한 기록 매체.
PCT/KR2018/013013 2017-10-30 2018-10-30 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치 Ceased WO2019088657A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/760,609 US11477468B2 (en) 2017-10-30 2018-10-30 Method and device for compressing image and neural network using hidden variable

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170142066 2017-10-30
KR10-2017-0142066 2017-10-30
KR1020180130680A KR102285064B1 (ko) 2017-10-30 2018-10-30 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치
KR10-2018-0130680 2018-10-30

Publications (1)

Publication Number Publication Date
WO2019088657A1 true WO2019088657A1 (ko) 2019-05-09

Family

ID=66333282

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/013013 Ceased WO2019088657A1 (ko) 2017-10-30 2018-10-30 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2019088657A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112188202A (zh) * 2019-07-01 2021-01-05 西安电子科技大学 基于神经网络的自学习视频编解码技术
CN115115721A (zh) * 2022-07-26 2022-09-27 北京大学深圳研究生院 一种神经网络图像压缩模型的枝剪方法和装置
JP2023510504A (ja) * 2020-10-08 2023-03-14 テンセント・アメリカ・エルエルシー ニューラルネットワークベースのビデオコーディングのためのプルーニング方法、装置およびコンピュータプログラム
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
US12591776B2 (en) 2020-05-15 2026-03-31 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000031283A (ko) * 1998-11-02 2000-06-05 구자홍 영상 부호화 장치
KR20160001648A (ko) * 2014-06-27 2016-01-06 후지쯔 가부시끼가이샤 은닉 데이터 대조 장치, 은닉 데이터 갱신 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체 및 은닉 데이터 갱신 방법
KR101791573B1 (ko) * 2016-10-21 2017-10-31 서강대학교산학협력단 컨볼루션 신경망을 이용한 비디오 스트림에 대한 수퍼 해상도 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000031283A (ko) * 1998-11-02 2000-06-05 구자홍 영상 부호화 장치
KR20160001648A (ko) * 2014-06-27 2016-01-06 후지쯔 가부시끼가이샤 은닉 데이터 대조 장치, 은닉 데이터 갱신 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체 및 은닉 데이터 갱신 방법
KR101791573B1 (ko) * 2016-10-21 2017-10-31 서강대학교산학협력단 컨볼루션 신경망을 이용한 비디오 스트림에 대한 수퍼 해상도 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. KRIZHEVSKY ET AL.: "Using very deep autoencoders for content-bas ed image retrieval", EUROPEAN SYMPOSIUM ON ARTIFICIAL NEURAL NETWORKS, 2011, pages 1 - 7, XP055613852 *
GEORGE TODERIC ET AL.: "Variable rate image compression with recurrent neural networks", ICLR, 20 March 2016 (2016-03-20), pages 1 - 12, XP055506355 *
LEE, JOO YOUNG ET AL.: "A study on the transformative artificial neural network for image compression", 30TH WORKSHOP ON IMAGE PROCESSING AND IMAGE UNDERSTANDING, 7 February 2018 (2018-02-07), pages 1 - 5 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
CN112188202A (zh) * 2019-07-01 2021-01-05 西安电子科技大学 基于神经网络的自学习视频编解码技术
US12591776B2 (en) 2020-05-15 2026-03-31 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof
JP2023510504A (ja) * 2020-10-08 2023-03-14 テンセント・アメリカ・エルエルシー ニューラルネットワークベースのビデオコーディングのためのプルーニング方法、装置およびコンピュータプログラム
US11765376B2 (en) 2020-10-08 2023-09-19 Tencent America LLC Pruning methods and apparatuses for neural network based video coding
JP7489466B2 (ja) 2020-10-08 2024-05-23 テンセント・アメリカ・エルエルシー ニューラルネットワークベースのビデオコーディングのためのプルーニング方法、装置およびコンピュータプログラム
US12294730B2 (en) 2020-10-08 2025-05-06 Tencent America LLC Pruning methods for neural network based video coding
CN115115721A (zh) * 2022-07-26 2022-09-27 北京大学深圳研究生院 一种神经网络图像压缩模型的枝剪方法和装置
CN115115721B (zh) * 2022-07-26 2024-03-15 北京大学深圳研究生院 一种神经网络图像压缩模型的枝剪方法和装置

Similar Documents

Publication Publication Date Title
WO2019088657A1 (ko) 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치
WO2020080665A1 (en) Methods and apparatuses for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2021002719A1 (ko) 비디오 처리 방법 및 장치
WO2021101243A1 (en) Apparatus and method for using ai metadata related to image quality
WO2020080698A1 (ko) 영상의 주관적 품질을 평가하는 방법 및 장치
WO2011053021A2 (en) Method and apparatus for encoding and decoding image by using rotational transform
WO2019143026A1 (ko) 특징맵 압축을 이용한 이미지 처리 방법 및 장치
WO2017010850A1 (ko) 분리 가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2012044076A2 (ko) 비디오의 부호화 방법 및 장치, 복호화 방법 및 장치
WO2016129872A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2016190690A1 (ko) 적응적인 분리가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2010027170A2 (ko) 예측 방향 전환과 선택적 부호화를 이용한 영상 부호화/복호화 장치 및 방법
WO2018044125A1 (ko) 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
WO2022071757A1 (ko) 머신 비전을 위한 다중 태스크 시스템에서의 딥러닝 기반 특징맵 코딩 장치 및 방법
WO2022108361A1 (ko) 신경망 특징맵 양자화 방법 및 장치
WO2016195455A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2017030418A1 (ko) 다중 그래프 기반 모델에 따라 최적화된 변환을 이용하여 비디오 신호를 인코딩/ 디코딩하는 방법 및 장치
WO2019225903A1 (ko) 워터마크 기반의 이미지 무결성 검증 방법 및 장치
WO2016064242A1 (ko) 그래프 템플릿으로부터 유도된 변환을 이용하여 비디오 신호를 디코딩/인코딩하는 방법 및 장치
WO2019143027A1 (ko) 이미지 파이프라인 처리 방법 및 장치
WO2019143024A1 (ko) 라인 단위 연산을 이용한 초해상화 방법 및 장치
WO2016076624A1 (ko) 그래프 기반 변환(graph based transform)을 이용한 비디오 신호 처리 방법 및 이를 위한 장치
WO2011019248A2 (en) Method and apparatus for encoding and decoding an image by using rotational transform
WO2023018179A1 (ko) 어플리케이션에 따라 ai 기반으로 영상을 재생하는 전자 장치 및 이에 의한 영상 재생 방법
WO2024080623A1 (ko) Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18872707

Country of ref document: EP

Kind code of ref document: A1