Hình 3.3 Thực thi mơ hình phân lớp gán nhãn cho ảnh viễn thám
3.4. Thực hiện chương trình
3.4.1 Tiền xử lý dữ liệu
Nhiệm vụ chính của tác vụ này là xử lý các dữ liệu ảnh đầu vào để tạo ra các loại dữ liệu mới phù hợp cho các quá trình xử lý ở các phần tiếp theo. Trong Tiền xử
lý dữ liệu có 3 mục chính:
• Nạp dữ liệu
• Gán nhãn dữ liệu
• Hiển thị thuộc tính
Phần 1: Nạp dữ liệu
Chọn Tiền xử lý dữ liệu > Nạp dữ liệu. Giao diện ban đầu của phần nạp dữ liệu:
Hình 3.5. Giao diện của tác vụ Nạp dữ liệu
Các thành phần chính:
- Kích thước cửa sổ: Kích thước cạnh ơ vng của mỗi hình ảnh sau khi thực
hiện tách nhỏ từ hình ảnh gốc. (Đơn vị: pixel)
- Chọn thư mục: Thư mục chứa hình ảnh cần phân tách.
- Trạng thái: Đưa ra trạng thái của chương trình khi thực hiện một nhiệm vụ
nào đó.
- Hiển thị lưới: Khi nhấn vào nút này, màn hình sẽ hiện ra các ơ lưới với kích
thước bằng với kích thước mà người dùng nhập tại mục Kích thước cửa sổ.
- Phân tách hình ảnh: Khi nhấn vào nút này, chương trình sẽ thực hiện tách
hình ảnh ban đầu thành các hình ảnh nhỏ hơn với kích thước cạnh ơ vng bằng với kích thước mà người dùng nhập tại mục Kích thước cửa sổ.
- Số thứ tự: Hiển thị số thứ tự của hình ảnh đang hiện trên màn hình so với các
hình ảnh khác trong thư mục hình ảnh mà người dùng chọn tại mục Chọn thư mục.
- Ảnh trước: Khi nhấn vào nút này, màn hình sẽ hiển thị lên hình ảnh có số thứ
tự nhỏ hơn một đơn vị so với số thứ tự của hình ảnh đang hiện trên màn hình hiện tại.
- Ảnh sau: Khi nhấn vào nút này, màn hình sẽ hiển thị lên hình ảnh có số thứ tự
lớn hơn một đơn vị so với số thứ tự của hình ảnh đang hiện trên màn hình hiện tại.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính sẽ hiện ra.
Trên màn hình hiện ra, người dùng nhập các thơng tin cần thiết:
- Nhập kích thước cửa sổ mong muốn tại ơ Kích thước cửa sổ
- Nhập đường dẫn chứa hình ảnh bằng cách nhấn vào nút và chọn đường dẫn mong muốn.
Sau khi hoàn thành 2 bước trên, người dùng ấn nút Hiển thị lưới, màn hình sẽ hiển thị như sau:
Người dùng có thể xem các hình ảnh phía trước hoặc phía sau dưới dạng lưới bằng cách nhấn nút Ảnh trước, Ảnh sau.
Sau khi đã chọn được độ dài cạnh ô vuông hợp lý, người dùng ấn vào nút Phân tách hình ảnh, lúc này một thư mục mới được sinh ra chứa tồn bộ hình ảnh sau khi
đã phân tách. Tên thư mục được đặt theo cấu trúc <tên thư mục ảnh được
chọn>_<kích thước cửa sổ>. Ví dụ, người dùng chọn thư mục có tên “train”, hình
ảnh sau khi phân tách sẽ được lưu tại thư mục “train_80” Phần 2: Gán nhãn dữ liệu
Chọn Tiền xử lý dữ liệu > Gán nhãn dữ liệu Giao diện ban đầu của tác vụ gán nhãn dữ liệu:
Hình 3.7. Giao diện của tác vụ Gán nhãn dữ liệu
Các thành phần chính:
- Chọn thư mục: Người dùng lựa chọn thư mục hình ảnh được phân tách thực
hiện từ bước Nạp dữ liệu.
- Nhãn: Nhãn dữ liệu hình ảnh, người dùng nhập 1 nếu hình ảnh chứa tàu -
thuyền, người dùng nhập 0 nếu hình ảnh khơng có tàu - thuyền.
- ID: Số thứ tự của hình ảnh đang hiển thị trên màn hình so với các hình ảnh
khác trong thư mục mà người dùng chọn tại mục Chọn thư mục.
- Lưu: Lưu nhãn mà người dùng vừa nhập tại mục Nhãn vào tệp txt.
- Cửa sổ trước: Màn hình sẽ hiển thị hình ảnh có ID nhỏ hơn một đơn vị so
với hình ảnh đang hiển thị trên màn hình hiện tại.
- Cửa sổ sau: Màn hình sẽ hiển thị hình ảnh có ID lớn hơn một đơn vị so với
hình ảnh đang hiển thị trên màn hình hiện tại.
- Tìm kiếm: Chức năng tìm kiếm hình ảnh theo ID, người dùng nhập giá trị ID
và nhấn nút Tìm kiếm, màn hình sẽ hiển thị hình ảnh và thơng tin nhãn của hình ảnh tương ứng với ID mà người dùng vừa nhập.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính sẽ hiện ra.
Trên màn hình hiện ra, thực hiện chọn thư mục chứa hình ảnh đã được phân tách
ở Phần 1. Nhập đường dẫn chứa hình ảnh bằng cách nhấn vào nút và chọn đường dẫn mong muốn. Màn hình sẽ hiển thị như sau:
Hình 3.8. Gán nhãn cho từng ơ lưới
Hình ảnh gốc ban đầu sẽ được hiển thị dưới dạng lưới (các đường kẻ màu
trắng), ô vng màu đỏ thể hiện việc hình ảnh đã được phân tách tương ứng với vị trí
ơ vng đỏ cần được người dùng gán nhãn.
Người dùng thực hiện nhập dữ liệu vào ô Nhãn với 1 nếu hình ảnh trong ơ vng màu đỏ chứa tàu - thuyền hoặc 0 nếu trong ô vuông màu đỏ không chứa tàu - thuyền. Sau khi nhập nhãn xong, người dùng cần ấn nút Lưu để lưu lại thông tin vừa
nhập. Thực hiện việc gán nhãn cho các hình ảnh cịn lại bằng cách nhấn vào nút Cửa sổ trước và Cửa sổ sau để chuyển tới ảnh trước đó và ảnh sau đó.
Người dùng có thể tìm kiếm nhanh hình ảnh với ID của hình ảnh. Nhập số ID của hình ảnh cần tìm kiếm, sau đó nhấn nút Tìm kiếm, trên màn hình sẽ hiện ra hình ảnh và thơng tin tương ứng với ID mà người dùng vừa nhập.
Phần 3: Chuyển đổi thành dư liệu thuộc tính Chọn Tiền xử lý dữ liệu > Hiển thị thuộc tính
Giao diện ban đầu của tác vụ Hiển thị thuộc tính.
Hình 3.9. Giao diện của tác vụ Hiển thị thuộc tính
Các thành phần chính:
- Chọn thư mục: Người dùng chọn thư mục chứa hình ảnh và tệp txt chứa
nhãn của hình ảnh tương ứng.
- Hiển thị thuộc tính: Màn hình sẽ hiện ra một bảng dữ liệu chứa thơng tin của
hình ảnh. Bảng dữ liệu gồm n hàng và m cột. Trong đó: n là số lượng hình ảnh có trong thư mục mà người dùng chọn, m là số lượng thuộc tính ứng với mỗi hình ảnh.
- Lưu: Lưu bảng giá trị thuộc tính vừa hiển thị trên màn hình dưới dạng csv.
- Trạng thái: Đưa ra trạng thái của chương trình khi thực hiện một nhiệm vụ
nào đó.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính (mục 3.2) sẽ hiện ra.
Trên màn hình hiện ra, thực hiện chọn thư mục chứa hình ảnh và nhãn đã được hồn thành ở phần Gán nhãn dữ liệu. Nhập đường dẫn bằng cách nhấn vào nút
và chọn đường dẫn mong muốn. Sau khi nhập đường dẫn xong, người dùng nhấn nút Hiển thị thuộc tính, trên màn hình sẽ hiển thị như sau:
Hình 3.10. Bảng thuộc tính của dữ liệu hình ảnh
Sau khi trích xuất thuộc tính xong, bảng hiển thị thuộc tính sẽ hiện ra. Người dùng thực hiện lưu giá trị các thuộc tính trong bảng vào tệp csv bằng cách nhấn nút Lưu.
Tên của tệp csv được lưu theo định dạng list_features_<tên thư mục chứa ảnh đã
phân tách>.csv Ví dụ, người dùng chọn thư mục chứa ảnh đã phân tách có tên là
3.4.2 Huấn luyện mơ hình
Nhiệm vụ chính của tác vụ này là sử dụng các dữ liệu vừa được tạo ra từ tác vụ
Tiền xử lý dữ liệu để thực hiện huấn luyện mơ hình. Trong Huấn luyện mơ hình có 3
mục chính:
+ Rút gọn thuộc tính + Huấn luyện mơ hình + Kiểm thử mơ hình
Hình 3.11. Các thành phần trong Huấn luyện mơ hình
Phần 1: Rút gọn thuộc tính
Chọn Huấn luyện mơ hình > Rút gọn thuộc tính Giao diện chính của tác vụ Rút gọn thuộc tính
Hình 3.12. Giao diện của tác vụ Rút gọn thuộc tính
Các thành phần chính:
- Chọn tệp csv: Người dùng chọn tệp csv chứa thông tin thuộc tính được sinh
ra tại phần Hiển thị thuộc tính.
- Hiển thị thuộc tính: Hiển thị thơng tin trong tệp csv mà người dùng chọn
- Rút gọn thuộc tính: Thực hiện thuật tốn rút gọn số lượng thuộc tính so với
ban đầu. Mục đích: giảm khối lượng tính tốn, giảm thời gian xử lý các thuật toán và đảm bảo vẫn giữ được các giá trị thuộc tính quan trọng.
- Lưu: Lưu các giá trị thuộc tính sau khi đã thực hiện rút gọn thuộc tính dưới
dạng tệp csv và lưu giá trị vị trí quan trọng dưới dạng tệp csv.
- Trạng thái: Đưa ra trạng thái của chương trình khi thực hiện một nhiệm vụ
nào đó.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính sẽ hiện ra.
Trên màn hình hiện ra, người dùng thực hiện chọn tệp csv chứa các giá trị thuộc tính đã được lưu trong bước Tiền xử lý dữ liệu. Nhập đường dẫn bằng cách nhấn vào
nút và chọn đường dẫn mong muốn. Sau khi nhập đường dẫn xong, trên màn hình hiện lên 2 nút để người dùng chọn:
+ Hiển thị thuộc tính: Hiển thị các giá trị thuộc tính trước khi áp dụng thuật tốn rút gọn thuộc tính.
+ Rút gọn thuộc tính: Hiển thị các giá trị thuộc tính sau khi áp dụng thuật tốn rút gọn thuộc tính, số lượng các thuộc tính sẽ giảm đi so với số lượng thuộc tính ban đầu. Trên màn hình sẽ hiển thị các giá trị thuộc tính theo dạng bảng tương tự như phần Hiển thị thuộc tính trong Bước 1.
Lưu ý: Chương trình sẽ cần một lượng thời gian (tùy thuộc vào độ lớn của lượng dữ liệu thuộc tính cần rút gọn) để thực thi thuật tốn rút gọn thuộc tính, người dùng sau khi nhấn nút “Rút gọn thuộc tính” cần chờ đợi để thuật tốn thực hiện, tránh việc nhấn nút nhiều lần có thể dẫn đến cách hiện tượng đơ máy, treo máy, …
Sau khi rút gọn thuộc tính xong, người dùng nhấn nút Lưu để thực hiện lưu các giá trị thuộc tính đã được rút gọn vào tệp csv. Tên của tệp csv được lưu theo định dạng
<tên tệp csv ban đầu>_new.csv; Ví dụ người dùng chọn tệp csv ban đầu có tên list_features_train_80.csv thì tệp csv lưu các thuộc tính đã được rút gọn sẽ có tên list_features_train_80_new.csv; Một tệp csv khác cũng được tạo ra để lưu vị trí các
thuộc tính có tính quan trọng cao nhất với định dạng tên <tên tệp csv ban
đầu>_new_index.csv
Phần 2: Huấn luyện mơ hình
Chọn Huấn luyện mơ hình > Huấn luyện mơ hình Giao diện chính của tác vụ Huấn luyện mơ hình
Hình 3.13. Giao diện của tác vụ Huấn luyện mơ hình
Các thành phần chính:
- Chọn tệp csv: Người dùng chọn tệp csv chứa dữ liệu các giá trị thuộc tính sau
khi đã thực hiện rút gọn thuộc tính tại phần Rút gọn thuộc tính.
- Huấn luyện mơ hình: Chương trình sẽ sử dụng dữ liệu trong tệp csv để huấn
luyện mơ hình phân lớp SVM.
- Lưu mơ hình: Lưu mơ hình SVM đã được huấn luyện dưới dạng tệp .sav
- Trạng thái: Đưa ra trạng thái của chương trình khi thực hiện một nhiệm vụ
nào đó.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính sẽ hiện ra.
Trên màn hình hiện ra, người dùng thực hiện chọn tệp csv chứa các giá trị thuộc
tính đã được rút gọn. Nhập đường dẫn bằng cách nhấn vào nút và chọn đường dẫn mong muốn. Người dùng nhấn nút Huấn luyện mơ hình để thực hiện huấn luyện mơ hình phân lớp SVM với tập thuộc tính vừa chọn ở phần trên, màn hình giao diện sẽ hiển thị như sau:
Hình 3.14. Huấn luyện mơ hình phân lớp
Sau khi huấn luyện mơ hình xong, thơng báo sẽ được hiển thị tại mục Trạng thái Đồ thị biểu diễn sự phân bố của các giá trị thuộc tính trong khơng gian. Trong đó chấm màu xanh tương ứng với nhãn 1 (có tàu thuyền) và chấm màu đỏ tương ứng với nhãn 0 (khơng có tàu thuyền).
Người dùng thực hiện lưu mơ hình SVM vừa huấn luyện được bằng cách nhấn vào nút
Lưu mơ hình. Tên của tệp lưu mơ hình SVM vừa huấn luyện có định dạng <tên tệp
csv chứa thuộc tính đã rút gọn>.sav; Ví dụ người dùng chọn tệp chứa dữ liệu đầu vào
cho mơ hình SVM có tên là list_features_train_80_new.csv thì tên mơ hình được lưu sẽ có tên list_features_train_80_new.sav
Phần 3: Kiểm thử mơ hình
Chọn Huấn luyện mơ hình > Kiểm thử mơ hình Giao diện chính của tác vụ Kiểm thử mơ hình
Hình 3.15. Giao diện của tác vụ Kiểm thử mơ hình
Các thành phần chính:
- Chọn thư mục ảnh: Người dùng chọn thư mục chứa hình ảnh với nhiệm vụ
kiểm tra độ chính xác của mơ hình SVM
- Chọn tệp csv vị trí: Người dùng chọn tệp csv chứa giá trị các vị trí quan
trọng của chuỗi các thuộc tính
- Chọn mơ hình SVM: Người dùng chọn mơ hình SVM được lưu tại phần Huấn luyện mơ hình.
- Chạy mơ hình: Thực hiện kiểm thử độ chính xác của mơ hình SVM trên tập
dữ liệu được lựa chọn tại mục Chọn thư mục hình ảnh
- Trạng thái: Đưa ra trạng thái của chương trình khi thực hiện một nhiệm vụ
nào đó.
- Trở về màn hình chính: Khi nhấn vào nút này, màn hình tiền xử lý dữ liệu sẽ
đóng lại và màn hình chính sẽ hiện ra.
Trên màn hình hiện ra, người dùng thực hiện chọn các mục sau:
- Chọn thư mục ảnh: Người dùng chọn thư mục chứa hình ảnh kiểm thử (đã
kiểm thử này, người dùng cần thực hiện các bước tương tự trong mục Tiền xử
lý dữ liệu > Nạp dữ liệu và Tiền xử lý dữ liệu > Gán nhãn dữ liệu.
- Chọn tệp csv vị trí: Người dùng thực hiện chọn tệp csv chứa thơng tin vị trí
của các thuộc tính quan trọng được tạo ra tại mục Rút gọn thuộc tính.
- Chọn mơ hình SVM: Người dùng chọn tệp lưu mơ hình SVM được lưu ở
phần Huấn luyện mơ hình. Người dùng nhấn nút Chạy mơ hình để thực hiện kiểm thử độ chính xác của mơ hình phân lớp SVM với tập thuộc tính mới được tạo ra từ mục Chọn thư mục ảnh, màn hình giao diện sẽ hiển thị như sau:
Hình 3.16. Giao diện Kiểm thử mơ hình phân lớp
Sau khi quá trình kiểm thử thực hiện xong, tại phần Trạng thái sẽ hiển thị độ chính xác của mơ hình SVM với tệp dữ liệu mới. Đồ thị biểu diễn sự phân bố của các giá trị thuộc tính trong khơng gian. Trong đó chấm màu xanh tương ứng với nhãn 1 (có tàu thuyền) và chấm màu đỏ tương ứng với nhãn 0 (khơng có tàu thuyền).
3.4.3 Thực thi mơ hình
Nhiệm vụ chính của tác vụ này là sử dụng mơ hình SVM để đưa ra dự đốn có tàu - thuyền hay khơng có tàu - thuyền trên hình ảnh. Trong “Thực thi mơ hình” chỉ có 1
mục chính:
Hình 3.17. Các thành phần trong Dự đốn tàu thuyền
Chọn Thực thi mơ hình > Dự đốn tàu thuyền Giao diện chính của tác vụ Dự đốn tàu thuyền:
Các thành phần chính:
- Chọn ảnh: Người dùng chọn hình ảnh cần dự đốn có tàu thuyền hay khơng.
- Chọn mơ hình: Người dùng chọn mơ hình SVM
- Chọn csv vị trí: Người dùng chọn tệp csv chứa giá trị các vị trí quan trọng
trong tập thuộc tính của các hình ảnh.
- Hiển thị lưới: Màn hình sẽ hiện ra các ơ lưới với kích thước bằng với kích