Tài liệu Hệ thống nhúng hiện thực thuật toán đa phân giải cho ảnh pháp chứng - Võ Minh Tiến: TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 26 (51) - Thaùng 03/2017
3
Hệ thống nhúng hiện thực thuật toán
đa phân giải cho ảnh pháp chứng
An embedded system implemented the multiresolution-based algorithm for forensic
image detection
KS. Võ Minh Tiến, Công ty TNHH Applied Micro Circuits Corporation (AMCC) Vietnam
Vo Minh Tien, Engr. Applied Micro Circuits Cooperation Vietnam Co., Ltd.
GS.TS. Lê Tiến Thường, Trường Đại học Bách Khoa TP.HCM – ĐHQG TP.HCM
Le Tien Thuong, Prof.,Ph.D., Ho Chi Minh City University of Technology –
National University Ho Chi Minh City
ThS. Huỳnh Khả Tú, Trường Đại học Bách Khoa TP.HCM – ĐHQG TP.HCM
Huynh Kha Tu, M.Sc., Ho Chi Minh City University of Technology –
National University Ho Chi Minh City
PGS.TS. Marie Luong, Trường Đại học Paris 13, Pháp
Marie Luong, Assoc.Prof.,Ph.D. University Paris 13, France
Tóm tắt
Bài viết trình bày việc triển khai một phương pháp giám định ảnh trên một hệ thống nhúng. Có nhiều
loại phần cứn...
11 trang |
Chia sẻ: quangot475 | Lượt xem: 555 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Hệ thống nhúng hiện thực thuật toán đa phân giải cho ảnh pháp chứng - Võ Minh Tiến, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 26 (51) - Thaùng 03/2017
3
Hệ thống nhúng hiện thực thuật toán
đa phân giải cho ảnh pháp chứng
An embedded system implemented the multiresolution-based algorithm for forensic
image detection
KS. Võ Minh Tiến, Công ty TNHH Applied Micro Circuits Corporation (AMCC) Vietnam
Vo Minh Tien, Engr. Applied Micro Circuits Cooperation Vietnam Co., Ltd.
GS.TS. Lê Tiến Thường, Trường Đại học Bách Khoa TP.HCM – ĐHQG TP.HCM
Le Tien Thuong, Prof.,Ph.D., Ho Chi Minh City University of Technology –
National University Ho Chi Minh City
ThS. Huỳnh Khả Tú, Trường Đại học Bách Khoa TP.HCM – ĐHQG TP.HCM
Huynh Kha Tu, M.Sc., Ho Chi Minh City University of Technology –
National University Ho Chi Minh City
PGS.TS. Marie Luong, Trường Đại học Paris 13, Pháp
Marie Luong, Assoc.Prof.,Ph.D. University Paris 13, France
Tóm tắt
Bài viết trình bày việc triển khai một phương pháp giám định ảnh trên một hệ thống nhúng. Có nhiều
loại phần cứng được dùng trong xử lý ảnh, tuy nhiên, đề tài lựa chọn sử dụng một thế hệ phần cứng mới
Raspberry Pi 3B, được phát triển ở Anh nhằm thúc đẩy giảng dạy khoa học máy tính trong trường học
[1]. Phương pháp thực hiện có thể phát hiện ảnh giả do cắt dán trên cùng một ảnh (Copy - Move) hoặc
từ nhiều nguồn khác nhau (Splicing) mà không biết bất cứ thông tin gì về ảnh gốc. Ảnh giám định được
xử lý đa phân giải bằng biến đổi Wavelets rời rạc trước khi tách biên với một ngưỡng lọc thích hợp để
tìm ra những điểm biên chỗ cắt dán nếu là ảnh giả, tái tạo lại các đường biên này bằng các toán tử hình
thái. Kết quả thực hiện trên hệ thống nhúng cho kết quả tương tự như mô phỏng trên Matlab với độ
chính xác cao.
Từ khóa: phát hiện ảnh giả, pháp chứng, ảnh cắt dán, ảnh ghép, phân tích Wavelet rời rạc, tách biên,
toán tử hình thái, Raspberry, OpenCV, FPGA.
Abstract
This paper presents the implementation of the multiresolution-based algorithm for forensic image
detection on an embedded system. Among various hardware platforms used in image processing field,
this project chose the Raspberry Pi, which is a credit-card-sized computer developed in the UK by the
Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in
schools. The method is able to detect copy–move forgery and spliced images without having any
information about original images. By applying Discrete Wavelets Transform (DWT) and edge
detection with a threshold, cut-paste manipulations are traced. If the image is fake, shaped edges are
highlighted and the morphological operation is applied to reconstruct the boundaries of forged regions.
The procedure conducted in this system gives results similar to those from Matlab simulations.
Keywords: digital image forgery, forensic, copy – move, splicing, Discrete Wavelets Transform (DWT),
edge detect, morphological operation, Raspberry, OpenCV, Field Programmable Gate Arrays (FPGA).
H THỐNG NHÚNG HI N THỰC THUẬT TOÁN ĐA PHÂN GIẢI CHO ẢNH PHÁP CHỨNG
4
1. Giới thiệu
Xử lý ảnh số là một lĩnh vực mở và
năng động với nhiều nghiên cứu được ứng
dụng trong cuộc sống hằng ngày như pháp
chứng, y dược, khám phá vũ trụ, giám sát và
nhiều lĩnh vực khác. Những ứng dụng khác
nhau bao gồm các bước xử lý khác nhau
như xử lý và nâng cao chất lượng ảnh, phát
hiện vật thể, nhận diện khuôn mặt. Triển
khai những ứng dụng này trên một máy tính
thì có thể dễ dàng, tuy nhiên nó lại không
hiệu quả và rất tốn thời gian vì những yêu
cầu phần cứng như bộ nhớ và các thiết bị
ngoại vi. Triển khai một hệ thống nhúng
ứng dụng chuyên biệt sẽ giúp tăng tốc độ
triển khai phần mềm tương ứng [2].
Sự xuất hiện và phát triển nhanh chóng
của các công nghệ xử lý ảnh và các phần
mềm chỉnh sửa ảnh, điển hình như
Photoshop là một bước đột phá trong kỹ
thuật. Nó giúp con người tạo ra các bức ảnh
đẹp, lưu lại những khoảnh khắc đáng nhớ
trong đời sống xã hội của con người. Tuy
nhiên, nhiều người lợi dụng các phần mềm
chỉnh sửa ảnh để tạo ra các ảnh giả nhằm
gian lận, che giấu bằng chứng phạm tội, gây
hại cho người khác và xã hội. Điều này làm
nảy sinh một nhu cầu là cần tìm ra các kỹ
thuật để giám định ảnh, phát hiện các ảnh
giả mà mắt thường không thể phân biệt
được. Nhiều thuật toán và giải pháp được
đưa ra, trong đó phân thành hai loại chính là
thuật toán chủ động và thuật toán thụ động.
Nếu như các phương pháp chủ động cho
biết các thông tin của ảnh gốc như phương
pháp watermarking hay chữ ký số; thì các
phương pháp thụ động sẽ không có bất cứ
thông tin nào của ảnh gốc nên đôi khi còn
gọi là mù.
Hiện nay, có nhiều kỹ thuật và phương
pháp khác nhau được đưa ra, chủ yếu tập
trung vào phương pháp thụ động, phát hiện
các ảnh giả mạo do cắt dán hình ảnh trên
cùng một ảnh (Copy – Move) hoặc do trích
xuất từ nguồn ảnh khác (Splicing). Tuy
nhiên, để tìm ra một phương pháp tiếp cận
mới và hiệu quả, cũng như hiện thực các
giải pháp này trên một hệ thống nhúng là rất
cần thiết. Thông thường, các nhà nghiên
cứu chỉ chú ý tới giải thuật, cách xử lý và
mô phỏng nó trên Matlab mà chưa quan tâm
tới việc triển khai trên phần cứng nào sẽ đạt
được kết quả tối ưu về tốc độ, sự chính xác.
Việc thực hiện thuật toán đa phân giải cho
ảnh pháp chứng trên một phần cứng cụ thể
như KIT Raspberry Pi 3B - được tích hợp
một CPU 1.2GHz 64-bit quad-core ARMv8
[8] - giúp ta có những đánh giá rõ ràng, góp
phần không nhỏ nhằm tìm ra những giải
pháp, công cụ tối ưu cho việc giám định ảnh
pháp chứng.
2. Tổng quan tình hình nghiên cứu
Có hai loại kỹ thuật thiết kế phần cứng
chính được sử dụng phổ biến cho xử lý ảnh
là vi mạch tích hợp chuyên dụng -
Application Specific Integrated Circuits
(ASIC) và phần cứng thiết kế bán chuyên
dụng như bộ xử lý tín hiệu số-Digital signal
Processors (DSP) hay Mảng cổng lập trình
được dạng trường - Field Programmable
Gate Arrays (FPGA). Những thiết kế với
ASIC có hiệu quả cao nhất, tuy nhiên thiết
kế lại phức tạp và có giá thành cao. Một
nhược điểm nữa là thiết kế ASIC không thể
thay đổi nên thời gian thiết kế cũng lâu hơn
các phần cứng khác. Thiết kế này thường
được sử dụng trong những ứng dụng
thương mại với số lượng sản xuất lớn.
Ngoài ra, trong quá trình sản xuất, nếu xảy
ra bất kỳ lỗi nhỏ nào cũng làm cho chip
không sử dụng được. DSP là một dạng
phần cứng nằm giữa ASIC và PC về hiệu
quả và độ phức tạp thiết kế. DSP là những
vi xử lý đặc biệt, được lập trình bằng ngôn
VÕ MINH TIẾN - LÊ TIẾN THƯỜNG - HUỲNH KHẢ TÚ - MARIE LUONG
5
ngữ C hoặc code assembly. Nó thích hợp
với các ứng dụng tính toán rất phức tạp như
xử lý số tín hiệu và xử lý ảnh. Sử dụng DSP
cũng yêu cầu sự hiểu biết cơ bản về phần
cứng, nhưng tương đối dễ dàng hơn những
lựa chọn khác. FPGA là một thiết bị cấu
hình lại. Những kỹ thuật thiết kế phần cứng
như cấu trúc song song và cấu trúc đường
ống có thể được phát triển trên FPGA [6],
nhưng không thể thực hiện trên một thiết kế
DSP. Triển khai xử lý ảnh trên một thiết bị
cấu hình lại sẽ giảm tối đa chi phí, cho phép
thực thiện các thiết kế mẫu các thuật toán
phức tạp một cách nhanh chóng và dễ dàng
sửa lỗi và kiểm tra. Vì vậy, FPGA là một sự
lựa chọn lý tưởng cho các giải thuật xử lý
ảnh thời gian thực.
Tuy nhiên, việc nghiên cứu về phần
cứng xử lý ảnh trong những năm gần đây ít
được quan tâm, phát triển. Những nghiên
cứu trước đây có thể được phân loại dựa
trên loại phần cứng và giải thuật xử lý ảnh
được triển khai. Những loại phần cứng
được xem xét trong xử lý ảnh như ASIC,
DSP và FPGA. Còn đối với các thuật toán
xử lý ảnh được triển khai trên phần cứng
như tích chập, lọc hình ảnh và phát hiện
cạnh bằng phương pháp Sobel, Prewitt và
Canny. Một vài nghiên cứu cũng quan tâm
đến việc triển khai và hiệu quả thực thi trên
FPGA của những nhà sản xuất như Xilinx
[5], Amtel và Altera.
Nhiều nghiên cứu gần đây chủ yếu tập
trung vào phương pháp thụ động vì nó đòi
hỏi các thuật toán và kỹ thuật phức tạp hơn.
Ảnh giả tạo ra trong phương pháp này gồm
hai dạng là Copy – Move và Splicing. Với
ảnh giả Copy – Move, một vùng ảnh được
cắt ra, có thể được xử lý, rotate/flip hoặc
thay đổi kích thước, tỉ lệ (scale) trước khi
dán vào một vị trí nào đó trên ảnh gốc. Do
phần cắt ghép được lấy từ chính ảnh đó nên
nó có thông tin và đặc tính giống một phần
trên ảnh gốc. Dựa vào cách thức xử lý ảnh,
các thuật toán giám định này được chia làm
hai nhóm chính là dịch chuyển chỉ với các
thao tác biến đổi đồ họa và dịch chuyển với
các biến đổi đồ họa cộng với hình học. Các
kỹ thuật phát hiện ảnh giả cho cả hai hình
thức ảnh giả Copy - Move như phân tích
thống kê các giá trị pixel của Weiqi Luo
[13], phân tích giá trị đặc biệt - Singular
Value Decomposition (SVD) [14], biến đổi
Wavelets rời rạc - Dircrete Wavelets
Transform (DWT) [15] biến đổi cos rời rạc
- Discrete Cosine Transform (DCT) [4].
Còn với ảnh Splicing, phần cắt ghép được
lấy từ một nguồn ảnh khác nên nhiều vùng
ảnh sẽ có các đặc tính khác nhau. Dựa trên
các đặc tính bi-coherence [9], blur [7] của
ảnh hay đặc điểm camera khi chụp [16], có
thể phân biệt được các ảnh giả dạng này.
Các kỹ thuật giám định này được tổng quát
trong [10].
3. Giải thuật đa phân giải cho ảnh
pháp chứng
Thuật toán đề xuất không chỉ phát hiện
ảnh giả mạo, mà còn xác định vùng bị giả
mạo do xử lý copy-move hoặc splicing mà
không biết trước bất kỳ thông tin nào của
ảnh gốc. Ngoài ra, thuật toán còn có thể
phát hiện nhiều hơn một vùng giả mạo
trong một ảnh thông qua các bước đa phân
giải, tách biên, toán tử hình thái giãn nở
trước khi tái tạo lại hình ảnh bằng biến đổi
Wavelets ngược [11].
Giả sử ảnh ban đầu cần giám định là
ảnh màu, cần chuyển ảnh sang ảnh đa mức
xám (gray) từ các kênh màu đỏ (Red – R),
xanh lá (Green – G) và xanh dương (Blue –
B) của ảnh gốc với trọng số thích hợp. Giá
trị từng pixel được tính từ giá trị của các
kênh màu đỏ R, xanh lá G và xanh dương
B ứng với pixel đó:
H THỐNG NHÚNG HI N THỰC THUẬT TOÁN ĐA PHÂN GIẢI CHO ẢNH PHÁP CHỨNG
6
(1)
Input Image
RGB?
RGB => Gray
Wavelet Transform
Approximate
Detail Components
(Horizontal, Vertical
& Diagonal Detail)
IDWT
Output Image
(Highlighted forged
regions)
Output Log file
No
Yes
Dilation
Approximate = 0
Detail Components
(Horizontal, Vertical
& Diagonal Detail)
Edge Detection
Edge?
Yes
Fake image
No paste,
no forgery
No
Output Image
Hình 1: Lưu đồ thuật toán nhận diện ảnh giả bằng biến đổi Wavelets
VÕ MINH TIẾN - LÊ TIẾN THƯỜNG - HUỲNH KHẢ TÚ - MARIE LUONG
7
Để xử lý dữ liệu hai chiều như ảnh đa
mức xám, cần sử dụng các phép biến đổi
Wavelets rời rạc hai chiều (2-D). Trong
phép biến đổi này, tín hiệu hai chiều S(x,
y) được tách thành nhiều tín hiệu một
chiều rồi lấy biến đổi Wavelets 1-D trên
chúng. Kết quả tổng hợp là biến đổi
Wavelets 2-D.
Tín hiệu 2D
L
↓2
L H
↓2 ↓2
S1 S2
H
↓2
L H
↓2 ↓2
S3 S4
Theo cột
Theo hàng
Hình 2. Biến đổi Wavelets rời rạc 2-D
Gọi x và y là hai trục tọa độ của tín
hiệu 2-D, , là hàm tỉ lệ một
chiều tương ứng phép lọc thông thấp L và
, là hàm tỉ lệ một chiều tương
ứng phép lọc thông cao H. Thực hiện phép
biến đổi Wavelets 2-D tạo ra một hàm tỉ lệ
và ba hàm Wavelets
(2)
(3)
(4)
(5)
Phân tích đa phân giải, ảnh được tách
thành 4 thành phần là thành phần xấp xỉ LL
(Approximation), chi tiết ngang LH
(Horizontal Detail), chi tiết dọc HL
(Vertical Detail) và chi tiết chéo HH
(Diagonal Detail). Nếu như thành phần xấp
xỉ chứa các thông tin của ảnh ở tần số thấp,
thì các thành phần chi tiết chứa các thông
tin tần số cao tương ứng với ba chiều
ngang, dọc và chéo.
Trong một ảnh giả, các đường biên ở
vùng cắt dán sẽ có độ sắc nét khác so với
những vùng còn lại trên ảnh. Bước tiếp
theo của giải thuật sẽ tiến hành tách biên để
tìm những vùng khả nghi trên ảnh; khi đó,
những vùng có độ sắc nét ở cạnh cao nhất
sẽ được xem xét và áp dụng ngưỡng lọc
thích hợp để xác định vùng đó là cắt dán
hay không [12]. Vì các đường biện thể hiện
thành phần tần số cao, nên thuật toán tách
biên được áp dụng bằng cách tích chập 3
thành phần chi tiết của ảnh với Prewitt
kernel Gx, Gy ứng với trục x, y.
(6)
Thông thường, các đường biên tại
vùng cắt dán sẽ được làm mượt bằng các
phần mềm xử lý ảnh; vì vậy, các cạnh còn
H THỐNG NHÚNG HI N THỰC THUẬT TOÁN ĐA PHÂN GIẢI CHO ẢNH PHÁP CHỨNG
8
lại sau khi tách và áp dụng ngưỡng sẽ
không liên tục. Để tái tạo các cạnh này,
phép toán tử hình thái giãn nở sẽ được áp
dụng cho các thành phần chi tiết ngang,
dọc và chéo.
Giãn nở ảnh nhị phân A bởi phần tử
cấu trúc B được cho bởi biểu thức:
(7)
Phần tử cấu trúc B có kích thước 3x3
với tâm nằm ở trung tâm.
Hình 3. Phần tử cấu trúc 3x3
Và để phát hiện các phần cắt dán, thì
không cần quan tâm thành phần xấp xỉ tần
số thấp bằng cách cho thành phần này bằng
0. Do đó, biến đổi Wavelets ngược của 4
thành phần sẽ tạo ra ảnh chỉ có các cạnh và
đường biên. Nếu ảnh có bất cứ hình nào
được bao bởi các cạnh, thì đó chính là phần
giả mạo được dán lên ảnh. Ngược lại, thì
ảnh là ảnh thật chưa qua xử lý.
4. Kết quả mô phỏng
Hình 4. Ảnh cần giám định
Thực hiện mô phỏng giải thuật trên
Matlab cho ảnh giả copy – move.
Bước 1: Chuyển ảnh sang ảnh xám.
Bước 2: Thực hiện đa phân giải ảnh
bằng biến đổi Wavelets. Ảnh được tách
thành bốn thành phần là thành phần xấp xỉ
LL, thành phần chi tiết ngang LH, chi tiết
dọc HL và chi tiết chéo HH.
Hình 5. Theo thứ tự từ trái qua, từ trên xuống: Ảnh xấp xỉ và ảnh Negative
của các thành phần ngang, dọc, chéo
Bước 3: Tách biên với một ngưỡng lọc thích hợp và thực hiện toán tử hình thái giãn
nở trên từng thành phần chi tiết.
Hình 6. Theo thứ tự từ trái qua, từ trên xuống: Ảnh Negative các thành phần chi tiết
ngang, dọc và chéo sau khi thực hiện tách biên và giãn nở
Bước 4: Thực hiện phép biến đổi Wavelets ngược. Kết quả cho ra ảnh với các cạnh
khả nghi được viền đen, phần còn lại của ảnh sẽ có màu trắng.
VÕ MINH TIẾN - LÊ TIẾN THƯỜNG - HUỲNH KHẢ TÚ - MARIE LUONG
9
Hình 7. Ảnh Negative sau biến đổi Wavelets ngược
Bước 5: Xuất ra ảnh kết quả với phần ảnh giả mạo có các cạnh viền trắng
Hình 8. Ảnh kết quả ngõ ra sau khi thực hiện thuật toán
5. Hiện thực trên hệ thống nhúng
Phần này trình bày cách thiết lập một
hệ thống nhúng Raspberry hoàn chỉnh, các
bước cấu hình và kết quả thực hiện giải
thuật đa phân giải trên hệ thống. Với ứng
dụng không yêu cầu thời gian thực và các
phép toán cơ bản, Raspberry Pi 3B – sản
xuất năm 2016 được chọn vì tốc độ xử lý
khá nhanh với chip ARMv8 quad-core, 64-
bit, 1.2GHz, nhỏ gọn và kinh tế.
Hình 9. KIT Raspberry Pi 3B
Một đặc điểm của Raspberry là nó
không sử dụng đĩa cứng hoặc SSD nhằm
tối ưu hóa kích thước; thay vào đó board
sẽ sử dụng một thẻ nhớ SD để boot và
chứa dữ liệu. Tổ chức Raspberry cũng
cung cấp hai hệ điều hành để download là
Dibian và Arch Linux ARM. Những công
cụ này có thể sử dụng Python như ngôn
ngữ lập trình chính, đồng thời hỗ trợ BBC
BASIC (thông qua RISC OS image hoặc
Brandy Basic clone cho Linux), C, Java
và Perl.
A. Thiết lập hệ thống
Hệ thống được thiết lập gồm KIT
Raspberry Pi thế hệ 3B đóng vai trò trung
tâm, được cấp điện áp 5V qua cổng micro
USB.
H THỐNG NHÚNG HI N THỰC THUẬT TOÁN ĐA PHÂN GIẢI CHO ẢNH PHÁP CHỨNG
10
Raspberry Pi 3B
4× ARM Cortex-A53
1.2GHz
Monitor
Mouse Keyboard
SD card
HDMI
USB USB
SDIO
ETH
Hình 10. Sơ đồ kết nối hệ thống
Để hoạt động, cần có một thẻ nhớ
micro SD 8GB hoặc 16GB chứa một hệ
điều hành và đóng vai trò bộ nhớ lưu trữ
dữ liệu. KIT được kết nối với một màn
hình hiển thị thông qua cổng HDMI, giao
tiếp với chuột và bàn phím bằng chuẩn
USB. KIT có thể kết nối Ethernet qua cổng
RJ45 hoặc wifi 802.11n. Ngoài ra, nó còn
có thêm 2 cổng USB để kết nối USB drive
và các thiết bị ngoại vi khác.
Hình 11. Hệ thống Raspberry Pi thực tế:
KIT, monitor, mouse, keyboard
Để tiện sử dụng, người dùng có thể tùy
chọn cài đặt phần mềm remote desktop như
VNC và sử dụng một máy tính hay laptop
để điều khiển hệ thống mà không cần thiết
bị hiển thị hay chuột, bàn phím
B. Các bước cấu hình và hiện thực
thuật toán đa phân giải
Trong đề tài, Raspberry Pi 3B được cài
đặt hệ điều hành Raspbian, là một hệ điều
hành không tính phí, phát triển dựa trên hệ
điều hành Debian và được tối ưu cho phần
cứng Raspberry. Hệ điều hành có hơn
35000 package và phần mềm, hoàn thành
vào tháng 6 – 2012, được nén thành một bộ
giúp cho việc cài đặt trở nên dễ dàng hơn.
Để tiến hành xử lý ảnh trên hệ thống
nhúng, cần sử dụng một thư viện mở
OpenCV3.0. Thư viện có hơn 2500 thuật
toán tối ưu, gồm một tập hợp tổng quát
những thuật toán cổ điển và hiện đại về thị
giác máy tính và học máy. Những thuật toán
này có thể được sử dụng để phát hiện và
nhận dạng khuôn mặt, xác định vật thể,
phân loại hành động con người trong video,
theo dõi hoạt động camera và đối tượng, xác
định model 3D của đối tượng, và nhiều
thuật toán xử lý ảnh với độ phân giải cao.
Chương trình chạy trên Raspberry hỗ
trợ xử lý giám định nhiều file ảnh cùng lúc.
Khi xử lý xong, chương trình sẽ xuất ra file
kết quả dạng text và hiển thị ảnh gốc, ảnh
kết quả giám định. Các bước tiến hành
được trình bày như sau:
Bước 1: Copy ảnh vào một thư mục và
tạo một file Input_Image_List.txt chứa
danh sách các file ảnh cùng với định dạng
cần xử lý.
Bước 2: Tạo file code, complie, build
và chạy thực thi chương trình bằng cửa sổ
command theo trình tự sau.
Tạo file CmakeList.txt có nội dung
là đoạn cript chứa thông tin như: version
của OpenCV, tên project, tên thư viện, tên
file code thực thi, tên file thực thi output,
Link thư viện OpenCV.
Tạo file code chương trình.
Complie chương trình bằng lệnh
VÕ MINH TIẾN - LÊ TIẾN THƯỜNG - HUỲNH KHẢ TÚ - MARIE LUONG
11
“cmake”. Khi đó, chương trình sẽ tạo ra
các file CMakeCache.txt, Makefile,
cmake_install.cmake.
Build chương trình bằng lệnh
“make”, chương trình sẽ tạo ra file thực thi
ImageProcessing.
Thực thi chương trình bằng lệnh
“./ImageProcessing”.
Bước 3: Xuất ra kết quả và đánh giá.
Sau khi thực hiện, chương trình xuất ra file
kết quả cho biết những ảnh giả, ảnh thật; số
pixel cũng như thời gian xử lý cho từng
ảnh. Đồng thời, hiển thị trên màn hình ảnh
ngõ ra và ảnh sau khi xử lý với phần giả
mạo (nếu có) tô màu trắng.
Hình 12. Thực hiện giải thuật trên KIT,
kết quả hiển thị trên màn hình
C. Kết quả thực hiện
Kết quả thực hiện trên Raspberry:
Thực hiện giám định cho ảnh copy
– move như mô phỏng Matlab.
Hình 13. Ảnh kết quả ngõ ra sau khi thực
hiện thuật toán
Ảnh kết quả với phần ảnh giả mạo có
các cạnh viền trắng.
Thực hiện với ảnh thứ 2. Bằng mắt
thường, người xem khó mà phân biệt được
đây là ảnh giả hay ảnh gốc.
Hình 14. Ảnh ngõ vào xử lý
Ảnh kết quả cho thấy chỉ có một phần
rất nhỏ là phần cắt dán. Kết quả hoàn toàn
chính xác khi so sánh với ảnh gốc.
Hình 15. Ảnh ngõ ra với phần cắt dán với
màu trắng
Thực hiện cùng một thuật toán cho
một tập ảnh [3] trên hai máy tính laptop có
cấu hình, hệ điều hành, phần mềm khác
nhau. So sánh với kết quả thực hiện trên hệ
thống nhúng Raspberry Pi 3B.
H THỐNG NHÚNG HI N THỰC THUẬT TOÁN ĐA PHÂN GIẢI CHO ẢNH PHÁP CHỨNG
12
Bảng 1. Kết quả thực hiện
Cấu hình
Laptop 1
(Matlab
2015a)
Laptop 2
(Visual
Studio 12.0)
Raspberry
Pi 3B
(OpenCV +
Cmake)
Ghi Chú
Vi xử lý
Intel Core i5-
5200U @
2.2GHz
Intel Core i3
M330 @
2.13GHz
Broadcom
BCM2837,
1.2GHz 64-
bit quad-
core ARMv8
CPU
Bộ nhớ
4GB DDR3L
(1600 MHz)
4GB DDR3
1GB LPDDR2
(900 MHz)
Hệ điều
hành
Window
8.1, 64 – bit
Window 7,
32 - bit
Raspbian
Laptop 1 Laptop 2 Raspberry
flowers.tiff
(536x356)
14 198 41 96.77
CRW_4853
(739x492)
33 457 77 99.87
garden.jpg
(500x375)
27 207 34 99.73
Dynamid.jp
g (203x150)
3.6 15 3 97.95
2015_01_02
(593x321)
18 186 38 100
SA_MAC_01
(2048x1152)
40 7725 1730 100
SEA_05_00
(2560x1600)
65 16500 3412 100
Trung bình
51829
(pixel/giây)
260
(pixel/giây)
1270
(pixel/giây)
99.36 %
Ảnh
(size)
Thời gian xử lý (giây) Tỉ lệ %
giống
Kết quả cho thấy, tốc độ xử lý trên hệ
thống nhúng Raspberry nhanh hơn gấp 5
lần tốc độ xử lý trên laptop 2 chạy cùng
source code, nhưng chậm hơn trên laptop 1
chạy mô phỏng Matlab. Kết quả này hoàn
toàn phù hợp vì Laptop 1 có cấu hình mạnh
hơn rất nhiều so với Raspberry và phần
mềm sử dụng là khác nhau. Tuy nhiên, khi
chạy cùng một code, cùng một điều kiện
thì hệ thống nhúng Raspberry chứng tỏ khả
năng xử lý tốt hơn rất nhiều so với một
laptop không chuyên dụng cho xử lý ảnh.
Xét về kết quả hình ảnh sau khi xử lý,
Laptop 2 và hệ thống Raspberry sử dụng
cùng một chương trình với thư viện mã
nguồn mở OpenCV, nên kết quả ngõ ra là
hoàn toàn giống nhau. Để đánh giá sự sai
khác giữa kết quả mô phỏng trên Matlab và
kết quả trên Raspberry, cần so sánh tỉ lệ %
số pixel giống nhau Neq trên tổng số pixel
N của hai ảnh ngõ ra.
(8)
Thuật toán thực hiện trên Raspberry
cho ảnh ngõ ra gần giống như kết quả mô
phỏng trên Matlab với tỉ lệ chính xác cao
(trên 99%).
6. Kết luận
Bài viết giới thiệu hệ thống nhúng
Raspberry Pi và các bước hiện thực một
thuật toán trên hệ thống nhúng cụ thể.
Thuật toán đa phân giải cho ảnh pháp
chứng có thể phát hiện cả hai loại ảnh giả
copy – move và splicing, nhưng chưa thể
phát hiện các ảnh có xử lý tùy chỉnh độ
tương phản, histogram và các hiệu ứng
khác. Hệ thống nhúng Raspberry có khả
năng xử lý các ảnh có độ phân giải khá
cao, tốc độ xử lý tương đối nhanh và hoàn
toàn giống như kết quả mô phỏng trên
Matlab với độ chính xác cao khi thực hiện
trên tập nhiều ảnh copy-move và splicing
có kích thước khác nhau. Tuy nhiên, khi xử
lý những ảnh HD có độ phân giải cao, cũng
như trên máy tính, thường mất rất nhiều
thời gian để xử lý. Điều này đặt ra thách
thức là cần phát triển những hệ thống
nhúng đủ mạnh để có thể xử lý được các
ảnh này.
Thực hiện thuật toán đa phân giải trên
hệ thống nhúng Raspberry chỉ là nền tảng
bước đầu, việc tìm hiểu, cập nhật các phần
cứng mới, chuyên dùng cho xử lý ảnh như
NVIDIA Jetson TX1, tích hợp cả CPU
(ARM®Cortex®-A57 Quad-Core, tần số
1.73GHz) và GPU 256-core hỗ trợ hệ điều
hành Ubuntu Linux x64 (v14.04) là một
hướng nghiên cứu của đề tài. Bên cạnh đó,
đề tài cũng hướng tới việc tạo ra các giao
VÕ MINH TIẾN - LÊ TIẾN THƯỜNG - HUỲNH KHẢ TÚ - MARIE LUONG
13
diện tương tác giúp người dùng dễ dàng tiếp
cận và áp dụng vào các lĩnh vực khác nhau.
Như vậy, bên cạnh FPGA, Raspberry
Pi là một lựa chọn tốt cho các ứng dụng xử
lý ảnh thông thường. Hệ thống có giá thành
thấp, dễ dàng thiết lập và sử dụng, đặc biệt
phù hợp trong môi trường giáo dục.
Lời cảm ơn: Nghiên cứu này được hỗ trợ bởi ĐH
Quốc Gia TP.HCM, theo mã số B2015-20-02.
TÀI LIỆU THAM KHẢO
1. Cellan-Jones, Rory (5 May 2011), "A £15
computer to inspire young programmers",
ellanjones/2011/05/a_15_computer_to_inspire
_young.html
2. Daggu Venkateshwar Rao, Shruti Patil,
Naveen Anne Babu and V Muthukumar,
“Implementation and Evaluation of Image
Processing Algorithms on Reconfigurable
Architecture using C-based Hardware
Descriptive Languages”, International Journal
of Theoretical and Applied Computer Sciences
Volume 1 Number 1 (2006) pp. 9-34.
3. Fourandsix Technologies, Incorporated
official website,
4. Jessica Fridrich, David Soukal, and Jan
Lukáš, “Detection of Copy-Move Forgery in
Digital Images”, Digital Forensic Research
Workshop, Cleveland, Ohio, USA, 2003.
5. Neha. P. Raut, Prof.A.V.Gokhale, “FPGA
Implementation for Image Processing
Algorithms Using Xilinx System Generator”,
IOSR Journal of VLSI and Signal Processing
(IOSR-JVSP) Volume 2, Issue 4 (May. – Jun.
2013), PP 26-36.
6. Peter Mc Curry, Fearghal Morgan, Liam
Kilmartin. Xilinx FPGA implementation of a
pixel processor for object detection
applications. In the Proc. Irish Signals and
Systems Conference, Volume 3, Page(s): 346
- 349, Oct. 2001.
7. Pravin Kakar, Sudla and Wee Ser, “Exposong
Digital Image Forgeries by Detecting
Deoscrepancies in Motion Blur”, IEEE Transaction
on Multimidia, Vol.13, No.3, June 2011.
8. Raspberry Pi Foundation website,
https://www.raspberrypi.org/
9. Tian-Tsong Ng, Shih-Fu Chang, Qibin Sun,
“Blind Detection Of Photomontage Using
Higher Order Statistics”, ISCAS '04.
Proceedings of the 2004 International
Symposium on Circuits and Systems, 2004.
10. Tu Huynh-Kha, Thuong Le-Tien, Khoa
Huynh-Van, Sy Nguyen-Chi, “A survey on
Image Forgery Detection Techniques”, The
11
th
IEEE-RIVF International Conference on
Computing and Communication Technologies,
Can Tho, Vietnam, Jan 25-28 2015.
11. Tu Huynh-Kha, Thuong Le-Tien, Synh Ha-
Viet-Uyen, Khoa Huynh-Van, Marie Luong,
“A Robust Algorithm of Forgery Detection in
Copy-Move and Spliced Images”, (IJACSA)
International Journal of Advanced Computer
Science and Applications, Vol. 7, No. 3, 2016.
12. Tu H.K., Thuong L.T., Synh H.V.U., Khoa
H.V., Nga L.T., "Forgery Detection and
Identification of the Original and Duplicate
Region in Copy-Move Images", The
International Symposium on Electrical and
Electronics Engineering, HCMC, Vietnam,
Oct 30, 2015.
13. Weiqi Luo, Jiwu Huang, Guoping Qiu,
“Robust Detection of Region-Duplication
Forgery in Digital Image”, 18th IEEE
International Conference on Pattern
Recognition, Hong Kong, p. 746 – 749, 2006.
14. XiaoBing KANG, ShengMin WEI,
“Identifying Tampered Regions Using
Singular Value Decomposition in Digital
Image Forensics”, IEEE International
Conference on Computer Science and
Software Engineering, Wuhan, Hubei, p. 926
– 930, 2008.
15. Y.Sutcu, B.Coskun, H.T.Sencar, N.Memmon,
“Tamper detection based on regularity of Wavelets
transform coefficients”, IEEE International
Conference on Image Processing, 2007.
16. Zhen Fang, Shuozhong Wang, Xinpeng
Zhang, “Image Splicing Detection Using
Camera Characteristic Inconsistency”,
MINES '09. International Conference on
Multimedia Information Networking and
Security, Hubei, 2009.
Ngày nhận bài: 12/12/2016 Biên tập xong: 15/3/2017 Duyệt đăng: 20/3/2017
Các file đính kèm theo tài liệu này:
- 104_9525_2215156.pdf