1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập lớn xử lý ảnh đề tài thiết kế hệ thống điều khiển cho hệ thống phân loại sản phẩm ứng dụng xử lý ảnh

44 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thiết kế hệ thống điều khiển cho hệ thống phân loại sản phẩm ứng dụng xử lý ảnh
Tác giả Dương Văn Bằng, Nguyễn Văn Hoạt, Trần Ngọc Long
Người hướng dẫn TS. Nguyễn Thành Hùng
Trường học Đại học Bách khoa Hà Nội Trường Cơ khí
Chuyên ngành Xử lý ảnh
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 4,88 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI (4)
    • 1.1. Giới thiệu chung (4)
    • 1.2. Nguyên lý hoạt động của hệ thống (4)
    • 1.3. Các thành phần cơ bản của hệ thống (5)
  • CHƯƠNG 2: THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN (14)
    • 2.1. Thuật toán xử lý ảnh (14)
    • 2.2. Thiết kế giao diện (15)
  • CHƯƠNG 3: MÔ HÌNH THỰC NGHIỆM VÀ PHÂN TÍCH (16)
    • 3.1. Mô hình thực nghiệm (16)
    • 3.2. Kết quả thực nghiệm (17)
    • 3.3. Thảo luận kết quả thực nghiệm (17)
  • CHƯƠNG 4: KẾT LUẬN (18)
    • 4.1. Kết luận (18)
    • 4.2. Hướng phát triển của đề tài trong tương lai (18)
  • TÀI LIỆU THAM KHẢO (19)
  • PHỤ LỤC (20)
    • 1. Code arduino (20)
    • 2. Code Visual Studio (26)
    • 3. Code Windown Forms (31)

Nội dung

Giới thiệu chung:Hiện nay ngành công nghiệp ngày càng phát triển các công ty xí nghiệp đãáp dụng tự động hóa vào sản xuất để tiện ích cho việc quản lý dây chuyền vàsản phẩm của toàn bộ h

TỔNG QUAN VỀ ĐỀ TÀI

Giới thiệu chung

Hiện nay ngành công nghiệp ngày càng phát triển các công ty xí nghiệp đã áp dụng tự động hóa vào sản xuất để tiện ích cho việc quản lý dây chuyền và sản phẩm của toàn bộ hệ thống một cách hợp lý là yêu cầu thiết yếu, tiết kiệm được nhiều thời gian cũng như quản lý một cách dễ dàng.

Trong đó có một khâu quan trọng ảnh hưởng đến chất lượng sản phẩm là phân loại sản phẩm Hệ thống phân loại sản phẩm nhằm chia sản phẩm ra các nhóm có cùng thuộc tính với nhau để thực hiện đóng gói hay loại bỏ sản phẩm hỏng.Để đáp ứng yêu cầu đó, nhóm chúng em đã tiến hành nghiên cứu tài liệu, thiết kế và xây dựng mô hình “Hệ thống phân loại sản phẩm theo màu sắc ứng dụng xử lý ảnh”.

Mục tiêu thiết kế là mô hình phân loại sản phẩm theo màu sắc (xanh nước biển, xanh lá cây, vàng) Dựa trên ngôn ngữ C++ với thư viện chính làOpenCV và được thực hiện trên Kit Arduino Uno R3 Ở đây sử dụng các đặc điểm riêng biệt của từng màu sắc để đi nhận dạng và sau đó phân loại từng sản phẩm Kết quả thực hiện của đề tài đã nhận dạng được những sản phẩm có màu sắc (xanh nước biển, xanh lá cây, vàng).

Nguyên lý hoạt động của hệ thống

Hệ thống phân loại sản phẩm hoạt động trên nguyên lý dùng camera để thu nhận ảnh, sau đó dữ liệu ảnh này được truyền cho máy tính để xử lý Sau khi máy tính xử lý sẽ đưa ra kết quả về màu sắc của đối tượng, từ kết quả này thì máy tính sẽ đưa ra các lệnh truyền xuống bộ điều khiển để bộ điều khiển

Những lợi ích mà hệ thống phân loại sản phẩm đem lại cho chúng ta là rất lớn, cụ thể như:

Giảm sức lao động, tránh được sự nhàm chán trong công việc, cải thiện được điều kiện làm việc của con người, tạo cho con người tiếp cận với sự tiến bộ của khoa học kỹ thuật và được làm việc trong môi trường ngày càng văn minh hơn.

Nâng cao năng suất lao động, tạo tiền đề cho việc giảm giá thành sản phẩm, cũng như thay đổi mẫu mã một cách nhanh chóng.

