Đồ án máy đếm khuẩn lạc bằng xử lý ảnh - SV. Trần Hữu Phát (ĐH SPKT)

Đồ án tốt nghiệp trình bày thuật toán xử lý ảnh và lập trình phần mềm cho máy đếm khuẩn lạc scan tự động, ứng dụng hiệu quả Python và C#.

2023

142
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Thuật toán Xử lý Ảnh trong Máy Đếm Khuẩn Lạc Tự động

Thuật toán xử lý ảnh đóng vai trò cực kỳ quan trọng trong các hệ thống máy đếm khuẩn lạc tự động hiện đại. Công nghệ này cho phép tự động phát hiện, tách riêng và đếm các khuẩn lạc trong mẫu vi sinh học mà không cần can thiệp thủ công. Quá trình xử lý ảnh bao gồm nhiều bước phức tạp từ thu thập dữ liệu hình ảnh cho đến phân tích và định lượng các khuẩn lạc. Ứng dụng của xử lý ảnh trong lĩnh vực vi sinh vật học không chỉ giúp tăng độ chính xác mà còn nâng cao hiệu suất làm việc, tiết kiệm thời gian và chi phí nhân lực. Các thuật toán hiện đại sử dụng kỹ thuật xử lý ảnh số kết hợp với trí tuệ nhân tạo để đạt được kết quả với độ tin cậy cao.

1.1. Khái niệm Cơ bản về Xử lý Ảnh Số

Xử lý ảnh số là quá trình biến đổi hình ảnh kỹ thuật số thông qua các thuật toán để cải thiện chất lượng hoặc trích xuất thông tin hữu ích. Trong bối cảnh máy đếm khuẩn lạc, xử lý ảnh giúp phân biệt các khuẩn lạc từ nền ảnh, loại bỏ nhiễu, và tính toán các đặc trưng hình học. Các bước cơ bản bao gồm: tiền xử lý, phân đoạn, trích xuất đặc trưng, và phân loại.

1.2. Tầm quan trọng trong Vi sinh Vật học Lâm sàng

Trong vi sinh vật học lâm sàng, độ chính xác của việc đếm khuẩn lạc ảnh hưởng trực tiếp đến kết quả chẩn đoán bệnh. Thuật toán xử lý ảnh tự động loại bỏ yếu tố chủ quan, giảm sai sót do con người gây ra và cung cấp kết quả lặp lại được. Công nghệ này đặc biệt quan trọng trong các phòng thí nghiệm có khối lượng mẫu xét nghiệm lớn.

II. Các Bước Chính trong Quy trình Xử lý Ảnh

Quy trình xử lý ảnh cho máy đếm khuẩn lạc tự động bao gồm nhiều giai đoạn tuần tự và có tính logic cao. Mỗi bước được thiết kế để xử lý những thách thức cụ thể trong việc phát hiện và đếm khuẩn lạc trên các bản c培养 như đĩa agar. Quy trình này thường bắt đầu từ việc thu thập hình ảnh chất lượng cao và kết thúc với việc trình bày kết quả đếm chính xác. Việc tối ưu hóa mỗi bước đóng góp quan trọng vào hiệu suất tổng thể của hệ thống. Thuật toán xử lý ảnh hiện đại kết hợp nhiều kỹ thuật tiên tiến để đạt độ chính xác tối đa.

2.1. Tiền xử lý và Chuẩn hóa Ảnh

Tiền xử lý ảnh là bước đầu tiên để chuẩn bị dữ liệu hình ảnh. Các kỹ thuật bao gồm điều chỉnh độ sáng, tương phản, và lọc nhiễu để loại bỏ các artefact không mong muốn. Chuẩn hóa ảnh giúp đảm bảo tính nhất quán giữa các ảnh khác nhau, đặc biệt quan trọng khi xử lý hàng loạt mẫu. Các bộ lọc như Gaussian Blur và Median Filter thường được sử dụng.

2.2. Phân đoạn và Tách Khuẩn Lạc

Phân đoạn hình ảnh nhằm mục đích tách các khuẩn lạc khỏi nền agar. Kỹ thuật ngưỡng (thresholding) tự động giúp xác định ranh giới giữa khuẩn lạc và nền dựa trên giá trị cường độ pixel. Các phương pháp nâng cao như Watershed Algorithm hoặc Active Contour giúp xử lý các khuẩn lạc gần nhau hoặc chồng lấp.

2.3. Trích xuất Đặc trưng Hình học

