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

Trong tiến trình công nghiệp hóa và hiện đại hóa, việc áp dụng các dây chuyền tự động hóa vào sản xuất, gia công và chế biến sản phẩm đóng vai trò then chốt nhằm nâng cao năng suất và chất lượng. Trong các dây chuyền sản xuất linh hoạt sử dụng máy CNC và robot công nghiệp, công đoạn phân loại sản phẩm giữ vị trí đặc biệt quan trọng. Khâu này đảm nhận chức năng chia tách sản phẩm theo các nhóm thuộc tính riêng biệt phục vụ đóng gói hoặc loại bỏ các phế phẩm không đạt tiêu chuẩn.

Thực tế sản xuất truyền thống thường ứng dụng các loại cảm biến màu sắc hoặc cảm biến quang - cơ độc lập để phân loại. Mặc dù các cảm biến này có ưu điểm là quy trình lắp đặt và vận hành tương đối đơn giản, nhưng chúng lại bộc lộ hạn chế lớn về khả năng thích ứng linh hoạt và rất dễ bị nhiễu bởi các yếu tố môi trường. Để giải quyết vấn đề này, việc ứng dụng thị giác máy tính và công nghệ xử lý ảnh số kết hợp với hệ thống nhúng điều khiển tự động trở thành một hướng tiếp cận kỹ thuật hiệu quả, giúp tăng cường độ chính xác và tính linh hoạt trong quá trình nhận dạng, phân loại.

Trên cơ sở đó, đề tài "Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm" được thực hiện nhằm xây dựng một mô hình phân loại sản phẩm theo màu sắc tự động, kết hợp giữa máy tính nhúng và vi điều khiển.

Mục tiêu và các nội dung nghiên cứu chính của đề tài bao gồm:

  1. Mục tiêu nghiên cứu: Thiết kế và thi công hoàn chỉnh mô hình hệ thống phân loại sản phẩm theo 3 màu sắc cơ bản (đỏ, xanh, vàng) dựa trên ngôn ngữ lập trình Python, thư viện thị giác máy tính OpenCV, kết hợp xử lý trên máy tính nhúng Raspberry Pi và điều khiển chấp hành trên kit vi điều khiển Arduino Uno, đồng thời thống kê số lượng sản phẩm phân loại trên màn hình LCD.
  2. Nội dung/Nhiệm vụ nghiên cứu:
    • Nhiệm vụ 1: Tìm hiểu kiến trúc phần cứng, nguyên lý hoạt động của Raspberry Pi 3 và Arduino Uno.
    • Nhiệm vụ 2: Nghiên cứu tổng quan về cơ sở lý thuyết xử lý ảnh số và các giải thuật nhận dạng màu sắc.
    • Nhiệm vụ 3: Lập trình thuật toán xử lý ảnh trên Raspberry Pi và viết chương trình điều khiển chấp hành trên Arduino Uno.
    • Nhiệm vụ 4: Thiết kế và thi công phần cứng mô hình phân loại sản phẩm bao gồm băng tải, cơ cấu gạt servo, buồng chụp ảnh và mạch nguồn.
    • Nhiệm vụ 5: Chạy thử nghiệm thực tế, cân chỉnh quang học và tối ưu hóa hệ thống.
    • Nhiệm vụ 6: Tổng hợp số liệu, biên soạn sách thuyết minh đồ án tốt nghiệp.
    • Nhiệm vụ 7: Báo cáo kết quả nghiên cứu và nghiệm thu đề tài trước hội đồng chuyên môn.

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

  • Đối tượng nghiên cứu: Các phôi sản phẩm hình khối mang 3 màu sắc đặc trưng gồm màu đỏ, màu xanh (xanh dương) và màu vàng; các thuật toán xử lý ảnh số trong không gian màu; mô hình điều khiển cơ điện tử nhúng.
  • Phạm vi nghiên cứu: Mô hình hệ thống phân loại vật lý quy mô phòng thí nghiệm, hoạt động trong điều kiện buồng chụp được che chắn ánh sáng và bổ sung đèn LED chiếu sáng nhân tạo; truyền thông nối tiếp UART giữa Raspberry Pi 3 Model B và Arduino Uno R3.
  • Giới hạn đề tài: Tốc độ xử lý ảnh trên máy tính nhúng vẫn còn độ trễ nhất định so với máy tính cá nhân hoặc máy tính công nghiệp; camera thu nhận hình ảnh dễ bị ảnh hưởng bởi ánh sáng môi trường tự nhiên nên bắt buộc phải che kín buồng chụp; mô hình dừng lại ở quy mô nhỏ gọn, phục vụ mục đích thử nghiệm và học thuật, chưa mở rộng thành dây chuyền công nghiệp hoàn chỉnh.

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

Khung lý thuyết xử lý ảnh và nhận dạng màu sắc

