Bối cảnh và vấn đề nghiên cứu

Đồ án được thực hiện trong bối cảnh nền công nghiệp toàn cầu đang chuyển dịch mạnh sang Công nghiệp 4.0 — xu hướng tích hợp các công nghệ số, vật lý và sinh học nhằm gia tăng mức độ tự động hóa trong sản xuất. Tác giả xác định rằng xử lý ảnh là một trong những lĩnh vực ứng dụng nổi bật của xu hướng này, đặc biệt trong bài toán phân loại và kiểm tra chất lượng sản phẩm trên dây chuyền. Từ đó, đề tài "Phân loại sản phẩm dùng Kit Raspberry" được hình thành, lấy cảm hứng từ đồ án tốt nghiệp đi trước về ứng dụng xử lý ảnh trong phân loại chất lượng gạo (dùng Matlab), và phát triển thành hệ thống nhận dạng hình dạng sản phẩm bánh quy trên nền tảng Python và OpenCV, thực thi trực tiếp trên Kit Raspberry Pi.

Mục tiêu và nhiệm vụ nghiên cứu (theo văn bản):

  • Nội dung 1: Tìm hiểu phương pháp nhận dạng và phân loại sản phẩm
  • Nội dung 2: Tổng quan về xử lý ảnh
  • Nội dung 3: Tìm hiểu Kit Raspberry Pi và các module liên quan
  • Nội dung 4: Viết chương trình trên Kit Raspberry Pi
  • Nội dung 5: Hoàn thành mô hình
  • Nội dung 6: Đánh giá kết quả thực hiện

Đối tượng và phạm vi nghiên cứu:

Đối tượng nghiên cứu là các sản phẩm bánh quy có bốn hình dạng cơ bản: hình tròn, hình vuông, hình chữ nhật và hình tam giác. Phạm vi kỹ thuật giới hạn ở việc phát hiện các lỗi nằm ở ngoài cạnh sản phẩm, chưa xử lý lỗi bên trong; hệ thống hoạt động theo mô hình nhỏ và gọn, không triển khai thành dây chuyền sản xuất thực tế. Thời gian thực hiện từ ngày 16/04/2018 đến ngày 30/06/2018 tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, Khoa Điện – Điện Tử, Bộ môn Điện Tử Công Nghiệp – Y Sinh.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình xử lý ảnh

Đồ án xây dựng trên nền tảng lý thuyết xử lý ảnh số, bao gồm các khái niệm cốt lõi: điểm ảnh (pixel), ảnh số, quan hệ lân cận điểm ảnh (lân cận 4 và lân cận 8, ký hiệu N4(p), N8(p)), các kiểu liên kết ảnh (liên kết 4, liên kết 8, liên kết m), và phân loại ảnh theo mức xám (ảnh nhị phân, ảnh đen trắng, ảnh màu RGB).

Quy trình xử lý ảnh được tổ chức theo chuỗi tuần tự gồm sáu bước: Thu nhận ảnh → Tiền xử lý → Phân đoạn → Biểu diễn → Nhận dạng → Xuất kết quả, kết hợp với cơ sở tri thức về hình học phẳng. Các phép toán hình thái học (Morphology) — cụ thể là phép giãn (Dilation) và phép co (Erosion) — được vận dụng trong giai đoạn tiền/hậu xử lý ảnh, bắt nguồn từ công trình của Georges Matheron và Jean Serra (École des Mines de Paris, 1964).

Để phát hiện biên, đồ án sử dụng bộ tách biên Canny, gồm bốn bước: làm phẳng bằng bộ lọc Gaussian, tính gradient cục bộ bằng nhân Sobel (cả hướng ngang Gx và hướng dọc Gy), áp dụng kỹ thuật nonmaximal suppression, và phân ngưỡng kép (minVal – maxVal) để phân loại biên thực/biên nhiễu. Để nhận dạng hình dạng, tác giả sử dụng thuật toán Ramer-Douglas-Peucker (xấp xỉ đường bao đa giác và xác định đỉnh) kết hợp với công thức tính độ dài cạnh theo tọa độ Euclidean, công thức tính tâm và bán kính đường tròn ngoại tiếp tam giác, và công thức diện tích Heron.

