WO2023128421A1 - 컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치 - Google Patents

컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치 Download PDF

Info

Publication number
WO2023128421A1
WO2023128421A1 PCT/KR2022/020480 KR2022020480W WO2023128421A1 WO 2023128421 A1 WO2023128421 A1 WO 2023128421A1 KR 2022020480 W KR2022020480 W KR 2022020480W WO 2023128421 A1 WO2023128421 A1 WO 2023128421A1
Authority
WO
WIPO (PCT)
Prior art keywords
spatial
function
spatial transformation
image
transformation
Prior art date
Application number
PCT/KR2022/020480
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
Priority claimed from KR1020220114460A external-priority patent/KR20230101684A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/068,209 priority Critical patent/US20230206617A1/en
Publication of WO2023128421A1 publication Critical patent/WO2023128421A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/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

Definitions

  • the present disclosure relates to a method for processing an image using a convolutional neural network (CNN) and an apparatus for performing the same.
  • CNN convolutional neural network
  • convolutional neural networks are widely used for image processing, such as classification, detection, segmentation, and depth estimation.
  • a convolutional neural network consists of a convolution layer, a pooling layer, and an output layer.
  • a convolution operation is performed between the output of the previous layer (or the input image if the convolution layer is the first layer) and the filter (or kernel).
  • the pooling layer which is mainly positioned as a layer following the convolution layer, performs sub-sampling on the output of the convolution layer.
  • the output layer calculates an image processing result using data that has passed through the convolution layer and the pooling layer, and may be composed of a fully-connected layer or a convolution layer in some cases.
  • each layer in the convolutional neural network may be configured in various ways according to design intent and/or application.
  • the convolution layer, pooling layer, and output layer are denoted as C, P, and O respectively
  • LeNet is composed of "C - P - C - P - O”
  • AlexNet is composed of "C - P - C - It consists of "P - C - C - C - P - O”.
  • LeNet and AlexNet the output layer consists of three fully connected layers. As in the example of LeNet and AlexNet, not every convolution layer needs to be followed by a pooling layer.
  • the learned filter of the convolutional neural network has directionality.
  • the image processing result may be different. For example, if the same image is rotated 45 degrees and fed to a convolutional neural network trained to classify an image with the number 9 as 9, the convolutional neural network is likely to classify that image as a different number (e.g. 4). .
  • one aspect of the present disclosure is to provide an image processing method using a convolutional neural network (CNN) and an apparatus for performing the same.
  • CNN convolutional neural network
  • an image processing apparatus using a convolutional neural network includes an input/output interface for receiving an image and outputting a processing result of the image, a memory for storing one or more instructions for processing the image using a convolutional neural network, and It may include a processor that processes the image by executing the one or more instructions, and the convolutional neural network may include one or more spatial transformation modules.
  • each of the one or more spatial transformation modules may include a spatial transformation unit that applies spatial transformation to the image or first input data, which is an output of a previous spatial transformation module, by using a spatial transformation function.
  • each of the one or more spatial transformation modules may include a first convolution layer that performs a convolution operation between the first input data to which the spatial transformation is applied and a first filter.
  • each of the one or more spatial transform modules may include a spatial inverse transform unit that applies a spatial inverse transform to an output of the first convolution layer using an inverse spatial transform function.
  • an image processing method using a convolutional neural network including one or more spatial transformation modules is provided.
  • a first spatial transformation module among the spatial transformation modules applies a spatial transformation to first input data, which is an output of the image or a previous spatial transformation module, by using a first spatial transformation function.
  • the method may include performing, by the first spatial transformation module, a convolution operation between the first input data to which spatial transformation is applied and a first filter.
  • the method may include applying, by the first spatial transformation module, a spatial inverse transformation to the result of the convolution operation by using a first spatial inverse transformation function.
  • FIG. 1 is a configuration diagram of an image processing device according to an exemplary embodiment.
  • FIG. 2 illustrates a convolutional neural network according to one embodiment.
  • 3A is a conceptual diagram illustrating the operation of an exemplary spatial transform function.
  • 3B is a conceptual diagram illustrating the operation of an exemplary spatial transform function.
  • 3C is a conceptual diagram illustrating the operation of an exemplary spatial transform function.
  • 3D is a conceptual diagram illustrating the operation of an exemplary spatial transform function.
  • 4A shows a convolutional neural network according to one embodiment.
  • 4B shows a convolutional neural network according to one embodiment.
  • FIG. 5 is a flowchart of an image processing method according to an exemplary embodiment.
  • FIG. 6 is a configuration diagram of an image processing device according to an exemplary embodiment.
  • the expression “at least one of a, b, and c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b and c”, or variations thereof.
  • first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may also be termed a first element, without departing from the scope of the embodiments.
  • image may include static visual data (eg, a photo) and dynamic visual data (eg, a video). That is, the disclosed embodiments may be applied to static visual data or dynamic visual data.
  • processing of an image may be understood to include at least one of classification, detection, segmentation, and depth estimation of an image.
  • image processing may be understood as classifying which class the image corresponds to among a plurality of predetermined classes.
  • image processing may be understood as detecting the location and type of objects included in the image.
  • processing of an image may be understood as segmenting an object included in the image at a pixel level.
  • processing of an image may be understood as estimating the depth (eg, distance) of an object included in the image.
  • input data may be understood as an input to each module or layer included in a convolutional neural network.
  • input data for a first module or layer included in a convolutional neural network may be understood as a preprocessed image.
  • input data for an Nth (N ⁇ 1) module or layer included in a convolutional neural network may be understood as an output of an N ⁇ 1th layer.
  • FIG. 1 is a configuration diagram of an image processing device according to an exemplary embodiment.
  • an image processing apparatus 1000 may include an input/output interface 1100, a memory 1300, and a processor 1500.
  • the input/output interface 1100 may receive an image and output a result of processing the image.
  • the memory 1300 may store one or more instructions for processing images using the convolutional neural network 1350 .
  • the memory 1300 may be 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 (RAM, Random Access Memory), SRAM (Static Random Access Memory), ROM (ROM, Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) , a magnetic memory, a magnetic disk, and at least one of an optical disk, but is not limited thereto.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrical Erasable Programmable Read-Only Memory
  • PROM Program Memory
  • Processor 1500 processes images by executing one or more instructions stored in memory 1300 .
  • the processor 1500 includes a central processing unit, a microprocessor, a graphic processing unit, application specific integrated circuits (ASICs), digital signal processors (DSPs), DSPDs ( Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), APs (Application Processors), Neural Processing Units, or artificial intelligence designed with specialized hardware structures for processing AI models. It may be configured with at least one of the processors, but is not limited thereto.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs Digital Signal Processing Devices
  • PLDs Programmable Logic Devices
  • FPGAs Field Programmable Gate Arrays
  • APs Application Processors
  • Neural Processing Units or artificial intelligence designed with specialized hardware structures for processing AI models. It may be configured with at least one of the processors, but is not limited thereto.
  • FIG. 2 illustrates a convolutional neural network according to one embodiment.
  • a convolutional neural network 1350 may receive an image 10 and output a processing result 20 for the image.
  • the convolutional neural network 1350 may receive an image of a person riding a horse as an input and output a result of dividing the horse and the person (in a pixel unit).
  • convolutional neural network 1350 may include one or more spatial transformation modules 100 .
  • the spatial transformation module 100 may perform a predetermined operation on the image 10 or input data, which is an output of a previous spatial transformation module.
  • the first spatial transformation module included in the convolutional neural network 1350 may perform a predetermined operation on the (preprocessed) image 10, and the Nth ( N ⁇ 1)
  • the spatial transformation module may perform a predetermined operation on the output of the N-1 th spatial transformation module.
  • the spatial transformation module 100 may include a spatial transformation unit 110 that applies spatial transformation to an image or input data, which is an output of a previous spatial transformation module, using a spatial transformation function f.
  • the spatial transformation unit 110 may transform spatial mapping of input data using a spatial transformation function f.
  • the spatial transform function f may be a reversible function. That the spatial transformation function f is capable of inverse transformation may mean that a result of transforming the input data has the same shape as the original input data. Accordingly, whether or not the spatial transformation function f can be inversely transformed may be determined according to the shape of the input data.
  • a function that rotates the input data by 90 degrees is an inverse transformable function
  • a function that rotates the input data by 45 degrees is a function that is not inverse transformable.
  • a function that rotates the input data by 90 degrees is a non-inverse transformable function
  • a function that rotates the input data by 180 degrees is an inverse transformable function.
  • the spatial transformation function f may be a permutation function that changes the width and height of input data.
  • the spatial transformation function f may be a rotation function that rotates input data by a predetermined angle.
  • the predetermined angle may be determined according to the shape of input data within a reversible range.
  • the spatial transform function f may be a flip function that inverts the left and right or up and down of input data.
  • the spatial transformation function f may be a scale function that enlarges or reduces the size of input data.
  • the spatial transformation function f is not limited thereto, and any function capable of inversely transforming the input data can be used as the spatial transformation function f. Some examples of the spatial transformation function f will be further described with reference to FIGS. 3A to 3D.
  • a spatial transformation function that is not inverse transformable may work successfully even if a spatial transformation function that is not inverse transformable is applied. For example, using an image that is spatially transformed by a spatial transformation function that is not inversely transformable (e.g., a function that rotates an image by 45 degrees counterclockwise), learning that 'the same label is the same even if the space is transformed'
  • a convolutional neural network can also classify an image with the number 9 written on it, rotated by 45 degrees, as a 9.
  • the spatial transformation module 100 may include a convolution layer 120 that performs a convolution operation between input data to which spatial transformation is applied and a filter. For example, the convolution layer 120 multiplies pixel values corresponding to the first region (eg, upper left region) of the input data to which spatial transformation is applied and parameter values included in the filter, and then sums them to map the first region. pixel values of the output (i.e., feature map) to be calculated, and pixel values corresponding to the second area (eg, the area shifted by one pixel to the right from the first area) of the input data to which spatial transformation is applied A pixel value of an output mapped to the second region may be calculated by multiplying and summing parameter values included in the filter.
  • the convolution layer 120 multiplies pixel values corresponding to the first region (eg, upper left region) of the input data to which spatial transformation is applied and parameter values included in the filter, and then sums them to map the first region.
  • pixel values of the output i.e., feature map
  • the convolution layer 120 performs a convolution operation by multiplying and summing the parameter values included in the filter and the pixel values of the input data while sliding the input data to which spatial transformation is applied from left to right and from top to bottom pixel by pixel. can be performed.
  • the spatial transform module 100 may include a spatial inverse transform unit 130 that applies a spatial inverse transform to the output of the first convolution layer 120 using the spatial inverse transform function f-1.
  • the inverse spatial transform function f-1 may be an inverse function of the spatial transform function f.
  • the spatial inverse transform unit 130 may reverse the operation of the spatial transform unit 110 .
  • the spatial transformation unit 110 and the spatial inverse transformation unit 130 are included in the convolutional neural network 1350 and operate in the steps before and after the convolution layer 120, data augmentation applying spatial transformation in the input part of the neural network model (data augmentation) is a different concept.
  • the convolutional neural network 1350 includes the spatial transformation unit 110 and the spatial inverse transformation unit 130, the filter of the convolution layer 120 is applied in various directions rather than a single direction for the spatially transformed image. It can learn, it can have more robustness against image rotation than conventional data augmentation or spatial transformer, and image processing speed can be faster.
  • the convolutional neural network 1350 may include at least one pooling layer 200 that performs subsampling on an output of a previous layer.
  • the pooling layer 200 may reduce the size of the output of the previous layer by performing max pooling or average pooling on the output of the previous layer.
  • Maximum pooling may extract a maximum value among pixel values included in a size range of a filter of a pooling layer from among outputs of a previous layer.
  • Average pooling may extract an average value of pixel values included in a size range of a filter of a pooling layer from among outputs of a previous layer.
  • the number of pooling layers 200 may be equal to or less than the number of spatial transformation modules 100 .
  • pooling is not always required after all convolution operations, and the number and positions of the pooling layers 200 may be variously determined according to applications.
  • the convolutional neural network 1350 may include an output layer 300 that calculates a processing result for an image using an output of a previous layer.
  • the output layer 300 may calculate which class the image 10 corresponds to among a plurality of predetermined classes.
  • the output layer 300 may calculate the location and type of objects included in the image 10 .
  • the output layer 300 may calculate a result of dividing the image 10 at a pixel level.
  • the output layer 300 may calculate the depth of an object included in the image 10 .
  • the output layer 300 may be composed of a fully-connected layer or a convolutional layer according to applications.
  • 3A, 3B, 3C and 3D are conceptual diagrams illustrating the operation of an exemplary spatial transform function.
  • the space transformation unit 110A rotates the image 10A by 90 degrees in a counterclockwise direction with respect to the image 10A using a space transformation function f1, or image 10A.
  • a spatial transformation that transposes can be applied. Since the image 10A has a square shape, the spatial transformation function f1 is a function capable of inverse transformation with respect to the image 10A. Therefore, if the image 11A spatially transformed by the spatial transformation function f1 is inversely transformed, the original image 10A can be restored, and pixel unit information of the image 10A is not lost during the inverse transformation.
  • the spatial transformation unit 110B may apply a spatial transformation of rotating the image 10B by 180 degrees in a counterclockwise direction to the image 10B using a spatial transformation function f2.
  • the spatial transformation function f2 is a function capable of inverse transformation with respect to the image 10B. Therefore, if the image 11B spatially transformed by the spatial transformation function f2 is inversely transformed, the original image 10B can be restored, and pixel unit information of the image 10B is not lost during the inverse transformation.
  • the spatial transformation unit 110C may apply a spatial transformation of rotating the image 10C by 270 degrees in a counterclockwise direction to the image 10C using a spatial transformation function f3.
  • the spatial transformation function f3 is a function capable of inverse transformation with respect to the image 10C. Therefore, if the image 11C spatially transformed by the spatial transformation function f3 is inversely transformed, the original image 10C can be restored, and pixel unit information of the image 10C is not lost during the inverse transformation.
  • the spatial transformation unit 110D may apply spatial transformation of inverting the left and right of the image 10D to the image 10D using the spatial transformation function f4. Since the image 10D is in the form of a square, the spatial transformation function f4 is a function capable of inverse transformation with respect to the image 10D. Therefore, if the image 11D spatially transformed by the spatial transformation function f4 is inversely transformed, the original image 10D can be restored, and pixel unit information of the image 10D is not lost during the inverse transformation.
  • FIG. 4A shows a convolutional neural network according to one embodiment.
  • the pooling layer 200 and the output layer 300 are omitted in FIG. 4A.
  • each of the plurality of spatial transformation modules 100 may all include the same spatial transformation function. In one embodiment, each of the plurality of spatial transformation modules 100 may all include different spatial transformation functions. In one embodiment, some of the spatial transformation modules 100 among the plurality of spatial transformation modules 100 all include the same spatial transformation function, and other spatial transformation modules 100 are part of the spatial transformation modules 100. It may include a spatial transformation function different from the spatial transformation function.
  • the convolutional neural network 1350 includes a first spatial transformation module 100A including a first spatial transformation function f1 and a second spatial transformation module 100A including a second spatial transformation function f2.
  • a third spatial transformation module 100C including a spatial transformation module 100B and a third spatial transformation function f3 may be included.
  • the first spatial transformation function f1, the second spatial transformation function f2, and the third spatial transformation function f3 may all be the same function.
  • the first spatial transformation function f1, the second spatial transformation function f2, and the third spatial transformation function f3 may all be different functions.
  • the first space transformation function f1 and the third space transformation function f3 are the same function
  • the second space transformation function f2 is the first space transformation function f1 and the third space transformation function f3 may be a different function from
  • FIG. 4B shows a convolutional neural network according to one embodiment.
  • the pooling layer 200 and the output layer 300 are omitted in FIG. 4B.
  • the convolutional neural network 1350 may further include a convolution layer 400 that performs a convolution operation between an image or input data, which is an output of the previous spatial transformation module 100, and a filter.
  • the convolution layer 400 may be used with the spatial transformation module 100 . In other words, not all the convolution layers 120 and 400 included in the convolutional neural network 1350 learn the spatially transformed input data, but the convolutional layer 120 learns the spatially transformed input data and performs convolution.
  • the layer 400 may learn input data that is not spatially transformed.
  • the convolutional neural network 1350 includes a first spatial transformation module 100A including a first spatial transformation function f1, a convolution layer 400, and a second spatial transformation function.
  • a second spatial transformation module 100B including (f2) may be included.
  • the first spatial transformation function f1 and the second spatial transformation function f2 may be the same function or different functions.
  • the first spatial transformation module 100A is illustrated as being the first layer of the convolutional neural network 1350, but is not limited thereto, and the convolutional layer 400 is the first layer of the convolutional neural network 1350. It could be.
  • FIG. 5 is a flowchart of an image processing method according to an exemplary embodiment.
  • the image processing method 500 is a device capable of driving a convolutional neural network 1350 including one or more spatial transformation modules 100 (eg, the image processing device 1000 shown in FIG. 1) can be performed by
  • a first spatial transformation module among spatial transformation modules applies a spatial transformation to an image or first input data, which is an output of a previous spatial transformation module, by using a first spatial transformation function. do.
  • the spatial mapping of the input data may be transformed using the first spatial transformation function.
  • the first spatial transform function may be an inverse transformable function. That the first spatial transformation function is capable of inverse transformation may mean that a result of transforming the input data has the same shape as the original input data. Therefore, whether or not the first spatial transformation function can be inversely transformed may be determined according to the shape of the input data.
  • a first spatial transformation module performs a convolution operation between first input data to which spatial transformation is applied and a first filter.
  • a first spatial transform module applies a spatial inverse transform to the result of the convolution operation using the first spatial inverse transform function.
  • the first spatial inverse transform function may be an inverse function of the first spatial transform function.
  • Step 550 may perform the operation of step 510 in reverse.
  • FIG. 6 is a configuration diagram of an image processing device according to an exemplary embodiment.
  • an image processing device 6000 may include a communication interface 6100, a memory 6300, and a processor 6500.
  • the communication interface 6100 communicates with the user terminal 60 through the network 65 under the control of the processor 6500, receives an input image from the user terminal 60, and transmits a processing result of the image to the user terminal 60. ) can be transmitted.
  • the communication interface 6100 includes wired LAN, wireless LAN, Wi-Fi, Bluetooth, zigbee, Wi-Fi Direct (WFD), infrared communication (IrDA, Infrared Data Association), Bluetooth Low Energy (BLE), Near Field Communication (NFC), Wireless Broadband Internet (Wibro), World Interoperability for Microwave Access (WiMAX), Shared Wireless Access Protocol (SWAP), WiGig It is possible to communicate with the user terminal 60 using at least one of data communication methods including (Wireless Gigabit Alliance, WiGig) and RF communication.
  • Wi-Fi Direct Wi-Fi Direct
  • IrDA Infrared Data Association
  • BLE Bluetooth Low Energy
  • NFC Near Field Communication
  • Wibro Wireless Broadband Internet
  • SWAP Shared Wireless Access Protocol
  • WiGig WiGig
  • the memory 6300 may store one or more instructions for processing images using the convolutional neural network 6350 .
  • Processor 6500 processes images by executing one or more instructions stored in memory 6300 .
  • the processor 6500 may process an image in the same manner as the image processing of the processor 1500 described above.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as .
  • a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
  • the method may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online.
  • a computer program product eg, a downloadable app
  • a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.
  • An image processing apparatus using a convolutional neural network includes an input/output interface for receiving an image and outputting a result of processing the image; a memory storing one or more instructions for processing the image using a convolutional neural network; and a processor processing the image by executing the one or more instructions, and the convolutional neural network may include one or more spatial transformation modules.
  • each of the one or more spatial transformation modules may include a spatial transformation unit that applies spatial transformation to the image or first input data, which is an output of a previous spatial transformation module, by using a spatial transformation function.
  • each of the one or more spatial transformation modules may include a first convolution layer that performs a convolution operation between the first input data to which the spatial transformation is applied and a first filter.
  • each of the one or more spatial transform modules may include a spatial inverse transform unit that applies a spatial inverse transform to an output of the first convolution layer using an inverse spatial transform function.
  • the one or more spatial transformation modules include a first spatial transformation module and a second spatial transformation module, and are included in a first spatial transformation function included in the first spatial transformation module and the second spatial transformation module.
  • the second spatial transform functions may be different from each other.
  • the spatial transform function may be a reversible function.
  • whether or not the spatial transformation function is capable of inverse transformation may be determined according to the shape of the first input data.
  • the spatial transformation function may be any one of a permutation function, a rotation function, a flip function, or a scale function.
  • the convolutional neural network may further include a second convolution layer that performs a convolution operation between second input data, which is an output of the image or previous spatial transformation module, and a second filter.
  • the convolutional neural network may further include one or more pooling layers that perform sub-sampling on outputs of a previous layer or a previous spatial transformation module.
  • the convolutional neural network may further include an output layer that calculates a processing result of the image using an output of a previous layer.
  • the output layer may calculate the location of an object included in the image.
  • the output layer may calculate the type of object included in the image.
  • the processing may include at least one of classification, detection, segmentation, or depth estimation of the image.
  • An image processing method using a convolutional neural network including one or more spatial transformation modules includes a first spatial transformation module among the spatial transformation modules using a first spatial transformation function, It may include applying a spatial transform to the first input data, which is an image or an output of a previous spatial transform module.
  • the method may include performing, by the first spatial transformation module, a convolution operation between the first input data to which spatial transformation is applied and a first filter.
  • the method may include applying, by the first spatial transformation module, a spatial inverse transformation to the result of the convolution operation by using a first spatial inverse transformation function.
  • the method further includes applying spatial transformation to second input data, which is an output of a previous spatial transformation module, by a second spatial transformation module among the spatial transformation modules using a second spatial transformation function.
  • second input data which is an output of a previous spatial transformation module
  • the method may further include performing, by a second spatial transformation module among the spatial transformation modules, a convolution operation between the second input data to which the spatial transformation is applied and a second filter.
  • the method may further include applying, by a second spatial transformation module among the spatial transformation modules, a spatial inverse transformation to the result of the convolution operation by using a second spatial inverse transformation function.
  • the second spatial transform function may be different from the first spatial transform function.
  • the first spatial transform function and the second spatial transform function may be reversible functions.
  • whether or not the first spatial transformation function can be inversely transformed may be determined according to the shape of the first input data.
  • whether or not the second spatial transformation function is capable of inverse transformation may be determined according to the shape of the second input data.
  • the first spatial transformation function and the second spatial transformation function may be any one of a permutation function, a rotation function, a flip function, and a scale function, respectively. .
  • the convolution layer may further include performing a convolution operation between the image or second input data, which is an output of the previous spatial transformation module, and a second filter.
  • the method may further include performing, by a pooling layer, sub sampling on a previous layer or an output of a previous spatial transformation module.
  • the output layer may further include calculating a processing result for the image using an output of a previous layer.
  • the output layer may calculate the location of an object included in the image.
  • the output layer may calculate the type of object included in the image.
  • the processing may include at least one of classification, detection, segmentation, and depth estimation of the image.
  • the image processing method and apparatus may secure robustness against rotation of an image by applying a spatial transform function and a spatial inverse transform function between each layer of a convolutional neural network.
  • An image processing method and apparatus transform input data in each layer of a convolutional neural network and inversely transform a convolution operation result, thereby applying pixel-based processing such as detection, segmentation, or depth estimation as well as classification. It is also possible to increase the recognition rate for rotated images.