Quy trình xử lý ảnh trong đồ án tuân theo chu trình chuẩn của kỹ thuật xử lý ảnh số, bao gồm các bước:

  1. Thu nhận ảnh (Image Acquisition): Ảnh phôi sản phẩm được ghi nhận qua Camera Pi v2 kết nối trực tiếp với Raspberry Pi thông qua giao tiếp CSI (Camera Serial Interface). Tín hiệu hình ảnh được số hóa dưới dạng mảng dữ liệu điểm ảnh hai chiều $f(x, y)$ biểu diễn mức sáng và giá trị màu sắc.
  2. Tiền xử lý (Image Pre-processing): Lọc nhiễu và nâng cao chất lượng ảnh nhằm khắc phục hiện tượng nhiễu quang học và độ tương phản thấp. Đề tài khảo sát các phương pháp lọc tuyến tính (lọc trung bình, lọc thông thấp) và lọc phi tuyến (lọc trung vị - Median Filter) để làm phẳng ảnh trước khi phân tích.
  3. Phân đoạn ảnh (Segmentation): Quá trình tách biệt đối tượng phôi cần nhận diện ra khỏi nền ảnh bằng phương pháp phân ngưỡng. Đồ án sử dụng kỹ thuật phân ngưỡng trong không gian màu để tách riêng từng vùng màu sắc.
  4. Biến đổi hình thái học (Morphological Operations): Áp dụng hai phép toán hình thái học cơ bản trên ảnh nhị phân:
    • Phép co (Erosion): Làm xói mòn và thu hẹp biên đối tượng, loại bỏ các điểm nhiễu trắng nhỏ xung quanh phôi.
    • Phép giãn (Dilation): Làm phình to và lấp đầy các khoảng trống bên trong vùng đối tượng, tạo thành các khối màu liên thông đồng nhất.
  5. Phát hiện biên và trích xuất đặc trưng: Cơ sở lý thuyết về quan hệ lân cận điểm ảnh ($N_4(p)$, $N_D(p)$, $N_8(p)$), liên kết điểm ảnh (liên kết 4, liên kết 8, liên kết m), cùng các kỹ thuật tách biên dựa trên đạo hàm bậc một (Gradient, Sobel, Prewitt, Roberts), đạo hàm bậc hai (Laplace) và thuật toán tách biên Canny với kỹ thuật triệt tiêu không cực đại (Non-maximal Suppression) và phân ngưỡng kép (Strong/Weak).
  6. Không gian màu: Đề tài phân tích và so sánh ba không gian màu chính:
    • Hệ màu RGB: Không gian màu cộng dựa trên 3 kênh màu cơ bản (Red, Green, Blue), nhạy cảm lớn với sự thay đổi của cường độ ánh sáng môi trường.
    • Hệ màu CMYK: Không gian màu trừ (Cyan, Magenta, Yellow, Key/Black) thường dùng trong in ấn.
    • Hệ màu HSV: Không gian màu tách biệt thành phần sắc thái thái màu (Hue - $H$), độ bão hòa màu (Saturation - $S$) và giá trị độ sáng (Value - $V$). Hệ màu HSV được chọn làm cơ sở chính để phân tách ngưỡng màu đỏ, xanh, vàng do giá trị sắc thái $H$ không bị biến đổi khi cường độ ánh sáng $V$ dao động nhẹ.

Nền tảng phần cứng và truyền thông

  • Raspberry Pi 3 Model B: Trang bị vi xử lý SoC Broadcom BCM2835 (ARM Cortex-A53 64-bit Quad-Core 1.2 GHz), bộ nhớ RAM 1 GB, bộ xử lý đồ họa VideoCore IV, 4 cổng USB 2.0, 40 chân GPIO, hỗ trợ hệ điều hành Raspbian (Linux). Đảm nhận vai trò xử lý ảnh và ra quyết định phân loại.
  • Camera Pi v2: Sử dụng cảm biến Sony IMX219 độ phân giải 8 Megapixel (chụp ảnh tĩnh kích thước $3280 \times 2464$), hỗ trợ video 1080p30, 720p60, 640x480p90, kết nối bằng cáp ribbon 15 cm vào cổng CSI.
  • Arduino Uno R3: Vi điều khiển ATmega328P (8-bit, 16 MHz, bộ nhớ Flash 32 KB, SRAM 2 KB, EEPROM 1 KB), 14 chân Digital I/O (6 chân PWM), 6 chân Analog, điện áp hoạt động 5V DC. Đảm nhận nhiệm vụ đọc tín hiệu cảm biến và điều khiển cơ cấu chấp hành thời gian thực.
  • Cảm biến vật cản hồng ngoại E18-D80NK: Điện áp hoạt động 5V DC, ngõ ra dạng NPN cực thu hở (cần trở kéo lên nguồn), khoảng cách phát hiện điều chỉnh từ 3 cm đến 80 cm qua biến trở tích hợp.
  • Động cơ chấp hành: Động cơ DC 24V truyền động cho hệ thống băng tải; động cơ RC Servo MG996R (bánh răng kim loại, điều khiển góc quay $0^\circ - 180^\circ$ qua tín hiệu điều chế độ rộng xung PWM, lực kéo đạt $9.4\text{ kg}\cdot\text{cm}$ ở 4.8V và $11\text{ kg}\cdot\text{cm}$ ở 6V) dùng làm cơ cấu gạt phôi.
  • Màn hình LCD 16x2: Hiển thị 2 hàng, mỗi hàng 16 ký tự, kết nối với Arduino thông qua module chuyển đổi I2C (sử dụng 2 chân tín hiệu SDA và SCL).
  • Chuẩn truyền thông:
    • UART (Universal Asynchronous Receiver-Transmitter): Giao tiếp nối tiếp bất đồng bộ giữa chân TX/RX của Raspberry Pi 3 và Arduino Uno R3 để truyền mã nhận dạng màu sắc.
    • I2C (Inter-Integrated Circuit): Giao tiếp 2 dây giữa chân A4 (SDA), A5 (SCL) của Arduino Uno và module hiển thị LCD 16x2.

