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

Tại các công trường xây dựng, an toàn lao động là một trong những vấn đề cấp thiết do môi trường làm việc luôn tiềm ẩn nhiều rủi ro tai nạn nghiêm trọng. Theo Báo cáo năm 2019 của Bộ Lao động - Thương binh và Xã hội Việt Nam được trích dẫn trong đồ án, toàn quốc đã xảy ra 8.150 vụ tai nạn lao động làm 8.327 người bị nạn, trong đó phần lớn các trường hợp xuất phát từ việc người lao động không trang bị hoặc trang bị không đầy đủ các phương tiện bảo vệ cá nhân (Personal Protective Equipment - PPE).

Mặc dù các quy định an toàn lao động tại công trường đã được ban hành chặt chẽ, hoạt động giám sát việc tuân thủ mang mặc PPE tại cổng ra vào và trên công trường hiện nay vẫn chủ yếu thực hiện thủ công bởi các giám sát viên hoặc nhà thầu. Quy trình kiểm tra thủ công này bộc lộ nhiều hạn chế: tốn kém chi phí, mất nhiều thời gian, tần suất kiểm tra không liên tục và dễ xảy ra sai sót khi số lượng công nhân ra vào công trường quá đông.

Ở phạm vi trong nước, các nghiên cứu ứng dụng thị giác máy tính và nhận diện đối tượng chủ yếu tập trung vào nhận diện biển số xe hoặc phát hiện phương tiện giao thông, chưa có giải pháp chuyên sâu cho bài toán giám sát PPE tại công trường. Ở phạm vi quốc tế, phần lớn các công trình đã công bố chỉ tập trung nhận diện mũ bảo hộ (hard hat), bỏ qua các trang bị thiết yếu khác như kính bảo hộ, áo phản quang và găng tay.

Trước thực tiễn đó, đồ án tốt nghiệp ngành Kỹ thuật Máy tính của nhóm tác giả Phạm Hồ Ngọc Bình và Trần Hữu Nhi (Trường Đại học Công nghệ Thông tin - ĐHQG-HCM, 2021), dưới sự hướng dẫn của TS. Nguyễn Minh Sơn, đã đặt ra các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Xây dựng bộ dữ liệu hình ảnh đặc thù phục vụ huấn luyện nhận diện 4 loại trang bị bảo hộ lao động: mũ bảo hộ (hard hat), kính bảo hộ (safety goggles), áo phản quang (safety vest) và găng tay (gloves).
  2. Thiết kế và huấn luyện mô hình mạng nơ-ron tích chập (CNN) dựa trên kiến trúc YOLOv4-tiny nhằm tối ưu hóa độ chính xác và tốc độ xử lý.
  3. Hiện thực và triển khai hệ thống phần cứng - phần mềm hoàn chỉnh trên máy tính nhúng NVIDIA Jetson Nano kết hợp camera Raspberry Pi V2, hỗ trợ kiểm soát trạng thái an toàn (PASS / NOT PASS) theo thời gian thực và điều khiển giám sát từ xa.

Phạm vi nghiên cứu của đề tài được giới hạn trên phần cứng nhúng Jetson Nano, camera Raspberry Pi V2, thuật toán YOLOv4-tiny, tập trung vào 4 nhóm đối tượng PPE nêu trên với mục tiêu đạt tốc độ 8 - 10 khung hình/giây (FPS) và độ chính xác nhận diện từ 80% - 90%.


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

Khung lý thuyết và mô hình thuật toán

Đồ án tiếp cận bài toán thị giác máy tính dưới góc độ nhận diện đối tượng thời gian thực (real-time object detection). Tác giả phân tích hai nhánh kiến trúc bộ dò chính:

  • Two-stage object detector (Mô hình nhận diện hai giai đoạn): Tiêu biểu là họ mạng R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. Cơ chế hoạt động gồm trích xuất vùng đề xuất (Region of Interest - ROI) sau đó mới phân loại và định vị bounding box. Phương pháp này có độ chính xác cao nhưng tốc độ xử lý chậm và đòi hỏi tài nguyên tính toán lớn.
  • One-stage object detector (Mô hình nhận diện một giai đoạn): Tiêu biểu là SSD và YOLO (You Only Look Once). Mô hình dự đoán trực tiếp lớp đối tượng và tọa độ bounding box trên toàn bộ ảnh trong một lần lan truyền tiến (forward pass), cho tốc độ vượt trội, đáp ứng yêu cầu xử lý thời gian thực.