Landscapes

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

Abstract

장치가 제공된다. 상기 장치는 이미지를 입력 받고 상기 이미지에 대한 처리 결과를 출력하는 입출력 인터페이스, 컨볼루션 신경망(convolutional neural network)을 이용하여 상기 이미지를 처리하기 위한 하나 이상의 인스트럭션(instruction)을 저장하는 메모리, 및 상기 하나 이상의 인스트럭션을 실행함으로써 상기 이미지를 처리하는 프로세서를 포함할 수 있고, 상기 컨볼루션 신경망은 하나 이상의 공간 변환 모듈을 포함할 수 있고, 상기 하나 이상의 공간 변환 모듈 각각은 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 공간 변환부, 공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 제1 컨볼루션 레이어, 및 공간 역변환 함수를 이용하여, 상기 제1 컨볼루션 레이어의 출력에 대하여 공간 역변환을 적용하는 공간 역변환부를 포함할 수 있다.

Description

컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치
본 개시는 컨볼루션 신경망(CNN, convolutional neural network)을 이용한 이미지(image) 처리 방법 및 이를 수행하는 장치에 관한 것이다.
예를 들어, 분류(classification), 탐지(detection), 분할(segmentation), 깊이 검출(depth estimation)과 같은, 이미지 처리를 위해서 컨볼루션 신경망이 널리 사용된다.
일반적으로, 컨볼루션 신경망은 컨볼루션 레이어, 풀링(pooling) 레이어 및 출력 레이어로 구성된다. 컨볼루션 레이어에서는 이전 레이어의 출력(또는 컨볼루션 레이어가 첫 번째 레이어인 경우에는 입력 이미지)과 필터(또는 커널) 간의 컨볼루션 연산이 수행된다. 주로 컨볼루션 레이어의 다음 레이어로서 위치하는, 풀링 레이어는 컨볼루션 레이어의 출력에 대하여 서브 샘플링(sub sampling)을 수행한다. 출력 레이어는 컨볼루션 레이어 및 풀링 레이어를 통과한 데이터를 이용하여 이미지 처리 결과를 계산하며, 경우에 따라 완전 연결 레이어(fully-connected layer) 또는 컨볼루션 레이어로 구성될 수 있다.
컨볼루션 신경망에서 각각의 레이어의 개수 및/또는 순서는 설계 의도 및/또는 애플리케이션에 따라 다양하게 구성될 수 있다. 예를 들어, 컨볼루션 레이어, 풀링 레이어, 출력 레이어를 각각 C, P, O라고 표기하면, LeNet은 "C - P - C - P - O"로 구성되며, AlexNet은 "C - P - C - P - C - C - C - P - O"로 구성된다. LeNet과 AlexNet에서 출력 레이어는 3개의 완전 연결 레이어로 구성된다. LeNet과 AlexNet의 예시와 같이, 모든 컨볼루션 레이어 다음에 풀링 레이어가 있어야 하는 것은 아니다.
컨볼루션 신경망의 학습된 필터는 방향성을 갖는다. 다시 말하면, 동일한 이미지를 다른 방향으로 컨볼루션 신경망에 입력하면 이미지 처리 결과가 달라질 수 있다. 예를 들어, 숫자 9가 적힌 이미지를 9로 분류하도록 학습된 컨볼루션 신경망에 동일한 이미지를 45도 회전하여 입력하면, 컨볼루션 신경망은 해당 이미지를 다른 숫자(예: 4)로 분류할 가능성이 있다.
상기 정보는 본 개시의 이해를 돕기 위한 배경 정보로만 제공된다. 상기 내용 중 어느 것이 본 개시와 관련하여 선행기술로 적용될 수 있는지 여부에 대해 어떠한 결정도 이루어지지 않으며, 어떠한 주장도 이루어지지 않는다.
본 개시의 측면들은 적어도 위에서 언급한 문제점들 및/또는 단점들을 해결하고 적어도 아래에서 설명하는 이점들을 제공하는 것이다. 따라서 본 개시의 일 측면은 컨볼루션 신경망(Convolutional Neural Network, CNN)을 이용한 이미지 처리 방법 및 이를 수행하는 장치를 제공하는 것이다.
추가적인 측면들은 다음의 설명에서 부분적으로 설명될 것이고, 부분적으로는, 설명으로부터 명백해지거나 제시된 실시예의 실시에 의해 학습될 수 있다.
본 개시의 일 측면에 따르면, 컨볼루션 신경망을 이용한 이미지 처리 장치가 제공된다. 상기 이미지 처리 장치는 이미지를 입력 받고 상기 이미지에 대한 처리 결과를 출력하는 입출력 인터페이스, 컨볼루션 신경망(convolutional neural network)을 이용하여 상기 이미지를 처리하기 위한 하나 이상의 인스트럭션(instruction)을 저장하는 메모리, 및 상기 하나 이상의 인스트럭션을 실행함으로써 상기 이미지를 처리하는 프로세서를 포함할 수 있고, 상기 컨볼루션 신경망은 하나 이상의 공간 변환 모듈을 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 공간 변환부를 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 제1 컨볼루션 레이어를 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 역변환 함수를 이용하여, 상기 제1 컨볼루션 레이어의 출력에 대하여 공간 역변환을 적용하는 공간 역변환부를 포함할 수 있다.
본 개시의 일 측면에 따르면, 하나 이상의 공간 변환 모듈을 포함하는 컨볼루션 신경망(convolutional neural network)을 이용한 이미지 처리 방법이 제공된다. 상기 이미지 처리 방법은, 상기 공간 변환 모듈 중 제1 공간 변환 모듈이, 제1 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 제1 공간 변환 모듈이 공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 제1 공간 변환 모듈이 제1 공간 역변환 함수를 이용하여, 상기 컨볼루션 연산 결과에 대하여 공간 역변환을 적용하는 단계를 포함할 수 있다.
본 개시의 다른 측면들, 이점들 및 현저한 특징들은 첨부된 도면과 함께 본 개시의 일 실시예를 개시하는 다음의 상세한 설명으로부터 당업자에게 명백해질 것이다.
본 개시의 상기 및 기타 측면들, 특징들 및 이점들은 첨부된 도면과 함께 취해진 다음의 설명으로부터 더욱 명백해질 것이다.
도 1은 일 실시예에 따른 이미지 처리 장치의 구성도이다.
도 2는 일 실시예에 따른 컨볼루션 신경망을 도시한다.
도 3a는 예시적인 공간 변환 함수의 동작을 설명하는 개념도이다.
도 3b는 예시적인 공간 변환 함수의 동작을 설명하는 개념도이다.
도 3c는 예시적인 공간 변환 함수의 동작을 설명하는 개념도이다.
도 3d는 예시적인 공간 변환 함수의 동작을 설명하는 개념도이다.
도 4a는 일 실시예에 따른 컨볼루션 신경망을 도시한다.
도 4b는 일 실시예에 따른 컨볼루션 신경망을 도시한다.
도 5는 일 실시예에 따른 이미지 처리 방법의 순서도이다.
도 6은 일 실시예에 따른 이미지 처리 장치의 구성도이다.
도면 전체에 걸쳐 동일한 구성요소를 나타내기 위해 동일한 참조번호가 사용된다.
첨부된 도면들을 참조하는 다음의 설명은 청구범위 및 그 균등물들에 의해 정의되는 본 개시의 포괄적인 이해를 돕기 위해 제공된다. 이해를 돕기 위해 다양한 특정 세부 사항을 포함하지만 이는 단지 예시로 간주되어야 한다. 따라서 당업자는 본 개시의 다양한 변경 및 수정이 본 개시의 범위 및 사상을 벗어나지 않고 이루어질 수 있음을 인식할 것이다. 또한 잘 알려진 기능 및 구성에 대한 설명은 명확성과 간결성을 위하여 생략될 수 있다.
다음의 설명 및 청구범위에 사용된 용어들 및 단어들은 서지적 의미로 제한되지 않으며, 발명자가 본 개시를 명확하고 일관되게 이해하기 위해 사용되는 것일 뿐이다. 따라서, 본 개시에 대한 다음의 설명은 첨부된 청구범위 및 그 등가물에 의해 정의된 바와 같이 본 개시를 제한할 목적이 아니라 예시적인 목적으로만 제공된다는 것이 당업자에게 명백해야 한다.
단수 형태 "a", "an" 및 "the"는 문맥상 명백하게 달리 지시하지 않는 한 복수의 지시대상을 포함하는 것으로 이해되어야 한다. 따라서, 예를 들어, "a component surface(부품 표면)"에 대한 언급은 이러한 표면 중 하나 이상에 대한 언급을 포함한다.
본 개시에서, "a, b 및 c 중 적어도 하나"의 표현은 "a", "b", "c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 또는 그 변형들을 지칭할 수 있다.
본 개시에서 사용되는 용어는 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 실시예들의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 본 개시에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 사용되는 용어는 다음과 같이 정의되거나 이해될 수 있다.
본 개시에서, "이미지"는 정적인 시각 데이터(예: 사진) 및 동적인 시각 데이터(예: 동영상)를 포함할 수 있다. 즉, 개시된 실시예들은 정적인 시각 데이터에 적용될 수도 있고, 동적인 시각 데이터에 적용될 수도 있다.
본 개시에서, 이미지의 "처리"는 이미지에 대한 분류(classification), 탐지(detection), 분할(segmentation) 및 깊이 추정(depth estimation) 중 적어도 하나를 포함하는 것으로 이해될 수 있다. 예를 들어, 이미지의 처리는 이미지가 미리 결정된 복수의 클래스 중 어느 클래스에 해당하는지 분류하는 것으로 이해될 수 있다. 예를 들어, 이미지의 처리는 이미지에 포함된 객체의 위치와 종류를 탐지하는 것으로 이해될 수 있다. 예를 들어, 이미지의 처리는 이미지에 포함된 객체를 픽셀 수준에서 분할하는 것으로 이해될 수 있다. 예를 들어, 이미지의 처리는 이미지에 포함된 객체의 깊이(예: 거리)를 추정하는 것으로 이해될 수 있다.
본 개시에서, "입력 데이터"는 컨볼루션 신경망(convolutional neural network)에 포함된 각각의 모듈 또는 레이어에 대한 입력으로 이해될 수 있다. 예를 들어, 컨볼루션 신경망에 포함된 첫 번째 모듈 또는 레이어에 대한 입력 데이터는 전처리된 이미지로 이해될 수 있다. 예를 들어, 컨볼루션 신경망에 포함된 N 번째(N≠1) 모듈 또는 레이어에 대한 입력 데이터는 N-1 번째 레이어의 출력으로 이해될 수 있다.
도 1은 일 실시예에 따른 이미지 처리 장치의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 이미지 처리 장치(1000)는 입출력 인터페이스(1100), 메모리(1300) 및 프로세서(1500)를 포함할 수 있다.
입출력 인터페이스(1100)는 이미지를 입력 받고 이미지에 대한 처리 결과를 출력할 수 있다.
메모리(1300)는 컨볼루션 신경망(1350)을 이용하여 이미지를 처리하기 위한 하나 이상의 인스트럭션을 저장할 수 있다.
예를 들어, 메모리(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), 자기 메모리, 자기 디스크, 및 광디스크 중 적어도 하나를 포함할 수 있으나, 이에 제한되는 것은 아니다.
프로세서(1500)는 메모리(1300)에 저장된 하나 이상의 인스트럭션을 실행함으로써 이미지를 처리한다.
예를 들어, 프로세서(1500)는 중앙 처리 장치(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), AP(Application Processor), 신경망 처리 장치(Neural Processing Unit) 또는 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서 중 적어도 하나로 구성될 수 있으나, 이에 제한되는 것은 아니다.
도 2는 일 실시예에 따른 컨볼루션 신경망을 도시한다.
도 2를 참조하면, 일 실시예에 따른 컨볼루션 신경망(1350)은 이미지(10)를 입력 받아 이미지에 대한 처리 결과(20)를 출력할 수 있다. 예를 들어, 컨볼루션 신경망(1350)은 말을 탄 사람의 이미지를 입력 받아 (픽셀 단위에서) 말과 사람을 분할한 결과를 출력할 수 있다.
일 실시예에서, 컨볼루션 신경망(1350)은 하나 이상의 공간 변환 모듈(100)을 포함할 수 있다. 공간 변환 모듈(100)은 이미지(10) 또는 이전 공간 변환 모듈의 출력인, 입력 데이터에 대하여 미리 결정된 연산을 수행할 수 있다. 예를 들어, 컨볼루션 신경망(1350)에 포함된 첫 번째 공간 변환 모듈은 (전처리된) 이미지(10)에 대하여 미리 결정된 연산을 수행할 수 있고, 컨볼루션 신경망(1350)에 포함된 N 번째(N≠1) 공간 변환 모듈은 N-1 번째 공간 변환 모듈의 출력에 대하여 미리 결정된 연산을 수행할 수 있다.
일 실시예에서, 공간 변환 모듈(100)은 공간 변환 함수(f)를 이용하여, 이미지 또는 이전 공간 변환 모듈의 출력인, 입력 데이터에 대하여 공간 변환을 적용하는 공간 변환부(110)를 포함할 수 있다. 예를 들어, 공간 변환부(110)는 공간 변환 함수(f)를 이용하여 입력 데이터의 공간적인 매핑(mapping)을 변환할 수 있다.
일 실시예에서, 공간 변환 함수(f)는 역변환 가능한(reversible) 함수일 수 있다. 공간 변환 함수(f)가 역변환 가능하다는 것은 입력 데이터를 변환한 결과가 원래의 입력 데이터와 동일한 형태를 갖는다는 것을 의미할 수 있다. 따라서 공간 변환 함수(f)가 역변환 가능한지 여부는 입력 데이터의 형태에 따라 결정될 수 있다.
일 예로써, 입력 데이터가 정사각형의 형태인 경우, 입력 데이터를 90도 회전시키는 함수는 역변환 가능한 함수이고, 입력 데이터를 45도 회전시키는 함수는 역변환 가능하지 않은 함수이다. 다른 예로써, 입력 데이터가 직사각형의 형태인 경우, 입력 데이터를 90도 회전시키는 함수는 역변환 가능하지 않은 함수이고, 입력 데이터를 180도 회전시키는 함수는 역변환 가능한 함수이다.
예를 들어, 공간 변환 함수(f)는 입력 데이터의 가로와 세로를 바꾸는 퍼뮤테이션(permutation) 함수일 수 있다.
예를 들어, 공간 변환 함수(f)는 입력 데이터를 미리 결정된 각도만큼 회전시키는 로테이션(rotation) 함수일 수 있다. 전술한 바와 같이, 미리 결정된 각도는 역변환 가능한(reversible) 범위에서 입력 데이터의 형태에 따라 결정될 수 있다.
예를 들어, 공간 변환 함수(f)는 입력 데이터의 좌우 또는 상하를 반전시키는 플립(flip) 함수일 수 있다.
예를 들어, 공간 변환 함수(f)는 입력 데이터의 크기를 확대 또는 축소하는 스케일(scale) 함수일 수 있다.
이상 4 종류의 함수를 예시로 들었으나 공간 변환 함수(f)는 이에 제한되지 않으며, 입력 데이터에 대하여 역변환 가능한 임의의 함수는 공간 변환 함수(f)로 사용될 수 있다. 공간 변환 함수(f)의 몇 가지 예시에 관하여는 도 3a 내지 도 3d를 참조하여 추가적으로 설명하기로 한다.
역변환 가능하지 않은 공간 변환 함수를 적용하더라도 픽셀 단위의 처리가 필요하지 않은 애플리케이션(예: 분류)은 성공적으로 동작할 수도 있다. 예를 들어, 역변환 가능하지 않은 공간 변환 함수(예: 이미지를 반시계 방향으로 45도 회전시키는 함수)에 의해 공간 변환된 이미지를 이용하여, '공간이 변형되더라도 동일한 라벨(label)'이라는 것을 학습한 컨볼루션 신경망은 45도 회전된, 숫자 9가 적힌 이미지를 9로 분류할 수도 있다.
그러나 역변환 가능하지 않은 공간 변환 함수를 적용하는 경우 픽셀 단위의 처리가 필요한 애플리케이션(예: 탐지, 분할, 깊이 검출)은 성공적으로 동작할 수 없다. 공간 변환 함수가 역변환 가능하지 않으면 공간 변환 전후에 이미지의 형태가 달라지고, 공간 정보가 보존될 수 없다. 즉, 공간 변환 함수가 역변환 가능하지 않으면 공간 변환에 의해 이미지의 공간적인 매핑(mapping)에 변형이 생기게 되어 컨볼루션 신경망은 픽셀 단위의 처리를 성공적으로 수행할 수 없다.
일 실시예에서, 공간 변환 모듈(100)은 공간 변환이 적용된 입력 데이터와 필터 간의 컨볼루션 연산을 수행하는 컨볼루션 레이어(120)를 포함할 수 있다. 예를 들어, 컨볼루션 레이어(120)는 공간 변환이 적용된 입력 데이터의 제1 영역(예: 좌측 상단 영역)에 해당하는 픽셀 값들과 필터에 포함된 파라미터 값들을 곱하여 합산함으로써 상기 제1 영역에 매핑되는 출력(즉, 특징 맵(feature map))의 픽셀 값을 계산하고, 공간 변환이 적용된 입력 데이터의 제2 영역(예: 제1 영역에서 우측으로 한 픽셀 이동한 영역)에 해당하는 픽셀 값들과 필터에 포함된 파라미터 값들을 곱하여 합산함으로써 상기 제2 영역에 매핑되는 출력의 픽셀 값을 계산할 수 있다.
동일한 방식으로 컨볼루션 레이어(120)는 공간 변환이 적용된 입력 데이터를 좌측에서 우측으로, 상단에서 하단으로 한 픽셀씩 슬라이딩하면서 필터에 포함된 파라미터 값들과 입력 데이터의 픽셀 값들을 곱하여 합산함으로써 컨볼루션 연산을 수행할 수 있다.
일 실시예에서, 공간 변환 모듈(100)은 공간 역변환 함수(f-1)를 이용하여, 제1 컨볼루션 레이어(120)의 출력에 대하여 공간 역변환을 적용하는 공간 역변환부(130)를 포함할 수 있다. 공간 역변환 함수(f-1)는 공간 변환 함수(f)의 역함수일 수 있다. 공간 역변환부(130)는 공간 변환부(110)의 동작을 반대로 수행할 수 있다.
공간 변환부(110) 및 공간 역변환부(130)는 컨볼루션 신경망(1350) 내에 포함되어 컨볼루션 레이어(120)의 전후 단계에서 동작하는 것이므로, 신경망 모델의 입력 부분에서 공간 변환을 적용하는 데이터 증강(data augmentation)과는 다른 개념이다. 일 실시예에서, 컨볼루션 신경망(1350)이 공간 변환부(110) 및 공간 역변환부(130)를 포함함으로써 컨볼루션 레이어(120)의 필터는 공간 변형된 이미지에 대해서 단일 방향이 아닌 다양한 방향에서 학습할 수 있고, 종래의 데이터 증강 또는 공간 변환기(spatial transformer) 보다 이미지의 회전에 대하여 더욱 강건성을 가질 수 있으며, 이미지 처리 속도가 더 빨라질 수 있다.
일 실시예에서, 컨볼루션 신경망(1350)은 이전 레이어의 출력에 대하여 서브 샘플링을 수행하는 적어도 하나의 풀링 레이어(200)를 포함할 수 있다. 풀링 레이어(200)는 이전 레이어의 출력에 대하여 최대 풀링(max pooling) 또는 평균 풀링(max pooling)을 수행함으로써 이전 레이어의 출력의 크기를 줄일 수 있다. 최대 풀링은 이전 레이어의 출력 중에서 풀링 레이어의 필터의 크기 범위에 포함된 픽셀 값 중 최대값을 추출하는 것일 수 있다. 평균 풀링은 이전 레이어의 출력 중에서 풀링 레이어의 필터의 크기 범위에 포함된 픽셀 값들의 평균값을 추출하는 것일 수 있다.
일 실시예에서, 풀링 레이어(200)의 개수는 공간 변환 모듈(100)의 개수와 동일하거나 더 적을 수 있다. 다시 말하면, 모든 컨볼루션 연산 후 항상 풀링이 필요한 것은 아니며, 풀링 레이어(200)의 개수 및 위치는 애플리케이션에 따라 다양하게 결정될 수 있다.
일 실시예에서, 컨볼루션 신경망(1350)은 이전 레이어의 출력을 이용하여 이미지에 대한 처리 결과를 계산하는 출력 레이어(300)를 포함할 수 있다. 예를 들어, 출력 레이어(300)는 이미지(10)가 미리 결정된 복수의 클래스 중 어느 클래스에 해당하는지 계산할 수 있다. 예를 들어, 출력 레이어(300)는 이미지(10)에 포함된 객체의 위치와 종류를 계산할 수 있다. 예를 들어, 출력 레이어(300)는 이미지(10)를 픽셀 수준에서 분할한 결과를 계산할 수 있다. 예를 들어, 출력 레이어(300)는 이미지(10)에 포함된 객체의 깊이를 계산할 수 있다. 출력 레이어(300)는 애플리케이션에 따라 완전 연결 레이어(fully-connected layer) 또는 컨볼루션 레이어로 구성될 수 있다.
도 3a, 도 3b, 도 3c 및 도 3d는 예시적인 공간 변환 함수의 동작을 설명하는 개념도이다.
도 3a를 참조하면, 공간 변환부(110A)는 공간 변환 함수(f1)를 이용하여, 이미지(10A)에 대하여, 이미지(10A)를 반시계 방향으로 90도 회전시키는 공간 변환 또는 이미지(10A)를 전치(transpose)시키는 공간 변환을 적용할 수 있다. 이미지(10A)가 정사각형의 형태이므로 공간 변환 함수(f1)는 이미지(10A)에 대하여 역변환 가능한 함수이다. 따라서 공간 변환 함수(f1)에 의해 공간 변환된 이미지(11A)를 역변환하면 원래의 이미지(10A)를 복원할 수 있으며, 역변환 시 이미지(10A)의 픽셀 단위 정보가 손실되지 않는다.
도 3b를 참조하면, 공간 변환부(110B)는 공간 변환 함수(f2)를 이용하여, 이미지(10B)에 대하여, 이미지(10B)를 반시계 방향으로 180도 회전시키는 공간 변환을 적용할 수 있다. 이미지(10B)가 정사각형의 형태이므로 공간 변환 함수(f2)는 이미지(10B)에 대하여 역변환 가능한 함수이다. 따라서 공간 변환 함수(f2)에 의해 공간 변환된 이미지(11B)를 역변환하면 원래의 이미지(10B)를 복원할 수 있으며, 역변환 시 이미지(10B)의 픽셀 단위 정보가 손실되지 않는다.
도 3c를 참조하면, 공간 변환부(110C)는 공간 변환 함수(f3)를 이용하여, 이미지(10C)에 대하여, 이미지(10C)를 반시계 방향으로 270도 회전시키는 공간 변환을 적용할 수 있다. 이미지(10C)가 정사각형의 형태이므로 공간 변환 함수(f3)는 이미지(10C)에 대하여 역변환 가능한 함수이다. 따라서 공간 변환 함수(f3)에 의해 공간 변환된 이미지(11C)를 역변환하면 원래의 이미지(10C)를 복원할 수 있으며, 역변환 시 이미지(10C)의 픽셀 단위 정보가 손실되지 않는다.
도 3d를 참조하면, 공간 변환부(110D)는 공간 변환 함수(f4)를 이용하여, 이미지(10D)에 대하여, 이미지(10D)의 좌우를 반전시키는 공간 변환을 적용할 수 있다. 이미지(10D)가 정사각형의 형태이므로 공간 변환 함수(f4)는 이미지(10D)에 대하여 역변환 가능한 함수이다. 따라서 공간 변환 함수(f4)에 의해 공간 변환된 이미지(11D)를 역변환하면 원래의 이미지(10D)를 복원할 수 있으며, 역변환 시 이미지(10D)의 픽셀 단위 정보가 손실되지 않는다.
도 4a는 일 실시예에 따른 컨볼루션 신경망을 도시한다. 설명의 편의를 위해, 도 4a에서 풀링 레이어(200) 및 출력 레이어(300)는 생략되었다.
일 실시예에서, 복수의 공간 변환 모듈(100) 각각은 모두 동일한 공간 변환 함수를 포함할 수 있다. 일 실시예에서, 복수의 공간 변환 모듈(100) 각각은 모두 상이한 공간 변환 함수를 포함할 수 있다. 일 실시예에서, 복수의 공간 변환 모듈(100) 중 일부의 공간 변환 모듈(100)은 모두 동일한 공간 변환 함수를 포함하고, 다른 공간 변환 모듈(100)은 상기 일부의 공간 변환 모듈(100)의 공간 변환 함수와 상이한 공간 변환 함수를 포함할 수 있다.
도 4a를 참조하면, 예를 들어, 컨볼루션 신경망(1350)은 제1 공간 변환 함수(f1)를 포함하는 제1 공간 변환 모듈(100A), 제2 공간 변환 함수(f2)를 포함하는 제2 공간 변환 모듈(100B), 및 제3 공간 변환 함수(f3)를 포함하는 제3 공간 변환 모듈(100C)을 포함할 수 있다. 이때 제1 공간 변환 함수(f1), 제2 공간 변환 함수(f2) 및 제3 공간 변환 함수(f3)는 모두 동일한 함수일 수 있다. 또는, 제1 공간 변환 함수(f1), 제2 공간 변환 함수(f2) 및 제3 공간 변환 함수(f3)는 모두 상이한 함수일 수 있다. 또는, 제1 공간 변환 함수(f1) 및 제3 공간 변환 함수(f3)는 동일한 함수이고, 제2 공간 변환 함수(f2)는 제1 공간 변환 함수(f1) 및 제3 공간 변환 함수(f3)와 상이한 함수일 수 있다.
도 4b는 일 실시예에 따른 컨볼루션 신경망을 도시한다. 설명의 편의를 위해, 도 4b에서 풀링 레이어(200) 및 출력 레이어(300)는 생략되었다.
일 실시예에서, 컨볼루션 신경망(1350)은 이미지 또는 이전 공간 변환 모듈(100)의 출력인, 입력 데이터와 필터 간의 컨볼루션 연산을 수행하는 컨볼루션 레이어(400)를 더 포함할 수 있다. 컨볼루션 레이어(400)는 공간 변환 모듈(100)과 함께 사용될 수 있다. 다시 말하면, 컨볼루션 신경망(1350)에 포함된 모든 컨볼루션 레이어(120, 400)가 공간 변형된 입력 데이터를 학습하는 것이 아니라, 컨볼루션 레이어(120)는 공간 변형된 입력 데이터를 학습하고 컨볼루션 레이어(400)는 공간 변형되지 않은 입력 데이터를 학습할 수 있다.
도 4b를 참조하면, 예를 들어, 컨볼루션 신경망(1350)은 제1 공간 변환 함수(f1)를 포함하는 제1 공간 변환 모듈(100A), 컨볼루션 레이어(400), 및 제2 공간 변환 함수(f2)를 포함하는 제2 공간 변환 모듈(100B)을 포함할 수 있다. 이때 제1 공간 변환 함수(f1)와 제2 공간 변환 함수(f2)는 동일한 함수일 수도 있고, 상이한 함수일 수도 있다. 도 4b에서, 제1 공간 변환 모듈(100A)이 컨볼루션 신경망(1350)의 첫 번째 레이어인 것으로 도시되어 있으나 이에 제한되지 않으며, 컨볼루션 레이어(400)가 컨볼루션 신경망(1350)의 첫 번째 레이어일 수도 있다.
도 5는 일 실시예에 따른 이미지 처리 방법의 순서도이다.
일 실시예에 따른 이미지 처리 방법(500)은 하나 이상의 공간 변환 모듈(100)을 포함하는 컨볼루션 신경망(1350)을 구동할 수 있는 장치(예: 도 1에 도시된 이미지 처리 장치(1000))에 의해 수행될 수 있다.
도 5를 참조하면, 단계 510에서, 공간 변환 모듈 중 제1 공간 변환 모듈이, 제1 공간 변환 함수를 이용하여, 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용한다. 다시 말하면, 단계 510은 제1 공간 변환 함수를 이용하여 입력 데이터의 공간적인 매핑(mapping)을 변환할 수 있다.
일 실시예에서, 제1 공간 변환 함수는 역변환 가능한 함수일 수 있다. 제1 공간 변환 함수가 역변환 가능하다는 것은 입력 데이터를 변환한 결과가 원래의 입력 데이터와 동일한 형태를 갖는다는 것을 의미할 수 있다. 따라서 제1 공간 변환 함수가 역변환 가능한지 여부는 입력 데이터의 형태에 따라 결정될 수 있다.
단계 530에서, 제1 공간 변환 모듈이, 공간 변환이 적용된 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행한다.
단계 550에서, 제1 공간 변환 모듈이, 제1 공간 역변환 함수를 이용하여, 컨볼루션 연산 결과에 대하여 공간 역변환을 적용한다. 제1 공간 역변환 함수는 제1 공간 변환 함수의 역함수일 수 있다. 단계 550은 단계 510의 동작을 반대로 수행할 수 있다.
도 6은 일 실시예에 따른 이미지 처리 장치의 구성도이다.
도 6을 참조하면, 일 실시예에 따른 이미지 처리 장치(6000)는 통신 인터페이스(6100), 메모리(6300) 및 프로세서(6500)를 포함할 수 있다.
통신 인터페이스(6100)는 프로세서(6500)의 제어에 의해 네트워크(65)를 통해 사용자 단말(60)과 통신하며, 사용자 단말(60)로부터 이미지를 입력 받고, 이미지에 대한 처리 결과를 사용자 단말(60)에 전송할 수 있다.
예를 들어, 통신 인터페이스(6100)는 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 블루투스(BlueTooth), 지그비(zigbee), WFD(Wi-Fi Direct), 적외선 통신(IrDA, infrared Data Association), BLE(Bluetooth Low Energy), NFC(Near Field Communication), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Alliance, WiGig) 및 RF 통신을 포함하는 데이터 통신 방식 중 적어도 하나를 이용하여 사용자 단말(60)과 통신할 수 있다.
메모리(6300)는 컨볼루션 신경망(6350)을 이용하여 이미지를 처리하기 위한 하나 이상의 인스트럭션을 저장할 수 있다.
프로세서(6500)는 메모리(6300)에 저장된 하나 이상의 인스트럭션을 실행함으로써 이미지를 처리한다. 프로세서(6500)는 전술한 프로세서(1500)의 이미지 처리와 동일한 방식으로 이미지를 처리할 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 애플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 애플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
일 실시예에 따른 컨볼루션 신경망을 이용한 이미지 처리 장치는 이미지를 입력 받고 상기 이미지에 대한 처리 결과를 출력하는 입출력 인터페이스; 컨볼루션 신경망(convolutional neural network)을 이용하여 상기 이미지를 처리하기 위한 하나 이상의 인스트럭션(instruction)을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행함으로써 상기 이미지를 처리하는 프로세서를 포함할 수 있고, 상기 컨볼루션 신경망은 하나 이상의 공간 변환 모듈을 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 공간 변환부를 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 제1 컨볼루션 레이어를 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈 각각은 공간 역변환 함수를 이용하여, 상기 제1 컨볼루션 레이어의 출력에 대하여 공간 역변환을 적용하는 공간 역변환부를 포함할 수 있다.
일 실시예에서, 상기 하나 이상의 공간 변환 모듈은 제1 공간 변환 모듈 및 제2 공간 변환 모듈을 포함하고, 상기 제1 공간 변환 모듈에 포함된 제1 공간 변환 함수와 상기 제2 공간 변환 모듈에 포함된 제2 공간 변환 함수는 서로 상이할 수 있다.
일 실시예에서, 상기 공간 변환 함수는 역변환 가능한(reversible) 함수일 수 있다.
일 실시예에서, 상기 공간 변환 함수가 역변환 가능한지 여부는 상기 제1 입력 데이터의 형태에 따라 결정될 수 있다.
일 실시예에서, 상기 공간 변환 함수는 퍼뮤테이션(permutation) 함수, 로테이션(rotation) 함수, 플립(flip) 함수 또는 스케일(scale) 함수 중 어느 하나일 수 있다.
일 실시예에서, 상기 컨볼루션 신경망은, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제2 입력 데이터와 제2 필터 간의 컨볼루션 연산을 수행하는 제2 컨볼루션 레이어를 더 포함할 수 있다.
일 실시예에서, 상기 컨볼루션 신경망은, 이전 레이어 또는 이전 공간 변환 모듈의 출력에 대하여 서브 샘플링(sub sampling)을 수행하는 하나 이상의 풀링(pooling) 레이어를 더 포함할 수 있다.
일 실시예에서, 상기 컨볼루션 신경망은, 이전 레이어의 출력을 이용하여 상기 이미지에 대한 처리 결과를 계산하는 출력 레이어를 더 포함할 수 있다.
일 실시예에서, 상기 출력 레이어는 상기 이미지에 포함된 객체의 위치를 계산할 수 있다.
일 실시예에서, 상기 출력 레이어는 상기 이미지에 포함된 객체의 유형을 계산할 수 있다.
일 실시예에서, 상기 처리는 상기 이미지에 대한 분류(classification), 탐지(detection), 분할(segmentation) 또는 깊이 검출(depth estimation) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 하나 이상의 공간 변환 모듈을 포함하는 컨볼루션 신경망(convolutional neural network)을 이용한 이미지 처리 방법은, 상기 공간 변환 모듈 중 제1 공간 변환 모듈이, 제1 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 제1 공간 변환 모듈이 공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 제1 공간 변환 모듈이 제1 공간 역변환 함수를 이용하여, 상기 컨볼루션 연산 결과에 대하여 공간 역변환을 적용하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 공간 변환 모듈 중 제2 공간 변환 모듈이 제2 공간 변환 함수를 이용하여, 이전 공간 변환 모듈의 출력인, 제2 입력 데이터에 대하여 공간 변환을 적용하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 공간 변환 모듈 중 제2 공간 변환 모듈이 공간 변환이 적용된 상기 제2 입력 데이터와 제2 필터 간의 컨볼루션 연산을 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 방법은 상기 공간 변환 모듈 중 제2 공간 변환 모듈이 제2 공간 역변환 함수를 이용하여, 상기 컨볼루션 연산 결과에 대하여 공간 역변환을 적용하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제2 공간 변환 함수는 상기 제1 공간 변환 함수와 상이할 수 있다.
일 실시예에서, 상기 제1 공간 변환 함수 및 상기 제2 공간 변환 함수는 역변환 가능한(reversible) 함수일 수 있다.
일 실시예에서, 상기 제1 공간 변환 함수가 역변환 가능한지 여부는 상기 제1 입력 데이터의 형태에 따라 결정될 수 있다.
일 실시예에서, 상기 제2 공간 변환 함수가 역변환 가능한지 여부는 상기 제2 입력 데이터의 형태에 따라 결정될 수 있다.
일 실시예에서, 상기 제1 공간 변환 함수 및 상기 제2 공간 변환 함수는 각각 퍼뮤테이션(permutation) 함수, 로테이션(rotation) 함수, 플립(flip) 함수 및 스케일(scale) 함수 중 어느 하나일 수 있다.
일 실시예에서, 컨볼루션 레이어가 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제2 입력 데이터와 제2 필터 간의 컨볼루션 연산을 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 방법은 풀링(pooling) 레이어가 이전 레이어 또는 이전 공간 변환 모듈의 출력에 대하여 서브 샘플링(sub sampling)을 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 출력 레이어가 이전 레이어의 출력을 이용하여 상기 이미지에 대한 처리 결과를 계산하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 출력 레이어는 상기 이미지에 포함된 객체의 위치를 계산할 수 있다.
일 실시예에서, 상기 출력 레이어는 상기 이미지에 포함된 객체의 유형을 계산할 수 있다.
일 실시예에서, 상기 처리는 상기 이미지에 대한 분류(classification), 탐지(detection), 분할(segmentation) 및 깊이 검출(depth estimation) 중 적어도 하나를 포함할 수 있다.
실시예들에 따른 이미지 처리 방법 및 장치는 컨볼루션 신경망의 각각의 레이어 사이에서 공간 변환 함수 및 공간 역변환 함수를 적용함으로써 이미지의 회전에 대한 강건성을 확보할 수 있다.
실시예들에 따른 이미지 처리 방법 및 장치는 컨볼루션 신경망의 각각의 레이어에서 입력 데이터를 변환하고, 컨볼루션 연산 결과를 역변환함으로써 분류뿐만 아니라 탐지, 분할 또는 깊이 추정과 같은 픽셀 단위의 처리가 필요한 애플리케이션에서도 회전된 이미지에 대한 인식률을 높일 수 있다.