Phương pháp nghiên cứu thực tế

Đề tài sử dụng phương pháp thiết kế - tích hợp hệ thống kỹ thuật kết hợp phương pháp thực nghiệm đo kiểm:

  1. Thiết kế và thi công phần cứng cơ khí (khung băng tải, máng trượt, buồng chụp) và mạch điện tử phân phối nguồn.
  2. Xây dựng phần mềm xử lý ảnh bằng ngôn ngữ Python với thư viện OpenCV trên môi trường Raspbian OS.
  3. Lập trình vi điều khiển bằng C/C++ trên phần mềm Arduino IDE.
  4. Thu thập dữ liệu thực nghiệm thông qua các đợt chạy thử nghiệm lặp lại với từng mẫu màu phôi nhằm đánh giá độ chính xác nhận dạng và độ tin cậy cơ học của hệ thống.

Thiết kế và thi công hệ thống

Kiến trúc tổng thể và sơ đồ khối

Hệ thống phân loại sản phẩm được thiết kế thành các khối chức năng liên kết chặt chẽ:

  • Khối thu nhận và xử lý ảnh (Trung tâm): Raspberry Pi 3 Model B kết nối Camera Pi v2 thu nhận hình ảnh phôi khi di chuyển vào buồng chụp, thực hiện tiền xử lý, chuyển đổi không gian màu, tách ngưỡng và gửi kết quả phân loại xuống khối điều khiển.
  • Khối điều khiển và cảm biến: Arduino Uno R3 nhận tín hiệu từ cảm biến hồng ngoại E18-D80NK đặt tại đầu băng tải để nhận biết phôi vào vị trí, đồng thời nhận dữ liệu màu từ Raspberry Pi qua UART.
  • Khối chấp hành: Gồm Relay 5V đóng ngắt động cơ DC 24V kéo băng tải và động cơ Servo MG996R gạt sản phẩm vào đúng các máng trượt quy định.
  • Khối hiển thị: Màn hình LCD 16x2 giao tiếp I2C hiển thị thông tin số lượng phôi từng màu đã phân loại thành công.
  • Khối nguồn: Nguồn tổ ong 24VDC - 5A cấp điện cho động cơ băng tải và cung cấp ngõ vào cho module hạ áp LM2596 để tạo điện áp ổn định 5V DC cấp riêng cho động cơ servo, cảm biến E18-D80NK, màn hình LCD và Relay, chống hiện tượng sụt áp hệ thống.
Tên linh kiện / Thiết bị Số lượng Thông số kỹ thuật chính Chức năng trong hệ thống
Raspberry Pi 3 Model B 01 BCM2835 1.2GHz, RAM 1GB, 40 GPIO Xử lý ảnh OpenCV, truyền mã UART
Camera Pi v2 01 Sensor Sony IMX219 8MP, cáp CSI 15cm Chụp ảnh phôi sản phẩm
Arduino Uno R3 01 ATmega328P, 16MHz, 14 I/O, 6 PWM Điều khiển servo, động cơ DC, đọc cảm biến
Cảm biến E18-D80NK 01 5VDC, khoảng cách 3–80cm, ngõ ra NPN Phát hiện vật thể trên băng tải
Động cơ Servo MG996R 01 4.8–6VDC, bánh răng kim loại, góc $0-180^\circ$ Gạt phôi vào máng phân loại
Động cơ DC 24V 01 24VDC, tích hợp hộp giảm tốc Kéo dây băng tải PVC
Màn hình LCD 16x2 + I2C 01 16 ký tự x 2 dòng, giao tiếp I2C Hiển thị số lượng sản phẩm theo màu
Mạch hạ áp LM2596 01 Vào 4–40V, ra 1.25–35V (chỉnh 5V/3A) Ổn áp 5V cấp cho servo và cảm biến
Nguồn tổ ong 01 24VDC – 5A Cấp nguồn toàn bộ hệ thống
Relay 5VDC 01 Kích mức thấp/cao, chịu tải 250VAC/30VDC Đóng/ngắt nguồn động cơ DC băng tải

