Giới thiệu dự án

Trong lĩnh vực vi sinh học y tế, công nghệ thực phẩm và quan trắc môi trường, việc định lượng vi khuẩn thông qua phương pháp đếm khuẩn lạc (Colony Forming Unit - CFU) trên đĩa thạch Petri là quy trình bắt buộc theo các tiêu chuẩn quốc tế (ISO 4833-1) và Tiêu chuẩn Việt Nam (TCVN 11039-2015). Theo ước tính của ngành công nghệ sinh học, trung bình một kỹ thuật viên phòng lab phải dành từ 2 đến 4 giờ mỗi ngày để đếm thủ công hàng trăm đĩa thạch. Quy trình truyền thống này bộc lộ nhiều hạn chế nghiêm trọng: tốc độ xử lý chậm, độ sai số giữa các quan sát viên (inter-operator variability) dao động từ 15% đến 30%, và hiện tượng mỏi mắt gây giảm sút độ chính xác đối với các cụm khuẩn có mật độ cao (>300 CFU/đĩa) hoặc kích thước li ti (<0.5 mm).

Các thiết bị đếm khuẩn lạc tự động thương mại nhập khẩu hiện nay (như Interscience Scan series hay IUL SphereFlash) có chi phí đầu tư rất lớn (từ 15.000 USD đến 35.000 USD), đồng thời thường khóa kín hệ thống phần mềm (closed-source proprietary software), gây khó khăn trong việc tùy biến thuật toán hoặc tích hợp vào hệ thống quản lý thông tin phòng thí nghiệm (LIMS) nội địa.

Đề tài "Lập trình thuật toán xử lý ảnh và thiết kế, lập trình các chức năng cho phần mềm của máy đếm khuẩn lạc SCAN" do sinh viên Trần Hữu Phát (Trường Đại học Sư phạm Kỹ thuật TP.HCM) thực hiện dưới sự hướng dẫn của TS. Nguyễn Văn Thái, phối hợp cùng Công ty TNHH Labone và SSG Vietnam, giải quyết triệt để bài toán tự động hóa quá trình nhận diện và đếm khuẩn lạc bằng thị giác máy tính kết hợp kiến trúc phần mềm lai C#/.NET WPF và Python.

Mục tiêu của dự án:

  1. Thiết kế hệ thống quang học chuyên dụng: Tích hợp đèn vòm (Dome Light) và đèn nền (Back Light) nhằm triệt tiêu hiện tượng bóng mờ và phản xạ gương trên bề mặt thạch agar.
  2. Xây dựng thuật toán phân đoạn ảnh chính xác cao: Phát triển pipeline xử lý ảnh kết hợp mạng nơ-ron tích chập (U-Net), thuật toán biến đổi khoảng cách (Distance Transformation), tìm cực đại cục bộ (peak_local_max) và phân đoạn lưu vực (Watershed) để tách biệt các cụm khuẩn lạc dính liền (clustered colonies).
  3. Phát triển giao diện phần mềm công nghiệp C# WPF: Cung cấp đầy đủ các chức năng tương tác chuyên sâu gồm: Auto Process, Segment ROI (vùng đa giác tùy chọn), chỉnh sửa thủ công (Add/Remove Colony) và kiến trúc Undo/Redo đa tầng.
  4. Xây dựng cơ chế giao tiếp liên tiến trình (IPC): Hiện thực hóa luồng trao đổi dữ liệu hai chiều tốc độ cao giữa C# GUI và Python Analytics Engine thông qua Windows Named Pipes và Win32 API.
  5. Đóng gói môi trường thực thi cô lập (Isolated Virtual Environment): Tự động khởi tạo và quản lý Python venv từ C#, cho phép triển khai phần mềm không cần cài đặt thủ công môi trường runtime.

Phạm vi và giới hạn nghiên cứu:

  • Phạm vi: Ứng dụng trên các đĩa Petri tiêu chuẩn (đường kính 90mm), tập trung vào các chủng vi khuẩn phổ biến như Escherichia coli, Coliform, Enterococcus thu thập từ phòng lab SGS Vietnam.
  • Giới hạn: Tối ưu hóa trên hệ điều hành Microsoft Windows (x64); tốc độ xử lý phụ thuộc vào cấu hình phần cứng CPU/GPU của máy tính trạm kết nối.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Đếm thủ công (Manual Pen Counter) Máy đếm ngoại nhập cao cấp (Interscience Scan 4000) Giải pháp máy SCAN trong đề tài
