Áp dụng độ đo entropy cho bài toán tách đặc trưng của bọt khí trên video và đề xuất kết hợp SVM cho vấn đề tự động theo dõi sục khí tại trạm quan trắc môi trường - 8

Tiếp cận thuật toán học theo hướng tiếp cận thuật toán SVM trong thư viện mã nguồn mở OpenCV cài đặt trên Visual Studio /C++, sử dụng hàm train và thiết lập kiểu của SVM mặc định là 0, thiết lập kiểu cho hàm SVM ở đây là kiểu tuyến tính (Linear), thiết lập tham số gamma cho hàm nhân ở đây gamma =3, thiết lập tham số degree = 3 và thiết lập tham số TermCriteria cụ thể như sau:

params.svm_type = CvSVM::C_SVC; params.kernel_type = CvSVM::LINEAR; params.gamma = 3;

params.degree = 3;

params.term_crit = cvTermCriteria (CV_TERMCRIT_ITER, 200, 1e-16); để huấn luyện phân lớp và xác đinh được đường phân tách 2 lớp dữ liệu này.

Từ đây, lưu lại mô hình huấn luyện phân lớp này để phục vụ kiểm thử và áp dụng nhận dạng ảnh bọt khí, mô hình này sau đây tôi gọi là: (Model_SVMCanny).

4.3.2. Thực hiện nhận dạng với mô hình

Thử nghiệm test nhận dạng cho 4 video clip từ 4 camera tương ứng 4 trạm khác nhau (với 8.805 frame ảnh cho 1 clip), bằng cách load tất cả các frame từ 4 clip này, xử lý, phân tích, trích chọn đặc trưng và đưa vào so sánh với mô hình phân lớp Model_SVMCanny đã huấn luyện và xác định được các mẫu nằm ở bên lớp ảnh có bọt khí (bể được sục khí) hay bên lớp ảnh không có bọt khí (bể không được sục khí).

Độ chính xác của mô hình phân lớp và nhận dạng được tính bằng tỷ số giữa số mẫu được phân lớp đúng trên tổng số mẫu của video clip được kiểm thử cho trường hợp có bọt khí và trường hợp không bọt khí ứng với từng trạm.

4.2.3. Kết quả thực nghiệm và đánh giá

Với phương pháp ứng dụng này, qua thực nghiệm cho thấy kết quả phân loại và nhận dạng chính xác các trường hợp ảnh có bọt khí (bể có sục khí) và ảnh không có bọt khí (bể không được sục khí) như bảng (4.2) dưới đây:


Trạm (Clip)

Tổng số

frame ảnh

Số frame có bọt

Số frame

không bọt

Kết quả nhận dạng đúng

(Lớp 1)

Tỷ lệ chính xác

Kết quả nhận dạng đúng

(Lớp 2)

Tỷ lệ chính xác

01

8805

7610

1195

7610

100 %

1195

100 %

02

8805

7510

1295

7510

100 %

1295

100 %

03

8805

6969

1836

6969

100 %

1836

100 %

04

8805

7970

835

7970

100 %

835

100 %

Có thể bạn quan tâm!

Xem toàn bộ 69 trang tài liệu này.

Áp dụng độ đo entropy cho bài toán tách đặc trưng của bọt khí trên video và đề xuất kết hợp SVM cho vấn đề tự động theo dõi sục khí tại trạm quan trắc môi trường - 8

Bảng 4.2: Kết quả nhận dạng ảnh (trường hợp dò biên Canny)

Với việc nhận dạng đến đâu sẽ xuất hiển thị thông tin trên màn hình cho tất các các trường hợp frame ảnh là có bọt khí hay không bọt khí và báo động bằng tiếng bíp cho trường hợp khi frame ảnh không có bọt khí (khi bể không được sục khí). Đồng thới cũng lưu lại thông tin cho trường hợp không bọt khí (khi bể không được sục khí) theo thời điểm thời gian cụ thể dưới dạng văn bản để làm cơ sở cảnh báo trên file csv có dạng như sau:

Ngày

Trạng thái không có bọt khí

Camera

Thu Jan 31 10:22:50 2019

Tram so 01 khong co bot khi

Trạm 01

Thu Jan 31 10:35:17 2019

Tram so 03 khong co bot khi

