1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng thị giác máy tính để thiết kế hệ thống giám sát tuân thủ an toàn lao động tại công trường, nhà máy

89 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Thị Giác Máy Tính Để Thiết Kế Hệ Thống Giám Sát Tuân Thủ An Toàn Lao Động Tại Công Trường, Nhà Máy
Tác giả Ngô Trung Nguyên, Nguyễn Trung Hiếu
Người hướng dẫn TS. Huỳnh Thế Thiện
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 89
Dung lượng 9,83 MB

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI (15)
    • 1.1 ĐẶT VẤN ĐỀ (15)
    • 1.2 MỤC TIÊU ĐỀ TÀI (16)
    • 1.3 PHƯƠNG PHÁP NGHIÊN CỨU (17)
    • 1.4 NỘI DUNG NGHIÊN CỨU (18)
    • 1.5 BỐ CỤC TRÌNH BÀY (18)
  • CHƯƠNG 2 CƠ SỞ LÝ THUYẾT (20)
    • 2.1 TỔNG QUAN VỀ THỊ GIÁC MÁY TÍNH (20)
      • 2.1.1 Giới thiệu chung (20)
      • 2.1.2 Xử lý hình ảnh số trong thị giác máy tính (20)
    • 2.2 HỌC SÂU TRONG THỊ GIÁC MÁY TÍNH (21)
      • 2.2.1 Khái niệm về mạng Nơ-ron nhân tạo (21)
      • 2.2.2 Tổng quan về học sâu trong thị giác máy tính (22)
      • 2.2.3 Phân tích sự khác nhau giữa mạng học sâu, học máy và trí tuệ nhân tạo (23)
    • 2.3 KĨ THUẬT XỬ LÝ ẢNH SỐ TRONG MẠNG HỌC SÂU (24)
      • 2.3.1 Bài toán phát hiện đối tượng (24)
      • 2.3.2 Bài toán phân vùng hình ảnh (25)
      • 2.3.3 Bài toán phân loại hình ảnh (26)
      • 2.3.4 Kĩ thuật nhận diện khuôn mặt trong thị giác máy tính (26)
    • 2.4 MÔ HÌNH MẠNG NƠ-RON TÍCH CHẬP (27)
      • 2.4.1 Tổng quan mô hình mạng CNN (27)
      • 2.4.2 Kiến trúc mạng nơ-ron tích chập CNN (28)
      • 2.4.3 Phép tích chập trong xử lý ảnh (29)
      • 2.4.4 Bước nhảy trong mạng CNN (30)
      • 2.4.5 Đệm trong mạng CNN (30)
    • 2.5 MẠNG HỌC SÂU YOLO (32)
      • 2.5.1 Khái niệm cơ bản về mạng học sâu YOLO (32)
      • 2.5.2 Tổng quan kiến trúc mạng YOLO (33)
      • 2.5.3 Một số phiên bản của mạng YOLO (35)
      • 2.5.4 Một số hàm quan trọng trong mạng YOLO (37)
      • 2.5.5 Một số thuật ngữ liên quan đến tiêu chuẩn đánh giá (39)
      • 2.5.6 Kiến trúc mạng YOLOv4-tiny (41)
      • 2.5.7 Các khối sử dụng trong mạng (42)
    • 2.6 GIỚI THIỆU THƯ VIỆN OPENCV VÀ FACE RECOGNITION (44)
      • 2.6.1 Thư viện OPENCV (44)
      • 2.6.2 Thư viện Face Recognition (45)
  • CHƯƠNG 3 THIẾT KẾ MÔ HÌNH (46)
    • 3.1 TỔNG QUAN VỀ MÔ HÌNH THIẾT KẾ (46)
      • 3.1.1 Yêu cầu thiết kế (46)
      • 3.1.2 Nguyên lí hoạt động của mô hình (47)
    • 3.2 THIẾT KẾ LƯU ĐỒ THUẬT TOÁN GIAO DIỆN TRÊN JETSON NANO (48)
      • 3.2.1 Ý tưởng thiết kế (48)
      • 3.2.2 Lưu đồ thuật toán cho mô hình xử lý trên Jetson Nano (49)
      • 3.2.3 Lưu đồ thuật toán hiển thị kết quả nhận diện đồ bảo hộ của công nhân (50)
    • 3.3 THIẾT KẾ LƯU ĐỒ THUẬT TOÁN CH O GIAO DIỆN QUẢN LÍ (51)
      • 3.3.1 Ý tưởng thiết kế (51)
      • 3.3.2 Nguyên lí hoạt động (52)
      • 3.3.3 Lưu đồ thuật toán chức năng thêm công nhân mới (52)
      • 3.3.4 Lưu đồ thuật toán chức năng cập nhật thông tin (54)
      • 3.3.5 Lưu đồ thuật toán chức năng hiển thị danh sách và xóa công nhân (55)
      • 3.3.6 Lưu đồ thuật toán cho chức năng hiển thị dữ liệu chấm công (56)
  • CHƯƠNG 4 THỰC HIỆN MÔ HÌNH (58)
    • 4.1 MÔ HÌNH NHẬN DIỆN KHUÔN MẶT (58)
      • 4.1.1 Quá trình trích xuất vec-tơ đặc trưng (58)
      • 4.1.2 Quá trình nhận diện khuôn mặt (60)
      • 4.2.3 Tải tập huấn luyện và thử nghiệm cho mô hình YOLO (64)
    • 4.3 THIẾT KẾ GIAO DIỆN CHO MÔ HÌNH (65)
      • 4.3.1 Giao diện xử lý trên Jetson Nano (65)
      • 4.3.2 Giao diện quản lí (67)
  • CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ (72)
    • 5.1 KẾT QUẢ MÔ HÌNH NHẬN DIỆN KHUÔN MẶT (72)
      • 5.1.1 Đánh giá mô hình (72)
      • 5.1.2 Kết quả nhận diện (72)
    • 5.2 KẾT QUẢ MÔ HÌNH HUẤN LUYỆN (73)
      • 5.2.1 Quá trình huấn luyện (73)
      • 5.2.2 Kết quả về độ chính xác của hai mô hình YOLOv4 và YOLOv4-tiny (74)
    • 5.3 KẾT QUẢ MÔ HÌNH THỰC TẾ (77)
      • 5.3.1 Cấu hình phần cứng của bộ phát triển Jetson Nano B01 (77)
      • 5.3.2 Kết quả chạy mô hình thực tế trên Jetson Nano B01 (78)
      • 5.3.3 Kết quả chạy mô hình trên giao diện quản lí (80)
  • CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (84)
    • 6.1 KẾT LUẬN (84)
    • 6.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI (85)
  • TÀI LIỆU THAM KHẢO (86)
  • PHỤ LỤC (87)

Nội dung

CƠ SỞ LÝ THUYẾT

TỔNG QUAN VỀ THỊ GIÁC MÁY TÍNH

Trong bối cảnh công nghệ 4.0 phát triển mạnh mẽ, nhiều máy móc và robot đang dần thay thế công việc của con người Để nâng cao trí tuệ nhân tạo, việc tạo ra một lượng lớn dữ liệu trực quan là cần thiết, với hơn 3 tỷ hình ảnh được chia sẻ trực tuyến mỗi ngày Từ đó, lĩnh vực thị giác máy tính ra đời, kết hợp khoa học máy tính và trí tuệ nhân tạo, nhằm phát triển các thuật toán và phương pháp xử lý hình ảnh, giúp máy tính có khả năng "nhìn thấy" và "hiểu" hình ảnh giống như con người.

Thị giác máy tính là quá trình phân tích và xử lý hình ảnh số, bao gồm cả ảnh tĩnh và ảnh động Ứng dụng quan trọng nhất của thị giác máy tính nằm trong lĩnh vực y tế, giúp phát hiện bệnh lý, xác định hình dạng và kích thước tế bào mô Ngoài ra, công nghệ này còn được áp dụng rộng rãi trong an ninh, ô tô tự hành, cũng như trong các ngành công nghiệp và thương mại.

2.1.2 Xử lý hình ảnh số trong thị giác máy tính

Thị giác máy tính là lĩnh vực liên quan đến nhận dạng mẫu, cho phép máy tính "nhìn" và "ghi nhớ" dữ liệu trực quan về các đối tượng Để huấn luyện máy tính, cần cung cấp hàng trăm, hàng nghìn hoặc hàng triệu ảnh đã được "đánh dấu" Sau đó, dữ liệu ảnh này sẽ được chuyển đổi sang dạng số để máy tính có thể hiểu và xử lý Quá trình xử lý hình ảnh số là yếu tố quan trọng trong thị giác máy tính.

- Tiền xử lý hình ảnh: bao gồm các bước làm sạch ảnh, cân bằng sáng tối, lọc nhiễu, cắt ảnh và cải thiện chất lượng ảnh

- Phân loại hình ảnh: tách ảnh thành các phần khác nhau, phân biệt được các đối tượng trong ảnh

- Trích xuất đặc trưng: chuyển đổi ảnh thành các vectơ đặc trưng để mô tả các đối tượng trong ảnh

- Phận loại và nhận dạng: dựa trên các đặc trưng đã trích xuất, các đối tượng trong ảnh được phân loại và nhận dạng

Kết quả đầu ra của quá trình xử lý ảnh cung cấp thông tin chi tiết về các đối tượng xuất hiện trong ảnh, bao gồm vị trí và các thuộc tính khác của chúng.

Cuối cùng, để thực hiện quy trình xử lý ảnh, chúng ta cần áp dụng một số kỹ thuật và công nghệ quan trọng Các công nghệ này bao gồm mạng nơ-ron tích chập (CNN), máy vec-tơ hỗ trợ (SVM), mô hình phân lớp AdaBoost, mẫu nhị phân cục bộ (LBP), học sâu, và phân đoạn hình ảnh Những kỹ thuật này đóng vai trò quan trọng trong việc nâng cao hiệu quả của quá trình xử lý ảnh.