Giúp cho việc quản lý và giám sát trở nên rất đơn giản, bởi vì nó không những thay đổi điều kiện làm việc của công nhân mà còn có thể giảm số lượng công nhân đến mức tối đa.

Các thành phần cơ bản của hệ thống

1.3.1 Phần cứng: a Kit Arduino Uno R3

Một board mạch chủ chính dùng để truyền và nhận dữ liệu từ người sử dụng đến các thiết bị điện tử khác.

Các thông số cơ bản:

Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

EEPROM 1 KB (ATmega328) b Động cơ Servo SG-90 Động cơ servo SG-90 có kích thước nhỏ, là loại được sử dụng nhiều nhất để làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng. Động cơ servo SG-90 180 độ có tốc độ phản ứng nhanh, các bánh răng được làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng, động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM. Động cơ servo SG-90 được thiết kế hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này.

Nhiệt độ hoạt động: 0 ºC – 55 ºC

Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát xung của vi điều khiển Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển góc quay theo ý muốn. c Camera Để tiết kiệm chi phí, nhóm em sử dụng camera điện thoại để thu nhận ảnh. d Động cơ giảm tốc

Thông số kỹ thuật của động cơ giảm tốc Điện áp hoạt động:3V~ 9V DC (Hoạt động tốt nhất từ 6

Mômen xoắn cực đại: 800gf cm min 1:48 (3V)

Tốc độ không tải: 125 Vòng/ 1 Phút (3V)

Dòng không tải động cơ: 70mA (250mA MAX)

1.3.2 Phần mềm: a Thư viện Open CV

- OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++, vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần.

- OpenCV có rất nhiều ứng dụng:

 Kiểm tra và giám sát tự động

 Robot và xe hơi tự lái

 Phân tích hình ảnh y học

 Tìm kiếm và phục hồi hình ảnh/video

 Phát hiện các vật thể (objdetect, features2d, nonfree)

 Geometry-based monocular hoặc stereo computer vision (calib3d, stitching, videostab)

 Computational photography (photo, video, superres)

 Machine learning & clustering (ml, flann)

 CUDA acceleration (gpu) b Arduino IDE

Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và biên dịch mã vào module Arduino Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường.

Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận thông tin dưới dạng mã Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo. c Visual Studio 2019

- Công cụ lập trình Visual Studio là một trong những IDE (Integrated Development Environments) có thể được sử dụng để xây dựng các dự án liên quan đến giải pháp phần mềm, ứng dụng và giao diện người dùng đồ họa.

- Lập trình bằng bộ công cụ hoàn hảo từ thiết kế ban đầu tới triển khai cuối cùng

 Cải thiện hiệu suất IntelliSense cho file C++

 Phát triển cục bộ bằng nhiều trình giả lập phổ biến

 Đơn giản hóa truy cập thử nghiệm trong Solution Explorer

 Quản lý Git và tạo repository trong IDE

 Hỗ trợ Kubernetes bao gồm trong khối lượng công việc của Microsoft Azure d Proteus 8 Professonal

Proteus là một phần mềm thiết kế mô phỏng mạch điện tử với bất kỳ thiết bị điện tử tương tự và điện tử số Ngoài ra phần mềm còn hỗ trợ các vi mạch điều khiển như PIC 10, PIC12, Atmel AVR, ARM Cortex-M3 và nhiều loại khác Đây là một công cụ hữu ích trong công việc cũng như trong học tập về thiết kế mạch điện.

Một ứng dụng rất tiện dụng và mạnh mẽ đã được phát triển để giúp người hủy bỏ xây dựng cũng như xác minh các bảng mạch dễ dàng hơn. Được trang bị một giao diện được tổ chức rất tốt, nơi chứa tất cả các công cụ và lệnh cần thiết để xây dựng các bảng mạch và thử nghiệm chúng.

Có thể bắt đầu mọi thứ bằng cách tải một trong nhiều mẫu mà Proteus PCB Design đi kèm.

Các mô phỏng tương tác có thể được bắt đầu với ứng dụng này rất hữu ích như khả năng xem cũng như chỉnh sửa các thuộc tính của mọi thành phần trên bảng.

Các tùy chỉnh có thể đi sâu vào từng mục và sau đó có một số tùy chọn xem có thể được sử dụng để giảm bớt công việc của bạn.

Tab Có mã nguồn nơi các thay đổi có thể được thực hiện ở mức rất cơ bản cho từng thành phần là một phần của dự án được tải. e Ứng dụng Droidcam

Nhóm em sử dụng ứng dụng Droidcam trên điện thoại Với ứng dụng này thì điện thoại sẽ gần giống như là một PC Camera.

DroidCam là ứng dụng cho phép biến thiết bị Android của bạn thành một webcam Ứng dụng hoạt động với một PC client kết nối máy tính với điện thoại. Ứng dụng này hỗ trợ Android, iOS và Windows Nó cho phép bạn kết nối laptop hoặc PC qua mạng WiFi hoặc với sự trợ giúp của cáp USB.

Những tính năng chính của DroidCam bao gồm:

Trò chuyện bằng "DroidCam Webcam" trên máy tính, bao gồm cả âm thanh và hình ảnh.

Hoàn toàn miễn phí không có giới hạn sử dụng hoặc watermark. Kết nối qua WiFi hoặc USB.

Loại bỏ tiếng ồn của micro.

Sử dụng các ứng dụng (không phải camera) khác với DroidCam trong nền.

Tiếp tục làm việc với màn hình tắt để tiết kiệm pin.

Truy cập camera IP web MJPEG (truy cập camera qua trình duyệt hoặc từ điện thoại, máy tính bảng, v.v )

THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN

Thuật toán xử lý ảnh

- Với ảnh chụp thu thập được từ Camera sẽ cho không gian màu của ảnh là RGB, không gian màu RGB không thích hợp cho việc nhận dạng màu sắc, để phân biệt màu sắc người ta thường dùng không gian màu HSV Vì vậy ta cần chuyển đổi ảnh gốc ( ảnh có không gian màu RGB) sang ảnh có không gian màu HSV.

Các bước thực hiện xử lý ảnh:

+) Thuật toán nhận dạng vật thể theo màu sắc