Công nghệ và phần cứng

Thành phần Mô tả trong văn bản
Ngôn ngữ lập trình Python (do Guido van Rossum tạo ra năm 1990)
Thư viện xử lý ảnh OpenCV (Open Source Computer Vision Library, tạo tại Intel năm 1999 bởi Gary Bradsky, ra mắt năm 2000)
Bộ điều khiển trung tâm Raspberry Pi 3 Model B (CPU Broadcom BCM2835, 1.2 GHz 64-bit quad-core ARM Cortex-A53, RAM 1 GB)
Module thu ảnh Camera Raspberry Pi (5 megapixel, góc nhìn 72,4 độ, kết nối qua cổng CSI)
Hiển thị kết quả Màn hình kết nối qua cổng HDMI

Nguồn dữ liệu

Dữ liệu ảnh đầu vào được thu nhận trực tiếp từ Camera Raspberry Pi trong điều kiện ánh sáng được kiểm soát (buồng che kín, đèn LED bổ trợ). Hệ thống hỗ trợ cả chế độ offline (ảnh lấy từ bộ nhớ) và chế độ online (chụp ảnh thời gian thực từ camera).


Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương này xác định bối cảnh Công nghiệp 4.0 làm nền tảng chọn đề tài, trình bày sáu nội dung nghiên cứu, và nêu rõ các giới hạn của đồ án: chỉ phát hiện lỗi ngoài cạnh sản phẩm, tốc độ xử lý còn chậm, hệ thống yêu cầu điều kiện ánh sáng được kiểm soát, và mô hình không triển khai thành dây chuyền sản xuất.

Chương 2: Cơ sở lý thuyết

Chương này trình bày bốn nhóm lý thuyết nền. Nhóm thứ nhất là tổng quan xử lý ảnh số, bao gồm khái niệm pixel, ảnh số, quan hệ lân cận, lọc nhiễu (lọc tuyến tính và phi tuyến — lọc trung bình, lọc trung vị, lọc ngoài), phát hiện biên (đạo hàm bậc một, đạo hàm bậc hai, bộ tách biên Canny), phân đoạn ảnh, và các phép toán Morphology. Nhóm thứ hai là phương pháp phân loại sản phẩm theo hình dạng, nêu đặc điểm nhận dạng riêng biệt của bốn loại hình (xem bảng đặc điểm hình dạng sản phẩm), phương pháp tìm đỉnh bằng thuật toán Ramer-Douglas-Peucker, tìm độ dài cạnh theo công thức Euclidean, tìm tâm và bán kính qua đường tròn ngoại tiếp tam giác, và phương pháp kiểm tra sản phẩm lỗi bằng so sánh diện tích đường bao với diện tích thực. Nhóm thứ ba giới thiệu ngôn ngữ Python và thư viện OpenCV. Nhóm thứ tư mô tả phần cứng: Raspberry Pi 3 Model B và Camera Raspberry Pi.

Bảng 2.1 — Đặc điểm hình dạng sản phẩm (theo văn bản):

Đặc điểm Hình vuông Hình chữ nhật Hình tròn Hình tam giác
Đỉnh 4 đỉnh 4 đỉnh không 3 đỉnh
Cạnh 2 cạnh kề bằng nhau 2 cạnh kề không bằng nhau không 3 cạnh
Bán kính không không bằng nhau không

Chương 3: Tính toán và thiết kế

Chương này xây dựng kiến trúc phần cứng gồm ba khối chức năng: bộ điều khiển trung tâm (Raspberry Pi 3 Model B), khối thu tín hiệu hình ảnh (Camera Raspberry Pi kết nối qua cổng CSI), và khối hiển thị (màn hình qua HDMI). Tác giả trình bày sơ đồ khối hệ thống, sơ đồ kết nối thực tế, sơ đồ kết nối thẻ nhớ microSD, và sơ đồ các cổng ngoại vi sử dụng trên Raspberry Pi.

Chương 4: Thi công hệ thống