Thời gian xử lý/đĩa 60 - 180 giây/đĩa 0.5 - 1.0 giây/đĩa 1.2 - 2.5 giây/đĩa (độ phân giải 20MP)
Độ chính xác 70% - 85% (phụ thuộc thị lực) >98% >96.5% trên mẫu chuẩn
Chi phí đầu tư < 100 USD (bút bấm) 20.000 - 35.000 USD < 2.500 USD (tối ưu phần cứng)
Khả năng tách cụm dính Kém, dựa vào ước lượng Tốt (sử dụng AI thương mại) Rất tốt (Distance Transform + Watershed)
Tùy biến vùng đếm (ROI) Không hỗ trợ Có hỗ trợ Đa giác tùy biến đa điểm (Polygon ROI)
Tính mở của hệ thống Thủ công Hệ thống đóng Mã nguồn mở module, dễ mở rộng API

Yêu cầu người dùng theo mô hình MoSCoW:

  • Must have: Nhận diện và đếm tự động đĩa Petri; Phân tách khuẩn dính chùm; Tùy biến xóa/thêm điểm đếm; Kết nối Camera Basler công nghiệp; Xuất báo cáo kết quả.
  • Should have: Chế độ đếm theo vùng đa giác (Segment Mode); Cơ chế Undo/Redo trạng thái thao tác; Hệ thống đèn 2 kênh độc lập (Top Dome + Bottom Backlight).
  • Could have: Tích hợp mô hình Deep Learning U-Net nhận diện khuẩn lạc đa màu sắc; Tự động hiệu chuẩn kích thước pixel sang milimet thực tế.
  • Won't have (lần này): Phân loại tự động 100% tên loài vi khuẩn dựa trên phổ hình thái tế bào học chuyên sâu.

Thiết kế hệ thống

Technology Stack và Phần cứng:

  • Camera Công nghiệp: Basler ace acA5472-17uc USB 3.0, Cảm biến Sony IMX183 Rolling Shutter CMOS 1", Độ phân giải 20 MP ($5472 \times 3648$ pixels), Kích thước pixel $2.4,\mu\text{m} \times 2.4,\mu\text{m}$, Tốc độ khung hình 17 fps.
  • Ống kính (Lens): Kowa/Computar M0814-MP2 ngàm C-mount, tiêu cự chuẩn $8,\text{mm}$, độ méo quang học cực thấp ($< 0.1%$).
  • Hệ thống chiếu sáng quang học:
    • Dome Light: IDS5-00-100-1-W-24V (ánh sáng trắng 6500K) tán xạ đều mọi hướng, triệt tiêu độ bóng phản chiếu từ bề mặt thạch ẩm ướt và đĩa nhựa Petri.
    • Back Light: BHS4-00-100-X-W-24V chiếu ngược sáng qua đáy đĩa thạch trong suốt giúp vi khuẩn nổi bật với độ tương phản cực đại.
    • Bộ nguồn điều khiển: ANG-2000-CH2-24V-A1 cung cấp dòng ổn định 2 kênh điều chỉnh độ sáng độc lập.
  • Software Stack:
    • Frontend: C# .NET Framework 4.8 / WPF, kiến trúc MVVM, giao tiếp Win32 API.
    • Backend: Python 3.10.x, OpenCV 4.8.x, NumPy 1.24.x, Scipy 1.11.x, Scikit-image 0.21.x.
    • IPC: Windows Named Pipes (\\.\pipe\ColonyScanPipe).

Methodology

