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

Ngành nuôi trồng thủy sản đóng vai trò quan trọng trong cơ cấu kinh tế nông nghiệp Việt Nam, trong đó cá tra là sản phẩm chủ lực sau tôm. Theo số liệu từ Tổng cục Thống kê được trích dẫn trong đồ án, trong 6 tháng đầu năm 2018, sản lượng thủy sản nuôi trồng cả nước đạt 1.793,5 nghìn tấn (tăng 6,4% so với cùng kỳ năm trước); riêng sản lượng cá đạt 1.310,2 nghìn tấn (tăng 6,1%) và tôm đạt 292,6 nghìn tấn (tăng 11,2%). Diện tích nuôi cá tra cả nước trong giai đoạn này ước tính đạt 14,3 nghìn ha (tăng 6,8%), bao gồm diện tích thâm canh và bán thâm canh đạt 4,5 nghìn ha (tăng 10,2%), diện tích quảng canh và quảng canh cải tiến đạt 9,8 nghìn ha (tăng 5,3%). Tổng sản lượng cá tra đạt 603,1 nghìn tấn (tăng 8,1%), tập trung nhiều nhất tại tỉnh Đồng Tháp với 191,8 nghìn tấn (tăng 4,5%) và An Giang với 159,8 nghìn tấn (tăng 14,7%). Toàn vùng đồng bằng sông Cửu Long ghi nhận 108 cơ sở cho sinh sản nhân tạo cá tra và gần 1.900 hộ ương dưỡng cá giống trên diện tích hơn 1.500 ha, cung ứng sản lượng cá bột ước tính khoảng 16,5 tỷ con.

Mặc dù quy mô sản xuất phát triển nhanh chóng, các giao dịch mua bán cá bột, cá hương và cá giống trên thị trường vẫn phụ thuộc chủ yếu vào các phương pháp ước lượng và đếm mẫu thủ công:

  • Đối với cá bột:
    1. Phương pháp dùng cân: Sử dụng cân 2 đĩa (độ nhạy từ 1 gam trở lên) và cân bì trước bằng cốc, bát hoặc chậu thủy tinh chứa nước sạch. Người đếm vớt ráo nước từ 2 đến 5 gam cá thả vào bát, dùng thìa canh múc đếm từng con để tính tỷ lệ trung bình (số con/gam), từ đó nhân với tổng khối lượng cá xuất bán.
    2. Phương pháp dùng cái giăng: Dùng dụng cụ đong đặc thù dạng thìa nửa quả cầu có đục nhiều lỗ nhỏ thoát nước, chế tạo theo các kích cỡ tương ứng với số lượng cá bột đã định mức sẵn.
    3. Phương pháp thể tích: Đổ 3 đến 4 cc nước vào cốc thủy tinh chia độ, cho cá bột ráo nước vào để mực nước dâng thêm 2 đến 3 cc, đếm trực tiếp số cá trong cốc để tính mật độ con/cc rồi quy đổi ra tổng số lượng.
  • Đối với cá hương và cá giống: Sử dụng phương pháp cân mẫu khối lượng 100 gam hoặc 1.000 gam để xác định số lượng cá thể trên đơn vị khối lượng, sau đó tính ra tổng số lượng cần bàn giao.

Các phương pháp thủ công trên bộc lộ nhiều nhược điểm: tốn nhiều nhân công, làm suy giảm sức khỏe cá giống do thao tác vớt và giữ cá nhiều lần, đồng thời gây ra sai số lớn dẫn đến thiếu minh bạch giữa người mua và người bán. Do đó, việc tự động hóa quá trình nhận dạng và đếm số lượng cá giống là yêu cầu cấp thiết.

Đồ án xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Thiết kế và thi công hệ thống phần cứng hoàn chỉnh gồm máy tính nhúng Raspberry Pi, module camera và màn hình LCD.
  2. Ứng dụng thư viện mã nguồn mở OpenCV và ngôn ngữ Python để xây dựng thuật toán xử lý ảnh, tự động nhận dạng và đếm số lượng cá thể trong ảnh chụp.
  3. Xuất kết quả đếm trực tiếp lên màn hình LCD.