Chương này trình bày toàn bộ quá trình lập trình hệ thống, bao gồm bốn lưu đồ giải thuật chính: lưu đồ chính, lưu đồ tiền xử lý ảnh, lưu đồ tách biên và lấp đầy, lưu đồ phân loại sản phẩm và nhận biết sản phẩm lỗi.

Tiền xử lý ảnh gồm: chuyển đổi ảnh màu RGB sang ảnh xám theo công thức Y = 0.299R + 0.587G + 0.114B (công thức 2.8 trong văn bản), sau đó lọc trung bình để giảm nhiễu. Tách biên và lấp đầy sử dụng bộ lọc Gaussian để giảm nhiễu, nhân Sobel để xác định gradient, kỹ thuật nonmaximal suppression, và phân ngưỡng kép. Sau tách biên, đường biên kín được lấp đầy để tạo ảnh nhị phân (giá trị 1 cho vùng hình dạng, 0 cho nền). Nhận dạng và phân loại áp dụng so sánh tuần tự: hình vuông → hình chữ nhật → hình tròn → hình tam giác, dựa vào ba đặc điểm đỉnh, cạnh và bán kính. Nhận biết sản phẩm lỗi so sánh diện tích thực (tổng giá trị mức xám ảnh nhị phân) với diện tích đường bao xấp xỉ (tính theo công thức hình học tương ứng); riêng hình tròn, lỗi được xác định khi bán kính từ tâm tới các điểm trên viền không bằng nhau. Chương cũng mô tả giao diện điều khiển đồ họa, hướng dẫn chọn đường dẫn ảnh, và cách vận hành hai chế độ (offline và online).

Chương 5: Kết quả, nhận xét và đánh giá

Chương này tổng hợp kết quả nhận dạng qua nhiều kịch bản thử nghiệm: các tổ hợp khác nhau của sáu sản phẩm cùng lúc (ví dụ: hai tròn, hai chữ nhật, một vuông, một tam giác; ba tròn, một chữ nhật, một vuông, một tam giác; v.v.), kết quả khi đổi vị trí sản phẩm, và các kịch bản kiểm tra sản phẩm lỗi (hai, bốn, sáu sản phẩm lỗi). Kết quả được tổng hợp trong Bảng 5.1 (độ chính xác phân loại hình dạng) và Bảng 5.2 (độ chính xác nhận dạng sản phẩm lỗi).

Chương 6: Kết luận và hướng phát triển

Chương tổng kết các kết quả đạt được, chỉ ra các hạn chế còn tồn tại, và đề xuất hướng phát triển tiếp theo của hệ thống.


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống được tổ chức theo kiến trúc ba khối: khối thu tín hiệu hình ảnh (Camera Raspberry Pi kết nối qua cổng CSI), khối xử lý trung tâm (Raspberry Pi 3 Model B với CPU Broadcom BCM2835, 1.2 GHz 64-bit quad-core ARM Cortex-A53, RAM 1 GB), và khối hiển thị kết quả (màn hình kết nối qua HDMI). Thẻ nhớ microSD đóng vai trò lưu trữ hệ điều hành và dữ liệu ảnh trong chế độ offline.

Công nghệ sử dụng

Toàn bộ phần mềm được viết bằng Python, sử dụng OpenCV làm thư viện xử lý ảnh chính. Chương trình bao gồm giao diện điều khiển đồ họa cho phép người dùng chọn đường dẫn ảnh, chọn chế độ hoạt động (offline/online), và xem kết quả đếm và phân loại trực tiếp trên màn hình. Hệ điều hành chạy trên Raspberry Pi là Linux (các bản phân phối ARM GNU/Linux).

Kiểm thử

Kiểm thử được thực hiện trực tiếp trên mô hình vật lý thông qua nhiều kịch bản thử nghiệm với các tổ hợp sản phẩm bánh quy khác nhau, bao gồm: thay đổi số lượng từng loại hình, đổi vị trí sản phẩm trên mặt phẳng, và đưa các sản phẩm lỗi vào kiểm tra. Kết quả kiểm thử được lượng hóa trong hai bảng thống kê độ chính xác (Bảng 5.1 và Bảng 5.2). Điều kiện kiểm thử yêu cầu buồng ánh sáng che kín và đèn LED bổ trợ để đảm bảo chất lượng ảnh đầu vào.