Dự án áp dụng mô hình phát triển linh hoạt kết hợp (Hybrid Agile-Waterfall) chia làm 19 tuần làm việc với các cột mốc quan trọng:

  • Tuần 1 - 4: Nghiên cứu quang học, lựa chọn phần cứng chiếu sáng/camera; thu thập tập dữ liệu vi khuẩn (Coliform, Enterococcus) cùng công ty SSG và Labone.
  • Tuần 5 - 7: Tối ưu hóa thuật toán phân đoạn xử lý ảnh và thiết kế pipeline phân tách Watershed.
  • Tuần 8 - 11: Thiết kế giao diện WPF, hiện thực hóa các tính năng Auto Process, Data Bindings.
  • Tuần 12 - 14: Thiết lập giao thức IPC Named Pipes; phát triển bộ công cụ Segment ROI, Add/Remove Colony và Undo/Redo stack.
  • Tuần 15 - 19: Tích hợp môi trường ảo hóa Python tự động (venv), hiệu chỉnh quang học thực nghiệm và tối ưu hóa bộ nhớ RAM/GPU.

Implementation và kết quả

Development process

Cốt lõi xử lý ảnh của hệ thống giải quyết bài toán đếm các khuẩn lạc kết chùm dựa trên chuỗi thuật toán: Tạo mặt nạ nhị phân $\rightarrow$ Biến đổi khoảng cách (Distance Transform) $\rightarrow$ Tìm cực đại cục bộ (peak_local_max) $\rightarrow$ Phân đoạn lưu vực (Watershed).

Khoảng cách Manhattan ($L_1$) hoặc Euclidean ($L_2$) được tính từ mỗi điểm pixel bên trong đối tượng đến điểm biên nền gần nhất:

$$d(x, y) = \min_{(x', y') \in \text{Background}} \sqrt{(x - x')^2 + (y - y')^2}$$

Pipeline thuật toán xử lý ảnh lõi (Python Backend):

import cv2
import numpy as np
import json
from scipy import ndimage
from skimage.feature import peak_local_max
from skimage.segmentation import watershed

