KR102124502B1 - 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102124502B1
KR102124502B1 KR1020180018502A KR20180018502A KR102124502B1 KR 102124502 B1 KR102124502 B1 KR 102124502B1 KR 1020180018502 A KR1020180018502 A KR 1020180018502A KR 20180018502 A KR20180018502 A KR 20180018502A KR 102124502 B1 KR102124502 B1 KR 102124502B1
Authority
KR
South Korea
Prior art keywords
artificial neural
neural network
watermarking
value
data
Prior art date
Application number
KR1020180018502A
Other languages
English (en)
Other versions
KR20190098485A (ko
Inventor
윤은준
Original Assignee
경일대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경일대학교산학협력단 filed Critical 경일대학교산학협력단
Priority to KR1020180018502A priority Critical patent/KR102124502B1/ko
Publication of KR20190098485A publication Critical patent/KR20190098485A/ko
Application granted granted Critical
Publication of KR102124502B1 publication Critical patent/KR102124502B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것으로, 이러한 본 발명은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 복수의 블록으로 구분되는 영상인 대상 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 인공신경망과, 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 판단부와, 상기 결정된 비트값에 따라 삽입 이미지를 재구성하는 가공부를 포함하는 것을 특징으로 하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치와, 그 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.

Description

인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus for processing watermarking using artificial neural network, method thereof and computer recordable medium storing program to perform the method}
본 발명은 워터마킹 기술에 관한 것으로, 보다 상세하게는, 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 워터마킹의 삽입 여부를 판별할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
최근 인터넷과 컴퓨터의 발전으로 다양한 멀티미디어 콘텐츠가 새롭게 등장함에 따라 새로운 유형의 콘텐츠에 따른 맞춤형 저작권 보호기술이 요구되고 있다. 새로운 유형의 콘텐츠에 저작권 보호를 하기 위해 기존에 개발된 워터마킹 기술을 이용할 경우, 다양한 문제가 발생하게 된다. 워터마킹 기법은 자주 발생하는 특정한 공격을 정의하고 그에 대한 강인성을 가지도록 설계되므로, 정의되지 않은 공격에 취약하다.
한국공개특허 제2007-0107317호 2007년 11월 07일 공개 (명칭: 하이브리드 이미지 워터마킹 방법 및 장치)
본 발명의 목적은 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 삽입된 이미지를 복원할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
본 발명의 다른 목적은 인공신경망을 통해 객체를 식별하여 워터마킹을 수행할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
본 발명의 다른 목적은 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 워터마킹 공격 기법을 도출하고, 이를 통해 삽입된 이미지를 복원할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
본 발명의 또 다른 목적은 워터마킹 기법에 따라 가장 효율적으로 워터마킹 공격을 가할 수 있는 워터마킹 공격 기법을 도출할 수 있는 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 복수의 블록으로 구분되는 영상인 대상 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 인공신경망과, 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 판단부와, 상기 결정된 비트값에 따라 삽입 이미지를 재구성하는 가공부를 포함한다.
상기 가공부는 원본 데이터를 소정 크기의 블록 단위로 구분하고, 구분된 각 블록에 이진 데이터인 삽입 이미지의 비트값을 삽입하는 워터마킹을 수행하며, 워터마킹이 이루어진 원본 데이터를 소정의 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 것을 특징으로 한다.
상기 장치는 상기 학습데이터를 상기 소정 크기의 블록 단위로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 복수의 블록으로 구분되는 영상인 대상 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 단계와, 판단부가 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 단계와, 가공부가 상기 결정된 비트값에 따라 삽입 이미지를 재구성하는 단계를 포함한다.
상기 방법은 상기 출력하는 단계 전, 상기 가공부가 원본 데이터를 소정 크기의 블록 단위로 구분하고, 구분된 각 블록에 이진 데이터인 삽입 이미지의 비트값을 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 상기 워터마킹이 이루어진 원본 데이터를 소정의 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 단계와, 학습부가 상기 학습데이터를 상기 소정 크기의 블록 단위로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 단계를 더 포함한다.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 전처리부와, 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 인공신경망과, 상기 객체 영역을 상기 인공신경망에 입력하여 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 판단부와, 상기 워터마킹 영역에 삽입 이미지를 워터마킹하는 가공부를 포함한다.
상기 판단부는 상기 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 상기 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류하는 것을 특징으로 한다.
알려진 소정 객체가 포함된 영상인 학습 데이터가 입력되면, 상기 인공신경망에 입력하고, 상기 인공신경망의 출력값이 상기 알려진 소정 객체를 나타내는 목표값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다.
상기 가공부는 상기 워터마킹 영역으로부터 특징값을 추출하고, 로지스틱 사상으로부터 카오스값을 산출하고, 상기 특징값 및 카오스값을 이용하여 상기 삽입 이미지를 워터마킹하고, 스테고키를 생성하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 전처리부가 대상 데이터에서 적어도 하나의 객체 영역을 설정하는 단계와, 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 상기 객체 영역에 소정 객체가 포함되어 있는 확률을 출력하는 단계와, 판단부가 상기 인공신경망의 출력에 따라 상기 객체 영역에 포함된 객체를 식별하고, 식별된 객체에 따라 워터마킹 영역을 도출하는 단계와, 가공부가 상기 워터마킹 영역에 삽입 이미지를 워터마킹하는 단계를 포함한다.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치는 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지며, 영상인 대상 데이터가 입력되면, 상기 영상에 적용되었을 워터마킹 공격 기법을 확률로 출력하는 인공신경망과, 상기 출력에 따라 상기 영상에 적용된 워터마킹 공격 기법을 식별하는 판단부와, 상기 식별된 워터마킹 공격 기법을 이용하여 상기 영상을 역변환하고, 상기 역변환된 영상으로부터 삽입 이미지를 추출하는 가공부를 포함한다.
상기 가공부는 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행하며, 소정의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하여 학습 데이터를 생성하는 것을 특징으로 한다.
상기 학습 데이터를 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 워터마킹 공격 기법을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 학습부를 더 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층으로 이루어지는 인공신경망이 영상인 대상 데이터가 입력되면, 상기 영상에 적용되었을 워터마킹 공격 기법을 확률로 출력하는 단계와, 판단부가 상기 출력에 따라 상기 영상에 적용된 워터마킹 공격 기법을 식별하는 단계와, 가공부가 상기 식별된 워터마킹 공격 기법을 이용하여 상기 영상을 역변환하고, 상기 역변환된 영상으로부터 삽입 이미지를 추출하는 단계를 포함한다.
상기 출력하는 단계 전, 상기 가공부가 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 소정의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하여 학습 데이터를 생성하는 단계와, 학습부가 상기 학습 데이터를 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 워터마킹 공격 기법을 나타내는 기댓값과의 차이가 최소가 되도록 상기 가중치를 산출하는 단계를 더 포함한다.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 장치는 복수의 워터마킹 기법을 이용하여 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행하고, 상기 복수의 워터마킹 기법 각각에 대응하여 복수의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하고, 상기 변형된 원본 데이터로부터 상기 삽입 이미지를 추출하는 가공부와, 상기 워터마킹 공격 기법에 의해 변형된 상기 원본 데이터 및 상기 삽입 이미지의 손실 정도를 평가하고, 상기 평가 결과에 따라 상기 복수의 워터마킹 기법 각각에 대응하여 상기 원본 데이터의 손실이 가장 적으면서 상기 삽입 이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출하는 평가부를 포함한다.
상기 평가부는 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate) 및 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient) 중 적어도 하나의 값을 산출하여 상기 평가를 수행하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 방법은 가공부가 복수의 워터마킹 기법을 이용하여 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행하는 단계와, 상기 가공부가 상기 복수의 워터마킹 기법 각각에 대응하여 복수의 워터마킹 공격 기법에 따라 상기 워터마킹이 수행된 원본 데이터를 변형하는 단계와, 상기 가공부가 상기 변형된 원본 데이터로부터 상기 삽입 이미지를 추출하는 단계와, 평가부가 상기 워터마킹 공격 기법에 의해 변형된 상기 원본 데이터 및 상기 삽입 이미지의 손실 정도를 평가하는 단계와, 상기 평가부가 상기 평가 결과에 따라 상기 복수의 워터마킹 기법 각각에 대응하여 상기 원본 데이터의 손실이 가장 적으면서 상기 삽입 이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출하는 단계를 포함한다.
상기 평가하는 단계는 상기 평가부가 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate) 및 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient) 중 적어도 하나의 값을 산출하여 상기 평가를 수행하는 것을 특징으로 한다.
또한, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 판독 가능한 기록매체는 전술한 본 발명의 바람직한 실시예에 따른 워터마킹 공격 기법을 도출하기 위한 방법을 수행하기 위한 프로그램이 기록된다.
본 발명에 따르면, 가장 효율적으로 워터마킹 공격을 가할 수 있는 워터마킹 공격 기법을 도출할 수 있다. 도출된 워터마킹 공격 기법을 비롯한 다양한 공격 기법을 이용하여 학습데이터로 활용하여, 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 삽입된 이미지를 복원할 수 있다. 더욱이, 본 발명은 인공신경망을 통해 객체를 식별하여 워터마킹을 수행함으로써 워터마킹 공격에 강인한(robust) 워터마킹을 수행할 수 있다. 게다가, 본 발명에 따르면, 워터마킹이 이루어진 영상에 워터마킹 공격이 가해진 경우에도 워터마킹 공격 기법을 도출하고, 이를 통해 삽입된 이미지를 복원할 수 있다.
도 1은 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 화면 예이다.
도 5는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 6 내지 도 8은 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 화면 예이다.
도 9는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 워터마킹 삽입 프로세스를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 워터마킹 추출 프로세스를 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 13은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 14는 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다.
도 17은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 18은 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 19는 본 발명의 실시예에 따른 워터마킹 공격 기법을 도출하는 방법을 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
한편, 본 발명의 실시예에서 학습데이터와 관련된 정보에 대해 '알려진'이라는 표현이 사용될 수 있다. 이러한 표현은 본원발명의 실시예에 따른 인공신경망을 포함하는 장치가 해당 정보를 인식하고 있기 때문에 활용할 수 있다는 것을 의미하며, 저장매체 등을 통해 해당 정보를 저장하고, 데이터 처리, 예컨대, 학습(deep learning) 등을 위해 참조할 수 있다는 것을 의미한다. 가령, 학습데이터인 영상에 소정 객체가 포함된 것이 알려져 있다는 것은 학습데이터인 영상을 입력받는 장치가 입력되는 영상에 해당 객체가 포함되어 있다는 정보를 장치가 인식하고, 데이터 처리를 위해 활용할 수 있다는 것을 의미한다.
먼저, 본 발명의 실시예에 따른 인공신경망을 포함하는 장치의 구성을 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치의 구성을 설명하기 위한 블록도이다. 도 1을 참조하면, 본 발명의 실시예에 따른 인공신경망을 포함하는 데이터처리장치(10)는 인공신경망(100), 전처리부(200), 학습부(300), 판단부(400), 가공부(500) 및 평가부(600)를 포함한다.
인공신경망(100)은 본 발명의 실시예에 따라 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분하기 위한 것이다. 각각의 구분을 위하여, 인공신경망(100)은 복수가 될 수 있다.
전처리부(200)는 선택적으로 실행되는 모듈이며, 영상에 포함된 객체가 알려지지 않은 대상 데이터가 입력되면, 대상 데이터에서 적어도 하나의 객체 후보 영역을 설정한다. 그리고 객체 후보 영역 각각을 판단부(400)에 제공한다.
학습부(300)는 인공신경망(100)에 학습 데이터를 입력하여 인공신경망(100)을 학습(machine learnig)시키기 위한 것이다. 이러한 학습은 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분하기 위한 것이다.
판단부(400)는 인공신경망(100)이 충분히 학습된 경우, 인공신경망(100)에 임의의 영상인 대상 데이터를 입력하고, 인공신경망(100)의 출력에 따라 대상 데이터인 영상에 포함된 객체를 식별하거나, 영상의 블록에 삽입된 비트값을 식별하거나, 영상에 적용된 워터마킹 기법을 구분하거나, 영상에 적용된 워터마킹 공격 기법을 구분할 수 있다.
가공부(500)는 복수의 워터마킹 기법에 따라 영상에 삽입 이미지를 워터마킹하거나, 영상에 삽입되어 있는 삽입 이미지를 추출할 수 있다. 또한, 가공부(500)는 복수의 워터마킹 공격 기법에 따라 영상을 변형할 수 있다. 그리고 가공부(500)는 영상의 소정 영역을 블라인드 처리할 수 있다.
평가부(600)는 영상과 그 영상에 워터마킹된 삽입 이미지가 워터마킹 공격 기법에 의해 변형된 손실 정도를 평가하기 위한 것이다. 이러한 평가를 위해 평가부(600)는 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 비트 오류율(BER: Bit error rate) 및 정규상관계수(NCC: normalized correlation coefficient)의 값을 산출하여 산출된 값을 이용할 수 있다.
그러면, 전술한 데이터처리장치(10)의 인공신경망(100)을 이용한 워터마킹을 처리하는 다양한 실시예에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 객체를 식별하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 2를 참조하면, 본 발명의 실시예에 따른 인공신경망(100)은 복수의 계층을 포함한다. 인공신경망(100)은 입력계층(input layer: IL), 컨볼루션계층(convolution layer: CL), 풀링계층(pooling layer: PL), 완전연결계층(fully-connected layer: FL) 및 출력계층(output layer: OL)을 포함한다.
입력계층(IL)은 소정 크기의 행렬로 이루어진다. 입력계층(IL) 행렬의 각 원소는 영상의 각 픽셀에 대응한다. 학습부(300)는 학습 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 학습 데이터를 입력할 수 있다. 마찬가지로, 판단부(400)는 대상 데이터를 입력계층(IL)의 행렬의 크기에 맞춰 가공한 후, 인공신경망(100)에 가공된 대상 데이터를 입력할 수 있다.
도 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)가 된다.
완전연결계층(FL)은 복수의 노드(혹은 sigmoid: F1, F2, F3, ..., Fn)를 포함하며, 완전연결계층의 연산 또한 가중치(w)가 적용되어 출력계층(OL)의 복수의 노드(N1, N2, N3, ...)에 입력된다.
출력계층(OL)은 복수의 노드(혹은 sigmoid: N1, N2, N3, ...)로 구성될 수 있다. 복수의 출력 노드(N1, N2, N3, ...) 각각은 소정의 객체, 소정의 워터마킹 기법 또는 소정의 워터마킹 공격 기법에 대응한다. 이러한 복수의 출력 노드(N1, N2, N3, ...) 각각의 출력값은 확률값이다.
예컨대, 제1 출력 노드(N1)는 객체 '말'에 대응하며, 제1 출력 노드(N1)의 출력값인 출력값 1은 학습 데이터 혹은 대상 데이터인 영상에 포함된 객체가 '말'일 확률을 나타내고, 제2 출력 노드(N2)는 객체 '사람'에 대응하며, 제2 출력 노드(N2)의 출력값인 출력값 2는 영상에 포함된 객체가 '사람'일 확률을 나타내며, 제3 출력 노드(N3)는 객체 '자동차'에 대응하며, 제3 출력 노드(N3)의 출력값인 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낼 수 있다.
인공신경망(100)의 복수의 계층(IL, CL, PL, FL, OL) 각각은 복수의 연산을 포함한다. 특히, 인공신경망(100)의 복수의 계층의 복수의 연산 각각은 가중치(w)가 적용되어 그 결과가 다음 계층으로 전달되어 다음 계층의 입력이 된다. 좀 더 자세히, 도 2에 도시된 바를 예로 하여 인공신경망(100)의 각 계층의 연산과 그 가중치(w)에 대해 설명하기로 한다.
예를 들어, 도 2에 도시된 바에 따르면, 입력계층(IL)은 32×32×3 크기의 행렬이 될 수 있다. 이에 따라, 학습부(300) 또는 판단부(400)는 입력되는 영상(학습 데이터 혹은 대상 데이터)을 32×32×3 크기의 행렬에 맞춰 가공하고, 가공된 영상을 입력한다.
그러면, 입력계층 행렬에 대해 커널(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)을 구성한다.
이어서, 제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)에 입력된다.
완전연결계층(FL)의 복수의 노드(F1 내지 Fn) 각각은 제2 폴링 계층(PL2)으로부터 입력에 대해 전달함수 등을 이용한 소정의 연산을 수행하고, 그 연산에 가중치(w)를 적용하여 출력계층(OL)의 각 노드에 입력한다. 이에 따라, 출력계층(OL)의 복수의 노드(N1, N2, N3, ...)는 완전연결계층(FL)으로부터 입력된 값에 대해 소정의 연산을 수행하고, 그 결과를 출력한다. 전술한 바와 같이, 복수의 출력 노드(N1, N2, N3, ...) 각각의 출력값은 확률값이다.
예를 들면, 일실시예에 따르면, 출력값 1은 학습 데이터 혹은 대상 데이터인 영상에 포함된 객체가 '말'일 확률을 나타내고, 출력값 2는 영상에 포함된 객체가 '사람'일 확률을 나타내며, 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낸다고 가정한다. 이때, 출력값 1이 출력값 2 및 3 각각에 비해 높은 값을 가지면, 영상에 포함된 객체가 '말'인 것으로 판단할 수 있다.
인공신경망(100)이 본 발명의 실시예에 따라 영상에 포함된 객체를 식별하기 위하여 학습부(300)는 복수의 학습 데이터를 이용하여 인공신경망(100)을 학습(learning)시킨다. 이러한 학습 방법에 대해서 설명하기로 한다.
전술한 바와 같이, 인공신경망(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)가 존재한다.
또 다른 예로, 출력계층(OL) 노드가 30개의 노드(N1, N2, N3, ..., N30)로 이루어진 것으로 가정하면(m=30), 120개의 노드를 가지는 완전연결 계층(FL)의 출력은 30개의 출력노드(N1, N2, N3, ... N30)를 가지는 출력 계층에 입력된다. 이에 따라, 120 × 30개의 가중치(w)가 존재할 수 있다.
학습 데이터인 영상이 인공신경망(100)에 입력되면, 인공신경망(100)은 전술한 바와 같은 가중치(w)가 적용되는 복수의 연산을 통해 연산 결과를 출력할 것이다.
인공신경망(100)의 출력, 즉, 출력계층(OL)의 복수의 출력노드(N1, N2, N3, ..., Nm) 각각의 출력값은 입력된 영상(학습 데이터)이 해당 노드에 대응하는 객체이 영상일 확률을 나타낸다. 학습 데이터는 객체가 알려진 데이터이기 때문에, 학습부(300)가 학습 데이터인 영상을 인공신경망(100)에 입력했을 때, 인공신경망(100)의 출력은 대응하는 출력 노드의 출력값이 가장 높은 확률값이 출력될 것으로 기대할 수 있다. 이러한 기대에 따른 출력값을 기댓값이라고 한다. 하지만, 충분히 학습되지 않은 인공신경망(100)은 출력값과 기댓값의 차이가 있다. 따라서 학습부(300)는 학습 데이터를 입력할 때마다, 기댓값과 출력값의 차이가 최소가 되도록 역전파(Back-propagation) 알고리즘을 통해 인공신경망(100)의 가중치(W)를 수정하는 학습을 수행한다. 이와 같이, 본 발명의 실시예에 따른 학습(deep learning)은 입력되는 학습 데이터에 상응하는 기댓값을 정해 놓고, 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 연산에 적용되는 가중치(w)를 수정하는 것이다.
학습부(300)는 인공신경망(100)이 충분히 학습된 것으로 판단될 때까지, 전술한 바와 같은 학습(deep learning) 절차를 복수의 서로 다른 학습 데이터를 이용하여 반복하여 수행한다. 여기서, 학습부(300)는 기댓값과 출력값의 차이가 소정 수치 이하이면서 어떤 학습 데이터를 입력한 경우에도 출력값이 변동이 없으면, 인공신경망(100)이 충분히 학습된 것으로 판단할 수 있다.
그러면, 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 워터마킹은 객체를 식별한 후, 식별된 객체 영역에 워터마킹을 수행하기 때문에 인공신경망(100)이 객체를 식별할 수 있도록 학습을 수행한다. 이에 따라, 소정의 객체를 식별하도록 인공신경망(100)을 학습시키는 방법에 대해서 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다. 도 4는 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 화면 예이다.
도 3을 참조하면, 학습부(300)는 S110 단계에서 학습 데이터를 입력 받아 인공신경망(100)에 입력한다. 여기서, 학습 데이터는 소정의 객체가 포함된 영상이 될 수 있다. 예컨대, 도 4에 도시된 바와 같이, 학습 데이터는 객체 '말'이 포함된 영상이 될 수 있다. 이에 따라, 기댓값은 복수의 출력노드(N1, N2, N3, ..., Nm) 중 객체 '말'에 대응하는 출력노드의 출력값이 가장 높은 값(확률값)을 가지는 것이 될 수 있다.
학습 데이터가 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 통해 출력값을 산출한다. 이에 따라, 학습부(300)는 S120 단계에서 인공신경망(100)의 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 가중치를 수정한다. 전술한 S110 및 S120 단계는 복수의 객체 각각에 대해 복수의 학습 데이터를 입력하여 기댓값과 출력값의 차이가 최소가 되면서 출력값이 변동이 없을 때까지 반복하여 수행한다. 이러한 경우, 학습부(300)는 인공신경망(100)이 충분히 학습이 이루어진 것으로 판단한다.
전술한 바와 같이, 객체에 대해 충분히 학습된 경우, 본 발명의 실시예에 따른 워터마킹을 수행한다. 도 5는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다. 도 6 내지 도 8은 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 화면 예이다.
도 5를 참조하면, 전처리부(200)는 대상 데이터를 입력 받으면, S210 단계에서 적어도 하나의 객체 영역을 설정한다. 여기서, 대상 데이터는 삽입 이미지를 삽입하기 위한 영상을 의미한다. 예컨대, 전처리부(200)는 도 6과 같은 영상이 대상 데이터로 입력되면, 5개의 객체 영역, 즉, 제1 내지 제5 객체 영역(O1, O2, O3, O4, O5)을 설정할 수 있다. 다른 예로, 전처리부(200)는 도 7과 같은 영상이 대상 데이터로 입력되면, 2개의 객체 영역, 즉, 제6 및 제7 객체 영역(O6, O7)을 설정할 수 있다. 전처리부(200)는 객체 영역을 설정하기 위하여 셀렉티브 검색(selective search) 알고리즘을 이용할 수 있다. 예컨대, 셀렉티브 검색은 색상이나 강도 패턴 등이 비슷한 인접한 픽셀을 합치는 방식이다. 셀렉티브 검색 알고리즘 이외에 다양한 알고리즘, 예컨대, 클러스터링 알고리즘 등을 객체 영역을 설정하기 위해 사용될 수 있다.
객체 영역을 설정한 후, 판단부(400)는 S230 단계에서 객체 영역 각각을 인공신경망(100)에 입력한다. 인공신경망(100)에 객체 영역이 입력되면, 충분히 학습된 인공신경망(100)의 복수의 출력값 중 객체 영역에 포함된 객체에 대응하는 출력노드의 출력값이 다른 출력노드의 출력값 보다 높은 값을 가질 것이다. 예를 들면, 제1 출력 노드(N1)는 객체 '말'에 대응하며, 출력값 1은 후보 영역에 포함된 객체가 '말'일 확률을 나타내고, 제2 출력 노드(N2)는 객체 '사람'에 대응하며, 출력값 2는 영상에 포함된 객체가 '말'일 확률을 나타내며, 제3 출력 노드(N3)는 객체 '자동차'에 대응하며, 출력값 3은 영상에 포함된 객체가 '자동차'일 확률을 나타낸다고 가정한다. 이때, 제3 객체 영역(O3)이 인공신경망(100)에 입력된 경우, 인공신경망(100)의 복수의 출력값 중 출력값 2가 다른 출력값 보다 더 높은 값을 가질 것이다. 따라서 판단부(400)는 S240 단계에서 인공신경망(100)의 출력에 따라 가장 높은 출력값을 가지는 출력노드에 대응하는 객체가 객체 영역에 포함된 것으로 판단할 수 있다. 다른 말로, 판단부(400)는 인공신경망(100)의 출력에 따라 객체 영역에 포함된 객체를 식별할 수 있다.
이와 같이, 객체가 식별되면, 판단부(400)는 S250 단계에서 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류한다. 워터마킹을 통해 저작권을 보호하기 위해서는 영상에 포함된 객체 중 해당 영상이 저작권으로써 가치를 나타내는 영역에 워터마킹을 행하는 것이 바람직하다. 예컨대, 도 7은 아프리카 어느 내전국의 소년병의 실태를 고발하기 위한 사진이라고 가정한다. 그러면, 소년병의 모습이 저작권의 주요 대상이 된다. 따라서 소년병의 모습에 대한 저작권을 보호하기 위해 사람 객체 '소년병'을 워터마킹 객체로 구분한다. 한편, 프라이버시 보호, 미성년자 보호 등을 이유로, 대상 데이터인 원본 영상 중 일부를 블라인드 처리해야 하는 객체 영역이 있을 수 있다. 예컨대, 개인의 얼굴, 주소, 자동차 번호판 등의 개인의 신상에 대한 정보를 나타내는 객체가 포함된 객체 영역, 총, 칼, 도끼 등의 폭력적인 장면을 나타내는 객체가 포함된 객체 영역, 나체, 성기 등의 음란 장면을 나타내는 객체가 포함된 객체 영역 등은 블라인드 처리가 이루어질 수 있다. 따라서 본 발명의 실시예에 따르면, 예컨대, 도 7에 도시된 바와 같이, 폭력적인 장면을 나타내는 총 객체를 블라인드 객체로 구분한다. 블라인드 객체는 스크램블링 등을 통해 원본 영상을 훼손하기 때문에 그 자체로 워터마킹에 대한 공격이 이루어질 수 있다. 따라서 워터마킹에 대한 공격을 회피하기 위하여 워터마킹 객체가 포함된 제6 객체 영역(O6)에서 블라인드 객체가 포함된 제7 객체 영역(O7)을 제외한 객체 영역에 삽입 이미지를 삽입하는 것이 바람직하다. 따라서 판단부(400)는 제6 객체 영역(O6)에서 제7 객체 영역(O7)을 제외한 영역을 워터마킹 영역으로 분류하고, 제7 객체 영역(O7)은 블라인드 영역으로 분류한다.
전술한 바와 같이, 대상 데이터를 워터마킹 영역과 블라인드 영역으로 분류한 후, 가공부(500)는 S260 단계에서 워터마킹 영역에 소정의 삽입 이미지를 삽입하는 워터마킹을 수행할 수 있다. 예컨대, 도 8에 도시된 바와 같이, 제6 객체 영역(O6)에서 제7 객체 영역(O7)을 제외한 영역을 워터마킹 영역으로 설정하고, 이러한 워터마킹 영역에 소정의 삽입 이미지를 워터마킹할 수 있다.
마지막으로, 그리고 선택적으로, 가공부(500)는 S270 단계에서 블라인드 영역을 원본의 형태를 식별할 수 없도록 스크램블링 등의 처리를 통해 블라인드 처리할 수 있다. 예컨대, 도 8에 도시된 바와 같이, 제7 객체 영역(O7)을 블라이드 처리할 수 있다.
다음으로, 워터마킹이 이루어진 대상 데이터로부터 삽입 이미지를 추출하는 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 전처리부(200)는 워터마킹이 이루어진 대상 데이터를 입력 받으면, S310 단계에서 적어도 하나의 객체 영역을 설정한다. 여기서, 대상 데이터는 앞서 도 5 내지 도 7에서 설명된 바에 따라 삽입 이미지가 삽입된 영역이다. 객체 영역을 설정한 후, 판단부(400)는 S330 단계에서 객체 영역 각각을 인공신경망(100)에 입력하고, S340 단계에서 인공신경망(100)의 출력에 따라 객체 영역에 포함된 객체를 식별할 수 있다. 이와 같이, 객체가 식별되면, 판단부(400)는 S350 단계에서 식별된 객체를 소정의 규칙에 따라 워터마킹 객체 및 블라인드 객체로 구분하고, 워터마킹 객체가 포함된 객체 영역에서 블라인드 객체가 포함된 영역을 제외한 영역을 워터마킹 영역으로 분류하고, 블라인드 객체가 포함된 영역을 블라인드 영역으로 분류한다. 전술한 S310 단계 내지 S350 단계는 S210 단계 내지 S250 단계와 동일하게 수행된다. 그런 다음, 가공부(500)는 S360 단계에서 워터마킹 영역으로부터 삽입 이미지를 추출할 수 있다.
다음으로, 전술한 S260 단계의 워터마킹 삽입 프로세스 및 S360 단계의 워터마킹 추출 프로세스에 대해서 보다 상세하게 설명하기로 한다. 도 10은 본 발명의 일 실시예에 따른 워터마킹 삽입 프로세스를 설명하기 위한 도면이다. 또한, 도 11은 본 발명의 일 실시예에 따른 워터마킹 추출 프로세스를 설명하기 위한 도면이다.
워터마킹 삽입 및 추출의 제1 실시예
먼저, 도 10을 참조하여 제1 실시예에 따른 워터마킹 삽입 프로세스에 대해서 설명하기로 한다.
(1) 우선, 가공부(500)는 원본 이미지로부터 특징값 I'을 추출한다.
가공부(500)는 다음의 수학식 1에 따라 원본이미지(워터마킹 영역) I로부터 원본이미지의 특징값 I'을 추출한다. 여기서, 특징값 I'는 블록안의 픽셀값들의 평균을 의미한다.
Figure 112018016373250-pat00001
여기서, x, y는 원본 이미지(워터마킹 영역)의 픽셀 좌표이며, p와 q는 원본이미지(워터마킹 영역)의 블록 크기를 나타낸다.
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값을 산출한다.
카오스값 C은 매개변수 u가 (3.5699456,4]의 범위를 가지는 로지스틱 사상(logistic maps)을 기반으로 생성된다. 본 발명의 실시예에서 다음의 수학식 2와 같은 1차원 로지스틱 사상을 이용할 수 있다.
Figure 112018016373250-pat00002
(3) 마지막으로, 가공부(500)는 삽입 이미지 P를 워터마킹 삽입 프로세스에 따라 삽입하여 스테고키 K를 생성한다.
(3-1) 이진키 Kb 생성
가공부(500)는 의사 난수를 발생시켜 이진키 Kb를 생성한다.
(3-2) 중간키 Ki 생성
가공부(500)는 다음의 수학식 3에 따라 중간키 Ki를 산출한다. 즉, 수학식 3에서 이진키 Kb의 조건에 따라 삽입되는 정보(삽입 이미지) P와 원본 이미지(워터마킹 영역의 이미지) 특징값 I'에 의해 중간키 Ki를 산출한다.
Figure 112019109555650-pat00003
여기서, x와 y는 원본이미지(워터마킹 영역) I의 픽셀 좌표이다.
(3-3) 데이터키 Kd 생성
가공부(500)는 다음의 수학식 4를 통해 중간키 Ki와 카오스값 C를 이용하여 이진키 Kb의 조건에 따라 데이터키 Kd를 산출한다.
Figure 112019109555650-pat00004
(3-3) 스테고키 K 생성
이로써, 가공부(500)는 이진키 Kb 및 데이터키 Kd를 스테고키 K로 얻을 수 있다.
다음으로, 도 11을 참조하여, 제1 실시예에 따른 워터마킹 추출 프로세스에 대해서 설명하기로 한다.
(1) 우선, 원본 이미지(워터마킹 영역)로부터 특징값을 추출한다. 가공부(500)는 전술한 수학식 1에 따라 원본이미지(워터마킹 영역) I로부터 원본이미지의 특징값 I'을 추출한다.
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 가공부(500)는 전술한 수학식 2에 따라 카오스값 C를 산출한다.
(3) 가공부(500)는 특징값 I', 카오스값 C 및 스테고키 K를 이용하여 삽입 이미지 P를 추출한다.
(3-1) 가공부(500)는 수학식 4를 통해 스테고키 K 중 데이터키 Kd와 카오스값 C를 이용하여 중간키 Ki를 구한다.
(3-2) 가공부(500)는 수학식 3을 통해 스테고키 K 중 이진키 Kb, 중간키 Ki 및 특징값 I'을 이용하여 삽입 이미지 P를 추출한다.
워터마킹 삽입 및 추출의 제2 실시예
다음으로, 도 10을 참조하여 제2 실시예에 따른 워터마킹 삽입 프로세스에 대해서 설명하기로 한다.
(1) 우선, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 특징값 I'을 추출한다.
(1-1) 가공부(500)는 원본이미지(워터마킹 영역) I로부터 다음의 수학식 5를 통해 에러값 ei를 산출한다.
Figure 112019109555650-pat00005
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이고, di는 MED(median edge detection) 예측기법을 이용한 예측값이다.
(1-2) 가공부(500)는 산출된 에러값 ei를 다음의 수학식 6에 적용하여 원본이미지(워터마킹 영역) I로부터 원본이미지(워터마킹 영역)의 특징값 I'을 추출한다.
Figure 112018016373250-pat00006
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이고, TH는 임계값이다.
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 가공부(500)는 전술한 수학식 2를 통해 카오스값 C를 산출할 수 있다.
(3) 가공부(500)는 다음의 수학식 7에 따라 특징값 I' 및 카오스값 C를 이용하여 삽입 이미지 P를 삽입하면서 스테고키 K를 생성한다.
Figure 112018016373250-pat00007
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이다.
다음으로, 도 11을 참조하여, 제2 실시예에 따른 워터마킹 추출 프로세스에 대해서 설명하기로 한다.
(1) 우선, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 특징값 I'을 추출한다. 이때, 가공부(500)는 원본이미지(워터마킹 영역) I로부터 전술한 수학식 5를 통해 에러값 ei를 산출하고, 산출된 에러값 ei를 전술한 수학식 6에 적용하여 원본이미지(워터마킹 영역) I로부터 원본이미지(워터마킹 영역)의 특징값 I'을 추출한다.
(2) 다음으로, 가공부(500)는 로지스틱 사상(logistic maps)으로부터 카오스값 C를 산출한다. 이때, 가공부(500)는 전술한 수학식 2를 통해 카오스값 C를 산출할 수 있다.
(3) 마지막으로, 가공부(500)는 특징값 I', 카오스값 C 및 스테고키 K를 이용하여 삽입 이미지 P를 추출한다. 이때, 가공부(500)는 다음의 수학식 8을 이용하여 삽입 이미지 P를 추출할 수 있다.
Figure 112018016373250-pat00008
여기서, i는 원본이미지(워터마킹 영역)의 인덱스이다.
다음으로, 본 발명의 다른 실시예에 따른 인공신경망을 이용한 워터마킹 처리 방법에 대해서 설명하기로 한다. 먼저, 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 12는 본 발명의 실시예에 따른 블록에 삽입된 비트값을 도출하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 12의 인공신경망(100)은 따로 언급되지 않는 경우, 도 2의 인공신경망(100)의 기술적 특징과 동일하다는 점에 유의하여야 한다. 도 2와 마찬가지로, 도 10의 인공신경망(100) 또한 복수의 계층을 포함한다. 즉, 인공신경망(100)은 입력계층(IL), 컨볼루션계층(CL), 풀링계층(PL), 완전연결계층(FL) 및 출력계층(OL)을 포함한다.
입력계층(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이 삽입되었을 확률을 나타낼 수 있다.
인공신경망(100)의 복수의 계층(IL, CL, PL, FL, OL) 각각은 복수의 연산을 포함한다. 특히, 인공신경망(100)의 복수의 계층의 복수의 연산 각각은 가중치(w)가 적용되어 그 결과가 다음 계층으로 전달되어 다음 계층의 입력이 된다.
도 12를 참조로 하는 실시예에서 인공신경망(100)은 입력되는 영상(학습 데이터 혹은 대상 데이터)의 어느 한 블록에 비트 1이 삽입되었는지 혹은 비트 0이 삽입되었는지 여부를 판별한다. 이를 위하여, 학습부(300)는 복수의 학습 데이터를 이용하여 인공신경망(100)을 학습(learning)시킨다. 이러한 학습 방법에 대해서 설명하기로 한다. 학습 데이터는 영상이 미리 설정된 크기의 블록으로 구분되었을 때, 각 블록에 삽입된 비트의 값이 알려진 영상을 의미한다. 특히, 학습 데이터는 워터마킹이 이루어진 원본 데이터(원본 영상)에 소정의 워터마킹 공격 기법이 적용된 경우와 그렇지 않은 경우 모두를 학습 데이터로 이용할 수 있다.
학습 데이터는 영상의 블록 단위로 입력되며, 이러한 블록 각각이 인공신경망(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)이 충분히 학습된 것으로 판단할 수 있다.
그러면, 전술한 인공신경망(100)을 이용하여 워터마킹 처리를 수행하는 방법에 대해서 설명하기로 한다. 본 발명의 실시예에 따른 워터마킹 처리 방법은 삽입 이미지가 삽입된 영상에 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있는 방법을 제안한다. 이를 위하여, 먼저, 인공신경망에 대한 학습이 이루어져야 하며, 인공신경망(100)을 학습시키는 방법에 대해서 설명하기로 한다. 도 13은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다. 도 14은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 도면이다.
도 13 및 도 14를 참조하면, 먼저, 학습 데이터를 생성하기 위하여, 가공부(500)는 S410 단계에서 원본 데이터(원본 영상)가 입력되면, S420 단계에서 원본 데이터(원본 영상)에 대해 삽입 이미지를 삽입하는 워터마킹을 수행한다. 여기서, 삽입 이미지는 미리 결정된 크기의 복수의 이진 비트(예컨대, M×N개의 비트)로 이루어진 이미지이다. 삽입 이미지가 미리 결정된 크기를 가지기 때문에 이진 비트의 수 또한 미리 결정된다. 따라서 가공부(500)는 대상 데이터를 삽입 이미지의 이진 비트의 비트수에 따라 미리 결정된 복수의 블록(예컨대, M×N개의 블록)으로 구분한다. 그리고 가공부(500)는 구분된 각 블록에 소정의 워터마킹 기법에 따라 삽입 이미지의 각각의 비트를 순차로 삽입하는 워터마킹을 수행한다. 예컨대, 도 14의 (A)에 도시된 바와 같이, 대상 데이터(원본 영상)의 어느 하나의 블록(BL)에 대응하는 삽입 이미지의 비트(bit)가 순차로 삽입된다.
다음으로, 가공부(500)은 S430 단계에서 워터마킹이 이루어진 대상 데이터에 대해 소정의 워터마킹 공격 기법을 적용하여 변형한다. 도 14의 (B)에 도시된 바와 같이, 예컨대, 아핀 변형(affine transform), JPEG 압축(JPEG compression), 가우시안 필터링(Gaussian filtering) 등 다양한 워터마킹 공격 기법들이 적용될 수 있다. 이러한 S430 단계는 선택적으로 수행될 수 있다.
도 13 및 도 14를 참조로 하는 실시예에서 학습 데이터를 생성할 때, 각 블록에 삽입된 비트의 값을 알 수 있기 때문에 도 13 및 도 14를 참조로 하는 실시예에서 학습 데이터는 영상이 미리 설정된 크기의 블록으로 구분되었을 때, 각 블록에 삽입된 비트의 값이 알려진 영상을 의미한다. 특히, 학습 데이터는 워터마킹이 이루어진 대상 데이터(원본 영상)에 소정의 워터마킹 공격 기법이 적용된 경우와 그렇지 않은 경우 모두를 학습 데이터로 이용할 수 있다.
학습부(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)이 충분히 학습이 이루어진 것으로 판단한다.
전술한 바에 따라 인공신경망(100)이 블록별 비트값에 대해 충분히 학습된 경우, 본 발명의 실시예에 따라 워터마킹 공격이 이루어지거나 그렇지 않은 경우 모두에 대해서 삽입 이미지를 추출할 수 있다. 도 15는 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
판단부(400)는 S510 단계에서 대상 데이터를 입력 받아 미리 결정된 크기의 복수의 블록(예컨대, M×N개의 블록)으로 구분한다. 여기서, 대상 데이터는 미리 결정된 크기의 블록으로 구분되어 각 블록에 2진 비트로 이루어진 삽입 이미지의 각 비트값이 삽입되어 워터마킹이 이루어진 영상이며, 워터마킹 기법에 대해서는 알려지지 않았으며, 워터마킹 공격이 이루어졌는지 여부도 알려지지 않은 영상이다.
다음으로, 판단부(400)는 S520 단계에서 앞서 구분된 각 블록을 인공신경망(100)에 입력한다. 대상 데이터의 각 블록이 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 통해 출력값을 산출한다. 인공신경망(100)의 출력값은 해당 블록에 삽입된 비트가 0인지 혹은 1인지 여부를 나타낼 수 있다. 즉, 해당 블록에 비트값 1이 삽입된 경우, 제1 출력노드(N1)의 출력값인 출력값 1이 제2 출력노드(N2)의 출력값인 출력값 2 보다 소정 수치 이상 높은 값을 출력할 것이고, 해당 블록에 비트값 0이 삽입된 경우, 제2 출력노드(N2)의 출력값인 출력값 2가 제1 출력노드(N1)의 출력값인 출력값 1 보다 높은 값을 출력할 것이다. 따라서 판단부(400)는 S530 단계에서 인공신경망(100)의 출력값에 따라 복수의 블록 각각에 대한 비트값을 식별하고, 할 수 있다. 이와 같이, 복수의 블록 각각에 대해 비트값을 식별하고, 복수의 블록 각각에 대해 식별된 비트값을 연결하여 소정 규격의 삽입 이미지를 복원할 수 있다. 즉, 도 14를 참고하면, 대상 데이터는 미리 결정된 크기의 블록으로 구분되어 각 블록에 2진 비트로 이루어진 삽입 이미지의 각 비트값이 삽입되어 워터마킹이 이루어진 영상이다. 따라서 각 블록의 비트값을 식별하고, 식별된 비트값을 연결하여 삽입 이미지를 재구성할 수 있다.
다음으로, 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹 처리 방법에 대해서 설명하기로 한다. 즉, 이 실시예에 따르면, 인공신경망을 이용하여 워터마킹 공격 기법을 검출하고, 이에 따라, 삽입 이미지를 추출할 수 있다. 다른 말로, 이 실시예에 따른 워터마킹 처리 방법은 삽입 이미지가 삽입된 영상에 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있다.
먼저, 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망(100)에 대해서 보다 상세하게 설명하기로 한다. 도 16은 본 발명의 실시예에 따른 워터마킹 공격을 식별하는 인공신경망의 구성을 설명하기 위한 개념도이다. 도 16의 인공신경망(100)은 따로 언급되지 않는 경우, 도 2의 인공신경망(100)의 기술적 특징과 동일하다는 점에 유의하여야 한다. 도 2와 마찬가지로, 도 16의 인공신경망(100) 또한 복수의 계층을 포함한다. 즉, 인공신경망(100)은 입력계층(IL), 컨볼루션계층(CL), 풀링계층(PL), 완전연결계층(FL) 및 출력계층(OL)을 포함한다.
입력계층(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)에 입력된다.
출력계층(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에 의해 변형되었을 확률을 나타낸다.
인공신경망(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)이 충분히 학습된 것으로 판단할 수 있다.
다음으로, 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹 공격 기법을 검출하고, 이에 따라, 삽입 이미지를 추출하는 방법에 대해서 설명하기로 한다. 이를 위하여, 먼저, 인공신경망에 대한 학습이 이루어져야 하며, 이러한 학습 방법에 대해서 설명하기로 한다. 도 17은 본 발명의 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 17을 참조하면, 가공부(500)는 S610 단계에서 대상 데이터(원본 영상)가 입력되면, S620 단계에서 소정의 워터마킹 기법을 적용하여 대상 데이터(원본 영상)에 대해 삽입 이미지를 삽입하는 워터마킹을 수행한다. 다음으로, 가공부(500)은 S630 단계에서 소정의 워터마킹 공격 기법을 적용하여 워터마킹이 이루어진 대상 데이터를 변형한다. 이때, 다양한 워터마킹 공격 기법들이 적용될 수 있다. 워터마킹 공격 기법은 아핀 변형(affine transform), JPEG 압축(JPEG compression), 가우시안 필터링(Gaussian filtering) 등을 예시할 수 있다. 도 17을 참조로 하는 실시예에서 학습 데이터는 적어도 워터마킹 공격 기법이 알려진 영상을 의미한다.
다음으로, 학습부(300)는 S640 단계에서 학습 데이터를 입력 받고, 입력된 학습 데이터를 인공신경망(100)에 입력한다. 이 실시예에서, 인공신경망(100)은 복수의 출력노드(N1, N2, N3, ..., Nm)를 가지며, 복수의 출력노드(N1, N2, N3, ..., Nm) 각각은 워터마킹 공격 기법에 대응하며, 복수의 출력노드(N1, N2, N3, ..., Nm) 각각의 출력값은 학습 데이터가 해당 출력노드에 대응하는 워터마킹 공격 기법이 적용되어 변형되었을 확률을 나타낸다. 이에 따라, 기댓값은 학습 데이터의 알려진 워터마킹 공격 기법에 대응하는 출력노드의 출력값이 다른 출력노드 각각의 출력값 보다 소정 수치 이상 높은 값을 가지는 것이 될 수 있다. 따라서 인공신경망(100)은 학습 데이터가 입력되면, 복수의 계층의 각각이 가중치(w)가 적용되는 복수의 연산을 통해 출력값을 산출한다. 이에 따라, 학습부(300)는 S650 단계에서 인공신경망(100)의 출력값과 기댓값의 차이가 최소가 되도록 인공신경망(100)의 가중치(w)를 수정한다.
전술한 S610 및 S650 단계는 적어도 하나의 워터마킹 기법, 복수의 워터마킹 공격 기법 각각에 대해 반복하여 수행되며, 복수의 학습 데이터를 입력하여 기댓값과 출력값의 차이가 최소가 되면서 출력값이 변동이 없을 때까지 반복하여 수행한다. 이러한 경우, 학습부(300)는 인공신경망(100)이 충분히 학습이 이루어진 것으로 판단한다.
전술한 바와 같이, 인공신경망(100)이 영상에 적용된 워터마킹 공격 기법에 대해 충분히 학습된 경우, 본 발명의 실시예에 따라 워터마킹 공격이 이루어진 경우에도 삽입 이미지를 추출할 수 있다. 도 18은 본 발명의 실시예에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 설명하기 위한 흐름도이다.
판단부(400)는 S710 단계에서 대상 데이터를 입력 받으면, 입력된 대상 데이터를 인공신경망(100)에 입력한다. 여기서, 대상 데이터는 워터마킹이 이루어지고, 워터마킹 기법이 알려져 있어, 삽입 이미지 추출을 시도했지만, 삽입 이미지가 추출되지 않거나, 식별 불가능한 상태로 추출된 영상이고, 그 워터마킹 공격 기법을 알 수 없는 워터마킹 공격이 의심되는 영상이 될 수 있다. 대상 데이터가 입력되면, 인공신경망(100)은 복수의 계층의 각각이 가중치가 적용되는 복수의 연산을 수행하여 출력값을 산출한다. 인공신경망(100)의 출력값은 워터마킹 공격 기법을 나타낸다. 예를 들면, 대상 데이터는 제1 워터마킹 공격 기법(예컨대, affine transform)에 의해 변형된 상태라고 가정한다. 또한, 제1 워터마킹 공격 기법에 대응하는 출력 노드는 제1 출력노드(N1)이며, 제1 출력노드(N1)의 출력값이 다른 출력 노드의 출력값 보다 소정 수치 이상 높은 값으로 출력될 것이다. 따라서 판단부(400)는 S720 단계에서 인공신경망(100)의 출력값에 따라 워터마킹 공격 기법을 식별한다.
이어서, 가공부(500)는 S730 단계에서 앞서 식별된 워터마킹 공격 기법에 따라 대상 데이터를 복원한다. 즉, 가공부(500)는 워터마킹 공격 기법에 따라 변환된 대상 데이터를 워터마킹 공격 기법을 이용하여 역변환한다. 다음으로, 가공부(500)는 S740 단계에서 역변환된 대상 데이터에서 알려진 워터마킹 기법에 따라 삽입 이미지를 추출한다.
다음으로, 본 발명의 다른 실시예에 따른 워터마킹 공격 기법 도출 방법에 대해서 설명하기로 한다. 도 19는 본 발명의 실시예에 따른 워터마킹 공격 기법을 도출하는 방법을 설명하기 위한 흐름도이다.
도 19를 참조하면, 가공부(500)는 S800 단계에서 임의의 영상인 원본 데이터에 대해 복수의 워터마킹 기법 및 복수의 워터마킹 공격 기법을 적용하고, 평가한다. 구체적으로, 가공부(500)는 원본 데이터가 입력되면, S810 단계에서 워터마킹 기법을 적용하여 원본 데이터에 삽입 이미지를 삽입하는 워터마킹을 수행한다. 다음으로, 가공부(500)는 S820 단계에서 워터마킹 공격 기법을 적용하여 워터마킹이 이루어진 원본 데이터를 변형한다. 다음으로, 가공부(500)는 워터마킹 공격 기법에 따라 변형된 원본 데이터로부터 앞서(S810) 적용된 워터마킹 기법을 이용하여 삽입 이미지를 추출한다.
그런 다음, 평가부(600)는 S840 단계에서 원본 데이터와 워터마킹 공격 기법에 의해 변형된 원본 데이터를 비교하고, 삽입 이미지와 워터마킹 공격 기법에 의해 변형된 삽입 이미지를 비교하여 이러한 평가는 워터마킹 공격 기법에 의해 변형된 원본 데이터 및 삽입 이미지의 손실 정도를 평가한다. 구체적으로, 평가부(600)는 원본 데이터 및 삽입 이미지 각각의 화질 손실 정보를 평가하기 위한 최대신호대잡음비(PSNR: Peak Signal-to-noise ratio), 원본 데이터 및 삽입 이미지 각각의 오류가 발생한 비트의 수를 평가하기 위한 비트 오류율(BER: Bit error rate), 그리고, 원본 데이터 및 삽입 이미지 각각의 워터마킹 공격이 이루어지기 전과 후의 유사도를 평가하기 위한 정규상관계수(NCC: normalized correlation coefficient)의 값을 산출하여 평가를 수행한다.
전술한 S810 단계 내지 S840 단계를 포함하는 S800 단계는 서로 다른 복수의 워터마킹 기법과 서로 다른 복수의 워터마킹 공격 기법을 이용하여 반복하여 수행된다.
전술한 S800 단계 후, 평가부(600)는 S900 단계에서 각 워터마킹 기법에 대응하여 워터마킹 공격에 따라 원본 데이터의 손실이 가장 적으면서 추출된 삽입 이미지의 손실이 가장 큰 워터마킹 공격 기법을 도출한다. 즉, 각 워터마킹 기법에 대응하여 가장 효과적인 워터마킹 공격 기법을 도출한다. 도출된 워터마킹 공격 기법은 앞서 도 1 내지 도 18을 통해 설명된 다양한 실시예의 학습 데이터를 생성하는 데에 사용될 수 있다.
한편, 앞서 설명된 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 인공신경망
IL: 입력계층
CL: 컨볼루션계층
PL: 풀링계층
FL: 완전연결계층
OL: 출력계층
200: 전처리부
300: 학습부
400: 판단부
500: 가공부
600: 평가부

Claims (6)

  1. 인공신경망을 이용한 워터마킹을 처리하기 위한 장치에 있어서,
    복수의 블록으로 구분되는 영상인 학습 데이터가 입력되면, 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 인공신경망;
    원본 데이터를 복수의 블록으로 구분하고, 구분된 각 블록에 이진 데이터인 삽입 이미지의 비트값을 삽입하는 워터마킹을 수행하며, 워터마킹이 이루어진 원본 데이터를 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 가공부;
    상기 학습데이터를 상기 블록 별로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 가중치를 산출하는 학습부;를 포함하며,
    상기 인공신경망은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함하고,
    상기 복수의 계층은 입력계층, 컨볼루션계층, 풀링계층, 완전연결계층 및 출력계층을 포함하며,
    상기 출력계층은 2개의 노드를 포함하고,
    상기 2개의 노드는 상기 인공신경망에 입력된 데이터에 비트 1이 삽입되었을 확률값을 출력하는 제1 출력 노드 및 상기 인공신경망에 입력된 데이터에 비트 0이 삽입되었을 확률값을 출력하는 제2 출력 노드를 포함하고,
    상기 인공신경망에 대한 학습이 완료된 후,
    상기 인공신경망은 워터마킹 기법에 대해서 알려지지 않았으며 워터마킹 공격이 이루어졌는지 여부도 알려지지 않은 영상인 대상 데이터가 복수의 블록으로 구분되어 입력되면, 입력된 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하고,
    상기 인공신경망에 상기 대상 데이터를 입력하고, 상기 대상 데이터의 입력에 따라 상기 인공신경망이 출력한 상기 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률에 따라 상기 대상 데이터의 복수의 블록 각각에 삽입된 비트값을 결정하는 판단부;를 더 포함하며,
    상기 가공부는
    상기 결정된 비트값에 따라 삽입 이미지를 재구성하는 것을 특징으로 하는
    인공신경망을 이용한 워터마킹을 처리하기 위한 장치.
  2. 삭제
  3. 삭제
  4. 인공신경망을 이용한 워터마킹을 처리하기 위한 방법에 있어서,
    가공부가 원본 데이터를 복수의 블록으로 구분하고, 구분된 각 블록에 이진 데이터인 삽입 이미지의 비트값을 삽입하는 워터마킹을 수행하는 단계;
    상기 가공부가 상기 워터마킹이 이루어진 원본 데이터를 워터마킹 공격 기법에 따라 변형하여 학습 데이터를 생성하는 단계;
    학습부가 상기 학습데이터를 상기 블록 별로 상기 인공신경망에 입력하여 상기 인공신경망의 출력값이 상기 삽입된 비트값을 나타내는 기댓값과의 차이가 최소가 되도록 가중치를 산출하는 단계;
    상기 인공신경망에 대한 학습이 완료된 후,
    판단부가 상기 인공신경망에 워터마킹 기법에 대해서 알려지지 않았으며 워터마킹 공격이 이루어졌는지 여부도 알려지지 않은 영상인 대상 데이터를 복수의 블록으로 구분하여 입력하는 단계;
    상기 인공신경망이 입력되는 대상 데이터의 복수의 블록 각각에 비트 1이 삽입되었을 확률과 비트 0이 삽입되었을 확률을 출력하는 단계;
    상기 판단부가 상기 출력에 따라 상기 영상의 각 블록에 삽입된 비트값을 결정하는 단계; 및
    상기 가공부가 상기 결정된 비트값에 따라 삽입 이미지를 재구성하는 단계;
    를 포함하며,
    상기 인공신경망은 각각이 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함하고,
    상기 복수의 계층은 입력계층, 컨볼루션계층, 풀링계층, 완전연결계층 및 출력계층을 포함하며,
    상기 출력계층은 2개의 노드를 포함하고,
    상기 2개의 노드는 상기 인공신경망에 입력된 데이터에 비트 1이 삽입되었을 확률값을 출력하는 제1 출력 노드 및 상기 인공신경망에 입력된 데이터에 비트 0이 삽입되었을 확률값을 출력하는 제2 출력 노드를 포함하는
    인공신경망을 이용한 워터마킹을 처리하기 위한 방법.
  5. 삭제
  6. 제4항에 따른 인공신경망을 이용한 워터마킹을 처리하기 위한 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020180018502A 2018-02-14 2018-02-14 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102124502B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180018502A KR102124502B1 (ko) 2018-02-14 2018-02-14 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180018502A KR102124502B1 (ko) 2018-02-14 2018-02-14 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (2)

Publication Number Publication Date
KR20190098485A KR20190098485A (ko) 2019-08-22
KR102124502B1 true KR102124502B1 (ko) 2020-06-24

Family

ID=67767126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180018502A KR102124502B1 (ko) 2018-02-14 2018-02-14 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR102124502B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100751389B1 (ko) * 2000-12-05 2007-08-23 엘지전자 주식회사 디지털 영상의 워터마킹 방법
KR100423159B1 (ko) * 2001-04-20 2004-03-18 주식회사 마크애니 디지털 워터마크의 삽입 및 검출방법과 이를 이용한워터마크 삽입/검출 장치
KR100797024B1 (ko) 2006-05-02 2008-01-22 한국전자통신연구원 하이브리드 이미지 워터마킹 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
김철기,김광백. ART2 알고리즘을 이용한 디지털 워터마킹. 한국지능정보시스템학회, 지능정보연구9, 2003.12, pp.81~97. 출처:http://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE00496542*
박성일,한승수. 신경망을 이용한 강인한 디지털 이미지 워터마킹 알고리즘. 대한전기학회, 학술대회 논문집, 2005.07, pp.2927~2929. 출처:http://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE01344177*
컨볼루션 신경망 모델 만들어보기(웹 문서).2017.03.08..출처:https://tykimos.github.io/2017/03/08/CNN_Getting_Started/*

Also Published As

Publication number Publication date
KR20190098485A (ko) 2019-08-22

Similar Documents

Publication Publication Date Title
KR102028825B1 (ko) 워터마킹 공격을 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
Uchida et al. Embedding watermarks into deep neural networks
Karampidis et al. A review of image steganalysis techniques for digital forensics
Qian et al. Learning and transferring representations for image steganalysis using convolutional neural network
Chen et al. Deepmarks: A digital fingerprinting framework for deep neural networks
Luo et al. A review on blind detection for image steganography
Chen et al. JPEG image steganalysis utilizing both intrablock and interblock correlations
Byrnes et al. Data hiding with deep learning: A survey unifying digital watermarking and steganography
CN107689026B (zh) 基于最优编码的可逆隐写方法
KR101986912B1 (ko) 인공 신경망을 이용한 데이터가 은닉된 영상을 탐지 및 추출하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN111507386A (zh) 一种存储文件及网络数据流加密通信检测方法及系统
Deeba et al. Digital watermarking using deep neural network
Badr et al. A review on steganalysis techniques: from image format point of view
Barni et al. DNN watermarking: Four challenges and a funeral
AU2021103604A4 (en) Soft threshold defense method for adversarial examples of remote sensing images
Pakdaman et al. A prediction based reversible image watermarking in Hadamard domain
Chakraborty PRNU-based image manipulation localization with discriminative random fields
Deng et al. Deep multi-scale discriminative networks for double JPEG compression forensics
KR102028824B1 (ko) 객체를 식별하는 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102124502B1 (ko) 인공신경망을 이용한 워터마킹을 처리하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102045140B1 (ko) 인공신경망을 이용한 워터마킹 공격 기법을 도출하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
Cho et al. Block-based image steganalysis for a multi-classifier
Nataraj et al. Holistic image manipulation detection using pixel co-occurrence matrices
Alkhowaiter et al. Image authentication using self-supervised learning to detect manipulation over social network platforms
Bhatia et al. Pixel-based hybrid copy move image forgery detection using Zernike moments and auto colour correlogram

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)