Cách thức sử dụng bộ công cụ CSharp-2.6

Một phần của tài liệu Tìm hiểu và nâng cao hiệu quả nhận dạng chữ viết tay rời rạc dựa trên các kỹ thuật lấy đặc trưng và phát triển ứng dụng (Trang 79 - 83)

a. Một số yêu cầu khi sử dụng

Trước khi sử dụng được bộ công cụ CSharp-2.6 yêu cầu cần phải có đầy đủ bốn tập tin sau đây:

 TrainSet.txt

 TestSet.txt

 svm_sample_train.exe

 svm_sample_test.exe Trong đó:

Tạo Project dạng Console

Chép các tập tin SupportClass.cs, svm.cs, svm_model.cs, svm_node.cs, svm_parameter.cs, svm_problem.cs, svm_train.cs vào Project

Vào Properties -> Application -> Assembly Name, đặt tên

Biên dịch chương trình, chép svm_sample_train.exe vào thư mục khác để lưu

Xóa tập tin svm_train.cs, chép tập tin svm_predict.cs vào

Vào Properties -> Application -> Assembly Name, đặt tên

 Hai tập tin svm_sample_train.exe và svm_sample_test.exe ta có từ việc biên dịch đã nêu ở bên trên.

 Tập tin TrainSet.txt và TestSet.txt phải có định dạng sau: ClassName id1:value1 id2:value2 … idD:valueD

ClassName id1:value1 id2:value2 … idD:valueD ClassName id1:value1 id2:value2 … idD:valueD …

ClassName id1:value1 id2:value2 … idD:valueD

với ClassName là nhãn lớp (với Train set là để tạo mô hình phân lớp, với Test set là để đánh giá lỗi), id là thứ tự chiều (đánh từ 1 đến D chiều) của vector đặc trưng, value là giá trị của vector đặc trưng tại chiều đó.

b. Hướng dẫn sử dụng trong chương trình cmd.exe

Phần hướng dẫn sử dụng này dựa trên việc sử dụng chương trình cmd.exe trong các hệ điều hành Windows (Windows XP, Windows Vista, Windows 7, Windows 8). Trước tiên, phải tiến hành sao chép bốn tập tin ở phần trước đã nêu vào cùng một thư mục chứa tập tin cmd.exe. Quá trình gồm hai giai đoạn:

Giai đoạn huấn luyện

Đầu tiên, trong thư mục ở trên (thư mục chứa cmd.exe và bốn tập tin cần thiết) mở chương trình cmd.exe lên. Gõ lệnh theo cú pháp sau:

svm_sample_train.exe [tùy chọn] TrainFileName

Trong đó [tùy chọn] là:

 -t value: là tùy chọn cho phép lựa chọn hàm nhân của SVM, nhận 0 nếu làm nhân là Linear, 1 nếu là Polynomial, 2 nếu là Radial Basis Function, 3 nếu là Sigmoid (mặc định là 2).

 TrainFileName: là tên tập tin dữ liệu huấn luyện theo định dạng đã trình bày ở trong phần trước.

Như vậy, nếu như muốn chạy ở chế độ mặc định (với hàm nhân Radial Basis Function) thì gõ lệnh:

svm_sample_train.exe TrainSet.txt

Sau đó, đợi đến khi việc huấn luyện được thực hiện xong, khi ấy ta có được tập tin mô hình đã được huấn luyện TrainSet.txt.model. Đây là mô hình chứa các thông số cụ thể của SVM, đặc biệt là chứa tập vector hỗ trợ dùng cho bước kiểm tra dưới đây.

Giai đoạn kiểm tra

Tương tự như giai đoạn huấn luyện, ta cũng mở chương trình cmd.exe lên và gõ dòng lệnh có cú pháp sau đây:

svm_sample_test.exe TestFileName ModelFile OutputFile

Ví dụ như sau khi đã có tập tin model từ việc huấn luyện ở bước liền trước, ta gõ dòng lệnh sau đây:

svm_sample_test.exe TestSet.txt TrainSet.txt.model TestResult.txt

Chờ cho đến khi kết thúc xong quá trình kiểm tra, ta sẽ có được tập tin kết quả chứa nhãn lớp được nhận dạng của các mẫu trong dữ liệu Test set (những nhãn lớp này không nhất thiết giống nhãn lớp của chúng được ghi trong tập tin TestSet.txt). Lúc này trên màn hình hiển thị độ chính xác của quá trình kiểm tra, ghi chép lại các thông số này để phân tích số liệu và đánh giá về sau.

c. Hướng dẫn sử dụng trong ngôn ngữ C#

Trong một chương trình được viết bằng ngôn ngữ C# (ConsoleApplication hoặc WindowsApplication), ta cũng có thể sử dụng bộ công cụ trên mà không cần phải thêm mã nguồn của chúng vào chương trình (vì việc thêm mã nguồn như vậy đôi khi có thể làm cho mã nguồn chính bị xáo trộn hoặc không thực thi được). Các bước được tiến hành tuần tự như sau:

Sử dụng SVM để huấn luyện:

 Tạo một biến kiểu string để chứa tham số đầu vào:

s1 = “-t 1 TrainSet.txt”

 Sau đó dùng câu lệnh sau đây để gọi chương trình svm_sample_train.exe:

System.Diagnostics.Process.Start(“svm_sample_train.exe”, s1);

Sử dụng SVM để kiểm tra:

 Tạo một biến kiểu string để chứa tham số đầu vào:

s2 = “TestSet.txt TrainSet.txt.model TestResult.txt”

 Sau đó dùng câu lệnh sau đây để gọi chương trình svm_sample_train.exe:

System.Diagnostics.Process.Start(“svm_sample_test.exe”, s2);

Cách sử dụng trên đây được dùng trong trường hợp muốn chạy SVM vào cuối chương trình chính hoặc việc chạy này kết thúc vào thời điểm nào thì cũng không ảnh hưởng đến chương trình chính. Trên thực tế, nhiều khi ta phải sử dụng công cụ này trong một đoạn chương trình mà yêu cầu đặt ra là phải đợi cho đến khi thuật toán huấn luyện (hoặc kiểm tra) chạy xong thì mới chạy tiếp các lệnh tiếp theo. Khi đó, chúng ta có thể sử dụng đoạn chương trình thay thế sau đây:

string s2 = “TestSet.txt TrainSet.txt.model TestResult.txt”; System.Diagnostics.Process p; p = new System.Diagnostics.Process(); p.StartInfo.CreateNoWindow = true; p.StartInfo.FileName = “svm_sample_test.exe”; p.StartInfo.Arguments = s2; p.Start();

while (p.HasExited == false) { ; }

Để chạy được, yêu cầu tập tin svm_sample_test.exe phải nằm trong thư mục chứa tập tin chạy của chương trình, chẳng hạn như là trong thư mục bin. Ta cũng có

thể dùng đường dẫn tuyệt đối như @“C:\Users\dell\svm_sample_test.exe”. Ngoài ra, nếu muốn chương trình chạy mà không hiện cửa sổ thì thêm câu lệnh dưới đây liền sau lệnh khai báo tiến trình p:

p.StartInfo.UseShellExecute = false;

Một phần của tài liệu Tìm hiểu và nâng cao hiệu quả nhận dạng chữ viết tay rời rạc dựa trên các kỹ thuật lấy đặc trưng và phát triển ứng dụng (Trang 79 - 83)

Tải bản đầy đủ (PDF)

(142 trang)