def process_colony_image(image_path: str, min_distance: int = 7, threshold_rel: float = 0.2):
    # 1. Đọc ảnh và tiền xử lý
    img = cv2.imread(image_path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    
    # 2. Phân ngưỡng Otsu tạo ảnh nhị phân
    _, thresh = cv2.threshold(blurred, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    
    # 3. Biến đổi khoảng cách (Euclidean Distance Transform)
    dist_transform = cv2.distanceTransform(thresh, cv2.DIST_L2, 5)
    
    # 4. Tìm điểm cực đại cục bộ (Seed points)
    coordinates = peak_local_max(
        dist_transform, 
        min_distance=min_distance, 
        threshold_rel=threshold_rel, 
        labels=thresh
    )
    
    # 5. Tạo ma trận Markers phục vụ Watershed
    markers = np.zeros(dist_transform.shape, dtype=np.int32)
    for idx, (r, c) in enumerate(coordinates, start=1):
        markers[r, c] = idx
    markers = ndimage.label(markers)[0]
    
    # 6. Thực thi phân đoạn Watershed
    labels = watershed(-dist_transform, markers, mask=thresh)
    
    # 7. Trích xuất đường bao (Contours) và chuyển đổi thành JSON
    detected_colonies = []
    for label_id in np.unique(labels):
        if label_id == 0:
            continue
        mask = np.zeros(gray.shape, dtype=np.uint8)
        mask[labels == label_id] = 255
        contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        
        for cnt in contours:
            if cv2.contourArea(cnt) > 10: # Lọc nhiễu kích thước nhỏ
                pts = cnt.squeeze().tolist()
                M = cv2.moments(cnt)
                if M["m00"] != 0:
                    cX = int(M["m10"] / M["m00"])
                    cY = int(M["m01"] / M["m00"])
                    detected_colonies.append({
                        "id": int(label_id),
                        "center": [cX, cY],
                        "contour": pts
                    })
                    
    return json.dumps({"total": len(detected_colonies), "colonies": detected_colonies})

Quản lý trạng thái và Undo/Redo trên C# WPF:

public class ActionManager
{
    private readonly Stack<IUndoableAction> _undoStack = new Stack<IUndoableAction>();
    private readonly Stack<IUndoableAction> _redoStack = new Stack<IUndoableAction>();

    public void ExecuteAction(IUndoableAction action)
    {
        action.Execute();
        _undoStack.Push(action);
        _redoStack.Clear(); // Xóa redo stack khi có action mới
    }

    public void Undo()
    {
        if (_undoStack.Count > 0)
        {
            var action = _undoStack.Pop();
            action.Unexecute();
            _redoStack.Push(action);
        }
    }

    public void Redo()
    {
        if (_redoStack.Count > 0)
        {
            var action = _redoStack.Pop();
            action.Execute();
            _undoStack.Push(action);
        }
    }
}

Testing và validation

Hệ thống được thử nghiệm trên 250 đĩa mẫu nuôi cấy vi sinh thực tế tại phòng thí nghiệm SGS Vietnam bao gồm khuẩn Coliform (màu đỏ cánh kiến trên môi trường VRBL agar) và Enterococcus (màu hạt lựu trên môi trường Slanetz & Bartley agar).

+-------------------------------------------------------------------------+
|                  BIỂU ĐỒ PHÂN BỐ ĐỘ CHÍNH XÁC ĐẾM                       |
|                                                                         |
|  Độ chính xác (%)                                                       |
|  100 |================================== [Mật độ thấp < 100 CFU: 98.8%] |
|   90 |============================= [Mật độ trung bình 100-300: 96.5%]   |
|   80 |======================= [Mật độ cao > 300 CFU: 92.4%]             |
|    0 +----------------------------------------------------------------- |
+-------------------------------------------------------------------------+

Kết quả đo kiểm hiệu năng phần mềm:

Chỉ số kiểm thử Giá trị mục tiêu Kết quả đo lường thực tế Đánh giá
Độ phân giải ảnh xử lý $\ge 5,\text{MP}$ $5472 \times 3648$ ($20,\text{MP}$) Vượt chỉ tiêu
Thời gian truyền dữ liệu Named Pipe $< 100,\text{ms}$ $18.4,\text{ms}$ (Packet JSON 2.5MB) Xuất sắc
Thời gian tính toán Watershed (CPU) $< 3.0,\text{giây}$ $1.72,\text{giây}$ (Intel Core i7-11800H) Đạt chuẩn công nghiệp
Độ chính xác tổng thể (Overall Accuracy) $\ge 95%$ $96.5%$ (trung bình 250 đĩa mẫu) Đạt yêu cầu
Tỷ lệ nhận diện đúng khuẩn dính cụm $\ge 90%$ $92.8%$ (cụm 2 - 5 khuẩn dính) Vượt chỉ tiêu
Mức tiêu hao bộ nhớ RAM ứng dụng $< 1.5,\text{GB}$ $680,\text{MB}$ khi xử lý ảnh 20MP Tối ưu tốt

Kết quả đạt được

Phần mềm đã hoàn thiện 100% các tính năng chức năng đề ra:

  1. Auto Process: Tự động phát hiện biên đĩa Petri, nhận diện toàn bộ khuẩn lạc đơn và khuẩn lạc dính chùm chỉ với 1 click chuột.
  2. Segment Processing (ROI đa giác): Cho phép vẽ đa giác tự do bằng chuột để giới hạn vùng đếm cục bộ, loại trừ các dị vật hoặc vùng thạch bị nứt, rách.
  3. Interactive Manual Editor: Tương tác trực tiếp trên giao diện màn hình (Xóa điểm nhận diện sai, thêm điểm nhận diện sót với bán kính tùy biến).
  4. Stateful Multi-level Undo/Redo: Khôi phục trạng thái thêm/xóa điểm hoặc vẽ vùng đa giác mà không cần chạy lại thuật toán phân tích tốn kém tài nguyên.
  5. Dynamic Reporting: Xuất kết quả đếm cùng hình ảnh đánh dấu tọa độ khuẩn lạc ra định dạng PDF chuẩn báo cáo vi sinh phòng kiểm nghiệm.

Đổi mới và đóng góp

  1. Thiết kế quang học lai (Hybrid Optical Integration): Việc kết hợp đồng thời Dome Light và Back Light giải quyết triệt để vấn đề tán xạ bề mặt và độ mờ của môi trường thạch vi sinh, cung cấp ảnh đầu vào có độ tương phản biên sắc nét, loại bỏ 99% hiện tượng bóng giả (flare/glare).
  2. Kiến trúc phân tách C# - Python tối ưu qua Win32 Named Pipes: Khắc phục nhược điểm chạy tiến trình con (Process.Start) thông thường gây tiêu tốn overhead. Giao tiếp Named Pipe dạng stream giữ kết nối socket nội bộ liên tục, giảm 85% độ trễ truyền dữ liệu ma trận ảnh và mảng vector tọa độ.
  3. Tối ưu hóa thuật toán phân đoạn Watershed trên nền Distance Transform: Sử dụng bộ lọc kích thước động và tìm cực đại cục bộ đa ngưỡng giúp giải quyết triệt để bài toán over-segmentation (phân đoạn quá mức) thường gặp ở các thuật toán Watershed truyền thống.
  4. Mô hình triển khai Zero-Config Python Sandbox: Đóng gói toàn bộ runtime Python và thư viện liên quan dưới dạng môi trường ảo hóa độc lập, cho phép người dùng cuối vận hành phần mềm mà không cần cài đặt Python hay thao tác dòng lệnh CMD phức tạp.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Kiểm nghiệm vi sinh an toàn thực phẩm: Định lượng nhanh tổng số vi sinh vật hiếu khí, vi khuẩn E. coliColiform trong các mẫu sữa, thịt, nước giải khát theo tiêu chuẩn ISO.
  • Quan trắc môi trường: Đếm số lượng khuẩn lạc vi sinh vật chỉ thị trong các mẫu nước thải sinh hoạt và nước ngầm.
  • Nghiên cứu dược phẩm & Nuôi cấy mô: Đo lường vòng vô khuẩn (Inhibition Zone) và mật độ vi sinh phục vụ thử nghiệm độ nhạy kháng sinh (Antibiogram).

Yêu cầu cấu hình triển khai hệ thống (System Requirements)

  • Hệ điều hành: Windows 10 / Windows 11 (64-bit).
  • Phần cứng máy tính:
    • CPU: Intel Core i5 thế hệ 8 hoặc AMD Ryzen 5 tương đương trở lên.
    • RAM: Tối thiểu 8 GB (Khuyến nghị 16 GB DDR4).
    • Cổng kết nối: Tối thiểu 1 cổng USB 3.0 Type-A/Type-C chuyên dụng cho Camera Basler.
    • Ổ cứng: Trống tối thiểu 5 GB dung lượng cho phần mềm và môi trường ảo.
  • Phần cứng trạm quét:
    • Buồng kín quét ảnh SCAN tích hợp đèn vòm và đèn nền.
    • Camera Basler acA5472-17uc + Ống kính Kowa 8mm.
    • Bộ điều khiển nguồn LED 24V DC.

Phân tích hiệu quả kinh tế (ROI Analysis)

  • Chi phí thiết bị: Ước tính khoảng 45.000.000 VNĐ (~1.800 USD) - tiết kiệm hơn 85% so với việc mua thiết bị nhập khẩu từ châu Âu (khoảng 400.000.000 VNĐ).
  • Năng suất lao động: Giảm thời gian đếm từ 3 phút/đĩa xuống còn 2 giây/đĩa. Đối với một phòng lab công suất 200 đĩa/ngày, hệ thống tiết kiệm xấp xỉ 9.5 giờ lao động mỗi ngày, giúp hoàn vốn đầu tư (ROI) chỉ sau 3.5 đến 4 tháng vận hành.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Phần mềm hiện chỉ tương thích với hệ điều hành Windows do cơ chế IPC dựa trên Win32 Named Pipes API.
  • Đối với các mẫu khuẩn lạc phát triển lan rộng dạng màng mỏng (Swarming colonies như Proteus mirabilis) hoặc khuẩn lạc có hình dạng sợi nấm men, thuật toán Watershed phân đoạn hình thái tròn có thể gặp sai số nhận dạng.
  • Phụ thuộc vào chất lượng đĩa thạch: thạch bị lẫn bọt khí lớn hoặc nứt vỡ nghiêm trọng có thể tạo ra các điểm cực đại giả.

Hướng phát triển trong tương lai

  1. Ứng dụng mô hình Deep Learning tiên tiến (Instance Segmentation): Tích hợp mạng YOLOv8-Seg hoặc Mask R-CNN đã được tối ưu hóa bằng TensorRT/ONNX Runtime để nhận diện và phân loại đa chủng vi khuẩn đồng thời dựa trên màu sắc và vân bề mặt (texture).
  2. Mở rộng nền tảng đa hệ điều hành: Chuyển đổi giao diện sang .NET MAUI / Avalonia UI và thay thế Named Pipes bằng gRPC / Unix Domain Sockets để hỗ trợ Linux (Ubuntu) và macOS.
  3. Tích hợp module đo vòng kháng sinh tự động: Lập trình thuật toán xác định đường kính vòng vô khuẩn theo tiêu chuẩn CLSI/EUCAST phục vụ nghiên cứu kháng sinh đồ.
  4. Đồng bộ hóa đám mây (Cloud & LIMS Integration): Cung cấp RESTful API kết nối trực tiếp cơ sở dữ liệu kết quả phân tích vào hệ thống LIMS của bệnh viện và trung tâm kiểm định.

Đối tượng hưởng lợi

+----------------------------------------------------------------------------+
|                         CÁC BÊN HƯỞNG LỢI DỰ ÁN                            |
+----------------------------------------------------------------------------+
| [SINH VIÊN & NGHIÊN CỨU SINH]                                              |
| -> Tài liệu tham khảo toàn diện về thị giác máy tính & kiến trúc IPC lai    |
| -> Giảm 90% thời gian thực nghiệm đếm đĩa trong luận văn vi sinh           |
+----------------------------------------------------------------------------+
| [LẬP TRÌNH VIÊN THỊ GIÁC MÁY TÍNH]                                         |
| -> Mẫu thiết kế phần mềm kết hợp C# WPF + Python hoàn chỉnh                |
| -> Bộ code chuẩn về quản lý Undo/Redo & xử lý ảnh công nghiệp              |
+----------------------------------------------------------------------------+
| [PHÒNG LAB & DOANH NGHIỆP THỰC PHẨM/Y TẾ]                                  |
| -> Tiết kiệm 85% chi phí đầu tư thiết bị tự động hóa                       |
| -> Chuẩn hóa quy trình theo TCVN, loại bỏ hoàn toàn sai số chủ quan        |
+----------------------------------------------------------------------------+
  • Sinh viên và Nhà nghiên cứu: Tiếp cận tài liệu thực tế về ứng dụng thị giác máy tính trong cơ điện tử y sinh, đồng thời sở hữu công cụ hỗ trợ thu thập số liệu vi sinh nhanh chóng.
  • Kỹ sư và Lập trình viên: Tham khảo mô hình kiến trúc phần mềm lai giữa C# (tối ưu UI/UX) và Python (mạnh về tính toán khoa học), kèm cơ chế IPC tốc độ cao qua Named Pipes.
  • Phòng thí nghiệm và Doanh nghiệp: Tối ưu hóa chi phí vận hành, nâng cao năng suất kiểm nghiệm sản phẩm xuất khẩu, đáp ứng các tiêu chuẩn nghiêm ngặt về truy xuất nguồn gốc số liệu.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy tính chạy Windows 10/11 64-bit, vi xử lý Intel Core i5 (từ Gen 8 trở lên) hoặc AMD Ryzen 5, RAM tối thiểu 8GB (khuyến nghị 16GB), và ít nhất 1 cổng USB 3.0 băng thông cao dành riêng cho Camera Basler 20MP. Thiết bị buồng quét cần kết nối nguồn điện 220V AC tiêu chuẩn để cấp cho bộ nguồn đèn 24V DC.

2. Giới hạn mật độ đếm khuẩn lạc của thuật toán là bao nhiêu và cách xử lý khi khuẩn dính liền dày đặc?

Hệ thống đếm tối ưu nhất trong dải tiêu chuẩn từ 30 đến 300 CFU/đĩa Petri 90mm. Đối với mật độ cao (300 - 1000 CFU), thuật toán kết hợp distanceTransformwatershed với tham số min_distance=5 vẫn phân tách hiệu quả các cụm dính từ 2 đến 6 khuẩn. Khi khuẩn mọc tràn đĩa (>1000 CFU), người dùng nên sử dụng công cụ Segment ROI để đếm trên diện tích đại diện (1/4 hoặc 1/8 đĩa) và nhân hệ số tương ứng.

3. Phần mềm tích hợp với các hệ thống quản lý phòng lab (LIMS) hiện có như thế nào?

Dữ liệu kết quả sau khi quét được cấu trúc hóa dưới dạng JSON và bảng tính Excel (.xlsx, .csv), bao gồm các trường thông tin: Mã mẫu, Ngày giờ quét, Tổng số CFU, Tọa độ từng khuẩn lạc, và Diện tích trung bình. Dữ liệu này dễ dàng nhập trực tiếp vào bất kỳ hệ thống LIMS hoặc cơ sở dữ liệu SQL Server/MySQL nội bộ thông qua các script tự động hóa.

4. Quy trình bảo trì và hiệu chuẩn hệ thống quang học định kỳ ra sao?

Cần vệ sinh bề mặt kính đặt đĩa thạch và chụp vòm tán xạ bằng cồn y tế 70 độ và khăn vi sợi mềm định kỳ mỗi tuần để tránh bụi bẩn tạo thành điểm ảnh nhiễu. Hàng tháng, kỹ thuật viên sử dụng "Đĩa mẫu chuẩn hiệu chuẩn quang học" (Target Calibration Plate) có sẵn các chấm tròn kích thước xác định để phần mềm tự động cân chỉnh lại thông số tỉ lệ pixel/milimet và độ nhạy phân ngưỡng.

5. Chi phí chi tiết cấu thành thiết bị và thời gian thu hồi vốn (ROI) được tính như thế nào?

Tổng chi phí cấu thành hệ thống phần cứng khoảng 45 triệu VNĐ (bao gồm Camera công nghiệp Basler 20MP: ~25 triệu, Hệ thống đèn vòm và đèn nền công nghiệp: ~12 triệu, Khung vỏ cơ khí và thấu kính: ~8 triệu). So với chi phí nhân công đếm thủ công (khoảng 8-10 triệu VNĐ/tháng cho 1 kỹ thuật viên chuyên trách), máy giúp phòng lab tiết kiệm hơn 70% thời gian nhân sự, mang lại thời gian hoàn vốn đầu tư trong vòng chưa đầy 4 tháng.


Kết luận

Đề tài "Lập trình thuật toán xử lý ảnh và thiết kế, lập trình các chức năng cho phần mềm của máy đếm khuẩn lạc SCAN" đã giải quyết toàn diện bài toán tự động hóa đếm khuẩn lạc vi sinh bằng giải pháp công nghệ cao nhưng tối ưu về mặt kinh tế. Dự án ghi dấu ấn với sự kết hợp hài hòa giữa thiết kế hệ thống quang học đa hướng (Dome + Backlight), thuật toán phân đoạn ảnh mạnh mẽ (Distance Transform + Watershed) và kiến trúc phần mềm công nghiệp ổn định (C# WPF + Python IPC).

Hệ thống đạt độ chính xác ấn tượng 96.5%, rút ngắn thời gian phân tích mẫu xuống dưới 2 giây, mở ra tiềm năng thương mại hóa to lớn nhằm thay thế các thiết bị ngoại nhập đắt đỏ trong các nhà máy sản xuất, viện nghiên cứu và trường đại học tại Việt Nam.

[!TIP] Bạn có thể tải mã nguồn module xử lý ảnh, schema giao tiếp JSON IPC và tài liệu hướng dẫn kỹ thuật chi tiết của đề tài để phục vụ mục đích học tập và phát triển nghiên cứu phi thương mại. Hãy liên hệ bộ môn Tự động Điều khiển - Khoa Điện-Điện tử, Trường ĐH Sư phạm Kỹ thuật TP.HCM hoặc Công ty TNHH Labone để kết nối hợp tác chuyển giao công nghệ.