Tram 03

Thu Jan 31 10:39:07 2019

Tram so 02 khong co bot khi

Tram 02

Thu Jan 31 10:58:53 2019

Tram so 04 khong co bot khi

Tram 04

Mon Feb 11 13:36:22 2019

Tram so 03 khong co bot khi

Trạm 03

Mon Feb 11 13:51:50 2019

Tram so 02 khong co bot khi

Tram 02

Mon Feb 11 13:58:14 2019

Tram so 01 khong co bot khi

Tram 01

Mon Feb 11 13:59:35 2019

Tram so 04 khong co bot khi

Tram 04

Wed Mar 06 21:15:22 2019

Tram so 01 khong co bot khi

Trạm 01

Wed Mar 06 21:32:22 2019

Tram so 04 khong co bot khi

Tram 04

Wed Mar 06 21:46:22 2019

Tram so 03 khong co bot khi

Tram 03

Wed Mar 06 21:55:22 2019

Tram so 02 khong co bot khi

Tram 02

Bảng 4.3: Minh hoạ lưu kết quả nhận dạng ảnh trên màn hình và lưu file csv


Như vậy, với phương pháp ứng dụng này, qua thực nghiệm cho thấy kết quả phân loại chính xác cao, nhận diện chính xác các frame ảnh đưa vào thuộc lớp 1 (có bọt khí) hay lớp 2 (không có bọt khí) với kết quả có thể nói là 100%. Đồng thời phương pháp này được cài đặt trên Visual Studio / C++ tích hợp thư viện mã nguồn mở về thị giác máy tính

OpenCV nên việc đóng gói dữ liệu và phần mềm cũng dễ dàng và đơn giản hơn, có thể đưa vào ứng dụng thực tế được ngay.


4.4. KẾT LUẬN CHUNG VÀ ĐỀ XUẤT

Luận văn đã nghiên cứu tổng quan về một số phương pháp xử lý, phân tích và trích chọn đặc trưng ảnh theo 2 hướng:

- Hướng trích chọn đặc trưng bằng việc xác định giá trị Entropy cho các điểm ảnh (pixel) để xác định độ bất định các ảnh có các pixel ảnh có khả năng là ảnh có bọt khí hay không bọt khí. Sau đó sử dụng Fuzzy logic bằng việc sử dụng 1 hàm Activation để khử các những pixel ảnh không rõ ràng là bọt khí hay không (trường hợp Entropy gần bằng 0), tức làm giảm bớt đi sự mập mờ trường hợp không rõ ràng là bọt khí hay không này. Đồng thời sử dụng phép biến đổi Wavelet harr để giảm kích thước dữ liệu ảnh về một dạng nhỏ mà tại đây vẫn hội đủ các thông tin quan trọng cho các pixel ảnh nhằm thu gọn lại dữ liệu để huấn luyện (training) nhanh hơn.

- Hướng trích chọn đặc trưng bằng ứng dụng các phương pháp và kỹ thuật dò biên ảnh Gradient (bằng việc sử dụng một số phương pháp như: Roberts, Prewitt, Sobel, Canny) dựa vào tính giá trị cực đại và cực tiểu của đạo hàm bậc nhất của ảnh. Từ đó so sánh các kết quả và chọn ra phương pháp phù hợp là phương pháp Canny, mang lại những frame ảnh có chất lượng biên tốt nhất để huấn luyện phân lớp mẫu ảnh phục vụ cho bài toán nhận dạng ảnh bọt khí.

Luận văn này cũng nghiên cứu một số thuật toán học và quyết định tiếp cận thuật toán SVM để phân lớp dữ liệu mẫu ảnh nhằm ứng dụng cho việc nhận dạng phát hiện việc bể nuôi vi sinh có được sục khí thường xuyên hay không. Với khả năng vượt trội của thuật toán học Support Vector Machine (SVM) về tính hiệu quả, độ chính xác, khả năng xử lý các bộ dữ liệu một cách linh hoạt, việc sử dụng SVM là sự lựa chọn tối ưu nhất trong việc giải quyết các bài toán phân loại dự báo như bài toán phân lớp dữ liệu ảnh bọt khí này.

Trên cơ sở đó, tiến hành cài đặt thử nghiệm huấn luyện với 2 hướng như sau:

- Hướng xứ lý trích bằng phương pháp Entropy và Fuzzy logic:

Hướng này huấn luyện cho 80 tập dữ liệu gồm 8.000 frame ảnh (mỗi tập là 100 frame ảnh) cho ảnh có bọt khí (tương ứng bể nuôi vi sinh được sục khí) và ảnh không bọt khí (tương ứng bể không được sục khí) chia đều theo thời gian và số lượng cho 4 video clip (trên dưới 10.000 frame ảnh cho mỗi video clip) của 4 bể nuôi vi sinh tương ứng 4 trạm khác nhau lấy từ đơn vị quan trắc môi trường Bình Dương.

Đồng thời test kiểm thử cho một số tập ảnh (mỗi tập là 100 frame ảnh) lấy ngẫu nhiên hoặc chia đều theo thời gian trích xuất từ 4 video clip ở 4 trạm khác nhau (mỗi video clip tương ứng từ 8805 đến 15000 frame ảnh) và đạt được kết quả phân loại với độ chính xác tương đối cao như bảng (4.1) trên.

- Hướng xứ lý phân tích bằng phương pháp tìm biên Canny:

Hướng này huấn luyện cho 400 frame ảnh (200 frame ảnh có bọt khí và 200 frame ảnh không có bọt khí) chia đều theo thời gian và số lượng cho 4 video clip trích xuất từ 4 bể nuôi vi sinh cho 4 trạm khác nhau lấy từ đơn vị quan trắc môi trường Bình Dương.

Đồng thời thử nghiệm test nhận dạng cho 4 video clip ở 4 trạm khác nhau (tương ứng 8805 frame ảnh cho mỗi clip) và đạt được kết quả nhận dạng đúng 100% như bảng (4.2) trên.

Từ đây, có thể thấy rằng phương pháp phân lớp sử dụng máy vectơ hỗ trợ SVM là phương pháp dựa trên việc cực đại hóa dải biên phân lớp (max margin classification) và việc lựa chọn các hàm nhân (kernel) phù hợp. Vì vậy, đối với tham số kernel_type là tuyến tính, nên cần cung cấp thêm giá trị của các tham số gamma - thuộc tính hàm nhân (chọn gamma = 3) và tham số degree - thuộc tính mức lề tối ưu trong hàm svmtrain (chọn degree = 3) để so sánh độ chính xác của mô hình. Trong phần thực nghiệm này của luận văn đã áp dụng thuật toán SVM trong bộ thư viện OpenCV và tìm tìm giá trị tối ưu cho tham số gamma và degree.

Sau khi đã chọn được các tham số gamma và degree tối ưu, bộ phân loại SVM sẽ thực hiện phân loại trên dữ liệu kiểm thử, và độ chính xác tính được trong trường hợp này là 100% (với degree = 3 và gamma = 3). Nếu thực nghiệm trên cùng bộ dữ liệu với tham số gamma khác sẽ cho kết quả là thiếu chính xác hơn (dưới 100%), ảnh bị phân lớp sai sẽ xảy ra.

Quá trình chọn các tham số phù hợp cho hàm huấn luyện svmtrain được thực hiện qua thực nghiệm, và đánh giá kết quả phân lớp chính xác của mô hình. Đối với các tham số lựa chọn với trường hợp (degree = 3 và gamma = 3) cho kết quả chính xác cao nhất. Nếu chọn các tham số không phù hợp sẽ dẫn đến một số ảnh bị phân lớp sai, dễ gây lầm lẫn trong quá trình phân lớp. Các yếu tố về điều kiện ánh sáng hay có sóng nước vì gió thổi cũng ảnh hưởng tới quá trình phân lớp.

Như vậy, qua quá trình nghiên cứu và kết quả thực nghiệm tôi đề xuất với hai phương pháp trích chọn đặc trưng ảnh như sau:

- Phương pháp thứ nhất: Trích chọn đặc trưng ảnh bọt khí bằng việc ứng dụng độ đo Entropy cho từng điểm ảnh để xác định độ bất định cho những điểm ảnh thuộc khu vực ảnh có bọt khí hay không có bọt khí. Đồng thời kết hợp với Fuzzy Logic với việc sử dụng 1 hàm Activation như đã trình bày ớ các chương 1 và chương 2 trên để làm giảm đi sự mập mờ về ảng là có bọt khí hay không cho trường hợp giá trị Entropy gần với 0. Ở phương pháp này cũng cần sử dụng phép biến đổi Wavelet để thu nhỏ dữ liệu nhằm huấn luyện phân lớp (training) nhanh hơn.

