Bài báo này đã trình bày một lược đồ hoàn chỉnh
ứng dụng luật Benford (hay còn gọi là luật chữ số thứ
nhất) để phát hiện ảnh giả mạo dựa trên việc xác định
ảnh đó có các dấu hiện nén đúp JPEG hoặc có bị thêm
nhiễu Gauss hay không.
Bước đầu tiên, dựa trên các hệ số DCT lượng tử
của ảnh JPEG, chúng tôi thiết kế các đặc trưng
Benford của ảnh. Tiếp đó, chúng tôi trích xuất các đặc
trưng Benford của các ảnh trong một tập lớn ảnh
JPEG các loại để tiến hành huấn luyện với SVM
nhằm mục đích phân lớp giữa ảnh JPEG gốc và ảnh
JPEG có chỉnh sửa (nén đúp JPEG hoặc thêm nhiễu
Gauss). Kiểm tra trên các tập dữ liệu lớn gồm hàng
nghìn ảnh JPEG đã cho kết quả phát hiện giả mạo
khoảng từ 90% đến 100% và không có trường hợp
nào phát hiện nhầm ảnh thật là ảnh giả.
Trong thực tế, không phải ảnh số nào có dấu hiệu
nén đúp JPEG hoặc có nhiễu Gauss cũng là ảnh giả.
Chẳng hạn, ảnh JPEG có thể được nén lại một lần nữa
với tỷ số nén cao hơn chỉ nhằm làm giảm không gian
lưu trữ hoặc ảnh có thể bị nhiễu trong quá trình thu
nhận và truyền tải ảnh. Tuy nhiên, ảnh JPEG giả mạo
thì thường có các dấu hiệu nén đúp JPEG hoặc có
nhiễu bất thường. Do đó, phát hiện các dấu hiệu trên
là một biện pháp hữu hiệu hỗ trợ phát hiện ảnh giả
mạo. Để nâng cao hiệu quả và độ tin cậy trong phát
hiện ảnh giả mạo, chúng ta có thể kết hợp nhiều
phương pháp phát hiện khác nhau
9 trang |
Chia sẻ: huongthu9 | Lượt xem: 516 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Một lược đồ mới phát hiện ảnh giả mạo dựa trên luật Benford, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 5 -
Một lƣợc đồ mới phát hiện ảnh giả mạo dựa
trên luật Benford
A Novel Scheme for Detecting Image Forgeries based on Benford Law
Nguyễn Hiếu Cƣờng, Võ Đức Thắng
Abstract: Digital image tampering is becoming
popular and might cause serious consequences on
different areas. Thus, detection of image forgeries is
an urgent need. There are various forgery types,
which can be exposed by different forensic
techniques. In this paper, we propose a new method
based on Benford law, also known as the first-digit
law, and the SVM classification in order to identify
double JPEG compressed images and Gaussian noise
added images. Experiments on large-scale image data
sets show that the proposed scheme is reliable and it
can achieve a high forgery detection capability, with
a detection rate is about 90% or higher.
Keywords: image forensics, Benford law, SVM,
double JPEG compression
I. GIỚI THIỆU
Ngày nay, cùng với sự phát triển của khoa học kỹ
thuật và mạng Internet, ảnh số dễ dàng được thu nhận,
lưu trữ, chỉnh sửa và trao đổi. So với ảnh truyền thống
dùng phim, ảnh số có nhiều ưu điểm, đặc biệt là dễ
dàng chỉnh sửa. Việc hiệu chỉnh ảnh có thể chỉ nhằm
mục đích tạo ra những bức ảnh đẹp hơn hoặc có tính
nghệ thuật cao hơn. Tuy nhiên, chỉnh sửa ảnh cũng có
thể bị lợi dụng để giả mạo và thay đổi nội dung của
ảnh với những ý đồ xấu. Bằng một số công cụ xử lý
ảnh thông dụng hiện nay, như Photoshop, GIMP,
ImageMagick thì sẽ không khó để thực hiện nhiều
thủ thuật xử lý nhằm thay đổi nội dung của ảnh mà
không để lại những dấu vết có thể nhận biết được.
Một bức ảnh chỉ có thể được sử dụng để minh
chứng cho một sự thật nào đó nếu ảnh đó được xác
định là ảnh thật, không bị chỉnh sửa nội dung. Tuy
nhiên, khi công bố một bức ảnh đã qua chỉnh sửa,
người ta thường chỉ đưa ra bức ảnh sau cùng, chứ
không đưa ra ảnh gốc. Do vậy, cần phải có phương
pháp đáng tin cậy để xác định một bức ảnh nào đó đã
bị biến đổi hay chưa mà không cần có ảnh gốc để đối
chiếu. Có rất nhiều cách giả mạo ảnh, do đó cũng cần
có nhiều phương pháp khác nhau để phát hiện những
sự giả mạo đó [1].
Một phương pháp khá phổ biến trong xác thực ảnh
(cũng như các dữ liệu đa phương tiện nói chung) là sử
dụng thủy vân số (digital watermarking). Với phương
pháp này, một dấu thủy vân được nhúng vào trong
ảnh sao cho không tác động nhiều đến chất lượng ảnh
(ít nhất là bằng mắt thường không thể nhận biết sự
khác biệt giữa ảnh ban đầu và ảnh đã được nhúng
thủy vân). Nếu ảnh không bị sửa đổi thì dấu thủy vân
vẫn nguyên vẹn khi trích ra, ngược lại, dấu thủy vân
sẽ bị biến đổi khác với dấu nhúng ban đầu. Tuy nhiên,
trong thực tế, hầu hết các máy ảnh đều không được
trang bị chức năng nhúng và trích thủy vân nên phạm
vi ứng dụng thủy vân có nhiều hạn chế. Các kỹ thuật
thủy vân hiện nay chủ yếu được sử dụng cho mục
đích bảo vệ bản quyền các sản phẩm số.
Phương pháp phát hiện ảnh giả mạo (image
forensics) có thể hoạt động mà không cần ảnh gốc để
đối chiếu và không cần nhúng trước bất kỳ dấu thủy
vân nào vào ảnh. Như vậy, nếu coi phương pháp thủy
vân là chủ động (cần nhúng trước dấu thủy vân vào
ảnh) thì phát hiện ảnh giả mạo là phương pháp bị
động. Các kỹ thuật phát hiện giả mạo thường dựa trên
quan điểm rằng bất kỳ sự giả mạo nào trên ảnh cũng
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 6 -
tác động vào các đặc tính vốn có của ảnh và để lại
những dấu hiệu có thể nhận biết được. Việc tìm ra các
dấu hiệu bất thường trên là cơ sở để xác định một bức
ảnh đã bị can thiệp, sửa đổi hay chưa.
Ảnh số có thể được tổ chức và lưu trữ dưới nhiều
định dạng khác nhau, trong đó định dạng JPEG (Joint
Photographic Expert Group) là phổ biến nhất hiện
nay. Thuật toán nén ảnh JPEG dựa trên phép biến đổi
Cosine rời rạc (Discrete Cosine Transform – DCT),
được hỗ trợ bởi rất nhiều ứng dụng và thiết bị. Để
thực hiện các thao tác sửa đổi trên một ảnh JPEG, cần
thực hiện theo một số bước:
(1) tải ảnh JPEG lên một phần mềm xử lý,
(2) sửa đổi ảnh và
(3) lưu ảnh đó lại dưới định dạng JPEG.
Như vậy, bức ảnh nếu bị sửa đổi thì đã được nén
JPEG hai lần, hay còn gọi là nén đúp JPEG (double
JPEG compression). Nói cách khác, một ảnh nén đúp
JPEG thì nhiều khả năng ảnh đó đã bị sửa đổi, nên
phát hiện ảnh nén đúp JPEG là một trong những
hướng quan trọng để phát hiện ảnh giả mạo.
Với mục đích phát hiện ảnh nén đúp JPEG, một số
kỹ thuật đã được đề xuất. Các tác giả trong [2] và [3]
đã phát hiện rằng khi tỷ lệ nén của hai lần nén JPEG
khác nhau, các dấu hiệu tuần hoàn sẽ xuất hiện trong
biểu đồ tần suất (histogram) các hệ số DCT của ảnh
nén đúp JPEG, trong khi các dấu hiệu này không xuất
hiện ở ảnh chỉ nén JPEG một lần. Các dấu hiệu tuần
hoàn đó có thể nhận biết được một cách trực quan qua
quan sát phổ Fourier (Fourier spectrum) khi biến đổi
ảnh sang miền không gian. Tuy nhiên, kỹ thuật này
chỉ hoạt động tốt khi chất lượng nén JPEG lần thứ hai
cao hơn lần nén thứ nhất. Ngược lại, khi chất lượng
nén JPEG lần thứ hai thấp hơn chất lượng nén lần đầu
thì tỷ lệ phát hiện giả mạo rất thấp.
Dựa vào ý tưởng trong [2] và [3], He và các đồng
sự [4] đã đề xuất một kỹ thuật phát hiện ảnh ghép
JPEG. Dựa trên đặc tính của kỹ thuật nén JPEG, Farid
[5] đã đưa ra một phương pháp để tìm được sự không
tương thích của các khối ảnh khi ghép hai ảnh JPEG
với nhau. Tuy vậy, kỹ thuật của Farid chỉ phù hợp khi
phần được ghép vào một bức ảnh có chất lượng nén
JPEG thấp hơn những phần còn lại của bức ảnh đó.
Chen và các đồng sự [6] đã đề xuất một lược đồ dựa
trên phương pháp học máy để phát hiện ảnh nén đúp
JPEG.
Luật Benford [7] bắt đầu được nghiên cứu và ứng
dụng trong phát hiện ảnh giả mạo từ công trình của Fu
và các đồng sự [8]. Một số công trình khác đã cụ thể
hóa một số ý tưởng của [8], ví dụ [9]. Milani và các
đồng sự [10] đã sử dụng luật Benford để xác định các
ảnh JPEG được nén nhiều lần.
Trong bài báo này, chúng tôi trình bày một lược đồ
hoàn chỉnh sử dụng các đặc trưng Benford kết hợp với
kỹ thuật học máy SVM (Support Vector Machine) để
phát hiện nhiều loại ảnh giả mạo khác nhau. Trước
hết, chúng tôi ứng dụng lược đồ trên để phát hiện ảnh
giả mạo kiểu nén đúp JPEG. Kết quả thử nghiệm
phương pháp của chúng tôi đề xuất sẽ được so sánh
với một số phương pháp đang được sử dụng rộng rãi,
như thống kê tần suất [3] và sử dụng phương pháp
học máy SVM [6].
Chúng tôi cũng ứng dụng lược đồ đề xuất này để
phân lớp giữa ảnh gốc JPEG và ảnh JPEG đã bị thêm
nhiễu. Việc thêm nhiễu là một kỹ thuật tấn công
thường được sử dụng trong các quá trình làm giả ảnh.
Mục đích của việc thêm nhiễu là để che giấu những
dấu hiệu của việc làm giả trước đó, nhằm đánh lừa
hoặc vô hiệu hóa các thuật toán phát hiện ảnh giả
mạo. Do đó, một ảnh bị thêm nhiễu bất thường cũng
có nhiều khả năng là một ảnh giả. Theo hiểu biết của
chúng tôi, cho đến nay chưa có một công trình nào
ứng dụng luật Benford để phát hiện một ảnh đã bị
thêm nhiễu. Trong bài báo này, chúng tôi lần đầu tiên
sử dụng lược đồ dựa trên luật Benford để đánh giá
một ảnh có bị thêm nhiễu Gauss hay không.
Trong những phần tiếp theo, trước hết chúng tôi
giới thiệu một số khái niệm cơ bản sẽ được sử dụng
trong bài báo, đó là nén ảnh JPEG và luật Benford.
Lược đồ áp dụng luật Benford để phát hiện ảnh JPEG
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 7 -
giả mạo được trình bày trong phần III. Quy trình và
các kết quả thử nghiệm được mô tả chi tiết hơn trong
phần IV. Kết quả được thử nghiệm trên các tập lớn dữ
liệu ảnh giả mạo các loại cho thấy ứng dụng luật
Benford là một hướng tiếp cận hiệu quả để phát hiện
ảnh giả mạo. Cuối cùng là kết luận và tài liệu tham
khảo.
II. MỘT SỐ KHÁI NIỆM CƠ SỞ
II.1. Nén ảnh JPEG
Nén ảnh là một phương pháp hữu hiệu để giảm
kích thước lưu trữ nhưng vẫn đảm bảo được chất
lượng hình ảnh ở mức cho phép. Thuật toán nén ảnh
JPEG đang được sử dụng phổ biến nhất hiện nay do
có thể giảm đáng kể dung lượng lưu trữ trong khi vẫn
đảm bảo tốt chất lượng ảnh. Tùy theo nhu cầu sử
dụng mà chúng ta có thể nén ảnh JPEG với các tỷ lệ
nén khác nhau.
Trong quy trình nén ảnh JPEG, đầu tiên ảnh được
chuyển đổi sang không gian màu YCrCb, sau đó mỗi
kênh Y, Cr, Cb sẽ được xử lý riêng rẽ theo cách tương
tự nhau. Ảnh đa mức xám (grayscale) được xử lý
tương tự như thực hiện trên từng kênh màu ở trên,
gồm các bước chính được mô tả như sau [11]:
Bước 1: Ảnh nguồn được chia thành các khối 8×8
không giao nhau.
Bước 2: Thực hiện biến đổi DCT cho mỗi khối
ảnh. Các giá trị của khối sau khi biến đổi gọi là các hệ
số DCT, trong đó hệ số đầu tiên (ở vị trí hàng 1, cột 1
của mỗi khối) gọi là hệ số DC, các hệ số còn lại trong
khối gọi là các hệ số AC. Do đặc trưng tập trung năng
lượng của phép biến đổi DCT, giá trị của hệ số DC
thường lớn hơn rất nhiều so với giá trị của các hệ số
AC.
Bước 3: Lượng tử hóa các hệ số DCT của từng
khối bằng cách lấy phần nguyên của phép chia từng
hệ số của khối DCT với hệ số tương ứng (cùng vị trí)
của ma trận lượng tử 8×8. Các giá trị sau bước lượng
tử gọi là các hệ số DCT lượng tử.
Bước 4: Mã hóa entropy để tạo thành tệp ảnh
JPEG.
Khi cần tái hiện ảnh JPEG, các bước thực hiện
theo quy trình ngược lại, gồm các bước chính là giải
nén tệp ảnh JPEG và biến đổi DCT ngược (IDCT).
II.2. Luật Benford
Luật Benford là một định luật thực nghiệm được
phát hiện lần đầu bởi S. Newcomb năm 1881, sau đó
được làm rõ và bắt đầu ứng dụng bởi F. Benford vào
năm 1938 [7]. Luật này chỉ ra rằng các chữ số đầu
tiên của một tập số liệu lớn trong tự nhiên thường có
phân bố theo một qui luật. Cụ thể, luật Benford chỉ ra
rằng xác suất phân bố của các chữ số thứ nhất x trong
một tập lớn số liệu tự nhiên là theo dạng logarith như
sau:
p(x) = log10(1 + 1/x), với x = 1, 2, , 9,
trong đó p(x) là xác suất phân bố của chữ số x. Tỷ lệ
phân bố các chữ số đầu theo luật Benford có thể thấy
như trong Hình 1.
Điều kiện để áp dụng luật Benford là:
(1) tập dữ liệu mẫu phải đủ lớn và
(2) chỉ áp dụng cho những loại dữ liệu có nguồn
gốc tự nhiên.
Hình 1. Phân bố các chữ số đầu theo luật Benford
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 8 -
Hình 2. Tần suất xuất hiện các chữ số đầu của các hệ
số DCT lượng tử của một ảnh JPEG
Dữ liệu của một bức ảnh chưa qua chỉnh sửa có
thể được coi là có nguồn gốc tự nhiên. Nếu xét một
bức ảnh JPEG có kích cỡ bình thường trong thực tế
thì số hệ số DCT lượng tử là khá lớn nên có thể áp
dụng luật Benford. Ví dụ, với một ảnh JPEG kích cỡ
512×318, số hệ số DCT lượng tử lên đến hàng chục
ngàn. Tần suất xuất hiện của chữ số đầu của các hệ số
DCT lượng tử (chỉ tính riêng các hệ số AC khác 0)
của một bức ảnh như vậy có thể được mô tả như trong
Hình 2.
II.3. Phƣơng pháp học máy SVM
SVM là một phương pháp phân lớp dựa trên lý
thuyết thống kê, được đề xuất bởi Vapnik [12]. Đây là
phương pháp cho phép phân lớp dữ liệu bằng cách sử
dụng các hàm tuyến tính trên không gian đặc trưng
nhiều chiều, dựa vào lý thuyết tối ưu và lý thuyết
thống kê. SVM được xem như là một trong các
phương pháp phân lớp tinh vi và hiệu quả nhất hiện
nay.
Trong phương pháp SVM, dữ liệu ban đầu tương
ứng với không gian mẫu đầu vào sẽ được chuyển đổi
(ánh xạ) thành một không gian đặc trưng riêng. Tại
đây, có thể xác định một siêu phẳng thực hiện phân
chia tối ưu các mẫu thành hai miền xác định. Các hàm
chuyển đổi đa dạng của SVM cho phép tạo không
gian chuyển đổi một cách linh hoạt cho các dữ liệu
đầu vào.
Cho trước một tập huấn luyện bao gồm những
thuộc tính và nhãn cho từng đối tượng. Các đối tượng
được biểu hiện là từng điểm trong không gian vector.
Thuật toán SVM sẽ cố gắng xác định một siêu phẳng
quyết định tốt nhất sao cho có thể phân chia các điểm
trong không gian vector này thành hai lớp riêng biệt.
Chất lượng phân chia của siêu phẳng này quyết định
bởi khoảng cách (biên) của điểm dữ liệu gần nhất của
mỗi lớp đến mặt phẳng phân chia này. Do đó, khoảng
cách biên càng lớn thì mặt phẳng quyết định càng tốt,
do đó khả năng phân loại sẽ càng chính xác.
Thông thường dữ liệu đầu vào không dễ dàng phân
chia trực tiếp thành hai lớp phân biệt một cách tối ưu
nên cần sử dụng các hàm nhân (kernel function) để
thực hiện chuyển đổi không gian ban đầu thành một
không gian vector khác (không gian đặc trưng) sao
cho có thể phân chia được thành hai lớp. Khi đó, số
thuộc tính của từng đối tượng trong không gian mới
sẽ tăng lên, thời gian tính toán tương ứng cũng tăng
theo nhưng đã thỏa mãn được yêu cầu là phân loại
được dữ liệu. Tuy nhiên, để quá trình phân loại thực
hiện một cách chính xác nhất thì cần quá trình điều
chỉnh hàm nhân với các tham số đi kèm.
Việc phân loại dùng SVM gồm các bước chính:
Bước 1: SVM yêu cầu dữ liệu đầu vào dùng để
huấn luyện phải được mô tả như là các vector số thực
nên cần có bước tiền xử lý để biến đổi dữ liệu cho
phù hợp với quá trình tính toán, tránh các số có giá trị
quá lớn. Dữ liệu đó nên chuyển về đoạn [-1, 1] hoặc
[0, 1].
Bước 2: Do SVM có thể dùng các hàm nhân khác
nhau nên việc xác định đúng loại hàm nhân cần dùng
cho một bài toán cụ thể có thể giúp đạt độ chính xác
cao hơn.
Bước 3: Thực hiện việc kiểm tra chéo (cross
validation) để xác định các tham số tối ưu.
Bước 4: Có thể thử nghiệm trên các tập dữ liệu
dùng kiểm tra để xác định độ chính xác.
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 9 -
III. LƢỢC ĐỒ PHÁT HIỆN ẢNH GIẢ MẠO
Ảnh thật là ảnh ghi nhận các đối tượng từ thế giới
thực với những khoảng biến đổi liên tục về không
gian và màu sắc. Giá trị các điểm ảnh là những giá trị
từ thực tế, không có sự can thiệp của con người và
mỗi bức ảnh thông thường có số lượng điểm ảnh
tương đối nhiều. Đây là những điều kiện cần thiết để
có thể áp dụng luật Benford.
Khi một bức ảnh bị làm giả thì các giá trị trong
ảnh đã bị can thiệp một phần, do đó có thể làm cho
các thông số thống kê của ảnh không còn tuân theo
luật Benford. Vì thế đặc tính này sẽ là yếu tố để xác
định xem một bức ảnh có bị chỉnh sửa không. Trong
phần này, chúng tôi trình bày giải thuật kết hợp luật
Benford và phân lớp dữ liệu sử dụng SVM để phát
hiện ảnh nén đúp JPEG.
Đầu vào của thuật toán là ảnh JPEG và đầu ra của
thuật toán là một giá trị để có thể phân biệt ảnh thật
(ảnh nén JPEG) và ảnh giả (ví dụ ảnh nén đúp JPEG).
Các bước chính của thuật toán được tiến hành như mô
tả dưới đây.
Bước 1: Mỗi ảnh JPEG sẽ được giải nén để lấy
các hệ số DCT lượng tử. Để làm được điều này, trong
chương trình thử nghiệm chúng tôi sử dụng một công
cụ miễn phí là JPEGToolbox của Phil Sallee [13].
Bước 2: Tại mỗi khối, xác định tần suất xuất hiện
của các chữ số đầu khác 0 của các hệ số AC lượng tử.
Ví dụ, nếu dòng đầu tiên trong một khối DCT lượng
tử có giá trị là [152 4 23 12 6 3 0 0] thì các chữ
số đầu tương ứng sẽ là [* 4 2 1 6 3 * *], trong đó
dấu * để thể hiện những số không được dùng (giá trị
152 là hệ số DC và giá trị 0 không được sử dụng).
Thực hiện tương tự cho toàn bộ các khối ảnh để tính
các giá trị đặc trưng Benford của ảnh.
Đặc trưng Benford của ảnh sau khi được trích xuất
sẽ đồng thời được gán nhãn để hỗ trợ phân lớp bằng
thuật toán học máy SVM. Thông tin về đặc trưng
Benford của ảnh sẽ bao gồm một vector 10 phần tử,
trong đó có 9 phần tử là xác định tỉ lệ chênh lệch giữa
phân bố thực tế và phân bố theo luật Benford của các
hệ số AC lượng tử của ảnh JPEG và phần tử còn lại
xác định nhãn tương ứng.
Cụ thể, đặc trưng Benford của mỗi ảnh JPEG được
tính là một bộ (d0, d1, d2, , d9), trong đó d0 là nhãn
và di (i = 1, 2 9) được tính theo công thức sau:
di = |log10(1+1/i) – ti|,
với ti là xác suất xuất hiện của chữ số đầu i trong tập
các hệ số AC lượng tử khác 0 của ảnh.
Bước 3: Trích các giá trị đặc trưng Benford (như
mô tả trong Bước 2) của một tập lớn các ảnh thật và
một tập lớn ảnh giả (ảnh nén đúp JPEG), để thực hiện
huấn luyện bằng phương pháp SVM.
Bước 4: Sau khi đã được huấn luyện, chương
trình có thể được sử dụng để xác định một ảnh JPEG
nào đó là ảnh thật hay giả.
Lược đồ trên được áp dụng trước hết để phát hiện
ảnh nén đúp JPEG. Tiếp sau đó, lược đồ cũng được
chúng tôi áp dụng (huấn luyện và kiểm tra) theo cách
thức hoàn toàn tương tự để phát hiện ảnh JPEG bị
thêm nhiễu Gauss. Trong trường hợp này, ảnh thật là
ảnh nén JPEG (nén một lần) và ảnh giả là ảnh JPEG
được thêm nhiễu Gauss với các mức độ khác nhau.
Trong các quá trình huấn luyện và kiểm tra, thay vì sử
dụng các ảnh giả là ảnh nén đúp JPEG, chúng tôi
dùng ảnh giả là các ảnh JPEG đã được thêm nhiễu
Gauss với các mức độ khác nhau. Việc chuẩn bị dữ
liệu và kết quả thử nghiệm trên các tập dữ liệu lớn
được trình bày ở phần tiếp theo.
IV. KẾT QUẢ THỬ NGHIỆM
IV.1. Dữ liệu và phƣơng pháp thử nghiệm
Để chuẩn bị dữ liệu thử nghiệm, chúng tôi sử dụng
một tập gồm 1338 ảnh màu không nén, chưa từng bị
sửa đổi, có kích thước 512×318 hoặc 318×512 trong
cơ sở dữ liệu UCID (Uncompressed Color Image
Database) [14]. Đây là một cơ sở dữ liệu ảnh chuẩn,
miễn phí, được sử dụng phổ biến trong nhiều nghiên
cứu về xử lý ảnh. Tiếp theo, các ảnh này được nén
JPEG với hệ số chất lượng (QF – Quality Factor) lần
lượt là 50, 55, 60, 65, 70, 75, 80, 85, 90 và 95 để tạo
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 10 -
ra các ảnh gốc JPEG (ảnh thật), bao gồm trong 10 tập,
mỗi tập có 1338 ảnh. Để tạo các ảnh giả nén đúp
JPEG, chúng tôi lấy tập ảnh JPEG với QF = 50 và nén
JPEG một lần nữa, lần lượt với chất lượng nén ảnh từ
55% đến 100% để tạo ra 10 tập ảnh ảnh (nén đúp
JPEG), mỗi tập có 1338 ảnh.
Tập ảnh dùng để huấn luyện là tập ảnh bao gồm
các ảnh thật và ảnh giả. Tập ảnh dùng để kiểm tra là
tập ảnh được chọn ngẫu nhiên và không trùng lặp với
các ảnh đã được dùng trong quá trình huấn luyện để
đảm bảo tính khách quan khi kiểm tra.
IV.2. Thử nghiệm với ảnh nén đúp JPEG
Với mỗi tập ảnh (tương ứng với một tỷ lệ nén),
chúng tôi chọn ngẫu nhiên 1200 ảnh để huấn luyện và
138 ảnh còn lại dùng để kiểm tra. Sau quá trình huấn
luyện, chúng tôi kiểm tra với những tập ảnh JPEG với
tỷ lệ nén khác nhau. Cụ thể, dữ liệu kiểm tra gồm 10
tập ảnh thật (ảnh JPEG nén một lần), 10 tập ảnh giả
(ảnh nén đúp JPEG) và 10 tập ảnh hỗn hợp (với tỷ lệ
một nửa ảnh thật và một nửa ảnh giả), mỗi tập có 138
ảnh. Như vậy, tổng số ảnh JPEG dùng để huấn luyện
là 36000 ảnh và dùng để kiểm tra là hơn 4000 ảnh.
Trong quy trình đánh giá, trước hết chương trình
(sau khi đã huấn luyện) được sử dụng để kiểm tra trên
các tập gồm toàn các ảnh giả (ảnh nén đúp JPEG).
Tiếp đó chúng tôi sử dụng chương trình này để kiểm
tra các thư mục gồm toàn ảnh thật (ảnh nén JPEG một
lần). Cuối cùng, chúng tôi kiểm tra với các tập ảnh
hỗn hợp, gồm cả ảnh thật và ảnh giả (mỗi tập gồm 69
ảnh thật và 69 ảnh giả).
Chúng tôi sử dụng hàm fitcsvm trong Matlab để
thực hiện việc huấn luyện cho dữ liệu mẫu theo giải
thuật SVM với hàm nhân là Radial Basis Function
(RBF). Để quá trình huấn luyện chính xác hơn, chúng
tôi sử dụng thêm tính năng kiểm tra chéo kết quả huấn
luyện nhằm xác định tham số huấn luyện tối ưu.
Điều trên được thực hiện thông qua các bước sau:
Bước 1: Thiết lập phân vùng giới hạn việc kiểm
tra chéo. Nếu không có bước này, việc kiểm tra sẽ
được thực hiện ngẫu nhiên, do đó, cần xác định chính
xác khu vực kiểm tra để có kết quả tốt hơn.
Bước 2: Ngoài ra, để thực hiện cần phải có thêm
hai tham số truyền vào là rbf_sigma và boxconstraint.
Bước 3: Có thể tìm kiếm các thông số tốt nhất cho
cặp giá trị rbf_sigma và boxconstraint thông qua hàm
fminsearch với các thông số mặc định.
Bước 4: Khi đó, giá trị tốt nhất cho z =
[rbf_sigma, boxconstraint] sẽ là z = exp(searchmin).
Tuy nhiên, đây chỉ là kết quả tối ưu nhất thời, không
phải là tối ưu cho toàn bộ mẫu huấn luyện. Do đó,
chúng ta cần thực hiện lặp lại nhiều lần và chọn một
giá trị tốt nhất để dùng cho toàn bộ mẫu huấn luyện.
Kết quả cũng được coi là đáng tin cậy hơn nếu giữa
các lượt thử nghiệm không quá khác biệt lớn. Trong
bài báo này, chúng tôi thực hiện hai lượt thử nghiệm
theo lược đồ và bộ dữ liệu đã trình bày ở trên. Chúng
tôi đã sử dụng hàm predict của Matlab để xem xét
dạng ảnh của tập mẫu có ứng với dữ liệu huấn luyện
không. Kết quả trả về là một vector chứa nhãn tương
ứng của các mẫu đã được kiểm tra.
Kết quả thử nghiệm trong Bảng 1 và Bảng 2 cho
thấy, khi thực hiện kiểm tra trên các tập gồm toàn ảnh
giả, tỷ lệ phát hiện được ảnh giả là rất cao, khoảng
90% trở lên và trong quá nửa số trường hợp kiểm tra,
tỷ lệ này là từ 99% đến 100%. Không chỉ kiểm tra
trên các tập gồm toàn ảnh giả như trong một số
nghiên cứu thường thực hiện, chúng tôi đã thử nghiệm
trên cả tập ảnh hỗn hợp (gồm 50% số ảnh thật và 50%
số ảnh giả). Sau khi kiểm tra trên các tập hỗn hợp này
cho thấy kết quả không khác nhiều so với khi thực
hiện trên các tập toàn ảnh giả, với tỷ lệ tối thiểu là
85% và trong nhiều trường hợp vẫn có thể đạt tỷ lệ
phát hiện giả mạo là 100%. Điều đó thể hiện rằng khả
năng phân loại của chương trình là tốt. Ngoài ra, khi
kiểm tra các tập chứa toàn ảnh thật, chúng tôi nhận
thấy, kết quả trong tất cả các trường hợp, tỷ lệ ảnh giả
phát hiện được đều là 0%, chứng tỏ không có sự phát
hiện nhầm một ảnh thật là ảnh giả. Đây là một chỉ số
quan trọng, vì nếu một phương pháp có tỷ lệ phát hiện
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 11 -
giả mạo cao nhưng tỷ lệ phát hiện nhầm cũng cao thì
không đủ tin cậy để ứng dụng trong thực tế. Với
những thử nghiệm trong [3, 6], các tác giả đã không
đề cập đến tỷ lệ phát hiện nhầm này.
Để so sánh với các thuật toán của [3, 6], chúng tôi
sử dụng cùng một bộ dữ liệu ảnh như trong thử
nghiệm thuật toán đề xuất ở trên. Kết quả thử nghiệm
các thuật toán của [3] và [6] được trình bày trong
Bảng 3. Lưu ý rằng các kết quả này chỉ được thực
hiện khi kiểm tra trên các tập dữ liệu gồm toàn ảnh
giả.
Bảng 1. Tỷ lệ phát hiện ảnh giả mạo nén đúp JPEG
(Lượt thử nghiệm thứ nhất) [%]
Chất lƣợng
nén ảnh
(QF)
Kiểm tra tập
toàn ảnh giả
Kiểm tra tập
ảnh hỗn hợp
55 91 89
60 96 96
65 100 100
70 99 97
75 95 97
80 100 100
85 99 98
90 99 97
95 99 98
100 100 100
Bảng 2. Tỷ lệ phát hiện ảnh giả mạo nén đúp JPEG
(Lượt thử nghiệm thứ hai) [%]
Chất lƣợng
nén ảnh
(QF)
Kiểm tra tập
toàn ảnh giả
Kiểm tra tập
ảnh hỗn hợp
55 88 85
60 94 85
65 100 100
70 98 100
75 97 99
80 100 100
85 89 97
90 99 98
95 100 100
100 99 97
Bảng 3. Tỷ lệ phát hiện ảnh giả mạo nén đúp JPEG
của lược đồ Popescu và lược đồ Chen [%]
Chất lƣợng
nén ảnh
(QF)
Lƣợc đồ của
Popescu [3]
Lƣợc đồ của
Chen [6]
55 100 100
60 99 100
65 98 100
70 100 100
75 97 100
80 93 100
85 86 100
90 85 99
95 88 94
100 84 92
IV.3. Thử nghiệm với ảnh thêm nhiễu Gauss
Trong phần này, chúng tôi sử dụng lược đồ tương
tự như trong IV.2 để phát hiện một ảnh có bị thêm
nhiễu hay không. Ảnh thật bao gồm 10 tập ảnh JPEG
với chất lượng nén từ 50% đến 95%, mỗi tập gồm
1338 ảnh (xem mục IV.1). Ảnh giả được tạo bằng
cách thêm nhiễu Gauss với cường độ khác nhau từ 5%
đến 10% vào các ảnh JPEG. Kết quả chúng tôi có 10
tập ảnh giả (ảnh JPEG bị thêm nhiễu), mỗi tập gồm
1338 ảnh. Các tập ảnh để huấn luyện bao gồm trong
10 tập ảnh thật, 10 tập ảnh giả và 10 tập ảnh hỗn hợp
(gồm 50% số ảnh JPEG thật và 50% số ảnh JPEG
giả), mỗi tập ảnh gồm 1200 ảnh. Dữ liệu để kiểm tra
cũng gồm có 30 tập như trên, trong đó mỗi tập gồm
138 ảnh. Như vậy, tương tự như thử nghiệm trong
IV.2, chúng tôi đã sử dụng 36000 ảnh để huấn luyện
và hơn 4000 ảnh để kiểm tra. Để cho kết quả chính
xác hơn, chúng tôi cũng thực hiện hai lượt kiểm tra
như trong IV.2. Kết quả thử nghiệm được trình bày
trong Bảng 4 và Bảng 5. Chúng tôi lần đầu tiên ứng
dụng luật Benford để phát hiện ảnh bị thêm nhiễu và
nhận thấy, khả năng phát hiện giả mạo với loại ảnh
này cũng rất tốt, với tỷ lệ phát hiện khoảng từ 90%
đến 100%. Khi thử nghiệm trên tập toàn ảnh thật, tỷ
lệ ảnh giả phát hiện được là 0%, tức là không có sự
phát hiện nhầm một ảnh thật là ảnh giả.
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 12 -
Bảng 4. Tỷ lệ phát hiện ảnh giả mạo thêm nhiễu
Gauss (Lượt thử nghiệm thứ nhất) [%]
Chất lƣợng
nén ảnh
(QF)
Kiểm tra tập
toàn ảnh giả
Kiểm tra tập
ảnh hỗn hợp
50 93 90
55 95 91
60 94 94
65 94 96
70 100 100
75 98 97
80 96 96
85 96 95
90 94 97
95 100 100
Bảng 5. Tỷ lệ phát hiện ảnh giả mạo thêm nhiễu
Gauss (Lượt thử nghiệm thứ hai) [%]
Chất lƣợng
nén ảnh
(QF)
Kiểm tra tập
toàn ảnh giả
Kiểm tra tập
ảnh hỗn hợp
50 96 94
55 93 93
60 93 91
65 93 97
70 97 98
75 100 100
80 97 96
85 97 96
90 97 97
95 100 98
V. KẾT LUẬN
Bài báo này đã trình bày một lược đồ hoàn chỉnh
ứng dụng luật Benford (hay còn gọi là luật chữ số thứ
nhất) để phát hiện ảnh giả mạo dựa trên việc xác định
ảnh đó có các dấu hiện nén đúp JPEG hoặc có bị thêm
nhiễu Gauss hay không.
Bước đầu tiên, dựa trên các hệ số DCT lượng tử
của ảnh JPEG, chúng tôi thiết kế các đặc trưng
Benford của ảnh. Tiếp đó, chúng tôi trích xuất các đặc
trưng Benford của các ảnh trong một tập lớn ảnh
JPEG các loại để tiến hành huấn luyện với SVM
nhằm mục đích phân lớp giữa ảnh JPEG gốc và ảnh
JPEG có chỉnh sửa (nén đúp JPEG hoặc thêm nhiễu
Gauss). Kiểm tra trên các tập dữ liệu lớn gồm hàng
nghìn ảnh JPEG đã cho kết quả phát hiện giả mạo
khoảng từ 90% đến 100% và không có trường hợp
nào phát hiện nhầm ảnh thật là ảnh giả.
Trong thực tế, không phải ảnh số nào có dấu hiệu
nén đúp JPEG hoặc có nhiễu Gauss cũng là ảnh giả.
Chẳng hạn, ảnh JPEG có thể được nén lại một lần nữa
với tỷ số nén cao hơn chỉ nhằm làm giảm không gian
lưu trữ hoặc ảnh có thể bị nhiễu trong quá trình thu
nhận và truyền tải ảnh. Tuy nhiên, ảnh JPEG giả mạo
thì thường có các dấu hiệu nén đúp JPEG hoặc có
nhiễu bất thường. Do đó, phát hiện các dấu hiệu trên
là một biện pháp hữu hiệu hỗ trợ phát hiện ảnh giả
mạo. Để nâng cao hiệu quả và độ tin cậy trong phát
hiện ảnh giả mạo, chúng ta có thể kết hợp nhiều
phương pháp phát hiện khác nhau.
TÀI LIỆU THAM KHẢO
[1] A. PIVA, “An Overview on image forensics”, ISRN
Signal Process., vol. 2013, pp. 1–22, 2013.
[2] J. LUKAS, J. FRIDRICH, “Estimation of primary
quantization matrix in double compressed JPEG
Images”, Proc. Digit. Forensic Res. Work., 2003.
[3] A. POPESCU, “Statistical tools for digital image
forensics”, PhD Thesis, Dartmouth College, Hanover,
NH, USA, 2004.
[4] J. HE, Z. LIN, L. WANG, X. TANG, “Detecting
Doctored J PEG Images Via DCT Coefficient
Analysis”, ECCV LNCS 3953, pp. 423–435, 2006.
[5] H. FARID, “Exposing Digital Forgeries From JPEG
Ghosts”, IEEE Trans. Inf. Forensics Secur., vol. 4, no.
1, pp. 154–160, Mar. 2009.
[6] C. CHEN, Y. SHI, W. SU, “A machine learning based
scheme for double JPEG compression detection”,
Proc. 19th Int. Conf. Pattern Recognization (ICPR),
2008.
[7] F. BENFORD, “The law of anamalous numbers”,
Proc. Amer. Phi. Soc., vol. vol. 78, pp. 551–572,
1938.
[8] D. FU, Y.Q. SHI, and W. SU, “A generalized
Benford’s law for JPEG coefficients and its
applications in image forensics”, Proc. SPIE. 2007.
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 13 -
[9] N. CƯỜNG, V. THẮNG, “Ứng dụng luật chữ số thứ
nhất phát hiện dấu hiệu giả mạo trên ảnh JPEG”,
Tạp chí Khoa học Giao thông vận tải, 11/2015.
[10] S. MILANI, M. TAGLIASACCHI, S. TUBARO,
“Discriminating multiple JPEG compressions using
first digit features”, APSIPA Trans. on Signal and
Information Processing, Vol 3, 2014.
[11] G. WALLACE, “The JPEG still picture compression
standard”, IEEE Trans. Consum. Electron., pp. 1–17,
1991.
[12] V. VAPNIK, “Statistical learning theory”, John
Wiley, 1998.
[13]
[14] G. SCHAEFER, M. STICH, “UCID - An
Uncompressed Colour Image Database”, 2004.
Nhận bài ngày: 27/08/2016
SƠ LƢỢC VỀ TÁC GIẢ
NGUYỄN HIẾU CƢỜNG
Sinh ngày 21/5/1974 tại Hải
Dương.
Tốt nghiệp ĐH năm 1995 và
Cao học năm 1999 tại trường
ĐH Quốc gia Hà Nội.
Nhận học vị Tiến sĩ năm 2013
tại trường ĐH Darmstadt,
CHLB Đức.
Hiện là giảng viên khoa CNTT, trường ĐH Giao
thông vận tải Hà Nội.
Lĩnh vực quan tâm: Xử lý ảnh, an toàn thông tin.
Email: cuonggt@gmail.com
Điện thoại: 0967886712
VÕ ĐỨC THẮNG
Sinh ngày 6/2/1984
tại TP. Hồ Chí Minh.
Tốt nghiệp ĐH năm
2008 tại trường ĐH
Công nghiệp TP. Hồ
Chí Minh.
Tốt nghiệp Cao học năm
2015 tại trường ĐH Giao
thông vận tải (Phân hiệu tại TP. Hồ Chí Minh).
Hiện làm việc tại công ty VTRADE Việt Nam.
Lĩnh vực quan tâm: Xử lý ảnh, ảo hóa.
Email: ducthang128@gmail.com
Các file đính kèm theo tài liệu này:
- mot_luoc_do_moi_phat_hien_anh_gia_mao_dua_tren_luat_benford.pdf