Nhóm tác giả lựa chọn mô hình YOLOv4-tiny làm thuật toán cốt lõi. YOLOv4-tiny là phiên bản thu gọn của YOLOv4, được thiết kế chuyên biệt cho các thiết bị biên (edge devices) và hệ thống nhúng IoT:

  • Backbone: Sử dụng mạng CSPDarknet53-tiny thay thế cho CSPDarknet53. Cấu trúc này ứng dụng các khối CSPBlock (Cross Stage Partial) thay vì ResBlock thông thường, chia bản đồ đặc trưng làm hai phần và kết hợp qua các liên kết dư (cross-stage residual edge). Thiết kế này làm tăng tính đa dạng gradient, nâng cao khả năng học của mạng tích chập và loại bỏ các điểm nghẽn tính toán.
  • Hàm mất mát (Loss Function): Tổng hợp từ 3 thành phần: $$\text{loss} = \text{loss}_1 + \text{loss}_2 + \text{loss}_3$$ Trong đó:
    • $\text{loss}1$ là hàm mất mát độ tin cậy (confidence loss), sử dụng hàm entropy chéo có trọng số $\lambda{\text{noobj}}$ nhằm cân bằng giữa các ô có chứa và không chứa đối tượng.
    • $\text{loss}_2$ là hàm mất mát phân loại (classification loss).
    • $\text{loss}_3$ là hàm mất mát hồi quy khung bao (bounding box regression loss) dựa trên chỉ số giao trên hợp mở rộng (CIoU / IoU) kết hợp khoảng cách tâm Euclidean và sai phân tỷ lệ khung bao.

Phương pháp nghiên cứu và công cụ hỗ trợ

Nghiên cứu áp dụng phương pháp thiết kế hệ thống kỹ thuật kết hợp thực nghiệm:

  • Nguồn dữ liệu: Do không có sẵn bộ dữ liệu chuẩn về PPE cho công trường xây dựng, tác giả tiến hành thu thập 3.500 ảnh từ hai nguồn: 3.000 ảnh từ Internet và 500 ảnh tự chụp thực tế với nhiều điều kiện chiếu sáng và góc chụp.
  • Công cụ gán nhãn: Sử dụng phần mềm mã nguồn mở LabelImg để đóng khung đối tượng (bounding box) và xuất nhãn theo định dạng YOLO/PASCAL VOC.
  • Môi trường huấn luyện: Nền tảng Google Colaboratory với tài nguyên GPU Tesla K80 (2.496 CUDA cores), CPU Xeon @2.3GHz, 12GB RAM, 320GB bộ nhớ lưu trữ, liên kết Google Drive để quản lý tệp tin.
  • Framework phần mềm: Khung mạng nơ-ron Darknet (viết bằng C và CUDA), thư viện xử lý ảnh OpenCV, nền tảng tính toán song song NVIDIA CUDA.

Thiết kế và triển khai hệ thống

Kiến trúc phần cứng

Hệ thống giám sát tại chỗ được đóng gói thành một hộp camera (camera box) khép kín, bao gồm các thành phần:

  • Khối xử lý trung tâm: Bo mạch nhúng NVIDIA Jetson Nano Developer Kit trang bị CPU Quad-core ARM Cortex-A57 64-bit, GPU kiến trúc Maxwell 128 nhân CUDA, hiệu năng tính toán 472 GFLOPS (FP16), bộ nhớ RAM 4GB LPDDR4 64-bit băng thông 25,6 GB/s, hỗ trợ thẻ nhớ micro-SD và chuẩn giao tiếp MIPI CSI-2.
  • Khối thu nhận hình ảnh: Raspberry Pi Camera V2 sử dụng cảm biến ảnh Sony IMX219 độ phân giải 8 Megapixel, kết nối trực tiếp với Jetson Nano thông qua cáp ribbon giao tiếp CSI.
  • Khối cấp nguồn & Phụ kiện: Adapter nguồn Philips 5V - 4A đảm bảo dòng hoạt động ổn định, hộp bảo vệ chuyên dụng và module tản nhiệt.