Claims (15)

  1. 이미지 처리 장치에 있어서,
    상기 장치는,
    이미지를 입력 받고 상기 이미지에 대한 처리 결과를 출력하는 입출력 인터페이스(1100);
    컨볼루션 신경망(convolutional neural network)(1350)을 이용하여 상기 이미지를 처리하기 위한 하나 이상의 인스트럭션(instruction)을 저장하는 메모리(1300); 및
    상기 하나 이상의 인스트럭션을 실행함으로써 상기 이미지를 처리하는 프로세서(1500)를 포함하고,
    상기 컨볼루션 신경망(1350)은 하나 이상의 공간 변환 모듈(100)을 포함하고,
    상기 하나 이상의 공간 변환 모듈(100) 각각은,
    공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 공간 변환부(110),
    공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 제1 컨볼루션 레이어(120), 및
    공간 역변환 함수를 이용하여, 상기 제1 컨볼루션 레이어의 출력에 대하여 공간 역변환을 적용하는 공간 역변환부(130)를 포함하는, 이미지 처리 장치.
  2. 제1항에 있어서,
    상기 하나 이상의 공간 변환 모듈은 제1 공간 변환 모듈(100A) 및 제2 공간 변환 모듈(100B; 100C)을 포함하고,
    상기 제1 공간 변환 모듈(100A)에 포함된 제1 공간 변환 함수와 상기 제2 공간 변환 모듈(100B; 100C)에 포함된 제2 공간 변환 함수는 서로 상이한, 이미지 처리 장치.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 공간 변환 함수는 역변환 가능한(reversible) 함수인, 이미지 처리 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 공간 변환 함수가 역변환 가능한지 여부는 상기 제1 입력 데이터의 형태에 따라 결정되는, 이미지 처리 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 공간 변환 함수는 퍼뮤테이션(permutation) 함수, 로테이션(rotation) 함수, 플립(flip) 함수 또는 스케일(scale) 함수 중 어느 하나인, 이미지 처리 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 컨볼루션 신경망(1350)은, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제2 입력 데이터와 제2 필터 간의 컨볼루션 연산을 수행하는 제2 컨볼루션 레이어(400)를 더 포함하는, 이미지 처리 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 컨볼루션 신경망(1350)은,
    이전 레이어 또는 이전 공간 변환 모듈의 출력에 대하여 서브 샘플링(sub sampling)을 수행하는 하나 이상의 풀링(pooling) 레이어(200), 및
    이전 레이어의 출력을 이용하여 상기 이미지에 대한 처리 결과를 계산하는 출력 레이어(300)를 더 포함하는, 이미지 처리 장치.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 처리는 상기 이미지에 대한 분류(classification), 탐지(detection), 분할(segmentation) 또는 깊이 검출(depth estimation) 중 적어도 하나를 포함하는, 이미지 처리 장치.
  9. 하나 이상의 공간 변환 모듈(100)을 포함하는 컨볼루션 신경망(convolutional neural network) (1350)을 이용한 이미지 처리 방법에 있어서,
    상기 공간 변환 모듈(100) 중 제1 공간 변환 모듈(100A)이,
    제1 공간 변환 함수를 이용하여, 상기 이미지 또는 이전 공간 변환 모듈의 출력인, 제1 입력 데이터에 대하여 공간 변환을 적용하는 단계;
    공간 변환이 적용된 상기 제1 입력 데이터와 제1 필터 간의 컨볼루션 연산을 수행하는 단계; 및
    제1 공간 역변환 함수를 이용하여, 상기 컨볼루션 연산 결과에 대하여 공간 역변환을 적용하는 단계를 포함하는, 이미지 처리 방법.
  10. 제9항에 있어서,
    상기 공간 변환 모듈(100) 중 제2 공간 변환 모듈(100B; 100C)이,
    제2 공간 변환 함수를 이용하여, 이전 공간 변환 모듈의 출력인, 제2 입력 데이터에 대하여 공간 변환을 적용하는 단계;
    공간 변환이 적용된 상기 제2 입력 데이터와 제2 필터 간의 컨볼루션 연산을 수행하는 단계; 및
    제2 공간 역변환 함수를 이용하여, 상기 컨볼루션 연산 결과에 대하여 공간 역변환을 적용하는 단계를 더 포함하고,
    상기 제2 공간 변환 함수는 상기 제1 공간 변환 함수와 상이한, 이미지 처리 방법.
  11. 제9항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 공간 변환 함수 및 상기 제2 공간 변환 함수는 역변환 가능한(reversible) 함수인, 이미지 처리 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 공간 변환 함수가 역변환 가능한지 여부는 상기 제1 입력 데이터의 형태에 따라 결정되고,
    상기 제2 공간 변환 함수가 역변환 가능한지 여부는 상기 제2 입력 데이터의 형태에 따라 결정되는, 이미지 처리 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 제1 공간 변환 함수 및 상기 제2 공간 변환 함수는 각각 퍼뮤테이션(permutation) 함수, 로테이션(rotation) 함수, 플립(flip) 함수 또는 스케일(scale) 함수 중 어느 하나인, 이미지 처리 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 처리는 상기 이미지에 대한 분류(classification), 탐지(detection), 분할(segmentation) 또는 깊이 검출(depth estimation) 중 적어도 하나를 포함하는, 이미지 처리 방법.
  15. 제9항 내지 제14항 중 어느 한 항의 방법을 수행하도록 하는 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2022/020480 2021-12-29 2022-12-15 컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치 WO2023128421A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/068,209 US20230206617A1 (en) 2021-12-29 2022-12-19 Image processing method and apparatus using convolutional neural network

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0191654 2021-12-29
KR20210191654 2021-12-29
KR10-2022-0114460 2022-09-08
KR1020220114460A KR20230101684A (ko) 2021-12-29 2022-09-08 컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/068,209 Continuation US20230206617A1 (en) 2021-12-29 2022-12-19 Image processing method and apparatus using convolutional neural network

