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 36 - 51)

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

PLC Gửi tín hiệu cho van đảo chiều để phân loại sản phẩm Thiết bị đếm

sản phẩm

Đếm số lượng từng loại sản phẩm sau khi được phân loại

Máy tính + phần mềm điều khiển

Điều khiển, thiết lập chế độ thiết bị.

Hiển thị hình ảnh, thông tin hệ thống.

Là giao diện điều khiển giữa người vận hành và hệ thống

34 Hình 3.4 Rulo 3.1.4.2 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

35 Hình 3.6 Dây đai 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

36

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

37

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…)

38

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

39

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

Ứ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 Gán nhãn và training

model

Kiểm tra kết quả và debug

40

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:

41

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

42

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

43

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

44

45

46

3.1.4.6 Checklist

Danh sách Nội dung

Mức độ đánh giá

Tốt Vừa phải

Kém Rất kém Chức năng - Thực hiện đúng chức năng phân loại

bánh kẹo đạt được năng suất và độ chính xác theo yêu cầu

- Chức năng phụ trợ: khả năng hoạt động của thiết bị đếm sản phẩm, bộ phận cấp liệu

Nguyên tắc làm việc

- Nhận biết từng loại sản phẩm và đẩy sản phẩm đó về đúng thùng chứa quy định

Bố trí - Khả năng chống móp, méo, biến dạng của khung băng chuyền khi chịu lực tác động 700N

- Khả năng chịu lực kéo của băng tải - Tính nguyên vẹn của sản phẩm sau khi phân loại

An toàn - Khung băng chuyền đảm bảo khả năng cách điện và chống rỉ sét trong điều kiện làm việc ở Việt Nam

Công thái học

- Hình dáng gọn gàng, kết cấu vững chắc, đảm bảo thẩm mĩ, các góc cạnh sắc được bo tròn

- Vị trí đặt các khối chức năng khoa học - Giao diện dễ sử dụng với người vận hành

47

Sản xuất - Có khả năng đưa vào sản xuất số lượng lớn mà vẫn đảm bảo tính công nghệ - Vật liệu sử dụng và giải pháp của các nhóm chức năng đảm bảo tính kinh tế khi đưa vào sản xuất hàng loạt

Kiểm tra chất lượng

- Kết quả khi kiểm tra bắt buộc toàn bộ hệ thống sau khi hoàn thiện

- Kết quả khi kiểm tra ngẫu nhiên từng nhóm chức năng trong quá trình sản xuất Lắp ráp - Sản phẩm có thể tháo dời, lắp ráp lại để phục vụ nâng cấp, thay thế, bảo dưỡng, vận chuyển

Vận chuyển

- Sử dụng các vật liệu chống va đập, thực hiện đúng nguyên tắc vận chuyển, đảm bảo hệ thống không bị hư hại

Bảo dưỡng - Hệ thống dễ dàng bảo dưỡng, thời gian tối thiểu mỗi lần bảo dưỡng để hệ thống vẫn hoạt động ổn định là 3 tháng/lần Hoạt động - Hệ thống hoạt động ổn định, bền bỉ,

tiếng ồn và độ rung nhỏ

Chi phí - Đảm bảo mức chi phí chế tạo < 210 triệu đồng

- Chi phí vận chuyển không vượt quá 15% so với chi phí sản xuất

Lịch trình - Đảm bảo tiến độ sản xuất đúng kế hoạch đề ra

48

Hình 3.18 Lưu đồ giải thuật của 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 36 - 51)