HỌC SÂU TRONG THỊ GIÁC MÁY TÍNH

2.2.1 Khái niệm về mạng Nơ-ron nhân tạo

Mạng nơ-ron nhân tạo là mô hình máy học lấy cảm hứng từ hệ thống thần kinh sinh học, được thiết kế để giải quyết các bài toán phân loại, dự đoán, dò tìm và phát hiện Nó bao gồm nhiều nơ-ron kết nối thành các lớp ẩn, với mỗi nơ-ron thực hiện hai nhiệm vụ chính: tính tổng trọng số đầu vào và áp dụng hàm kích hoạt phi tuyến Mạng nơ-ron nhân tạo hiện nay đóng vai trò quan trọng trong các lĩnh vực như thị giác máy tính và xử lý ngôn ngữ tự nhiên.

Hình 2.1: Hình ảnh minh họa về mô hình mạng nơ-ron nhân tạo 2.2.2 Tổng quan về học sâu trong thị giác máy tính

Mô hình học sâu là công nghệ quan trọng trong xử lý ảnh, giúp phân loại đối tượng, nhận diện khuôn mặt, phát hiện vật thể, và đọc chữ viết tay Mạng học sâu, một phương pháp học máy, sử dụng mạng nơ-ron nhân tạo với nhiều lớp ẩn, thường từ hàng chục đến hàng trăm lớp, để khai thác các đặc trưng phức tạp của dữ liệu đầu vào.

Hình 2.2: Mối tương quan giữa mạng nơ-ron nhân tạo và mạng học sâu

Các mô hình học sâu được huấn luyện qua các thuật toán như lan truyền ngược, kỹ thuật giảm trọng số, dropout và các phương pháp tối ưu hóa như gradient descent Nhờ đó, mạng học sâu đã được xây dựng và phát triển với nhiều kiến trúc khác nhau, bao gồm mạng nơ-ron tích chập, mạng nơ-ron truyền thẳng (FNN), mạng nơ-ron tái phát (RNN) và mạng nơ-ron chuyển tiếp.

2.2.3 Phân tích sự khác nhau giữa mạng học sâu, học máy và trí tuệ nhân tạo

Học sâu, học máy và trí tuệ nhân tạo là những khái niệm liên quan trong lĩnh vực công nghệ thông tin, nhưng mỗi khái niệm có những đặc điểm riêng biệt Học máy là một nhánh của trí tuệ nhân tạo, tập trung vào việc phát triển các thuật toán cho phép máy tính học từ dữ liệu Học sâu, một phần của học máy, sử dụng mạng nơ-ron đa lớp để xử lý và phân tích dữ liệu phức tạp Sự khác biệt giữa chúng nằm ở cấp độ phức tạp và cách thức xử lý thông tin.

Học máy là phương pháp cho phép máy tính tự động học hỏi từ dữ liệu mà không cần lập trình cụ thể Thông qua việc sử dụng các thuật toán và mô hình, học máy phân tích dữ liệu, rút ra các đặc trưng và học cách phân loại kết quả dựa trên dữ liệu có sẵn.

Học sâu là một phương pháp đặc biệt trong học máy, sử dụng mạng nơ-ron tích chập với nhiều lớp ẩn để phân tích và huấn luyện dữ liệu đầu vào, từ đó đưa ra dự đoán về các đối tượng Hình 2.3 minh họa sự khác biệt cơ bản trong quá trình nhận diện của máy tính, chẳng hạn như xác định xem một vật thể có phải là chiếc xe hay không.

Hình 2.3: Phân biệt học máy và học sâu

Trí tuệ nhân tạo là một khái niệm tổng quát, bao gồm cả học sâu và học máy, và nó đề cập đến khả năng của máy tính trong việc tự thực hiện và tính toán tương tự như con người.

Học máy và học sâu đóng vai trò quan trọng trong việc cải thiện đời sống con người, giải quyết nhiều vấn đề trong các lĩnh vực khác nhau Chúng cung cấp giải pháp nhanh chóng và chính xác, đồng thời dần dần phát triển khả năng suy luận tương tự như con người Sự phát triển của học sâu và học máy đã giúp trí tuệ nhân tạo ngày càng mở rộng và bao quát hơn.

KĨ THUẬT XỬ LÝ ẢNH SỐ TRONG MẠNG HỌC SÂU

2.3.1 Bài toán phát hiện đối tượng

Phát hiện đối tượng (Object Detection) là một trong những thuật toán cốt lõi trong lĩnh vực thị giác máy tính, đặc biệt là trong mạng học sâu Thuật toán này tập trung vào việc xác định vị trí và nhận diện các đối tượng trong hình ảnh, bao gồm khuôn mặt, xe cộ, con người và các vật thể trong sản xuất.

Các thuật toán phát hiện đối tượng phổ biến:

Phương pháp mô tả đặc trưng HOG (Histogram of Oriented Gradients) là kỹ thuật trích xuất thông tin về hướng và phân bố của gradient trong ảnh, nhằm thu thập các đặc trưng quan trọng của hình ảnh.

Mạng nơ-ron tích chập theo vùng (R-CNN) sử dụng thuật toán chọn lọc (Selective search) để tạo ra tập hợp các vùng tiềm năng trong ảnh, từ đó hỗ trợ cho việc phân loại và nhận diện đối tượng.

Hình 2.4: Chu trình phát hiện đối tượng với mạng R-CNN

Faster R-CNN là một phương pháp cải tiến nhằm khắc phục vấn đề tốc độ của mạng R-CNN cũ Thay vì áp dụng thuật toán chọn lọc, Faster R-CNN sử dụng mô hình Region Proposal Network (RPN) để tạo ra các anchor box, giúp nhận diện đối tượng một cách hiệu quả hơn.

Hình 2.5: Mô hình Faster R-CNN 2.3.2 Bài toán phân vùng hình ảnh

Phân vùng hình ảnh trong mô hình học sâu là quá trình tách ảnh thành các nhóm và gán nhãn cho từng pixel Tất cả các pixel thuộc cùng một danh mục sẽ được gán chung một nhãn Một số kỹ thuật phân vùng ảnh phổ biến bao gồm

Phân vùng dựa vào ngưỡng là phương pháp sử dụng ngưỡng để tách các vùng trong ảnh thành các nhóm khác nhau Kỹ thuật này thường được áp dụng trong các trường hợp mà đặc trưng của các vùng dễ dàng nhận diện và phân biệt.

Phân vùng dựa trên cạnh (Edge Based Segmentation) là phương pháp sử dụng thông tin về các cạnh trong hình ảnh để tách biệt các vùng khác nhau Phương pháp này mang lại hiệu quả cao trong việc phân vùng những khu vực có viền và biên giới rõ ràng.

2.3.3 Bài toán phân loại hình ảnh

Phân loại hình ảnh, hay nhận dạng hình ảnh, là chức năng quan trọng trong thị giác máy tính, sử dụng thuật toán để phân loại dựa trên nhãn đã được huấn luyện Đây là bước cuối cùng trong quá trình nhận diện vật thể, giúp phân tách các đặc điểm đã học và đưa ra dự đoán cho vật thể Sự khác biệt giữa ba kỹ thuật phân loại hình ảnh có thể được minh họa rõ ràng qua hình 2.6.

Hình 2.6: Sự khác biệt giữa phát hiện, phân vùng và phân loại ảnh

Các thuật toán phân loại hình ảnh được áp dụng và kết hợp theo nhiều cách khác nhau, tuy nhiên, việc lựa chọn thuật toán phù hợp sẽ phụ thuộc vào hai trường hợp cụ thể dưới đây.

Phân loại hình ảnh có giám sát là quá trình sử dụng tập dữ liệu huấn luyện đã được xác định trước để phát triển khả năng phân loại các hình ảnh mới Phương pháp này dựa trên việc áp dụng các lớp hoặc nhãn đã biết, giúp cải thiện độ chính xác trong việc nhận diện và phân loại hình ảnh.

Phân loại hình ảnh không giám sát khác với phân loại có giám sát, vì nó không sử dụng tập dữ liệu đã được huấn luyện trước Mục tiêu của phương pháp này là khám phá cấu trúc, mẫu và nhóm sự khác biệt trong dữ liệu để thực hiện phân loại.

2.3.4 Kĩ thuật nhận diện khuôn mặt trong thị giác máy tính

Kỹ thuật nhận diện khuôn mặt trong thị giác máy tính giúp máy tính nhận biết danh tính của người qua các đặc trưng khuôn mặt được trích xuất từ hình ảnh hoặc video Ứng dụng của kỹ thuật này rất đa dạng, bao gồm bảo mật thiết bị, thực thi pháp luật, kiểm soát vé tại sân bay và tăng cường an ninh tại các cửa hàng.

Kỹ thuật nhận diện khuôn mặt bao gồm các bước xây dựng và trích xuất đặc trưng cụ thể Quy trình phát triển thuật toán này bao gồm nhiều bước quan trọng để đảm bảo hiệu quả và độ chính xác trong việc nhận diện khuôn mặt.

Tiền xử lý ảnh là bước quan trọng trong quá trình nhận diện, bao gồm các phương pháp như chuẩn hóa ánh sáng, cân bằng histogram và loại bỏ nhiễu, nhằm cải thiện chất lượng hình ảnh trước khi tiến hành nhận diện.

- Xác định vùng khuôn mặt: Bước này dùng để xác định vị trí và kích thước của khuôn mặt trên ảnh

Rút trích đặc trưng khuôn mặt là quá trình quan trọng trong phân loại khuôn mặt, sử dụng các mô hình học sâu như mạng nơ-ron tích chập (CNN) hoặc các mô hình đã được xây dựng sẵn như FaceNet để nhận diện và phân biệt các đặc điểm của khuôn mặt.

