KR102028824B1 - Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method - Google Patents
Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method Download PDFInfo
- Publication number
- KR102028824B1 KR102028824B1 KR1020180018503A KR20180018503A KR102028824B1 KR 102028824 B1 KR102028824 B1 KR 102028824B1 KR 1020180018503 A KR1020180018503 A KR 1020180018503A KR 20180018503 A KR20180018503 A KR 20180018503A KR 102028824 B1 KR102028824 B1 KR 102028824B1
- Authority
- KR
- South Korea
- Prior art keywords
- watermarking
- neural network
- artificial neural
- value
- image
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0203—Image watermarking whereby the image with embedded watermark is reverted to the original condition before embedding, e.g. lossless, distortion-free or invertible watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
본 발명은 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것으로, 이러한 본 발명은 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 전처리부와, 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 인공신경망과, 상기 객체 영역을 상기 인공신경망에 입력하여 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 판단부와, 상기 워터마킹 영역에 삽입이미지를 워터마킹하는 가공부를 포함하는 것을 특징으로 하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치와, 그 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다. The present invention relates to an apparatus for processing watermarking using an artificial neural network, a method therefor, and a computer-readable recording medium having recorded thereon a program for performing the method. The present invention relates to at least one object area in target data. An artificial neural network comprising a preprocessing unit configured to set a plurality of layers and a plurality of hierarchies each including a plurality of operations to which weights are applied, and outputting a probability that a predetermined object is included in the object region; A determination unit for inputting a neural network to identify an object included in the object region according to the output of the artificial neural network, deriving a watermarking region according to the identified object, and a processing unit for watermarking an embedded image in the watermarking region Apparatus for processing watermarking using an artificial neural network, comprising: It provides a method and how the program is recorded for performing the computer-readable recording medium.
Description
본 발명은 워터마킹 기술에 관한 것으로, 보다 상세하게는, 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다. The present invention relates to a watermarking technology, and more particularly, to an apparatus for processing watermarking using an artificial neural network for identifying an object, a method therefor, and a computer-readable recording medium having recorded thereon a program for performing the method. It is about.
최근 인터넷과 컴퓨터의 발전으로 다양한 멀티미디어 콘텐츠가 새롭게 등장함에 따라 새로운 유형의 콘텐츠에 따른 맞춤형 저작권 보호기술이 요구되어 지고 있다. 새로운 유형의 콘텐츠에 저작권 보호를 하기 위해 기존에 개발된 워터마킹 기술을 이용할 경우, 다양한 문제가 발생하게 된다. 워터마킹 기법은 자주 발생하는 특정한 공격을 정의하고 그에 대한 강인성을 가지도록 설계되므로, 정의되지 않은 공격에 취약하다. Recently, with the development of the Internet and computers, various multimedia contents are newly introduced, and thus, personalized copyright protection technologies are required according to new types of contents. When using existing watermarking technology to protect copyright of new types of content, various problems arise. Watermarking techniques are vulnerable to undefined attacks because they are designed to define and robust to specific attacks that occur frequently.
본 발명의 목적은 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 삽입된 이미지를 복원할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다. SUMMARY OF THE INVENTION An object of the present invention is to provide an apparatus capable of restoring an inserted image even when a watermarking attack is applied to a watermarked image, a method therefor, and a computer-readable recording medium having recorded thereon a program for performing the method. have.
본 발명의 다른 목적은 인공신경망을 통해 객체를 식별하여 워터마킹을 수행할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다. Another object of the present invention is to provide an apparatus capable of performing watermarking by identifying an object through an artificial neural network, a method therefor, and a computer-readable recording medium having recorded thereon a program for performing the method.
본 발명의 다른 목적은 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 워터마킹 공격 기법을 도출하고, 이를 통해 삽입된 이미지를 복원할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다. Another object of the present invention is to derive a watermarking attack technique even when a watermarking attack is applied to a watermarked image, and to restore the inserted image through the same, a method therefor and a program for performing the method. The present invention provides a recorded computer readable recording medium.
본 발명의 또 다른 목적은 워터마킹 기법에 따라 가장 효율적으로 워터마킹 공격을 가할 수 있는 워터마킹 공격 기법을 도출할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다. It is still another object of the present invention to provide a device capable of deriving a watermarking attack technique capable of applying a watermarking attack most efficiently according to a watermarking technique, a method therefor, and a computer-readable recording of a program for performing the method. In providing a recording medium.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 복수의 블록으로 구분되는 영상인 대상 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 인공신경망과, 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 판단부와, 상기 결정된 비트값에 따라 삽입이미지를 재구성하는 가공부를 포함한다. Apparatus for processing watermarking using an artificial neural network according to a preferred embodiment of the present invention for achieving the object as described above is composed of a plurality of layers each including a plurality of operations that are weighted, When the target data, which is an image divided into blocks, is input, an artificial neural network outputting a probability that bit 1 and bit 0 are inserted into each of the plurality of blocks is inserted into each block of the image according to the output. And a determination unit for determining a bit value, and a processing unit for reconstructing the inserted image according to the determined bit value.
상기 가공부는 원본 데이터를 소정 크기의 블록 단위로 구분하고, 구분된 각 블록에 이진 데이터인 삽입이미지의 비트값을 삽입하는 워터마킹을 수행하며, 워터마킹이 이루어진 원본 데이터를 소정의 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 것을 특징으로 한다. The processing unit divides the original data into block units of a predetermined size, performs watermarking to insert a bit value of an embedded image, which is binary data, into each of the divided blocks, and performs a watermarking attack technique on the watermarked original data. The training data may be modified to generate learning data.
상기 장치는 상기 학습데이터를 상기 소정 크기의 블록 단위로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다. The apparatus may further include a learning unit configured to input the training data into the artificial neural network in units of the predetermined size to calculate the weight such that the output value of the artificial neural network has a minimum difference from an expected value representing the inserted bit value. do.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 복수의 블록으로 구분되는 영상인 대상 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 단계와, 판단부가 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 단계와, 가공부가 상기 결정된 비트값에 따라 삽입이미지를 재구성하는 단계를 포함한다. A method for processing watermarking using an artificial neural network according to a preferred embodiment of the present invention for achieving the above object is a plurality of artificial neural network comprising a plurality of layers each comprising a plurality of operations to which a weight is applied. Outputting a probability that bit 1 and a bit 0 are inserted into each of the plurality of blocks when the target data, which is an image divided into blocks of, is input, and a determination unit is applied to each block of the image according to the output. Determining an inserted bit value; and reconstructing, by the processing unit, the inserted image according to the determined bit value.
상기 방법은 상기 출력하는 단계 전, 상기 가공부가 원본 데이터를 소정 크기의 블록 단위로 구분하고, 구분된 각 블록에 이진 데이터인 삽입이미지의 비트값을 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 상기 워터마킹이 이루어진 원본 데이터를 소정의 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 단계와, 학습부가 상기 학습데이터를 상기 소정 크기의 블록 단위로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 단계를 더 포함한다. The method may further include, before the outputting, performing a watermarking process of dividing the original data into block units having a predetermined size and inserting bit values of an embedded image, which is binary data, into each of the divided blocks. Generating the training data by modifying the original data on which the watermarking is performed according to a predetermined watermarking attack technique; and a learning unit inputs the training data to the artificial neural network in units of the predetermined size to block the artificial neural network. Calculating the weight such that an output value has a minimum difference from an expected value representing the inserted bit value.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다. In addition, the computer-readable recording medium according to a preferred embodiment of the present invention for achieving the above object is for performing a method for processing watermarking using an artificial neural network according to the preferred embodiment of the present invention described above The program is recorded.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 전처리부와, 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 인공신경망과, 상기 객체 영역을 상기 인공신경망에 입력하여 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 판단부와, 상기 워터마킹 영역에 삽입이미지를 워터마킹하는 가공부를 포함한다. An apparatus for processing watermarking using an artificial neural network for identifying an object according to an exemplary embodiment of the present invention for achieving the above object includes a preprocessor configured to set at least one object region in target data, and An artificial neural network comprising a plurality of layers including a plurality of calculations to which weights are applied, and outputting a probability that a predetermined object is included in the object region, and outputting the artificial neural network by inputting the object region to the artificial neural network. And a determining unit for identifying an object included in the object area, deriving a watermarking area according to the identified object, and a processing unit for watermarking an inserted image in the watermarking area.
상기 판단부는 상기 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 상기 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류하는 것을 특징으로 한다. The determination unit classifies the identified object into a watermarking object and a blind object according to a predetermined rule, classifies an area excluding the area including the blind object from the object area including the watermarking object as the watermarking area, The area including the blind object may be classified as a blind area.
알려진 소정 객체가 포함된 영상인 학습 데이터가 입력되면, 상기 인공신경망에 입력하고, 상기 인공신경망의 출력값이 상기 알려진 소정 객체를 나타내는 목표값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다. When learning data that is an image including a known predetermined object is input, the learning unit is further inputted to the artificial neural network and calculates the weight such that an output value of the artificial neural network is minimized from a target value representing the known predetermined object. Include.
상기 가공부는 상기 워터마킹 영역으로부터 특징값을 추출하고, 로지스틱 사상으로부터 카오스값을 산출하고, 상기 특징값 및 카오스값을 이용하여 상기 삽입이미지를 워터마킹하고, 스테고키를 생성하는 것을 특징으로 한다. The processing unit extracts a feature value from the watermarking area, calculates a chaos value from logistic mapping, watermarks the embedded image using the feature value and the chaos value, and generates a stego key.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 전처리부가 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 단계와, 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 단계와, 판단부가 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 단계와, 가공부가 상기 워터마킹 영역에 삽입이미지를 워터마킹하는 단계를 포함한다. According to a preferred embodiment of the present invention, there is provided a method for processing watermarking using an artificial neural network for identifying an object, the method including: setting, by a preprocessor, at least one object area in target data; Outputting a probability that a predetermined object is included in the object region by an artificial neural network including a plurality of layers including a plurality of operations to which the weight is applied, and a determining unit included in the object region according to the output of the artificial neural network; Identifying the identified object, deriving a watermarking area according to the identified object, and a processing unit watermarking an embedded image in the watermarking area.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다. In addition, the computer-readable recording medium according to a preferred embodiment of the present invention for achieving the above object is for performing a method for processing watermarking using an artificial neural network according to the preferred embodiment of the present invention described above The program is recorded.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 영상인 대상 데이터가 입력되면, 상기 영상에 적용되었을 워터마킹 공격 기법을 확률로 출력하는 인공신경망과, 상기 출력에 따라 상기 영상에 적용된 워터마킹 공격 기법을 식별하는 판단부와, 상기 식별된 워터마킹 공격 기법을 이용하여 상기 영상을 역변환하고, 상기 역변환된 영상으로부터 삽입이미지를 추출하는 가공부를 포함한다. An apparatus for processing watermarking using an artificial neural network for identifying a watermarking attack according to a preferred embodiment of the present invention for achieving the above object includes a plurality of layers each including a plurality of operations that are weighted. An artificial neural network having a probability of outputting a watermarking attack technique that has been applied to the image, and a determination unit for identifying a watermarking attack technique applied to the image according to the output; And a processing unit which inversely transforms the image using the identified watermarking attack technique and extracts an embedded image from the inversely transformed image.
상기 가공부는 원본 데이터에 삽입이미지를 삽입하는 워터마킹을 수행하며, 소정의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하여 학습 데이터를 생성하는 것을 특징으로 한다. The processing unit performs watermarking to insert an inserted image into original data, and generates training data by modifying the original data on which the watermarking is performed according to a predetermined watermarking attack technique.
상기 학습 데이터를 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 워터마킹 공격 기법을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다. The training unit may further include a learner configured to input the training data to the artificial neural network to calculate the weight such that the output value of the artificial neural network has a minimum difference from an expected value representing the watermarking attack technique.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 영상인 대상 데이터가 입력되면, 상기 영상에 적용되었을 워터마킹 공격 기법을 확률로 출력하는 단계와, 판단부가 상기 출력에 따라 상기 영상에 적용된 워터마킹 공격 기법을 식별하는 단계와, 가공부가 상기 식별된 워터마킹 공격 기법을 이용하여 상기 영상을 역변환하고, 상기 역변환된 영상으로부터 삽입이미지를 추출하는 단계를 포함한다. A method for processing watermarking using an artificial neural network for identifying a watermarking attack according to a preferred embodiment of the present invention for achieving the above object includes a plurality of layers each including a plurality of operations that are weighted. Outputting a watermarking attack technique that has been applied to the image with probability when the target data of the artificial neural network is an image, and determining the watermarking attack technique applied to the image according to the output; A processing unit inversely transforming the image using the identified watermarking attack technique, and extracting an embedded image from the inversely transformed image.
상기 출력하는 단계 전, 상기 가공부가 원본 데이터에 삽입이미지를 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 소정의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하여 학습 데이터를 생성하는 단계와, 학습부가 상기 학습 데이터를 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 워터마킹 공격 기법을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 단계를 더 포함한다. Before the outputting step, the processing unit performs watermarking to insert the inserted image into the original data, and the processing unit transforms the original data on which the watermarking is performed according to a predetermined watermarking attack technique to generate training data. And generating, by a learning unit, the learning data by inputting the training data to the artificial neural network so that the output value of the artificial neural network has a minimum difference from an expected value representing the watermarking attack technique.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다. In addition, the computer-readable recording medium according to a preferred embodiment of the present invention for achieving the above object is for performing a method for processing watermarking using an artificial neural network according to the preferred embodiment of the present invention described above The program is recorded.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 장치는 복수의 워터마킹 기법을 이용하여 원본 데이터에 삽입이미지를 삽입하는 워터마킹을 수행하고, 상기 복수의 워터마킹 기법 각각에 대응하여 복수의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하고, 상기 변형된 원본 데이터로부터 상기 삽입이미지를 추출하는 가공부와, 상기 워터마킹 공격 기법에 의해 변형된 상기 원본 데이터 및 상기 삽입 이미지의 손실 정도를 평가하고, 상기 평가 결과에 따라 상기 복수의 워터마킹 기법 각각에 대응하여 상기 원본 데이터의 손실이 가장 적으면서 상기 삽입 이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출하는 평가부를 포함한다. An apparatus for deriving a watermarking attack technique according to a preferred embodiment of the present invention for achieving the object as described above performs a watermarking to insert the inserted image in the original data using a plurality of watermarking techniques, A processing unit for modifying the original data subjected to the watermarking according to a plurality of watermarking attack techniques and extracting the inserted image from the modified original data corresponding to each of the plurality of watermarking techniques, and the watermarking attack technique Evaluating the degree of loss of the original data and the embedded image deformed by the method, and corresponding to each of the plurality of watermarking techniques according to the evaluation result, the loss of the original image is the smallest and the loss of the embedded image is greatest. It includes an evaluation unit for deriving the watermarking attack technique.
상기 평가부는 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate) 및 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient) 중 적어도 하나의 값을 산출하여 상기 평가를 수행하는 것을 특징으로 한다. The evaluation unit includes a peak signal-to-noise ratio (PSNR) for evaluating image quality loss information of each of the original data and the embedded image, and a bit for evaluating the number of bits in which the error of each of the original data and the embedded image has occurred. The evaluation is performed by calculating a value of at least one of a BER (Bit error rate) and a normalized correlation coefficient (NCC) for evaluating the similarity before and after each watermarking attack of the original data and the inserted image. It is characterized by performing.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 방법은 가공부가 복수의 워터마킹 기법을 이용하여 원본 데이터에 삽입이미지를 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 상기 복수의 워터마킹 기법 각각에 대응하여 복수의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하는 단계와, 상기 가공부가 상기 변형된 원본 데이터로부터 상기 삽입이미지를 추출하는 단계와, 평가부가 상기 워터마킹 공격 기법에 의해 변형된 상기 원본 데이터 및 상기 삽입 이미지의 손실 정도를 평가하는 단계와, 상기 평가부가 상기 평가 결과에 따라 상기 복수의 워터마킹 기법 각각에 대응하여 상기 원본 데이터의 손실이 가장 적으면서 상기 삽입 이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출하는 단계를 포함한다. A method for deriving a watermarking attack technique according to a preferred embodiment of the present invention for achieving the object as described above is performed by the processing unit performs a watermarking to insert the inserted image in the original data using a plurality of watermarking techniques And modifying, by the processing unit, the original data subjected to the watermarking according to a plurality of watermarking attack techniques corresponding to each of the plurality of watermarking techniques, and by the processing unit from the modified original data. Extracting the data; evaluating, by the evaluator, the degree of loss of the original data and the embedded image modified by the watermarking attack technique; and evaluating, by the evaluator, each of the plurality of watermarking techniques according to the evaluation result. The loss of the inserted image is minimal while the loss of the original data is minimal. Deriving the largest watermarking attack technique.
상기 평가하는 단계는 상기 평가부가 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate) 및 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient) 중 적어도 하나의 값을 산출하여 상기 평가를 수행하는 것을 특징으로 한다. The evaluating may include a peak signal-to-noise ratio (PSNR) for evaluating image quality loss information of each of the original data and the embedded image, and the number of bits of each of the original data and the embedded image. At least one value of a bit error rate (BER) and a normalized correlation coefficient (NCC) for evaluating the similarity before and after the watermarking attack of each of the original data and the inserted image is performed. It is characterized by performing the evaluation by calculating.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 방법을 수행하기 위한 프로그램이 기록된다. In addition, the computer-readable recording medium according to a preferred embodiment of the present invention for achieving the above object is a program for performing a method for deriving a watermarking attack technique according to the preferred embodiment of the present invention described above. Is recorded.
본 발명에 따르면, 가장 효율적으로 워터마킹 공격을 가할 수 있는 워터마킹 공격 기법을 도출할 수 있다. 도출된 워터마킹 공격 기법을 비롯한 다양한 공격 기법을 이용하여 학습데이터로 활용하여, 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 삽입된 이미지를 복원할 수 있다. 더욱이, 본 발명은 인공신경망을 통해 객체를 식별하여 워터마킹을 수행함으로써 워터마킹 공격에 강인한(robust) 워터마킹을 수행할 수 있다. 게다가, 본 발명에 따르면, 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 워터마킹 공격 기법을 도출하고, 이를 통해 삽입된 이미지를 복원할 수 있다. According to the present invention, a watermarking attack technique capable of applying the watermarking attack most efficiently can be derived. By using various attack techniques including the derived watermarking attack technique as the training data, the inserted image can be restored even when a watermarking attack is applied to the watermarked image. Furthermore, the present invention can perform watermarking that is robust to watermarking attacks by performing watermarking by identifying objects through an artificial neural network. In addition, according to the present invention, even when a watermarking attack is applied to the watermarked image, a watermarking attack technique can be derived and the inserted image can be restored.
도 1은 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 화면 예이다.
도 5는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 6 내지 도 8은 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 화면 예이다.
도 9는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 워터마킹 삽입 프로세스를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 워터마킹 추출 프로세스를 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 13은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 14은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 17은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 18은 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 19는 본 발명의 실시예에 따른 워터마킹 공격 기법을 도출하는 방법을 설명하기 위한 흐름도이다. 1 is a block diagram illustrating a configuration of a data processing apparatus including an artificial neural network according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a configuration of an artificial neural network for identifying an object according to an embodiment of the present invention.
3 is a flowchart illustrating a method of learning an artificial neural network according to an embodiment of the present invention.
4 is a screen example for explaining a method for learning an artificial neural network according to an embodiment of the present invention.
5 is a flowchart illustrating a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention.
6 to 8 are screen examples for explaining a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention.
9 is a flowchart illustrating a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention.
10 is a view for explaining a watermarking insertion process according to an embodiment of the present invention.
11 is a view for explaining a watermarking extraction process according to an embodiment of the present invention.
12 is a conceptual diagram illustrating a configuration of an artificial neural network for deriving a bit value inserted into a block according to an embodiment of the present invention.
13 is a flowchart illustrating a method of learning an artificial neural network according to an embodiment of the present invention.
14 is a view for explaining a method of learning artificial neural network according to an embodiment of the present invention.
15 is a flowchart illustrating a method for processing watermarking using an artificial neural network according to an embodiment of the present invention.
16 is a conceptual diagram illustrating the configuration of an artificial neural network for identifying a watermarking attack according to an embodiment of the present invention.
17 is a flowchart illustrating a method of learning an artificial neural network according to an embodiment of the present invention.
18 is a flowchart illustrating a method for processing watermarking using an artificial neural network according to an embodiment of the present invention.
19 is a flowchart illustrating a method of deriving a watermarking attack technique according to an embodiment of the present invention.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. Prior to the description of the present invention, the terms or words used in the specification and claims described below should not be construed as being limited to the ordinary or dictionary meanings, and the inventors should consider their own invention in the best way. For the purpose of explanation, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention on the basis of the principle that it can be appropriately defined as the concept of term. Therefore, the embodiments described in the present specification and the configuration shown in the drawings are only the most preferred embodiments of the present invention, and do not represent all of the technical idea of the present invention, and various equivalents may be substituted for them at the time of the present application. It should be understood that there may be water and variations.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this case, it should be noted that like elements are denoted by like reference numerals as much as possible. In addition, detailed descriptions of well-known functions and configurations that may blur the gist of the present invention will be omitted. For the same reason, some components in the accompanying drawings are exaggerated, omitted, or schematically illustrated, and the size of each component does not entirely reflect the actual size.
한편, 본 발명의 실시예에서 학습데이터와 관련된 정보에 대해 '알려진'이라는 표현이 사용될 수 있다. 이러한 표현은 본원발명의 실시예에 따른 인공신경망을 포함하는 장치가 해당 정보를 인식하고 있기 때문에 활용할 수 있다는 것을 의미하며, 저장매체 등을 통해 해당 정보를 저장하고, 데이터 처리, 예컨대, 학습(deep learning) 등을 위해 참조할 수 있다는 것을 의미한다. 가령, 학습데이터인 영상에 소정 객체가 포함된 것이 알려져 있다는 것은 학습데이터인 영상을 입력받는 장치가 입력되는 영상에 해당 객체가 포함되어 있다는 정보를 장치가 인식하고, 데이터 처리를 위해 활용할 수 있다는 것을 의미한다. Meanwhile, in the embodiment of the present invention, the expression 'known' may be used for information related to the learning data. This expression means that the apparatus including the artificial neural network according to the embodiment of the present invention can be utilized because it recognizes the information, and stores the information through a storage medium or the like, and processes the data, for example, deep ( for reference). For example, it is known that a predetermined object is included in an image, which is learning data, that a device that receives an image, which is learning data, can recognize that the object is included in the input image and can use it for data processing. it means.
먼저, 본 발명의 실시예에 따른 인공신경망을 포함하는 장치의 구성을 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치의 구성을 설명하기 위한 블록도이다. 도 1을 참조하면, 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치(10)는 인공신경망(100), 전처리부(200), 학습부(300), 판단부(400), 가공부(500) 및 평가부(600)를 포함한다. First, the configuration of a device including an artificial neural network according to an embodiment of the present invention will be described. 1 is a block diagram illustrating a configuration of a data processing apparatus including an artificial neural network according to an embodiment of the present invention. Referring to FIG. 1, the
인공신경망(100)은 본 발명의 실시예에 따라 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분하기 위한 것이다. 각각의 구분을 위하여, 인공신경망(100)은 복수가 될 수 있다. The artificial
전처리부(200)는 선택적으로 실행되는 모듈이며, 영상에 포함된 객체가 알려지지 않은 대상 데이터가 입력되면, 대상 데이터에서 적어도 하나의 객체 후보 영역을 설정한다. 그리고 객체 후보 영역 각각을 판단부(400)에 제공한다. The
학습부(300)는 인공신경망(100)에 학습 데이터를 입력하여 인공신경망(100)을 학습(machine learnig)시키기 위한 것이다. 이러한 학습은 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분하기 위한 것이다. The
판단부(400)는 인공신경망(100)이 충분히 학습된 경우, 인공신경망(100)에 임의의 영상인 대상 데이터를 입력하고, 인공신경망(100)의 출력에 따라 대상 데이터인 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분할 수 있다. When the
가공부(500)는 복수의 워터마킹 기법에 따라 영상에 삽입이미지를 워터마킹하거나, 영상에 삽입되어 있는 삽입이미지를 추출할 수 있다. 또한, 가공부(500)는 복수의 워터마킹 공격 기법에 따라 영상을 변형할 수 있다. 그리고 가공부(500)는 영상의 소정 영역을 블라인드 처리할 수 있다. The
평가부(600)는 영상과 그 영상에 워터마킹된 삽입이미지가 워터마킹 공격 기법에 의해 변형된 손실 정도를 평가하기 위한 것이다. 이러한 평가를 위해 평가부(600)는 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 비트 오류율(BER: Bit error rate) 및 정규상관계수(NCC: normalized correlation coefficient)의 값을 산출하여 산출된 값을 이용할 수 있다. The
그러면, 전술한 데이터처리장치(10)의 인공신경망(100)을 이용한 워터마킹을 처리하는 다양한 실시예에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 객체를 식별하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 2를 참조하면, 본 발명의 실시예에 따른 인공신경망(100)은 복수의 계층을 포함한다. 인공신경망(100)은 입력계층(input layer: IL), 컨볼루션계층(convolution layer: CL), 풀링계층(pooling layer: PL), 완전연결계층(fully-connected layer: FL) 및 출력계층(output layer: OL)을 포함한다. Next, various embodiments of processing watermarking using the artificial
입력계층(IL)은 소정 크기의 행렬로 이루어진다. 입력계층(IL) 행렬의 각 원소는 영상의 각 픽셀에 대응한다. 학습부(300)는 학습 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 학습 데이터를 입력할 수 있다. 마찬가지로, 판단부(400)는 대상 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 대상 데이터를 입력할 수 있다. The input layer IL is composed of a matrix having a predetermined size. Each element of the input layer IL matrix corresponds to each pixel of the image. The
도 2에 도시된 바에 따르면, 인공신경망(100)은 제1 컨볼루션 계층(CL1), 제1 풀링 계층(PL1), 제2 컨볼루션 계층(CL2) 및 제2 풀링 계층(PL2)을 포함하여, 2 쌍으로 이루어진 것으로 도시하였지만, 본 발명은 이에 한정되지 않는다. 컨볼루션 계층(CL)과 풀링 계층(PL)은 각각 하나 또는 2 이상의 쌍으로 존재할 수 있다. 또한, 2 이상의 쌍으로 존재할 때, 컨볼루션 계층(CL)과 풀링 계층(PL)은 교번으로 배치된다. 컨볼루션계층(CL: CL1, CL2)과 풀링 계층(PL: PL1, PL2) 각각은 복수의 특징 지도(Feature Map)로 이루어지며, 이러한 특징 지도 각각은 소정 크기의 행렬이다. 특징 지도를 이루는 행렬의 원소 각각의 값은 이전 계층의 행렬 값에 커널(K)을 이용한 컨볼루션 연산(convolution) 혹은 풀링 연산(pooling 혹은 subsampling)을 적용하여 산출된다. 여기서, 여기서, 커널(K)은 소정 크기의 행렬이며, 커널(K)을 이루는 행렬의 각 원소의 값은 가중치(w)가 된다. As shown in FIG. 2, the
완전연결계층(FL)은 복수의 노드(혹은 sigmoid: F1, F2, F3, ..., Fn)를 포함하며, 완전연결계층의 연산 또한 가중치(w)가 적용되어 출력계층(OL)의 복수의 노드(N1, N2, N3, ...)에 입력된다. The fully connected layer FL includes a plurality of nodes (or sigmoids: F1, F2, F3, ..., Fn), and the calculation of the fully connected layer is also applied with a weight w to apply the plurality of nodes of the output layer OL. Are input to nodes N1, N2, N3, ...
출력계층(OL)은 복수의 노드(혹은 sigmoid: N1, N2, N3, ...)로 구성될 수 있다. 복수의 출력 노드(N1, N2, N3, ...) 각각은 소정의 객체, 소정의 워터마킹 기법 또는 소정의 워터마킹 공격 기법에 대응한다. 이러한 복수의 출력 노드(N1, N2, N3, ...) 각각의 출력값은 확률값이다. The output layer OL may be composed of a plurality of nodes (or sigmoids: N1, N2, N3, ...). Each of the plurality of output nodes N1, N2, N3, ... corresponds to a predetermined object, a predetermined watermarking technique, or a predetermined watermarking attack technique. The output value of each of these output nodes N1, N2, N3, ... is a probability value.
예컨대, 제1 출력 노드(N1)는 객체 '말'에 대응하며, 제1 출력 노드(N1)의 출력값인 출력값 1은 학습 데이터 혹은 대상 데이터인 영상에 포함된 객체가 '말'일 확률을 나타내고, 제2 출력 노드(N2)는 객체 '사람'에 대응하며, 제2 출력 노드(N2)의 출력값인 출력값 2는 영상에 포함된 객체가 '사람'일 확률을 나타내며, 제3 출력 노드(N3)는 객체 '자동차'에 대응하며, 제3 출력 노드(N3)의 출력값인 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낼 수 있다. For example, the first output node N1 corresponds to the object 'horse', and the output value 1 that is the output value of the first output node N1 represents the probability that the object included in the image that is the training data or the target data is the 'horse'. The second output node N2 corresponds to the object 'person', and the
인공신경망(100)의 복수의 계층(IL, CL, PL, FL, OL) 각각은 복수의 연산을 포함한다. 특히, 인공신경망(100)의 복수의 계층의 복수의 연산 각각은 가중치(w)가 적용되어 그 결과가 다음 계층으로 전달되어 다음 계층의 입력이 된다. 좀 더 자세히, 도 2에 도시된 바를 예로 하여 인공신경망(100)의 각 계층의 연산과 그 가중치(w)에 대해 설명하기로 한다. Each of the plurality of layers IL, CL, PL, FL, and OL of the artificial
예를 들어, 도 2에 도시된 바에 따르면, 입력계층(IL)은 32×32×3 크기의 행렬이 될 수 있다. 이에 따라, 학습부(300) 또는 판단부(400)는 입력되는 영상(학습 데이터 혹은 대상 데이터)을 32×32×3 크기의 행렬에 맞춰 가공하고, 가공된 영상을 입력한다. For example, as shown in FIG. 2, the input layer IL may be a matrix having a size of 32 × 32 × 3. Accordingly, the
그러면, 입력계층 행렬에 대해 커널(K1)을 이용한 컨벌루션 연산(convolution)을 수행하여, 제1 컨벌루션 계층(CL1)의 복수의 특징지도에 입력된다. 여기서, 커널(K1)은 행렬의 원소가 5×5개의 가중치(w)인 5×5 크기의 행렬을 이용할 수 있다. 제1 컨벌루션 계층(CL1)의 복수의 특징지도 각각은 28×28 크기의 행렬이다. 그런 다음, 제1 컨벌루션 계층(CL1)의 복수의 특징 지도에 대해 행렬의 원소가 2×2 개의 가중치(w)로 이루어진 2×2 크기의 행렬인 커널(K2)을 이용한 풀링 연산(subsampling)을 수행하여 각각이 14×14 크기의 행렬인 6개의 특징 지도로 이루어진 제1 풀링 계층(PL1)을 구성한다. Then, a convolution operation using the kernel K1 is performed on the input layer matrix and input to the plurality of feature maps of the first convolutional layer CL1. Here, the kernel K1 may use a 5 × 5 matrix whose elements of the matrix are 5 × 5 weights w. Each of the plurality of feature maps of the first convolutional layer CL1 is a 28 × 28 matrix. Subsampling is then performed for a plurality of feature maps of the first convolutional layer CL1 using the kernel K2, which is a 2 × 2 matrix of elements having a 2 × 2 weight w. The first pooling layer PL1 includes six feature maps, each of which is a 14 × 14 matrix.
이어서, 제1 폴링 계층(PL1)의 복수의 특징 지도에 대해 행렬의 원소가 5×5 개의 가중치(w)로 이루어진 5×5 크기의 행렬인 커널(K3)을 이용한 컨벌루션 연산(convolution)을 수행하여, 각각이 10×10 크기의 행렬인 16개의 특징 지도로 이루어진 제2 컨벌루션 계층(CL2)을 구성한다. 다음으로, 제2 컨벌루션 계층(CL2)의 복수의 특징 지도에 대해 행렬의 원소가 2×2 개의 가중치(w)로 이루어진 2×2 크기의 행렬인 커널(K4)을 이용한 풀링 연산(subsampling)을 수행하여 각각이 5×5 크기의 행렬인 16개의 특징 지도로 이루어진 제2 풀링 계층(PL2)을 구성한다. 그런 다음, 제2 폴링 계층(PL2)의 복수의 특징 지도에 대해 행렬의 원소가 5×5 개의 가중치(w)로 이루어진 5×5 크기의 행렬인 커널(K5)을 이용한 컨벌루션 연산(convolution)을 수행하여, 완전연결계층(FL)의 복수의 노드(F1 내지 Fn)에 입력된다. Subsequently, a convolution operation is performed on the plurality of feature maps of the first polling layer PL1 using the kernel K3, which is a matrix of
완전연결계층(FL)의 복수의 노드(F1 내지 Fn) 각각은 제2 폴링 계층(PL2)으로부터 입력에 대해 전달함수 등을 이용한 소정의 연산을 수행하고, 그 연산에 가중치(w)를 적용하여 출력계층(OL)의 각 노드에 입력한다. 이에 따라, 출력계층(OL)의 복수의 노드(N1, N2, N3, ...)는 완전연결계층(FL)으로부터 입력된 값에 대해 소정의 연산을 수행하고, 그 결과를 출력한다. 전술한 바와 같이, 복수의 출력 노드(N1, N2, N3, ...) 각각의 출력값은 확률값이다. Each of the nodes F1 to Fn of the fully connected layer FL performs a predetermined operation using a transfer function or the like on an input from the second polling layer PL2, and applies a weight w to the operation. Input to each node of the output layer (OL). Accordingly, the plurality of nodes N1, N2, N3,... Of the output layer OL perform a predetermined operation on the value input from the fully connected layer FL, and output the result. As described above, the output values of each of the plurality of output nodes N1, N2, N3, ... are probability values.
예를 들면, 일실시예에 따르면, 출력값 1은 학습 데이터 혹은 대상 데이터인 영상에 포함된 객체가 '말'일 확률을 나타내고, 출력값 2는 영상에 포함된 객체가 '사람'일 확률을 나타내며, 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낸다고 가정한다. 이때, 출력값 1이 출력값 2 및 3 각각에 비해 높은 값을 가지면, 영상에 포함된 객체가 '말'인 것으로 판단할 수 있다. For example, according to an embodiment, the output value 1 represents the probability that the object included in the image that is the training data or the target data is 'horse', and the
인공신경망(100)이 본 발명의 실시예에 따라 영상에 포함된 객체를 식별하기 위하여 학습부(300)는 복수의 학습 데이터를 이용하여 인공신경망(100)을 학습(learning)시킨다. 이러한 학습 방법에 대해서 설명하기로 한다. In order for the artificial
전술한 바와 같이, 인공신경망(100)의 복수의 계층 각각은 복수의 연산으로 이루어지며, 어느 하나의 계층의 그 연산 결과는 가중치(w)가 적용되어 다른 하나의 계층의 입력이 된다. 이때, 어느 하나의 계층의 출력은 가중치(w)가 곱해진 후, 다음 계층의 입력이 될 수 있다. 예컨대, 전술한 바와 같이, 32×32 크기의 행렬인 입력계층(IL)에 대해 5×5 크기의 행렬인 커널(K1)을 이용한 컨벌루션 연산을 수행하여, 각각이 28×28 크기의 행렬인 6개의 특징 지도로 이루어진 제1 컨벌루션 계층(CL1)을 구성한다. 이때, 커널의 크기 5×5, 입력 행렬의 수 1 그리고 특징 지도의 수 6을 고려하면, 1 × 5 × 5 × 6개의 가중치(w)가 존재한다. 다른 예로, 완전연결계층(FL)이 120개의 노드(F1~F120)로 이루어진 것으로 가정하면(n=120), 16개의 특징 지도를 가지는 제2 풀링계층(PL2)의 출력은 120개의 노드를 가지는 완전연결계층(FL)의 입력이 된다. 제2 풀링 계층(PL2)은 5×5 행렬로 이루어진 커널(K5)을 통해 컨볼루션 연산의 결과가 출력된다. 또한, 하나의 노드 당 16개의 입력이 있으며, 120개의 노드가 존재하기 때문에 5 × 16 × 120개의 가중치(w)가 존재한다. As described above, each of the plurality of layers of the artificial
또 다른 예로, 출력계층(OL) 노드가 30개의 노드(N1, N2, N3, ..., N30)로 이루어진 것으로 가정하면(m=30), 120개의 노드를 가지는 완전연결 계층(FL)의 출력은 30개의 출력노드(N1, N2, N3, ... N30)를 가지는 출력 계층에 입력된다. 이에 따라, 120 × 30개의 가중치(w)가 존재할 수 있다. As another example, assuming that the output layer (OL) node is composed of 30 nodes (N1, N2, N3, ..., N30) (m = 30), the fully connected layer (FL) having 120 nodes The output is input to an output layer having 30 output nodes N1, N2, N3, ... N30. Accordingly, there may be 120 × 30 weights w.
학습 데이터인 영상이 인공신경망(100)에 입력되면, 인공신경망(100)은 전술한 바와 같은 가중치(w)가 적용되는 복수의 연산을 통해 연산 결과를 출력할 것이다. When the image, which is training data, is input to the artificial
인공신경망(100)의 출력, 즉, 출력계층(OL)의 복수의 출력노드(N1, N2, N3, ..., Nm) 각각의 출력값은 입력된 영상(학습 데이터)이 해당 노드에 대응하는 객체이 영상일 확률을 나타낸다. 학습 데이터는 객체가 알려진 데이터이기 때문에, 학습부(300)가 학습 데이터인 영상을 인공신경망(100)에 입력했을 때, 인공신경망(100)의 출력은 대응하는 출력 노드의 출력값이 가장 높은 확률값이 출력될 것으로 기대할 수 있다. 이러한 기대에 따른 출력값을 기댓값이라고 한다. 하지만, 충분히 학습되지 않은 인공신경망(100)은 출력값과 기댓값의 차이가 있다. 따라서 학습부(300)는 학습 데이터를 입력할 때마다, 기댓값과 출력값의 차이가 최소가 되도록 역전파(Back-propagation) 알고리즘을 통해 인공신경망(100)의 가중치(W)를 수정하는 학습을 수행한다. 이와 같이, 본 발명의 실시예에 따른 학습(deep learning)은 입력되는 학습 데이터에 상응하는 기댓값을 정해 놓고, 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 연산에 적용되는 가중치(w)를 수정하는 것이다. The output of the artificial
학습부(300)는 인공신경망(100)이 충분히 학습된 것으로 판단될 때까지, 전술한 바와 같은 학습(deep learning) 절차를 복수의 서로 다른 학습 데이터를 이용하여 반복하여 수행한다. 여기서, 학습부(300)는 기댓값과 출력값의 차이가 소정 수치 이하이면서 어떤 학습 데이터를 입력한 경우에도 출력값이 변동이 없으면, 인공신경망(100)이 충분히 학습된 것으로 판단할 수 있다. The
그러면, 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 워터마킹은 객체를 식별한 후, 식별된 객체 영역에 워터마킹을 수행하기 때문에 인공신경망(100)이 객체를 식별할 수 있도록 학습을 수행한다. 이에 따라, 소정의 객체를 식별하도록 인공신경망(100)을 학습시키는 방법에 대해서 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다. 도 4는 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 화면 예이다. Next, a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention will be described. First, since watermarking according to an embodiment of the present invention identifies an object and performs watermarking on the identified object region, the artificial
도 3을 참조하면, 학습부(300)는 S110 단계에서 학습 데이터를 입력 받아 인공신경망(100)에 입력한다. 여기서, 학습 데이터는 소정의 객체가 포함된 영상이 될 수 있다. 예컨대, 도 4에 도시된 바와 같이, 학습 데이터는 객체 '말'이 포함된 영상이 될 수 있다. 이에 따라, 기댓값은 복수의 출력노드(N1, N2, N3, ..., Nm) 중 객체 '말'에 대응하는 출력노드의 출력값이 가장 높은 값(확률값)을 가지는 것이 될 수 있다. Referring to FIG. 3, the
학습 데이터가 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 통해 출력값을 산출한다. 이에 따라, 학습부(300)는 S120 단계에서 인공신경망(100)의 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 가중치를 수정한다. 전술한 S110 및 S120 단계는 복수의 객체 각각에 대해 복수의 학습 데이터를 입력하여 기댓값과 출력값의 차이가 최소가 되면서 출력값이 변동이 없을 때까지 반복하여 수행한다. 이러한 경우, 학습부(300)는 인공신경망(100)이 충분히 학습이 이루어진 것으로 판단한다. When the training data is input, the artificial
전술한 바와 같이, 객체에 대해 충분히 학습된 경우, 본 발명의 실시예에 따른 워터마킹을 수행한다. 도 5는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다. 도 6 내지 도 8은 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 화면 예이다. As described above, when sufficiently learned about the object, watermarking according to an embodiment of the present invention is performed. 5 is a flowchart illustrating a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention. 6 to 8 are screen examples for explaining a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention.
도 5를 참조하면, 전처리부(200)는 대상 데이터를 입력 받으면, S210 단계에서 적어도 하나의 객체 영역을 설정한다. 여기서, 대상 데이터는 삽입 이미지를 삽입하기 위한 영상을 의미한다. 예컨대, 전처리부(200)는 도 6과 같은 영상이 대상 데이터로 입력되면, 5개의 객체 영역, 즉, 제1 내지 제5 객체 영역(O1, O2, O3, O4, O5)을 설정할 수 있다. 다른 예로, 전처리부(200)는 도 7과 같은 영상이 대상 데이터로 입력되면, 2개의 객체 영역, 즉, 제6 및 제7 객체 영역(O6, O7)을 설정할 수 있다. 전처리부(200)는 객체 영역을 설정하기 위하여 셀렉티브 검색(selective search) 알고리즘을 이용할 수 있다. 예컨대, 셀렉티브 검색은 색상이나 강도 패턴 등이 비슷한 인접한 픽셀을 합치는 방식이다. 셀렉티브 검색 알고리즘 이외에 다양한 알고리즘, 예컨대, 클러스터링 알고리즘 등을 객체 영역을 설정하기 위해 사용될 수 있다. Referring to FIG. 5, upon receiving target data, the
객체 영역을 설정한 후, 판단부(400)는 S230 단계에서 객체 영역 각각을 인공신경망(100)에 입력한다. 인공신경망(100)에 객체 영역이 입력되면, 충분히 학습된 인공신경망(100)의 복수의 출력값 중 객체 영역에 포함된 객체에 대응하는 출력노드의 출력값이 다른 출력노드의 출력값 보다 높은 값을 가질 것이다. 예를 들면, 제1 출력 노드(N1)는 객체 '말'에 대응하며, 출력값 1은 후보 영역에 포함된 객체가 '말'일 확률을 나타내고, 제2 출력 노드(N2)는 객체 '사람'에 대응하며, 출력값 2는 영상에 포함된 객체가 '말'일 확률을 나타내며, 제3 출력 노드(N3)는 객체 '자동차'에 대응하며, 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낸다고 가정한다. 이때, 제3 객체 영역(O3)이 인공신경망(100)에 입력된 경우, 인공신경망(100)의 복수의 출력값 중 출력값 2가 다른 출력값 보다 더 높은 값을 가질 것이다. 따라서 판단부(400)는 S240 단계에서 인공신경망(100)의 출력에 따라 가장 높은 출력값을 가지는 출력노드에 대응하는 객체가 객체 영역에 포함된 것으로 판단할 수 있다. 다른 말로, 판단부(400)는 인공신경망(100)의 출력에 따라 객체 영역에 포함된 객체를 식별할 수 있다. After setting the object area, the
이와 같이, 객체가 식별되면, 판단부(400)는 S250 단계에서 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류한다. 워터마킹을 통해 저작권을 보호하기 위해서는 영상에 포함된 객체 중 해당 영상이 저작권으로써 가치를 나타내는 영역에 워터마킹을 행하는 것이 바람직하다. 예컨대, 도 7은 아프리카 어느 내전국의 소년병의 실태를 고발하기 위한 사진이라고 가정한다. 그러면, 소년병의 모습이 저작권의 주요 대상이 된다. 따라서 소년병의 모습에 대한 저작권을 보호하기 위해 사람 객체 '소년병'을 워터마킹 객체로 구분한다. 한편, 프라이버시 보호, 미성년자 보호 등을 이유로, 대상 데이터인 원본 영상 중 일부를 블라인드 처리해야 하는 객체 영역이 있을 수 있다. 예컨대, 개인의 얼굴, 주소, 자동차 번호판 등의 개인의 신상에 대한 정보를 나타내는 객체가 포함된 객체 영역, 총, 칼, 도끼 등의 폭력적인 장면을 나타내는 객체가 포함된 객체 영역, 나체, 성기 등의 음란 장면을 나타내는 객체가 포함된 객체 영역 등은 블라인드 처리가 이루어질 수 있다. 따라서 본 발명의 실시예에 따르면, 예컨대, 도 7에 도시된 바와 같이, 폭력적인 장면을 나타내는 총 객체를 블라인드 객체로 구분한다. 블라인드 객체는 스크램블링 등을 통해 원본 영상을 훼손하기 때문에 그 자체로 워터마킹에 대한 공격이 이루어질 수 있다. 따라서 워터마킹에 대한 공격을 회피하기 위하여 워터마킹 객체가 포함된 제6 객체 영역(O6)에서 블라인드 객체가 포함된 제7 객체 영역(O7)을 제외한 객체 영역에 삽입 이미지를 삽입하는 것이 바람직하다. 따라서 판단부(400)는 제6 객체 영역(O6)에서 제7 객체 영역(O7)을 제외한 영역을 워터마킹 영역으로 분류하고, 제7 객체 영역(O7)은 블라인드 영역으로 분류한다. As such, when the object is identified, the
전술한 바와 같이, 대상 데이터를 워터마킹 영역과 블라인드 영역으로 분류한 후, 가공부(500)는 S260 단계에서 워터마킹 영역에 소정의 삽입 이미지를 삽입하는 워터마킹을 수행할 수 있다. 예컨대, 도 8에 도시된 바와 같이, 제6 객체 영역(O6)에서 제7 객체 영역(O7)을 제외한 영역을 워터마킹 영역으로 설정하고, 이러한 워터마킹 영역에 소정의 삽입 이미지를 워터마킹할 수 있다. As described above, after classifying the target data into the watermarking area and the blind area, the
마지막으로, 그리고 선택적으로, 가공부(500)는 S270 단계에서 블라인드 영역을 원본의 형태를 식별할 수 없도록 스크램블링 등의 처리를 통해 블라인드 처리할 수 있다. 예컨대, 도 8에 도시된 바와 같이, 제7 객체 영역(O7)을 블라이드 처리할 수 있다. Finally, and optionally, the
다음으로, 워터마킹이 이루어진 대상 데이터로부터 삽입 이미지를 추출하는 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다. Next, a method of extracting an embedded image from watermarked target data will be described. 9 is a flowchart illustrating a method for processing watermarking using an artificial neural network for identifying an object according to an embodiment of the present invention.
도 9를 참조하면, 전처리부(200)는 워터마킹이 이루어진 대상 데이터를 입력 받으면, S310 단계에서 적어도 하나의 객체 영역을 설정한다. 여기서, 대상 데이터는 앞서 도 5 내지 도 7에서 설명된 바에 따라 삽입 이미지가 삽입된 영역이다. 객체 영역을 설정한 후, 판단부(400)는 S330 단계에서 객체 영역 각각을 인공신경망(100)에 입력하고, S340 단계에서 인공신경망(100)의 출력에 따라 객체 영역에 포함된 객체를 식별할 수 있다. 이와 같이, 객체가 식별되면, 판단부(400)는 S350 단계에서 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류한다. 전술한 S310 단계 내지 S350 단계는 S210 단계 내지 S250 단계와 동일하게 수행된다. 그런 다음, 가공부(500)는 S360 단계에서 워터마킹 영역으로부터 삽입 이미지를 추출할 수 있다. Referring to FIG. 9, when the
다음으로, 전술한 S260 단계의 워터마킹 삽입 프로세스 및 S360 단계의 워터마킹 추출 프로세스에 대해서 보다 상세하게 설명하기로 한다. 도 10은 본 발명의 일 실시예에 따른 워터마킹 삽입 프로세스를 설명하기 위한 도면이다. 또한, 도 11은 본 발명의 일 실시예에 따른 워터마킹 추출 프로세스를 설명하기 위한 도면이다. Next, the watermarking insertion process of step S260 and the watermarking extraction process of step S360 will be described in more detail. 10 is a view for explaining a watermarking insertion process according to an embodiment of the present invention. 11 is a view for explaining a watermarking extraction process according to an embodiment of the present invention.
워터마킹 삽입 및 추출의 제1 실시예First embodiment of watermarking insertion and extraction
먼저, 도 10을 참조하여 제1 실시예에 따른 워터마킹 삽입 프로세스에 대해서 설명하기로 한다. First, a watermarking insertion process according to the first embodiment will be described with reference to FIG. 10.
(1) 우선, 가공부(500)는 원본 이미지로부터 특징값 I'을 추출한다. (1) First, the
가공부(500)는 다음의 수학식 1에 따라 원본이미지(워터마킹 영역) I로부터 원본이미지의 특징값 I'을 추출한다. 여기서, 특징값 I'는 블록안의 픽셀값들의 평균을 의미한다. The
여기서, x, y는 원본 이미지(워터마킹 영역)의 픽셀 좌표이며, p와 q는 원본이미지(워터마킹 영역)의 블록 크기를 나타낸다. Here, x and y are pixel coordinates of the original image (watermarking area), and p and q represent block sizes of the original image (watermarking area).
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값을 산출한다. (2) Next, the
카오스값 C은 매개변수 u가 (3.5699456,4]의 범위를 가지는 로지스틱 사상(logistic maps)을 기반으로 생성된다. 본 발명의 실시예에서 다음의 수학식 2와 같은 1차원 로지스틱 사상을 이용할 수 있다. The chaotic value C is generated based on logistic maps in which the parameter u has a range of (3.5699456,4) In an embodiment of the present invention, one-dimensional logistic mapping such as
(3) 마지막으로, 가공부(500)는 삽입이미지 P를 워터마킹 삽입 프로세스에 따라 삽입하여 스테고키 K를 생성한다. (3) Finally, the
(3-1) 이진키 Kb 생성 (3-1) Binary Key Kb Generation
가공부(500)는 의사 난수를 발생시켜 이진키 Kb를 생성한다. The
(3-2) 중간키 Ki 생성 (3-2) Create an intermediate key Ki
가공부(500)는 다음의 수학식 3에 따라 중간키 Ki를 산출한다. 즉, 수학식 3에서 이진키 Kb의 조건에 따라 삽입되는 정보(삽입 이미지) P와 원본 이미지(워터마킹 영역의 이미지) 특징값 I'에 의해 중간키 Ki를 산출한다. The
여기서, x와 y는 원본이미지(워터마킹 영역) I의 픽셀 좌표이다. Here, x and y are pixel coordinates of the original image (watermarking region) I.
(3-3) 데이터키 Kd 생성 (3-3) Data Key Kd Generation
가공부(500)는 다음의 수학식 4를 통해 중간키 Ki와 카오스값 C를 이용하여 이진키 Kb의 조건에 따라 데이터키 Kd를 산출한다. The
(3-3) 스테고키 K 생성 (3-3) Stegoki K Generation
이로써, 가공부(500)는 이진키 Kb 및 데이터키 Kd를 스테고키 K로 얻을 수 있다. As a result, the
다음으로, 도 11을 참조하여, 제1 실시예에 따른 워터마킹 추출 프로세스에 대해서 설명하기로 한다. Next, the watermarking extraction process according to the first embodiment will be described with reference to FIG. 11.
(1) 우선, 원본 이미지(워터마킹 영역)로부터 특징값을 추출한다. 가공부(500)는 전술한 수학식 1에 따라 원본이미지(워터마킹 영역) I로부터 원본이미지의 특징값 I'을 추출한다. (1) First, feature values are extracted from an original image (watermarking area). The
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 가공부(500)는 전술한 수학식 2에 따라 카오스값 C를 산출한다. (2) Next, the
(3) 가공부(500)는 특징값 I', 카오스값 C 및 스테고키 K를 이용하여 삽입이미지 P를 추출한다. (3) The
(3-1) 가공부(500)는 수학식 4를 통해 스테고키 K 중 데이터키 Kd와 카오스값 C를 이용하여 중간키 Ki를 구한다. (3-1) The
(3-2) 가공부(500)는 수학식 3을 통해 스테고키 K 중 이진키 Kb, 중간키 Ki 및 특징값 I'을 이용하여 삽입이미지 P를 추출한다. (3-2) The
워터마킹 삽입 및 추출의 제2 실시예Second Embodiment of Watermarking Insertion and Extraction
다음으로, 도 10을 참조하여 제2 실시예에 따른 워터마킹 삽입 프로세스에 대해서 설명하기로 한다. Next, a watermarking insertion process according to the second embodiment will be described with reference to FIG. 10.
(1) 우선, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 특징값 I'을 추출한다. (1) First, the
(1-1) 가공부(500)는 원본이미지(워터마킹 영역) I로부터 다음의 수학식 5를 통해 에러값 ei를 산출한다. (1-1) The
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이고, di는 MED(median edge detection) 예측기법을 이용한 예측값이다. Here, i is an index of the original image (watermarking area), and di is a prediction value using a median edge detection (MED) prediction technique.
(1-2) 가공부(500)는 산출된 에러값 ei를 다음의 수학식 6에 적용하여 원본이미지(워터마킹 영역) I로부터 원본이미지(워터마킹 영역)의 특징값 I'을 추출한다. (1-2) The
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이고, TH는 임계값이다. Where i is the index of the original image (watermarking area) and TH is the threshold.
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 가공부(500)는 전술한 수학식 2를 통해 카오스값 C를 산출할 수 있다. (2) Next, the
(3) 가공부(500)는 다음의 수학식 7에 따라 특징값 I' 및 카오스값 C를 이용하여 삽입이미지 P를 삽입하면서 스테고키 K를 생성한다. (3) The
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이다. Where i is the index of the original image (watermarking area).
다음으로, 도 11을 참조하여, 제2 실시예에 따른 워터마킹 추출 프로세스에 대해서 설명하기로 한다. Next, the watermarking extraction process according to the second embodiment will be described with reference to FIG. 11.
(1) 우선, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 특징값 I'을 추출한다. 이때, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 전술한 수학식 5를 통해 에러값 ei를 산출하고, 산출된 에러값 ei를 전술한 수학식 6에 적용하여 원본이미지(워터마킹 영역) I로부터 원본이미지(워터마킹 영역)의 특징값 I'을 추출한다. (1) First, the
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 이때, 가공부(500)는 전술한 수학식 2를 통해 카오스값 C를 산출할 수 있다. (2) Next, the
(3) 마지막으로, 가공부(500)는 특징값 I', 카오스값 C 및 스테고키 K를 이용하여 삽입이미지 P를 추출한다. 이때, 가공부(500)는 다음의 수학식 8을 이용하여 삽입이미지 P를 추출할 수 있다. (3) Finally, the
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이다. Where i is the index of the original image (watermarking area).
다음으로, 본 발명의 다른 실시예에 따른 인공신경망을 이용한 워터마킹 처리 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 12는 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 12의 인공신경망(100)은 따로 언급되지 않는 경우, 도 2의 인공신경망(100)의 기술적 특징과 동일하다는 점에 유의하여야 한다. 도 2와 마찬가지로, 도 10의 인공신경망(100) 또한 복수의 계층을 포함한다. 즉, 인공신경망(100)은 입력계층(IL), 컨볼루션계층(CL), 풀링계층(PL), 완전연결계층(FL) 및 출력계층(OL)을 포함한다. Next, a watermarking processing method using an artificial neural network according to another embodiment of the present invention will be described. First, the artificial
입력계층(IL)은 소정 크기의 행렬로 이루어진다. 입력계층(IL) 행렬의 각 원소는 영상의 각 픽셀에 대응한다. 학습부(300)는 학습 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 학습 데이터를 입력할 수 있다. 마찬가지로, 판단부(400)는 대상 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 대상 데이터를 입력할 수 있다. 인공신경망(100)은 제1 컨볼루션 계층(CL1), 제1 풀링 계층(PL1), 제2 컨볼루션 계층(CL2) 및 제2 풀링 계층(PL2)을 포함하여, 2 쌍으로 이루어진 것으로 도시하였지만, 본 발명은 이에 한정되지 않는다. 컨볼루션 계층(CL)과 풀링 계층(PL)은 각각 하나 또는 2 이상의 쌍으로 존재할 수 있다. 또한, 2 이상의 쌍으로 존재할 때, 컨볼루션 계층(CL)과 풀링 계층(PL)은 교번으로 배치된다. 컨볼루션계층(CL: CL1, CL2)과 풀링 계층(PL: PL1, PL2) 각각은 복수의 특징 지도(Feature Map)로 이루어지며, 이러한 특징 지도 각각은 소정 크기의 행렬이다. 특징 지도를 이루는 행렬의 원소 각각의 값은 이전 계층의 행렬 값에 커널(K)을 이용한 컨볼루션 연산(convolution) 혹은 풀링 연산(pooling 혹은 subsampling)을 적용하여 산출된다. 여기서, 여기서, 커널(K)은 소정 크기의 행렬이며, 커널(K)을 이루는 행렬의 각 원소의 값은 가중치(w)가 된다. 완전연결계층(FL)은 복수의 노드(혹은 sigmoid: F1, F2, F3, ..., Fn)를 포함하며, 완전연결계층의 연산 또한 가중치(w)가 적용되어 출력계층(OL)의 복수의 노드(N1, N2, N3, ...)에 입력된다. 출력계층(OL)은 2개의 노드(N1, N2)로 구성된다. 2개의 출력 노드(N1, N2) 각각은 입력된 데이터(학습 데이터 혹은 대상 데이터)에 비트 1 혹은 비트 0이 삽입되었을 확률을 나타낸다. 예를 들면, 제1 출력 노드(N1)는 비트 1에 대응하며, 제1 출력 노드(N1)의 출력값인 출력값 1은 입력되는 데이터, 즉, 학습 데이터 혹은 대상 데이터인 영상의 어느 한 블록에 비트 1이 삽입되었을 확률을 나타낸다. 제2 출력 노드(N2)는 비트 0에 대응하며, 제2 출력 노드(N2)의 출력값인 출력값 2는 영상의 어느 한 블록에 비트 0이 삽입되었을 확률을 나타낼 수 있다. The input layer IL is composed of a matrix having a predetermined size. Each element of the input layer IL matrix corresponds to each pixel of the image. The
인공신경망(100)의 복수의 계층(IL, CL, PL, FL, OL) 각각은 복수의 연산을 포함한다. 특히, 인공신경망(100)의 복수의 계층의 복수의 연산 각각은 가중치(w)가 적용되어 그 결과가 다음 계층으로 전달되어 다음 계층의 입력이 된다. Each of the plurality of layers IL, CL, PL, FL, and OL of the artificial
도 12를 참조로 하는 실시예에서 인공신경망(100)은 입력되는 영상(학습 데이터 혹은 대상 데이터)의 어느 한 블록에 비트 1이 삽입되었는지 혹은 비트 0이 삽입되었는지 여부를 판별한다. 이를 위하여, 학습부(300)는 복수의 학습 데이터를 이용하여 인공신경망(100)을 학습(learning)시킨다. 이러한 학습 방법에 대해서 설명하기로 한다. 학습 데이터는 영상이 미리 설정된 크기의 블록으로 구분되었을 때, 각 블록에 삽입된 비트의 값이 알려진 영상을 의미한다. 특히, 학습 데이터는 워터마킹이 이루어진 원본 데이터(원본 영상)에 소정의 워터마킹 공격 기법이 적용된 경우와 그렇지 않은 경우 모두를 학습 데이터로 이용할 수 있다. In the embodiment with reference to FIG. 12, the artificial
학습 데이터는 영상의 블록 단위로 입력되며, 이러한 블록 각각이 인공신경망(100)에 입력되면, 인공신경망(100)은 전술한 바와 같은 가중치(w)가 적용되는 복수의 연산을 통해 연산 결과를 출력할 것이다. 인공신경망(100)의 출력, 즉, 출력계층(OL)의 2개의 출력노드(N1, N2) 각각의 출력값은 해당 노드에 대응하는 비트값(0 혹은 1)이 해당 블록에 삽입되었을 확률을 나타낸다. 학습 데이터는 각 블록에 삽입된 비트의 값이 알려진 영상이기 때문에, 학습부(300)가 학습 데이터인 영상을 인공신경망(100)에 입력했을 때, 인공신경망(100)의 출력은 대응하는 출력 노드의 출력값이 가장 높은 확률값이 출력될 것으로 기대할 수 있다. 이러한 기대에 따른 출력값을 기댓값이라고 한다. 하지만, 충분히 학습되지 않은 인공신경망(100)은 출력값과 기댓값의 차이가 있다. 따라서 학습부(300)는 학습 데이터를 입력할 때마다, 기댓값과 출력값의 차이가 최소가 되도록 역전파(Back-propagation) 알고리즘을 통해 인공신경망(100)의 가중치(W)를 수정하는 학습을 수행한다. 이와 같이, 본 발명의 실시예에 따른 학습(deep learning)은 입력되는 학습 데이터에 상응하는 기댓값을 정해 놓고, 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 연산에 적용되는 가중치(w)를 수정하는 것이다. 학습부(300)는 인공신경망(100)이 충분히 학습된 것으로 판단될 때까지, 전술한 바와 같은 학습(deep learning) 절차를 복수의 서로 다른 학습 데이터를 이용하여 반복하여 수행한다. 여기서, 학습부(300)는 기댓값과 출력값의 차이가 소정 수치 이하이면서 어떤 학습 데이터를 입력한 경우에도 출력값이 변동이 없으면, 인공신경망(100)이 충분히 학습된 것으로 판단할 수 있다. The training data is input in units of blocks of an image, and when each of these blocks is input to the artificial
그러면, 전술한 인공신경망(100)을 이용하여 워터마킹 처리를 수행하는 방법에 대해서 설명하기로 한다. 본 발명의 실시예에 따른 워터마킹 처리 방법은 삽입 이미지가 삽입된 영상에 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있는 방법을 제안한다. 이를 위하여, 먼저, 인공신경망에 대한 학습이 이루어져야 하며, 인공신경망(100)을 학습시키는 방법에 대해서 설명하기로 한다. 도 13은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다. 도 14은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 도면이다. Next, a method of performing a watermarking process using the above-described artificial
도 13 및 도 14를 참조하면, 먼저, 학습 데이터를 생성하기 위하여, 가공부(500)는 S410 단계에서 원본 데이터(원본 영상)가 입력되면, S420 단계에서 원본 데이터(원본 영상)에 대해 삽입 이미지를 삽입하는 워터마킹을 수행한다. 여기서, 삽입 이미지는 미리 결정된 크기의 복수의 이진 비트(예컨대, M×N개의 비트)로 이루어진 이미지이다. 삽입 이미지가 미리 결정된 크기를 가지기 때문에 이진 비트의 수 또한 미리 결정된다. 따라서 가공부(500)는 대상 데이터를 삽입 이미지의 이진 비트의 비트수에 따라 미리 결정된 복수의 블록(예컨대, M×N개의 블록)으로 구분한다. 그리고 가공부(500)는 구분된 각 블록에 소정의 워터마킹 기법에 따라 삽입 이미지의 각각의 비트를 순차로 삽입하는 워터마킹을 수행한다. 예컨대, 도 14의 (A)에 도시된 바와 같이, 대상 데이터(원본 영상)의 어느 하나의 블록(BL)에 대응하는 삽입 이미지의 비트(bit)가 순차로 삽입된다. 13 and 14, first, in order to generate the training data, the
다음으로, 가공부(500)은 S430 단계에서 워터마킹이 이루어진 대상 데이터에 대해 소정의 워터마킹 공격 기법을 적용하여 변형한다. 도 14의 (B)에 도시된 바와 같이, 예컨대, 아핀 변형(affine transform), JPEG 압축(JPEG compression), 가우시안 필터링(Gaussian filtering) 등 다양한 워터마킹 공격 기법들이 적용될 수 있다. 이러한 S430 단계는 선택적으로 수행될 수 있다. Next, the
도 13 및 도 14를 참조로 하는 실시예에서 학습 데이터를 생성할 때, 각 블록에 삽입된 비트의 값을 알 수 있기 때문에 도 13 및 도 14를 참조로 하는 실시예에서 학습 데이터는 영상이 미리 설정된 크기의 블록으로 구분되었을 때, 각 블록에 삽입된 비트의 값이 알려진 영상을 의미한다. 특히, 학습 데이터는 워터마킹이 이루어진 대상 데이터(원본 영상)에 소정의 워터마킹 공격 기법이 적용된 경우와 그렇지 않은 경우 모두를 학습 데이터로 이용할 수 있다. 13 and 14, when generating the training data, since the value of the bits inserted into each block can be known, the training data in the embodiment of FIG. 13 and FIG. When divided into blocks of a predetermined size, the value of a bit inserted in each block means a known image. In particular, the training data may be used as the training data both when a predetermined watermarking attack technique is applied to the target data (the original image) where watermarking is applied and when it is not.
학습부(300)는 S440 단계에서 학습 데이터를 입력 받아 미리 결정된 크기의 복수의 블록(예컨대, M×N개의 블록)으로 구분하고, S450 단계에서 각 블록을 인공신경망(100)에 입력한다. 이 실시예에서, 인공신경망(100)은 2개의 출력노드(N1, N2)를 가지며, 제1 출력노드(N1)의 출력값은 입력된 블록에 삽입된 비트값이 1일 확률을 나타내며, 제2 출력노드(N2)의 출력값은 입력된 블록에 삽입된 비트값이 0일 확률을 나타낸다. 이에 따라, 해당 블록에 비트값 1이 삽입된 경우, 기댓값은 2개의 출력노드 중 제1 출력노드(N1)의 출력값인 출력값 1이 제2 출력노드(N2)의 출력값인 출력값 2 보다 소정 수치 이상 높은 값을 가지는 것이고, 해당 블록에 비트값 0이 삽입된 경우, 기댓값은 2개의 출력노드 중 제2 출력노드(N2)의 출력값인 출력값 2가 제1 출력노드(N1)의 출력값인 출력값 1 보다 높은 값을 가지는 것이다. 학습 데이터가 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 통해 출력값을 산출한다. 이에 따라, 학습부(300)는 S460 단계에서 인공신경망(100)의 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 가중치를 수정한다. 전술한 S410 및 S460 단계는 복수의 워터마킹 기법, 복수의 워터마킹 공격 기법 각각에 대해 반복하여 수행되며, 복수의 학습 데이터를 입력하여 기댓값과 출력값의 차이가 최소가 되면서 출력값이 변동이 없을 때까지 반복하여 수행한다. 이러한 경우, 학습부(300)는 인공신경망(100)이 충분히 학습이 이루어진 것으로 판단한다. The
전술한 바에 따라 인공신경망(100)이 블록별 비트값에 대해 충분히 학습된 경우, 본 발명의 실시예에 따라 워터마킹 공격이 이루어지거나 그렇지 않은 경우 모두에 대해서 삽입 이미지를 추출할 수 있다. 도 15는 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다. As described above, when the artificial
판단부(400)는 S510 단계에서 대상 데이터를 입력 받아 미리 결정된 크기의 복수의 블록(예컨대, M×N개의 블록)으로 구분한다. 여기서, 대상 데이터는 미리 결정된 크기의 블록으로 구분되어 워터마킹이 이루어진 영상이며, 워터마킹 기법에 대해서는 알려지지 않았으며, 워터마킹 공격이 이루어졌는지 여부도 알려지지 않은 영상이다. The
다음으로, 판단부(400)는 S520 단계에서 앞서 구분된 각 블록을 인공신경망(100)에 입력한다. 대상 데이터의 각 블록이 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 통해 출력값을 산출한다. 인공신경망(100)의 출력값은 해당 블록에 삽입된 비트가 0인지 혹은 1인지 여부를 나타낼 수 있다. 즉, 해당 블록에 비트값 1이 삽입된 경우, 제1 출력노드(N1)의 출력값인 출력값 1이 제2 출력노드(N2)의 출력값인 출력값 2 보다 소정 수치 이상 높은 값을 출력할 것이고, 해당 블록에 비트값 0이 삽입된 경우, 제2 출력노드(N2)의 출력값인 출력값 2가 제1 출력노드(N1)의 출력값인 출력값 1 보다 높은 값을 출력할 것이다. 따라서 판단부(400)는 S530 단계에서 인공신경망(100)의 출력값에 따라 비트값을 식별하고, 식별된 비트값을 연결하여 소정 규격의 삽입 이미지를 재구성하여 생성할 수 있다. Next, the
다음으로, 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹 처리 방법에 대해서 설명하기로 한다. 즉, 이 실시예에 따르면, 인공신경망을 이용하여 워터마킹 공격 기법을 검출하고, 이에 따라, 삽입 이미지를 추출할 수 있다. 다른 말로, 이 실시예에 따른 워터마킹 처리 방법은 삽입 이미지가 삽입된 영상에 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있다. Next, a watermarking processing method using an artificial neural network for identifying a watermarking attack according to an embodiment of the present invention will be described. That is, according to this embodiment, the watermarking attack technique can be detected using an artificial neural network, and accordingly, an embedded image can be extracted. In other words, the watermarking processing method according to the present embodiment may extract the embedded image even when a watermarking attack is made on the inserted image.
먼저, 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 16은 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 16의 인공신경망(100)은 따로 언급되지 않는 경우, 도 2의 인공신경망(100)의 기술적 특징과 동일하다는 점에 유의하여야 한다. 도 2와 마찬가지로, 도 16의 인공신경망(100) 또한 복수의 계층을 포함한다. 즉, 인공신경망(100)은 입력계층(IL), 컨볼루션계층(CL), 풀링계층(PL), 완전연결계층(FL) 및 출력계층(OL)을 포함한다. First, the artificial
입력계층(IL)은 소정 크기의 행렬로 이루어진다. 인공신경망(100)은 제1 컨볼루션 계층(CL1), 제1 풀링 계층(PL1), 제2 컨볼루션 계층(CL2) 및 제2 풀링 계층(PL2)을 포함하여, 2 쌍으로 이루어진 것으로 도시하였지만, 본 발명은 이에 한정되지 않는다. 컨볼루션 계층(CL)과 풀링 계층(PL)은 각각 하나 또는 2 이상의 쌍으로 존재할 수 있다. 또한, 2 이상의 쌍으로 존재할 때, 컨볼루션 계층(CL)과 풀링 계층(PL)은 교번으로 배치된다. 컨볼루션계층(CL: CL1, CL2)과 풀링 계층(PL: PL1, PL2) 각각은 복수의 특징 지도(Feature Map)로 이루어지며, 이러한 특징 지도 각각은 소정 크기의 행렬이다. 특징 지도를 이루는 행렬의 원소 각각의 값은 이전 계층의 행렬 값에 커널(K)을 이용한 컨볼루션 연산(convolution) 혹은 풀링 연산(pooling 혹은 subsampling)을 적용하여 산출된다. 여기서, 여기서, 커널(K)은 소정 크기의 행렬이며, 커널(K)을 이루는 행렬의 각 원소의 값은 가중치(w)가 된다. 완전연결계층(FL)은 복수의 노드(혹은 sigmoid: F1, F2, F3, ..., Fn)를 포함하며, 완전연결계층의 연산 또한 가중치(w)가 적용되어 출력계층(OL)의 복수의 출력노드(N1, N2, ..., Nm)에 입력된다. The input layer IL is composed of a matrix having a predetermined size. The artificial
출력계층(OL)은 복수개의 출력노드(N1, N2, ..., Nm)로 구성된다. 복수의 출력노드(N1, N2, ..., Nm) 각각은 워터마킹 공격 기법에 대응하며, 복수의 출력노드(N1, N2, ..., Nm) 각각의 출력값은 입력된 영상(학습 데이터 혹은 대상 데이터)이 해당 출력노드에 대응하는 워터마킹 공격 기법(이하, '공격 기법'으로 축약함)에 따라 변형되었을 확률을 나타낸다. 예를 들면, 제1 출력 노드(N1)는 공격 기법 1(예컨대, affine transform)에 대응하며, 제1 출력 노드(N1)의 출력값인 출력값 1은 입력되는 데이터, 즉, 학습 데이터 혹은 대상 데이터인 영상이 공격 기법 1에 의해 변형되었을 확률을 나타낸다. 다른 예로, 제m 출력 노드(Nm)는 공격 기법 m(예컨대, Gaussian filtering)에 대응하며, 제m 출력 노드(Nm)의 출력값인 출력값 m은 입력되는 데이터, 즉, 학습 데이터 혹은 대상 데이터인 영상이 공격 기법 m에 의해 변형되었을 확률을 나타낸다. The output layer OL is composed of a plurality of output nodes N1, N2, ..., Nm. Each of the plurality of output nodes N1, N2, ..., Nm corresponds to a watermarking attack technique, and output values of each of the plurality of output nodes N1, N2, ..., Nm are inputted images (learning data). Or target data), which represents the probability that the target data has been modified according to the watermarking attack technique (hereinafter, abbreviated as 'attack technique') corresponding to the corresponding output node. For example, the first output node N1 corresponds to attack technique 1 (eg, affine transform), and output value 1, which is an output value of the first output node N1, is input data, that is, training data or target data. Indicates the probability that the image was modified by the attack technique 1. As another example, the m th output node Nm corresponds to the attack technique m (eg, Gaussian filtering), and an output value m that is an output value of the m th output node Nm is input data, that is, image data that is training data or target data. Shows the probability of being modified by this attack technique m.
인공신경망(100)의 복수의 계층(IL, CL, PL, FL, OL) 각각은 복수의 연산을 포함한다. 특히, 인공신경망(100)의 복수의 계층의 복수의 연산 각각은 가중치(w)가 적용되어 그 결과가 다음 계층으로 전달되어 다음 계층의 입력이 된다. 인공신경망(100)이 본 발명의 실시예에 따라 영상에 적용된 공격 기법을 식별하기 위하여 학습부(300)는 복수의 학습 데이터를 이용하여 인공신경망(100)을 학습(learning)시킨다. 이러한 학습 방법에 대해서 설명하기로 한다. 학습 데이터인 영상이 인공신경망(100)에 입력되면, 인공신경망(100)은 전술한 바와 같은 가중치(w)가 적용되는 복수의 연산을 통해 연산 결과를 출력할 것이다. 학습 데이터는 워터마킹 공격 기법이 알려진 영상이기 때문에, 학습부(300)가 학습 데이터인 영상을 인공신경망(100)에 입력했을 때, 인공신경망(100)의 출력은 해당 공격기법에 대응하는 출력노드의 출력값이 가장 높은 확률값이 출력될 것으로 기대할 수 있다. 이러한 기대에 따른 출력값을 기댓값이라고 한다. 하지만, 충분히 학습되지 않은 인공신경망(100)은 출력값과 기댓값의 차이가 있다. 따라서 학습부(300)는 학습 데이터를 입력할 때마다, 기댓값과 출력값의 차이가 최소가 되도록 역전파(Back-propagation) 알고리즘을 통해 인공신경망(100)의 가중치(W)를 수정하는 학습을 수행한다. 이와 같이, 본 발명의 실시예에 따른 학습(deep learning)은 입력되는 학습 데이터에 상응하는 기댓값을 정해 놓고, 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 연산에 적용되는 가중치(w)를 수정하는 것이다. 학습부(300)는 인공신경망(100)이 충분히 학습된 것으로 판단될 때까지, 전술한 바와 같은 학습(deep learning) 절차를 복수의 서로 다른 학습 데이터를 이용하여 반복하여 수행한다. 여기서, 학습부(300)는 기댓값과 출력값의 차이가 소정 수치 이하이면서 어떤 학습 데이터를 입력한 경우에도 출력값이 변동이 없으면, 인공신경망(100)이 충분히 학습된 것으로 판단할 수 있다. Each of the plurality of layers IL, CL, PL, FL, and OL of the artificial
다음으로, 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹 공격 기법을 검출하고, 이에 따라, 삽입 이미지를 추출하는 방법에 대해서 설명하기로 한다. 이를 위하여, 먼저, 인공신경망에 대한 학습이 이루어져야 하며, 이러한 학습 방법에 대해서 설명하기로 한다. 도 17은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다. Next, a method of detecting a watermarking attack technique using an artificial neural network according to an embodiment of the present invention and, accordingly, extracting an embedded image will be described. To this end, first, the neural network must be learned, and this learning method will be described. 17 is a flowchart illustrating a method of learning an artificial neural network according to an embodiment of the present invention.
도 17을 참조하면, 가공부(500)는 S610 단계에서 대상 데이터(원본 영상)가 입력되면, S620 단계에서 소정의 워터마킹 기법을 적용하여 대상 데이터(원본 영상)에 대해 삽입 이미지를 삽입하는 워터마킹을 수행한다. 다음으로, 가공부(500)은 S630 단계에서 소정의 워터마킹 공격 기법을 적용하여 워터마킹이 이루어진 대상 데이터를 변형한다. 이때, 다양한 워터마킹 공격 기법들이 적용될 수 있다. 워터마킹 공격 기법은 아핀 변형(affine transform), JPEG 압축(JPEG compression), 가우시안 필터링(Gaussian filtering) 등을 예시할 수 있다. 도 17을 참조로 하는 실시예에서 학습 데이터는 적어도 워터마킹 공격 기법이 알려진 영상을 의미한다. Referring to FIG. 17, when the target data (original image) is input in step S610, the
다음으로, 학습부(300)는 S640 단계에서 학습 데이터를 입력 받고, 입력된 학습 데이터를 인공신경망(100)에 입력한다. 이 실시예에서, 인공신경망(100)은 복수의 출력노드(N1, N2, N3, ..., Nm)를 가지며, 복수의 출력노드(N1, N2, N3, ..., Nm) 각각은 워터마킹 공격 기법에 대응하며, 복수의 출력노드(N1, N2, N3, ..., Nm) 각각의 출력값은 학습 데이터가 해당 출력노드에 대응하는 워터마킹 공격 기법이 적용되어 변형되었을 확률을 나타낸다. 이에 따라, 기댓값은 학습 데이터의 알려진 워터마킹 공격 기법에 대응하는 출력노드의 출력값이 다른 출력노드 각각의 출력값 보다 소정 수치 이상 높은 값을 가지는 것이 될 수 있다. 따라서 인공신경망(100)은 학습 데이터가 입력되면, 복수의 계층의 각각이 가중치(w)가 적용되는 복수의 연산을 통해 출력값을 산출한다. 이에 따라, 학습부(300)는 S650 단계에서 인공신경망(100)의 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 가중치(w)를 수정한다. Next, the
전술한 S610 및 S650 단계는 적어도 하나의 워터마킹 기법, 복수의 워터마킹 공격 기법 각각에 대해 반복하여 수행되며, 복수의 학습 데이터를 입력하여 기댓값과 출력값의 차이가 최소가 되면서 출력값이 변동이 없을 때까지 반복하여 수행한다. 이러한 경우, 학습부(300)는 인공신경망(100)이 충분히 학습이 이루어진 것으로 판단한다. Steps S610 and S650 described above are repeatedly performed for each of at least one watermarking technique and a plurality of watermarking attack techniques, and when the output value is unchanged while the difference between the expected value and the output value is minimized by inputting the plurality of learning data. Repeat until. In this case, the
전술한 바와 같이, 인공신경망(100)이 영상에 적용된 워터마킹 공격 기법에 대해 충분히 학습된 경우, 본 발명의 실시예에 따라 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있다. 도 18은 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다. As described above, when the artificial
판단부(400)는 S710 단계에서 대상 데이터를 입력 받으면, 입력된 대상 데이터를 인공신경망(100)에 입력한다. 여기서, 대상 데이터는 워터마킹이 이루어지고, 워터마킹 기법이 알려져 있어, 삽입 이미지 추출을 시도했지만, 삽입 이미지가 추출되지 않거나, 식별 불가능한 상태로 추출된 영상이고, 그 워터마킹 공격 기법을 알 수 없는 워터마킹 공격이 의심되는 영상이 될 수 있다. 대상 데이터가 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 수행하여 출력값을 산출한다. 인공신경망(100)의 출력값은 워터마킹 공격 기법을 나타낸다. 예를 들면, 대상 데이터는 제1 워터마킹 공격 기법(예컨대, affine transform)에 의해 변형된 상태라고 가정한다. 또한, 제1 워터마킹 공격 기법에 대응하는 출력 노드는 제1 출력노드(N1)이며, 제1 출력노드(N1)의 출력값이 다른 출력 노드의 출력값 보다 소정 수치 이상 높은 값으로 출력될 것이다. 따라서 판단부(400)는 S720 단계에서 인공신경망(100)의 출력값에 따라 워터마킹 공격 기법을 식별한다. When the
이어서, 가공부(500)는 S730 단계에서 앞서 식별된 워터마킹 공격 기법에 따라 대상 데이터를 복원한다. 즉, 가공부(500)는 워터마킹 공격 기법에 따라 변환된 대상 데이터를 워터마킹 공격 기법을 이용하여 역변환한다. 다음으로, 가공부(500)는 S740 단계에서 역변환된 대상 데이터에서 알려진 워터마킹 기법에 따라 삽입 이미지를 추출한다. Subsequently, the
다음으로, 본 발명의 다른 실시예에 따른 워터마킹 공격 기법 도출 방법에 대해서 설명하기로 한다. 도 19는 본 발명의 실시예에 따른 워터마킹 공격 기법을 도출하는 방법을 설명하기 위한 흐름도이다. Next, a method of deriving a watermarking attack method according to another embodiment of the present invention will be described. 19 is a flowchart illustrating a method of deriving a watermarking attack technique according to an embodiment of the present invention.
도 19를 참조하면, 가공부(500)는 S800 단계에서 임의의 영상인 원본 데이터에 대해 복수의 워터마킹 기법 및 복수의 워터마킹 공격 기법을 적용하고, 평가한다. 구체적으로, 가공부(500)는 원본 데이터가 입력되면, S810 단계에서 워터마킹 기법을 적용하여 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행한다. 다음으로, 가공부(500)는 S820 단계에서 워터마킹 공격 기법을 적용하여 워터마킹이 이루어진 원본 데이터를 변형한다. 다음으로, 가공부(500)는 워터마킹 공격 기법에 따라 변형된 원본 데이터로부터 앞서(S810) 적용된 워터마킹 기법을 이용하여 삽입이미지를 추출한다. Referring to FIG. 19, in operation S800, the
그런 다음, 평가부(600)는 S840 단계에서 원본 데이터와 워터마킹 공격 기법에 의해 변형된 원본 데이터를 비교하고, 삽입이미지와 워터마킹 공격 기법에 의해 변형된 삽입이미지를 비교하여 이러한 평가는 워터마킹 공격 기법에 의해 변형된 원본 데이터 및 삽입 이미지의 손실 정도를 평가한다. 구체적으로, 평가부(600)는 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate), 그리고, 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient)의 값을 산출하여 평가를 수행한다. Then, the
전술한 S810 단계 내지 S840 단계를 포함하는 S800 단계는 서로 다른 복수의 워터마킹 기법과 서로 다른 복수의 워터마킹 공격 기법을 이용하여 반복하여 수행된다. Step S800 including the above-described steps S810 to S840 is repeatedly performed using a plurality of different watermarking techniques and a plurality of different watermarking attack techniques.
전술한 S800 단계 후, 평가부(600)는 S900 단계에서 각 워터마킹 기법에 대응하여 워터마킹 공격에 따라 원본 데이터의 손실이 가장 적으면서 추출된 삽입이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출한다. 즉, 각 워터마킹 기법에 대응하여 가장 효과적인 워터마킹 공격 기법을 도출한다. 도출된 워터마킹 공격 기법은 앞서 도 1 내지 도 18을 통해 설명된 다양한 실시예의 학습 데이터를 생성하는 데에 사용될 수 있다. After the above-described step S800, the
한편, 앞서 설명된 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. On the other hand, the method according to the embodiment of the present invention described above may be implemented in the form of a program readable through various computer means may be recorded on a computer-readable recording medium. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. Program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. For example, the recording medium may be magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs, DVDs, or magnetic-optical media such as floptical disks. magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level languages that can be executed by a computer using an interpreter, as well as machine languages such as those produced by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다. While the invention has been described using some preferred embodiments, these embodiments are illustrative and not restrictive. As such, those of ordinary skill in the art will appreciate that various changes and modifications may be made according to equivalents without departing from the spirit of the present invention and the scope of rights set forth in the appended claims.
100: 인공신경망
IL: 입력계층
CL: 컨볼루션계층
PL: 풀링계층
FL: 완전연결계층
OL: 출력계층
200: 전처리부
300: 학습부
400: 판단부
500: 가공부
600: 평가부100: artificial neural network
IL: input layer
CL: Convolutional Layer
PL: Pooling Layer
FL: fully connected layer
OL: output layer
200: preprocessing unit
300: learning unit
400: judgment
500: machining
600: evaluation unit
Claims (6)
대상 데이터에서 적어도 하나의 객체 영역을 설정하는 전처리부;
각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 인공신경망;
상기 객체 영역을 상기 인공신경망에 입력하여 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 판단부; 및
상기 워터마킹 영역에 삽입이미지를 워터마킹하는 가공부;를 포함하며,
상기 인공신경망은
입력계층, 컨볼루션계층, 풀링계층, 완전연결계층 및 출력계층을 포함하며,
상기 출력계층은 복수의 노드로 구성되며,
상기 복수의 노드 각각은 소정의 객체에 대응하며,
상기 복수의 노드 각각은 상기 객체 영역에 대응하는 소정의 객체가 포함되어 있는 확률값을 출력하는 것을 특징으로 하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치. An apparatus for processing watermarking using an artificial neural network for identifying an object,
A preprocessor configured to set at least one object area in the target data;
An artificial neural network comprising a plurality of layers each including a plurality of operations to which weights are applied, and outputting a probability that a predetermined object is included in the object area;
A determination unit for inputting the object region to the artificial neural network, identifying an object included in the object region according to the output of the artificial neural network, and deriving a watermarking region according to the identified object; And
And a processing unit for watermarking the inserted image in the watermarking area.
The artificial neural network
Including an input layer, a convolutional layer, a pooling layer, a fully connected layer, and an output layer,
The output layer is composed of a plurality of nodes,
Each of the plurality of nodes corresponds to a predetermined object,
And each of the plurality of nodes outputs a probability value that includes a predetermined object corresponding to the object region.
상기 판단부는
상기 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 상기 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류하는 것을 특징으로 하는 워터마킹을 처리하기 위한 장치. The method of claim 1,
The determination unit
The identified object is classified into a watermarking object and a blind object according to a predetermined rule, and an area excluding the area containing the blind object is classified as the watermarking area in the object area including the watermarking object. Apparatus for processing watermarking, characterized in that the included area is classified into a blind area.
알려진 소정 객체가 포함된 영상인 학습 데이터가 입력되면, 상기 인공신경망에 입력하고, 상기 인공신경망의 출력값이 상기 알려진 소정 객체를 나타내는 목표값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부;를 더 포함하는 것을 특징으로 하는 워터마킹을 처리하기 위한 장치. The method of claim 1,
A learning unit configured to input learning data, which is an image including a known predetermined object, to input to the artificial neural network, and calculate the weight such that an output value of the artificial neural network has a minimum difference from a target value representing the known predetermined object; Apparatus for processing watermarking further comprising.
상기 가공부는
상기 워터마킹 영역으로부터 특징값을 추출하고, 로지스틱 사상으로부터 카오스값을 산출하고, 상기 특징값 및 카오스값을 이용하여 상기 삽입이미지를 워터마킹하고, 스테고키를 생성하는 것을 특징으로 하는 워터마킹을 처리하기 위한 장치. The method of claim 1,
The processing part
Watermark processing, characterized in that to extract a feature value from the watermarking area, to calculate a chaos value from logistic mapping, to watermark the inserted image using the feature value and the chaos value, and to generate a stego key Device for
전처리부가 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 단계;
각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하되, 상기 출력계층은 복수의 노드로 구성되며, 상기 복수의 노드 각각은 상기 소정의 객체에 대응하며, 상기 객체 영역에 상기 소정의 객체가 포함되어 있는 확률값을 출력하는 단계;
판단부가 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 단계; 및
가공부가 상기 워터마킹 영역에 삽입이미지를 워터마킹하는 단계;를 포함하는 것을 특징으로 하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법. A method for identifying water and processing watermarking using an artificial neural network comprising an input layer, a convolutional layer, a pooling layer, a fully connected layer, and an output layer,
Setting, by the preprocessor, at least one object area in the target data;
An artificial neural network comprising a plurality of hierarchies each including a plurality of operations that are weighted outputs a probability that a predetermined object is included in the object region, wherein the output layer is composed of a plurality of nodes. Outputting a probability value corresponding to each of the predetermined objects and including the predetermined object in the object area;
Determining, by the determination unit, an object included in the object area according to the output of the artificial neural network, and deriving a watermarking area according to the identified object; And
And a processing unit watermarking the inserted image in the watermarking area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018503A KR102028824B1 (en) | 2018-02-14 | 2018-02-14 | Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018503A KR102028824B1 (en) | 2018-02-14 | 2018-02-14 | Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190098486A KR20190098486A (en) | 2019-08-22 |
KR102028824B1 true KR102028824B1 (en) | 2019-10-04 |
Family
ID=67766981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180018503A KR102028824B1 (en) | 2018-02-14 | 2018-02-14 | Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102028824B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102199627B1 (en) * | 2020-05-18 | 2021-01-07 | 호서대학교 산학협력단 | Apparatus for recognizing approaching vessel considering distance objects based on Deep Neural Networks, method therefor, and computer recordable medium storing program to perform the method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102310446B1 (en) * | 2020-12-31 | 2021-10-07 | (주)트레블씨투비 | Apparatus for identifying landmarks irrespective of location change based on deep learning model and method therefor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141766A1 (en) * | 2003-10-15 | 2005-06-30 | Toshinori Nagahashi | Method, system and program for searching area considered to be face image |
KR101677111B1 (en) * | 2016-03-14 | 2016-11-17 | 주식회사우경정보기술 | Dynamic image object privacy protection device and the method of detecting the face of the pedestrian based |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100479478B1 (en) * | 2002-07-26 | 2005-03-31 | 연세대학교 산학협력단 | Object-based transcoding method with the importance-degree of each object and apparatus thereof |
KR100797024B1 (en) | 2006-05-02 | 2008-01-22 | 한국전자통신연구원 | Method and apparatus for hybrid image watermarking |
-
2018
- 2018-02-14 KR KR1020180018503A patent/KR102028824B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141766A1 (en) * | 2003-10-15 | 2005-06-30 | Toshinori Nagahashi | Method, system and program for searching area considered to be face image |
KR101677111B1 (en) * | 2016-03-14 | 2016-11-17 | 주식회사우경정보기술 | Dynamic image object privacy protection device and the method of detecting the face of the pedestrian based |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102199627B1 (en) * | 2020-05-18 | 2021-01-07 | 호서대학교 산학협력단 | Apparatus for recognizing approaching vessel considering distance objects based on Deep Neural Networks, method therefor, and computer recordable medium storing program to perform the method |
Also Published As
Publication number | Publication date |
---|---|
KR20190098486A (en) | 2019-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102028825B1 (en) | Apparatus for processing watermarking using artificial neural network which identifies watermarking attack, method thereof and computer recordable medium storing program to perform the method | |
Uchida et al. | Embedding watermarks into deep neural networks | |
Qian et al. | Learning and transferring representations for image steganalysis using convolutional neural network | |
Namba et al. | Robust watermarking of neural network with exponential weighting | |
Luo et al. | A review on blind detection for image steganography | |
CN113538202B (en) | Image steganography method and system based on generation type steganography contrast | |
KR101986912B1 (en) | Apparatus for detecting and extracting image having hidden data using artificial neural network, method thereof and computer recordable medium storing program to perform the method | |
Deeba et al. | Digital watermarking using deep neural network | |
JP2008529420A (en) | Stego analysis system and method | |
CN107111782A (en) | Neural network structure and its method | |
AU2021103604A4 (en) | Soft threshold defense method for adversarial examples of remote sensing images | |
CN111507386A (en) | Method and system for detecting encrypted communication of storage file and network data stream | |
Badr et al. | A review on steganalysis techniques: from image format point of view | |
Pakdaman et al. | A prediction based reversible image watermarking in Hadamard domain | |
KR102028824B1 (en) | Apparatus for processing watermarking using artificial neural network which identifies objects, method thereof and computer recordable medium storing program to perform the method | |
Rani et al. | A robust watermarking scheme exploiting balanced neural tree for rightful ownership protection | |
Rai et al. | An optimized deep fusion convolutional neural network-based digital color image watermarking scheme for copyright protection | |
KR102045140B1 (en) | Apparatus for drawing watermarking attack technique using artificial neural network, method thereof and computer recordable medium storing program to perform the method | |
Bhasin et al. | Steganalysis for JPEG images using extreme learning machine | |
Abdollahi et al. | Image steganography based on smooth cycle-consistent adversarial learning | |
Diwan et al. | CNN-Keypoint Based Two-Stage Hybrid Approach for Copy-Move Forgery Detection | |
KR102124502B1 (en) | Apparatus for processing watermarking using artificial neural network, method thereof and computer recordable medium storing program to perform the method | |
Jabbar et al. | Digital watermarking by utilizing the properties of self-organization map based on least significant bit and most significant bit | |
Alkhowaiter et al. | Image authentication using self-supervised learning to detect manipulation over social network platforms | |
Ghosh et al. | A deep learning based image steganalysis using gray level co-occurrence matrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |