Nghiên cứu phát hiện vết nứt trên vỏ trứng cút dùng xử lý ảnh và mạng nơron
Tóm tắt Nghiên cứu phát hiện vết nứt trên vỏ trứng cút dùng xử lý ảnh và mạng nơron: ...trong đó có 90 trứng có vệt máu, 297 trứng bị nứt và 96 trứng có vết bẩn. Năm 1998, [4] V.C.Patel và cộng sự đã phát triển thêm so với phương pháp trong [3] bằng việc sử dụng ảnh màu thay cho ảnh xám, các giá trị ngõ vào mạng nơ ron là 384 giá trị histogram ảnh màu, cụ thể là 128 giá trị histogr...t visual studio 2010 với sự hỗ trợ của thư viện Opencv (Open Source Computer Vision) phiên bản 2.2. Opencv là một thư viện mã nguồn mở, được xây dựng với nhiều công cụ xử lý ảnh mạnh mẽ (hơn 500 hàm chức năng, 2500 thuật toán) và rất thông dụng. Thư viện opencv thích hợp chạy trên nền C/C++ và tr... xử lý ảnh số nhằm lọc nhiễu, cải thiện chất lượng ảnh và phân đoạn, khoanh vùng vị trí, biên dạng trứng. Sau đó dùng một mặt nạ hình elip để loại bỏ vùng không gian xung quanh, chỉ giữ lại vùng không gian ảnh của trứng cần phân tích, điều này cũng giúp giảm bớt ảnh hưởng của môi trường bên ngoà...
Tạp chí Tin học và Điều khiển học, T.29, S.2 (2013), 186–196 NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT DÙNG XỬ LÝ ẢNH VÀ MẠNG NƠRON ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN Khoa Cơ khí, Trường ĐH Bách khoa Tp. Hồ Chí Minh Tóm tắt. Bài báo đề xuất phương pháp mới trong việc phát hiện vết nứt trên vỏ trứng cút, phương pháp này dùng kết hợp xử lý ảnh với mạng nơ ron. Giá trị histogram của ảnh rọi trứng cút được sử dụng làm dữ liệu huấn luyện mạng và kiểm tra độ chính xác của phương pháp đề xuất. Đầu tiên, các ánh sáng trắng, vàng, đỏ từ led luxeon được sử dụng để thử nghiệm và lựa chọn ánh sáng thích hợp cho việc rọi trứng cút. Trong đó, ánh sáng vàng cho kết quả tốt hơn ánh sáng trắng và đỏ, vết nứt hiển thị rõ hơn, sai lệch histogram ảnh rọi giữa trứng có vết nứt và trứng còn nguyên cũng lớn hơn. Kết quả bước đầu đạt được với độ chính xác là 85,1% cho trường hợp trứng không vết nứt, 87,98% cho trường hợp trứng có vết nứt và mức chính xác trung bình đạt được là 86,54%. Từ khóa. Phân loại trứng cút, xử lý ảnh, mạng nơron. Abstract. This paper proposed a new method to detect cracks on the quail egg shell, which was used image processing combined with neural network. Histogram of many images of candling quail egg was used as training data for neural network and to check the accuracy of the proposed method. First, the white light, yellow and red of LED Luxeonwas used to test and select the appropriate light for the illumination of quail eggs. In particular, the result was better for the yellow light. Cracks was showed clearly, bias histogram of images of candling quail egg between egg cracks and intact eggs was largerthan the red and the white light. Initial results achieved with an accuracy of 85,1% for the eggs without cracking, 87,98% for the case of cracks‘ and the average accuracy was86,54%. Key words. Quail eggs grading, image processing, neural networks. 1. ĐẶT VẤN ĐỀ Trứng là loại thực phẩm rất quen thuộc với con người, rất thuận tiện, dễ chế biến, nhiều giá trị dinh dưỡng và phù hợp với mọi lứa tuổi. Năm 1964 tại thủ đô của Italia, Hội đồng quốc tế về trứng gia cầm (IEC- International Egg Commission) đã đề nghị chọn ngày thứ sáu của tuần thứ hai trong tháng 10 hàng năm làm “Ngày thế giới về trứng gia cầm” (World Egg Day). Đây là sự ghi nhận và tôn vinh của con người trên toàn thế giới về giá trị tuyệt vời của trứng với sức khoẻ. Theo tạp chí Sức khỏe của Mỹ khuyến cáo, sáu loại trứng sau đây là những thực phẩm có lợi cho sức khỏe con người: trứng vịt, trứng cút, trứng ngỗng, trứng đà điểu, trứng gà tây và trứng gà (Rodale Institute, 4.2012). Tại Việt nam, trứng cút đã và đang là một nguồn thực phẩm thông dụng và có nhu cầu cao. Tuy nhiên, việc sản xuất con giống vẫn đang là vấn đề nan giải. Hiện nay, việc phát hiện và phân loại trứng nứt vẫn còn làm thủ NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT 187 công với năng suất và độ chính xác thấp khiến tỉ kệ hao hụt trong việc ấp trứng còn khá cao do không phát hiện được trứng nứt để có thể loại bỏ trước khi ấp. Việc phát hiện vết nứt trên trứng cút thành công sẽ là cơ sở cho bài toán phân loại trứng cút tự động sau này. Vết nứt trên vỏ trứng cút thường xuất hiện trong quá trình vận chuyển khi chưa đóng gói, các vết nứt này có mức độ, hình dạng, vị trí khác nhau. Ngoài ra, những vệt màu trên bề mặt vỏ trứng cút cũng phân bố một cách ngẫu nhiên. Vì vậy, cần một phương pháp có khả năng đáp ứng tốt trong điều kiện này. Theo tìm hiểu của nhóm nghiên cứu, các nghiên cứu về vấn đề tương tự với trứng gà được tiến hành khá nhiều trên thế giới và có phương pháp đã được áp dụng rộng rãi trong sản xuất, mang lại hiệu quả kinh tế cao. Năm 1991, bài báo [1] của tác giả R.T. Elster và cộng sự đã áp dụng công nghệ xử lý ảnh vào việc phát hiện vết nứt của vỏ trứng. Tác giả đã tiến hành thử nghiệm với trứng gà, bằng cách đặt trứng cần phân tích trên đèn soi và bên trên đặt một camera quan sát có tác dụng ghi nhận ảnh phục vụ cho việc phân tích. Tác giả đã tiến hành thử nghiệm trên 113 trứng gà loại A với độ chính xác đạt được là 96%. Năm 1992, tác giả J.W. Goodrum và các cộng sự [2] cũng đã tiến hành phân tích phát hiện vết nứt trên vỏ trứng gà bằng công nghệ xử lý ảnh. Tác giả đã có những cải tiến so với [12] bằng cách đặt trứng cần phân tích lên hệ thống con lăn, điều này cho phép quan sát ở nhiều góc độ khác nhau. Mỗi trứng, tác giả phân tích ảnh ở 3 góc độ lệch nhau 120 độ, điều này giúp việc phân tích trứng được chính xác hơn. Năm 1996, tác giả V.C.Patel và cộng sự [3] đã sử dụng công nghệ xử lý ảnh kết hợp với mạng nơ ron trong việc phát hiện các vệt máu bên trong trứng và vết nứt, vết bẩn ở vỏ trứng. Tác giả tiến hành phân tích và huấn luyện mạng nơ ron bằng các giá trị phân bố màu (histogram) ảnh xám. Trong việc phát hiện vết máu, V.C.Patel và các cộng sự đã sử dụng mạng nơ ron 3 lớp với 256 ngõ vào (tương ứng với 256 giá trị của histogram), 32 nút ở lớp ẩn và 1 ngõ ra. Độ chính xác của phương pháp đạt được là 90% khi tiến hành huấn luyện với 180 mẫu và kiểm tra 10.000 trứng, trong đó có 90 trứng có vệt máu, 297 trứng bị nứt và 96 trứng có vết bẩn. Năm 1998, [4] V.C.Patel và cộng sự đã phát triển thêm so với phương pháp trong [3] bằng việc sử dụng ảnh màu thay cho ảnh xám, các giá trị ngõ vào mạng nơ ron là 384 giá trị histogram ảnh màu, cụ thể là 128 giá trị histogram ảnh đơn sắc đỏ (kết hợp 2 giá trị liên tiếp trong 256 giá trị histogram), 128 giá trị histogram ảnh đơn sắc xanh lá và 128 giá trị histogram ảnh đơn sắc xanh dương. Cấu trúc mạng được sử dụng cho việc phát hiện vết máu là 384 ngõ vào, 24 nút lớp ẩn, 1 ngõ ra và thay đổi số nút lớp ẩn thành 40 cho việc phát hiện vết bẩn. Độ chính xác trung bình của phương pháp là 92,8% cho phát hiện vệt máu, 85% cho phát hiện bẩn và 87,8% cho phát hiện vết nứt. Để lấy được vùng không gian trứng cần phân tích, loại bỏ vùng không gian xung quanh, H.R. Pourreza và cộng [6] đã sử dụng một mặt nạ hình elip. Hình elip sử dụng có kích thước nhỏ hơn kích thước trứng và có góc lệch tương ứng với góc lệch của trứngcần phân tích. Ngoài phương pháp thu nhận ảnh rọi là ánh sáng xuyên qua trứng, Loredana Lunadei và công sự [8] đã sử dụng ánh sáng phản xạ từ trứng để ghi nhận và phân tích. Độ chính xác đạt được của phương pháp này là 97% khi áp dụng trên trứng gà.Đối với trường hợp các vết nứt nhỏ, tác giả K.C. Lawrence và cộng sự [7] đã đề xuất phương pháp dùng thay đổi áp suất khi thu nhận ảnh rọi của trứng gà. Phương pháp này đã phát huy hiệu quả với độ chính xác đạt được là 99,6%. Hiện nay, nhóm nghiên cứu vẫn chưa tìm được tài liệu nghiên cứu nào của các 188 ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN tác giả trong và ngoài nước về việc phát hiện vết nứt trên vỏ trứng cút. Có thể vì lý do trứng cút có kích thước nhỏ (dài×rộng = 34,87×26,2mm), vỏ trứng mỏng (0,27mm) [5], những vệt màu xuất hiện ngẫu nhiên trên vỏ trứng cút gây khó khăn cho việc phân tích và xử lý. Vì vậy, nhóm nghiên cứu muốn tìm hiểu và phát triển một phương pháp có thể học theo cách quan sát của con người trong việc phát hiện vết nứttrên vỏ trứng cút. 2. PHƯƠNG ÁN ĐỀ XUẤT Nhóm nghiên cứu sẽ tập trung vào việc nhận dạng sự tồn tại của vết nứt trên vỏ trứng cút bằng công nghệ xử lý ảnh và sử dụng kết hợp mạng nơ ron hồi tiếp. Trong quá trình thử nghiệm, nhóm nghiên cứu nhận thấy đèn rọi trứng ảnh hướng nhiều đến khả năng hiển thị của vết nứt trên vỏ trứng cút. Vì vậy, nhóm nghiên cứu sẽ tiến hành một số so sánh để lựa chọn ánh sáng phù hợp cho việc rọi trứng cút. Màu sắc ánh sáng được sử dụng trong quá trình thực nghiệm và so sánh là ánh sáng từ led luxeon với ba màu: trắng, vàng, đỏ. Để tạo tập mẫu phục vụ cho việc huấn luyện mạng nơ ron và kiểm tra độ chính xác của phương pháp, mỗi trứng cút được chụp ở ít nhất 3 góc độ khác nhau (xoay quanh trục đối xứng của trứng) nhằm phát hiện sự tồn tại của vết nứt được chính xác hơn. Các thông số của tập mẫu là các giá trị histogram của ảnh rọi trứng cút. Ảnh rọi được sử dụng là ảnh màu loại 8 bit, thuộc không gian màu RGB. Các giá trị ngõ vào của mạng nơ ron là tập hợp của 768 giá trị histogram, trong đó gồm 256 giá trị histogram ảnh màu đỏ, 256 giá trị histogram ảnh màu xanh lá và 256 giá trị histogram ảnh màu xanh dương. Trong đề tài này, nhóm nghiên cứu đã kết hợp thuật toán di truyền để tìm ra số nút lớp ẩn cho cấu hình mạng nơ ron, mạng nơ ron sử dụng là mạng 3 lớp.Chương trình được viết trên phần mềm Microsoft visual studio 2010 với sự hỗ trợ của thư viện Opencv (Open Source Computer Vision) phiên bản 2.2. Opencv là một thư viện mã nguồn mở, được xây dựng với nhiều công cụ xử lý ảnh mạnh mẽ (hơn 500 hàm chức năng, 2500 thuật toán) và rất thông dụng. Thư viện opencv thích hợp chạy trên nền C/C++ và trên phần mềm Microsoft visual studio. Trong thư viện này có tích hợp sẵn mạng nơ ron hồi tiếp MLP. Vì vậy, Opencv thật sự là một công cụ đắt lực cho việc xây dựng chương trình thực nghiệm và đánh giá hiệu quả của phương pháp. 2.1. Cách thu nhận ảnh Hệ thống thu nhận ảnh bao gồm các phần chính sau:Đế: Nâng đỡ và bố trí các bộ phận khác. Đèn chiếu: Tạo điều kiện thuận lợi cho việc quan sát trứng. Hệ thống con lăn: Giúp quan sát trứng ở nhiều góc độ khác nhau. Camera quan sát: Thu nhận ảnh rọi của trứng để đưa vào máy tính xử lý. Máy tính: Xử lý hình ảnh và đưa ra kết quả. Toàn bộ quá trình thu nhận ảnh rọi trứng cút được thực hiện trong buồng tối để giảm bớt ảnh hưởng của ánh sáng bên ngoài, các bộ phận chính của hệ thống được bố trí như hình 1. Phần mềm sử dụng: Phần mềm Microsoft visual studio 2010 và thư viện Opencv 2.2. Thiết bị thu nhận ảnh dùng máy ảnh Panasonic Lumix DMC F3, 12.1 Megapixels, loại cảm biến CCD 1/2.33 inch. Đèn rọi trứng dùng đèn led siêu sáng Luxeon loại 3W, điện áp 3V (hình 2). NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT 189 Hình 1. Hệ thống thu nhận ảnh rọi trứng cút Hình 2. Led luxeon 2.2. Lựa chọn màu ánh sáng rọi trứng Để lựa chọn màu ánh sáng rọi trứng, trong phần này sẽ tiến hành thử nghiệm với 3 loại màu sắc ánh sáng là trắng, vàng và đỏ. Đầu tiên chúng ta sẽ quan sát ảnh rọi của trứng có vết nứt trong bảng 1: 190 ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT 191 192 ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN Dựa vào bảng so sánh trên, quan sát bằng mắt thường ta có thể thấy được với ánh sáng trắng và ánh sáng vàng cho kết quả tốt hơn so với ánh sáng đỏ, vết nứt trong ảnh rọi hiện thị rõ ràng hơn trong đa số trường hợp. NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT 193 B.2. Bảng so sánh histogram ánh sáng trắng Tiếp theo, để lựa chọn được ánh sáng nào cho kết quả tốt hơn, chúng ta tiến hành so sánh sự khác biệt về histogram của ảnh rọi trứng cút bị nứt và không bị nứt giữa ánh sáng trắng và ánh sáng vàng. - Ánh sáng trắng: Ánh sáng vàng: Sau khi so sánh sự khác biệt giữa trứng có vết nứt và không có vết nứt khi rọi bằng ánh sáng trắng, tiếp đến chúng ta sẽ xem sự khác biệt này với ánh sáng vàng. Qua đó, ta sẽ chọn ánh sáng nào cho sự khác biệt lớn hơn. Qua sự so sánh trên, ta có thể thấy được ánh sáng vàng cho kết quả tốt hơn ánh sáng trắng và ánh sáng đỏ. Vì vậy, trong phần thực nghiệm của đề tài này nhóm nghiên cứu lựa chọn ánh sáng vàng cho việc rọi trứng cút. 2.3. Thu thập mẫu và phân tích - Thu thập mẫu: Nhờ hệ thống con lăn, trứng cút sẽ được quan sát ở nhiều góc độ khác nhau và ít nhất là 3 góc độ. Điều này giúp cho việc nhận biết vết nứt trên vỏ trứng cút được chính xác hơn. Do đặc trưng vỏ bề ngoài của trứng cút có nhiều vệt màu với kích thước, hình dạng và phân bố khác nhau, màu sắc, cường độ sáng của ảnh rọi cũng khác nhau, vì vậy ta cần tạo ra tập mẫu với số lượng ảnh mẫu tương đối lớn, nhằm đưa độ chính xác của phương pháp đạt mức yêu cầu.Ảnh rọi trứng sau khi ghi nhận được sẽ tiến hành áp dụng một số công cụ trong xử lý ảnh số nhằm lọc nhiễu, cải thiện chất lượng ảnh và phân đoạn, khoanh vùng vị trí, biên dạng trứng. Sau đó dùng một mặt nạ hình elip để loại bỏ vùng không gian xung quanh, chỉ giữ lại vùng không gian ảnh của trứng cần phân tích, điều này cũng giúp giảm bớt ảnh hưởng của môi trường bên ngoài. Để tạo mặt nạ hình elip, trong thư viện opencv2.2 có hỗ trợ hàm fitEllipse, hàm này có ưu điểm là dựng được hình elip với kích thước và góc quay phù hợp với biên dạng vật. Sau khi có được các thông số, hình elip được vẽ bằng lệnh ellipse(). Kích thước của hình elip được 194 ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN B.3. Bảng so sánh histogram ánh sáng vàng nhân thêm một hệ số lớn hơn 1 (1.05) để đảm bảo lấy được nhiều nhất có thể vùng trứng cần phân tích. Tập mẫu huấn luyện sẽ ghi nhận ảnh rọi của trứng cút ở nhiều góc độ (5-7 vị trí) nhằm NGHIÊN CỨU PHÁT HIỆN VẾT NỨT TRÊN VỎ TRỨNG CÚT 195 tăng xác xuất xuất hiện trong quá trình phân tích và kiểm tra. Tập mẫu này bao gồm 1381 ảnh rọi của trứng không có vết nứt và 3219 ảnh rọi có vết nứt. Ảnh mẫu có vết nứt cần nhiều hơn so với trường hợp không có vết nứt vì có nhiều mức độ, trường hợp nứt khác nhau và ta cũng ưu tiên phát hiện, loại bỏ trứng có vết nứt.Vì vậy, mỗi trứng không chỉ được chụp ở nhiều góc độ mà còn được chụp với những mức độ nứt khác nhau, điều này làm tăng tính đa dạng cho tập mẫu. - Cấu hình mạng: Mạng được sử dụng trong trường hợp này là mạng hồi tiếp MLP 3 lớp: Số nút ngõ vào là 768 (tương ứng với 256 giá trị phân bố màu của màu đỏ, 256 màu xanh lá, 256 màu xanh dương).Số nút lớp ẩn là 148 (ứng với tập mẫu 5164), số nút ngõ ra là 1 (tương ứng với 2 trường hợp là nứt hoặc không nứt).Hàm kích hoạt sử dụng hàm sigmoid. Hệ số learning rate là 0,01 và momentum là 0,1. 3. KẾT QUẢ THỰC NGHIỆM VÀ NHẬN XÉT Bước đầu, độ chính xác của phương pháp khi tiến hành trên tập mẫu huấn luyện là trên 99% cho cả trường hợp nứt và không nứt. Tuy nhiên, khi tiến hành kiểm tra ngoài tập mẫu thì độ chính xác của phương pháp còn thấp, đạt 84,856% cho trường hợp không có vết nứt và 92% cho trường hợp có vết nứt. Trong quá trình tạo tập mẫu huấn luyện và kiểm tra, nhóm nghiên cứu đã ghi nhận một số kết quả như sau: * Trường hợp trứng có vết nứt. (1): Tổng số lượng. (2) Cho từng trường hợp: nứt – không nứt. Khi tập mẫu huấn luyện tăng lên thì độ chính xác của phương pháp, đối với ảnh của trứng có vết nứt và không có vết nứt, dần tiến về một mức trung bình. Trong đó độ chính xác với ảnh có vết nứt tăng lên khi tập mẫu được tăng lên. 4. KẾT LUẬN Bài toán được thực nghiệm trên tập mẫu 5164 ảnh, trong đó 38% ảnh của trứng còn nguyên và 62% ảnh của trứng có vết nứt. Ánh sáng được sử dụng để rọi trứng cút là ánh sáng vàng từ led luxeon, ánh sáng này cho kết quả tốt hơn trong việc phát hiện vết nứt so với ánh sáng trắng và ánh sáng đỏ. 196 ĐỖ HOÀNG SƠN, NGUYỄN TẤN TIẾN Bảng 4. kết quả đạt được của phương pháp Phương pháp đề xuất bước đầu cho kết quả khả quan với độ chính xác đạt được là 85,1% cho trường hợp trứng không vết nứt, 87,98% cho trường hợp trứng có vết nứt và mức chính xác trung bình là 86,54%. Kết quả hiện tại còn thấp vì chất lượng và sự đa dạng của tập mẫu chưa cao, thực nghiệm chỉ áp dụng cho trứng cút có vết nứt rõ ràng, có thể nhận biết bằng mắt thường qua ảnh rọi. Nhóm nghiên cứu đang tiếp tục phát triển theo hướng này và cải thiện chất lượng tập mẫu để có thể hoàn thiện giải pháp đề xuất. Nhóm nghiên cứu hy vọng có thể đạt được độ chính xác ít nhất là 90% cho cả trường hợp nứt và không nứt. TÀI LIỆU THAM KHẢO [1] R.T. Elster and J.W. Goodrum, Dectection of cracks in eggs using machine vision, American Society of Agricultural Engineers 34 (1991) 307–312. [2] J.W. Goodrum, R.T. Elster, Machine vision for crack detection in rotating eggs, American Society Agricultural Engineers 35 (Aug. 1992) 1323–1328. [3] V.C. Patel, R.W. McClendon, and J.W. Goodrum, Detection of blood spot and dirt stain in egg using computer vision and neural networks, American Society Agricultural Engineers 12 (2) (1996) 253–258. [4] V.C. Patel, R.W. McClendon, and J.W. Goodrum, Color computer vision and artificial neural networks for the detection of defects in poultry eggs, Artificial Intelligence 12 (1998) 163-176. [5] R. Polat and S.Tarhan, Mechanical behaviour under compression loading and some physical parameters of japanese quail(Coturnix coturnix japonica) eggs, Czech J.Anim. Sci. 52 (2007) 50–56. [6] H.R. Pourreza, R.S. Pourreza, and et. al., Automatic detection of eggshell defects based on machine vision, Journal of Animal and Veterinary Advances 7 (2008) 1200-1203. [7] K.C. Lawrence, S.C. Yoon, and et. al., Modified pressure system for imaging egg cracks, Amer- ican Society of Agricultural and Biological Engineers 52 (3) (2009) 983–990. [8] Loredana Lunadei, Luis Ruiz-Garcia, and et. al., Automatic identification of defects on eggshell through a multispectral vision system, Food Bioprocess Technol, 2011 (Doi 10.1007/s11947- 011-0672-x). Ngày nhận bài 01 - 3 - 2013 Nhận lại sau sửa ngày 04 - 6 - 2013
File đính kèm:
- nghien_cuu_phat_hien_vet_nut_tren_vo_trung_cut_dung_xu_ly_an.pdf