Nội dung nghiên cứu được triển khai theo 6 nhiệm vụ:

  1. Kết nối thiết bị: tìm hiểu linh kiện, kết nối module, cài đặt hệ điều hành Raspbian và các thư viện cần thiết.
  2. Tiến hành xử lý ảnh: thu nhận ảnh, đọc và hiển thị ảnh xám, tạo mặt nạ nhị phân bằng thuật toán Otsu, lọc sạch nhiễu (rong, rêu, rác), phân đoạn nền, tìm biên cá, đếm số lượng và hiển thị.
  3. Thử nghiệm trên hồ cá có sẵn: thu nhận, xử lý và tinh chỉnh hệ thống.
  4. Thiết kế và thi công môi trường đếm: chọn hồ chứa có màu nền phù hợp, cân chỉnh mực nước, bố trí hệ thống chiếu sáng chống chóa và lắp ráp hoàn thiện.
  5. Thu thập và nhận xét kết quả: so sánh số liệu thực tế, tính toán sai số, đánh giá ưu nhược điểm và hướng phát triển.
  6. Viết báo cáo tổng kết.

Phạm vi và giới hạn của đề tài:

  • Đối tượng nghiên cứu: Cá giống kích thước chiều dài từ 1 cm đến 2 cm, có màu sắc thân sẫm/đen.
  • Phạm vi số lượng: Giới hạn đếm trong mỗi lần chụp nhỏ hơn 50 cá thể.
  • Môi trường không gian: Bể chứa nước tĩnh đáy vuông, có kiểm soát độ sâu mực nước và ánh sáng nhân tạo.

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

Đồ án xây dựng trên nền tảng lý thuyết xử lý ảnh số và kỹ thuật nhúng:

Khung lý thuyết xử lý ảnh số

Hệ thống xử lý ảnh tuân thủ quy trình chuẩn hóa gồm các khối chức năng: thu nhận ảnh (Image Acquisition), tiền xử lý (Preprocessing), phân đoạn ảnh (Segmentation), biểu diễn ảnh và trích chọn đặc trưng (Representation & Feature Selection), nhận dạng và nội suy ảnh (Recognition & Interpretation).

Về mặt dữ liệu số, ảnh được biểu diễn dưới dạng ma trận hai chiều các điểm ảnh (pixel). Mỗi điểm ảnh có tọa độ $(x, y)$ và cường độ sáng biểu diễn bằng 8 bit ($2^8 = 256$ mức xám từ 0 đến 255). Tác giả khai thác các mô hình lân cận điểm ảnh bao gồm lân cận 4 hướng chính $N_4(p)$, lân cận chéo $N_P(p)$ và lân cận 8 điểm $N_8(p) = N_4(p) + N_P(p)$, cùng các phép đo khoảng cách toán học như khoảng cách Euclide: $$D_e(p, q) = \sqrt{(x - s)^2 + (y - t)^2}$$ và khoảng cách khối đồ thị (City Block Distance): $$D_4(p, q) = |x - s| + |y - t|$$

Mô hình chuyển đổi không gian màu và phân ngưỡng

  1. Chuyển đổi sang ảnh xám (Grayscale): Nhằm giảm khối lượng tính toán trên bộ xử lý nhúng, bên cạnh công thức chuẩn theo trọng số thị giác người, tác giả sử dụng công thức tính toán trên số nguyên: $$I(x, y) = \frac{2 \cdot R(x, y) + 5 \cdot G(x, y) + 1 \cdot B(x, y)}{8}$$ Việc ưu tiên các phép toán số nguyên giúp tăng tốc độ xử lý so với số thực trên phần cứng máy tính nhúng, đồng thời phản ánh đúng thứ tự lưu trữ kênh màu Blue - Green - Red của OpenCV.
  2. Phân ngưỡng Otsu (Otsu Thresholding): Phương pháp tự động tìm ngưỡng tối ưu $T$ dựa trên phân bố histogram để nhị phân hóa ảnh thay cho ngưỡng cố định. Thuật toán phân hoạch ảnh thành hai nhóm $G_1$ (điểm ảnh có cường độ $> T$) và $G_2$ (điểm ảnh có cường độ $\le T$), tính giá trị trung bình $m_1, m_2$ của từng nhóm và cập nhật lại ngưỡng $T = (m_1 + m_2) / 2$ qua các vòng lặp cho đến khi độ chênh lệch nhỏ hơn sai số $\Delta T$ quy định.
  3. Phát hiện biên và phân đoạn đối tượng: Đồ án khảo sát các kỹ thuật đạo hàm trực tiếp bậc một (Gradient) và bậc hai (Laplace), kết hợp thuật toán Watershed (phân đoạn dựa trên ảnh đánh dấu marker) để giải quyết hiện tượng các cá thể cá bơi dính nhau hoặc chồng lấp lên nhau trong bể chứa.

