Phần này trình bày một kỹ thuật có thể phát hiện và định vị một cách hiệu quả các vùng giống nhau trong ảnh. Kỹ thuật này trƣớc tiên hoạt động bằng việc áp dụng phép phân tích thành phần chính trên các khối ảnh nhỏ có kích thƣớc cố định để đƣa ra một biểu diễn có số chiều giảm. Biểu diễn này mạnh đối với các thay đổi nhỏ trong ảnh do tạp nhiễu hay nén mất thông tin. Các vùng lặp cũng đƣợc phát hiện bằng việc sắp xếp các khối ảnh theo thứ tự từ điển. Trong phần trƣớc chúng ta đã trình bày một phƣơng pháp tƣơng tự để phát hiện các vùng lặp dựa trên việc sắp xếp các hệ số khối DCT. Mặc dù cả 2 phƣơng pháp này đều sử dụng cùng cách tiếp cận nhƣng nền tảng của PCA là dựa trên dữ liệu nên có thể bắt giữ tốt hơn các đặc trƣng có ý nghĩa.
Xét một ảnh cấp xám có N điểm ảnh. Giả sử một ảnh đƣợc lợp bằng việc chồng các khối b điểm ảnh ( b bđiểm ảnh), và kích thƣớc mỗi khối nhỏ hơn nhiều so với kích thƣớc của các vùng giống nhau đƣợc phát hiện. Gọi xi
, i=1,…,Nb là các khối này ở dạng vectơ, với Nb ( N b1)2. Bây giờ, chúng ta xem một biểu diễn khác của các khối ảnh này dựa trên phép phân tích
thành phần chính (PCA). Giả sử rằng các khối xi có giá trị trung bình là 0, và tính ma trận đồng biến nhƣ sau: 1 . b N T i i i C x x (2.23) Các vectơ riêng, ej
, của ma trận C với các giá trị riêng tƣơng ứng, j, thỏa:
,
j j j
Ce e (2.24)
định nghĩa các thành phần chính, trong đó j = 1,…, b và 12 … b. Các véctơ riêng, ej
, hình thành một cơ sở tuyến tính mới cho mỗi khối ảnh xi
: 1 , b i j j j x a e (2.25)
trong đó aj x eTi j, và ai ( ... )a a1 b là biểu diễn mới của mỗi khối ảnh.
Số chiều của biểu diễn này có thể đƣợc giảm đơn giản bằng cách bỏ bớt tổng trong phƣơng trình (2.25) và chỉ giữ lại Nt số hạng đầu tiên. Lƣu ý rằng phép chiếu trên Nt véctơ riêng đầu tiên của cơ sở PCA cho ra một sự xấp xỉ Nt chiều tốt nhất theo nghĩa các bình phƣơng tối thiểu (nếu phân bố của x si
là phân bố Gaussian đa hƣớng). Vì vậy, biểu diễn số chiều giảm cung cấp một không gian thuận lợi để nhận ra các khối giống nhau khi có mặt của tạp nhiễu, do việc giảm số chiều này sẽ bỏ đi các biến đổi cƣờng độ nhỏ.
Thuật toán phát hiện tiến hành nhƣ sau. Đầu tiên, làm giảm các biến đổi nhỏ do tạp nhiễu, sau đó biểu diễn số chiều giảm của mỗi khối ảnh, ai
, đƣợc lƣợng tử hóa, a Qi/
, với số nguyên dƣơng Q là số lƣợng các bin lƣợng tử hóa. Xây dựng một ma trận kích thƣớc Nbb sao cho các dòng của nó chứa các hệ số lƣợng tử này. Gọi S là ma trận thể hiện kết quả của việc sắp xếp các dòng trong ma trận trên theo thứ tự từ điển. si
là dòng thứ i của ma trận S, và bộ (xi,yi) cho biết các tọa độ ảnh của khối (góc trên trái) tƣơng ứng với si
. Tiếp theo, xét tất cả các cặp dòng si
và sj
trong ma trận S mà khoảng cách dòng của nó, |i-j|, nhỏ hơn một ngƣỡng cho trƣớc. Trong ảnh, offset của tất cả các cặp nhƣ thế đƣợc cho bởi:
(xi - xj, yi - yj) nếu xi – xj > 0 (xj – xi, yi - yj) nếu xi – xj < 0 (0 , |yi - yj|) nếu xi = xj
Từ danh sách các offset này, các vùng lặp trong ảnh đƣợc phát hiện bằng việc nhận ra các offset xuất hiện nhiều lần. Ví dụ một vùng lặp lớn sẽ chứa nhiều khối nhỏ hơn, và mỗi khối xuất hiện rất gần với khối khác trong ma trận đƣợc sắp xếp và sẽ có cùng offset. Để tránh việc cho kết quả sai do các vùng đồng nhất, ta bỏ qua độ lớn offset của cặp nào thấp hơn ngƣỡng cho trƣớc. Chi tiết từng bƣớc của thuật toán nhƣ sau:
1. Gọi N là tổng số điểm ảnh trong một ảnh xám hoặc ảnh màu. 2. Khởi tạo các tham số:
b: số điểm ảnh của một khối ( b bđiểm ảnh) – có tất cả
2
( 1)
b
N N b khối.
: phần thay đổi đƣợc bỏ qua dọc theo trục chính.
Q: số các bin lƣợng tử hóa.
Nn: số các dòng lân cận để tìm kiếm trong ma trận đƣợc sắp xếp theo thứ tự từ điển.
Nf : ngƣỡng tần số xuất hiện tối thiểu.
Nd: ngƣỡng offset tối thiểu.
3. Sử dụng PCA, tính biểu diễn mới Nt-chiều, ai
, i = 1,… , Nb, cho mỗi khối ảnh b điểm ảnh (đối với các ảnh màu: (1) phân tích mỗi kênh màu riêng biệt; hoặc (2) xây dựng một khối màu đơn với kích thƣớc 3b điểm ảnh). Chọn giá trị
Nt thỏa mãn: 1 1 1 t N i i b i i
, trong đó i là các giá trị riêng đƣợc tính bởi PCA. 4. Xây dựng một ma trận Nb b sao cho các dòng của nó là các tọa độ đƣợc lƣợng tử hóa theo từng thành phần: a Qi/
.
5. Sắp xếp các dòng của ma trận trên theo thứ tự từ điển để tạo ra ma trận S. Gọi si
là các dòng của S và (xi,yi) là tọa độ góc trên trái của khối si
6. Đối với mọi cặp dòng si
và sj
của ma trận S mà |i-j| < Nn, đặt cặp tọa độ (xi,yi) và (xj,yj) vào một danh sách.
7. Với tất cả các phần tử trong danh sách này, tính toán các offset của chúng nhƣ sau:
(xi - xj, yi - yj ) nếu xi - xj > 0 (xj – xi, yi - yj ) nếu xi - xj 0 (0, |yi - yj|) nếu xi = xj
8. Loại bỏ tất cả các cặp tọa độ có tần số xuất hiện của offset nhỏ hơn Nf . 9. Loại bỏ tất cả các cặp tọa độ mà độ lớn offset của chúng,
2 2
(xixj) (yiyj) , nhỏ hơn Nd.
10. Từ các cặp khối còn lại xây dựng một biểu đồ lặp bằng việc tạo ra một ảnh zero có cùng kích thƣớc với ảnh gốc, và tô màu tất cả các điểm ảnh trong vùng lặp với cùng một giá trị cƣờng độ xám.
Độ phức tạp của thuật toán này bị chi phối bởi thuật toán sắp xếp theo thứ tự từ điển, là O(NtNlogN), trong đó Nt là số chiều của các biểu diễn giảm PCA và N là tổng số điểm ảnh của ảnh.
Có ít nhất 2 cách để mở rộng thuật toán này cho các ảnh màu. Cách tiếp cận đơn giản nhất là xử lý độc lập mỗi kênh màu (ví dụ: RGB) để tạo ra 3 biểu đồ lặp. Cách tiếp cận thứ 2 là áp dụng PCA cho các khối màu kích thƣớc 3b và tiến hành theo cách đã miêu tả ở trên.
Hình 2.3 là ảnh gốc và ảnh giả mạo. Sự giả mạo bao gồm việc copy một vùng trong ảnh và dán vào một vùng khác của ảnh để che giấu một đối tƣợng. Hình bên dƣới là kết quả của thuật toán phát hiện đƣợc áp dụng cho ảnh giả mạo lƣu với các hệ số chất lƣợng nén JPEG trong khoảng từ 50 đến 100. Ở mỗi biểu đồ, 2 vùng lặp đƣợc chỉ ra với các giá trị cấp xám khác nhau. Trong ví dụ này, các tham số đƣợc thiết lập nhƣ sau: b=64, =0.01, Q=256, Nb=100, Nf=128, Nd=16. Số chiều đƣợc giảm bớt từ 64 thành 32. Với mục đích hình dung, biểu đồ lặp đƣợc (1) giãn rồi co để khử các lỗ trống trong các vùng lặp, và (2) co rồi giãn để khử các cặp khối lặp sai.
Hình 2.3. Kết quả của thuật toán phát hiện dựa trên PCA