Lưu đồ giải thuật và lập trình hệ thống

  1. Giải thuật xử lý ảnh trên Raspberry Pi (Python + OpenCV):

    • Khởi tạo camera và thiết lập kích thước khung hình.
    • Nhận tín hiệu kích hoạt từ Arduino hoặc quét liên tục khung hình trong buồng chụp.
    • Chuyển đổi khung hình từ không gian màu mặc định BGR sang không gian màu HSV.
    • Áp dụng các dải ngưỡng màu đã định hình trước cho màu Đỏ, Xanh và Vàng.
    • Thực hiện phép toán lọc nhiễu nhị phân bằng cv2.erode() và cv2.dilate().
    • Tìm kiếm đường bao (findContours) và tính toán diện tích các vùng màu hợp lệ.
    • Xác định màu sắc chiếm ưu thế và đóng gói ký tự định danh (ví dụ: 'R', 'G', 'Y' hoặc mã số), truyền qua cổng Serial UART sang Arduino Uno.
  2. Giải thuật điều khiển trên Arduino Uno:

    • Khởi tạo các chân GPIO, giao tiếp Serial UART ở tốc độ baudrate quy định và giao tiếp I2C với thư viện LiquidCrystal_I2C.
    • Điều khiển Relay bật động cơ DC cho băng tải chạy phôi vào buồng chụp.
    • Khi cảm biến E18-D80NK phát hiện có phôi (ngõ ra xuống mức thấp), Arduino tạm dừng băng tải hoặc kích hoạt cờ chờ tín hiệu nhận dạng.
    • Nhận ký tự mã màu từ Raspberry Pi qua UART.
    • Căn cứ vào màu sắc nhận được, Arduino điều khiển Servo MG996R quay một góc tương ứng (ví dụ: góc $45^\circ$, $90^\circ$, $135^\circ$) để định hướng máng gạt phôi.
    • Tăng biến đếm số lượng cho màu sắc tương ứng và cập nhật chuỗi hiển thị lên màn hình LCD 16x2.
    • Điều khiển Servo trở về vị trí ban đầu và tiếp tục cho băng tải vận hành chu kỳ tiếp theo.

Triển khai và vận hành phần mềm

  • Cài đặt hệ điều hành Raspbian lên thẻ nhớ MicroSD dung lượng cao, kích hoạt giao tiếp CSI Camera và cổng Serial trên Raspberry Pi Configuration.
  • Thiết lập địa chỉ IP tĩnh cho Raspberry Pi trong mạng cục bộ LAN, cho phép kết nối điều khiển và nạp mã nguồn từ xa thông qua phần mềm PuTTY (giao thức SSH) và Remote Desktop Connection (VNC/XRDP).
  • Xây dựng tập lệnh shell script (.sh) lưu tại thư mục /home/pi, cấu hình tự động thực thi kịch bản xử lý ảnh Python ngay khi Raspberry Pi khởi động nguồn (rc.local hoặc autostart), đảm bảo hệ thống vận hành độc lập không cần màn hình máy tính hay bàn phím gắn ngoài.
  • Bố trí công tắc nguồn tổng và nút nhấn Reset trên hộp điều khiển để thuận tiện thao tác bật/tắt và khởi động lại vi điều khiển khi cần hiệu chỉnh.

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

Chương 1: Tổng quan

Chương 1 trình bày bối cảnh thực tiễn của xu thế tự động hóa và công nghiệp hóa trong sản xuất, nhấn mạnh tầm quan trọng của khâu phân loại sản phẩm đối với việc chuẩn hóa chất lượng hàng hóa. Tác giả phân tích ưu - nhược điểm của các phương pháp phân loại truyền thống bằng cảm biến quang/màu, từ đó nêu bật sự cần thiết của việc ứng dụng công nghệ xử lý ảnh số. Chương này xác định rõ mục tiêu phân loại phôi 3 màu (đỏ, xanh, vàng), phân định 7 nội dung/nhiệm vụ nghiên cứu cụ thể, chỉ rõ giới hạn kỹ thuật của mô hình và đưa ra bố cục tổng thể gồm 6 chương của quyển đồ án.

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