Kết quả và đóng góp

Kết quả chính: Hệ thống nhận dạng và phân loại thành công sản phẩm bánh quy có bốn hình dạng (tròn, vuông, chữ nhật, tam giác), đếm được số lượng từng loại hình trong cùng một khung ảnh, và phát hiện các sản phẩm lỗi ở ngoài cạnh. Kết quả định lượng được thể hiện trong Bảng 5.1 (độ chính xác phân loại hình dạng) và Bảng 5.2 (độ chính xác nhận dạng sản phẩm lỗi), thử nghiệm qua nhiều kịch bản bố trí với tối đa sáu sản phẩm và tối đa sáu sản phẩm lỗi cùng lúc.

Giải pháp đề xuất: Hệ thống hỗ trợ hai chế độ vận hành — offline (ảnh từ bộ nhớ) và online (ảnh thời gian thực từ camera) — kết hợp giao diện điều khiển đồ họa giúp người dùng thao tác trực tiếp trên Raspberry Pi.

Đóng góp so với nghiên cứu trước: So với đồ án tham khảo sử dụng Matlab để phân loại hạt gạo, đồ án này chuyển sang nền tảng Python/OpenCV trên phần cứng nhúng Raspberry Pi, bổ sung khả năng đếm sản phẩm theo hình dạng, mở rộng nhận dạng từ một loại sản phẩm (gạo) sang bốn hình dạng hình học cơ bản, và tích hợp chức năng phát hiện sản phẩm lỗi.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế mà văn bản nêu rõ:

  • Chỉ phát hiện được lỗi nằm ở ngoài cạnh sản phẩm; chưa xử lý được lỗi bên trong bề mặt sản phẩm.
  • Tốc độ xử lý còn chậm do năng lực tính toán giới hạn của Raspberry Pi 3 Model B so với máy tính để bàn.
  • Hệ thống yêu cầu điều kiện ánh sáng được kiểm soát chặt chẽ (buồng che kín, đèn LED bổ trợ); không hoạt động ổn định trong điều kiện thiếu ánh sáng tự nhiên.
  • Mô hình chỉ ở quy mô nhỏ, chưa tích hợp được vào dây chuyền sản xuất thực tế.

Hướng phát triển theo văn bản: Chương 6 đề cập đến việc hoàn thiện mô hình và tối ưu hơn trong tương lai, bao gồm nâng cao khả năng phát hiện lỗi và cải thiện tốc độ xử lý.


Giá trị tham khảo

Đồ án này phù hợp để tham khảo cho các đối tượng sau:

  • Sinh viên ngành Công nghệ Kỹ thuật Điện Tử – Truyền Thông đang tìm hiểu ứng dụng xử lý ảnh trên phần cứng nhúng, đặc biệt là nền tảng Raspberry Pi.
  • Sinh viên ngành Công nghệ thông tin hoặc Tự động hóa nghiên cứu về Computer Vision cơ bản, muốn triển khai thuật toán nhận dạng hình dạng bằng Python/OpenCV mà không cần hạ tầng máy chủ.
  • Người thực hiện đề tài tương tự về kiểm tra chất lượng sản phẩm bằng thị giác máy có thể tham khảo phần trình bày chi tiết về thuật toán Ramer-Douglas-Peucker, phương pháp tìm đỉnh/cạnh/bán kính (Chương 2), và phương pháp phát hiện lỗi bằng so sánh diện tích (mục 2.4).
  • Phần cứng (Chương 3) hữu ích cho những ai muốn xây dựng hệ thống nhúng với Raspberry Pi 3 Model B và Camera Pi từ đầu, bao gồm sơ đồ kết nối vật lý chi tiết.

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

1. Hệ thống phân biệt hình vuông và hình chữ nhật bằng cách nào khi cả hai đều có 4 đỉnh?