Phương pháp nghiên cứu thực nghiệm

Nghiên cứu sử dụng phương pháp thực nghiệm thiết kế - chế tạo kết hợp kiểm thử:

  • Thu thập ảnh thực tế từ bể chứa chuyên dụng qua camera kỹ thuật số.
  • Đánh giá chất lượng xử lý thông qua phần mềm hiển thị ảnh trên máy tính song song với việc xuất số liệu ra màn hình LCD.
  • Phân tích sai số bằng cách đối chiếu kết quả đếm tự động của thuật toán với số lượng cá thả thực tế vào bể.

Thiết kế và triển khai

Hệ thống được thiết kế dạng trạm đếm độc lập (standalone), kết hợp chặt chẽ giữa cơ cấu quang học - cơ học và khối điện tử xử lý tín hiệu số.

Cấu trúc phần cứng hệ thống

Hệ thống bao gồm 6 khối chức năng liên kết:

  1. Khối xử lý trung tâm: Bo mạch Raspberry Pi 3 Model B V1.2 đóng vai trò điều khiển toàn bộ quá trình thu nhận ảnh qua cổng CSI, thực thi thuật toán OpenCV và gửi kết quả sang màn hình qua bus I2C.
  2. Khối camera: Module Camera Raspberry Pi V1.3 đảm nhận việc chụp ảnh tĩnh mặt nước bể chứa.
  3. Khối hiển thị: Màn hình LCD 16x2 kết hợp mạch chuyển đổi I2C hiển thị thông số đếm.
  4. Khối chiếu sáng (LED): Dải LED dây ánh sáng trắng 12V bố trí quanh bể nhằm cung cấp trường sáng đồng đều.
  5. Khối nguồn: Hệ thống adapter phân tách độc lập (5V - 2.5A cho bo mạch Pi; 12V - 3A cho khối đèn LED).
  6. Bể chứa cá: Hồ kính chuyên dụng tạo môi trường chụp ảnh tương phản cao.
Thiết bị / Module Thông số kỹ thuật chi tiết Vai trò trong hệ thống
Raspberry Pi 3 Model B V1.2 Broadcom BCM2837 ARMv8 64-bit quad-core 1.2 GHz, 1 GB LPDDR2 RAM, GPU VideoCore IV, 40 chân GPIO, cổng CSI, Ethernet, Wi-Fi 802.11n Trung tâm điều khiển, tiền xử lý và chạy thuật toán nhận dạng đếm
Camera Module Pi V1.3 Cảm biến 5 MP OmniVision OV5647, tiêu cự cố định, độ phân giải ảnh tĩnh $2592 \times 1944$, cáp ribbon MIPI CSI 15-pin dài 15 cm, trọng lượng 3g Chụp ảnh tĩnh bề mặt bể cá
LCD 16x2 (1602) Điện áp hoạt động 5V, kích thước $80 \times 36 \times 12$ mm, hiển thị 2 dòng x 16 ký tự, chữ trắng trên nền xanh Hiển thị kết quả số lượng cá đếm được
Mạch chuyển đổi I2C Chip điều khiển bus I2C, địa chỉ mặc định 0x27, tốc độ 400 Kbps, biến trở chỉnh tương phản, chỉ dùng 2 dây (SDA, SCL) Giao tiếp LCD với chân GPIO 3 (SDA) và GPIO 5 (SCL) của Pi
Đèn LED dây LED dải ánh sáng trắng, điện áp hoạt động 12V Chiếu sáng xuyên thành bể, khử chóa và triệt tiêu bóng
Nguồn điện Adapter 5V - 2.5A (cổng micro USB) và Adapter 12V - 3A Cấp nguồn cho Pi, module I2C, quạt tản nhiệt và dải đèn LED