- Phương pháp thứ nhất: Trích chọn đặc trưng ảnh bọt khí bằng việc ứng ứng dụng bộ lọc Canny để đưa ra những đường biên tốt nhất cho từng ảnh nhằm học phân biệt được ảnh là có bọt khí hay không.

Từ đó để có thể lấy mẫu và huấn luyện phân lớp để có được mô hình phân lớp tốt nhất có thể nhằm sử dụng cho bài toán nhận dạng ảnh bọt khí ứng dụng cho việc quản lý, giám sát quá trình sục khí cho các bể nuôi vi sinh. Đồng thời có thể giúp cho các đơn vị quan trắc môi trường hay các công ty sản xuất có nước xả thải có thể xử lý tốt hơn trước khi xả thải ra môi trường. Nhất là đối với hướng ứng dụng phương pháp canny được cài đặt trên Visual Studio C++ và sử dụng thư viện mã nguồn mở OpenCV có kết quả nhận dạng với độ chính xác rất cao và thuận tiện cho xây dựng chương trình ứng dụng, đóng gói dữ liệu và có thể đưa vào ứng dụng thực tế được ngay cho các camera giám sát bể nuôi vi sinh.


Tiếng Việt:

TÀI LIỆU THAM KHẢO

[1]. Đỗ Năng Toàn, Phạm Việt Bình (2008), Giáo trình xử lý ảnh - ĐH Thái Nguyên,

Nxb Khoa học và kỹ thuật, 2007.

[2]. Đỗ Năng Toàn (2010), Xử lý ảnh – Học viện bưu chính viễn thông, Nxb Khoa học và Kỹ thuật, 2013.

[3]. Lương Mạnh Bá, Nguyễn Thanh Thủy (2003), Nhập Môn Xử lý ảnh số, Nxb Khoa học và Kỹ thuật, 2002.

[4]. Nguyễn Quang Hoan (2006), Tài liệu xử lý ảnh đào tạo từ xa – Học viện bưu chính viễn thông, Lưu hành nội bộ Hà Nội 2016.

[5]. Phạm Việt Thắng (2012), “Bài toán làm trơn ảnh” – Luận văn Đại Học, Khoa Công Nghệ Thông Tin, Trường Đại Học Hải Phòng.

[6]. Nguyễn Vĩnh An (2015), “So sánh một số phương pháp phát hiện biên”, Tạp chí Khoa học ĐHQGHN: Khoa học Tự nhiên và Công nghệ, Tập 31, Số 2 (2015) 1-7

[7]. Phạm Việt Bình, Cao Lê Mạnh Hà, Đỗ Năng Toàn (2005), “Một cách tiếp cận mới trong phát hiện biên của ảnh đa cấp xám”, Kỷ yếu Hội thảo Quốc gia lần thứ 8 - Một số vấn đề chọn lọc của Công nghệ Thông tin và Truyền thông, Hải Phòng 25-27/08/2005, Nxb KH&KT, Hà Nội 2006, 92-102.