Sau khi xác định số đỉnh bằng thuật toán Ramer-Douglas-Peucker, hệ thống tính độ dài hai cạnh kề theo công thức Euclidean. Nếu hai cạnh kề bằng nhau thì kết luận là hình vuông; nếu không bằng nhau thì kết luận là hình chữ nhật. Đây là đặc điểm phân biệt duy nhất được chọn vì các đặc điểm còn lại (4 đỉnh, 4 góc vuông) là chung cho cả hai hình.

2. Hệ thống phát hiện sản phẩm lỗi theo nguyên lý nào, và sản phẩm lỗi được định nghĩa như thế nào trong đồ án?

Sản phẩm lỗi là sản phẩm có khuyết tật ở ngoài cạnh (không phải bên trong bề mặt). Phương pháp phát hiện: hệ thống vẽ đường bao xấp xỉ bao quanh sản phẩm rồi lấp đầy để tạo hình chuẩn, sau đó so sánh diện tích thực của sản phẩm (tổng giá trị pixel trong ảnh nhị phân) với diện tích đường bao (tính theo công thức hình học tương ứng). Nếu hai diện tích sai khác nhau thì kết luận sản phẩm lỗi. Riêng hình tròn, lỗi được phát hiện khi bán kính từ tâm đến các điểm trên viền không đồng đều.

3. Hệ thống có thể nhận dạng đồng thời bao nhiêu sản phẩm trong một lần chụp ảnh?

Theo các kịch bản thử nghiệm trong Chương 5, hệ thống được kiểm thử với tối đa sáu sản phẩm trong một khung ảnh (ví dụ: hai tròn, hai chữ nhật, hai vuông; hoặc ba tròn, một chữ nhật, một vuông, một tam giác). Các kịch bản kiểm tra sản phẩm lỗi cũng thực hiện với tối đa sáu sản phẩm lỗi cùng lúc.

4. Tại sao hệ thống cần điều kiện ánh sáng đặc biệt và điều này ảnh hưởng thế nào đến tính ứng dụng thực tế?

Tác giả giải thích rằng Camera Raspberry Pi không cho kết quả mong muốn trong điều kiện thiếu ánh sáng, nên phải sử dụng buồng che kín và chiếu thêm đèn LED để tăng cường độ sáng. Điều này là một trong những giới hạn trực tiếp khiến hệ thống chưa thể triển khai thành dây chuyền sản xuất thực tế, vì môi trường nhà máy thường không kiểm soát được ánh sáng theo yêu cầu này.

5. Thuật toán Ramer-Douglas-Peucker được vận dụng cụ thể như thế nào trong hệ thống?

Thuật toán này được dùng trong hai bước. Bước thứ nhất là tìm đỉnh của hình dạng: thuật toán xét khoảng cách từ đường cong đến đoạn thẳng nối hai điểm đầu/cuối; nếu khoảng cách lớn nhất vượt ngưỡng θ thì điểm đó được giữ lại là đỉnh, ngược lại bị loại. Bước thứ hai là tạo đường bao xấp xỉ phục vụ phát hiện sản phẩm lỗi: đường bao được vẽ bao quanh sản phẩm, sau đó lấp đầy các chỗ khuyết để tạo hình chuẩn dùng so sánh diện tích.


Kết luận

Đồ án "Phân loại sản phẩm dùng Kit Raspberry" xây dựng thành công một hệ thống nhúng hoàn chỉnh kết hợp giữa Raspberry Pi 3 Model B, Camera Pi, ngôn ngữ Python và thư viện OpenCV, có khả năng nhận dạng và phân loại bốn hình dạng bánh quy (tròn, vuông, chữ nhật, tam giác), đếm số lượng từng loại, và phát hiện sản phẩm có khuyết tật ngoài cạnh. Hệ thống ứng dụng chuỗi giải thuật xử lý ảnh từ tiền xử lý, tách biên Canny, lấp đầy đường biên, đến nhận dạng hình dạng bằng đặc điểm đỉnh–cạnh–bán kính và thuật toán Ramer-Douglas-Peucker. Dù còn giới hạn về tốc độ xử lý và điều kiện ánh sáng, đồ án cung cấp một nền tảng kỹ thuật rõ ràng để phát triển thành hệ thống kiểm tra sản phẩm tự động quy mô lớn hơn trong tương lai.