Cấu hình và quy trình huấn luyện mô hình

Tệp cấu hình mạng yolov4-tiny-custom.cfg được điều chỉnh tham số phù hợp với bài toán 4 lớp đối tượng:

  • Kích thước ảnh đầu vào: $416 \times 416$ pixel.
  • Kích thước lô (batch): 64, chia nhỏ lô (subdivisions): 16.
  • Số vòng lặp tối đa (max_batches): $8.000$ (tương ứng $\text{classes} \times 2000$).
  • Các bước giảm tốc độ học (steps): $6.400$ và $7.200$ (tương ứng 80% và 90% của max_batches).
  • Số bộ lọc (filters) tại các tầng tích chập đứng trước mỗi tầng YOLO: $\text{filters} = (\text{classes} + 5) \times 3 = (4 + 5) \times 3 = 27$.

Sau quá trình huấn luyện, tệp trọng số tối ưu nhất (yolov4-tiny-custom_best.weights) được trích chọn dựa trên giá trị mAP cao nhất và độ mất mát trung bình đạt khoảng $0,02$ (xác định tại khoảng lặp 6.400 - 7.200 iterations).

Quy trình vận hành phần mềm

Phần mềm nhận diện trên Jetson Nano được xây dựng chạy trên nền hệ điều hành Linux (JetPack 4.4):

  1. Khởi tạo: Hệ thống kích hoạt luồng camera Raspberry Pi V2, tải mô hình trọng số yolov4-tiny-custom.weights và cấu hình Darknet lên bộ nhớ GPU. Màn hình mặc định hiển thị trạng thái cảnh báo NOT PASS.
  2. Xử lý thời gian thực: Mỗi khung hình thu nhận từ camera được đưa qua mạng YOLOv4-tiny để xác định vị trí và độ tin cậy của 4 loại đối tượng: mũ bảo hộ, kính bảo hộ, áo phản quang, găng tay.
  3. Đánh giá điều kiện an toàn: Khi công nhân đứng trước camera, nếu hệ thống phát hiện đồng thời đầy đủ cả 4 trang bị PPE hợp lệ, trạng thái trên màn hình lập tức chuyển sang PASS.
  4. Lưu trữ nhật ký & Điều khiển từ xa: Khi điều kiện PASS được xác nhận, hệ thống tự động lưu trữ ảnh chụp bằng chứng, thông số bounding box, tỷ lệ phần trăm độ chính xác và dấu thời gian (timestamp) vào cơ sở dữ liệu/tệp log nội bộ. Giám sát viên hoặc nhà thầu có thể theo dõi trực tiếp hoặc truy cập điều khiển hệ thống thông qua giao thức VNC (Virtual Network Computing) kết nối mạng Wi-Fi nội bộ.

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

Chương 1: Giới thiệu và An toàn xây dựng tại Việt Nam

Chương 1 thiết lập tính cấp thiết của đề tài thông qua các dữ liệu thống kê tai nạn lao động tại Việt Nam năm 2019. Tác giả phân tích các quy định an toàn hiện hành, chỉ rõ sự thiếu hiệu quả của quy trình kiểm soát thủ công. Tiếp đó, chương này điểm qua các công trình nghiên cứu thị giác máy tính trong và ngoài nước, từ đó xác định rõ mục tiêu, phạm vi phần cứng (Jetson Nano, RPi Cam v2), thuật toán (YOLOv4-tiny) và các chỉ tiêu kỹ thuật cần đạt (4 lớp PPE, 8 - 10 FPS, độ chính xác 80% - 90%).

Chương 2: Cơ sở lý thuyết nhận diện đối tượng và phần cứng