Thiết kế môi trường đếm quang học

Để thuật toán phân đoạn hoạt động chính xác, môi trường đếm được tính toán hình học kỹ lưỡng:

  • Kích thước bể chứa: Bể kính thủy tinh trong suốt có kích thước $20 \times 20 \times 25$ cm. Đáy hồ và thành hồ được phun một lớp sơn màu trắng cao 8 cm nhằm tạo nền tương phản mạnh với thân cá giống màu đen.
  • Mực nước: Được duy trì cố định ở mức 2 cm. Mực nước nông hạn chế việc cá bơi chồng lớp theo chiều thẳng đứng, giữ các cá thể gần như trên cùng một mặt phẳng quang học.
  • Bố trí góc chiếu sáng: Dải LED trắng được gắn cố định bên ngoài thành kính trong suốt ở độ cao 10 cm tính từ đáy bể và bao quanh cả 4 mặt. Ánh sáng chiếu ngang xuyên qua kính giúp phân bổ đều mặt nước, tránh tạo bóng phản chiếu xuống đáy và chống hiện tượng chóa lóa trực diện vào ống kính.
  • Vị trí camera: Camera Pi V1.3 được đặt vuông góc ở độ cao 27 cm tính từ đáy bể. Khoảng cách này đảm bảo góc mở của ống kính bao quát trọn vẹn diện tích mặt đáy $20 \times 20$ cm của bể cá.

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 ngành thủy sản năm 2018 với các số liệu về sản lượng cá tra vùng đồng bằng sông Cửu Long, nhu cầu cá giống đạt 16,5 tỷ con tại An Giang, Đồng Tháp, Cần Thơ. Tác giả phân tích cặn kẽ quy trình 3 phương pháp đếm cá bột thủ công (cân mẫu 2 đĩa, dùng thìa giăng bán cầu đục lỗ, đo thể tích bằng cốc chia độ) và phương pháp đếm cá hương/cá giống bằng cân 100g hoặc 1000g; từ đó chỉ rõ sự cần thiết của giải pháp tự động hóa. Chương này cũng công bố mục tiêu, 6 nội dung triển khai, phạm vi giới hạn của đề tài (kích thước cá 1-2 cm, số lượng dưới 50 con) và kết cấu bố cục của toàn khóa luận.

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

Chương 2 cung cấp nền tảng toán học và kỹ thuật phục vụ nhận dạng ảnh:

  • Trình bày tổng quan các bước xử lý ảnh và các mô hình biểu diễn điểm ảnh (pixel, độ phân giải, mức xám 8 bit 256 mức, ảnh nhị phân).
  • Khảo sát các cấu trúc lân cận điểm ảnh $N_4, N_P, N_8$ cùng khoảng cách Euclide và khoảng cách khối City Block.
  • Phân tích các loại nhiễu trong ảnh (nhiễu độc lập, nhiễu phụ thuộc dữ liệu, nhiễu Gauss, nhiễu muối - tiêu) và các bộ lọc khử nhiễu (lọc trung vị Median filter).
  • Chi tiết hóa giải thuật chuyển đổi thang độ xám (GrayScale), thuật toán phân ngưỡng cố định (5 chế độ THRESH_*), phân ngưỡng thích nghi (Adaptive Thresholding) và phân ngưỡng tự động Otsu.
  • Giới thiệu kỹ thuật tách biên bằng đạo hàm bậc một (Gradient), đạo hàm bậc hai (Laplace) và thuật toán phân vùng Watershed dùng ảnh marker để tách đối tượng dính nhau.
  • Giới thiệu hệ điều hành Raspbian (khởi động mất 7 giây trên thẻ nhớ Toshiba Exceria 48 MB/s), ngôn ngữ lập trình Python, thư viện mã nguồn mở OpenCV (bao gồm cả các module lõi và phần mở rộng opencv_contrib).
  • Thuyết minh thông số phần cứng bo mạch Raspberry Pi 3 Model B, Camera Pi V1.3 cảm biến OV5647 5 MP, màn hình LCD 16x2 và chuẩn giao tiếp nối tiếp 2 dây I2C.

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