Chương 2 hệ thống hóa toàn diện các kiến thức nền tảng phục vụ đề tài:

  • Trình bày tổng quan về xử lý ảnh số: lịch sử phát triển, các bước từ thu nhận, tiền xử lý, phân đoạn đến nhận dạng ảnh.
  • Phân tích các khái niệm điểm ảnh, độ phân giải, phân loại ảnh nhị phân/ảnh xám/ảnh màu, quan hệ lân cận 4 và 8, các phương pháp lọc nhiễu tuyến tính (trung bình) và phi tuyến (trung vị).
  • Khảo sát các kỹ thuật phát hiện biên (Gradient, Canny, Sobel, Laplace) và các phép toán hình thái học Morphology (Dilation, Erosion).
  • Giới thiệu chi tiết thông số cấu hình và nguyên lý của Raspberry Pi 3 Model B, Camera Pi v2 (cảm biến Sony IMX219 8MP), vi điều khiển ATmega328P trên board Arduino Uno R3, cảm biến hồng ngoại E18-D80NK.
  • Trình bày cấu tạo, nguyên lý hoạt động của động cơ điện một chiều DC (phương trình sức điện động CEMF, dòng điện $I$, công suất $P$), động cơ RC Servo MG996R (điều khiển vị trí qua xung PWM), kết cấu cơ khí băng tải PVC và màn hình hiển thị LCD 16x2.
  • Giới thiệu hệ điều hành Raspbian, ngôn ngữ lập trình Python, thư viện OpenCV, phần mềm Arduino IDE và hai chuẩn giao tiếp nối tiếp UART, I2C.
  • Phân tích các không gian màu RGB, CMYK, HSV và lựa chọn HSV làm không gian màu trọng tâm để trích xuất ngưỡng màu sắc nhận dạng sản phẩm.

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

Chương 3 tập trung vào công tác thiết kế sơ đồ nguyên lý và tính toán thông số kỹ thuật cho hệ thống:

  • Thiết lập sơ đồ khối toàn hệ thống và mối liên kết tín hiệu giữa các khối xử lý ảnh, điều khiển, cảm biến, chấp hành, hiển thị và nguồn.
  • Thiết kế sơ đồ kết nối chân ngoại vi chi tiết của Raspberry Pi 3 (giao tiếp camera qua cổng CSI, truyền UART qua GPIO) và Arduino Uno R3 (nhận UART, giao tiếp I2C với LCD chân A4/A5, xuất PWM điều khiển Servo, điều khiển Relay qua chân Digital, đọc cảm biến E18-D80NK).
  • Tính toán và thống kê tổng dòng tiêu thụ của toàn bộ mạch điện; thiết kế sơ đồ nguyên lý mạch nguồn sử dụng nguồn tổ ong 24VDC - 5A kết hợp module hạ áp LM2596 để cung cấp nguồn 5VDC ổn định, chống sụt áp cho các cơ cấu tiêu thụ dòng tức thời cao như động cơ servo và cảm biến.
  • Hoàn thiện sơ đồ kết nối toàn mạch hoàn chỉnh phục vụ giai đoạn thi công phần cứng.

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

Chương 4 mô tả chi tiết quá trình gia công cơ khí, lắp ráp mạch điện và lập trình phần mềm:

  • Chuẩn bị danh mục linh kiện, thi công khung băng tải, máng cấp phôi vào, các máng phân loại sản phẩm sau khi gạt, và buồng chụp ảnh kín gắn đèn LED trợ sáng.
  • Lắp ráp cơ cấu động cơ DC, động cơ Servo MG996R, cảm biến E18-D80NK, màn hình LCD 16x2 và kết nối dây tín hiệu giữa Raspberry Pi và Arduino.
  • Xây dựng lưu đồ giải thuật điều khiển trên Arduino Uno và lưu đồ giải thuật xử lý ảnh trên Raspberry Pi.
  • Hướng dẫn quy trình cài đặt môi trường Python, thư viện OpenCV trên Raspbian; hướng dẫn thiết lập IP tĩnh, kết nối mạng LAN và điều khiển Raspberry Pi từ xa qua PuTTY và Remote Desktop Connection.
  • Cấu hình tập lệnh .sh cho phép chương trình tự động chạy khi cấp nguồn và lắp đặt công tắc nguồn, nút Reset hoàn thiện mô hình.

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

Chương 5 công bố các dữ liệu thực nghiệm và đánh giá định lượng hoạt động của hệ thống:

  • Trình bày hình ảnh mô hình vật lý hoàn thiện chụp từ các góc độ khác nhau (bên trái, bên phải, từ trên xuống).
  • Ghi nhận chi tiết kết quả nhận dạng và phân loại qua 5 lần thử nghiệm liên tiếp trên từng loại phôi màu (đỏ, xanh, vàng).
  • Minh chứng hình ảnh trích xuất từ camera trong quá trình xử lý ảnh, hoạt động gạt phôi thực tế của servo và số liệu thống kê đếm hiển thị trên màn hình LCD 16x2 sau 5 lần phân loại mỗi màu.
  • Đưa ra các nhận xét, đánh giá về độ chính xác phân loại, độ ổn định của giải thuật trong điều kiện ánh sáng buồng chụp cố định và tính đồng bộ giữa cơ cấu cơ học và tín hiệu xử lý ảnh.

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