Chương 2 trình bày tổng quan lý thuyết về thị giác máy tính và nhận diện đối tượng:

  • Khái quát kiến trúc bộ dò hiện đại: Input, Backbone (VGG16, ResNet, Darknet53, CSPDarknet...), Neck (FPN, PANet...) và Head (Dense Prediction vs. Sparse Prediction).
  • Phân tích chi tiết thuật toán YOLOv4-tiny: cấu trúc mạng CSPDarknet53-tiny, cơ chế phân chia lưới $S \times S$, dự đoán $B$ bounding box, ngưỡng độ tin cậy và các công thức hàm mất mát.
  • Giới thiệu các công cụ và nền tảng hỗ trợ: Thư viện OpenCV, nền tảng tính toán song song CUDA, framework Darknet, công cụ gán nhãn LabelImg, nền tảng Google Colaboratory.
  • Giới thiệu chi tiết thông số phần cứng: Bo mạch NVIDIA Jetson Nano, camera Raspberry Pi V2 và giải pháp điều khiển từ xa VNC.

Chương 3: Phân tích và thiết kế hệ thống PPE

Chương 3 là trọng tâm thiết kế và triển khai thực nghiệm của đồ án:

  • Phân tích tiêu chuẩn 4 loại trang bị bảo hộ: Mũ bảo hộ (màu trắng, vàng; vật liệu cứng chống va đập), Kính bảo hộ (màu trắng, đen; chống bụi, hóa chất, dị vật), Áo phản quang (màu cam, xanh lá; vật liệu polyester có dải phản quang), Găng tay bảo hộ (màu xanh lá).
  • Xây dựng tập dữ liệu gồm 3.500 ảnh (3.000 ảnh Internet, 500 ảnh tự chụp), phân chia theo tỷ lệ 80% huấn luyện (2.800 ảnh) và 20% kiểm thử (700 ảnh).
  • Chi tiết hóa quá trình gán nhãn bằng LabelImg, cấu trúc thư mục dữ liệu (data, yolo.data, yolo.names, train.txt, val.txt) và các tinh chỉnh trong tệp yolov4-tiny-custom.cfg.
  • Quá trình huấn luyện trên Colab, đồ thị suy giảm hàm mất mát (loss đạt 0,02) và đồ thị mAP.
  • Hướng dẫn cài đặt JetPack 4.4, Darknet, OpenCV trên Jetson Nano, ghép nối phần cứng và xây dựng lưu đồ thuật toán điều khiển giám sát trạng thái PASS / NOT PASS.

Chương 4: Đánh giá mô hình và thực nghiệm thực tế

Chương 4 tập trung vào công tác kiểm thử và đo lường hiệu năng của hệ thống:

  • Đánh giá mô hình trên tập kiểm thử độc lập gồm 700 ảnh.
  • Thực nghiệm kiểm tra khả năng nhận diện trong môi trường thực tế dưới các điều kiện:
    • Điều kiện đầy đủ ánh sáng (Full of light condition) tại các khoảng cách khác nhau (1,5m, 2,5m, 3,0m, 7,0m, 25,0m).
    • Điều kiện thiếu sáng (Lack of light condition) tại các khoảng cách tương ứng.
  • Đánh giá tốc độ xử lý của hệ thống khi nhận diện đồng thời nhiều đối tượng (đo đạc khi phát hiện 6 đối tượng trong khung hình).

Kết luận và Hướng phát triển (Conclusion and Future Work)

Tổng kết lại các kết quả đạt được về mặt mô hình, phần cứng nhúng và khả năng ứng dụng thực tế; đề xuất các hướng mở rộng cho hệ thống trong tương lai.


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

Số liệu kết quả thực nghiệm

Hệ thống đã hoàn thành việc xây dựng tập dữ liệu và huấn luyện mô hình với các thông số thống kê chi tiết:

Loại trang bị (PPE) Số lượng nhãn tập Train Số lượng nhãn tập Test Tổng số lượng nhãn
Mũ bảo hộ (Hard hat) 3.951 1.050 5.151
Kính bảo hộ (Goggles) 895 150 1.045
Áo phản quang (Safety vest) 1.972 553 2.525
Găng tay (Gloves) 2.625 564 3.189
Tổng cộng 9.443 2.317 11.760
  • Độ chính xác: Mô hình YOLOv4-tiny sau khi huấn luyện đạt độ chính xác nhận diện tổng thể lên tới 90% đối với 4 loại trang bị bảo hộ lao động.
  • Tốc độ xử lý: Khi triển khai trên bo mạch nhúng NVIDIA Jetson Nano với nguồn cấp 5V-4A, hệ thống duy trì tốc độ xử lý đạt xấp xỉ 10 FPS, hoàn toàn đáp ứng tiêu chuẩn xử lý thời gian thực tại cổng kiểm soát công trường.
  • Vận hành hệ thống: Kiểm soát chính xác logic logic an toàn, tự động chuyển đổi giao diện hiển thị giữa PASS và NOT PASS, ghi nhận log và trích xuất hình ảnh kiểm tra đồng bộ.

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

  1. Đóng góp bộ dữ liệu hình ảnh PPE gán nhãn chi tiết gồm 3.500 ảnh và 11.760 nhãn đối tượng, giải quyết tình trạng thiếu hụt dữ liệu mở cho bài toán bảo hộ lao động trong ngành xây dựng.
  2. Tích hợp thành công mô hình học sâu hiện đại (YOLOv4-tiny) vào thiết bị phần cứng nhúng giá thành thấp (Jetson Nano), chứng minh tính khả thi của giải pháp AI tại biên (Edge AI) trong môi trường công nghiệp.
  3. Cung cấp giải pháp tự động hóa quy trình kiểm soát an toàn lao động, giúp các nhà thầu và giám sát viên giảm thiểu chi phí nhân công, loại bỏ sai sót chủ quan và nâng cao ý thức chấp hành quy định an toàn của công nhân.

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

Hạn chế

  • Mô hình bị giới hạn nhận diện trong phạm vi 4 loại trang bị bảo hộ cơ bản (mũ, kính, áo phản quang, găng tay); chưa nhận diện được các trang bị chuyên dụng khác như dây đai an toàn toàn thân (harnesses) hay giày bảo hộ.
  • Hiệu năng nhận diện của hệ thống chịu ảnh hưởng khi khoảng cách phát hiện quá xa hoặc trong điều kiện thiếu sáng nghiêm trọng.
  • Phần cứng Jetson Nano giới hạn tốc độ xử lý ở mức khoảng 10 FPS với kích thước đầu vào $416 \times 416$, khó nâng cao độ phân giải khung hình xử lý lên mức cao hơn mà vẫn giữ được tính thời gian thực.

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

  • Mở rộng tập dữ liệu và phân lớp đối tượng để nhận diện thêm các thiết bị an toàn khác như giày bảo hộ, khẩu trang, dây đai an toàn.
  • Cải thiện kiến trúc mô hình và áp dụng các kỹ thuật tăng cường dữ liệu (data augmentation) nâng cao nhằm tăng cường độ chính xác trong điều kiện ánh sáng yếu hoặc thời tiết bất lợi (mưa, sương mù, ban đêm).
  • Tối ưu hóa mô hình sâu hơn bằng công cụ NVIDIA TensorRT nhằm nâng cao tốc độ khung hình (FPS) trên các thế hệ phần cứng nhúng tiếp theo.

Giá trị tham khảo

Tài liệu khóa luận tốt nghiệp này mang lại giá trị tham khảo kỹ thuật rõ ràng cho nhiều đối tượng:

  • Sinh viên ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin: Là tài liệu tham khảo thực tế về quy trình xây dựng đồ án AI nhúng từ khâu chuẩn bị dữ liệu, cấu hình tham số mạng YOLOv4-tiny trên Darknet, đến quy trình biên dịch và triển khai trên dòng máy tính nhúng NVIDIA Jetson.
  • Kỹ sư và nhà nghiên cứu thị giác máy tính ứng dụng: Cung cấp thông số cấu hình cụ thể (cfg, batch, subdivisions, filters), phương pháp phân chia dữ liệu và các kiểm thử đánh giá mô hình trong điều kiện môi trường công nghiệp thực tế.
  • Nhà thầu và đơn vị quản lý an toàn công trường: Cung cấp mô hình tham chiếu về mặt kiến trúc giải pháp và đánh giá hiệu quả kinh tế - kỹ thuật khi chuyển đổi từ kiểm soát thủ công sang kiểm soát an toàn lao động tự động hóa.

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