- Phân loại: Dùng để xác định xem khuôn mặt được nhận diện là của ai thông qua việc so sánh với dữ liệu đã biết.

MÔ HÌNH MẠNG NƠ-RON TÍCH CHẬP

2.4.1 Tổng quan mô hình mạng CNN

Mô hình mạng CNN là một loại mạng nơ-ron nhân tạo được sử dụng phổ biến trong nhận diện vật thể Nó hoạt động bằng cách áp dụng các bộ lọc ở các vị trí khác nhau trên ảnh đầu vào, từ đó tạo ra các bản đồ đặc trưng (feature maps) tương ứng Các bản đồ này giúp mạng hiểu rõ hơn về các đặc điểm của ảnh, phục vụ cho việc dự đoán đối tượng có trong ảnh.

Mạng CNN đã được áp dụng thành công trong nhận diện vật thể, xử lý video và phát triển robot thông minh Đồng thời, mạng CNN đang khẳng định vai trò quan trọng trong việc xây dựng cơ sở hạ tầng tự động, thông minh và an toàn.

2.4.2 Kiến trúc mạng nơ-ron tích chập CNN

Mạng nơ-ron tích chập CNN là một công cụ mạnh mẽ trong xử lý và phân loại ảnh, bao gồm ba lớp chính: lớp chập, lớp tổng hợp và lớp kết nối đầy đủ, giúp trích xuất đặc trưng từ dữ liệu đầu vào Với khả năng tự học và tự động trích xuất đặc trưng, CNN đã đạt được nhiều thành tựu nổi bật trong lĩnh vực học sâu và trí tuệ nhân tạo Kiến trúc chi tiết của mạng nơ-ron tích chập CNN được trình bày ở hình 2.7.

Hình 2.7: Kiến trúc mạng CNN

Phân tích qua hình 2.8, kiến trúc của mạng nơ-ron tích chập CNN đầy đủ gồm những lớp sau:

• Lớp ảnh đầu vào (Input layer): Chứa ảnh đầu vào của mạng

Lớp tích chập (Convolutional layer) là thành phần quan trọng trong mạng nơ-ron tích chập, nơi các bộ lọc nhỏ được áp dụng và trượt qua ảnh để tạo ra các bản đồ đặc trưng Những bộ lọc này giúp phát hiện các đặc trưng khác nhau của ảnh, bao gồm cạnh, góc và đường cong, từ đó cải thiện khả năng nhận diện hình ảnh.

Lớp kích hoạt trong mạng nơ-ron đóng vai trò quan trọng bằng cách áp dụng hàm kích hoạt lên các giá trị trong bản đồ đặc trưng, giúp tạo ra các giá trị phi tuyến tính Hai hàm kích hoạt phổ biến thường được sử dụng là ReLU và Leaky ReLU, mang lại hiệu suất tối ưu cho mô hình.

Lớp tổng hợp (Pooling layer) là một thành phần quan trọng trong mạng nơ-ron, giúp giảm kích thước bản đồ đặc trưng bằng cách lấy giá trị trung bình hoặc giá trị lớn nhất của các pixel trong một khu vực xác định Bằng cách này, lớp tổng hợp lọc bỏ những giá trị không cần thiết, chỉ giữ lại những thông tin quan trọng, từ đó tối ưu hóa kích thước bản đồ đặc trưng và cải thiện hiệu suất của mô hình.

• Lớp kết nối đầy đủ (Fully connected layer): Lớp này được sử dụng để đưa ra dự đoán cuối cùng cho bài toán

• Lớp kết quả đầu ra (Output layer): Lớp này đưa ra dự đoán cuối của mạng CNN cho bài toán cụ thể

Mạng CNN có thể tích hợp nhiều loại lớp khác nhau, bao gồm lớp dropout để ngăn chặn hiện tượng overfitting, và lớp batch normalization để chuẩn hóa và cân bằng đầu vào.

2.4.3 Phép tích chập trong xử lý ảnh

Phép tích chập là một phép toán quan trọng trong xử lý ảnh, đặc biệt trong mạng CNN, giúp tìm kiếm các đặc trưng của ảnh Quá trình này diễn ra bằng cách trượt một bộ lọc qua toàn bộ hoặc một phần của ảnh Kết quả đầu ra C(x, y) được tính toán giữa hàm ảnh f(x, y) và bộ lọc k(x, y) có kích thước m × n.

Phép tích chập được thực hiện bằng cách sử dụng mặt nạ K dịch chuyển qua từng điểm ảnh, bắt đầu từ góc trái và di chuyển theo hàng ngang và hàng dọc đến điểm ngoài cùng bên phải Tại mỗi vị trí dịch chuyển, một điểm neo (anchor point) tương ứng với điểm ảnh đang xét được đặt, và giá trị của điểm ảnh này được tính toán Kết quả cuối cùng là một hàm ảnh mới có kích thước tương đương với hàm ảnh ban đầu f(x, y), trong đó giá trị của mỗi điểm ảnh là kết quả của phép tích chập tại thời điểm đó.

2.4.4 Bước nhảy trong mạng CNN

Bước nhảy (Stride) là một tham số quan trọng trong việc xác định khoảng cách di chuyển của bộ lọc trên đầu vào trong mạng CNN Khi mảng được tạo, số pixel được chuyển vào ma trận đầu vào theo giá trị bước để thực hiện phép nhân và tổng hợp thông tin từ các vùng ảnh Giá trị bước nhảy, có thể là 1, 2 hoặc 3, quyết định số lượng pixel dịch chuyển và ảnh hưởng trực tiếp đến kích thước đầu ra của mạng Hình ảnh 2.8 minh họa cách thức hoạt động của bước nhảy trong mạng CNN.

Hình 2.8: Quá trình thực hiện bước nhảy trong mạng CNN 2.4.5 Đệm trong mạng CNN

Phần đệm (Padding) là kỹ thuật thêm giá trị 0 vào viền ảnh để giữ nguyên kích thước ảnh gốc trước khi thực hiện phép tích chập Kỹ thuật này giúp giải quyết vấn đề ảnh bị thu nhỏ sau khi áp dụng các phép tích chập và hiện tượng chồng chéo khi ảnh đi qua nhiều lớp Việc thêm phần đệm không chỉ duy trì kích thước ảnh mà còn giúp lấy được các đặc trưng từ các biên Ví dụ về quá trình thêm bộ đệm trước khi áp dụng kernel được minh họa trong hình 2.9.

Hình 2.9: Ví dụ cho việc thêm bộ đệm trước khi vào lớp chập 2.4.6 Lấy mẫu trong mạng CNN

Lấy mẫu (Pooling) là một biến đổi quan trọng trong mạng CNN, giúp giảm kích thước ảnh, từ đó giảm độ phức tạp và tính toán của mạng Phép lấy mẫu này thực hiện việc lấy giá trị đại diện trong mỗi ô giao nhau Hai loại lấy mẫu phổ biến trong CNN bao gồm:

Max pooling là phương pháp lấy mẫu lớn nhất, trong đó giá trị lớn nhất trong mỗi ô được chọn, giúp trích xuất đặc trưng tối đa từ từng đầu vào Phương pháp này cho phép xác định các thông tin quan trọng nhất của đầu vào, nâng cao hiệu quả xử lý dữ liệu.

Hình 2.10: Minh họa cho lấy mẫu lớn nhất

- Lấy mẫu trung bình (Average Pooling): Lấy giá trị trung bình của mỗi ô

MẠNG HỌC SÂU YOLO

2.5.1 Khái niệm cơ bản về mạng học sâu YOLO

Trong quá khứ, các giải pháp như R-CNN và Fast R-CNN sử dụng phương pháp phát hiện khu vực để tìm các vùng chứa đối tượng trong ảnh, nhưng quá trình huấn luyện chậm và độ chính xác không cao Để khắc phục vấn đề này, mạng YOLO (You Only Look Once) đã ra đời, cải thiện đáng kể về tốc độ và độ chính xác trong nhận diện đối tượng Biểu đồ so sánh tốc độ và độ chính xác của mạng YOLO với các mô hình nhận diện khác được thể hiện trong hình 2.12.

Hình 2.12: FPS của mô hình mạng YOLO so với các mạng khác

Mạng YOLO được thiết kế để giải quyết các vấn đề nhận diện và định vị đối tượng trong ảnh và video, cho phép nhận diện nhiều vật thể khác nhau trong cùng một bức ảnh Nó xác định chính xác vị trí và kích thước của các đối tượng, đồng thời xử lý hiệu quả các ảnh có độ phân giải khác nhau, điều này làm cho việc ứng dụng mô hình vào thực tế trở nên thuận lợi hơn.

2.5.2 Tổng quan kiến trúc mạng YOLO

Kiến trúc mạng YOLO được xây dựng trên kiến trúc mạng CNN nhưng lại có vài đặc điểm khác hơn so với mạng R-CNN hay Faster R- CNN như sau:

Mạng YOLO nổi bật với tính năng định vị và phân loại đối tượng đồng thời, cho phép xử lý cả hai nhiệm vụ trong một lần chạy qua mạng Điều này khác biệt so với nhiều kiến trúc mạng khác, thường chia thành hai giai đoạn riêng biệt để giải quyết các vấn đề này.

Mạng YOLO sở hữu tính năng tự động tạo khung giới hạn cho các đối tượng mà nó phát hiện, giúp cải thiện độ chính xác trong việc nhận diện và phân loại hình ảnh.

Mạng YOLO xử lý toàn bộ ảnh đầu vào trong một lần, khác với các kiến trúc mạng khác thường chia nhỏ ảnh thành các vùng nhỏ hơn để xử lý.