Chương 6 tổng kết toàn bộ các kết quả đạt được về mặt lý thuyết và thi công thực tế; chỉ rõ các mặt hạn chế còn tồn tại liên quan đến tốc độ xử lý của máy tính nhúng, tính nhạy cảm quang học và quy mô mô hình nhỏ; đề xuất các hướng phát triển tiếp theo như mở rộng nhận dạng hình dáng/kích thước, ứng dụng trí tuệ nhân tạo và nâng cấp mô hình theo chuẩn công nghiệp.


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

Kết quả thực nghiệm

Hệ thống đã được chế tạo hoàn chỉnh, vận hành thử nghiệm trên 3 nhóm mẫu phôi có màu sắc cơ bản (đỏ, xanh, vàng). Mỗi loại màu phôi được đưa vào băng tải và thực hiện thử nghiệm nhận dạng, phân loại lặp lại 5 lần liên tiếp. Kết quả ghi nhận độ chính xác phân loại và đếm số lượng được tổng hợp trong bảng số liệu sau:

Loại sản phẩm (Màu sắc) Số lần thử nghiệm Số lần nhận dạng đúng Số lần gạt đúng máng Kết quả đếm hiển thị trên LCD Tỷ lệ chính xác (%)
Phôi màu Đỏ 5 5 5 Đã đếm: 5 sản phẩm đỏ 100%
Phôi màu Xanh 5 5 5 Đã đếm: 5 sản phẩm xanh 100%
Phôi màu Vàng 5 5 5 Đã đếm: 5 sản phẩm vàng 100%

Hệ thống hoạt động ổn định trong các điều kiện thử nghiệm:

  • Camera Pi v2 ghi hình rõ nét phôi sản phẩm trong buồng chụp được che kín và chiếu sáng bổ sung bằng đèn LED.
  • Thuật toán xử lý ảnh trên Python/OpenCV chuyển đổi chính xác ảnh sang không gian màu HSV, phân tách đúng ngưỡng màu, triệt tiêu nhiễu hiệu quả bằng các phép toán hình thái học (Erosion, Dilation) và nhận dạng đúng vùng màu mục tiêu.
  • Chuẩn giao tiếp nối tiếp UART truyền nhận mã ký tự màu giữa Raspberry Pi và Arduino Uno với độ trễ thấp, không xảy ra hiện tượng mất gói tin.
  • Động cơ RC Servo MG996R xoay chính xác các góc đặt để dẫn hướng phôi vào đúng 3 máng phân loại riêng biệt.
  • Màn hình LCD 16x2 giao tiếp qua I2C hiển thị liên tục và chính xác tổng số lượng từng loại sản phẩm đã phân loại qua băng tải.

Giải pháp kỹ thuật tác giả đề xuất

  • Cố định điều kiện chiếu sáng: Thiết kế buồng chụp ảnh kín kết hợp đèn LED chiếu sáng ổn định bên trong để triệt tiêu ảnh hưởng của ánh sáng tự nhiên bên ngoài, giữ cho các thông số ngưỡng màu trong không gian HSV luôn nằm trong dải phân loại chính xác.
  • Cách ly nguồn điều khiển và tải công suất: Bố trí mạch hạ áp LM2596 lấy nguồn từ bộ nguồn tổ ong 24V để cấp riêng 5VDC cho động cơ servo và cảm biến, ngăn ngừa hiện tượng sụt áp gây reset vi điều khiển Arduino khi servo khởi động hoặc đổi chiều quay.
  • Tự động hóa khởi động hệ thống nhúng: Thiết lập kịch bản shell script .sh chạy tự động khi khởi động Raspbian, giúp hệ thống hoạt động hoàn toàn độc lập mà không cần sự can thiệp thủ công từ máy tính giám sát.

Đóng góp của đề tài

  • Hiện thực hóa thành công mô hình tích hợp giữa công nghệ thị giác máy tính mã nguồn mở (OpenCV/Python) trên máy tính nhúng Raspberry Pi với vi điều khiển chấp hành Arduino Uno trong bài toán tự động hóa phân loại sản phẩm.
  • Cung cấp một phương án kỹ thuật phân loại theo màu sắc có chi phí thấp, cấu trúc gọn nhẹ, thay thế hiệu quả cho các hệ thống cảm biến quang màu đơn lẻ dễ bị nhiễu.
  • Hoàn thiện tài liệu thuyết minh kỹ thuật chi tiết từ tính toán mạch nguồn, thiết kế lưu đồ giải thuật phân đoạn màu HSV đến quy trình thi công cơ - điện - phần mềm nhúng.

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