Chương 3 xây dựng sơ đồ khối tổng thể và tính toán thông số kỹ thuật từng khối:

  • Thiết lập sơ đồ khối kết nối phần cứng giữa Raspberry Pi, Camera qua bus CSI, màn hình LCD qua bus I2C (chân SDA nối GPIO 3, SCL nối GPIO 5, nguồn 5V lấy từ chân số 2, GND nối chân số 9) và máy tính lập trình qua cổng Ethernet.
  • Phân tách hệ thống nguồn điện độc lập thành hai nhánh: 5V - 2.5A cho bo mạch xử lý và 12V - 3A cho hệ thống chiếu sáng.
  • Tính toán vị trí quang học: xác định độ cao đặt camera ở mức 27 cm so với đáy để bao quát đáy hồ $20 \times 20$ cm, vị trí gắn đèn LED ở độ cao 10 cm quanh thành ngoài hồ kính, độ sâu mực nước khống chế ở mức 2 cm và sơn trắng đáy hồ lên cao 8 cm để tối ưu hóa việc phân đoạn trừ nền.

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

Chương 4 mô tả quá trình gia công cơ khí và tích hợp hệ thống thực tế:

  • Gia công bể kính thủy tinh quy cách $20 \times 20 \times 25$ cm, xử lý bề mặt bằng lớp sơn phun màu trắng tạo nền có độ cao 8 cm tính từ đáy.
  • Lắp ráp cơ khí giá đỡ camera, dán dải LED bao quanh 4 mặt ngoài thành kính, đấu nối cáp MIPI CSI và các đường tín hiệu bus I2C.
  • Cài đặt cấu hình phần mềm trên Raspbian: kích hoạt cổng I2C thông qua menu cấu hình Setup Option, cài đặt các gói điều khiển smbus và i2c-tools, liên kết thư viện OpenCV và Matplotlib trên nền Python.
  • Thử nghiệm chụp ảnh thực tế, lập trình thuật toán xử lý ảnh trên máy tính thông qua kết nối Ethernet và xuất kết quả hiển thị kiểm chứng trên màn hình LCD 16x2.

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

(Theo bố cục văn bản công bố tại Chương 1): Chương này trình bày kết quả thực nghiệm hệ thống trên các mẫu cá thực tế, đánh giá chất lượng ảnh thu nhận, phân tích sai số giữa số lượng đếm tự động và số lượng cá thể thực tế trong bể, từ đó rút ra các nhận xét về ưu điểm và nhược điểm của mô hình thi công.

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

(Theo bố cục văn bản công bố tại Chương 1): Chương này đúc kết toàn bộ quá trình nghiên cứu, đánh giá mức độ hoàn thành so với mục tiêu ban đầu và đề xuất các giải pháp nâng cấp hệ thống trong tương lai.


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

Kết quả kỹ thuật đạt được

  1. Thi công hoàn chỉnh mô hình phần cứng: Chế tạo thành công trạm đếm tích hợp bể kính $20 \times 20 \times 25$ cm, hệ thống đèn LED vòng khử bóng, camera số 5 MP kết nối qua bus MIPI CSI và bo mạch xử lý Raspberry Pi 3 Model B hoạt động ổn định.
  2. Xây dựng chuỗi xử lý ảnh nhị phân tự động: Ứng dụng thành công ngôn ngữ Python cùng thư viện OpenCV để chụp ảnh tĩnh từ camera, chuyển đổi ảnh xám tối ưu bằng công thức số nguyên, tự động phân ngưỡng nhị phân bằng thuật toán Otsu, làm sạch tạp chất (rong rêu, rác) và nhận diện biên cá thể.
  3. Hiển thị trực quan và độc lập: Kết nối thành công màn hình LCD 16x2 thông qua giao thức I2C 2 dây (SDA, SCL) tại địa chỉ 0x27, hiển thị chính xác số lượng cá đếm được mà không cần gắn màn hình máy tính cồng kềnh.

