Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu thành 2 phần và quá trình này lặp lại nhiều lần. Khi đó hàm quyết định phân dữ liệu vào lớp thứ I của tập n 2-lớp sẽ là:
Những phần tử x là support vector sẽ thỏa điều kiện:
Như vậy, bài toán phân nhiều lớp sử dụng phương pháp SVM hoàn toàn có thể thực hiện giống như bài toán hai lớp. Bằng cách sử dụng chiến lược “một đối một” (one – against – one).
Giả sử bài toán cần phân loại có k lớp (k>1), chiến lược “một đối một” sẽ tiến hành k(k-1)/2 lần phân lớp nhị phân sử dụng phương pháp SVM. Mỗi lớp sẽ tiến hành phân tách với k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai lớp bằng phương pháp SVM.
Ứng dụng của bài toán phân nhiều lớp trong xử lý ảnh chính là bài toán nhận diện ảnh đen.
2.2.3. Trường hợp dữ liệu không thể phân tách được
Nhận xét:
Trên thực tế có rất nhiều trường hợp dữ liệu mẫu bị nhiễu, nói chung là không có sự phân tách tuyến tính trong không gian đặc trưng.
Trong trường hợp vượt quá giới hạn, các hệ số Lagrange sẽ rất lớn, không nhận được lời giải khả thi.
Một cách “làm sạch” dữ liệu là xếp hạng các dữ liệu mẫu tuy nhiên lại khó cho việc phân lớp.
Thuật toán trên chỉ phù hợp cho trường hợp tập dữ liệu học có thể phân cách được, khi áp dụng cho dữ liệu không thể phân cách tuyến tính, sẽ không nhận được lời giải khả thi do hàm Lagrange lớn. Để mở rộng ý tưởng này cho trường hợp dữ liệu không thể phân cách ta đưa thêm các “biến mềm” slack (slack variables) dương cho bài toán tối ưu:
Khi có lỗi xuất hiện, tương ứng sẽ lớn hơn 1, như vậy là biên trên của số lỗi huấn luyện. Do đó một cách để gán thêm lỗi huấn luyện, là thay đổi hàm mục tiêu từ việc cực tiểu sang:
Trong đó C là tham số do người dùng chọn, và C càng lớn thì tỉ lệ lỗi sẽ càng thấp. Trường hợp này ta gọi là bài toán dạng C-SVM.
Tương ứng dạng Lagrange cho vấn đề tối ưu khoảng cách mềm chuẩn 1 là:
với .
Khi đó bài toán trở thành:
Tìm α để cực đại hóa biểu thức:
Với sự khác nhau duy nhất là ràng buộc , cùng với , dẫn đến , trong khi nếu và vì vậy .
Các điều kiện KKT được bổ sung cho :
(2.15)
Và khi ta có:
Điều này dẫn đến rằng các biến slack sẽ khác không chỉ xảy ra khi (điều đó cũng nói rằng mẫu i là không phân lớp được). Các điểm với các biến slack khác không có khoảng cách hình học nhỏ hơn . Các điểm có nằm tại chỗ có khoảng cách tính từ siêu phẳng. Do khi , . Có thể duy nhất tính toán hệ số b*
từ các điểm tương
ứng với sử dụng điều kiện , suy ra:
2.3. Kỹ thuật SVM trong bài toán phát hiện ảnh đen
Hình ảnh “đen” có nhiều loại khác nhau như: Hình ảnh nam hoặc nữ không mặc quần áo, ảnh hở “vòng 1” của nữ, ảnh hở bộ phận “nhạy cảm” của nam hoặc nữ, ảnh quan hệ tình cảm giữa nam và nữ, ảnh hở “vòng 3” của nam hoặc nữ, ảnh Nam hôn lên “vòng 1” của nữ…Ảnh đầu vào để huấn luyện là tập ảnh đen hoặc không đen có cùng kích thước và được gán nhãn và phân tập ảnh đó vào 2 lớp “đen” và “không đen”. Sau đó dùng kỹ thuật SVM bằng cách dịch chuyển cửa sổ (30 x 30) để nhận dạng từng vùng trên ảnh thông qua đặc trưng chủ yếu liên quan đến màu sắc của điểm da để có 1 ảnh con.
2.3.1. Giai đoạn huấn luyện
Bƣớc 1: Vector hóa tập mẫu.
Đây là bước biểu diễn ảnh đen vào máy tính, dữ liệu ảnh biểu diễn là cường độ sáng của điểm ảnh tại vị trí x và y gọi là (I(x,y)).
Kích thước ảnh đầu vào (pixels).
Cách tổ chức dữ liệu: Biểu diễn ma trận ảnh 2 chiều dưới dạng mảng vector một chiều trong máy tính bằng cách: đọc từng dòng từ trên xuống, mỗi dòng bố trí liên tục nhau trên một mảng số thực một chiều. Như vậy ảnh có kích thước pixels ta biểu diễn thành vector mảng 1 chiều
.
Bƣớc 2: Rút trích đặc trưng của ảnh đen
Giai đoạn rút trích đặc trưng của ảnh đen bao gồm các bước chính đó là thực hiện phép phân tích thành phần chính, ánh xạ tập mẫu vào không gian đặc trưng và chuẩn hóa không gian mẫu.
Trong tất cả các hệ nhận dạng mà đặc biệt là các hệ nhận dạng tự động nói riêng, mức độ thành công không những phụ thuộc vào các thuật toán nhận dạng tốt mà còn phụ thuộc rất nhiều vào tập mẫu dữ liệu huấn luyện. Nhiều tập mẫu huấn luyện nhập nhằng do điều kiện thời tiết lúc chụp, môi trường, độ sáng, khoảng cách cự ly lấy mẫu hay chính tại chất lượng của thiết bị thu hình. Để tiền xử lý cũng như thực hiện rút trích các đặc trưng để thực hiện
việc huấn luyện cũng như xử lý cần đến một kỹ thuật rút trích đặc trưng tự động (như kỹ thuật PCA, Wavelet Haar, Gabor,..).
Để áp dụng cho huấn luyện trong hệ thống phát hiện ảnh đen sử dụng SVM, trước hết sử dụng kỹ thuật rút trích để rút ra các eigenvector (vector đặc trưng) hay các eigenimage (ảnh đặc trưng) của các ảnh đen huấn luyện. Sau đó ánh xạ các thành phần này vào không gian đặc trưng sẽ hình thành không gian mẫu mới hay còn gọi là không gian mẫu đặc trưng.
Qua phép phân tích thành phần chính, số chiều của tập mẫu học sẽ được giảm xuống, và đây là thành phần chính quan trọng nhất của mẫu học, chính các thành phần này tạo ra sự khác biệt cho các vector mẫu trong tập mẫu ban đầu.
Bƣớc 3:Tạo bộ phân loại nhị phân
Chúng ta cần phải nhấn mạnh rằng SVM là một bộ phân loại nhị phân và có khả năng phân loại tốt với tính tổng quát cao từ tập mẫu dữ liệu được tổ chức thành hai lớp. Vì lẽ đó SVM được sử dụng rất tốt trong việc xử lý liên quan đến ảnh đen đó là dò tìm bộ phận đen trên ảnh (hay phát hiện ảnh đen) mà trong đó chỉ có duy nhất hai lớp: Lớp thuộc về ảnh đen và lớp không phải là ảnh đen.
Để huấn luyện hệ thống SVM cho ứng dụng phát hiện ảnh đen đơn giản là tạo bộ phân loại nhị phân từ tập mẫu. Tập mẫu phân loại cần cho mục đích phát hiện ảnh đen sẽ được biểu diễn trong máy tính và chúng ta thực hiện gán nhãn theo hai lớp (ảnh đen và không phải đen).
Các bước huấn luyện: Tập huấn luyện có dạng:
là mẫu thứ i trong tập học d
là nhãn được gán cho mẫu i ( .
Gọi là tham số tương ứng với trong tập học. Xây dựng phương trình siêu mặt .
Trong đó: (suy từ 2.10)
Sao cho thỏa bất đẳng thức:
Nhưng để tính được w, b thì ta phải tính được tham số đặc trưng cho mẫu ảnh đen từ tập dữ liệu học ( > 0).
Huấn luyện một bộ phân loại nhị phân với phương pháp SVM từ tập mẫu cho mục đích phân biệt ảnh đen và không phải ảnh đen theo 3 bước sau:
Bƣớc 1: Giai đoạn tìm các vector hỗ trợ (Support Vector) hay
còn đƣợc gọi là đi xác định tham số .
Theo lý thuyết tổng quát về SVM, cấp độ và mức độ phức tạp của SVM khác nhau tùy thuộc vào mức độ phức tạp khác nhau của tập dữ liệu học.
Trong trường hợp tập mẫu phân loại có kiểu phân bố như vậy thì phương pháp tính các vector hỗ trợ bằng cách sử dụng công thức như sau:
.
Ràng buộc này được chuyển sang giải quyết bài toán phương trình Lagrangian theo công thức:
Để cực đại bờ phân tách cùng với các vector hỗ trợ
tìm được thì phương trình Lp phải cực tiểu theo w,b và Lp
đạo hàm bậc 1 là một phương trình theo .
Ta có được: (*)
Theo tính chất hai mặt của phương trình Lagrangian thì tính cực tiểu Lp khó và theo công thức (2.10) thay vào đó ta sẽ tính cực đại theo dạng đối ngẫu LD :
nên LD là đạo hàm triệt tiêu theo .
Vì LD là một phương trình đa biến, để tính được LD‟ bằng cách lấy đạo hàm riêng từng phần trên từng biến . (**)
Kết hợp (*) và (**) ta sẽ dễ dàng tính được tham số .
Các vector hỗ trợ được chọn tương ứng với mẫu nào thỏa mãn
Nhưng trong nhiều trường hợp khác ta lại sử dụng bộ phân loại nhị phân phi tuyến để xây dựng siêu mặt phân lớp đó là khi dữ liệu mẫu quá phức tạp, vì thế chúng ta sử dụng một số loại hàm phi tuyến (phổ biến là 1 số hàm bậc 2, bậc 3 hay bậc 4) bởi vì chính các siêu mặt đa thức mới đủ khả năng len lỏi vào từng mẫu để tìm ra các đặc trưng cần thiết để phân lớp theo mong đợi.
Trong trường hợp tập mẫu cần phân loại có kiểu phân bố như dạng trong hình 2.7 trên thì phương pháp tính các vector hỗ trợ bằng cách sử dụng công thức sau:
Đối với dữ liệu phân bố như trong trường hợp trên, chúng ta định nghĩa thêm một biến mới là
Ràng buộc này được chuyển qua giải quyết phương trình Lagrange theo công thức :
Như vậy, nếu một mẫu ảnh đen bị phân loại lỗi thì , nên ta có thể xem như là đường biên hay còn gọi là chặn trên của lỗi trên tập mẫu huấn luyện, như vậy chúng ta có thể xác định được chi phí tạo thêm lỗi nhằm đưa hàm mục đích cực tiểu dạng sang tính cực tiểu ở dạng , và C do người dùng chọn C càng lớn thì tỉ lệ phân loại lỗi trên tập huấn luyện càng thấp.
Dựa vào biến mà ta có thể kiểm soát được mẫu ảnh đen nào bị phân loại lỗi xảy ra trong lúc huấn luyện bộ phân loại nhị phân bằng tuyến tính
- Để khắc phục được lỗi này, chúng ta có thể gắn khi xử lý SVM với hàm xử lý tuyến tính. Nhất thiết phải xử lý SVM với hàm xử lý phi tuyến.
ta đặt là hàm ánh xạ phi tuyến nhằm mục đích ánh xạ xi vào không gian đặc trưng H:
- Ràng buộc trên phương trình Lagrange:
Để cực đại bờ phân tách cùng với các vector hỗ trợ tìm được thì phương trình Lp phải cực tiểu theo w,b và đạo hàm bậc 1 là một phương trình theo ( .
và (***)
Việc tính toán cũng giống như trường hợp xử lý tuyến tính, theo tính chất hai mặt của phương trình Lagrange thì tính cực tiểu khó và thay vào đó ta sẽ tính cực đại theo dạng đối ngẫu :
Nên là đạo hàm triệt tiêu theo . (****)
Kết hợp (***) và (****) ta sẽ tính được tương ứng cho mẫu i.
Bƣớc 2: Xây dựng siêu mặt phân loại dựa trên các mẫu gọi là
Sau khi tìm được số vector hỗ trợ cần thiết cho bộ phân loại nhị phân trong cả trường hợp hàm xử lý chính là dạng tuyến tính hay dạng đa thức bậc cao. Bây giờ chúng ta sẽ khảo sát cách xây dựng siêu mặt phân loại tập dữ liệu nhị phân từ các vector hỗ trợ mà hệ thống đã tìm được đó chính là các mẫu huấn luyện trong tập học với tham số .
Đối với trường hợp SVM sử dụng hàm xử lý tuyến tính:
Đây chính là phương trình siêu mặt mà chúng ta cần phải xây dựng từ SVM sử dụng hàm xử lý chính dạng tuyến tính. Đối với trường hợp SVM sử dụng hàm phi tuyến thì
phải có cơ chế chuyển tập dữ liệu phân phối phi tuyến sang dạng phân phối tuyến tính trong không gian đặc trưng có số chiều cao H bằng một phép ánh xạ φ. Khi đó w sẽ được tính có dạng sau đây:
Bƣớc 3: Xác định ngƣỡng b
Khi ta đã xác định được giá trị trọng số w tối ưu cho siêu mặt phân loại nhị phân dựa trên các mẫu ảnh đen được gọi là các vector hỗ trợ thì hoàn toàn có thể tính được ngưỡng b :
Đối với SVM tuyến tính:
o Sau khi đã thỏa các ràng buộc tối ưu theo công thức (2.14) điều kiện KKT ta có
o Chọn một điểm mẫu bất kì để thay vào công thức trên là có thể tính được b
Đối với SVM phi tuyến
o Theo công thức (2.15) của điều kiện KKT ta có:
o Chọn một điểm mẫu bất kì để thay vào công thức ta có thể tính được b
2.3.2. Giai đoạn xử lý phát hiện ảnh đen
Bƣớc 1: Vector hóa mẫu thử nghiệm
Thực hiện kỹ thuật vector hóa mẫu ảnh thô tương tự như trong giai đoạn huấn luyện.
Bƣớc 2: Rút trích đặc trưng ảnh đen
Thực hiện kỹ thuật rút trích đặc trưng từ mẫu thử nghiệm cũng tương tự như trong giai đoạn huấn luyện.
Bƣớc 3: Đưa mẫu thử nghiệm vào bộ phân loại nhị phân
Thực hiện sử dụng các siêu mặt phân loại là bộ phân loại nhị phân được xây dựng từ bước huấn luyện để quyết định và gán nhãn cho mẫu thử nghiệm là ảnh đen hay không phải ảnh đen.
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. BÀI TOÁN PHÁT HIỆN ẢNH “ĐEN”
Phát hiện ảnh đen là bài toán khó và mới, tuy nhiên có rất nhiều ứng dụng trong cuộc sống. Đây cũng là bài toán có tính tương tác giữa người và máy. Phát hiện ảnh đen là công cụ quan trọng và cần thiết để xử lý thông tin ngày càng đa dạng và phức tạp, phục vụ tốt cho công tác quản lý nhà nước, giáo dục, gia đình, giải trí…Nhiệm vụ của bài toán phát hiện ảnh đen là nhằm hiển thị những ảnh được nghi ngờ là ảnh đen, trên cơ sở đó ta có thể phát triển thành ứng dụng phát hiện những ảnh đen trên máy tính hay website, qua đó ta có biện pháp lọc, chặn hoặc xử lý hành chính đối với những website hay máy tính chứa ảnh đen đó một cách nhanh chóng và hiệu quả.
3.1.1. Một số đặc điểm ảnh “đen”
Hình ảnh “đen” có nhiều loại khác nhau nhưng có thể quy về các nhóm sau:
(1)Hình khỏa thân: là ảnh nam hoặc nữ không mặc quần áo (2)Hình hở “vòng 1” của nữ: là ảnh hở “vòng 1” của nữ (3)Hình hở bộ phận “nhạy cảm” của nam hoặc nữ
(4)Hình quan hệ tình cảm giữa nam và nữ (5)Hình hở “vòng 3” của nam hoặc nữ (6)Nam hôn lên “vòng 1” của nữ.
…
3.1.2. Các vấn đề gây nhầm lẫn
Các loại ảnh có thể gây nhận dạng nhầm:
Hình nam cởi trần: đây là ảnh bình thường không phải ảnh “đen” những dễ bị nhận nhầm là nữ khi người nam này béo.
Hình nữ mặc quần hay áo sát với màu da cũng dễ bị nhận nhầm. Trẻ con bú mẹ: dễ nhầm với trường hợp nam hôn lên “vòng 1”.
…
Để tránh được các hình ảnh nhầm lẫn ta cần cung cấp ảnh chất lượng cao và có số lượng mẫu đầu vào đa dạng để huấn luyện.
3.2. KIỂM SOÁT ẢNH “ĐEN” SỬ DỤNG SVM 3.2.1. Thu thập, phân tích và xử lý dữ liệu 3.2.1. Thu thập, phân tích và xử lý dữ liệu
Dữ liệu đóng một vai trò rất quan trọng trong các giải pháp sử dụng SVM. Chất lượng, độ tin cậy, tính sẵn có và phù hợp của dữ liệu được sử dụng để phát triển hệ thống giúp cho các giải pháp thành công. Các mô hình đơn giản cũng có thể đạt được những kết quả nhất định nếu như dữ liệu được xử lý tốt, bộc lộ được các thông tin quan trọng. Bên cạnh đó, các mô hình tốt có thể sẽ không cho ta các kết quả mong muốn nếu dữ liệu đưa vào quá phức tạp và rắc rối. Trong bài toán này, các ảnh đầu vào lấy mẫu có một kích thước bằng nhau để tạo nên tập cơ sở dữ liệu chuẩn giúp cho việc nhận dạng được chính xác. Với hình vuông cỡ 30×30 pixel, hình chữ nhật 25×35 pixel.
Việc xử lý dữ liệu bắt đầu bằng việc thu thập và phân tích dữ liệu, sau đó là bước tiền xử lý. Dữ liệu sau khi qua bước tiền xử lý được đưa vào SVM.