[8]. Lê Quyết Thắng, Phan Tấn Tài, Dương Văn Hiếu (2006), Giáo trình Lý Thuyết Thông Tin – Khoa Công Nghệ Thông Tin và Truyền Thông, Đại học Cần Thơ. (http://www.academia.edu/11382932/Giáo_trình_Lý_thuyết_thông_tin)

[9]. Nguyễn Hoàng Phương, Bùi Công Cường, Nguyễn Doãn Phước, Phan Xuân Minh, Chu Văn Hỷ (1998), Hệ mờ và ứng dụng, NXB Khoa Học và Kỹ Thuật, Hà Nội - 1998.

[10]. Bùi Công Cường, Nguyễn Doãn Phước (2001), Hệ mờ, mạng nơron và ứng dụng, NXB Khoa Học và Kỹ Thuật, TP. Hồ Chí Minh.

[11]. https://machinelearningcoban.com/2016/12/27/categories/

[12]. Phan Thị Thu Hằng, Đoàn Thị Thu Hà, Nguyễn Thị Thủy (2013), “Ứng dụng phân lớp ảnh chụp lá cây bằng phương pháp SVM”, Tạp chí Khoa học và Phát triển 2013, tập 11, số 7: 1045-1052.

[13]. Nguyễn Thị Thảo, Nguyễn Thị Huyền, Đoàn Thị Thu Hà (2011), “Phương pháp phân lớp sử dụng máy vecto hổ trợ ứng dụng trong Tin Sinh học”, Tạp chí Khoa học và Phát triển 2011: Tập 9, số 6: 1021 - 1031 Trường Đại Học Nông Nghiệp Hà Nội.

[14]. Trần Cao Đệ, Phạm Nguyên Khang (2012). “Phân loại văn bản với máy học vector hỗ trợ và cây quyết định”, Tạp chí Khoa học 2012:21a 52-63, trường Đại học Cần Thơ.

[15]. Nguyễn Thị Oanh, Phùng Văn Tám, “Khả năng ứng dụng phân loại bề mặt lớp phủ bằng Thuật toán Support Vector Machine”, Tạp chí Khoa học và Công nghệ Lâm nghiệp, Số 1-2015.

[16]. Trịnh Văn Dũng, Trần Nguyễn Thanh Tuyền (2019), “Ứng dụng kỹ thuật tìm biên ảnh Canny và thuật toán học SVM vào bài toán nhận dạng ảnh xác định bể nuôi vi sinh có được sục khí hay không”, Khoa Kỹ thuật – Công nghệ, Đại học Thủ Dầu Một.

[17]. Nguyễn Hải Đăng, Trịnh Văn Dũng (2019), “Kết hợp phương pháp phân cụm với mô hình biểu diễn phân bố giao thông theo không gian – thời gian trong tình hình đánh giá tình trạng giao thông đo thị”, Khoa Kỹ thuật – Công nghệ, Đại học Thủ Dầu Một.

[18]. Trần Nguyễn Thanh Tuyền, Trịnh Văn Dũng (2019), “Ứng dụng mạng nơ ron tích chập trong nhận dạng ảnh trên điện thoại di động”, Khoa Kỹ thuật – Công nghệ, Đại học Thủ Dầu Một.

[19]. Trần Ngọc Tú (2010), “Ứng dụng phép biến đổi Wavelet trong xử lý ảnh”,

Luận văn thạc sỹ kỹ thuật – Đại Học Bưu Chính Viễn Thông Hà Nội

Tiếng Anh:

[20]. Claude Shannon (1948), “A Mathematical Theory of Communication”, trên tạp chí The Bell System Technical Journal.

[21]. Geoffrey Davis, Arina Nosratinia (1997), “Waveled-Based Image Encoding - Overview”

[22]. Rafael C. Gonzalez and Richard E. Woods, “Digital Image Processing”, 2nd edition, Prentice- Hall, Inc, 2002.

[23]. Raman Maini and Dr. Himanshu Aggarwai, “Study and Comparison of various Image Edge Detection Techniques”, International journal of Image Processing, Volume 3, Issue 1.

[24]. Beant Kaur, Anil Garg, “Comparative study of different edge detection techniques”, International journal of Engineering Science and Technology (IJEST), vol. 3, No. 3 March 2011.

[25]. Sonam Saluja, Aradhana Kumari Singh and Somu Agrawal, “A Study of Edge- Detection Methods”, International journal of Advanced Research in Computer and Communication Engineering, Vol 2, Issue 1, 2013, pp. 103-106.

[26]. Mark S. Nixon and Alberto S. Aguado (2002), Feature Extraction and Image Processing, Newnes, Oxford Auckland Boston Johannesburg Melbourne New Delhi.

[27]. Cortes C, Vapnik V (1995), Support vector networks. Machine Learning,

20:273-297.

[28]. Zien A, Rätsch G, Mika S, Schölkopf B, Lengauer T, Müller KR (2000). Engineering Support Vector Machine Kernels That Recognize Translation Initiation Sites, BioInformatics, 16(9):799-807.

Xem tất cả 69 trang.

Ngày đăng: 13/03/2023
Trang chủ Tài liệu miễn phí