Đóng góp thực tiễn

  • Đồ án giải quyết trực tiếp bài toán tự động hóa trong giao dịch thủy sản, thay thế các thao tác ước lượng thủ công truyền thống (cân đĩa múc thìa, thìa giăng hay cốc chia độ).
  • Giải pháp giúp loại bỏ bớt sự phụ thuộc vào kỹ năng phán đoán chủ quan của con người, hạn chế sự cố hao hụt sức khỏe cho cá giống do phải vớt ráo nước nhiều lần, đồng thời tạo cơ sở cho tính minh bạch, chính xác giữa người sản xuất giống và người nuôi thương phẩm.

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

Hạn chế

Dựa trên các giới hạn kỹ thuật được công bố trong văn bản:

  • Hệ thống chỉ hoạt động chính xác khi số lượng cá thể trong một lần đếm nhỏ hơn 50 con; khi mật độ cá vượt quá ngưỡng này, hiện tượng chồng lấp phức tạp sẽ làm tăng sai số.
  • Kích thước cá bị giới hạn trong khoảng từ 1 cm đến 2 cm; chưa hỗ trợ nhận dạng đồng thời các kích cỡ cá bột nhỏ hơn hoặc cá giống lớn hơn.
  • Mô hình yêu cầu điều kiện môi trường nghiêm ngặt: mực nước bắt buộc phải khống chế ở 2 cm, bể chứa phải được sơn trắng nền và nước phải tĩnh, sạch cặn rác để tránh nhiễu phân đoạn.
  • Văn bản tài liệu dừng lại ở giai đoạn thi công thử nghiệm ban đầu (đầu Chương 4), chưa có bảng dữ liệu thống kê chi tiết về tỷ lệ sai số phần trăm qua hàng trăm mẫu thử nghiệm thực tế.

Hướng nghiên cứu tiếp

  • Cải tiến thuật toán xử lý ảnh, kết hợp sâu hơn thuật toán Watershed và các mô hình học máy để phân tách triệt để các cụm cá dính nhau mật độ cao, nâng giới hạn đếm lên trên 50 con.
  • Mở rộng dải kích thước cá thể nhận dạng, cho phép hệ thống tự động phân loại kích cỡ (cá bột, cá hương, cá giống).
  • Nghiên cứu cơ cấu cấp cá và xả cá tự động liên tục dạng dòng chảy thay vì phải đếm thủ công từng mẻ tĩnh trong bể.

Giá trị tham khảo

Tài liệu này là nguồn tham khảo hữu ích cho:

  • Sinh viên ngành Kỹ thuật Điện tử Truyền thông, Cơ điện tử, Kỹ thuật Máy tính và Tự động hóa: Cung cấp tài liệu mẫu về việc tích hợp hệ thống nhúng (Raspberry Pi) với module camera và các thiết bị ngoại vi qua bus I2C.
  • Người nghiên cứu các đề tài xử lý ảnh ứng dụng: Tham khảo phương pháp thiết kế buồng chụp ảnh quang học (chống chóa, triệt tiêu bóng phản chiếu bằng LED gián tiếp và sơn nền tương phản) – một yếu tố then chốt quyết định sự thành bại của các bài toán thị giác máy tính trong thực tế.
  • Kỹ sư phát triển thiết bị nông nghiệp công nghệ cao: Nắm bắt các bước xây dựng chuỗi giải thuật tiền xử lý ảnh xám, phân ngưỡng Otsu và phân đoạn đối tượng thủy sản sinh học trong môi trường nước.

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

1. Tại sao đồ án sử dụng công thức tính số nguyên khi chuyển ảnh màu sang ảnh xám?