Sau khi tách khuẩn lạc, hệ thống trích xuất các đặc trưng hình học như diện tích, chu vi, độ tròn, và độ lồi. Các đặc trưng này giúp phân biệt khuẩn lạc thực sự từ nhiễu hoặc các vật thể không liên quan. Phương pháp Component Labeling được sử dụng để gán nhãn cho mỗi đối tượng riêng biệt.

III. Các Thuật toán Tiên tiến trong Đếm Khuẩn Lạc

Các thuật toán xử lý ảnh hiện đại sử dụng các kỹ thuật tiên tiến để nâng cao độ chính xác của máy đếm khuẩn lạc tự động. Những phương pháp này kết hợp từ các lĩnh vực khác nhau như xử lý tín hiệu, thống kê và học máy. Thuật toán thích ứng có khả năng tự điều chỉnh theo điều kiện ảnh khác nhau, đặc biệt hữu ích khi xử lý các mẫu có chất lượng không đều. Sử dụng mạng nơ-ron tích chập (CNN) và các mô hình học sâu khác cho phép nhận diện mẫu phức tạp và tăng độ tin cậy của kết quả cuối cùng.

3.1. Kỹ thuật Ngưỡng Thích ứng

Ngưỡng thích ứng điều chỉnh giá trị ngưỡng động dựa trên các vùng cục bộ trong ảnh. Phương pháp Otsu's MethodLocal Adaptive Threshold giúp xử lý các ảnh có độ sáng không đều. Kỹ thuật này đặc biệt hiệu quả với các đĩa agar có bề mặt không hoàn toàn đồng nhất.

3.2. Phương pháp Morphological Processing

Morphological operations bao gồm các phép toán như Erosion, Dilation, Opening, và Closing. Các phép toán này giúp loại bỏ các khuẩn lạc nhỏ (nhiễu), nối các khuẩn lạc gần nhau, hoặc mở rộng ranh giới khuẩn lạc. Kỹ thuật này rất quan trọng trong việc chuẩn bị ảnh trước khi đếm chính xác.

3.3. Ứng dụng Học Máy và Mạng Nơ ron

Mạng nơ-ron tích chập (CNN) và các mô hình học sâu khác có khả năng học các mẫu phức tạp từ dữ liệu huấn luyện. Thuật toán học máy này có thể phân biệt giữa các loại khuẩn lạc khác nhau và loại bỏ các giả dương. Việc sử dụng transfer learning với các mô hình pre-trained giúp giảm yêu cầu về dữ liệu huấn luyện.

IV. Triển khai và Tối ưu hóa Hiệu suất Hệ thống

Triển khai thuật toán xử lý ảnh trong máy đếm khuẩn lạc tự động yêu cầu cân bằng giữa độ chính xác và tốc độ xử lý. Hệ thống phải có khả năng xử lý hàng chục hoặc hàng trăm ảnh mỗi giờ mà vẫn duy trì độ tin cậy cao. Tối ưu hóa hiệu suất bao gồm việc lựa chọn ngôn ngữ lập trình phù hợp, sử dụng các thư viện tối ưu như OpenCV và cuPy, cũng như áp dụng các kỹ thuật xử lý song song. Việc kiểm tra độ chính xác liên tục và so sánh với kết quả đếm thủ công là cần thiết để đảm bảo chất lượng.

4.1. Lựa chọn Công cụ và Thư viện Lập trình

Python kết hợp với OpenCV là lựa chọn phổ biến cho xử lý ảnh vì tính linh hoạt và tốc độ phát triển nhanh. MATLABC++ được sử dụng khi cần hiệu suất cao hơn. Việc sử dụng GPU acceleration với CUDA hoặc OpenCL giúp xử lý ảnh nhanh hơn 10-100 lần so với CPU.

4.2. Kiểm định và Đảm bảo Chất lượng

Kiểm định hệ thống bao gồm so sánh kết quả từ máy đếm tự động với kết quả đếm thủ công trên các mẫu đã biết. Độ chính xác, độ nhạy, độ đặc hiệu là những chỉ số quan trọng để đánh giá hiệu suất. Việc sử dụng ma trận nhầm lẫn giúp xác định các điểm yếu trong thuật toán và cải thiện liên tục.

4.3. Các Hướng Phát triển Tương lai

Các nghiên cứu tương lai tập trung vào việc sử dụng trí tuệ nhân tạo nâng cao, phân loại tự động các loại khuẩn lạc khác nhau, và tích hợp xử lý ảnh 3D. Điện toán biên (Edge Computing) cho phép xử lý trực tiếp trên thiết bị mà không cần máy chủ từ xa. Việc phát triển các chuẩn hóa quốc tế sẽ giúp cải thiện tính tương thích và chất lượng của các hệ thống khác nhau.

18/12/2025

Trích đoạn nội dung tài liệu

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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