Mô hình mạng YOLO cơ bản nhất, hay còn gọi là YOLOv1, được phát triển với 24 lớp nhằm trích xuất đặc trưng và dự đoán các hộp giới hạn chứa đối tượng trong ảnh Mỗi hộp giới hạn được xác định bởi 5 thông số: tọa độ (x, y) của tâm, chiều cao, chiều rộng và độ tin cậy (confidence score) Qua quá trình huấn luyện, các trọng số của mạng YOLOv1 tự điều chỉnh để giảm thiểu sai số dự đoán và nâng cao độ chính xác Kiến trúc tiêu biểu của mạng YOLO sơ khai được mô tả trong hình 2.13.

Hình 2.13: Kiến trúc của mạng YOLO đầu tiên

Kiến trúc của nó sẽ làm việc theo hướng như sau:

- Xử lý ảnh đầu vào về 448×448 trước khi đi qua lớp CNN

- Tiếp theo ảnh đầu vào sẽ được chia thành các ô lưới (grid cells) với kích thước cố định S×S (ở mô hình này là 7×7)

- Mỗi ô lưới sẽ dự đoán một số lượng các hộp giới hạn (bounding boxes) tương ứng với số lượng có thể xuất hiện trong ô lưới đó

Sau khi tính toán thông tin về bounding box và xác suất chứa đối tượng trong ô lưới, mạng YOLOv1 áp dụng bước non-max suppression để loại bỏ các bounding box trùng lặp, giữ lại những bounding box có xác suất chứa đối tượng cao nhất.

- Kết quả cuối cùng là các bounding box cùng với xác suất chứa đối tượng tương ứng

2.5.3 Một số phiên bản của mạng YOLO

Sau thành công của mô hình YOLOv1, các phiên bản tiếp theo như YOLOv2 đã được phát triển nhằm nâng cao độ chính xác và tốc độ xử lý Bài viết này sẽ tập trung vào những cải tiến và nâng cấp từ phiên bản YOLO sơ khai đến các phiên bản mới hơn.

Là phiên bản cải tiến của YOLOv1, có nhiều sự thay đổi và cải tiến như sau:

- Kiến trúc mạng: Sử dụng kiến trúc mạng darknet-19, với 19 lớp tích chập

- Sử dụng skip connection: Sử dụng skip connection giữa các lớp để kết nối thông tin từ các tầng thấp hơn sang các tầng cao hơn

Sử dụng anchor boxes thay vì grid cells giúp cải thiện khả năng dự đoán vị trí của đối tượng Các anchor boxes được thiết kế dựa trên kích thước của đối tượng trong quá trình huấn luyện, cho phép mô hình nhận diện và dự đoán chính xác các đối tượng có kích thước khác nhau.

YOLOv2 hỗ trợ kích thước ảnh đầu vào lớn hơn, giúp nâng cao khả năng phát hiện các đối tượng nhỏ và chi tiết hơn.

- Sử dụng batch normalization: Tăng tốc độ huấn luyện và độ chính xác b YOLOv3

- Kiến trúc mạng: Sử dụng mô hình darknet-53

Kỹ thuật SPP (Spatial Pyramid Pooling) cho phép mạng YOLOv3 xử lý hình ảnh với kích thước khác nhau mà không cần thay đổi kích thước đầu vào Điều này không chỉ giúp giảm thời gian xử lý mà còn nâng cao độ chính xác của mô hình.

The evaluation metric for the YOLOv3 model incorporates new measurement standards, combining Precision and Recall into a single metric known as mean Average Precision (mAP) This comprehensive measure provides a more holistic assessment of the model's accuracy compared to using Precision or Recall alone.

Mạng hình chóp đặc trưng (FPN) được áp dụng để trích xuất đặc trưng từ nhiều tỷ lệ khác nhau của hình ảnh, nâng cao khả năng phát hiện các đối tượng nhỏ hơn trong mô hình YOLOv3 và cải thiện độ chính xác của các dự đoán trong YOLOv4.

Phiên bản YOLOv4 phát triển dựa trên việc cải tiến mô hình YOLOv3, cụ thể như sau:

YOLOv4 cải tiến kiến trúc mạng bằng cách sử dụng CSPDarknet53, một phiên bản nâng cấp từ Darknet-53 của YOLOv3 Kiến trúc này kết hợp các tầng tích chập và skip connection, giúp tăng tốc độ tính toán và nâng cao độ chính xác.

YOLOv4 sử dụng từ 3 đến 4 anchor boxes ở mỗi tầng phát hiện, tăng cường số lượng này so với YOLOv3 để cải thiện độ chính xác trong việc phát hiện đối tượng.

GIỚI THIỆU THƯ VIỆN OPENCV VÀ FACE RECOGNITION

Thư viện OpenCV (Open Source Computer Vision) là một công cụ mã nguồn mở nổi bật và hiệu quả trong lĩnh vực thị giác máy tính và xử lý ảnh Cấu trúc của thư viện OpenCV được minh họa chi tiết trong hình 2.17.

Hình 2.17: Cấu trúc của thư viện OpenCV

Một số chức năng mà thư viện OpenCV cung cấp:

- Đọc và ghi ảnh và video: OpenCV hỗ trợ đọc và ghi các định dạng ảnh và video

OpenCV cung cấp nhiều phương pháp xử lý ảnh, bao gồm lọc thông tin, làm mịn, sắc nét, biến đổi hình học, cắt, ghép và chỉnh sửa các thuộc tính của ảnh.

- Nhận dạng vật thể: OpenCV có các công cụ nhận dạng vật thể như phát hiện khuôn mặt, nhận dạng biểu cảm khuôn mặt, phát hiện đối tượng

OpenCV cung cấp khả năng xử lý video thông qua việc áp dụng các phép biến đổi, phân tích khung hình, trích xuất vị trí và đặc trưng, cũng như tạo hiệu ứng video đa dạng.

OpenCV cung cấp khả năng xử lý ảnh và video trong thời gian thực, cho phép phát hiện và theo dõi đối tượng một cách hiệu quả Điều này giúp cải thiện trải nghiệm người dùng trong các ứng dụng cần xử lý video stream nhanh chóng và chính xác.

Thư viện Face Recognition là một công cụ mạnh mẽ phát triển trên ngôn ngữ Python, chuyên dùng để nhận dạng và phát hiện khuôn mặt trong ảnh và video Thư viện này đã được áp dụng rộng rãi trong nhiều lĩnh vực như nhận diện khuôn mặt, xây dựng hệ thống theo dõi và quản lý nhân khẩu, cũng như trong các dự án về thị giác máy tính và trí tuệ nhân tạo Đặc biệt, thư viện cho phép sử dụng tính năng nhận diện khuôn mặt với độ chính xác cao và tốc độ nhanh, mà không cần phải triển khai các mô hình phức tạp, giúp tối ưu hóa hiệu suất xử lý.

Các tính năng chính của thư viện face recognition này:

- Nhận dạng khuôn mặt: Thư viện cho phép xác định và phân loại các khuôn mặt trong ảnh hoặc video dựa trên các đặc trưng của khuôn mặt

Nhận diện khuôn mặt là công nghệ cho phép thư viện so sánh và xác định sự tương đồng giữa một khuôn mặt mới và các khuôn mặt đã được lưu trữ.

Thư viện áp dụng các mô hình học sâu để rút trích đặc trưng khuôn mặt, tạo ra vector đặc trưng (embeddings) nhằm thực hiện việc so sánh và nhận dạng hiệu quả.

THIẾT KẾ MÔ HÌNH

TỔNG QUAN VỀ MÔ HÌNH THIẾT KẾ

3.1.1 Yêu cầu thiết kế Để mô hình được đáp ứng được các mục tiêu đã được đề ra, những yêu cầu đặt ra cho mô hình như sau:

Mô hình mạng học sâu cho huấn luyện cần đạt độ chính xác cao, tốc độ nhanh và tương thích với phần cứng máy tính nhúng hiện tại Sử dụng mô hình YOLOv4-tiny mang lại nhiều ưu điểm, bao gồm độ chính xác khá cao trong khi vẫn giữ độ phức tạp thấp, giúp tăng tốc độ xử lý phù hợp với các máy tính nhúng có khả năng xử lý nhỏ và vừa.

Nhận diện khuôn mặt là công nghệ sử dụng mô hình rút trích đặc trưng từ các thư viện có sẵn, giúp cập nhật nhanh chóng và hiệu quả thông tin khuôn mặt của công nhân Độ chính xác của mô hình này phụ thuộc vào chất lượng ảnh của người cần định danh; ảnh có chất lượng tốt sẽ nâng cao gấp đôi hiệu quả nhận diện.

Giao diện xử lý phần cứng và người quản lý sẽ được phát triển bằng thư viện giao diện từ Python, nhằm đơn giản hóa việc nhúng các mô hình nhận diện Yêu cầu đặt ra là giao diện phải dễ sử dụng và thân thiện, phù hợp với mọi đối tượng người dùng.

Giao thức truyền và nhận dữ liệu giữa phần cứng và người dùng sẽ tập trung vào việc kết nối trực tiếp các chức năng thông qua giao thức TCP/IP, mà không cần sử dụng dữ liệu đám mây Phương pháp này đảm bảo việc truyền nhận dữ liệu nhanh chóng và an toàn, với dữ liệu được lưu trực tiếp trên bộ nhớ của phần cứng, giúp bảo vệ thông tin gửi và nhận không bị mất mát.

3.1.2 Nguyên lí hoạt động của mô hình

Mô hình hoạt động trên Jetson Nano được chia thành hai nhánh chính: nguyên lý hoạt động trên Jetson Nano và nguyên lý hoạt động trên giao diện tương tác người dùng Quy trình nhận diện trên Jetson Nano sẽ được thực hiện theo các bước tuần tự.

Để thu thập ảnh người dùng, quá trình sẽ bắt đầu khi người dùng nhấn nút trên phần cứng Ảnh chụp cần đảm bảo bao quát toàn bộ khuôn mặt cũng như trang phục bảo hộ của người dùng.

