Một lược đồ mới phát hiện ảnh giả mạo dựa trên luật Benford

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

pdf9 trang | Chia sẻ: huongthu9 | Lượt xem: 397 | Lượt tải: 0download
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:

  • pdfmot_luoc_do_moi_phat_hien_anh_gia_mao_dua_tren_luat_benford.pdf