최근 이미지처리, 전자제어, 고분자 재료, 광학 등 다양한 분야의 기술들이 융합되어 형성된 기술로서, 3 차원 프린터 기술로 불리는 쾌속조형시스템 (Rapid Prototyping System) 이 널리 사용되고 있다. 쾌속조형시스템은 페놀수지와 같은 쾌속응고 재료를 균일한 두께로 적층하는 방식으로 물리적 모델을 제작하는 시스템으로서, 기존의 신제품 개발 시간을 단축하고 복잡한 기하학적 형상도 조형이 가능하며 설계자가 실제 모델을 직접 조립 또는 해석할 수 있다는 장점이 있다.
3 차원 메쉬 모델은 이러한 쾌속조형시스템의 CAD 모델링 단계에서 적용되는 것으로, 둘러싸는 다각형 면들의 집합으로 표현되며, 점의 직교 좌표 값으로 표현된 꼭지점 테이블, 꼭지점의 좌표 값 혹은 그 인덱스로 표현된 모서리 테이블, 모서리 혹은 꼭지점 인덱스로 표현된 다각형 면 테이블 등 3 개의 테이블 목록을 포 함한다. 3 차원 메쉬 모델에 대해 많이 사용되는 파일 형식은 STL (Stereo Lithography) 이다. 이 STL 파일 형식은 PLY (Polygon File Format or Standard Triangle Format), DAE (Collada File Format), OBJ (Alias Wavefront Object), OFF (Object File Format) 등 외부 파일 형식으로부터 전환하여 얻을 수 있다. PLY, DAE, OBJ 및 OFF 파일과 달리 STL 파일 형식에는 3 개의 테이블 목록으로 표현되는 정보 외에 쾌속조형시스템을 고려하여 면 (face) 의 방향을 표시하기 위한 법선 (normal vector) 정보가 추가된다.
한편, 다양한 분야가 융합된 쾌속조형산업의 특성상 공동 협업의 최종결과물로 주고받는 3 차원 메쉬 모델에 대한 무결성 보장 및 인증에 대한 요구가 갈수록 높아지고 있으며, 실제 생산 공정에서는 데이터의 오류를 줄이고 정밀도를 향상시키기 위하여 제작된 3 차원 데이터를 확인, 검증, 수정하는 소프트웨어를 사용하고 있다. 이러한 데이터의 무결성 보장 및 인증에 대한 요구를 만족하기 위해 널리 사용되는 기술로는 암호화 기술과 워터마킹 기술이 있다. 그러나, 쾌속조형산업의 특성상 복호화 후 3 차원 메쉬 모델을 시제품의 용도에 맞게 적용하는 과정이 필요하기 때문에 암호화 기술의 사용은 극히 제한적이다.
반면, 데이터에 사용자 정보 (워터마크) 를 사용자가 인지할 수 없도록 삽입함으로써 불법복제를 막고 저작권자의 저작권을 보호하는 워터마킹 기술은, 모델에 직접 정보를 삽입하기 때문에 상술한 암호화 기술의 약점을 극복할 수 있어 3 차원 메쉬 모델의 무결성 인증으로 사용하기 적합하다. 3 차원 메쉬 모델에 대해 꼭지점의 좌표 값, 모서리의 길이, 다각형의 면적 혹은 유사도, 면적의 비, 면이나 꼭지 점의 색상, 꼭지점의 법선 벡터 등의 정보를 사용하여 워터마크를 삽입하는 것이 가능하다.
이하, 이미지, 비디오 분야와 함께 다양하게 진행되어 온 3 차원 메쉬 모델과 관련된 워터마킹 관련 연구에 관해 설명한다.
먼저, 오부치 (Ohbuchi) 가 3 차원 모델 워터마킹에 관한 개념과 함께 제안한 TSQ, TVR 알고리즘이 있다 (R. Ohbuchi, H. Masuda, and M. Aono, "Watermarking Three Dimensional Polygonal Models", Proceedings of the ACM Multimedia '97, Seattle, Washington, USA, November 1997, pp. 261-272). TSQ 알고리즘은 삼각형의 두 변의 길이의 비와 삼각형의 밑변과 높이의 비를 이용하여 워터마크를 삽입하는 알고리즘으로서, 특정한 비례 값을 갖도록 꼭지점 위치를 수정, 변형시킴으로써 워터마크를 삽입한다. TVR 알고리즘은 사면체의 부피의 비를 사용한 알고리즘으로서, 특정 꼭지점의 좌표변경방법으로 사면체의 부피의 비를 수정하여 워터마크를 표현하는 것이다.
창 (Chang) 등은 유사한 방법으로 네 개의 삼각형을 기본 인자로 하여 모서리 길이의 비를 변형시키는 방법으로 워터마크를 삽입하였다 (Chang min Chou, and Din Chang Tseng. "Technologies for 3D Model Watermarking:A Survey", International Journal of Computer Science and Network Security, Vol.7 No.2 February 2007).
베네덴스 (Benedens) 는 VFA, TFA 등 2 가지 대용량 정보 삽입이 가능한 워터마킹 알고리즘을 제안하였다 (O. Benedens "Two High Capacity Methods for Embedding Public Watermarks into 3D Polygonal Models" Proceedings of the Multimedia and Security-Worshop at ACM Multimedia 99, Orlando. Florida, 1999. pp.95-99). VFA 알고리즘에서는 한 삼각형을 지정한 후 꼭지점으로부터 지정한 삼각형의 질량 중심까지의 거리로 꼭지점들을 여러 개의 집합으로 나눴으며 집합 내의 꼭지점의 좌표 값을 수정하여 워터마크를 삽입하였다. 또한, TFA 알고리즘에서는 한 삼각형을 지정한 후, 지정한 삼각형과 모서리를 공유하는 모든 삼각형을 찾아내고 공유하지 않는 꼭지점으로부터 공유하는 삼각형의 모서리까지의 거리를 크기에 따라 정렬한 후, 각 삼각형의 높이의 값을 수정하여 워터마크를 삽입하였다.
베네덴스 (Benedens) 는 법선 벡터를 이용하여 워터마크를 삽입하는 알고리즘도 제안하였으며 (O. Benedens, "Watermarking of 3D Polygon Based Models with Robustne, tness against Mesh Simplification". Proceedings of SPIE:Security and Watermarking of Multimedia Contents, 1999. Vol. 3657, pp.329-340), 이는 원본을 필요로 하는 알고리즘으로서 삼각메쉬의 법선 벡터 분포를 변화시켜서 워터마크를 삽입한 것이다.
또한, 토오브 (Toub) 가 제안한 알고리즘이 있다 (S. Toub, A. Healy, "Efficient Mesh Licensing", Computer Sience 276r, Havard University, May 2001). 이 알고리즘에서는 위상 정보를 변화시키지 않는 조건하에서 원본 모델의 꼭지점을 반대방향으로 이동시켜서 두 개의 모델 A 와 B 를 얻고, 그 다음 삽입하려는 워터마크 정보에 근거하여 비트 정보 1 을 삽입할 경우, 모델 A 의 좌표 값을 사용하고 비트 정보 0 을 삽입할 경우 모델 B 의 좌표 값을 사용하였다. 토오브의 알고리즘은 이동, 회전, 스케일링, 크로핑, 꼭지점 재정렬 등의 공격에 일정한 강인성을 유지하지만 워터마크 추출 과정에서는 삽입 시 사용한 A 모델, B 모델의 정보와 원본이 필요하다는 약점이 있다.
프라운 (Praun) 등은 전형적인 공격에 비교적 강인한 워터마크 알고리즘을 소개하였다 (E. Praun, H. Hoppe and A. Finkelstein, "Robust Mesh Watermarking", SIGGRAPH Proceeding, 1999, pp.69-76). 프라운의 알고리즘은 메쉬 모델의 꼭지점 좌표를 입력으로 하여 스칼라 기저 함수를 만들었으며 이를 이용하여 삽입 강도를 설정한 후 각 꼭지점 좌표를 변형시켰다.
그러나, 3D 모델의 워터마킹 알고리즘에 관한 종래의 많은 연구들은 대부분 시각적으로 확인이 불가능한 노이즈를 삽입하는 방식에 의하며 실질적으로 워터마크를 삽입한 후 원본 모델의 정밀도가 떨어지며 모델 자체의 형태를 변형시킨다. 그리고 대부분의 연구가 워터마크의 강인성에 초점을 맞추었으며, 모델 자체의 정밀도 보존에 관한 연구는 미비한 실정이다. 이는 고정밀도를 요구하는 쾌속조형시스템이나 항공/우주 모형제조분야와 같은 분야에서는 기존의 알고리즘을 사용할 수 없음을 말한다. 즉, 쾌속조형시스템은, 예를 들어, 레이저나 칼과 같은 절삭도구를 이용하여 재료를 절단하고 적층하여 시제품을 제작하는 시스템을 나타내는 것이며, 이러한 쾌속조형시스템의 핵심은 고정밀도 유지에 있음에도 불구하고 기존의 워터마킹 알고리즘에 의하면 설계상의 오류나 부적합한 요인을 찾을 수 없고 워터마크 자체가 쾌속조형시스템에서는 부적합한 요인이 된다.
따라서, 상술한 종래의 알고리즘은 애니메이션, 시뮬레이션, 게임 등 분야의 저작권보호 정도의 용도로는 사용가능하나, 종래의 워터마킹 알고리즘은 3 차원 형상을 왜곡시켜 정밀도 하락을 가져오기 때문에, 쾌속조형과 같이 높은 정밀도를 요구하는 응용분야에서는 시제품의 형상을 왜곡하게 되므로 생산 현장에서 사용할 수 없다는 문제점이 존재한다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 워터마크 삽입 장치 (100) 의 구성을 나타내는 블록도이다. 워터마크 삽입 장치 (100) 는 워터마크 삽입을 위한 기준이 되는 기준 좌표계를 설정하는 기준 좌표계 설정부 (102), 3 차원 메쉬 모델의 꼭지점들을 정렬하는 제 1 정렬부 (104), 워터마크의 비트 정보를 3 차원 메쉬 모델에 삽입하는 비트 정보 삽입부 (106) 및 3 차원 메쉬 모델의 꼭지점들을 입력전 꼭지점 테이블에 저장되어 있던 순서로 재정렬하는 제 2 정렬부 (108) 를 구비한다.
3 차원 메쉬 모델은 쾌속조형시스템의 CAD 모델링 단계에서 적용되는 모델로, 점의 직교 좌표값으로 표현되는 꼭지점 테이블, 모서리 테이블, 꼭지점 인덱스로 표현되는 면 테이블 등 3 개의 테이블로 구성되는 데이터로 구성된다.
이와 같은 3 차원 메쉬 모델을 워터마크 삽입 장치 (100) 에 입력하면 기준 좌표계 설정부 (102) 가 꼭지점 정렬의 기준이 되는 기준 좌표계를 설정하고, 제 1 정렬부 (104) 가 기준 좌표계 설정부 (102) 에서 설정된 기준 좌표계의 중심점으로부터의 3 차원 메쉬 모델의 각 꼭지점까지의 거리를 기초로 하여 꼭지점들을 정렬한다. 비트 정보 삽입부 (106) 는 정렬된 꼭지점들의 순서에 따라 3 차원 메쉬 모델의 다각형 각각에 대해 워터마크의 비트 정보를 삽입한다. 비트 정보 삽입부 (106) 에서 삽입이 완료되면 제 2 정렬부 (108) 는 삼각면의 순서를 참고하여 워 터마크 삽입장치 (100) 에 입력되기 이전의 3차원 메쉬 모델의 꼭지점 테이블에 저장되었던 순서를 기준으로 하여 재정렬한다. 최종적으로, 워터마크 삽입 장치 (100) 의 출력부에서 워터마크가 삽입된 3 차원 메쉬 모델을 획득할 수 있다.
도 2 는 워터마크 삽입 장치 (100) 를 이용하여 워터마크를 삽입하는 방법을 나타내는 흐름도이다. 도 1 에 도시된 워터마크 삽입 장치 (100) 의 구성에 대해 도 2 를 참조하여 보다 자세히 설명한다.
워터마크를 삽입하고자 하는 3 차원 메쉬 모델을 워터마크 삽입 장치 (100) 에 입력하면, 먼저, 기준 좌표계 설정부 (102) 가 입력된 3 차원 메쉬 모델의 데이터를 이용하여 기준 좌표계를 설정한다 (S202).
일반적으로 3 차원 메쉬 모델에서 사용되는 중심점으로는 경계박스 (bounding box) 의 중심점에 기반한 메쉬 센터 (Mesh Center) 와, 3 차원 메쉬 모델의 모든 꼭지점들의 원점 (0, 0, 0) 이 있다. 메쉬 센터의 좌표 값은 다음과 같이 꼭지점 좌표 값 중 각 좌표축에 대응하는 최소값과 최대값의 중심을 취한 것이다.
((xmin+xmax)/2, (ymin+ymax)/2, (zmin+zmax)/2)
그러나, 회전 변환을 실행하게 되면 경계박스의 모양이 변하기 때문에 메쉬 센터도 변하게 된다. 또한, 원점도 이동, 회전, 신축 등 변환을 실행하게 되면 3 차원 메쉬 모델과의 상대적 위치가 변하게 된다. 즉, 메쉬 센터나 원점은 꼭지점들의 좌표 값 자체에 의존하기 때문에 기하학적인 변환에 쉽게 변경될 수 있어 워터 마크의 삽입의 기준이 되는 중심점으로 사용할 수 없다. 따라서, 기하학적인 변환에 강인한 워터마킹을 위해 기준 좌표계 설정부 (102) 에 의하여 새로운 기준 좌표계를 설정할 필요가 있다.
도 3 은 기준 좌표계 설정부 (102) 의 구성을 나타내는 블록도이다. 기준 좌표계 설정부 (102) 는 꼭지점들의 1-링 (ring) 값을 구하는 1-링 값 계산부 (302), 1-링 값에 따라 꼭지점들을 정렬하는 제 3 정렬부 (304), 정렬된 꼭지점들 중 3 개의 꼭지점을 선택하는 꼭지점 선택부 (306) 및 선택된 3 개의 꼭지점을 이용하여 기준 좌표계의 중심점 및 좌표축을 정하는 중심점 및 좌표축 결정부 (308) 를 포함한다.
1-링 값 계산부 (302) 는 3 차원 메쉬 모델의 꼭지점 테이블과 면 테이블을 사용하여 모든 꼭지점들의 1-링 값을 계산한다. 1-링은 메쉬 모델의 한 꼭지점과 직접 연결된 꼭지점들의 개수를 의미하며, 1-링 집합의 크기를 1-링 값이라 한다. 예를 들어 도 4 와 같은 경우, 꼭지점 Vi 에 인접한 꼭지점들이 총 6 개이므로, 꼭지점 Vi 의 1-링은 6 개가 되며 1-링 값은 6 이 된다.
워터마크 삽입에 있어서 3 차원 메쉬 모델에 포함된 법선 벡터 정보를 사용하게 되면, STL 파일형식 외의 PLY 등 파일형식에서는 법선 벡터 정보를 사용하지 않기 때문에 파일 전환시에는 삽입한 워터마크의 비트 정보가 사라지게 되는 문제가 발생할 수 있다. 색상 정보도 파일 포맷을 변환시키면 사라지므로 동일한 문제가 존재한다. 그러나, 1-링 값은 꼭지점 좌표 값과 다각형 면 (예를 들어, STL 파 일 포맷을 사용할 경우에는 삼각형 면) 을 구성하는 테이블에서 얻을 수 있는 정보이므로, 파일 포맷을 변환시키더라도 위와 같은 문제가 발생하지 않는다.
그 후, 제 3 정렬부 (304) 가 1-링 값에 따라 꼭지점들을 내림차순으로 정렬한다. 본 실시예에서는 기준 좌표계 설정을 위한 꼭지점 정렬을 내림차순으로 하고 있으나 반드시 이에 한정되는 것은 아니며, 오름차순 내지 그 외의 가능한 소정의 순서로 정렬할 수도 있다. 만약 1-링 값이 같은 꼭지점이 존재할 경우 꼭지점의 2-링 값을 사용하여 다음의 규칙 1 내지 3 과 같이 정렬한다. 어느 꼭지점에 있어서 2-링 값이란, 그 꼭지점과 직접 연결된 꼭지점들의 1-링 값의 합을 말한다.
규칙 1 : 꼭지점의 2-링 값을 구하여 2-값이 더 큰 꼭지점을 앞에 둔다.
규칙 2 : 2-링 값도 같을 경우, 인접한 꼭지점들중 최대 길이를 갖는 모서리 중심점에 도 5 와 같이 꼭지점을 추가한다.
규칙 3 : 1-링 값과 2-링 값이 같은 여러 개의 꼭지점이 존재할 경우, 같은 1-링에 속하지 않는 3 개의 꼭지점을 선택하여 규칙 2 를 반복한다.
제 3 정렬부 (304) 가 꼭지점들을 모두 정렬하면, 꼭지점 선택부 (306) 는 정렬된 꼭지점들의 집합에서 기준 좌표계 설정에 사용할 3 개의 꼭지점을 선택한다. 이 때, 내림차순으로 정렬되었을 경우 앞쪽에 정렬된 꼭지점일수록 3 차원 메쉬 모델을 나타내는 중요한 꼭지점에 해당할 가능성이 크기 때문에, 꼭지점 선택시 처음 3 개의 꼭지점을 선택하는 것이 바람직하다. 동일한 이유로, 오름차순에 의할 경우에는 마지막 3 개의 꼭지점을 선택하는 것이 바람직하다.
위 실시형태에서는 1-링에 따라 꼭지점들을 정렬하여 기준 좌표계 설정을 위 한 3 개의 꼭지점을 선택하였으나, 그 외에도 다양한 방법이 존재한다. 즉, 3 차원 메쉬 모델에서 다각형 면 간의 곡률 크기를 구하여 꼭지점들을 내림차순 또는 올림차순으로 정렬한 후 3 개의 꼭지점을 선택하는 방법이 있다. 또한, 3 차원 메쉬 모델에서 다각형 면들의 면적을 구하고, 그 면적에 따라 다각형 면들을 내림차순 또는 올림차순으로 정렬한 후, 정렬된 다각형 면들 중 3 개의 다각형 면을 선택하여 그 중심점들을 기준 좌표계 설정을 위한 3 개의 꼭지점으로 선택하는 것도 가능하다.
도 6 은 본 발명에 따라 워터마크가 삽입되는 대상인 3 차원 메쉬 모델의 일 예를 도시한 것이다. 도 6 의 (a) 는 모델 '사람' 의 3 차원 메쉬 모델을 도시한 것이고, (b) 는 꼭지점의 분포를 나타낸 것이며, (c) 는 각 꼭지점의 1-링 값과 선택된 3 개의 꼭지점을 나타낸 것이다.
한편, 꼭지점 선택부 (306) 에 의해 3 개의 꼭지점이 선택된 다음, 중심점 및 좌표축 결정부 (308) 가 도 7 에서 도시된 것처럼 아래 단계 1 내지 5 를 통해 중심점 및 좌표축을 결정한다.
단계 1 : 선택한 3 개의 꼭지점을 A, B, C 라 하고 이 세 점의 맞은변을 각각 a, b, c 라고 할 때, a, b, c 의 길이를 구한다.
단계 2 : a, b, c 에서 가장 긴 변 c 를 선택하고, 그 변에 수직선을 그어 만나는 점을 기준 좌표계의 중심점으로 한다.
단계 3 : 중심점 O 에서 점{A, B} 까지 길이를 계산하여 긴 점의 방향 (OA) 을 정의 방향으로 하여 X(RX)축으로 설정한다.
단계 4 : 중심점에 그어진 수직선을 Z(RZ)축으로 하고 벡터 OC 를 정의 방향으로 한다.
단계 5 : 두 벡터 OA, OC 의 외적 벡터의 방향을 Y(RY)축으로 설정한다.
설정된 중심점과 좌표축은 이동, 회전, 신축 시, 꼭지점의 그래프적 불변량 (즉, 1-링 값) 에 의존하며 메쉬 모델과 같이 이동, 회전, 신축되며, 변환 후에도 쉽게 중심점과 좌표축을 찾을 수 있다. 따라서, 워터마크 삽입을 위한 기준 설정 요구를 만족한다.
제 1 정렬부 (104) 는 기준 좌표계 설정부 (102) 에 의해 설정된 기본 좌표계의 중심점을 기준으로 3 차원 메쉬 모델의 모든 꼭지점을 정렬한다 (S204).
3 차원 메쉬 모델의 꼭지점들을 υi 라고 하고, 꼭지점의 개수를 M 이라고 하며, 이 꼭지점들로 이루어진 집합을 V 라고 하면, 다음과 같은 식이 성립된다.
{υi|υi∈V, 0<i≤M}
제 1 정렬부 (104) 는 υi∈V 인 점 υi 를 선택하고 기준 좌표계의 중심점까지의 거리를 구하여 그 크기에 따라 υi 를 오름차순으로 정렬한다. 다만, 본 실시예에서는 꼭지점들을 오름차순으로 정렬하였으나 반드시 이에 한정되는 것은 아니며, 내림차순으로 정렬하여 실시하는 것 또한 가능하다. 여기서, 정렬된 꼭지점들의 집합을 VR이라 한다.
정렬은 다음 단계 1 내지 3 에 의한다.
단계 1 : 위에서 산출한 모든 꼭지점의 중심점에 대한 거리의 크기를 정렬하기 위하여, i≠j 일 때, |υiRc|=|υjRc| 이면, |υixRcx| 와 |υjxRcx| 값을 비교하여 작은 값을 갖는 꼭지점을 앞에 둔다.
단계 2 : 단계 1 에 의하여 순위가 정해지지 않으면, 즉, |υixRcx|=|υjxRcx| 이면, |υiyRcy| 와 |υjyRcy| 와의 값을 비교하여 단계 1 과 같은 방법으로 순위를 정한다.
단계 3: 단계 2 에 의하여 순위가 정해지지 않으면, 즉 |υiyRcy|=|υjyRcy| 이면, |υizRcz| 와 |υjzRcz| 와의 값을 비교한다. i≠j 이므로 |υizRcz|≠|υjzRcz| 이다.
위의 단계 1 내지 3 을 통하면 서로 다른 순위를 가지는 3 차원 메쉬 모델의 모든 꼭지점들의 집합 VR 을 정할 수 있다.
꼭지점이 정렬되면, 비트 정보 삽입부 (106) 가 변수 N 을 1 로 초기화 (S206) 하고, 정렬된 모든 꼭지점을 기준으로 비트열로 구성된 워터마크의 각 비트 정보를 순차적으로 삽입한다 (S208).
동일한 꼭지점을 소유하고 있는 면에 대해서 순서를 정하는 방법은, 두 번째 꼭지점과 세 번째 꼭지점의 순서의 합을 구하여 그 크기에 따라 순서를 정하는 방법이나, 두 번째 꼭지점으로 순서를 결정하고나서 나머지 꼭지점의 순서를 비교하 여 우선순위를 결정하는 방법 등을 사용할 수 있다.
워터마크는 k 차원의 비트열 Ak={a1, a2,..., ak} 로 구성된 데이터이며, 비트열 Ak 의 원소를 워터마크의 비트 정보라 한다. 삽입되는 워터마크는 필요에 따라 난수열 혹은 정보은닉을 목적으로 한 데이터일 수도 있다.
3 각형 메쉬 모델을 이루는 삼각형 면의 정보로 이루어진 집합을 F 라하고, F 의 원소인 각 삼각형을 mi 라 하며, 삼각형의 개수를 e 라고 하면, 다음과 같은 식이 성립된다.
{mi|mi∈F, 0<i≤e}
여기서 mi=(ns, nr, nt) 이다. (ns, nr, nt) 는 각각 3 개의 꼭지점의 인덱스를 나타내며 정수 값을 갖는다. 꼭지점의 인덱스 값은 집합 VR 의 원소 υi 와 일대일로 대응된다.
워터마크의 비트 정보는 mi 의 원소 값의 순서를 변경하는 방식으로 삽입된다. 처음으로 선택한 꼭지점 υi 을 포함하는 삼각형을 집합 F 에서 찾는다. 만약 mi 라고 하면, mi=(ns, nr, nt) 이다.
삽입하려는 워터마크의 비트 정보가 1 이면, 집합 mi 의 원소 값을 비교하여 오름차순으로 정렬한다. 만약 mi=(ns, nr, nt) 에서 nr<nt 이면 원소 값의 순서를 변경하지 않고, mi=(ns, nr, nt) 에서 nr>nt 이면, mi=(ns, nt, nr) 가 되도록 원소 값의 순서를 변경한다.
또한, 삽입하려는 워터마크의 비트 정보가 0 이면, 집합 mi 의 원소 값을 비교하여 내림차순으로 정렬한다. 만약 mi=(ns, nr, nt) 에서 nr<nt 이면, mi=(ns, nt, nr) 가 되도록 원소 값의 순서를 변경하고, mi=(ns, nr, nt) 에서 nr>nt 이면 원소 값의 순서를 변경하지 않는다.
본 실시예에서는 비트 정보가 1 이면 오름차순으로 정렬하고 0 이면 내림차순으로 정렬하는 것으로 설명하고 있으나, 역으로 비트 정보가 1 이면 내림차순으로 정렬하고 0 이면 오름차순으로 정렬하는 방식 또한 가능하다.
상기 규칙에 따라 비트 정보의 삽입이 완료되면 비트 정보 삽입부 (106) 는 N 과 미리 설정된 반복횟수 C 를 비교하고, N 이 C 와 같거나 크다면 다음 단계로 진행한다 (S210 에서 '예'). N 이 C 보다 작으면, 비트 정보의 삽입이 반복횟수 C 만큼 이루어지지 않은 것이므로 N 을 1 만큼 증가시키면서 S208 단계로 되돌아간다 (S210 에서 '아니오'). S208 단계에서 다시 삽입되는 비트 정보를 mark(i) 라고 하면, k<i≤C·k 가 된다.
단계 S206 및 S210 은 워터마크의 강인성을 고려하여 워터마크의 비트 정보 삽입을 반복하기 위해 포함된 것으로서, 이는 실시형태에 따라 적절히 생략될 수도 있다.
기준 좌표계의 중심점을 기준으로 정렬한 집합 VR 내의 꼭지점의 순서에 따라 모든 삼각형에 대하여 워터마크의 비트 정보의 삽입 절차를 진행하면 워터마크 삽입이 완료된다. 비트 정보의 삽입량은 모델의 삼각 메쉬의 개수와 연관되므로 삽입량은 e 를 초과할 수 없다. 즉, {mark(i), 0<i≤e} 이다.
그 후, 제 2 정렬부 (108) 는 워터마크 삽입 장치 (100) 에 입력되기 전의 메쉬 모델의 꼭지점 테이블에 저장되어 있던 순서를 기준으로 삼각면을 구성하는 꼭지점들을 재정렬한다.
최종적으로, 워터마크 삽입 장치 (100) 의 출력부에서 워터마크가 삽입된 3 차원 메쉬 모델이 출력된다.
도 8 은 본 발명에 따른 워터마크 추출장치 (800) 의 구성을 나타내는 블록도이다. 워터마크 추출장치 (800) 는 워터마크 추출을 위한 기준이 되는 기준 좌표계를 설정하는 기준 좌표계 설정부 (802), 3 차원 메쉬 모델의 꼭지점들을 정렬하는 제 1 정렬부 (804) 및 워터마크의 비트 정보를 판독하는 비트 정보 판독부 (806) 를 구비한다.
워터마크가 삽입된 3 차원 메쉬 모델을 워터마크 추출 장치 (800) 에 입력하면 기준 좌표계 설정부 (802) 가 꼭지점 정렬의 기준이 되는 기준 좌표계를 설정하고, 제 1 정렬부 (804) 가 기준 좌표계 설정부 (802) 에서 설정된 기준 좌표계의 중심점으로부터의 3 차원 메쉬 모델의 각 꼭지점까지의 거리를 기초로 하여 꼭지점들을 정렬한다. 비트 정보 판독부 (806) 는 정렬된 꼭지점들의 순서에 따라 3 차원 메쉬 모델의 다각형 각각에 삽입된 워터마크의 비트 정보를 판독한다. 최종적으로, 판독된 워터마크의 비트 정보를 통해 워터마크 추출 장치 (800) 의 출력부에서 추출된 워터마크를 획득할 수 있다.
도 9 는 워터마크 추출 장치 (800) 를 이용하여 워터마크를 추출하는 방법을 나타내는 흐름도이다. 도 8 에 도시된 워터마크 추출 장치 (800) 의 구성에 대해 도 9 를 참조하여 보다 자세히 설명한다.
워터마크가 삽입된 3 차원 메쉬 모델에 대한 데이터를 워터마크 추출 장치 (800) 에 입력하면, 먼저, 기준 좌표계 설정부 (802) 가 워터마크 추출을 위한 기준 좌표계를 설정한다 (S902).
기준 좌표계 설정부 (802) 는 그 구성 및 기능이 워터마크 삽입 장치 (100) 에 포함된 기준 좌표계 설정부 (102) 와 실질적으로 동일하다. 즉, 꼭지점들의 1-링 값을 구하는 1-링 값 계산부 (302), 1-링 값에 따라 꼭지점들을 선택하는 제 3 정렬부 (304), 정렬된 꼭지점들 중 3 개의 꼭지점을 선택하는 꼭지점 선택부 (306), 그리고 선택된 3 개의 꼭지점을 이용하여 기준 좌표계의 중심점과 좌표축을 결정하는 중심점 및 좌표축 결정부 (308) 를 포함한다.
제 1 정렬부 (804) 에서는 기준 좌표계 중심점의 좌표 값에 근거하여 모든 꼭지점을 정렬한다 (S904).
워터마크 추출 장치 (800) 에 포함된 제 1 정렬부 (804) 는 그 구성 및 기능이 워터마크 삽입 장치 (100) 에 포함된 제 1 정렬부 (104) 와 실질적으로 동일하다. 다만, 제 1 정렬부 (104) 에서 꼭지점들을 정렬한 순서와 동일한 정렬 방식에 따라 꼭지점들을 정렬하도록 하여야 한다. 즉, 제 1 정렬부 (104) 에서 꼭지점들을 내림차순으로 정렬하였다면 제 1 정렬부 (804) 에서도 내림차순으로, 제 1 정렬부 (104) 에서 올림차순으로 정렬하였다면 제 1 정렬부 (804) 에서도 올림차순으로 정렬한다.
기준 좌표계 설정부 (802) 와 제 1 정렬부 (804) 의 구체적인 구성에 대해서는 기준 좌표계 설정부 (302) 와 제 1 정렬부 (302) 와 관련하여 상술한 바에 따른다.
다음으로, 비트 정보 판독부 (806) 가 정렬된 꼭지점들의 순서에 따라 차례대로 각 삼각 메쉬에 삽입된 비트 정보를 판독한다 (S906).
꼭지점들의 집합 F 의 모든 삼각 메쉬에 대하여 순차적으로 nr<nt 또는 nr>nt 를 판단하여, 워터마크의 비트 정보를 판독한다. 만약 mi=(ns, nr, nt) 에서 nr<nt 이면, mark(i) 는 1 이고, mi=(ns, nr, nt) 에서 nr>nt 이면, mark(i) 은 0 이다. 다만, 워터마크 삽입시 비트 정보가 1 이면 내림차순으로 정렬하고 0 이면 오름차순으로 정렬한 경우라면, 워터마크의 비트 정보의 판독 또한 역으로 수행되어야 할 것이다.
집합 VR 을 기준으로 마지막 꼭지점을 포함하는 삼각 메쉬에 삽입된 비트 정보까지 판독하면 삽입된 워터마크를 구성할 수 있다.
상술한 본 실시예에서는 비록 삼각형 기반의 3 차원 메쉬 모델로 특정하여 설명하였으나 본 발명의 범위는 이에 한정되는 것은 아니며, 삼각형 외의 사각형이 나 오각형 등 다양한 다각형을 기반으로 하는 3 차원 메쉬 모델에 대해서도 적용가능하다.
다만, 삼각형 외의 다각형을 포함하는 3 차원 메쉬 모델은 파일 포맷 변환시에 대부분 삼각형 기반의 3 차원 메쉬 모델로 우선 전환한 다음에 다른 파일 포맷으로 변환하고 있다. 이는 쾌속조형시스템과 같은 3 차원 스캐너 시스템에서는 STL 파일로 구성된 3 차원 메쉬 모델을 사용하는데 파일 포맷 자체가 삼각형 기반으로 하도록 제한하고 있기 때문에 그러하다. 따라서, 파일 포맷 변환의 가능성을 고려할 경우, 삼각형 기반의 3 차원 메쉬 모델을 사용하는 것이 바람직하다.
아래에서는 본 발명을 실험한 결과에 대하여 설명한다.
실험에 사용된 모델은 도 10 에서 도시된 4 개의 모델이며 각 3 차원 메쉬 모델의 관련 파라미터는 표 1 과 같다.
모델 |
비너스(venus) |
버니(bunny) |
사람(man) |
엡콧(epcot) |
꼭지점 |
238965 |
8171 |
428 |
770 |
면 |
476159 |
16338 |
839 |
1536 |
유형 |
닫힌 모델 |
닫힌 모델 |
열린 모델 |
닫힌 모델 |
정밀도 |
10-5 |
10-4 |
10-4 |
10-3 |
최대 1-링 값 |
15 |
11 |
12 |
13 |
실험용 메쉬모델 파라미터
도 11 은 본 발명에 따른 방법으로 워터마크를 삽입한 후, '0' 이 삽입된 부분은 흰색으로, '1' 이 삽입된 부분은 검은 색으로 도시한 것이다. 이와 같이 워터마크를 삽입하기 전과 후의 3 차원 메쉬 모델의 변화를 나타내기 위하여 꼭지점 좌표의 개수와 면의 개수를 아래의 표 2 로 나타내었다.
메쉬 모델명 |
비너스 |
버니 |
사람 |
엡콧 |
원본 |
꼭지점 |
238965 |
8171 |
428 |
770 |
면 |
476159 |
16338 |
839 |
1536 |
삽입후 |
꼭지점 |
238966 |
8171 |
429 |
773 |
면 |
476161 |
16338 |
841 |
1542 |
삽입량 |
c=2 |
238080 |
8169 |
420 |
771 |
c=3 |
158720 |
5446 |
280 |
515 |
워터마크 삽입 전/후 파라미터 비교
모델 '엡콧' 에서 보는 바와 같이, 규칙적인 기하학적 모델일 경우 기준좌표계 설정 시에 1-링 값의 순서를 결정하기 위한 꼭지점 추가 연산이 필요하다. 그리고 반복횟수 C=2, C=3 일 때의 워터마크 비트 정보의 삽입량을 표 2 에서 나타내었다.
도 12 는 이동, 회전, 신축, 및 조합으로 실행한 기하학적 변환의 결과를 나타내는 도면이다. 3 차원 모델에서의 기하학적인 변환은 이동, 회전, 신축 등 3 개의 기본 선형 오퍼레이터 (Basic Linear Operator) 의 선형 조합에 근거하여 실행된다. 변환 전 후의 꼭지점 좌표 값을 각각,
,
라고 하면, 기하학적 변환의 기본 오퍼레이터 (T 는 이동, R 은 회전, S 는 신축) 는 다음과 같다.
아래 표 3 에서는 워터마킹 알고리즘과 관련된 변수들을 기하학적인 변환 (uniform) 의 변량과 불변량 (표 3 의 예/아니오) 으로 분류하여 나타내었다.
변수\변환 |
이동 |
회전 |
신축 |
조합 |
Rx/Ry/Rz |
아니오 |
아니오 |
아니오 |
아니오 |
면 연결 |
아니오 |
아니오 |
아니오 |
아니오 |
1-링 값 |
아니오 |
아니오 |
아니오 |
아니오 |
좌표 값 |
예 |
예 |
예 |
예 |
집합 VR 순서 |
아니오 |
아니오 |
아니오 |
아니오 |
꼭지점 개수 |
아니오 |
아니오 |
아니오 |
아니오 |
면의 개수 |
아니오 |
아니오 |
아니오 |
아니오 |
기하학적 변환에서의 변량과 불변량
'버니' 모델에서는 워터마크 삽입과정에서 꼭지점이 추가되지 않았으며, 그 외의 '비너스', '사람', 및 '엡콧' 모델에서는 각각 1 개, 1 개, 및 3 개의 꼭지점이 추가되었다. 이동, 회전, 신축 변환은 추가된 꼭지점의 좌표 값만 변화시키는 것으로 확인되었으며, 꼭지점의 1-링에는 영향이 없는 것으로 확인되었다. 테스트한 모델 모두 각 꼭지점의 연결정보인 면의 연결 상태가 변하지 않았으며, 삽입된 워터마크도 추출할 수 있었다. 즉, 본 발명에 따른 워터마킹에 따르면 기하학적인 변환에 대해 강인성을 보존할 수 있었다.
또한, 상술한 이동, 회전, 신축 변환 외의 형태보존 변환 공격에 대하여 설명한다.
본 발명에서의 기준 좌표계 설정방식은 꼭지점 저장순서를 변경하더라도, 1-링 값을 이용하여 꼭지점 순서를 정렬한 후 워터마크를 추출하기 때문에 꼭지점의 저장순서 변경에 독립적이다. 따라서 꼭지점 저장 순서를 변경하는 공격에 강인하다. 마찬가지로 STL 파일에서 사용되는 패싯 (facet) 저장순서를 변경하는 공격에도 강인하다.
STL 및 PLY 파일는 아스키 (ASCII) 및 바이너리 (Binary) 두 가지 표준 포맷이 존재하며, 본 발명에서는 바이너리 포맷을 아스키로 전환하여 테스트하였다. DAE 파일은 콜라다 (COLLADA) 1.4.1 버전으로 테스트하였으며, OBJ, OFF 파일은 2007 년 3 월 배포된 메쉬랩 (Meshlab) 1.0 프로그램으로 변환한 후 테스트하였다. STL 파일은 임포팅 (Import) 시, 프로그램에 따라 선택사항으로 복사본 사용여부에 관한 선택사항이 존재한다. 복사본을 사용하지 않을 경우, 원본 그대로 불러들이며, 복사본을 사용할 경우, 파일 내에 중복된 꼭지점이 생성된다. 중복된 점은 집합에서 원소 정렬시 고려하지 않았으며 복사본 사용 여부에 상관없이 테스트에 사용한 모델 모두 워터마크를 추출할 수 있었다.
파일 포맷에 대한 유형 및 설명은 표 4 와 같다.
포맷 |
유형 |
설명 |
STL |
아스키 바이너리 |
스테레오 리소그래피 |
PLY |
아스키 바이너리 |
표준 다각형 파일 포맷 |
DAE |
아스키 |
콜로다 파일 포맷 (V1.4.1) |
OBJ |
아스키 |
에일리어스 웨이브프론트 오브젝트 (Alias wavefront Object) |
OFF |
아스키 |
오브젝트 파일 포맷 |
파일 포맷 관련 설명
또한, 아래의 표 5 는 본원 발명과 종래 기술들 (비교예 1 내지 3) 의 강인성을 비교하여 나타낸 것이다.
알고리즘\공격유형 |
이동 |
신축 |
회전 |
면 저장순서 |
꼭지점 저장순서 |
파일 변환 |
정밀도 |
RP 적용성 |
비교예 1 |
X |
X |
X |
O |
O |
X |
불변 |
가능 |
비교예 2 |
X |
X |
X |
O |
O |
X |
불변 |
가능 |
비교예 3 |
O |
O |
O |
O |
O |
O |
손상 |
불가 |
실시예 |
O |
O |
O |
O |
O |
O |
불변 |
가능 |
비교예 1 과 2 의 알고리즘은 STL 파일에 특화된 알고리즘으로서 각각 공개특허 제 2004-002250 호에서 개시된 알고리즘과 공개특허 제 2004-0003185 호에 개시된 알고리즘이다. 이들은 파일 변환을 실행할 경우 워터마크 정보가 사라지지만 본원 발명에 따른 워터마킹은 파일 변환뿐만 아니라 이동, 회전, 신축 등 기하학적인 변환에도 강인한 것으로 나타났다. 비교예 3 은 상술한바 있는 창 (Chang) 이 제안한 알고리즘으로, 이동, 회전, 신축, 패싯 저장순서 변경, 꼭지점 저장순서 변경, 파일 변환 등에 강인하며, 부분적인 형태 변형공격에도 강인성을 유지한다. 하지만 꼭지점 위치변경으로 워터마크를 삽입하였기 때문에 요구하는 정밀도를 만족시키지 못하였으므로 쾌속조형시스템에서는 사용할 수 없다. 그 외 표 5 에서 도시하고 있지는 않으나 오부치 (Obuchi) 의 알고리즘에서도 워터마크 삽입에 의한 3 차원 메쉬 모델의 형태 변형 때문에 쾌속조형시스템에서 사용할 수 없다는 문제점이 존재한다.
도 13 은 '버니' 모델의 부분적인 꼭지점을 선택하여 평활화를 실행한 후, 워터마크가 삽입된 이미지와 워터마크 추출후의 이미지를 비교하여 도시한 것이다. 도 13 에서 (a) 는 워터마크를 삽입한 이미지이며 (b) 는 워터마크를 추출한 후의 이미지이다. 본 발명에 따른 워터마킹에 의하면 3 차원 메쉬 모델의 형태 변형 공격을 받을 시에는 워터마크가 수정될 수도 있어, 도 13 에서 보는 바와 같이 "위변조" 된 부분에서는 삽입한 워터마크 비트 정보와 추출한 비트 정보가 일치하지 않는다. 따라서 삽입된 워터마크 비트 정보를 이용하여 공격을 가한 부분을 탐지할 수 있으며, 위변조 여부를 검출할 수 있다.
본 발명에 따른 워터마크 삽입 및 추출 방법은 기하학적 및 위상학적인 형상에 제한을 받지 않고 열린 모델 (Opened Model), 닫힌 모델 (Closed Model) 및 다양한 제너스 (Genus) 모델에 적용이 가능하다.
여기에서 개시된 실시형태와 관련하여 설명된 다양한 예시적인 논리 블록들 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 결합으로 구현할 수도 있다.
또한, 본 발명은 위 실시예를 참조로 하여 특별히 도시되고 기술되었지만, 이는 단지 예시를 위하여 사용된 것이며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 첨부된 청구범위에서 정의된 것과 같이 본 발명의 기술적 사상 및 범위를 벗어나지 않고 다양한 변형을 할 수 있음이 이해되어야 할 것이다.