Để giảm tải khối lượng tính toán và tăng tốc độ xử lý cho CPU của bo mạch Raspberry Pi, tác giả sử dụng công thức: $$I(x, y) = \frac{2 \cdot R(x, y) + 5 \cdot G(x, y) + 1 \cdot B(x, y)}{8}$$ Các phép toán số nguyên thực thi nhanh hơn nhiều so với phép toán số thực, đồng thời công thức vẫn phản ánh đúng độ nhạy sáng của mắt người (nhạy với màu xanh lá cây và màu đỏ hơn màu xanh da trời).

2. Thiết kế quang học của bể chứa cá có những thông số kỹ thuật nào cần lưu ý?

Bể kính thủy tinh có kích thước $20 \times 20 \times 25$ cm, đáy và thành được phun sơn trắng cao 8 cm để tạo nền tương phản với cá giống màu đen. Mực nước duy trì ở 2 cm để cá không bơi đè lên nhau theo phương đứng. Camera đặt vuông góc ở độ cao 27 cm tính từ đáy hồ để lấy trọn diện tích đáy. Dải LED ánh sáng trắng 12V được quấn quanh 4 mặt ngoài thành hồ ở độ cao 10 cm tính từ đáy để tạo ánh sáng xuyên thành kính đồng đều, triệt tiêu bóng và không gây chóa camera.

3. Hệ thống đếm cá giống này có những giới hạn kỹ thuật cụ thể nào?

Hệ thống chỉ đếm số lượng cá thể trong mỗi lần chụp nhỏ hơn 50 con, kích thước cá thể bắt buộc trong khoảng từ 1 cm đến 2 cm, và cá phải bơi trong bể nước tĩnh có nền sơn trắng với độ sâu 2 cm.

4. Bo mạch Raspberry Pi 3 Model B giao tiếp với màn hình LCD 16x2 bằng cách nào?

Hệ thống sử dụng mạch chuyển đổi I2C hàn vào màn hình LCD 16x2 để tiết kiệm chân GPIO. Raspberry Pi chỉ cần sử dụng 2 đường tín hiệu dữ liệu là chân số 3 (SDA) và chân số 5 (SCL), cấp nguồn qua chân số 2 (VSS 5V) và chân số 9 (GND). Phần mềm điều khiển được cấu hình bằng các gói smbus và i2c-tools trên hệ điều hành Raspbian với địa chỉ I2C mặc định là 0x27.

5. Thuật toán phân ngưỡng Otsu hoạt động như thế nào trong bài toán này?

Thuật toán Otsu tự động tìm ngưỡng tối ưu $T$ bằng cách phân hoạch ảnh thành 2 nhóm điểm ảnh $G_1$ (cường độ sáng $> T$) và $G_2$ (cường độ sáng $\le T$). Sau đó, thuật toán tính giá trị trung bình $m_1$ của nhóm $G_1$ và $m_2$ của nhóm $G_2$, rồi tính lại ngưỡng mới $T = (m_1 + m_2) / 2$. Quá trình này được lặp lại liên tục cho đến khi độ chênh lệch giữa ngưỡng cũ và ngưỡng mới nhỏ hơn một sai số $\Delta T$ quy định, giúp hệ thống thích nghi với sự thay đổi ánh sáng của từng khung hình chụp.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống đếm số lượng cá giống" đã giải quyết thành công bài toán tự động hóa quy trình kiểm đếm thủy sản phục vụ nhu cầu thực tiễn tại đồng bằng sông Cửu Long. Tác giả đã kết hợp hiệu quả nền tảng phần cứng máy tính nhúng Raspberry Pi 3, module camera Pi 5 MP và màn hình LCD kết nối I2C cùng chuỗi xử lý ảnh nhị phân bằng thư viện OpenCV trên ngôn ngữ Python. Mặc dù hệ thống còn giới hạn ở số lượng dưới 50 cá thể và phụ thuộc vào môi trường buồng chụp nhân tạo, công trình đã thể hiện phương pháp tiếp cận kỹ thuật bài bản từ tính toán quang học đến lập trình điều khiển nhúng, mở ra hướng đi khả thi cho việc ứng dụng thị giác máy tính vào sản xuất nông nghiệp công nghệ cao.