Publications (1)

Publication Number Publication Date
WO2023128421A1 true WO2023128421A1 (ko) 2023-07-06

Family

ID=86999719

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/020480 WO2023128421A1 (ko) 2021-12-29 2022-12-15 컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2023128421A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190039458A (ko) * 2017-10-04 2019-04-12 주식회사 스트라드비젼 Fun을 사용하여 특징 맵을 생성하기 위한 방법 및 장치
JP6605669B2 (ja) * 2017-07-25 2019-11-13 同方威視技術股▲分▼有限公司 Ct画像を再構成する方法及びデバイス、並びに記憶媒体
US20200250520A1 (en) * 2015-05-21 2020-08-06 Google Llc Rotating data for neural network computations
KR20210050168A (ko) * 2019-10-28 2021-05-07 주식회사 뷰온 딥러닝 모델에 적용하기 위한 학습 데이터 확장방법, 딥러닝을 이용한 이미지 분류장치 및 그 방법
KR20210143093A (ko) * 2020-05-19 2021-11-26 삼성전자주식회사 전자 장치 및 그 제어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200250520A1 (en) * 2015-05-21 2020-08-06 Google Llc Rotating data for neural network computations
JP6605669B2 (ja) * 2017-07-25 2019-11-13 同方威視技術股▲分▼有限公司 Ct画像を再構成する方法及びデバイス、並びに記憶媒体
KR20190039458A (ko) * 2017-10-04 2019-04-12 주식회사 스트라드비젼 Fun을 사용하여 특징 맵을 생성하기 위한 방법 및 장치
KR20210050168A (ko) * 2019-10-28 2021-05-07 주식회사 뷰온 딥러닝 모델에 적용하기 위한 학습 데이터 확장방법, 딥러닝을 이용한 이미지 분류장치 및 그 방법
KR20210143093A (ko) * 2020-05-19 2021-11-26 삼성전자주식회사 전자 장치 및 그 제어 방법