Hạn chế của đề tài

  • Độ trễ xử lý: Tốc độ xử lý ảnh của máy tính nhúng Raspberry Pi 3 Model B vẫn còn độ trễ nhất định so với máy tính công nghiệp chuyên dụng, giới hạn tốc độ chạy tối đa của băng tải.
  • Nhạy cảm với ánh sáng môi trường: Giải thuật phân loại màu sắc dựa trên không gian HSV vẫn phụ thuộc vào tính ổn định của nguồn sáng; hệ thống hoạt động không tối ưu nếu buồng chụp bị hở hoặc nguồn sáng LED bị thay đổi cường độ.
  • Quy mô và tính năng nhận diện: Đề tài mới chỉ nhận dạng được 3 màu đơn sắc cố định trên các phôi có hình dạng và kích thước đồng nhất; chưa mở rộng nhận dạng các sản phẩm có màu sắc phức tạp, pha trộn hoặc phân loại dựa trên hình dáng hình học, kích thước và khuyết tật bề mặt.
  • Kết cấu cơ khí: Mô hình cơ khí mang tính chất thí nghiệm phòng lab, sử dụng máng gạt servo đơn giản, chưa đạt tiêu chuẩn về độ bền và công suất của dây chuyền phân loại công nghiệp liên tục.

Hướng phát triển tiếp theo

  • Nâng cấp giải thuật xử lý ảnh: Phát triển các thuật toán nhận dạng kết hợp giữa phân loại màu sắc và phân loại hình học (hình vuông, tròn, tam giác...), ứng dụng các mô hình học máy (Machine Learning/Deep Learning) để nhận diện sản phẩm lỗi, nứt vỡ hoặc biến dạng bề mặt.
  • Nâng cao cấu hình phần cứng: Nâng cấp lên các dòng máy tính nhúng có năng lực tính toán cao hơn (như Raspberry Pi 4 hoặc các board nhúng chuyên dụng cho AI) kết hợp camera công nghiệp tốc độ khung hình cao nhằm tăng tốc độ phân loại.
  • Tích hợp giám sát từ xa (IoT/SCADA): Bổ sung module truyền thông không dây để gửi dữ liệu đếm sản phẩm và trạng thái hệ thống lên máy chủ đám mây (Cloud) hoặc giao diện Web Server, phục vụ công tác giám sát, thống kê sản lượng theo thời gian thực từ xa.
  • Hoàn thiện cơ khí công nghiệp: Thay thế cơ cấu gạt servo bằng cơ cấu xi lanh khí nén công nghiệp, nâng cấp khung băng tải và hệ thống cảm biến công nghiệp để đáp ứng yêu cầu vận hành tốc độ cao và bền bỉ trong môi trường nhà máy.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo kỹ thuật cho các nhóm đối tượng:

  • Sinh viên các ngành kỹ thuật: Là tài liệu tham khảo cho sinh viên thuộc các ngành Công nghệ Kỹ thuật Điện tử - Truyền thông, Điện tử Công nghiệp, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử và Kỹ thuật Máy tính khi thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về đề tài thị giác máy tính và hệ thống nhúng.
  • Cán bộ kỹ thuật và người nghiên cứu hệ thống nhúng: Cung cấp phương pháp mẫu về việc kết hợp giữa máy tính nhúng Linux (xử lý dữ liệu nặng) và vi điều khiển thời gian thực (điều khiển ngoại vi, động cơ) thông qua giao thức UART.
  • Các phần nội dung có giá trị ứng dụng cao:
    • Chương 2 và Chương 4: Hướng dẫn chi tiết kỹ thuật trích xuất vùng màu trong không gian HSV kết hợp các phép toán hình thái học (Morphology) bằng thư viện OpenCV trên Python.
    • Chương 3: Phương pháp tính toán công suất nguồn, thiết kế mạch hạ áp phân lập chống sụt áp cho vi điều khiển khi tải động cơ hoạt động.
    • Quy trình cấu hình hệ điều hành Raspbian, thiết lập mạng LAN/IP tĩnh, điều khiển từ xa qua PuTTY/VNC và lập kịch bản chạy tự động bằng shell script.

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

