OpenMV
Khiên
Ống kính
Người máy
Sách
Băng hình
Tải xuống
Tài liệu
Diễn đàn
OpenMV.io
GithubTháng 4 năm ngoái, sản phẩm mới của chúng tôi OpenMV4 H7 Plus đã chính thức ra mắt. Hôm nay, tôi sẽ giới thiệu với mọi người tính năng mới của OpenMV4 H7 Plus – sử dụng trang web trực tuyến EdgeImpulse để tự đào tạo mạng thần kinh nhân tạo cho việc phân loại và nhận diện.
Trong hướng dẫn này, bạn sẽ sử dụng máy học để xây dựng một hệ thống nhận diện, hệ thống này có thể nhận diện khuôn mặt có đeo khẩu trang hay không thông qua camera thông minh OpenMV4 H7 Plus, tức là thực hiện phân loại hình ảnh.

EdgeImpulse là một trang web cung cấp dịch vụ đào tạo mô hình mạng nơ-ron trực tuyến cho thiết bị nhúng, đây là đối tác của SingTown chúng tôi, đồng thời cũng là đối tác chính thức của STMicroelectronics. Hiện tại EdgeImpulse đang miễn phí cho người dùng SingTown, người dùng SingTown có thể sử dụng miễn phí EdgeImpulse để đào tạo trực tuyến các mô hình mạng nơ-ron phù hợp với SingTown.
Bổ sung mạng thần kinh nhân tạo cho thiết bị nhúng OpenMV, có thể thực hiện các chức năng như phân biệt kẻ săn trộm và voi, kiểm soát chất lượng dây chuyền sản xuất nhà máy, cho phép xe mô hình điều khiển từ xa tự lái.
Trong hướng dẫn này, bạn sẽ học cách thu thập hình ảnh để xây dựng một bộ dữ liệu chất lượng cao, cách áp dụng học chuyển tiếp để huấn luyện mạng nơ-ron, và cách triển khai hệ thống lên OpenMV.
Ngoài ra, chúng tôi cũng cung cấp hướng dẫn video, bạn có thể tìm kiếm trên trang web chính thức để xem "OpenMV4 Plus Huấn luyện Mạng thần kinh để Nhận diện Khẩu trang".
Bạn có thể xem toàn bộ nội dung dự án tại địa chỉ sau, bao gồm tất cả mã nguồn và mô hình: https://book.openmv.cc/project/mask.html
Sử dụng EdgeImpulse để huấn luyện mô hình mạng thần kinh trực tuyến phù hợp với OpenMV chủ yếu được chia thành bốn bước sau: thu thập dữ liệu, tải lên, huấn luyện và triển khai.
01、Thu thập tập dữ liệu
Trong hướng dẫn này, chúng tôi sẽ xây dựng một mô hình có thể phân biệt khuôn mặt có đeo khẩu trang hay không. Tất nhiên bạn cũng có thể chọn phân loại các vật phẩm khác. Để vận hành mô hình học máy, bạn cần thu thập một lượng lớn hình ảnh ví dụ về khuôn mặt đeo khẩu trang và không đeo khẩu trang. Trong quá trình huấn luyện, những hình ảnh ví dụ này sẽ được sử dụng để mô hình thực hành phân biệt.
Chúng ta cần sử dụng OpenMV IDE để thu thập tập dữ liệu, các bước thu thập hình ảnh như sau:
Tạo hai danh mục:
Mở "Công cụ" trên thanh menu của OpenMV IDE, chọn "Trình chỉnh sửa tập dữ liệu", nhấp vào "Tạo tập dữ liệu mới", sau đó tạo một thư mục mới và mở nó. Trong tập dữ liệu, tạo thêm hai thư mục mới lần lượt đặt tên là mask (dùng để lưu ảnh khuôn mặt đeo khẩu trang) và face (dùng để lưu ảnh khuôn mặt không đeo khẩu trang).


