Giải pháp cho các chức năng phụ trợ

Một phần của tài liệu BÀI tập lớn THIẾT kế hệ THỐNG cơ điện tử thiết kế hệ thống tự động phân loại bánh kẹo sử dụng công nghệ xử lý ảnh (Trang 44 - 60)

3.1.4.1 Bộ phận lọc thô sản phẩm

Hình 3.2 Bộ phận lọc thô sản phẩm

Chức năng: Đưa lần lượt từng sản phẩm vào băng chuyền tránh việc sản phẩm bị đưa vào quá nhiều gây tắc băng chuyền

Thiết kế cụ thể 3.1.4.2 Máng dẫn sản phẩm Hình 3.3 Máng dẫn sản phẩm Kích thước Dài: 2.5 m Rộng: 0.5 m Cao: 0.3 m

Chức năng: Dẫn sản phẩm từ bộ phận lọc thô đưa vào băng chuyền

3.1.4.3 Rulo

34

Hình 3.4 Rulo

Kích thước: Dài: 0.5 m Đường kính: 0.3 m 3.1.4.4 Bộ phận dẫn truyền Hình 3.5 Puley 35 Hình 3.6 Dây đai

Thiết kế cụ thể

3.1.4.5 Thuật toán phân loại sản phẩm a. Về Python

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.

Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.

Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian, Python dần mở rộng sang mọi hệ điều hành từ MS-DÓ đến MAC-OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python. Ứng dụng: • Web development • Machine learning • Data analysis •Data visualization b. Về YOLO

Hình 3.7 Thuật toán Yolo

36

YOLO (You only look once) là một mô hình CNN để detect object với ưu điểm nổi trội là độ chính xác tốt hơn và tốc độ nhanh hơn nhiều so với những mô hình cũ. Thậm chí có thể chạy tốt trên những IOT device như Raspberry Pi.

Đầu vào của mô hình là một bộ lữ liệu ảnh. Đối với bài toán Object detection, Yolo không chỉ hỗ trợ chúng ta phân loại Object mà còn giúp xác định được chính xác vị trí của Object trong Video.

Hình 3.8 Sơ đồ thuật toán

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh có đối tượng nào hay không, sau đó sẽ xác định toạ độ của đối tượng trong bức ảnh. Ảnh đầu vào được chia thành S x S ô (thường là 3 x 3, 7 x 7, 9 x 9…)

Hình 3.9 Predict Object

37

Thiết kế cụ thể

Với đầu vào là 1 ảnh, đầu ra của mô hình sẽ là một ma trận 3 chiều có kích thước S x S x (5 x N + M) với N và M lần lượt là số lượng Box và Class mà mỗi ô cần dự đoán. Mỗi bouding box cần dự đoán 5 thành phần: x, y, w, h và predicttion. Với (x, y) là toạ độc tâm của bounding box, (w, h) lần lượt là chiều rộng và chiều cao của bounding box.

Prediction là xác suất của vật được tính là:

Pr(Object)∗IOU(pred,truth)

Trong đó:

Pr (Object): điểm dự đoán vật

IOU (pred, truth): là tỉ lệ diện tích 2 bounding box chồng chéo nhau với diện tích tổng

38

Ứng dụng:

• Hệ thống theo dõi người

• Đếm số lượng vật thể

• Thanh toán tiền tại quầy hàng

• Chấm công tự động

c. Thuật toán

Với bài toán Object detection (nhận diện vật thể), thuật toán sử dụng YOLO v4 để

training dữ liệu sản phẩm và dùng OpenCV (thư viện xử lý ảnh của Python) để xử lí và đưa ra kết quả.

Quá trình xây dựng thuật toán gồm 3 bước

Thu thập dữ liệu

Hình 3.10 Quá trình xây dựng thuật toán

39

Thiết kế cụ thể

Thu thập dữ liệu

Hệ thống dữ liệu ảnh đầu vào bao gồm 3 loại nhãn hàng bánh kẹo khác nhau:

• Chocopie: 1020 ảnh

• Oishi: 1046 ảnh

• Oreo: 989 ảnh

• Goute: 950 ảnh

• Alpenlibe: 940 ảnh

Dữ liệu hình ảnh đầu vào được chụp ngẫu nhiên với nhiều backgound khác nhau, cường độ ánh sáng khác nhau và nhiều góc cạnh khác nhau.

Gán nhãn và training

Gán nhãn:

Gắn nhãn là 1 bước cần có trước khi training dữ liệu.

Dữ liệu ảnh bánh kẹo được dán nhãn bằng Labelimage với 3 loại nhãn: “Oreo”, “Chocopie” và “Oishi”.

Quá trình dán nhãn sẽ cung cấp thông tin cần thiết của vật trong ảnh cho hệ thống training.

Hình 3.11 Quá trình gán nhãn

Khi dán nhãn, hệ thống xuất ra 1 file “.txt” chứa các thông tin của vật trong ảnh bao gồm:

1. Thứ tự của nhãn

2. Tọa độ tâm của hộp giới hạn

3. Chiều dài và chiều rộng của hộp giới hạn Training:

40

Do không gian máy giới hạn, chúng ta sử dụng Google Colab - là một sản phẩm từ Google Research, nó cho phép chạy các dòng code python thông qua trình duyệt. Google Colab bộ nhớ đám mây 40GB với Ram ảo là 13GB cho phép chúng ta training dữ liệu một cách nhanh chóng và hiệu quả.

Sau khi tải lên dữ liệu ảnh đầu vào, Google Colab tự động training dữ liệu một cách ổn định và an toàn.

Nhược điểm: Do là tài khoản miễn phí nên Google Colab sẽ hủy toàn bộ dữ liệu của chúng ta sau 10 tiếng.

Ước tính thời gian training:

• Với mỗi ảnh chúng ta có 1 bounding box, YOLO sẽ cần dự đoán tổng cộng 3000 bounding boxes. Giả sử mỗi batch của chúng ta có kích thước 64 ảnh và số lượng max_batches = 6000. Như vậy chúng ta cần dự đoán 1,152 tỉ bounding boxes

• Thời gian huấn luyện dự đoán là 24h.

41

Thiết kế cụ thể

Kết quả khi thử nghiệm hệ thống

Chương trình được chạy thử nghiệm trên Laptop sử dụng camera 2D và cho ra kết quả với tỉ lệ chính xác cao.

Sau quá trình xử lí ảnh, chương trình cho ra một kết quả nhận diện chính xác từng loại bánh kẹo, Những thông tin của vật sẽ được hiển thị trên màn hình máy tính, bao gồm: • Bounding box • Label • Confidence • Fps Hình 3.12 Kết quả nhận diện 42

Hình 3.13 Kết quả nhận diện

Hình 3.14 Kết quả nhận diện

43

Thiết kế cụ thể

Hình 3.15 Kết quả nhận diện

44

Hình 3.16 Kết quả nhận diện

45

Thiết kế cụ thể 3.1.4.6 Checklist Danh sách Chức năng Nguyên tắc làm việc Bố trí An toàn Công thái học

Sản xuất Kiểm tra chất lượng Lắp ráp Vận chuyển Bảo dưỡng Hoạt động Chi phí Lịch trình 47

Thiết kế cụ thể

3.2 Tích hợp hệ thống

Một phần của tài liệu BÀI tập lớn THIẾT kế hệ THỐNG cơ điện tử thiết kế hệ thống tự động phân loại bánh kẹo sử dụng công nghệ xử lý ảnh (Trang 44 - 60)