CHƯƠNG 1. Vấn đề hiện nay 1 1. Phạm vi nghiên cứu 1 1. Giới hạn nghiên cứu 2 1.
Nội dung nghiên cứu 2 1. Cấu trúc báo cáo 2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4 2. Thuật toán Distance Transformation 4 2. Thuật toán tìm điểm cực đại cục bộ trong ma trận 7 2.
Thuật toán WaterShed 8 2. Phương pháp giao tiếp Named Pipes Communication và Win32API 11 2. Virtual Environment trong Python 14 2. Tính kế thừa trong lập trình đối tượng 15 2.
Tầm quan trọng của ánh sáng trong thị giác máy tính 15 2. XÂY DỰNG LUỒNG, LẬP TRÌNH HỆ THỐNG VÀ TRIỂN KHAI 19 3. Thiết kế phần cứng 19 3. Thiết kế phần mềm 25 3.8 97 CHƯƠNG 4: KẾT QUẢ VÀ ĐÁNH GIÁ 77 4.
Phần cứng của máy scan đếm khuẩn lạc. Hình ảnh vi khuẩn thu thập được từ máy scan. Kết quả của thuật toán xử lý ảnh phân tách vi khuẩn. Hiển thị giao diện ứng dụng.
Kết quả khi sử dụng chức năng Auto Process. Kết quả khi sử dụng chức năng Edit cho chế độ Automatic Process. Kết quả sử dụng chức năng Undo và Redo 82 4. Kết quả khi sử dụng chức năng Segment.
Kết quả khi sử dụng chức năng Add Segment. Kết quả khi sử dụng chức năng Segment Process. Kết quả sử dụng chức năng Edit cho chế độ Segment Processing. 90 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 91 5.
Hướng phát triển trong tương lai. 91 TÀI LIỆU THAM KHẢO 92 -10- DANH SÁCH HÌNH ẢNH Hình 2-1. (A) và (C) ảnh gốc, (B) và (C) ảnh khi áp dụng distance transform 6 Hình 2-2. Hình ảnh minh họa thuật toán watershed 9 Hình 2-3.
Mô tả thuật toán watershed theo nguyên lý nước dâng 10 Hình 2-4. (A) là ảnh gốc và (B) là kết quả đầu ra của thuật toán Watershed 11 Hình 2-5. Sơ đồ quy trình phương pháp Named Pipes 13 Hình 2-6. So sánh hình ảnh ánh sáng kém(bên trái) và hình ảnh ánh sáng tốt (bên phải) 15 Hình 2-7.
Phổ điện từ 16 Hình 2-8. Sơ đồ sáng Back Light 17 Hình 2-9. Hình nắp chai khi được chụp ngược sáng 17 Hình 2-10. Sơ đồ ánh sáng trường tối, back light 18 Hình 2-11 Sơ đồ chiếu sáng của doom light 18 Hình 2-12.
Hình ảnh đồng xu được chụp bằng doom light 18 Hình 3-1. Sơ đồ phần cứng 19 Hình 3-2. Camera Basler acA5472-17uc USB 3. Kích thước lens M0814-MP2 21 Hình 3-5.
Sơ đồ hệ thống chiếu sáng. Dome light 22 Hình 3-7. Sơ đồ kích thước của doom light 23 Hình 3-8. Đèn back light 24 Hình 3-9.
Sơ đồ kích thước của back light. Bộ nguồn ANG SERIES 25 Hình 3-11. a) là ảnh gốc và b) là output quá trình huấn luyện AI. ) Ảnh gốc và b) ví dụ minh họa hình ảnh kết quả của thuật toán distance 28 Hình 3-13.
Sơ đồ khối thuật toán xử lý ảnh 29 Hình 3-14. b) Output của Unet. c) Kết quả đếm sai. d) Kết quả đếm đúng Hình 3-15.
Sơ đồ cấu trúc ở Producer 30 Hình 3-16. Sơ đồ tổ chức phương thức trong ScanClass ở Producer 31 Hình 3-17. Chức năng Auto Process trong ứng dụng 32 -11- Hình 3-18. Sơ đồ tổ chức phương thức của chức năng Automatic Processing 33 Hình 3-19.
Sơ đồ thuật toán hàm ParseContourFromJson 35 Hình 3-20. Một số hình ảnh gốc (bên trái) và hình ảnh được hiển thị lên giao diện cùng với số lượng vi khuẩn 36 Hình 3-21. Hình ảnh chức năng Undo và Redo trong ứng dụng 37 Hình 3-22. Sơ đồ thuộc tính của lớp PolyBackAction 38 Hình 3-23.
Sơ đồ thuộc tính của lớp StatefulPointBackAtion 38 Hình 3-24. Sơ đồ mô tả nguyên lý hoạt động của chức năng Undo và Redo 39 Hình 3-25. Hình ảnh bộ chức năng Segment trong ứng dụng 40 Hình 3-26. Mô tả tác vụ bộ chức năng Segment 44 Hình 3-27.
Sơ đồ thuật toán chức năng Segment. Sơ đồ thuật toán chức năng Add Segment 45 Hình 3-29. Sơ đồ thuật toán hàm DrawPolies 46 Hình 3-30. Sơ đồ thuật toán hàm CropPolies trong chức năng Segment Process 48 Hình 3-31.
Sơ đồ thuật toán hàm getContoursWithinSegments 50 Hình 3-32. Sơ đồ thuật toán hàm cropPoliLines 51 Hình 3-33. Mô tả tác vụ của bộ chức năng Edit cho chế độ Auto Process 53 Hình 3-34. Sơ đồ thuật toán của phương thức lưu trữ dữ liệu và hiển thị các điểm người dùng chọn 55 Hình 3-35.
Sơ đồ thuật toán chức năng Remove Bacteria 56 Hình 3-36. Sơ đồ thuật toán chức năng Add Bacteria 57 Hình 3-37. Mô tả tác vụ của bộ chức năng Edit cho chế độ Segment Process 60 Hình 3-38. Sơ đồ thuật toán của phương thức lưu trữ dữ liệu thuộc vùng đa giác và hiển thị các điểm người dùng chọn 61 Hình 3-39.
Sơ đồ thuật toán bậc tiền xử lý của hàm ProcessStatefulPoint 62 Hình 3-40. Sơ đồ thuật toán của phương thức DeleteContourAt 62 Hình 3-41. Sơ đồ thuật toán bậc hậu xử lý của hàm ProcessStatefulPoint 64 Hình 3-42. Sơ đồ thuật toán xây dựng chuỗi lệnh của hàm BuildCommand 67 Hình 3-43.
Sơ đồ thuật toán đọc và xử lý dữ liệu của Python trả về của hàm readingMessageFromPython 68 Hình 3-44. Sơ đồ thuật toán đọc thực hiện gửi lệnh thực thi đến Python 69 Hình 3-45. Sơ đồ thuật toán thiết lập kết nối với Python 70 -12- Hình 3-46. Sơ đồ phương thức mã lệnh thiết lập môi trường ảo 72 Hình 4-1.
Phần cứng của máy scan 74 Hình 4-2. Vi khuẩn Coliform (hình ảnh thuộc bản quyền của SGS) 74 Hình 4-3. Vi khuẩn Enterococcus (hình ảnh thuộc bản quyền của SGS). Vi khuẩn Enterococcus (hình ảnh thuộc bản quyền của SGS) 75 Hình 4-5.
Kết quả cho ra mỗi cụm khuẩn lạc nhỏ 76 Hình 4-6. Giao diện ứng dụng 76 Hình 4-7. Giao diện ứng dụng khi mở một hình ảnh 77 Hình 4-8. Kết quả màn hình khi nhấn chọn Auto Process 77 Hình 4-9.
Kết quả màn hình chỉnh sửa khi xóa ba vi khuẩn ở chế độ Automatic Processing 78 Hình 4-10. Kết quả màn hình chỉnh sửa khi thêm hai vi khuẩn ở chế độ Automatic Processing 79 Hình 4-11. Kết quả màn hình chỉnh sửa vi khuẩn khi nhấn Undo. Kết quả màn hình chỉnh sửa vi khuẩn khi nhấn Redo 81 Hình 4-13.
Kết quả màn hình khi nhấn Undo sau khi vẽ môt đa giác 82 Hình 4-14. Kết quả màn hình khi nhấn Redo sau khi vẽ môt đa giác 83 Hình 4-15. Kết quả màn hình vẽ một đa giác 84 Hình 4-16. Kết quả màn hình khi vẽ hai đa giác 85 Hình 4-17.
Kết quả màn hình hiển thị và đếm số vi khuẩn ở trong vùng đa giác 85 Hình 4-18. Kết quả màn hình chỉnh sửa khi xóa ba vi khuẩn ở chế độ Segment Processing 86 Hình 4-19. Kết quả màn hình thông báo không được chỉnh sửa ở ngoài vùng đa giác 87 -13- DANH SÁCH BẢNG Bảng 2-2. Ma trận sau khi được thuật toán bắt đầu xử lý 5 Bảng 2-3.
Ma trận sau khi được thuật toán bắt đầu xử lý 5 Bảng 2-4. Ma trận sau khi được thuật toán bắt đầu xử lý 6 Bảng 2-5. Ma trận của hình ảnh 7 Bảng 2-6. Mặt nạ 3x3 của vùng lân cận quét lần 1.
Mặt nạ 3x3 của vùng lân cận quét lần 2 8 Bảng 3-1. Bảng thông tin cảm biến 20 Bảng 3-2. Bảng thông số camera 20 Bảng 3-3. Bảng thông tin của lens.
Bảng miêu tả doom light IDS5-00-100-1-W-24V. Bảng thông số kỹ thuật của doom light IDS5-00-100-1-W-24V. Mô tả đèn back light BHS4-00-100-X-W-24V 25 Bảng 3-7. Thông số kỹ thuật của back light BHS4-00-100-X-W-24V.
Bảng mô tả bộ nguồn ANG-2000-CH2-24V-A1 26 Bảng 3-9. Bảng thông số kỹ thuật của bộ nguồn ANG-2000-CH2-24V-A1. Bảng thư viện được sử dụng 66 Bảng 3-11. Bảng đối tượng Json 71 Bảng 4-1.
Bảng hiển thị thông tin trên giao diện 78 Bảng 4-2. Bảng hiển thị thông tin trên giao diện 79 Bảng 4-3. Bảng hiển thị thông tin trên giao diện 80 Bảng 4-4. Bảng hiển thị thông tin trên giao diện 81 Bảng 4-5.
Bảng hiển thị thông tin trên giao diện 82 Bảng 4-6. Bảng hiển thị thông tin trên giao diện 83 Bảng 4-7. Bảng hiển thị thông tin trên giao diện 85 Bảng 4-8. Bảng hiển thị thông tin trên giao diện 86 -14- DANH SÁCH TỪ VIẾT TẮT WPF: Windows Presentation Foundation.
FPS: Frames per second. API: Application Programming Interface. OOP: Object-Oriented Programming. CMD: Command Prompt.
-15- TỔNG QUAN Vi khuẩn có những đặc tính tích cực đặc biệt có thể có ảnh hưởng tích cực đối với sự phát triển của cây trồng. Những vi khuẩn này thường xuất hiện trong đất, mang theo khả năng cung cấp chất dinh dưỡng cho cây, đồng thời đối phó với vi khuẩn gây hại, từ đó kích thích sự phát triển và năng suất của cây. Đóng góp của chúng không chỉ làm cho đất trở nên màu mỡ mà còn cung cấp các yếu tố cần thiết, hỗ trợ quá trình phát triển khỏe mạnh của cây. Tuy nhiên, không phải tất cả các vi khuẩn đều mang lại lợi ích.
Một số loại vi khuẩn có thể gây tác động tiêu cực. Ví dụ, sự xuất hiện của vi khuẩn Escherichia coli (E.coli) trong thực phẩm thường là dấu hiệu của sự ô nhiễm, tiềm ẩn nguy cơ gây bệnh cho con người. Rủi ro ô nhiễm này thường liên quan đến việc tiêu thụ thực phẩm như thịt bò xay chưa chín kỹ, sữa và nước trái cây chưa được tiệt trùng, phô mai mềm từ sữa sống, cũng như rau củ sống. Ngoài ra, việc phát hiện E.coli trong nước thường được sử dụng như một chỉ số của sự ô nhiễm gần đây.
Nhiều tổ chức, phòng thí nghiệm và cơ quan đang quan tâm đến việc thiết lập các quy trình, tiêu chí và chuẩn mực cho phân tích vi sinh liên quan đến việc đếm số lượng vi khuẩn trên nền tảng chất lỏng. Tiêu chuẩn Việt Nam TCVN 11039-2015 về Phụ gia thực phẩm - Phân tích vi sinh, đã quy định phương pháp xác định tổng số vi sinh vật không yếu tố ô nhiễm trong các phụ gia thực phẩm bằng kỹ thuật đếm trên đĩa, và phương pháp này được mô tả chi tiết trong tiêu chuẩn [1]. Bộ đếm khuẩn lạc là một thiết bị được sử dụng để đo lường số lượng khuẩn hoặc các vi sinh vật khác phát triển trên đĩa thạch, còn được biết đến là đĩa Petri. Theo phương pháp truyền thống, quy trình đếm thủ công sẽ thực hiện việc đánh dấu bề mặt ngoại cùng của đĩa bằng một cây bút lông và theo dõi số được đánh dấu.
Tuy nhiên, phương pháp thủ công này tốn thời gian và sức lực, nó phụ thuộc vào thị giác và sự tập trung của người thực hiện. Hơn nữa, khi đối mặt với một số lượng lớn các khuẩn, kết quả đếm thủ công có thể thay đổi giữa các nhà sinh học khác nhau. Sự biến động này xuất phát từ việc các phương pháp đếm cho các tụy có mật độ cao thường liên quan đến các kỹ thuật ước lượng, tập trung vào một phần nhỏ của đĩa.