Thu thập hình ảnh bằng OpenMV
Đầu tiên, chúng ta kết nối OpenMV, nhấp vào "Kết nối" trong IDE, sau đó nhấp vào "Chạy". Trong bộ đệm khung Framebuffer, chúng ta có thể thấy hình ảnh thời gian thực từ OpenMV. Nhấp vào nút ảnh trên thanh menu bên trái, OpenMV sẽ tự động lưu hình ảnh này, đây chính là một dữ liệu trong tập dữ liệu.
Trước tiên, chúng ta cần lưu khuôn mặt của người đeo khẩu trang, nhấn vào nút chụp ảnh, IDE sẽ chụp một bức ảnh ở phía dưới, nó sẽ tự động đặt tên là 00000, sau đó bức tiếp theo là 00001, và cứ tiếp tục như vậy.
Sử dụng OpenMV để thu thập lần lượt 200 bức ảnh khuôn mặt đeo khẩu trang (100 nam, 100 nữ) và 200 bức ảnh khuôn mặt không đeo khẩu trang (mỗi giới 100 bức).


* Lưu ý: Đảm bảo thu thập ảnh từ nhiều góc độ khác nhau để đảm bảo tính đa dạng cho quá trình huấn luyện và học tập của chúng tôi.
Nếu trong quá trình thu thập phát hiện một hình ảnh nào đó không được hoàn hảo, bạn có thể nhấp chuột phải vào hình ảnh đó và chọn xóa.
02、Tải lên
Sau khi thu thập hình ảnh bằng OpenMV, bạn cần đăng ký tài khoản và đăng nhập vào trang web chính thức của EdgeImpulse (https://edgeimpulse.com/) để bắt đầu tải lên hình ảnh. Các bước tải lên hình ảnh như sau:
Tạo một dự án mới trên EdgeImpulse, nhấp vào "keys", chọn "API Key" và sao chép "API Key". Sử dụng API Key để kết nối OpenMV IDE với Edge Impulse.

Chọn "Công cụ" - "Trình chỉnh sửa dữ liệu" - "Xuất" - "Tải lên" - "Tải lên bằng Khóa API" trên thanh menu phía trên của OpenMV IDE, sau đó sao chép và tải lên "Khóa API".
Dữ liệu sẽ tự động được chia thành tập huấn luyện và tập kiểm tra khi tải lên, chúng tôi mặc định chọn tỷ lệ "80% và 20%". Chúng tôi đã thu thập tổng cộng hơn 400 hình ảnh khuôn mặt, trong đó 80% Training Date có nghĩa là mặc định 80% dữ liệu của bạn được sử dụng để huấn luyện, 20% còn lại được dùng làm tập kiểm tra.


03、Tập dữ liệu huấn luyện
Khi tập dữ liệu đã sẵn sàng, bạn có thể huấn luyện tập dữ liệu trên giao diện trang web của EdgeImpulse.
Mô-đun xử lý cấu hình:
Đầu tiên chọn "Impulse Design", cấu hình mô-đun xử lý:
Thiết lập kích thước hình ảnh mặc định là "96 x 96".
Chọn mô-đun "Hình ảnh (Images)", biểu thị rằng chúng ta đang thực hiện huấn luyện phân loại hình ảnh (bạn cũng có thể sử dụng EdgeImpulse để phân loại âm thanh, video, v.v.).
Chọn "Chuyển giao học tập (Hình ảnh) Transfer Learning (Images)", thiết lập mô hình học tập.
Chọn "Lưu xung lực Save impulse", hiển thị Successfully là cấu hình đã thành công.

Xử lý trước hình ảnh:
Nhấp vào "Hình ảnh Image" trong menu bên trái, đặt định dạng màu thành "RGB", sau đó nhấp vào "Lưu Save".

Tiếp theo chọn "Tạo đặc trưng Generate features" để khởi động quy trình, sẽ tiến hành xử lý trước hình ảnh cho hơn 400 dữ liệu, bên phải sẽ hiển thị hình ảnh hóa 3D của toàn bộ tập dữ liệu.

Cấu hình mô hình học chuyển giao
Nhấp vào "Học chuyển giao (Transfer learning)" trong menu bên trái, chọn tất cả các tham số cài đặt mặc định, hoặc có thể thay đổi tham số theo nhu cầu:
1. Đặt số chu kỳ huấn luyện Number of training cycles mặc định là 10
2. Thiết lập tốc độ học Learning rate thành 0.0005
3. Có thể chọn hoặc không chọn "Tăng cường dữ liệu Data augmentation
4. Đặt mức độ tin cậy tối thiểu Minimum confidence rating mặc định là 0.8.
Nhấp vào "Bắt đầu huấn luyện Start training", quá trình huấn luyện sẽ mất khoảng 4 đến 5 phút.
Sau khi hoàn thành việc huấn luyện mô hình, bạn có thể kiểm tra độ chính xác, ma trận nhầm lẫn confusion matrix và hiệu suất thiết bị dự kiến.

Mô hình kiểm tra:
Sau khi hoàn thành quá trình huấn luyện, chúng tôi sẽ sử dụng dữ liệu kiểm tra để đánh giá mô hình.
Chọn "Kiểm tra mô hình Model testing", đánh dấu vào ô kiểm bên cạnh "Tên mẫu Sample name", nhấp vào "Phân loại đã chọn Classify selected". Độ chính xác hiển thị ở đây đạt 97%, điều này thực sự đáng khen ngợi đối với một mô hình có ít dữ liệu.

Phát hiện hình ảnh hiển thị màu đỏ này là không xác định, nhấp vào ba chấm bên phải hình ảnh, chọn "Hiển thị phân loại Show classification", bạn sẽ vào giao diện "Phân loại thời gian thực", chứa nhiều chi tiết hơn về tệp. Giao diện này sẽ giúp bạn xác định nguyên nhân phân loại sai hình ảnh.

Nếu dữ liệu nằm ngoài tất cả các cụm đã biết (đeo khẩu trang/không đeo khẩu trang), đây có thể là dữ liệu không khớp với bất kỳ phân loại nào đã thấy trước đây - có thể do tóc che khuất phần lớn khuôn mặt.
04、Chạy mô hình trên OpenMV
Sau khi hoàn thành các bước thiết kế huấn luyện, huấn luyện mô hình và xác thực mô hình, bạn có thể xuất mô hình này sang OpenMV của mình. Chọn "OpenMV", chọn "Build" để tạo, hệ thống sẽ tự động tạo ra 3 tệp:
* trained.tflite Mô hình mạng thần kinh đã được huấn luyện
labels.txt hai nhãn phân loại (face và mask)
ei_image_classification.py là mã cần chạy trên OpenMV

Kết nối OpenMV IDE, lưu 3 tệp này vào bộ nhớ Flash tích hợp của OpenMV. Mở tệp ei_image_classification.py trong OpenMV IDE, bạn sẽ thấy mã code vừa được tạo trong EdgeImpulse. Nhấn chạy, kết quả thực thi sẽ hiển thị trong terminal nối tiếp.


Được rồi, bạn đã thành công thêm chức năng tự huấn luyện mạng thần kinh cho OpenMV.
Mong chờ thành quả của bạn!

Chốt gác AI dựa trên OpenMV: Cảnh báo tự động khi thiết bị chưa được tắt tại các khu vực trọng yếu
Tự động xác định xem cửa của các địa điểm trọng yếu có bị mở trong thời gian dài hay không và kịp thời gửi cảnh báo.

Cảnh báo ngay khi nhân viên vượt qua ranh giới, OpenMV thể hiện khái niệm “ranh giới an toàn”
Nhận diện hành vi vượt ranh giới của con người hoặc thiết bị thông qua đường cảnh báo ảo.

“AI Quản lý thành phố” đã có mặt: Hệ thống nhận diện tự động việc kinh doanh chiếm dụng lòng lề đường dựa trên OpenMV
Tự động nhận diện hành vi kinh doanh chiếm dụng lòng lề đường nhằm hỗ trợ công tác quản lý đô thị thường ngày.

Bình gas để bừa bãi? Tận dụng OpenMV để tự động kích hoạt cảnh báo nguy hiểm
Tự động nhận diện vị trí đặt bình gas không đúng quy định nhằm phát hiện sớm các nguy cơ mất an toàn về khí đốt.

Thao tác trên thiết bị đang có điện mà không đeo găng tay cách điện? OpenMV sẽ lập tức phát cảnh báo!
Tự động nhận diện việc người lao động có đeo găng tay cách điện hay không nhằm hỗ trợ công tác an toàn.

Sử dụng camera thông minh OpenMV để nhận diện khuyết tật trên bề mặt tấm nhôm theo thời gian thực
Nhận diện trực tuyến các khuyết tật trên bề mặt tấm nhôm như vết xước, lõm và các khuyết tật khác nhằm hỗ trợ kiểm soát chất lượng.