Sau khi chụp, ảnh sẽ được bộ phận xử lý (Jetson Nano) đưa vào các mô hình nhận diện Nếu ảnh không nhận diện được công nhân thuộc quản lý, hệ thống sẽ báo lỗi Ngược lại, dữ liệu về tên, thời gian và trạng thái an toàn sẽ được ghi lại và gửi đến giao diện hiển thị trên client.

Giao diện thông tin sẽ hiển thị các dữ liệu đã được xác minh, cho phép công nhân xem ảnh, thông tin cá nhân, thời gian vào làm và tình trạng trang phục bảo hộ Điều này đồng nghĩa với việc danh tính đã được xác minh thành công và thông tin chấm công của ngày hôm đó đã được cập nhật.

Giao diện xử lý client sẽ tích hợp nhiều tính năng độc đáo, bao gồm việc hiển thị dữ liệu từ Jetson và cập nhật thông tin liên quan đến công nhân Tóm lại, giao diện client sẽ có các chức năng chính như sau:

- Hiển thị danh sách chấm công theo ngày: Danh sách sẽ được cập

- Hiển thị danh sách công nhân: Hiển thị toàn bộ danh sách công nhân và đồng thời chức năng xóa công nhân trực tiếp trên danh sách

- Cập nhật công nhân mới: Gửi dữ liệu về công nhân mới, sẽ bao gồm cập nhật ảnh mới cho việc nhận diện khuôn mặt

- Chinh sửa thông tin công nhân: Cập nhật lại tên và ảnh mới cho công nhân

Từ nguyên lí trên, mô hình thiết kế sẽ được mô tả chi tiết sẽ được mô tả chi tiết ở hình 3.1:

Hình 3.1: Hình ảnh mô tả khái quát toàn bộ mô hình giám sát

THIẾT KẾ LƯU ĐỒ THUẬT TOÁN GIAO DIỆN TRÊN JETSON NANO

Để xây dựng mô hình nhận diện trên Jetson Nano, chúng ta sẽ phát triển hai mô hình kết hợp: mô hình nhận diện khuôn mặt của công nhân và mô hình mạng học sâu YOLO để nhận diện đồ bảo hộ Sau khi nhúng mô hình vào Jetson Nano, chúng ta sẽ tạo giao diện chụp ảnh, cho phép ảnh được đưa vào mô hình nhận diện để kiểm tra khuôn mặt và đồ bảo hộ Việc kiểm tra khuôn mặt là cần thiết trước khi lưu dữ liệu chấm công nhằm loại trừ những trường hợp không phải là công nhân của công xưởng.

Cuối cùng, sau khi hoàn tất quá trình nhận diện, thông tin kết quả sẽ được hiển thị trên màn hình Giao diện này sẽ cung cấp thông tin về tên công nhân, thời gian vào ra, ngày tháng và giờ, cùng với kết quả đánh giá nhận diện đồ bảo hộ Điều này đánh dấu sự kết thúc của quá trình nhận diện và xác nhận việc chấm công thành công.

3.2.2 Lưu đồ thuật toán cho mô hình xử lý trên Jetson Nano

Dựa trên ý tưởng thiết kế và các yêu cầu chức năng chính của mô hình xử lý trên Jetson Nano, lưu đồ thuật toán của mô hình được triển khai được thể hiện trong hình 3.2.

Hình 3.2: Lưu đồ thuật toán của mô hình xử lý nhận diện

Bắt đầu quá trình, cần liên hệ với client qua địa chỉ IP để đảm bảo luồng dữ liệu thông suốt Tiếp theo, hệ thống sẽ thu thập hình ảnh từ giao diện chụp ảnh thông qua video thời gian thực trên camera, giúp người dùng dễ dàng tương tác với mô hình Hình ảnh sau đó sẽ được đưa vào mô hình xử lý nhận diện, nơi khuôn mặt sẽ được kiểm tra xem có thuộc dữ liệu công nhân hay không Nếu không khớp, hệ thống sẽ gửi thông báo và dừng quá trình; nếu đúng, dữ liệu sẽ được ghi vào file CSV và gửi qua client để hiển thị trên giao diện quản lý Cuối cùng, hệ thống sẽ xuất ra giao diện thông báo nhận diện cho người dùng.

3.2.3 Lưu đồ thuật toán hiển thị kết quả nhận diện đồ bảo hộ của công nhân

Sau khi thiết lập giao diện xử lý ảnh từ camera của Jetson Nano, hình ảnh sẽ được đưa vào mô hình mạng học sâu YOLO để kiểm tra mức độ an toàn của công nhân Đồ bảo hộ cần đạt yêu cầu chất lượng, vì vậy công nhân phải luôn mặc đủ ba loại đồ bảo hộ cơ bản: nón bảo hộ, áo bảo hộ và găng tay Kết quả sẽ hiển thị “An toàn” nếu công nhân tuân thủ đầy đủ quy định về trang phục bảo hộ, ngược lại sẽ là “Không an toàn” nếu thiếu bất kỳ món nào Lưu đồ thuật toán kiểm tra nhận diện được trình bày trong hình 3.3.

THIẾT KẾ LƯU ĐỒ THUẬT TOÁN CH O GIAO DIỆN QUẢN LÍ

Sau khi hoàn thành thiết kế giao diện tương tác trên Jetson Nano, cần xây dựng một bộ công cụ cho phép cập nhật và chỉnh sửa dữ liệu công nhân, nhằm tăng tính linh hoạt cho hệ thống Giao diện cũng cần được thiết kế để hiển thị thông tin chấm công của công nhân trong ngày hiện tại và các ngày trước đó, giúp quản lý dễ dàng và hiệu quả hơn.

Mô hình giao diện này sử dụng phương pháp gửi gói tin qua ngõ socket để truyền dữ liệu giữa cơ sở dữ liệu trên Jetson và giao diện quản lý.

Tóm lại mô hình thiết kế sẽ có các chức năng chính bao gồm:

Danh sách công nhân sẽ được hiển thị trên giao diện quản lý thông qua kết nối socket, cho phép client lưu trữ và trình bày dữ liệu một cách dễ dàng Điều này giúp người quản lý theo dõi công nhân hiệu quả hơn Ngoài ra, chức năng xóa công nhân cũng được tích hợp trong danh sách, nâng cao tính tiện lợi trong quá trình quản lý.

Cập nhật thông tin công nhân mới là một bước quan trọng trong quy trình quản lý xưởng Chúng ta cần cung cấp tên và ảnh của công nhân để đảm bảo việc nhận diện chính xác Việc này không chỉ giúp tăng cường an ninh mà còn nâng cao hiệu quả làm việc trong môi trường sản xuất.

Chỉnh sửa thông tin công nhân là một bước quan trọng, bao gồm việc cập nhật tên và ảnh của công nhân để đảm bảo khả năng nhận diện chính xác Việc này không chỉ giúp cải thiện quy trình xử lý mà còn nâng cao hiệu quả quản lý nhân sự.

Danh sách chấm công hàng ngày sẽ được gửi liên tục từ Jetson Nano qua socket, đảm bảo cập nhật theo đúng ngày hiện tại Bên cạnh đó, người dùng cũng có thể xem lại các ngày chấm công cũ trong tháng để thuận tiện cho việc quản lý.

3.3.3 Lưu đồ thuật toán chức năng thêm công nhân mới:

Theo định hướng chức năng thêm công nhân mới ở trên, chúng ta có lưu đồ thuật toán xử lý như sau:

Hình 3.4: Lưu đồ thuật toán của chức năng thêm công nhân mới

Theo lưu đồ thuật toán, trước khi thực hiện chức năng, cần kiểm tra xem server có hoạt động hay không, vì client và server phải có kết nối để truyền dữ liệu Sau khi khởi động server, kiểm tra ảnh đầu vào và tên; nếu ảnh chưa nạp hoặc tên chưa điền, sẽ báo lỗi Nếu tất cả điều kiện được đáp ứng, ảnh sẽ được xử lý tại client, trích xuất đặc trưng, nén thành file và gửi toàn bộ dữ liệu (tên, ảnh, file xử lý) cho server qua socket Để tăng tốc độ truyền, dữ liệu sẽ được nén trước khi gửi.

3.3.4 Lưu đồ thuật toán chức năng cập nhật thông tin

Theo định hướng chức năng cập nhật thông tin, cần chú ý đến hai yếu tố chính: thay đổi ảnh đại diện và tên của công nhân Hình 3.5 minh họa lưu đồ thuật toán cho quá trình cập nhật ảnh đại diện của công nhân.

Hình 3.5: Lưu đồ thuật toán của chức năng cập nhật ảnh của công nhân

Để cập nhật ảnh công nhân, lưu đồ thuật toán yêu cầu chờ phản hồi từ server trước khi thực hiện Client sẽ gửi yêu cầu kèm theo tên công nhân đến server để tìm kiếm dữ liệu Nếu server không tìm thấy tên trong cơ sở dữ liệu, client sẽ thông báo cập nhật thất bại Ngược lại, nếu tên được xác nhận, ảnh sẽ được gửi đến server và cập nhật thành công cho công nhân.

Việc cập nhật tên cho công nhân tương tự như cập nhật ảnh, bắt đầu bằng việc gửi tín hiệu từ client và chờ phản hồi từ server Sau khi kiểm tra, toàn bộ thông tin của công nhân có tên cần thay đổi sẽ được cập nhật Dưới đây là lưu đồ thuật toán cho quy trình này.

Hình 3.6: Lưu đồ thuật toán của chức năng cập nhật tên cho công nhân 3.3.5 Lưu đồ thuật toán chức năng hiển thị danh sách và xóa công nhân

Chức năng hiển thị danh sách nhân viên sẽ lấy dữ liệu từ server, lưu trữ tạm thời và hiển thị trên giao diện để quản lý dễ dàng Ngoài ra, chúng ta sẽ thiết kế một nút xóa để xóa trực tiếp công nhân cũ khi chọn tên công nhân từ danh sách Kết hợp hai tính năng này, chúng ta sẽ có lưu đồ thuật toán rõ ràng.