Similar Documents

Publication Publication Date Title
WO2019074195A1 (ko) 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램
WO2021107610A1 (en) Method and system for generating a tri-map for image matting
WO2017010695A1 (en) Three dimensional content generating apparatus and three dimensional content generating method thereof
WO2019164379A1 (en) Method and system for facial recognition
WO2019050360A1 (en) ELECTRONIC DEVICE AND METHOD FOR AUTOMATICALLY SEGMENTING TO BE HUMAN IN AN IMAGE
WO2017150878A1 (en) Leveraging multi cues for fine-grained object classification
WO2022108061A1 (en) Method and device for joint denoising and demosaicing using neural network
WO2019225964A1 (en) System and method for fast object detection
KR102223478B1 (ko) 눈 상태 검출에 딥러닝 모델을 이용하는 눈 상태 검출 시스템 및 그 작동 방법
WO2019168264A1 (ko) 전자 장치 및 그 제어 방법
WO2020116768A1 (ko) 영상 처리 장치 및 그 동작방법
WO2020231005A1 (ko) 영상 처리 장치 및 그 동작방법
Davis et al. Facial recognition using human visual system algorithms for robotic and UAV platforms
JP2022133378A (ja) 顔生体検出方法、装置、電子機器、及び記憶媒体
WO2023128421A1 (ko) 컨볼루션 신경망을 이용한 이미지 처리 방법 및 장치
CN111428740A (zh) 网络翻拍照片的检测方法、装置、计算机设备及存储介质
US10636160B1 (en) Symmetry exploitation for object detection in images
WO2020050550A1 (en) Methods and systems for performing editing operations on media
WO2023075508A1 (ko) 전자 장치 및 그 제어 방법
WO2022191424A1 (ko) 전자 장치 및 그 제어 방법
WO2022177069A1 (ko) 라벨링 방법 및 이를 위한 컴퓨팅 장치
WO2021071258A1 (ko) 인공지능 기반의 휴대용 보안영상 학습장치 및 방법
WO2022108008A1 (en) Electronic apparatus and controlling method thereof
WO2022030943A1 (ko) 딥러닝에 기반한 이미지 분할 장치 및 방법
WO2021029719A1 (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: 22916564

Country of ref document: EP

Kind code of ref document: A1