1. Tại sao đồ án lựa chọn mô hình YOLOv4-tiny thay vì các mô hình hai giai đoạn như Faster R-CNN?

Các mô hình nhận diện hai giai đoạn (như Faster R-CNN) tuy có độ chính xác cao nhưng cấu trúc phức tạp, phải duyệt qua vùng đề xuất (ROI) nên tốc độ xử lý chậm và tiêu tốn nhiều tài nguyên tính toán, không thể chạy thời gian thực trên phần cứng nhúng giá rẻ. YOLOv4-tiny là mô hình một giai đoạn với backbone CSPDarknet53-tiny đã được tinh gọn, giúp cân bằng giữa độ chính xác (đạt tới 90%) và tốc độ xử lý (đạt ~10 FPS trên Jetson Nano), đáp ứng tốt yêu cầu xử lý thời gian thực.

2. Bộ dữ liệu huấn luyện PPE trong đồ án được xây dựng từ những nguồn nào và quy mô ra sao?

Bộ dữ liệu gồm tổng cộng 3.500 ảnh, được tổng hợp từ 3.000 ảnh thu thập trên Internet và 500 ảnh tự chụp thực tế với nhiều góc độ, bối cảnh và điều kiện chiếu sáng khác nhau. Dữ liệu được chia thành tập huấn luyện (2.800 ảnh - 80%) và tập kiểm thử (700 ảnh - 20%), gán nhãn cho 4 lớp đối tượng với tổng số 11.760 nhãn (mũ bảo hộ: 5.151 nhãn, kính: 1.045 nhãn, áo phản quang: 2.525 nhãn, găng tay: 3.189 nhãn).

3. Cấu hình phần cứng triển khai tại chỗ gồm những thiết bị nào?

Phần cứng hệ thống bao gồm: bo mạch nhúng NVIDIA Jetson Nano Developer Kit (CPU Quad-core ARM Cortex-A57, GPU Maxwell 128 nhân CUDA, RAM 4GB LPDDR4), camera Raspberry Pi V2 (cảm biến Sony IMX219 8MP kết nối qua cổng CSI), bộ nguồn Philips 5V - 4A và vỏ hộp camera bảo vệ (camera box).

4. Hệ thống xác định và xử lý trạng thái an toàn của công nhân như thế nào?

Ban đầu, hệ thống hiển thị mặc định trạng thái NOT PASS. Khi công nhân di chuyển vào vùng quan sát của camera, nếu mô hình nhận diện đồng thời đầy đủ cả 4 trang bị bảo hộ (mũ, kính, áo phản quang, găng tay), hệ thống sẽ chuyển sang trạng thái PASS, hiển thị bounding box kèm tỷ lệ % độ chính xác, tự động lưu ảnh chụp bằng chứng và ghi nhận thời gian vào tệp nhật ký (log).


Kết luận

Đồ án tốt nghiệp "Nghiên Cứu và Hiện Thực Camera Nhận Dạng Công Nhân Đảm Bảo An Toàn Lao Động Trong Công Trường Xây Dựng" của nhóm tác giả đã xây dựng thành công một giải pháp AI nhúng hoàn chỉnh từ thu thập dữ liệu, huấn luyện mô hình đến triển khai phần cứng. Với việc áp dụng mạng YOLOv4-tiny trên bo mạch NVIDIA Jetson Nano kết hợp camera Raspberry Pi V2, hệ thống đạt độ chính xác nhận dạng 4 loại trang bị bảo hộ lên đến 90% ở tốc độ 10 FPS trong điều kiện thời gian thực. Kết quả nghiên cứu khẳng định tính khả thi của việc ứng dụng thị giác máy tính nhằm tự động hóa công tác giám sát an toàn lao động tại các công trình xây dựng.