Nghiên cứu này tiếp cận theo phương pháp máy học để từ đó có thể phát hiện tự động những website chứa hình ảnh khiêu dâm và văn bản có nội dung đồi trụy. Cụ thể, sử dụng giải thuật SVM để phân lớp hình ảnh dựa vào phân loại màu da cải tiến và Naïve Bayes để phân lớp văn bản.
Trang 1Phân loại web đồi trụy dựa vào văn bản và hình ảnh
Pornographic web classification based on text and images
Phạm Thị Hường 1 , Nguyễn Văn Thanh 2
Email: phamthihuongdtth@gmail.com
1
Trường Đại học Sao Đỏ
2
Trường THPT Châu Thành
Ngày nhận bài: 15/6/2018 Ngày nhận bài sửa sau phản biện: 23/11/2018
Ngày chấp nhận đăng: 27/12/2018
Tĩm tắt
Nghiên cứu này tiếp cận theo phương pháp máy học để từ đĩ cĩ thể phát hiện tự động những website chứa hình ảnh khiêu dâm và văn bản cĩ nội dung đồi trụy Cụ thể, sử dụng giải thuật SVM để phân lớp hình ảnh dựa vào phân loại màu da cải tiến và Nạve Bayes để phân lớp văn bản Kết quả cho thấy mơ hình đề xuất cĩ độ chính xác phân lớp cao hơn một số phương pháp đã cơng bố
Từ khĩa: Máy vector hỗ trợ; phân lớp văn bản; phân lớp hình ảnh; Nạve Bayes; phân loại web.
Abstract
This study approaches a machine learning method to automatically detect websites containing pornographic images and texts Specifically, SVM is used to image classify based on the improved skin color classification, and Nạve Bayes is used to text classify The results show that the proposed model has higher classification accuracy than some published methods
Keywords: Support vector machine; text classification; image classification; Nạve Bayes; web classification.
1 GIỚI THIỆU
Người phản biện: 1 GS.TSKH Thân Ngọc Hồn
2 TS Đặng Hồng Hải
Thực tế hiện nay, số lượng thanh thiếu niên suy
đồi đạo đức cũng như phạm tội ngày càng tăng
cao Một trong những nguyên nhân đĩ là do ảnh
hưởng từ những thơng tin khơng lành mạnh tràn
lan trên internet, lượng lớn thơng tin đĩ chưa được
phân loại hay kiểm sốt để giúp người sử dụng
tránh truy cập những thơng tin xấu Nghiên cứu
về phân loại web đồi trụy ở trong nước cũng như
trên thế giới đã cĩ những kết quả cụ thể và ứng
dụng trong thực tế: cơng cụ chặn website khiêu
dâm của nước ngồi như STOP P-O-R-N của
PB Software LLC, Media Detective; CyberSitter
của Solid Oak Software; iShield và ScreenShield
Enterprise của Guardware, Trong nước cĩ cơng
cụ chặn web đen Killporn của tác giả Nguyễn Hữu
Bình, VwebFilter (VWF), Depraved Web Killer
(DWK) của tác giả Vũ Lương Bằng, MiniFireWall
4.0 (MFW) của tác giả Huỳnh Ngọc Ẩn [11] Theo
hướng tiếp cận máy học về phân loại web đồi trụy
đã cĩ một số nghiên cứu trên thế giới Theo [12],
tác giả sử dụng SVM để phân tích ngữ nghĩa nhằm
tìm mối quan hệ ngữ nghĩa giữa các từ khĩa và
giữa các tài liệu web, sau đĩ mơ hình hĩa chúng dạng vector nhằm phân lớp văn bản, sử dụng phân tích ngữ nghĩa tiềm ẩn (LSA) và đặc trưng trang web (WPFS) để trích chọn các đặc trưng ngữ nghĩa và văn bản Kết quả phân lớp cĩ giá trị TP trung bình cho hai phương pháp là 96,5%, chưa phân lớp hình ảnh trong trang web Theo [13], tác giả đưa ra phương pháp phát hiện nội dung web khiêu dâm sử dụng TF-IDF tính trọng số của một
từ hoặc nhĩm từ để thống kê mức độ quan trọng của chúng trong một văn bản tiếng Anh và tiếng Nga Kết quả phân loại tiếng Anh sử dụng Nạve Bayes cĩ độ chính xác phân lớp trung bình 92,9%, thời gian trích chọn đặc trưng cho mỗi tài liệu tiếng Anh khá lớn (2,7 giây) Theo [14], tác giả sử dụng SVM với đặc trưng dựa trên thống kê về kết cấu
và màu sắc của một hình ảnh, tính score để xác định hình ảnh cĩ phải khiêu dâm trẻ em khơng,
sử dụng các visual words cùng tăng cường màu sắc DCT để biểu diễn hình ảnh, kết quả cĩ tỷ lệ lỗi trong phạm vi 11-24% Theo [15], tác giả sử dụng trí tuệ nhĩm trong nhật ký click qua cơng cụ tìm kiếm dựa trên ý tưởng “Hành vi nhấp chuột trên các trang khiêu dâm phản ánh ý định tìm kiếm khiêu dâm của người dùng” và những người dùng khác nhau thường sử dụng các truy vấn như nhau
Trang 2để tìm nội dung khiêu dâm trên web Từ đĩ, tập
hợp số lượng các nhấp chuột của người dùng và
mối tương quan giữa các truy vấn hay URL để
đề xuất phương pháp truyền bá nhãn trên đồ thị
lưỡng phân cĩ trọng số, điều này làm cơ sở xác
định một trang web cĩ nội dung khiêu dâm hay
khơng Tác giả sử dụng phân loại văn bản bằng cả
SVM và Nạve Bayes bổ sung đặc trưng là điểm
khiêu dâm (pornography score – PS) để làm tăng
hiệu quả tìm kiếm Kết quả cài đặt trên ngơn ngữ
tiếng Anh và tiếng Trung cĩ giá trị TP tương ứng là
91% và 94% Theo [16], tác giả sử dụng SVM để
phân loại văn bản và hình ảnh trong web Cụ thể,
sử dụng đặc trưng màu da để phát hiện hình ảnh
khiêu dâm và tần suất các thuật ngữ khiêu dâm so
với tổng số văn bản, khoảng thời gian và mức độ
của các thuật ngữ khiêu dâm Kết quả thử nghiệm
cho độ chính xác phân loại văn bản là 95,8% và
độ chính xác phân loại hình ảnh là 84% Ngồi ra,
độ chính xác của phân loại trang web sau khi hợp
nhất thành một bộ lọc gồm cả văn bản và hình ảnh
là 91,8% Theo [17], tác giả đưa ra phương pháp
lọc web thơng thường, dựa trên phân lớp văn bản
sử dụng URL Phương pháp này chỉ yêu cầu các
tập huấn luyện cho lớp tốt và do đĩ khơng phải
xây dựng và duy trì tập huấn luyện lớp xấu Tuy
nhiên, chưa phân lớp được hình ảnh, phân lớp
văn bản mới chỉ dựa trên URL mà khơng dựa vào
nội dung, việc khơng quan tâm đến huấn luyện
lớp xấu cũng là hạn chế cho phân lớp web đồi
trụy vốn cần quan tâm lớp xấu để chặn Theo [18],
tác giả trích chọn đặc trưng là vùng da từ ảnh và
tìm mối tương quan giữa vùng đĩ là da hay khơng
phải da, sử dụng SVM để xác định xem một hình
ảnh cĩ là ảnh khiêu dâm hay khơng Kết quả thực
nghiệm cho độ chính xác 75% Theo [19], tác giả
đề xuất mơ hình phân loại dựa trên kỹ thuật học
sâu Việc trích chọn đặc trưng và phân loại bằng
mạng nơron tích chập nhiều lớp làm cho việc tạo
các đặc trưng và bộ phân loại khơng phải thực
hiện thủ cơng Cụ thể, nghiên cứu tập trung vào
tín hiệu thị giác là hình thức khiêu dâm nổi bật
nhất và hệ thống học sâu tự động phân tích hình
ảnh (và khung hình video) trước khi phân loại nội
dung là bình thường hay khiêu dâm Kết quả thực
nghiệm đạt tỷ lệ phân loại trên 94%
Tại Việt Nam, theo [3], tác giả sử dụng SVM
để phân lớp nội dung văn bản trong trang web
Thực nghiệm được tiến hành trên bộ dữ liệu mẫu
20-newsgroups (là bộ dữ liệu dành cho các thí
nghiệm trong các ứng dụng phân lớp văn bản)
với độ chính xác trung bình 94%, chưa phân lớp
hình ảnh Về phân lớp web chứa cả hình ảnh và
nội dung văn bản, theo [4], sử dụng thuật tốn
SVM để phân lớp văn bản và hình ảnh Cụ thể, tác
giả biểu diễn ảnh bằng đặc trưng SIFT và dùng
mơ hình bag of words (BoW) để thực hiện kết tập các đặc trưng cục bộ SIFT đĩ Với phân loại văn bản, tác giả chọn các đặc trưng để phân loại là ngưỡng tần suất văn bản (Document Frequency thresholding –DF) Theo cách tiếp cận này, việc đếm số lượng văn bản cĩ chứa từ cấm đơn giản nhưng độ chính xác chưa cao (93,65%) và phân lớp hình ảnh dựa vào đặc trưng SIFL cĩ độ chính xác 76,3255%
Đa phần những cơng cụ cung cấp bởi các nhà phát triển nước ngồi đều phải trả phí, một số nghiên cứu phân loại web chỉ dựa trên từ khĩa, URL, chưa phân loại cả văn bản và hình ảnh, một
số hạn chế về thời gian phân lớp hay độ chính xác,… Một số cơng cụ trong nước nhưng chưa được sử dụng rộng rãi và cịn một số hạn chế như: DWK, VFW chặn website dựa vào những
từ khĩa thơng dụng cĩ trong nội dung trang web hoặc chặn những URL cụ thể, điều này cĩ thể dẫn đến là phần mềm chặn nhầm website bởi thực tế địa chỉ của một số website cĩ nội dung khiêu dâm thường thay đổi Mặt khác, người dùng khơng thể liệt kê ra hết những từ khĩa và địa chỉ website cần cấm truy cập Nghiên cứu này tiếp cận theo phương pháp máy học để phát hiện tự động những website chứa hình ảnh khiêu dâm bằng kỹ thuật SVM và website chứa văn bản cĩ nội dung đồi trụy bằng giải thuật Nạve Bayes Kết quả nghiên cứu cho thấy hiệu quả của đề xuất
2 NỘI DUNG NGHIÊN CỨU 2.1 Bài tốn phân lớp dữ liệu web
Phân lớp dữ liệu là xếp đối tượng dữ liệu vào một trong các lớp đã xác định trước Phân lớp
dữ liệu gồm hai bước là xây dựng mơ hình và vận hành mơ hình Cho sẵn một tập dữ liệu các trang web được gán nhãn là web đồi trụy hay bình thường gọi tắt là lớp xấu và lớp tốt, cần một phương pháp huấn luyện để xây dựng một mơ hình phân lớp từ tập dữ liệu mẫu đĩ, sau đĩ dùng
mơ hình này dự đốn lớp của những trang web mới chưa biết nhãn
2.2 Phân lớp hình ảnh trong web
2.2.1 Giải thuật SVM
Cho trước một tập huấn luyện được biểu diễn trong khơng gian vector, phương pháp này tìm ra một siêu phẳng quyết định tốt nhất cĩ thể để chia các điểm trong khơng gian này thành hai lớp riêng biệt Phương pháp này yêu cầu dữ liệu được diễn
tả như các vector của số thực [5]
Trang 32.2.2 Huấn luyện SVM
Huấn luyện SVM thực chất là việc giải bài toán
quy hoạch toàn phương, yêu cầu phải lưu một ma
trận có kích thước bằng bình phương số lượng
mẫu huấn luyện Trong thực tế, điều này là không
khả thi vì thông thường số lượng mẫu huấn luyện
lớn Có nhiều thuật toán được phát triển để giải
quyết bài toán trên Những thuật toán này dựa
trên việc phân rã tập huấn luyện thành những
nhóm dữ liệu nhỏ hơn, nghĩa là thay vì giải bài
toán toàn phương có kích thước lớn thì đi giải
những bài toán toàn phương có kích nhỏ hơn
Sau đó, những thuật toán này kiểm tra điều kiện
để xác định phương án tối ưu Một trong những
thuật toán dùng để giải bài toán toàn phương là
Sequential Minimal Optimization – SMO do Platt
đưa ra năm 1999
2.2.3 Phân đoạn màu da
Phát hiện da là một bước quan trọng đầu tiên
trong việc phát hiện ảnh, được sử dụng làm cơ
sở cho việc phát hiện hình ảnh có nội dung đồi
trụy Mục tiêu của phát hiện màu da là xây dựng
một bộ quy tắc quyết định sẽ phân biệt màu của
một điểm ảnh (pixel) là màu da (skin color) hay là
không phải da (non-skin color) dựa trên các thành
phần màu sắc
2.2.3.1 Mô hình phát hiện màu da trong không
gian màu YcrCb
Không gian màu YcbCr được biểu diễn bằng
ba giá trị Thành phần Y đại diện cho cường độ
của ánh sáng Hai thành phần Cb và Cr cho biết
cường độ của các thành phần màu xanh và đỏ so
với thành phần màu xanh lá cây Mô hình cho bởi
công thức xác định điều kiện để một điểm ảnh có
màu là màu da khi và chỉ khi thỏa mãn điều kiện:
85 ≤ Cb ≤ 135, 135 ≤ Cr ≤ 180, Y ≥ 80 (1)
2.2.3.2 Mô hình phát hiện màu da trong không
gian màu HSV
Không gian màu HSV do A.R Smith đề xuất năm
1978, còn gọi là không gian màu HSB, là một
không gian màu dựa trên ba số liệu: H (Hue): Sắc
thái (0=H=360) S (Saturation): Ðộ bão hòa màu
(0=S=1) B (Brightness) hay V (Value): Ðộ sáng
(0=V=1) Mô hình cho bởi công thức xác định điều
kiện để một điểm ảnh có màu là màu da khi và chỉ
khi thỏa mãn điều kiện:
0<H<50, 0.23<S<0.68, 0≤V≤1 (2)
2.2.3.3 Mô hình phát hiện màu da của tác
giả Kovac
Trong điều kiện chiếu sáng là ánh sáng ban ngày
được cho bởi công thức:
(R>95) và (G>40) và (B>20) và (max{R,G,B}) -min{R,G,B}>15 và (|R-G|>15) và (R>G) và (G>B)(3) Trong điều kiện chiếu sáng là ánh sáng đèn thì cho bởi công thức:
(R>220)và(G>210)và (B>170)và (max{R,G,B}-min{R,G,B}>15) và (|R-G|<15) và (R>B) và (G>B) (4)
Ðể kết hợp chung hai điều kiện chiếu sáng khác nhau ta sử dụng phép toán OR
2.2.3.4 Mô hình phát hiện màu da dựa vào phân phối histogram
Là mô hình xác định màu da dựa vào phân phối histogram của các thành phần màu trong không gian màu RGB và quy tắc phân lớp Trong mô hình này sử dụng 14,985,845 skin pixels (điểm ảnh màu da) và 304,844,751 non-skin pixels (điểm ảnh không phải màu da) để tạo ra RGB histogram với kích thước 32*32*32 cho điểm ảnh
da và không da (mỗi thành phần r, g, b được phân phối vào biểu đồ màu có 32 bins) Với mỗi bin cụ thể, ta tính log likelihood để phân lớp:
Trong đó H(rgb), h(rgb) tương ứng là số skin pixels
và non-skin pixels có trong bin rgb tương ứng của biểu đồ màu Với mỗi điểm ảnh rgb sẽ rơi vào 1 bin trong 32*32*32 bin của mô hình, khi một điểm ảnh rgb được phân lớp là màu da khi thỏa mãn công thức (4) Trong nghiên cứu này tác giả sử
dụng file mô hình màu da “skinmodel.bin”(https://
github.com/zhouxc/Adult-WebSite-Classifier )
Tuy nhiên, không có một mô hình phát hiện da nào là chính xác 100%, các vùng ảnh chứa da rất “trơn” (không chứa biên của ảnh) và hình ảnh thuộc lớp “xấu” thường là những hình chứa những vùng da có kích thước lớn, từ đó tác giả
đề xuất thuật toán cải tiến để phát hiện màu da của ảnh
Thuật toán cải tiến:
Input: ảnh input_Image (ảnh đen trắng) Output: ảnh output_Image (ảnh đen trắng) chứa màu da được xác định
Bước 1: Phát hiện da của ảnh input_Image sử
dụng một trong 4 mô hình phát hiện da, thu được ảnh Skin_Image
Bước 2: Phát hiện biên của ảnh (sử dụng thuật
toán Canny) thu được ảnh Edges_Image
Trang 4Bước 3: Loại bỏ những điểm ảnh là “da” trên
Skin_Image mà thuộc ảnh Edges_Image thu
được ảnh Skin_Image1
Bước 4: Sử dụng phép toán hình thái OPEN với
mẫu B đối với ảnh Skin_Image1 để loại bỏ những
liên kết yếu giữa các vùng có màu “da” trong ảnh
Skin_Image1.
Bước 5: Gán nhãn cho từng vùng da trong ảnh
Skin_Image1 và đồng thời loại bỏ những vùng da
nhỏ (≤100 pixels) thu được Skin_Image2
Bước 6: Sử dụng phép toán hình thái CLOSE
với mẫu B đối với ảnh Skin_Image1 để thu được
ảnh đầu ra là output_Image
B =
2.2.4 Phân lớp hình ảnh nude
Hình ảnh đồi trụy (nude) thường là những hình
ảnh có tỉ lệ phát hiện “màu da” lớn so với những
hình ảnh bình thường (hình ảnh thuộc lớp “tốt”),
nhân vật trong hình thường nằm vị trí trung tâm
của hình ảnh Nhân vật trong hình nude thường
là phụ nữ để hở những bộ phận “nhạy cảm” Mô
hình phân lớp ảnh được đề xuất như hình 1 Trong
hình 1, giá trị 0, 1 để chỉ hình ảnh được phân
tương ứng vào lớp hình ảnh “tốt” và “xấu” Một
hình có thể phân lớp “sớm” (phân lớp mà không cần thông qua mô hình SVM để dự đoán) xảy ra nếu thuộc một trong bốn trường hợp sau:
(i) Phát hiện có xuất hiện hình vòng 1 trong ảnh thì kết luận ảnh nude (ảnh “xấu”)
(ii) Số khuôn mặt phát hiện trong ảnh ≥3
(iii) Không thỏa (i) và (ii) và có diện tích khuôn mặt lớn nhất ≥30% diện tích của ảnh thì ảnh not nude (ảnh “tốt”)
(iv) Không thỏa (i) và (ii) và (iii) và có SPI (tỉ lệ % màu da) ≥40 và có tồn tại khuôn mặt thì ảnh nude
2.2.5 Phát hiện vòng 1
Để giải quyết trường hợp (i) tác giả sử dụng
mô hình cascadebreast1981.xml sử dụng trong OpenCV phát hiện vòng 1 với nguồn:http://
e n.p ud n.co m/dow nloads180/so ureco de/ windows/detail836282_en.html Kết quả là vị trí vòng 1 trong ảnh đầu vào
2.2.6 Phát hiện khuôn mặt
Mặc dù hình ảnh thuộc lớp “xấu” thường là những hình ảnh chứa những khuôn mặt ở những tư thế rất khó phát hiện bởi các thuật toán phát hiện khuôn mặt Để phát hiện khuôn mặt trong nghiên cứu này sử dụng mô hình phát hiện khuôn mặt của Viola và Jones được tích hợp sẵn trong OpenCV Trong mô hình phát hiện khuôn mặt này thường phát hiện tốt những khuôn mặt chính diện, do
đó việc phát hiện khuôn mặt giải quyết được các trường hợp (ii), (iii) và (iv)
Hình 1 Mô hình phân lớp hình ảnh
Trang 5Độ do entropy của biểu đồ màu histogram
Mỗi thành phần R, G, B của mỗi hình ảnh sẽ được phân phối vào biểu đồ histogram với 32 bin Giả
sử p1,p2,…p32 là các giá trị nguyên tương ứng với các bin trong biểu đồ màu histogram của mỗi thành phần x (xϵ{R,G,B}) của hình ảnh Khi đĩ giá trị entropy H(x) của mỗi thành phần được tính bằng cơng thức sau:
(5)
2.2.8 Huấn luyện và phân lớp hình ảnh bằng
mơ hình SVM
2.2.8.1 Huấn luyện
Cơ sở dữ liệu hình ảnh thu thập tại http:// sourceforge.net/projects/imagecrawler sau đĩ tiến hành gán nhãn lớp cho mỗi hình ảnh, mỗi hình ảnh phân vào một trong hai lớp là lớp hình nude (hình ảnh cĩ nội dung đồi trụy) và lớp hình not nude (hình ảnh khơng chứa nội dung đồi trụy) Tập hình ảnh này gọi là tập huấn luyện Trong nghiên cứu này, tác giả sử dụng 6556 hình ảnh not nude và 3905 hình ảnh nude làm cơ sở dữ liệu huấn luyện mơ hình SVM Tiến hành trích chọn đặc trưng của mỗi hình ảnh (trừ những hình ảnh được phát hiện sớm là thuộc lớp nào trong 2 lớp
đã định), mỗi hình ảnh được trích chọn gồm 27 đặc trưng biểu diễn thành một vector cĩ 28 chiều (27 chiều ứng với 27 đặc trưng và chiều thứ 28
là nhãn lớp tương ứng) Kết thúc quá trình trích chọn đặc trưng thu được một cơ sở dữ liệu lưu trữ vector đặc trưng của tập dữ liệu hình ảnh huấn luyện Sau đĩ tiến hành huấn luyện mơ hình SVM
(sử dụng thư viện libsvm link: http://www.csie.ntu.
edu.tw/~cjlin/libsvm/ để cài đặt).
2.2.8.2 Phân lớp
Kết quả của quá trình huấn luyện ta thu được mơ hình SVM Để phân lớp một hình ảnh mới (chưa
cĩ trong tập huấn luyện), tiến hành trích chọn vector đặc trưng của hình ảnh và áp vào mơ hình SVM đã huấn luyện để phân lớp hình ảnh
2.3 Phân lớp văn bản
2.3.1 Phương pháp Nạve Bayes
Phân loại Nạve Bayes đơn giản là phương pháp phân loại sử dụng tri thức các xác suất đã qua huấn luyện Phương pháp này thích hợp với những lớp bài tốn địi hỏi phải dự đốn chính xác lớp của mẫu cần kiểm tra dựa trên những thơng tin từ tập huấn luyện ban đầu [5]
2.2.7 Trích chọn đặc trưng
Tỉ lệ phần trăm màu da (kí hiệu SPI): Sự khác biệt
lớn nhất giữa hình nude và hình not nude ta nhận
thấy đĩ hình nude cĩ số lượng điểm ảnh cĩ màu
da chiếm một tỉ lệ lớn so với kích thước bức ảnh,
trong khi đĩ hình ảnh bình thường (not nude) đa
phần là những hình ảnh cĩ tỉ lệ màu da nhỏ (trừ
một số trường hợp ảnh bình thường cĩ tỉ lệ điểm
ảnh cĩ màu da lớn như: ảnh khuơn mặt chụp cận
cảnh, ảnh phụ nữ mặc bikini, hoặc là ảnh của các
vật chất khác (khơng phải da người) nhưng cĩ
màu sắc giống da người)
Tỉ lệ phần trăm vùng da lớn nhất (kí hiệu SPR0):
Tỉ phần phần trăm của vùng da lớn nhất sẽ đĩng
vai trị quan trọng trong trường hợp phân biệt sự
khác nhau giữa những bức ảnh cĩ tỉ lệ phần trăm
màu da xấp xỉ nhau
Số lượng vùng da (kí hiệu NSR): Sau khi áp dụng
thuật tốn phân khúc màu da, thực hiện loại bỏ đi
những vùng da cĩ kích thước nhỏ (≤100 pixels),
những vùng da nhỏ thường gây nhiễu và khơng
cĩ ý nghĩa trong phân lớp, do đĩ chỉ đếm những
vùng da cĩ kích thước lớn
Tỉ lệ phần trăm da của 16 vùng da: Các hình ảnh
nude đa phần những nhân vật nằm trung tâm bức
ảnh, các vùng da phát hiện thường phân bố liền
nhau và cĩ xu hướng các vùng cĩ màu da phân
bố theo một hướng kéo dài, trong khi đĩ những
hình ảnh bình thường nếu cĩ nhiều vùng da thì
các vùng da này thường phân bố rời rạc khơng
liên tục nhau Vì vậy, một hình ảnh sau khi phát
hiện màu da xong cĩ kích thước 256*256 sẽ phân
chia thành 16 vùng (4*4 vùng) để tính tỉ lệ màu da
của 16 vùng da tương ứng của ảnh (kí hiệu SPRi
(i = 1, 2,…, 16))
Trung bình và độ lệch của các thành phần màu
R, G, B
Từ các mơ hình nhận dạng màu da, chúng ta nhận
thấy rằng các điểm ảnh cĩ màu sắc giống màu
da khi các thành phần màu trong khơng gian màu
tương ứng nằm trong một phạm vi nhất định Do
đĩ, những hình ảnh cĩ chứa số lượng điểm ảnh
cĩ màu sắc giống màu da nhiều thì giá trị trung
bình của các điểm ảnh theo từng kênh màu cũng
sẽ rơi vào một ngưỡng nhất định Độ lệch chuẩn
sẽ cĩ giá trị trong việc phân lớp là những hình
nude thường ít cĩ sự thay đổi màu sắc đột ngột,
do đĩ giá trị độ lệch chuẩn sẽ thấp và ngược lại
Trang 62.3.2 Mơ tả bài tốn phân lớp văn bản
Cho tập huấn luyện:
X = {di,ci}, i = 1,2,…, n; di Є D={d1,d2,…,dm},ci Є C =
{1,-1}, trong đĩ D là tập hợp chứa N văn bản với
mỗi văn bản được biểu diễn dưới dạng một vector
m chiều, mỗi chiều của văn bản là một token (từ
đơn hoặc từ ghép) di=(w1,w2,…,wm); tập C là tập
nhãn với quy định 1 là nhãn của lớp các văn bản
cĩ nội dung đồi trụy, -1 là lớp các văn bản cĩ nội
dung khơng đồi trụy Bài tốn đặt ra: cho một văn
bản d mới (d ∉ D), cho biết văn bản d được phân
vào lớp nào trong hai lớp 1 và -1 Nĩi cách khác là
tìm ánh xạ f để f(d)Є{1,-1} Văn bản phân lớp gồm
ngơn ngữ tiếng Anh: là loại hình biến cách biến
đổi nguyên âm và phụ âm ở trong hình vị Ý nghĩa
từ vựng và ý nghĩa ngữ pháp dung hợp ở trong
từ nhưng khơng thể tách bạch phần nào biểu thị
ý nghĩa từ vựng, phần nào biểu thị ý nghĩa ngữ
pháp nên gọi là các ngơn ngữ “hịa kết” biến hình
Ngơn ngữ biến hình cĩ cả các phụ tố, mỗi phụ tố
cĩ thể đồng thời mang nhiều ý nghĩa và ngược lại,
cùng một ý nghĩa cĩ thể diễn đạt bằng nhiều phụ
tố khác nhau Ngơn ngữ tiếng Việt: Một từ luơn cĩ
hình thức khơng biến đổi trong mọi trường hợp
Quan hệ ngữ pháp và ý nghĩa ngữ pháp biểu thị
chủ yếu bằng hư từ và trật tự từ
2.3.2.1 Tiền xử lý văn bản
Tiền xử lý văn bản là quá trình chuyển đổi một
văn bản ban đầu sang một văn bản mới thuần túy
(text), tức loại bỏ các thành phần hình ảnh, các
tag trong trang web, các thơng tin định dạng Để
thống nhất thì tất cả các văn bản đều được chuyển
sang định dạng unicode-utf8 Ðể thực hiện được
điều này cĩ thể sử dụng tiện ích Unikey, trong
nghiên cứu này sử dụng cơng cụ UTF8 Unicode
tại: http://www.softpedia com/get/ScienceCAD/
UTF-8converter.shtml
Ngồi ra, ta cần loại bỏ đi những kí tự tab,
enter, số, và các kí tự đặc biệt khác như:
“<>,./?;:’~!@#$%^&*()*+-\=” Quá trình này được
thực hiện một cách tự động
2.3.2.2 Tách từ
Tách từ nhằm mục đích xác định ranh giới từ trong
câu, tức là quá trình xác định từ đơn, từ ghép
Ðối với tiếng Anh, việc xác định ranh giới từ là
việc xác định khoảng trắng phân cách giữa các từ
với nhau hoặc là từ kết thúc bằng dấu chấm câu
Trong tiếng Việt, khi xử lý tách từ gặp khĩ khăn vì
nghĩa của từ cĩ liên quan đến trật tự từ Cĩ thể kể đến một số phương pháp tách từ như: so khớp từ dài nhất, so khớp cực đại, mơ hình Markov, học dựa trên sự cải biến, chuyển đổi trạng thái trọng
số hữu hạn Ðể giải quyết bài tốn này, tác giả sử dụng cơng cụ tách từ vnTokenizer của tác giả Lê Hồng Phương [6]
2.3.2.3 Loại bỏ hư từ (stop word)
Thực từ là những từ cĩ khả năng một mình tạo thành câu, một mình làm phần nêu hoặc phần báo trong phần chính của câu, cĩ chức năng gọi tên
sự vật, thuộc tính sự vật [1]
Hư từ khơng cĩ chức năng định danh, khơng cĩ khả năng độc lập làm thành phần câu, dùng để biểu thị các quan hệ ngữ nghĩa - cú pháp khác nhau giữa các thực từ [2] Hư từ phổ biến trong cả ngơn ngữ tiếng Anh lẫn tiếng Việt
2.3.2.4 Tạo danh sách từ vựng
Từ cơ sở dữ liệu văn bản thu thập trực tuyến và gán nhãn lớp cho mỗi văn bản, mỗi văn bản thuộc lớp “xấu” chứa những văn bản đồi trụy và lớp “tốt” chứa những văn bản khơng chứa nội dung đồi trụy Tiến hành trích chọn ra các thực từ xuất hiện trong cả 2 lớp trong cơ sở dữ liệu văn bản huấn luyện với một ngưỡng cho trước
2.3.2.5 Huấn luyện và phân lớp văn bản bằng Nạve Bayes
Huấn luyện Nạve Bayes: Huấn luyện Nạve Bayes
thực chất là quá trình tính xác suất xuất hiện của mỗi từ trong danh sách từ vựng được tạo ra
Phân lớp Nạve Bayes: Với một văn bản mới cần
phân lớp, ta trích chọn những thực từ cĩ xuất hiện trong danh sách từ vựng, sau đĩ áp dụng kỹ thuật phân lớp Nạve Bayes
3 KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN 3.1 Thu thập dữ liệu
3.1.1 Dữ liệu hình ảnh
Thu thập dữ liệu hình ảnh tại http://sourceforge net/projects/imagecrawler Tiếp theo, tiến hành phân loại các hình ảnh vào hai lớp gồm lớp hình nude (hình ảnh đồi trụy từ nhiều châu lục khác nhau) và lớp hình ảnh khơng nude (hình ảnh khơng chứa nội dung đồi trụy bao gồm hình ảnh
về các chủ đề khác nhau: người, động vật, thực vật,…) Kết quả tập hợp các hình ảnh thu được phân thành các tập sau:
Trang 73.1.2 Dữ liệu văn bản
Thu thập dữ liệu văn bản từ các website tiếng Việt
đối với văn bản tiếng Việt, đối với văn bản tiếng
Anh tải trực tiếp từ website http:// www.textfiles.com
với nhiều chủ đề đã phân loại sẵn như: food, fun, message, erotica,…
Bảng 2 Bộ dữ liệu văn bản
Số file lớp “xấu”
Số file lớp
“tốt”
Tổng số file
Dung lượng (MB)
Số file lớp “xấu”
Số file lớp “tốt”
Tổng số file
Dung lượng (MB) Tiếng Việt 329 331 660 2.48 163 166 329 1.28 Tiếng Anh 390 341 731 14.6 302 362 644 12.7
3.2 Kết quả nghiên cứu
Cài đặt trên máy tính hệ điều hành Window8, 32
bits, CPU Core I5, 2.5Ghz, ngôn ngữ lập trình
Python 2.7 và sử dụng một số thư viện hỗ trợ:
OpenCV, libsvm, Numpy, PIL, scipy, codecs,
matplotlib và công cụ tách từ tiếng Việt vnTokenizer
của tác giả Lê Hồng Phương
3.2.1 Phát hiện màu da
Trước tiên, cần đánh giá độ chính xác giữa các
mô hình phát hiện màu da Để đánh giá, sử dụng
cơ sở dữ liệu dùng để phân đoạn màu da “Skin
Segmentation Dataset” cung cấp bởi Rajen Bhatt,
Abhinav Dhall, UCI Machine Learning Repository
để chọn ra mô hình phát hiện màu da tốt nhất nhằm nâng cao độ chính xác dự đoán của mô hình phân
lớp ảnh: (https://archive ics uci.edu/ml/datasets/
SkinSegmentation#) Skin Segmentation Dataset
là một cơ sở dữ liệu có kích thước 245057x4, trong đó số mẫu là 245057, và mỗi mẫu có bốn thành phần là B,G,R (ba thành phần của một điểm ảnh trong không gian màu RGB) và thành phần thứ tư là nhãn (1 hoặc 2) của điểm ảnh (1: màu
da, 2: không phải màu da) Trong 245057 mẫu thì
có 50859 là các mẫu da và 194198 mẫu không phải là da
Bảng 3 Độ chính xác của các mô hình phát hiện màu da
Mô hình
HSV 45781/50859 (90%) 5087/50859 (10%) 187928/194198 (96.8%) 6272/194198 (3.2%)
RGB-Histogram
(Skinmod
el.bin) [7]
34343/50859 (67.5%) 6516/50859 (32.5%) 189764/194198 (97.7%) 4434/194198 (2.3%)
Bảng trên cho thấy, mô hình YcbCr và RGB-Kovac
có tỷ lệ phát hiện màu da với độ chính xác cao
hơn hai mô hình còn lại Cụ thể phát hiện đúng là
da (True Skin) đạt trên 99% và đúng không phải là
da (True nonskin) trên 95%
3.2.2 Huấn luyện và phân lớp hình ảnh
Từ tập dữ liệu hình ảnh dùng để huấn luyện và ứng với mỗi mô hình màu da, tiến hành trích chọn đặc trưng và huấn luyện có kết quả như sau:
Bảng 1 Bộ dữ liệu ảnh
Số file lớp
“xấu”
Số file lớp
“tốt”
Tổng số file Dung lượng
(MB)
Số file lớp
“xấu” lớp “tốt”Số file Tổng số file Dung lượng (MB)
4395 7826 12221 688 200 491 691 21.18
Trang 8Bảng 4 Kết quả huấn luyện bốn mô hình phát hiện màu da
huấn luyện
HSV_SVM (Mô hình 1) HSV 4 giờ 9 phút
YcbCr_SVM (Mô hình 2) YcbCr 5 giờ 27 phút
RGB_Kovac_SVM (Mô hình 3) RGB_Kovac 5 giờ 30 phút
RGB_Histogram_SVM (Mô hình 4) RGB_Histogram 5 giờ 2 phút
Kết quả phân lớp hình ảnh với bộ gồm 200 hình
nude và 491 hình không nude có tổng dung lượng 21.2 MB trên bốn mô hình phát hiện màu da như sau [20]:
Bảng 5 Kết quả phân lớp hình ảnh
Bảng 5 cho thấy mô hình phân loại SVM 2, 3 ứng
với mô hình phân loại màu da YcbCr và
RGB-Kovac có độ chính xác cao hơn (đạt trên 84%) so
với hai mô hình còn lại So sánh kết quả mô hình
đề xuất so với một số công cụ mã nguồn mở phát
hiện ảnh có nội dung đồi trụy cùng với tập kiểm tra gồm 200 hình nude và 491 hình không nude có tổng dung lượng 21.2 MB đều cho kết quả chính xác cao hơn
Bảng 6 So sánh kết quả phân loại hình ảnh
3.2.3 Phân lớp văn bản
Danh sách từ vựng trích chọn được từ tập huấn
luyện với giá trị ngưỡng chọn là 25 đối với văn bản
tiếng Việt và 80 đối với văn bản tiếng Anh (bảng 7) Kết quả phân lớp văn bản (bảng 8) có độ chính xác cao (đạt trên 96%) đối với cả hai ngôn ngữ tiếng Anh và tiếng Việt [20]
Bảng 7 Bộ dữ liệu và giá trị ngưỡng trong phân lớp văn bản
“xấu”
Số file lớp
Dung lượng
Trang 9Bảng 8 Kết quả phân lớp văn bản
Ngôn
Thời gian (s)
Tiếng
Việt 163/163 (100%) 0/163 (0%) 161/166 (98.98%) 5/166 (3.012%) 327/329 (99.39%) 53 Tiếng
Anh 300/302 (99.34%) 2/302 (0.66%) 343/362 (94.75%) 19/362 (5.25%) 643/664 (96.83%) 515
4 KẾT LUẬN
Kết quả nghiên cứu cho thấy: về phân lớp văn bản
có độ chính xác cao (văn bản tiếng Việt 99,39%,
văn bản tiếng Anh 96,83%) và thời gian thực hiện
khá nhanh Còn đối với kết quả phân lớp hình
ảnh, độ chính xác của phân lớp vào lớp hình ảnh
từ 84% đến 85% nhưng xét độ chính xác chung
thì có thể chấp nhận được Từ kết quả ta nhận
thấy phương pháp phân lớp đề xuất trong nghiên
cứu này có độ chính xác cao hơn
TÀI LIỆU THAM KHẢO
[1] Hồng Dân (1970) Bước đầu tìm hiểu vấn đề từ hư
trong tiếng Việt Tạp chí Ngôn ngữ, số 1, tr.68.
[2] Nguyễn Như Ý (1996) Từ điển giải thích thuật
ngữ ngôn ngữ học NXB Giáo dục, Hà Nội, tr.123.
[3] Lê Hoàng Dương, Ngô Quốc Vinh (2016) Nghiên
cứu về thuật toán phân lớp sử dụng quá trình học
máy bán giám sát, ứng dụng trong việc phân lớp
trang web Đề tài cấp trường Trường Đại học
Hàng hải Việt Nam.
[4] Huỳnh Bé Thơ và Trương Quốc Định Xây dựng
công cụ ngăn chặn việc truy cập web đen (hình
ảnh, nội dung) Tạp chí Khoa học Trường Đại học
Cần Thơ, số chuyên đề: Công nghệ Thông tin
(2013): 162-169.
[5] Phạm Nguyên Khang (2014) Giáo trình Nguyên
lý máy học.
[6] http://xltiengviet.wikia.com/wiki.
[7] http://www.rw-designer.com/color-space.
[8] https://pypi.python.org/pypi/nudepy.
[9] https://github.com/hhatto/nude.py.git.
[10] http://premium.wpmudev.org/forums/topic/
detecting-nude-pictures-in-wpmu -blogs.
[11] http://www.vn-zoom.com/f99/tong-hop-cac-phan-mem-chanweb-den-25784.html.
[12] Rung-Ching Chen, Chung-Hsun Hsieh (2006).
Web page classification based on a support vector machine using a weighted vote schema Expert
Systems with Applications 31 (2006), 427–435 [13] Roman Suvorov, Ilya Sochenkov, and Ilya
Tikhomirov Method for Pornography Filtering
in the WEB Based on Automatic Classification and Natural Language Processing Institute for
Systems Analysis of Russian Academy of Sciences
117312, Moscow, pr 60-letiya Oktyabrya, 9.
[14] Adrian Ulges, Armin Stahl (2011) Automatic detection
of child pornography using color visual words
German Research Center for Artificial Intelligence (DFKI), D-67663 Kaiserslautern, Germany.
[15] Cheng Luo, Yiqun Liu, Shaoping Ma, Min Zhang,
Liyun Ru, and Kuo Zhang Pornography Detection
with the Wisdom of Crowds.
[16] Rung-Ching Chen* and Chun-Te Ho (2006) A
pornographic web page detecting method based
on SVM model using text and image features Int
J Internet Protocol Technology, Vol 1, No 4 [17] R Du, R, Safavi-Naini, R and Susilon W (2003)
Web filtering using text classification The 11th IEEE
International Conference on Networks, 325-330 [18] Yu-Chun Lin, Hung-Wei Tseng, Chiou-Shann Fuh
(2003) Pornography Detection Using Support
Vector Machine 16th IPPR Conference on
Computer Vision, Graphics and Image Processing (CVGIP 2003)
[19] Mohamed N Moustafa Applying deep learning to
classify pornographic images and videos.
[20] https://machinelearningcoban.com.