Hình 3.7: Lưu đồ thuật toán chức năng hiển thị danh sách và xóa

Khi bắt đầu, client sẽ chờ phản hồi từ server Sau khi kết nối thành công, server gửi danh sách công nhân tới client để hiển thị trên giao diện Nếu có yêu cầu xóa công nhân trực tiếp từ danh sách, client sẽ gửi request đến server để xóa dữ liệu nhân viên đó và cập nhật ngay danh sách trên giao diện hiển thị.

3.3.6 Lưu đồ thuật toán cho chức năng hiển thị dữ liệu chấm công:

Chức năng hiển thị dữ liệu chấm công cho phép công nhân được chấm công theo ngày, với mỗi lần chấm công sẽ tạo ra một mốc thời gian mới cho từng công nhân Dữ liệu chấm công từ server được gửi liên tục đến client để đảm bảo việc hiển thị thông tin Trong trường hợp hiển thị dữ liệu của ngày hôm nay, thông tin sẽ được cập nhật liên tục qua phương pháp gửi dữ liệu theo khoảng thời gian nhất định Ngược lại, nếu quản lý cần truy xuất dữ liệu từ những ngày trước, danh sách sẽ ngay lập tức được thay thế bằng dữ liệu của ngày đã chọn Chức năng này được minh họa qua lưu đồ thuật toán hình 3.8.

Hình 3.8: Lưu đồ thuật toán gửi và hiển thị CSV

Theo lưu đồ thuật toán, việc kiểm tra phản hồi từ server là cần thiết để đảm bảo ổn định đường truyền Chúng ta cần xác định ô nhập liệu có thuộc ngày hôm nay hay ngày cũ để gửi tín hiệu yêu cầu theo yêu cầu của người quản lý về ngày chấm công Khi chương trình khởi động, file csv của ngày hôm nay sẽ được tải và cập nhật liên tục để kiểm soát dữ liệu, tránh sai sót cho đến khi mất kết nối với server Để hiển thị dữ liệu cũ, người dùng chỉ cần nhập thông tin vào ô tìm kiếm, và dữ liệu sẽ được hiển thị tương ứng.

THỰC HIỆN MÔ HÌNH

MÔ HÌNH NHẬN DIỆN KHUÔN MẶT

4.1.1 Quá trình trích xuất vec-tơ đặc trưng: Để nhận diện được khuôn mặt của của một cá nhân nào đó để dùng cho việc định dạng, cần phải hiểu quy trình chặt chẽ để tạo ra các vec-tơ đặc trưng hay được gọi là vec-tơ chứa dữ liệu sai khác giữa các khuôn mặt ở nhau để, quá trình xử lí dữ liệu đầu vào được thể thiện ở hình 4.1 như sau:

Hình 4.1: Các bước xử lý để tạo ra tệp tin chứa Embeddings

Từ sơ đồ này chúng ta sẽ phân tích yêu cầu của từng bước xử lí của quá trình trên như sau:

Khi chọn ảnh chân dung đầu vào, cần đảm bảo rằng khuôn mặt rõ ràng và không bị ảnh hưởng bởi ánh sáng quá chói hoặc các yếu tố làm giảm chất lượng hình ảnh.

Để xác định khuôn mặt trong hình ảnh, chúng ta sử dụng các thuật toán nhằm xác định vị trí khuôn mặt của cá nhân Các yếu tố quan trọng cần chú ý bao gồm vị trí top (khoảng cách từ mép trên ảnh đến điểm trên khuôn mặt), vị trí bot (khoảng cách từ mép dưới ảnh đến điểm dưới khuôn mặt), vị trí left (khoảng cách từ mép trái ảnh đến điểm trái khuôn mặt) và vị trí right (khoảng cách từ mép phải ảnh đến điểm phải khuôn mặt) Bước này sẽ được minh họa trong hình 4.2 dưới đây.

Hình 4.2: Định vị khuôn mặt trong ảnh

Tiền xử lý khuôn mặt là bước quan trọng trong việc nâng cao chất lượng ảnh trước khi trích xuất Các phương pháp như xử lý ảnh xám và tăng độ sáng cho ảnh được áp dụng để cải thiện độ rõ nét và chi tiết của khuôn mặt.

Nhúng khuôn mặt và xuất Embeddings (véc-tơ đặc trưng) là bước quan trọng trong việc phân tích khuôn mặt, sử dụng các mô hình học sâu từ thư viện nhận diện Các đặc điểm quan trọng được trích xuất bao gồm khoảng cách giữa hai mắt, chiều dài từ trán tới cằm, khoảng cách giữa mũi và miệng, độ sâu hốc mắt, hình dạng gò má, và đường viền môi, tai và cằm Véc-tơ đặc trưng sẽ chứa các đặc điểm này, như thể hiện trong hình 4.3.

Hình 4.3: Véc-tơ đặc trưng trích xuất từ khuôn mặt

• Nén dữ liệu vào pickle: Nén véc-tơ đặc trưng vào tệp chứa để dùng

Kết luận: Quy trình trích xuất véc-tơ đặc trưng cho nhận diện khuôn mặt cho phép sử dụng nhanh chóng một ảnh chân dung để xác minh danh tính công nhân, đồng thời dễ dàng nâng cấp và chỉnh sửa hệ thống.

4.1.2 Quá trình nhận diện khuôn mặt

Chúng ta sẽ áp dụng mô hình để so sánh hai véc-tơ đặc trưng: một từ dữ liệu đã lưu và một từ dữ liệu thu thập trực tiếp từ camera Quá trình này sẽ giúp xác minh khuôn mặt theo quy trình được mô tả trong hình 4.4.

Hình 4.4: Các bước xử lý để nhận diện khuôn mặt 4.2 SỬ DỤNG MẠNG YOLO HUẤN LUYỆN MÔ HÌNH GIÁM SÁT 4.2.1 Chuẩn bị tập dữ liệu huấn luyện:

Trong bài toán giám sát đồ bảo hộ cho công nhân, chúng ta sẽ áp dụng mô hình mạng YOLO để nhận diện ba loại chính: nón bảo hộ, áo bảo hộ và găng tay bảo hộ Quy trình chuẩn bị tập dữ liệu huấn luyện bao gồm hai bước quan trọng: thu thập và tiền xử lý dữ liệu Bài viết này sẽ mô tả chi tiết quá trình thu thập và xử lý dữ liệu nhằm tạo ra tập dữ liệu sẵn sàng cho việc huấn luyện.

Để thu thập ảnh cho dữ liệu huấn luyện, chúng ta cần sử dụng các tập dữ liệu có sẵn hoặc quay video trực tiếp từ công xưởng để trích xuất những hình ảnh liên quan đến mô hình nhận diện mong muốn Đặc biệt, trong mô hình giám sát bảo hộ, cần thu thập ảnh dữ liệu chứa các hạng mục như mũ bảo hộ, áo bảo hộ và găng tay bảo hộ Ảnh cần phải rõ nét và đảm bảo độ xuất hiện của các lớp vật thể để đạt chất lượng nhận diện tốt nhất Dưới đây là một số ví dụ về hình ảnh thu thập được từ tập ảnh dữ liệu.

Hình 4.5: Ảnh thu thập cho quá trình huấn luyện

Đã thu thập 6000 ảnh được chọn lọc kỹ lưỡng từ các nhóm đối tượng nhằm đạt hiệu quả tối ưu Biểu đồ phân chia dữ liệu huấn luyện và dữ liệu thử nghiệm được trình bày trong hình 4.4.

Hình 4.6: Biểu đồ thể hiện phân chia ảnh huấn luyện và ảnh thực

Tiền xử lý dữ liệu

Sau khi chuẩn bị xong dữ liệu ảnh cho việc huấn luyện, bước tiếp theo là tiền xử lý dữ liệu, bao gồm định dạng lại và dán nhãn phù hợp Kết quả sẽ là tệp txt tương ứng với ảnh đầu vào, chứa các thông số về x, y, w, h và confidence score, giúp mạng YOLO xác định vị trí đối tượng cần huấn luyện trong ảnh Để thực hiện việc dán nhãn cho các ảnh trong tập dữ liệu, chúng ta có thể sử dụng công cụ YoloLabel.

Theo hình 4.4, ảnh được đưa vào phần mềm để đánh dấu, trong đó cần chú ý rằng các ô chứa đối tượng phải tuân theo đúng các lớp huấn luyện nhằm tránh sai lệch dữ liệu Kết quả sẽ bao gồm nhãn (các số 0, 1, 2…) để phân biệt các lớp và các trọng số x, y, w, h cho từng ô, giúp mạng YOLO nhận diện chính xác Ví dụ về việc tạo ra các bounding box được minh họa trong hình 4.5.

Hình 4.8: Tệp tin txt chứa các thông số cần thiết 4.2.2 Thiết lập tệp cấu hình huấn luyện cho mô hình YOLO

Sau khi cài đặt và biên dịch thành công nền tảng Darknet cho mô hình YOLO, bước tiếp theo là cấu hình phù hợp với yêu cầu của mô hình Kiến trúc của toàn bộ mạng trong Darknet liên quan đến việc lựa chọn phiên bản Tùy vào phiên bản, tệp cấu hình trong thư mục darknet/cfg/ sẽ khác nhau, nhưng chúng ta chỉ cần chú ý đến những thuộc tính quan trọng sau đây.

Bảng 4.1: Các thuộc tính cần lưu ý trong tệp cấu hình huấn luyện

Thuộc tính Ý nghĩa Ví dụ batch

Xác định số lượng ảnh được load vào trong bộ nhớ khi huấn luyện 1 lần batchd tức là kích thước mỗi lần load là

Xác định số lượng ảnh mỗi mini-batch được chia ra từ batch