- Trước tiên ta chuyển sang hệ màu HSV

- Tìm ngưỡng màu của vật thể muốn phân loại

- Tạo lớp mặt nạ của vật nằm trong ngưỡng màu

- Sử dụng các phép hình thái học để xử lý và lọc nhiễu ( vd như opening, erosion, )

- Sau khi đã có lớp mặt nạ đầy đủ nhất của vật, ta tiến hành thực hiện một số công việc để thuận tiện cho việc gửi tín hiệu xuống vi điều khiển, ví dụ như tìm tất cả các contours của vật có trong khung hình, tìm diện tích hoặc bán kính của đường tròn nhỏ nhất bao quanh contours để check xem đó có phải là vật thể cần phân loại không hay là một số thành phần nhiễu.

MÔ HÌNH THỰC NGHIỆM VÀ PHÂN TÍCH

Kết quả thực nghiệm

Theo như thực nghiệm thì kết quả đạt được khá là tốt:

 Hệ thống nhận dạng và phân loại được sản phẩm theo màu sắc bằng ngôn ngữ C++ dựa vào thư viện OpenCV.

 Giao tiếp được Arduino với Visual Studio 2019 thông qua serialport.

 Điều khiển servo hoạt động khá ổn định.

 Thiết kế thành công mô hình phân loại sản phẩm theo màu sắc, mặc dù còn chưa được tối ưu, và còn đơn giản chưa có nhiều tính năng.

Mô hình hoạt động khá ổn định Bộ xử lý trung tâm xử lý tín hiệu khá tốt.Phân loại thành công các sản phẩm xanh nước biển, xanh lá cây, vàng, nếu không thuộc một trong các màu sắc kể trên thì được xem là sản phẩm khác, hệ thống cấp phôi cũng như hệ thống máng trượt sản phẩm hoạt động khá ổn định.

Thảo luận kết quả thực nghiệm

Sau những lần thực nghiệm trên sản phẩm thì em nhận thấy hệ thống hoạt động với độ chính xác khá cao và tương đối ổn định; không bị nhầm lẫn trong việc phân loại màu và phân loại sản phẩm Tuy nhiên, hệ thống sẽ có những hạn chế và xảy ra sai sót nếu thực hiện phân loại nhiều sản phẩm liên tục bởi nhiều yếu tố như là nhiễu ảnh do cường độ sáng, thuật toán xử lý ảnh chưa hoàn toàn được tối ưu, …Do tình hình dịch bệnh phức tạp nên nhóm không thể gặp mặt trực tiếp để cùng nhau hoàn thiện mà phải hoàn thiện qua hình thức online cho nên hệ thống còn đơn giản, chưa được thẩm mĩ.

Ngày đăng: 18/06/2024, 17:23

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w