1. Tại sao hệ thống cần phối hợp cả Raspberry Pi 3 và Arduino Uno thay vì chỉ dùng một bộ điều khiển duy nhất?
Raspberry Pi 3 là một máy tính nhúng chạy hệ điều hành Linux, có bộ xử lý mạnh mẽ và hỗ trợ cổng CSI chuyên dụng, rất thích hợp để chạy các thuật toán thị giác máy tính phức tạp với OpenCV và Python. Tuy nhiên, Raspberry Pi không phải là hệ thống thời gian thực (Real-time OS) và khả năng xuất xung PWM cũng như giao tiếp trực tiếp với nhiều cảm biến, cơ cấu chấp hành công suất bị hạn chế. Do đó, việc phối hợp Raspberry Pi (đảm nhận xử lý ảnh nặng) và Arduino Uno (đảm nhận đọc cảm biến, xuất xung PWM điều khiển servo và đóng ngắt relay thời gian thực) tạo nên một cấu trúc phân tầng tối ưu, giảm tải cho cả hai bộ xử lý.

2. Tại sao nhóm tác giả lựa chọn không gian màu HSV thay vì không gian màu RGB mặc định để phân loại sản phẩm?
Không gian màu RGB biểu diễn màu sắc bằng sự phối hợp của 3 kênh Đỏ, Xanh lá và Xanh dương; cả ba kênh này đều phụ thuộc mật thiết vào cường độ ánh sáng, khiến cho ngưỡng màu bị trôi lệch khi ánh sáng môi trường thay đổi. Ngược lại, không gian màu HSV tách biệt rõ ràng giữa sắc thái màu sắc (Hue), độ bão hòa (Saturation) và cường độ sáng (Value). Bằng cách lọc ngưỡng trên kênh $H$, hệ thống có thể nhận diện chính xác màu Đỏ, Xanh, Vàng mà ít bị ảnh hưởng bởi sự dao động nhỏ của ánh sáng.

3. Cảm biến hồng ngoại E18-D80NK đóng vai trò gì trong quy trình vận hành của hệ thống?
Cảm biến E18-D80NK được lắp đặt tại vị trí đầu băng tải trước buồng chụp. Khi phôi sản phẩm di chuyển đến vị trí cảm biến, ngõ ra NPN của cảm biến chuyển xuống mức thấp, báo hiệu cho Arduino biết có sản phẩm xuất hiện. Arduino sẽ điều khiển tạm dừng băng tải hoặc kích hoạt cờ tín hiệu để camera tiến hành chụp và Raspberry Pi phân tích ảnh, đảm bảo quá trình thu nhận hình ảnh diễn ra đúng vị trí cố định.

4. Nhóm tác giả đã giải quyết vấn đề nhiễu ảnh và biến thiên ánh sáng môi trường như thế nào?
Nhóm tác giả áp dụng đồng thời hai giải pháp:

  • Giải pháp phần cứng: Thiết kế buồng chụp ảnh kín che chắn toàn bộ ánh sáng tự nhiên từ bên ngoài và lắp đặt hệ thống đèn LED chuyên dụng bên trong để duy trì quang thông ổn định.
  • Giải pháp phần mềm: Sử dụng bộ lọc tiền xử lý kết hợp các phép toán hình thái học (Morphological Operations) gồm phép co (erode) để xóa các đốm nhiễu li ti và phép giãn (dilate) để làm liền khối vùng màu của phôi.

5. Cơ chế truyền thông giữa Raspberry Pi 3 và Arduino Uno được thiết lập như thế nào?
Hai kit được kết nối trực tiếp thông qua chuẩn giao tiếp nối tiếp bất đồng bộ UART bằng cách đấu chéo chân TX/RX giữa cổng GPIO của Raspberry Pi và Arduino Uno (kết nối chung GND). Khi Raspberry Pi hoàn tất việc nhận dạng màu sắc, nó gửi một ký tự mã hóa đại diện cho màu sắc đó qua cổng Serial. Arduino liên tục lắng nghe cổng nối tiếp, khi nhận được ký tự hợp lệ sẽ thực thi hàm điều khiển góc quay của động cơ Servo MG996R tương ứng.


Kết luận

Đồ án tốt nghiệp "Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm" đã thiết kế, chế tạo và thử nghiệm thành công mô hình cơ điện tử tự động phân loại phôi sản phẩm theo 3 màu sắc cơ bản (đỏ, xanh, vàng). Bằng việc kết hợp năng lực tính toán thị giác máy tính của máy tính nhúng Raspberry Pi 3 (sử dụng Python và OpenCV trong không gian màu HSV) với khả năng điều khiển chấp hành thời gian thực của vi điều khiển Arduino Uno, hệ thống đạt độ chính xác nhận dạng và phân loại cao trong điều kiện buồng chụp cố định ánh sáng. Các thông số thống kê số lượng sản phẩm được cập nhật liên tục và hiển thị trực quan trên màn hình LCD 16x2 qua giao tiếp I2C. Đây là công trình thực nghiệm kỹ thuật hoàn chỉnh, cung cấp tài liệu tham khảo có giá trị về phương pháp luận và kỹ thuật thi công cho các ứng dụng thị giác máy tính trong lĩnh vực tự động hóa công nghiệp.