Batchd, subvision tức là có 64/16=8 ảnh trên 1 mini-batch width, height, channel

Mỗi ảnh sẽ được thay đổi kích thước theo một chiều dài và chiều rộng và số kênh (màu RGB)

Ví dụ thay đổi kích thước ảnh thành

416x416, chúng ta có thể cài đặt widthA6, heightA6 và mặc định channel=3 max_batches

Xác định số lượng batch tối đa mà mạng sẽ được huấn luyện, phụ thuộc vào kích thước dữ liệu

Max_Batches sẽ có giá trị không được thấp hơn số lượng ảnh và thông thường sẽ bằng 2000 * số lượng class steps

Xác định các epoch mà mô hình sẽ đi qua trong quá trình huấn luyện

Thông thường steps sẽ tương ứng với số lượng batch trong quá huấn luyện, như max batches`00 thì có thể đặt stepH00,

Để tối ưu hóa mô hình, cần thiết lập lại lớp fitter cho các lớp chập (convolutional) sao cho phù hợp với kích thước và tỷ lệ của các đối tượng trong ảnh đầu vào, theo công thức filters = (classes + 5) x 3 Mặc dù có thể tùy chỉnh cấu trúc mạng để nâng cao độ chính xác, bài viết này chỉ tập trung vào việc thực hiện mô hình theo hướng thực tế, do đó chỉ sử dụng các lớp thông thường đã được xây dựng trước.

4.2.3 Tải tập huấn luyện và thử nghiệm cho mô hình YOLO

Sau khi thiết lập tệp cấu hình cho YOLO, bước tiếp theo là chuẩn bị dữ liệu huấn luyện để mô hình có thể nhận diện chính xác các tệp ảnh và tệp txt định vị đã được đánh dấu Đầu tiên, kết nối Google Drive với môi trường huấn luyện Google Colab, sau đó tải ảnh đã nén từ drive cá nhân vào thư mục data/obj Tiếp theo, tạo các tệp train.txt và test.txt, lưu đường dẫn đến các tệp tin đã giải nén Để mô hình hiểu rõ dữ liệu huấn luyện và thử nghiệm, cần cấu hình tệp obj.data và tệp obj.names để xác định các đối tượng được gán nhãn Việc lưu trữ các tệp này một cách cẩn thận là rất quan trọng để tránh gây lỗi cho mô hình.

Bảng 4.2: Thiết lập cho 2 tệp obj.data và obj.names

Classes = “Số lượng nhãn cần huấn luyện”

Train= “Đường dẫn tới dữ liệu huấn luyện”

Valid= “Đường dẫn đến dữ liệu thực nghiệm” Names= “Đường dẫn tới nhãn đặt tên”

Backup= “Đường dẫn tới vị trí lưu kết quả”

Obj.names “Tên các đối tượng cần nhận diện”

THIẾT KẾ GIAO DIỆN CHO MÔ HÌNH

Sau khi hoàn tất việc chuẩn bị hai yếu tố quan trọng của mô hình, bao gồm nhận diện khuôn mặt sử dụng thị giác máy tính và mô hình học sâu giám sát an toàn lao động, bước tiếp theo là thiết kế các giao diện của hệ thống như đã đề cập ở chương 3 Hệ thống sẽ bao gồm giao diện xử lý nhận diện trên phần cứng Jetson Nano và giao diện quản lý.

4.3.1 Giao diện xử lý trên Jetson Nano:

Giao diện chính của ứng dụng sẽ hiển thị video thời gian thực và có nút chụp ảnh, cho phép người dùng lấy ảnh từ camera Khi chụp ảnh, sẽ có độ trễ khoảng 5 giây để công nhân có thể lùi ra sau, đảm bảo độ bao quát tối ưu cho quá trình nhận diện thông qua hai mô hình xử lý ảnh.

Hình 4.9: Giao diện chính trên Jetson Nano

1 Giao diện cửa sổ video thời gian thực: Được lấy từ camera, giúp công nhân có thề nhìn thấy bản thân trong khung hình, nhằm dễ dàng tương tác và đảm bảo ảnh được chính xác Bên cạnh đó còn hiển thị thêm số lượng frame hiện tại ở góc trái

2 Nút chụp ảnh: Công nhân thực hiện tương tác với nút này trên giao diện để lấy ảnh từ camera

3 Nút thoát giao diện: Thoát khỏi giao diện hiện tại

Giao diện hiển thị thông tin khi nhận diện thành công

Sau khi xử lý ảnh thành công, giao diện xác nhận sẽ hiển thị bao gồm ảnh chân dung, thời gian và trạng thái an toàn lao động của công nhân.

Hình 4.10: Giao diện xác minh nhận diện thành công

1 Khối chứa ảnh chân dung: Ảnh chân dung của công nhân

2 Khối tên công nhân: Hiển thị tên của công nhân

3 Khối hiển thị thời gian: Hiển thị ngày và thời gian lúc nhận diện thành công

4 Khối hiển thị kết quả nhận diện: Hiển thị kết quả giám sát đồ bảo hộ của công nhân, ở đây nếu nhận diện được mũ, áo hoặc găng tay bảo hộ thì ô chứa sẽ màu xanh và ngược lại sẽ là màu đỏ Kế tiếp thì kết quả nhận diện ở phần “RESULT: ” sẽ theo lưu đồ thuật toán ở hình 3.3

5 Nút xác nhận: Xác nhận đã kiểm tra thông tin và thoát khỏi giao diện

Chúng ta cần phát triển một giao diện quản lý cho phép cập nhật thông tin công nhân và hiển thị danh sách chấm công theo thiết kế ban đầu Giao diện này sẽ bao gồm menu chính và giao diện danh sách, giúp người dùng dễ dàng truy cập và quản lý dữ liệu.

Giao diện menu chính sẽ bao gồm các nút bấm cho từng tính năng, giúp người quản lý dễ dàng theo dõi danh sách chấm công Bên cạnh đó, sẽ có ô nhập liệu để hiển thị những ngày cũ hơn Tất cả những tính năng này sẽ được tích hợp trong thiết kế của giao diện menu chính.

Hình 4.11 Giao diện menu chính

1 Khối chứa thông tin chấm công: Danh sách dưới dạng CSV lấy từ Jetson Nano sẽ được hiển thị lên khối thông tin chấm công, ở đây sẽ hiển thị các cột bao gồm: Name (Tên), Time (Thời gian vào), Hemet (Trạng thái mặc nón bảo hộ), Vest (Trạng thái mặc áo bảo hộ), Gloves (Trạng thái mặc găng tay bảo), Note (Kết quả giám sát)

2 Thanh hiển thị thời gian hiện tại: Hiển thị thời gian của CSV hiện tại đang được hiển thị

3 Ô nhập liệu thay đổi ngày hiển thị: Thay đổi thời gian hiển thị hiện tại, dùng cho việc xem lại các ngày chấm công cũ

4 Nút xác nhận hiển thị: Xác nhận hiển thị thời gian CSV tương ứng

5 Nút hiển thị danh sách công nhân: Dùng cho việc hiển thị giao diện danh sách công nhân

6 Nút thêm công nhân mới: Dùng cho việc hiển thị giao diện thêm công nhân mới

7 Nút cập nhật thông tin công nhân: Dùng cho việc hiển thị giao diện cập nhật công nhân mới

8 Nút khởi động lại phần cứng: Dùng cho việc tái khởi động phần cứng từ xa

9 Nút thoát giao diện: Thoát khỏi giao diện quản lí

Giao diện chức năng hiển thị danh sách

Giao diện sẽ hiển thị danh sách thành viên và cho phép xóa thành viên dựa trên lưu đồ thuật toán đã trình bày ở chương 3 Danh sách này sẽ xuất hiện khi người dùng nhấn vào nút “List Employee” Thiết kế giao diện được thực hiện với mục tiêu thân thiện và dễ sử dụng.

Hình 4.12: Giao diện hiển thị danh sách công nhân

1 Khối chứa danh sách công nhân: Hiển thị danh sách công nhân dưới dạng danh sách

3 Nút xác nhận: Xác nhận đã kiểm tra danh sách xong và đóng danh sách

Giao diện chức năng cập nhật công nhân mới

Sau khi nhấn nút “Add Employee” trên màn hình chính, giao diện sẽ hiển thị công cụ cập nhật danh sách công nhân Giao diện này bao gồm các chức năng thiết kế như ô nhập liệu tên, thêm ảnh và nút gửi gói tin dữ liệu mới để cập nhật cho Server.

Hình 4.13: Giao diện cập nhật công nhân mới

1 Khối chứa ảnh: Dùng để hiển thị ảnh công nhân để dễ dàng kiểm soát ảnh của công nhân

2 Ô nhập tên công nhân: Dùng cho việc nhập tên công nhân mới

3 Khối chức năng: Gồm các chức năng chính bao gồm: Add Photo (Thêm ảnh vào), Add Employee (Gửi thông tin công nhân đến dữ liệu), Close (Thoát giao diện)

Giao diện chức năng chỉnh sửa thông tin cho công nhân

Giao diện cập nhật thông tin công nhân sẽ xuất hiện khi người dùng nhấn nút “Update Info” trên màn hình chính Giao diện này bao gồm đầy đủ các chức năng thiết kế như ô nhập liệu tên, thêm ảnh, cũng như các tùy chọn chỉnh sửa tên và ảnh.

Hình 4.14: Giao diện chỉnh sửa thông tin cho công nhân

1 Khối chứa ảnh: Dùng để hiển thị ảnh công nhân để dễ dàng kiểm soát ảnh của công nhân

2 Ô nhập tên công nhân: Dùng cho việc nhập tên công nhân cần tìm kiếm

3 Khối chức năng: Gồm các chức năng chính bao gồm: Add Photo (Thêm ảnh vào), Edit Photo (Cập nhật ảnh của công nhân đó đến dữ liệu), Edit Name (Cập nhật lại tên cho công nhân đó), Close (Thoát giao diện).

KẾT QUẢ VÀ ĐÁNH GIÁ

KẾT QUẢ MÔ HÌNH NHẬN DIỆN KHUÔN MẶT

Sau khi hoàn thành việc lập trình mô hình xử lý trích xuất đặc trưng ảnh cho nhận diện, chúng ta có thể đưa ra những đánh giá quan trọng Một trong những ưu điểm nổi bật là khả năng nhận diện chính xác và nhanh chóng, giúp cải thiện hiệu suất trong các ứng dụng thực tiễn Mô hình này cũng cho thấy tính linh hoạt cao, có thể áp dụng cho nhiều loại dữ liệu hình ảnh khác nhau Thêm vào đó, việc tối ưu hóa quy trình xử lý giúp giảm thiểu thời gian và tài nguyên cần thiết, mang lại hiệu quả kinh tế cho các dự án sử dụng công nghệ này.

• Đáp ứng chức năng định danh với độ chính xác cao

• Cập nhật đơn giản, chỉ cần ảnh chân dung phù hợp với yêu cầu của mô hình thì có thể nhận diện dễ dàng

• Nhận diện chính xác, phù hợp với mục tiêu của mô hình

• Cấu trúc chương trình không quá phức tạp, đáp ứng được phần cứng hướng đến

• Độ chính xác của đối tượng phụ thuộc khá nhiều vào ảnh chân dung

• Nhận diện không thực sự tốt khi trong môi trường quá sáng hoặc quá râm

Mô hình nhận diện đối tượng đạt kết quả tốt với chỉ một bức ảnh, thể hiện khả năng phản hồi nhanh và chính xác Hình 5.1 minh họa ví dụ về việc nhận diện chỉ qua chân dung.

KẾT QUẢ MÔ HÌNH HUẤN LUYỆN

Trong mô hình mạng YOLO, chúng ta sẽ tập trung vào các phiên bản YOLOv4, bao gồm YOLOv4 và YOLOv4-tiny Bài viết sẽ so sánh các phiên bản này để tìm ra giải pháp tối ưu nhất cho mô hình.

Sau khi hoàn tất cấu hình tập tin huấn luyện cho mô hình, bước tiếp theo là bắt đầu quá trình huấn luyện sử dụng tập ảnh huấn luyện và ảnh kiểm tra trên Google Colab.

Hình 5.2: Quá trình huấn luyện trên Google Colab

Dựa trên thời gian huấn luyện của hai mạng YOLOv4 và YOLOv4-tiny trên Google Colab, thời gian trung bình để huấn luyện hai mô hình này đã được tổng hợp trong bảng 4.4.

Bảng 5.1: Thời gian huấn luyện hai mô hình

Mô hình YOLOv4 YOLOv4-tiny

Thời gian 10 tiếng 32 phút 2 tiếng 34 phút

5.2.2 Kết quả về độ chính xác của hai mô hình YOLOv4 và YOLOv4- tiny

Kết quả huấn luyện mô hình YOLOv4 với độ phân giải 416x416 cho nhận diện đồ bảo hộ sẽ được đánh giá dựa trên độ chính xác của từng lớp Toàn bộ kết quả sẽ được trình bày trong hai bảng 5.2 và 5.3.

Bảng 5.2: Độ chính xác trung bình từng đối tượng của YOLOv4

Lớp TP FP Độ chính xác (%)

Bảng 5.3: Kết quả nhận diện của mô hình YOLOv4

Precision (%) 87 Recall (%) 58 F1-score (%) 68 Average IoU (%) 76.09 mAP (%) 72.31

Thực hiện huấn luyện tương tự với mạng YOLOv4-tiny, kết quả thu được ở bảng 5.4 và bảng 5.5 như sau:

Bảng 5.4: Độ chính xác trung bình từng đối tượng của YOLOv4-tiny

Lớp TP FP Độ chính xác

Bảng 5.5: Kết quả nhận diện của mô hình YOLOv4-tiny

Sau khi hoàn tất quá trình huấn luyện, chúng ta sẽ kiểm tra độ chính xác của tệp weights đã được trả về để đánh giá hiệu suất của mô hình trên tập huấn luyện Kết quả thử nghiệm mô hình trên ảnh thử nghiệm sẽ được trình bày dưới đây.

Hình 5.3: Kết quả nhận diện trên ảnh của mô hình giám sát sử dụng mạng YOLOv4-tiny

Kết luận, mô hình YOLOv4 thông thường mang lại độ chính xác cao hơn YOLOv4-tiny, nhưng có kích thước lớn và tốc độ xử lý chậm, chỉ phù hợp với phần cứng có GPU mạnh Ngược lại, YOLOv4-tiny mặc dù có các thông số đánh giá thấp hơn một chút, nhưng có kích thước nhỏ gọn, tốc độ khung hình cao và có thể được ứng dụng trên phần cứng tầm trung, do đó, nó là giải pháp hợp lý cho những ứng dụng cần độ chính xác tương đối mà không yêu cầu phần cứng quá mạnh.

KẾT QUẢ MÔ HÌNH THỰC TẾ

5.3.1 Cấu hình phần cứng của bộ phát triển Jetson Nano B01

Bộ phát triển NVIDIA Jetson Nano B01 là phiên bản nâng cấp của bo mạch Jetson Nano A02, mang đến nhiều cải tiến nhằm cải thiện trải nghiệm phát triển ứng dụng trí tuệ nhân tạo và máy học trên thiết bị nhúng.

Hình 5.4: Hình ảnh minh họa về phần cứng Jetson Nano B01

Cấu hình kỹ thuật của phần cứng Jetson Nano B01 được trình bày dưới đây nhằm chứng minh tính phù hợp cho việc nhúng mô hình huấn luyện và giao diện, như được mô tả trong bảng 4.9.

Bảng 5.6: Cấu hình kĩ thuật của phần cứng Jetson Nano B01

Cấu hình GPU 128 lõi Maxwell

Cấu hình CPU Quad-core ARM A57 @ 1.43 GHz RAM 4 GB 64-bit LPDDR4 đạt tốc độ 25.6 GB/s

Kết nối không dây Wi-Fi 802.11ac và Bluetooth 4.2

Nguồn Điện áp 5V, dòng điện tối thiểu 2A

5.3.2 Kết quả chạy mô hình thực tế trên Jetson Nano B01:

Sau khi hoàn thành xây dựng và thiết kế mô hình, việc đánh giá hiệu quả của mô hình là rất quan trọng Để kiểm nghiệm hoạt động thực tế, chúng ta cần chuẩn bị các yếu tố cần thiết Mô hình thử nghiệm thực tế sử dụng Jetson Nano B01 phiên bản 4GB, kết hợp với màn hình LCD và camera, như được minh họa trong hình dưới đây.

Hình 5.5: Mô hình kết nối thực tế

Sau khi hoàn tất việc kết nối toàn bộ mô hình, bước tiếp theo là thử nghiệm quá trình xử lý nhận diện trên Jetson Nano Quá trình này bao gồm việc nhận diện hình ảnh qua camera, hiển thị kết quả và gửi gói tin tới giao diện quản lý trên máy Windows.

• Bấm nút capture (chụp) để tiến hành lấy ảnh từ camera

Hình 5.6: Thực hiện thao tác chụp ảnh

• Đợi 5 giây sau khi bấm để đảm bao bao quát hết được người công nhân

Hình 5.7: Chờ đợi 5 giây trước khi lấy ảnh xử lý

Giao diện kết quả chấm công đã hiển thị thành công, đồng thời cho thấy người lao động đang mặc đồ bảo hộ, cụ thể là chỉ có nón bảo hộ và trạng thái an toàn hiện tại là không đảm bảo.

Hình 5.8: Kết quả xử lý trên LCD kết nối 5.3.3 Kết quả chạy mô hình trên giao diện quản lí

Hiển thị thời gian chấm công của công nhân trên giao diện quản lý Windows theo thiết kế đã định Để tạo mối liên kết giữa server và client, cần thiết lập IP giống nhau Sau khi liên kết thành công, kết quả sẽ được trả về dưới dạng giao diện như đã mô tả.

Hình 5.9: Hiển thị kết quả lên giao diện quản lí

Chúng ta cần tiến hành thử nghiệm việc cập nhật công nhân mới từ giao diện quản lý lên Jetson Nano, nhằm đảm bảo khả năng cập nhật dữ liệu thông qua socket.

• Xóa công nhân mẫu Ngô Trung Nguyên để tiến hành cập nhật lại

Hình 5.10: Xóa công nhân Ngô Trung Nguyên

Sử dụng giao diện cập nhật công nhân để gửi dữ liệu cho Jetson Nano bằng cách cung cấp ảnh chân dung đã lưu trữ trước đó Lưu ý rằng ảnh cần phải rõ ràng và hiển thị khuôn mặt của người cần cập nhật.

Hình 5.11: Cập nhật công nhân mới cho dữ liệu

Hình 5.12: Kiểm tra dữ liệu cập nhật thành công

Cuối cùng, chúng tôi đã thử nghiệm việc thay đổi ảnh đại diện và tên công nhân trên giao diện quản lý, đồng thời kiểm tra xem việc cập nhật trên Jetson Nano đã thành công hay chưa.

• Truy cập vào thông tin của công nhân bằng thanh tìm kiếm và cập nhật lại ảnh cho công nhân

Hình 5.13: Chỉnh sửa ảnh của công nhân

• Chỉnh sửa lại tên của công nhân để xem sự thay đổi

Kiểm tra sự thay đổi ảnh và tên trên Jetson Nano cho thấy rằng cả hai đã được cập nhật thành công từ giao diện quản lý.

Hình 5.15: Kết quả dữ liệu đã được cập nhật thành công

Ngày đăng: 08/12/2023, 15:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w