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à...

pdf11 trang | Chia sẻ: havih72 | Lượt xem: 188 | Lượt tải: 0download
Nội dung tài liệu 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ải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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:

  • pdfnghien_cuu_phat_hien_vet_nut_tren_vo_trung_cut_dung_xu_ly_an.pdf
Ebook liên quan