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

ứng dụng labview trong phân loại nhãn chai nước bằng camera

69 2 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

Định dạng
Số trang 69
Dung lượng 7,44 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (10)
    • 1.1. Giới thiệu đề tài (10)
    • 1.2. Dây chuyền sản xuất nước đóng chai trong phòng thí nghiệm Robot (11)
    • 1.3. Mục tiêu đề tài (12)
    • 1.4. Nội dung nghiên cứu (13)
    • 1.5. Đối tượng nghiên cứu (13)
    • 1.6. Giới hạn đề tài (13)
    • 1.7. Bố cục (13)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (14)
    • 2.1. Tổng quan về xử lý ảnh (15)
      • 2.1.1. Thu nhận ảnh (Image Acquisition) (16)
      • 2.1.2. Tiền xử lý (Image processing) (16)
      • 2.1.3. Phân đoạn (Segmentation) hay phân vùng ảnh (17)
      • 2.1.4. Biểu diễn ảnh (Image Representation) (17)
      • 2.1.5. Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) (17)
      • 2.1.6. Cơ sở tri thức (Knowledge Base) (18)
    • 2.2. Những vấn đề trong xử lý ảnh (18)
      • 2.2.1. Điểm ảnh (Picture Element) (18)
      • 2.2.2. Ảnh số (18)
      • 2.2.3. Phân loại ảnh (19)
      • 2.2.4. Quan hệ giữa các điểm ảnh (19)
      • 2.2.5. Lọc nhiễu (20)
      • 2.2.6. Phương pháp phát hiện biên (21)
      • 2.2.7. Phân đoạn ảnh (23)
      • 2.2.8. Các phép toán hình thái Morphology (24)
    • 2.3. Giới thiệu về phần mềm lập trình xử lý ảnh (26)
      • 2.3.1. Giới thiệu NI LabVIEW (Laboratory Virtual Insrtumentation Engineering Worlbench) (26)
      • 2.3.2. Đặc điểm của LabVIEW (27)
    • 2.4. Giới thiệu về Arduino Mega 2560 (28)
      • 2.4.1. Giới thiệu (28)
      • 2.4.2. Thông tin cấu hình Arduino Mega2560 (29)
      • 2.4.3. Ứng dụng (34)
    • 2.5. Phương pháp phân loại sản phẩm theo màu sắc (34)
      • 2.5.1. Giới thiệu (34)
      • 2.5.2. Các kiểu ảnh phổ biến (35)
      • 2.5.3. Một số định dạng ảnh trong xử lý ảnh (36)
  • CHƯƠNG 3: THIẾT KẾ VÀ LẬP TRÌNH (14)
    • 3.1. Giới thiệu (41)
    • 3.2. Tính toán và thiết kế (41)
      • 3.2.1. Thiết kế sơ đồ khối hệ thống (41)
      • 3.2.2. Sơ đồ kết nối hệ thống (44)
    • 3.3. Truyền nhận dữ liệu (0)
      • 3.3.1. Truyền nhận dữ liệu giữa Labview và camera (0)
      • 3.3.2. Lập trình giao tiếp giữa board Arduino và LabVIEW (0)
    • 3.4. Chương trình điều khiển (0)
      • 3.4.1. Lưu đồ giải thuật (0)
      • 3.4.2. Thiết lập xử lý ảnh (0)
      • 3.4.3. Các bước nạp chương trình lên Arduino (0)
  • CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ (62)
    • 4.1. Thực nghiệm (62)
    • 4.2. Kết quả (64)
    • 4.3. Nhận xét và đánh giá (65)
      • 4.3.1. Nhận xét (65)
      • 4.3.2. Đánh giá (66)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (14)
    • 5.1. Kết luận (67)
    • 5.2. Hướng phát triển (67)
  • TÀI LIỆU THAM KHẢO (68)

Nội dung

- Bố cục Chương 2: Cơ sở lý thuyết - Tổng quan về xử lý ảnh - Những vấn đề trong xử lý ảnh - Giới thiệu phần mềm lập trình xử lý ảnh - Giới thiệu về Arduino Mega2560 - Phương pháp phân l

TỔNG QUAN

Giới thiệu đề tài

Ngày nay, việc ứng dụng khoa học công nghệ hiện đại ngày càng phổ biến và có nhiều tiến bộ vượt bậc Để những chiếc máy tự động xuất hiện ở nhiều nhà máy, công ty tại Việt Nam với những khả năng: phân loại, kết hợp,… Do đó, nhu cầu về nguồn lao động có thể điều khiển, lập trình, thao tác là rất lớn Sự kiểm soát của người vận hành đối với người thao tác là rất quan trọng Nhiều trường đại học trên cả nước đã đưa robot công nghiệp vào chương trình giảng dạy và thậm chí còn có chuyên ngành nghiên cứu robot ở các nước tiên tiến Tuy nhiên, việc thực hành các máy thao tác công nghiệp ở nước ta còn khiêm tốn do chi phí lắp đặt cao Hiện nay, người ta sử dụng các cảm biến khác nhau với khả năng khác nhau để phân loại sản phẩm theo ý muốn, chẳng hạn như cảm biến phân loại theo màu sắc, hình dạng, Những cảm biến này có cài đặt và vận hành đơn giản, nhưng nó có thể dễ dàng gây nhiễu Để giải quyết vấn đề này, đồng thời giúp vận dụng được những kiến thức đã học về board Arduino cùng với LabVIEW, vốn hiểu biết về điện tử và công nghệ xử lý ảnh cùng với sự đồng ý của giáo viên hướng dẫn – thầy Tưởng Phước Thọ, nhóm em chọn đề tài: “Thiết kế và thực nghiệm phần mềm phân loại nhãn chai nước bằng camera”

Hình 1.1: Dây chuyền sản xuất nước đóng chai

Dây chuyền sản xuất nước đóng chai trong phòng thí nghiệm Robot

Nhằm bám sát với các hệ thống sản xuất nước đóng chai công nghiệp, với sự hỗ trợ của GVHD đề tài được nhóm thực hiện trên dây chuyền sản xuất nước đóng chai PET 500ml tại phòng thí nghiệm Robot khoa Cơ Khí Chế Tạo Máy trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh

Trên dây chuyền phân loại nước đóng chai gồm có băng tải 2m được vận hành, điều khiển tốc thông qua biến tần (Sinamics V20) có nhiệm vụ vận chuyển các chai nước sang khâu đóng gói Ở giữa băng tải là trạm phân loại sản phẩm lỗi với 1 bên là hệ thống nhận dạng, xử lý, phân loại sản phẩm bằng các cảm biến, hệ thống đẩy sản phẩm bằng xilanh điều khiển bởi van điện từ Bên còn lại là băng tải đặt vuông góc với dây chuyền chính, nhận và vận chuyển các sản phẩm lỗi được phân loại tại trạm

Hình 1.2: Băng chuyền vận chuyển sản phẩm

Hình 1.3: Trạm phân loại sản phẩm

Hình 1.4: Đối tượng phân loại, chai PET 500 ml

Mục tiêu đề tài

Đề tài “Thiết kế và thử nghiệm phần mềm phân loại nhãn chai nước bằng camera” là mô hình phân loại sản phẩm theo màu sắc Dựa trên ngôn ngữ lập trình LabVIEW và được thực hiện trên kit Arduino Mega

Nội dung nghiên cứu

Đề tài “Thiết kế và thử nghiệm phần mềm phân loại nhãn chai nước bằng Camera” có những nội dung sau:

- NỘI DUNG 1: Tìm hiểu về LabVIEW và Arduino Mega

- NỘI DUNG 2: Tổng quan về xử lý ảnh

- NỘI DUNG 3: Thiết kế mô hình

- NỘI DUNG 4: Viết chương trình

- NỘI DUNG 5: Chạy thử nghiệm và điều chình phần mềm, phần cứng để tối ưu, sử dụng dễ dàng

- NỘI DUNG 6: Viết báo cáo thực hiện

- NỘI DUNG 7: Đánh giá kết quả thực hiện.

Đối tượng nghiên cứu

- Các khối xử lý ảnh trên phần mềm LabVIEW

Giới hạn đề tài

- Ngôn ngữ lập trình LabVIEW

- Phân loại với chai nước PET 500ml

- Phân loại chai nước trên băng chuyền dài 2m hoạt động độc lập

- Thiết kế và thử nghiệm phần mềm phân loại nhãn chai nước.

Bố cục

Nội dung đề tài gồm các phần sau:

CƠ SỞ LÝ THUYẾT

Tổng quan về xử lý ảnh

Xử lý ảnh là lĩnh vực hết hợp giữa khoa học và công nghệ Mặc dù nó còn khá mới mẻ so với nhiều ngành khoa học khác, nhưng tốc độ phát triển của nó đang diễn ra vô cùng nhanh chóng Xử lý ảnh đã kích thích sự phát triển của các trung tâm nghiên cứu và ứng dụng, đặc biệt là máy tính chuyên dụng cho việc xử lý ảnh

Xử lý ảnh áp dụng các kỹ thuật để tăng cường và xử lý hình ảnh thu thập từ các thiết bị như máy ảnh, webcam… Đây là một lĩnh vực quan trọng và đã được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau:

- Lĩnh vực quân sự: Xử lý và nhận dạng hình ảnh quân sự

- An ninh và bảo mật: Nhận dạng khuôn mặt, vân tay, mắt…

- Giải trí: Trò chơi điện tử

- Y tế: Xử lý ảnh y sinh, chụp X-quang, MRI…

Các phương pháp xử lý hình ảnh bắt nguồn từ những mục đích sử dụng chính, bao gồm việc nâng cao chất lượng và phân tích hình ảnh Việc sử dụng tài liệu đầu tiên là để nâng cao hình ảnh được truyền từ London đến New York trong những năm 1920 Các vấn đề nâng cao hình ảnh thường liên quan đến việc phân bổ mức độ sáng và độ phân giải của hình ảnh giải thưởng ảnh Việc cải thiện chất lượng hình ảnh được bắt đầu vào những năm 1955 Điều này có thể là do sự gia tăng nhanh chóng của máy tính sau Thế chiến thứ hai, tạo điều kiện thuận lợi cho sự phát triển của xử lý hình ảnh kỹ thuật số Đến năm 1964, máy tính đã có khả năng phân tích và nâng cao hình ảnh từ mặt trăng và vệ tinh Ranger 7 của Hoa Kỳ, bao gồm cả đường đại dương và việc bảo tồn hình ảnh Từ năm 1964-1968, các phương pháp xử lý, nâng cao chất lượng, nhận dạng hình ảnh ngày càng phổ biến Các phương pháp của trí tuệ nhân tạo như mạng nơ-ron nhân tạo, thuật toán xử lý nâng cao và công cụ nén hình ảnh ngày càng phổ biến và có tác dụng tích cực [1]

Sau đây, chúng ta sẽ thảo luận về các bước cần thiết trong quá trình xử lý hình ảnh Đầu tiên, những hình ảnh tự nhiên về thế giới xung quanh chúng ta được thu thập

7 thông qua các thiết bị như máy ảnh và máy ảnh tĩnh ghi lại hình ảnh Trước đây, hình ảnh thu được qua camera thường là hình ảnh analog (Camera truyền hình CCIR) Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được bắt nguồn từ phối cảnh của máy ảnh, sau đó được chuyển đổi trực tiếp thành ảnh kỹ thuật số, sau đó có thể được xử lý Ngoài ra, hình ảnh cũng có thể được thu từ vệ tinh thông qua hệ thống thu thập hình ảnh [1] Dưới đây là mô tả các bước cơ bản trong xử lý ảnh:

Hình 2.1: Các bước cơ bản xử lý ảnh

Sơ đồ này bao gồm các thành phần sau:

2.1.1 Thu nhận ảnh (Image Acquisition)

Hình ảnh có thể được ghi lại qua màn hình màu hoặc màn hình đen trắng Thông thường, hình ảnh thu được từ camera là hình ảnh analog (đặc biệt, camera tiêu chuẩn CCIR có tần số 1/25, mỗi hình ảnh gồm 25 dòng) Ngoài ra, máy ảnh kỹ thuật số sử dụng CCD làm loại photodiod có các pixel tạo ra ánh sáng ở mỗi vị trí [1]

Camera hường sử dụng phương pháp quét dòng để tạo ra hình ảnh 2D Chất lượng hình ảnh thu được từ quá trình ghi và các yếu tố môi trường (bao gồm cả ánh sáng và cảnh quan) phụ thuộc vào thiết bị được sử dụng và không gian sẵn có

2.1.2 Tiền xử lý (Image processing)

Sau khi thu được hình ảnh, hình ảnh có thể bị nhiễu và độ tương phản thấp Do đó, điều quan trọng là phải kết hợp hình ảnh vào bộ tiền xử lý để nâng cao chất lượng

Mục đích chính của bộ tiền xử lý là giảm nhiễu và tăng cường độ tương phản, điều này sẽ giúp làm rõ và nâng cao hình ảnh [1]

2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh

Phân vùng ảnh là một trong những nhánh quan trọng nhất của thị giác máy tính Đó là một quá trình lấy hình ảnh đầu vào và chia nó thành các vùng riêng biệt để phân tích và nhận dạng Ví dụ, để nhận dạng các chữ cái (hoặc mã vạch) trên phong bì thư, chúng ta phải phân tách các câu về địa chỉ hoặc tên người thành các từ, chữ cái, số (hoặc vạch) riêng biệt để xác định Đây là phần khó và phức tạp nhất trong quá trình xử lý ảnh, đồng thời cũng dễ dẫn đến sai sót, có thể ảnh hưởng xấu đến độ chính xác của ảnh Việc nhận dạng hình ảnh chủ yếu phụ thuộc vào bước này [1]

2.1.4 Biểu diễn ảnh (Image Representation)

Biểu diễn của hình ảnh là phần sau khi phân đoạn, chứa các pixel của vùng hình ảnh được phân đoạn cộng với các mã bổ sung trong các vùng được liên kết Việc chuyển đổi thông tin này thành dạng hữu ích là cần thiết cho quá trình xử lý tiếp theo của máy tính Trong quá trình này, chúng ta chọn các đặc điểm sẽ đại diện cho hình ảnh, các đặc điểm này được gọi là trích xuất đặc điểm Điều này liên quan đến việc nhận biết tính khác biệt của các đặc điểm của hình ảnh dưới dạng thông tin số hoặc như một phương tiện để phân biệt giữa các loại đối tượng trong không gian hình ảnh nhận được Ví dụ: khi nhận dạng các ký tự trên phong bì, chúng tôi mô tả các thuộc tính của từng ký tự khiến chúng trở nên khác biệt [1]

2.1.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Nhận dạng hình ảnh là hành động nhận dạng hình ảnh Thông thường, quy trình này được thực hiện bằng cách quan sát mô hình tiêu chuẩn mới so sánh với mô hình tiêu chuẩn đã học (hoặc lưu trữ) trước đó như thế nào Nội suy là quá trình xác định tầm quan trọng của một sự vật dựa trên nhận dạng của nó Ví dụ: một chuỗi số và dấu gạch ngang trên phong bì có thể được chuyển đổi thành mã điện thoại thông qua phép nội suy Có nhiều cách tiếp cận khác nhau để phân loại hình ảnh và các mô hình toán học phân loại hình ảnh được chia thành hai loại chính:

- Nhận dạng theo tham số

- Nhận dạng theo cấu trúc

Một số công cụ nhận dạng phổ biến trong khoa học công nghệ là: ứng dụng ký tự từ hư cấu vào thực tế (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản, nhận dạng văn bản Dấu vân tay, mã vạch, nhận dạng khuôn mặt người, [1]

2.1.6 Cơ sở tri thức (Knowledge Base)

Như đã đề cập trước đó, hình ảnh là một đối tượng phức tạp có nhiều thành phần, bao gồm nhiễu, độ sáng, dung lượng pixel và nhiều môi trường cho phép chụp ảnh Trong nhiều trường hợp, mọi người muốn mô phỏng quá trình chụp ảnh và phân tích hình ảnh theo cách nhân bản Trong quá trình xử lý và phân tích hình ảnh, việc sử dụng trí tuệ của con người có tác động tích cực đến việc tối ưu hóa quá trình tiếp nhận và xử lý hình ảnh Cơ sở kiến thức có tác động đáng kể trong việc giúp người dùng tìm hiểu và giải quyết các vấn đề liên quan đến ảnh một cách hiệu quả và dễ dàng [1]

Những vấn đề trong xử lý ảnh

Là đơn vị cơ bản nhất để tạo nên một bước ảnh kỹ thuật số Địa chỉ của pixel được coi là (x, y) với y là địa chỉ của byte tiếp theo Một bức ảnh kỹ thuật số, được tạo ra thông qua nhiếp ảnh hoặc phương pháp trực quan khác, bao gồm hàng nghìn hoặc hàng triệu pixel riêng lẻ Số lượng pixel trong một hình ảnh càng lớn thì độ chi tiết của nó càng lớn Một triệu pixel tương đương với 1 megapixel [1]

2.2.2 Ảnh số Ảnh số là một tập hợp hữu hạn các pixel có mức xám liên quan mô tả gần đúng với hình ảnh thực tế Số lượng pixel ảnh hưởng đến độ phân giải của hình ảnh Độ phân giải của hình ảnh càng cao thì các điểm của nó càng khác biệt, điều này dẫn đến sự thể hiện hình ảnh được nâng cao và chính xác hơn Hình ảnh là tín hiệu hai chiều, mô tả toán học của nó là f(x, y) trong đó x và y là hai thành phần ngang và dọc Các giá trị của f(x, y) tại bất kỳ vị trí nào cung cấp giá trị pixel tại vị trí đó của hình ảnh [1]

Mức xám của pixel là cường độ ánh sáng, được gán giá trị giả tại vị trí đó Không gian màu xám phổ biến: 16, 32, 64, 128, 256 Mức phổ biến nhất là 265, nghĩa là sử dụng 1 byte để biểu thị mức xám Trong đó:

 Ảnh nhị phân: là ảnh có 2 cấp độ trắng và đen khác nhau, chỉ có 2 giá trị 0 và

1 và chỉ sử dụng 1 mặt nạ dữ liệu cho mỗi pixel [1]

 Ảnh đen trắng: Là ảnh có hai tông màu: đen và trắng (không có màu nào khác) với các mức độ xám khác nhau ở các pixel [1]

 Ảnh màu: Là bức tranh được kết hợp từ ba màu cơ bản để tạo nên một thế giới đầy màu sắc Thông thường, mọi người sử dụng 3 byte để mô tả các cấp độ màu, điều này có nghĩa là có khoảng 16,7 triệu cấp độ màu khác nhau [1]

2.2.4 Quan hệ giữa các điểm ảnh

Lân cận điểm ảnh: được nói một cách hài hước như là hàng xóm của cái điểm ảnh Có 2 loại lân cận cơ bản là lân cận 4 và lân cận 8

Hình 2.2: Lân cận 4 và lân cận 8

4 điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là (x+1, y), (x-l y), (x, y+1), (x, y-1) ký hiệu là tập N4(p) 4 điểm ảnh lân cận 4 theo đường chéo có tọa độ lần lượt là (x+1, y+1), (x+1, y+1), (x-1, y+1), (x-1, y-1) ký hiệu là tập ND(p) Tập 8 điểm ảnh lân cận 8 là hợp của 2 tập trên: [1]

Liên kết ảnh: Các mối liên kết của ảnh được xem như là mối liên kiết của 2 điểm ảnh gần nhau, có 3 loại liên kết: liên kết 4, liên kết 8, lên kết m (liên kết hỗn hợp) Trong ảnh đa mức xám, ta có thể đặt V chứa nhiều giá trị như V= {tập con) Cho p có tọa độ (x, y) [1]

Liên kết 4: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 4 của nhau nếu q thuộc về tập N4(p)

Liên kết 8: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 8 của nhau nếu q thuộc về tập N8(p)

Liên kết m: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết M của nhau nếu thỏa 1 trong 2 điều kiện sau: q thuộc về tập N4(p), q thuộc về tập ND(p) và giao của hai tập N4(p), N4(q) không chứa điểm ảnh nào có giá trị thuộc V [1]

Hình ảnh nhận được thường bị hỏng nên việc giảm nhiễu bổ sung là cần thiết Các toán tử không gian được sử dụng trong nâng cao hình ảnh được phân loại theo mục đích của chúng: làm mịn đa chiều, giảm nhẹ ranh giới Để trộn hoặc phân biệt số lượng lớn, bộ xử lý tuyến tính (phương tiện, bộ xử lý thông thấp) hoặc bộ xử lý phi tuyến (trung vị, giả trung bình hoặc bộ xử lý đồng cấu) được sử dụng Từ góc độ bản chất của nhiễu (thường là tần số cao) và cơ sở của lý thuyết lọc tần số: các bộ lọc chỉ cho phép các tín hiệu có tần số cụ thể đi qua, do đó, nhiều người thường sử dụng các phương pháp lọc tần số thông thấp (trong bối cảnh tần số không gian) hoặc bộ lọc trung vị để kết hợp (trải rộng) Để nhấn mạnh các đường viền (tương ứng với tần số cao), các bộ lọc thông cao, bộ lọc Laplacian, được sử dụng Nhiều cách tiếp cận khác nhau Được chia thành hai loại: bộ tuyến tính hóa và bộ phi tuyến tính [1]

Làm trơn nhiều bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loại nhiễu vào quá trình xử lý ảnh, nên ta cần phải lọc nhiễu Gồm các phương pháp cơ bản lọc trung bình, lọc thông thấp, Ví dụ lọc trung bình: Với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận

Làm trơn nhiều bằng lọc phi tuyến: Các bộ lọc phi tuyển cũng hay được dùng trong kỹ thuật tăng cường ảnh Một số phương pháp lọc cơ bản bộ lọc trung vị, lọc ngoài Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh còn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị "trung vị" (trung bình công của max và min) [1]

Lọc trung vị: Phương pháp này yêu cầu các giá trị pixel trong cửa sổ phải được sắp xếp theo thứ tự tăng dần hoặc giảm dần so với giá trị trung vị Độ lớn của số thường được chọn là số pixel lẻ trong cửa sổ

Lọc bên ngoài: Giả định rằng có ngưỡng cho nhiều cấp độ (có thể dựa trên thang màu xám) So sánh giá trị xám của một pixel với giá trị trung bình của tám pixel lân cận gần nhất Nếu độ lệch lớn hơn ngưỡng thì pixel này được coi là nhiễu Trong trường hợp này, hãy thay thế giá trị pixel bằng giá trị trung bình của 8 pixel xung quanh vừa được tính toán [1]

2.2.6 Phương pháp phát hiện biên

Biên là một trong những vấn đền ta cần quan tâm trong xử lý ảnh Vì ở giai đoạn phân đoạn ảnh chủ yếu dựa vào biên [1] Điểm biên: Một pixel được coi là điểm biên nếu cường độ hoặc màu sắc của nó thay đổi nhanh chóng hoặc đột ngột Ví dụ: trong ảnh 2 chiều, điểm đen được coi là điểm biên nếu điểm liền kề của nó có ít nhất một điểm trắng Đường biên (đường bao: boundary): một chuỗi các điểm biên liên tiếp tạo thành một ranh giới hoặc vòng cung [1] Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên đặc điểm chung của vẻ đẹp cục bộ trong phân tích và nhận dạng ảnh Thứ hai, mọi người sử dụng đường viền để phân biệt các vùng màu xám (màu) Ngược lại, người ta cũng sử dụng các vùng hình ảnh để xác định vị trí các đường phân chia Đại dương: để hiểu tầm quan trọng của đường viền, hãy xem ví dụ sau: khi một nghệ sĩ muốn khắc họa một cá nhân nổi tiếng, nghệ sĩ chỉ cần phác họa một vài dòng ngắn gọn mà không cần vẽ hoàn chỉnh [1]

Do đó, phương pháp phát hiện ranh giới lý tưởng là nhận biết tất cả các ranh giới trong đối tượng Định nghĩa toán học của biển ở trên là nền tảng cho việc phát hiện các cạnh Khía cạnh quan trọng là sự khác biệt giữa các pixel thường nhỏ, trong khi sự khác biệt về độ sáng của các pixel thường đáng kể ở gần ranh giới Bắt đầu từ thời điểm này, người ta thường sử dụng hai phương pháp phát hiện cạnh khác nhau: phương pháp thứ nhất dựa trên đạo hàm bậc nhất, phương pháp thứ hai dựa trên hướng di chuyển Tách ranh giới bằng đạo hàm bậc hai: điều này được sử dụng trên một số loại phương trình vi phân bậc hai để tạo ra một ranh giới Hai dạng của phương pháp đạo hàm bậc hai đã được kiểm tra: phương pháp Laplace và phương pháp trực tiếp [1]

Giới thiệu về phần mềm lập trình xử lý ảnh

2.3.1 Giới thiệu NI LabVIEW (Laboratory Virtual Insrtumentation

LabVIEW là môi trường lập trình trực quan có thể được sử dụng để tạo các ứng dụng có giao diện chất lượng chuyên nghiệp một cách nhanh chóng và dễ dàng Hàng tỷ nhà khoa học và kỹ sư sử dụng LabVIEW để tạo ra các ứng dụng phức tạp, thử nghiệm và điều khiển trực quan và có cấu hình ký hiệu đơn giản Ngoài ra, LabVIEW có thể được tăng cường bằng nhiều cấu hình phần cứng và hệ điều hành khác nhau Trên thực tế, nền tảng LabVIEW được kết hợp với hàng nghìn thiết bị vật lý và có hàng trăm thư viện được phát triển trước hỗ trợ phân tích và trực quan hóa nâng cao, giúp bạn tạo các thiết bị ảo được Tùy chỉnh theo thông số kỹ thuật [2]

Bởi vì các công cụ LabVIEW mô phỏng giao diện và chức năng của các công cụ thực, chẳng hạn như máy hiện sóng và các công cụ đa chức năng, LabVIEW thường được coi là các công cụ ảo, (Virtual Instrument), thường gọi tắt là VI VI có Front Panel và Block Diagram Front Panel là giao diện người dùng Block Diagram là chương trình phía sau giao diện người dùng Sau khi bạn xây dựng Front Panel, bạn thêm mã (code) để điều khiển các đối tượng trên Front Panel bằng cách sử dụng các hình đồ họa đại diện cho các hàm Mã trên Block Diagram là mã dạng đồ họa, thường được biết đến là G code (mã G) hoặc Block Diagram code [2]

Khác với các ngôn ngữ lập trình dạng văn bản, chẳng hạn như C++ và Visual Basic, LabVIEW sử dụng các ký hiệu thay vì câu để tạo ứng dụng Trong lập trình dựa trên văn bản, thứ tự của các dòng lệnh xác định thứ tự chương trình sẽ được thực thi LabVIEW sử dụng cách tiếp cận đồ họa để lập trình dựa trên luồng dữ liệu Trong lập trình dựa trên đồ họa luồng dữ liệu, luồng dữ liệu qua các nút trên Sơ đồ khối xác định

18 thứ tự thực hiện chương trình Khả năng lập trình đồ họa và thực thi các luồng dữ liệu là điều khiến LabVIEW khác biệt so với các ngôn ngữ lập trình có mục đích chung khác [2]

Chương trình LabVIEW có các đặc điểm sau:

- Đồ họa và biên dịch

- Lập trình theo dạng dòng chảy dữ liệu hướng dữ liệu

- Đa mục tiêu và nhiều nền tảng

- Khả năng đa luồng Đồ họa và biên dịch

Trong khi được đại diện bằng đồ họa, với các biểu tượng và dây tín hiệu thay vì văn bản, mã G trên Block Diagram có đầy đủ các khái niệm lập trình như trong hầu hết các ngôn ngữ lập trình truyền thống Ví dụ, mã G có các loại cấu trúc dữ liệu, vòng lặp, xử lý sự kiện, biến, đệ quy, và lập trình hướng đối tượng LabVIEW tự động chuyển đổi mã G thành mã máy, cho phép các máy tính có bộ vi xử lý thực thi mã đó Bạn không phải chuyển đổi mã G thành một quy trình riêng biệt [3]

Dòng chảy dữ liệu và lập trình hướng sự kiện

Các chương trình của LabVIEW tuân theo mô hình luồng dữ liệu thay vì cách tiếp cận truyền thống thường được sử dụng trong các ngôn ngữ lập trình viết như C và C++ Luồng dữ liệu được điều khiển bởi dữ liệu hoặc phụ thuộc vào nó Luồng thông tin giữa các nút trong mã G là yếu tố quyết định thứ tự thực hiện [3]

Tính năng lập trình hướng sự kiện mở rộng môi trường lập trình dạng dòng chảy dữ liệu của LabVIEW cho phép người dùng tương tác trực tiếp với chương trình mà không cần hỏi vòng (polling) Lập trình hướng sự kiện cũng tạo điều kiện thuận lợi cho việc thực hiện các hành động không đồng bộ khác trên Block Diagram [3]

19 Đa mục tiêu và nhiều nền tảng

Với LabVIEW, bạn có thể sử dụng bộ xử lý đa lõi và phần cứng bổ sung khác, chẳng hạn như FPGA, có thể song song Thông thường, ta có thể tự động chuyển đổi các ứng dụng LabVIEW thành CPU có nhiều, bốn hoặc năm lõi mà không cần lập trình bổ sung [3]

Lập trình hướng đối tượng là phổ biến trong nhiều ngôn ngữ lập trình Nó tạo điều kiện thuận lợi cho việc biểu diễn một loạt các đối tượng tương tự nhưng không giống nhau thông qua một lớp đối tượng trong phần mềm LabVIEW cung cấp các công cụ và chức năng cho phép sử dụng lập trình hướng đối tượng trong mã G [3] Đa luồng và quản lý bộ nhớ

LabVIEW cho phép mã thực thi liên tiếp Các ngôn ngữ khác phải được quản lý thủ công để tận dụng các tài nguyên sẵn có Môi trường LabVIEW, bao gồm trình biên dịch và hệ thống thời gian chạy, tự động thực thi mã liên tiếp bất cứ khi nào có thể Thông thường, các chi tiết cụ thể của hệ thống thực thi ít quan trọng đối với bạn vì hệ thống hoạt động hiệu quả mà không cần sự can thiệp của con người Tuy nhiên, LabVIEW cũng cung cấp cho bạn các tùy chọn giúp nâng cao hiệu suất chương trình.

Giới thiệu về Arduino Mega 2560

Arduino Mega2560 là một bo mạch dựa trên bộ vi xử lý nhằm tạo điều kiện tương tác thuận tiện hơn giữa các ứng dụng hoặc môi trường Đoạn này chứa một bảng mạch nguồn miễn phí được thiết kế trên nền tảng vi điều khiển Atmega 2560 Model hiện tại có 1 cổng đầu vào USB, 16 kênh đầu vào analog, 54 giao diện analog kỹ thuật số có thể so sánh với nhiều thẻ mở rộng khác nhau [4]

2.4.2 Thông tin cấu hình Arduino Mega2560

Bảng 2.1: Bảng thông số Arduino Mega2560

Vi điều khiển ATmega2560 Đ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 điện tiêu thụ 250mA Điện áp khuyên dùng 7-12V Điện áp giới hạn 6-20V

Dòng tối đa trên mỗi chân I/O 30mA

Dòng ra tối đa (5V) 500mA

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

Bộ nhớ flash 256 Kb, 8 Kb sử dụng cho Bootloader

Cấu tạo chính của Arduino Mega2560 bao gồm các phần sau: [4]

 Cổng USB: đây là loại cổng giao tiếp để ta nạp code từ PC lên vi điều khiển Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính

 Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên hoặc một nguồn từ 9V đến 12V Với các chân điện như sau:

 GND (Ground): cực âm của nguồn điện cấp cho Arduino Mega Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino Mega, nổi cực dương của nguồn với chân này và cực âm của nguồn với chân GND

 IOREF: điện áp hoạt động của vi điều khiển trên Arduino Mega có thể được đo ở chân này và nó luôn bằng 5V Mặc dù vậy không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

 RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ [2]

Hình 2.6: Sơ đồ chân Arduino Mega2560

RESET: Arduino Mega Mega 2560 có sẵn mạch reset với nút ấn để thiết lập lại hệ thống và chân này có thể được sử dụng khi kết nối các thiết bị khác để thiết lập lại bộ điều khiển

XTAL1, XTAL2: Thạch anh(16Mhz) được kết nối với xung clock cung cấp cho bộ điều khiển

AREF: Chân này được dùng khi sử dụng ADC để chuyển đổi tín hiệu với điện áp tham chiếu bên ngoài mà không muốn sử dụng điện áp tham chiếu nội bộ 1.1V hoặc 5V [4]

Chân số: Từ 0-53 (digital) có thể được sử dụng làm đầu vào hoặc đầu ra cho thiết bị được thiết lập bằng các hàm Mode (), digtalWrite (), digitalRead () [4] Ứng dụng:

Thiết bị đầu ra: Relay, LED, buzzer, LCD và các thiết bị khác

Thiết bị đầu vào: Nút ấn, cảm biến siêu âm, cần điều khiển và các thiết bị khác

Từ 0-15 (Analog) có thể được sử dụng như chân đầu vào tương tự cho bộ ADC, nếu không sử dụng nó hoạt động như chân digital bình thường Nó được thiết lập bởi các hàm pinMode () khai báo chân, analogRead () để đọc trạng thái chân và nhận giá trị kỹ thuật số cho tín hiệu analog Lưu ý phải cẩn thận để lựa chọn điện áp tham chiếu bên trong hoặc bên ngoài và chân Aref [4] Ứng dụng:

Thiết bị đầu vào: Cảm biến nhiệt độ, cảm biến (như ldr, irled và độ ẩm) và các thiết bị khác

Chân có Chức năng thay thế:

Chân SPI: Chân 22-SS, 23_SCK, 24-MOSI, 25-MISO

Các chân này được sử dụng cho giao tiếp nối tiếp với giao thức SPI để liên lạc giữa 2 thiết bị trở lên SPI cho phép bit phải được thiết lập để bắt đầu giao tiếp với các thiết bị khác [4] Ứng dụng:

Lập trình điều khiển AVR, giao tiếp với những người khác ngoại vi như LCD và thẻ SD

Chân 20 cho SDA và 21 cho SCK (Tốc độ 400khz) để cho phép liên lạc hai dây với các thiết bị khác Hàm được sử dụng là wire.begin() để bắt đầu chuyển đổi I2C, với wire.Read () để đọc dữ liệu i2c và wire.Write () để ghi dữ liệu i2c [4] Ứng dụng:

Thiết bị đầu ra: LCD và liên lạc giữa nhiều thiết bị với hai dây

Thiết bị đầu vào: RTC và các thiết bị khác

Chân 2-13 có thể được sử dụng như đầu ra PWM với hàm analogWrite () để ghi giá trị pwm từ 0-255 [4] Ứng dụng:

Thiết bị đầu ra: Điều khiển tốc độ của động cơ, ánh sáng mờ, pid cho hệ thống điều khiển hiệu quả

Chân này được sử dụng cho giao tiếp nối tiếp giữa bo mạch với máy tính hoặc hệ thống khác để chia sẻ và ghi dữ liệu Nó được sử dụng với hàm serialBegin () để cài đặt tốc độ truyền và bắt đầu truyền thông với serial.Println() để in mảng ký tự (mảng char) ra thiết bị khác [4] Ứng dụng:

Bộ điều khiển truyền thông và máy tính

Chân này được sử dụng để ngắt Để kích hoạt chân ngắt phải cài đặt bật ngắt toàn cục [4] Ứng dụng:

Bộ mã hóa vòng quay, nút bấm dựa trên ngắt và các nút khác

Chân 18 - 21,2,3 ngắt phần cứng được sử dụng cho các ứng dụng ngắt Ngắt phần cứng phải được bật với tính năng ngắt toàn cục để ngắt quãng từ các thiết bị khác [4] Ứng dụng:

Nhấn nút cho chương trình ISR, đánh thức bộ điều khiển bằng thiết bị bên ngoài như cảm biến siêu âm và các thiết bị khác

Arduino là một nền tảng nguồn mở được sử dụng để tạo các ứng dụng điện từ tương tác với các ứng dụng khác hoặc môi trường dễ dàng hơn

Arduino tương tự như một chiếc máy tính nhỏ, điều này cho phép người dùng thực hiện các dự án điện tử mà không cần thêm công cụ để nạp code [4]

Một số ứng dụng của Arduino trong đời sống:

- Làm Robot Arduino có thể đọc cảm biến, điều khiển động cơ Nó thường được sử dụng làm bộ phận trung tâm của nhiều loại robot

- Xây dựng hệ thống nhà thông minh, IOTs

- Điều khiển đèn tín hiệu giao thông, tạo hiệu ứng ánh sáng trên biển quảng cáo

- Điều khiển các thiết bị cảm biến ánh sáng, âm thanh

- Xây dựng hệ thống máy in 3D

Các ứng dụng khác của Arduino rất phong phú và đa dạng, tùy theo sự sáng tạo của người dùng [4]

THIẾT KẾ VÀ LẬP TRÌNH

Giới thiệu

Để thiết kế phần mềm phân loại nhãn chai nước, ta cần nghiên cứu, phân tích để chọn ra hướng xử lý phù hợp cũng như công cụ xử lý đảm bảo các yêu cầu cơ bản như sau:

- Đảm bảo phân loại chính xác trong thời gian dài

- Đảm bảo tốc độ xử lý nhanh

- Dễ sử dụng, tinh chỉnh sao cho phù hợp với yêu cầu thực tế.

Tính toán và thiết kế

3.2.1 Thiết kế sơ đồ khối hệ thống

Với giới hạn yêu cầu đề tài đưa ra, mô hình gồm bộ điều khiển trung tâm LabVIEW và Arduino Mega, khối thu tín hiệu hình ảnh tử bền ngoài là Camera, sau đó hoạt điều khiển hoạt động của xi lanh, nhóm tiến hành thiết kế sơ đồ khối hệ thống như sau:

Hình 3.1: Sơ đồ khối hệ thống

Chức năng của từng khối:

 LabVIEW: có chức năng nhận tín hiệu hình ảnh từ khối thu tín hiệu hình ảnh, tiến hành xử lý hình ảnh và phân tích nhận dạng, trả kết quả, sau đó đưa ra mệnh lệnh cho Arduino Mega Ở đây ta sử dựng phần mềm LabVIEW được lập trình trực tiếp trên máy tính

 Arduino: có chức năng nhận phát tín hiệu, là cầu nối của phần mềm Labview với các thiết bị ngoại vi như Sensor, relay, thực hiện các lệnh của LabVIEW cũng như gửi tín hiệu về Ở đây ta sử dụng bộ kit Arduino Mega2560

Hình 3.2: Khối xử lý Arduino

Khối Camera: Có chức năng thu thập tín hiệu hình ảnh từ thực tế chuyền về tín hiệu điện và gửi dữ liệu cho phần mềm LabVIEW Ở đây sử dụng Camera Webcam Logitech C270 HD 720p

Khối cảm biến: Có chức năng gửi tín hiệu điện cho khối xử lý khi có vật đi qua Ở đây sử dụng cảm biến SMC D-H7A1

Khối cơ cấu chấp hành khí nén: Hệ thống điều khiển khí nén sẽ thực hiện nhiệm vụ đưa sản phẩm lỗi ra khỏi băng tải để hoàn thành việc phân loại Hệ thống sẽ gồm 2 phần chính là xi lanh và van điện từ

Hình 3.5: Van điện từ và xilanh

3.2.2 Sơ đồ kết nối hệ thống a Khối xử lý

Giao thức truyền nhận dữ liệu giữa LabVIEW và Arduino

Giao thức kết nối bo mạch Arduino Mega với máy tính qua USB là thông qua chip USB-to-Serial CH430E trên bo mạch, cổng USB của máy tính sẽ chuyển thành tín hiệu nối tiếp sẽ kết nối với các chân TX và RX của bo mạch, điều này sẽ tạo điều kiện thuận lợi cho việc truyền và nhận dữ liệu giữa bo mạch và máy tính Đây cũng chính là quá trình chuyển chương trình từ máy tính sang bộ điều khiển Arduino Mega

Hình 3.6: Giao tiếp giữa máy tính và Arduino b Khối camera

Giao thức truyền nhận dữ liệu giữa LabVIEW và Camera Để thu thập ảnh và xử lý ảnh từ Camera trên phần mềm Labview, ta sử dụng 2 khối Vision Acquistion và Vision Assistant trong thư viện phần mềm Labview, với:

+ Vision Acquistion: cho phép người dung xây dựng chương trình thu nhận hình ảnh tử camera một các linh hoạt (kết nối không dây, có dây, Wifi, 3G …)

+ Vision Assistant: cho phép xây dựng chương trình xử lý và nhận dạng ảnh với các chương trình Color Matching – nhận dạng những đối tượng màu sắc, Color Location = nhận dạng đối tượng theo phân bố khu vực màu, Color Pattern Matching = nhận dạng theo mẫu đối tượng, Object Tracking – bám đối tượng …

Quá trình thu nhận ảnh, xử lý cũng như xuất tín hiệu điều khiển ta có thể hình dung qua các bước thể hiện như hình:

Hình 3.7: Các bước thu thập và xử lý ảnh trên phần mềm LabVIEW c Khối hệ thống điều khiển xilanh

Xi lanh khí nén là dạng cơ cấu vận hành sử dụng năng lượng được lưu trữ trong quá trình nén để tạo ra động năng Xi lanh khí nên hay còn được gọi là pen khí nén là các thiết bị cơ học tạo ra lực, thường kết hợp với chuyển động, và được cung cấp bởi khí nén (lấy từ máy nén khí thông thường) Để thực hiện chức năng của mình, xi lanh khí nén truyền một lực bằng cách chuyển năng lượng tiềm năng của khí nén vào động năng Điều này đạt được bởi khí nén có khả năng nở rộng, không có đầu vào năng lượng bên ngoài, mà chính nó xảy ra do áp lực được thiết lập bởi khí nén đang ở áp suất lớn hơn áp suất khí quyển Sự giãn nở không khí này làm cho piston di chuyển theo hướng mong muốn

Một khi được kích hoạt, không khí nén vào trong ống ở một đầu của piston và do đó, truyền tải lực trên piston Do đó, piston sẽ di dời (di chuyển) bằng khí nén

Hình 3.8: Xilanh khí nén Để xi lanh hoạt động được thì ta cần có van điện từ để điều khiển hành trình của pittong

Van điện từ còn được gọi với cái tên solenoid valve Đây là một thiết bị cơ điện, dùng để kiểm soát dòng chảy chất khí hoặc lỏng dựa vào nguyên lí chặn đóng mở do lực tác động của cuộn dây điện từ Đối với van điện từ thì tuỳ vào loại xilanh mà chúng ta có cách chọn cho phù hợp Và nhóm chọn van điện từ 5/2 cho đề tài này Van khí nén sẽ điều khiển bởi chân Digital của kit Arduino với Module Relay nối trung gian

Hình 3.9: Van điện từ khí nén 5/2 d Khối nguồn

Cuộn dây của van 5/2 sử dụng dòng 125mA do đó nhóm ta sử dụng nguồn 24V – 5A để cấp nguồn cho cuộn dây

Hình 3.10: Nguồn tổ ong 24VDC – 5A

Nguồn cấp cho cảm biến, Relay 5V

Các thiết bị này có điểm chung là đều hoạt động tốt với mức điện áp 5VDC, chỉ khác dòng điện hoạt động:

- Cảm biến SMC D-H7A1 hoạt động với dòng điện 10mA

- Relay 5V hoạt động với dòng điện cho phép qua tối đa Imax = 10A, dòng kích Ikich

Dòng điện tổng khoảng 15mA nên nhóm quyết định sử dụng trực tiếp nguồn 5V từ Arduino để cấp cho các thiết bị này

Sơ đồ kết nối toàn mạch

Hình 3.11: Sơ đồ kết nối toàn mạch

Trong đề tài này chúng ta sử dụng phần mềm Labview để nhận hình ảnh từ Camera và xử lý các thông số giúp nhận biết phân loại đúng đối tượng Bên cạnh đó, việc truyền nhận dữ liệu giữa Labview và Arduino sẽ giúp dễ dàng điều khiển các thiết bị ngoại vi

3.2.3 Truyền nhận dữ liệu giữa Labview và camera Để lấy khối hiển thị ảnh từ webcam ta làm theo các bước sau:

Functions  Vision and Motion  Vision Express  Vision Acquistion

Hình 3.12: Khối hiển thị ảnh

Hình 3.13: Thiết lập nhận ảnh

- Sau khi chọn nguồn cấp ảnh bên phần viết code ta thu nhận được khối nhận ảnh (Vision Acquisition) một vòng lặp liên tục và phần hiển thị hình ảnh trên bảng hiển thị (Image Out)

Hình 3.14: Khối nhận ảnh và xuất ảnh

3.2.4 Lập trình giao tiếp giữa board Arduino và LabVIEW Để kết nối và làm việc với Arduino, trên LabVIEW cần phải cài đặt một bộ

Arduino VI Đây là những khối được phát triển trước có thể được sử dụng để giúp LabVIEW giao tiếp với các thiết bị bên ngoài Thông qua một loạt VI, LabVIEW có thể thu thập dữ liệu từ các chân Arduino và xử lý, kiểm soát hoặc hiển thị kết quả trên màn hình máy tính Do sự phổ biến và tính chất tiêu chuẩn hóa của Arduino, bộ Vis hiện nay đã có sẵn rộng rãi mà người dùng không cần phải tự lập trình [3]

Thông thường, khi viết giao diện cần có ngôn ngữ lập trình như C++, JAVA, C# hoặc các ngôn ngữ khác Ngoài ra, để giao tiếp với nền tảng Arduino, chúng ta phải viết mã C Với sự hỗ trợ của các VI của LabVIEW, chúng ta chỉ cần thiết kế giao diện, giao thức truyền thông sẽ được thực hiện thông qua các khối chức năng LINX trong các VIs [3]

Chức năng của từng khối hàm LINX:

- Chân Serial Port: Chỉ định cổng COM của thiết bị LINX kết nối

THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

Thực nghiệm

Quá trình thực nghiệm được diễn ra như sau:

Khi khởi động chương trình, các chai nước sẽ lần lượt di chuyển liên tục trên băng tải cú chiều dài 2m Khi di chuyển được ẵ quóng đường chai nước sẽ giao với trạm phân loại chai nước thiếu nhãn, 1 bên là Camera cùng xi lanh, bên còn lại là băng tải vận chuyển những sản phẩm lỗi, nếu sản phẩm đạt yêu cầu sẽ được vận chuyển đến cuối băng tải tiếp tục cho khâu tiếp theo

Nhóm tiến hành thực nghiệm nhằm kiểm tra tính chính xác, ổn định của chương trình trong điều kiện phân loại sản phẩm trong nhiều điều kiện tốc độ băng tải khác nhau

Hình 4.1: Giao diện làm việc của phần mềm

Hình 4.2: Giao diện khi phát hiện sản phẩm đạt yêu cầu

Hình 4.3: Giao diện khi phát hiện sản phẩm lỗi

Kết quả

Để có kết quả khách quan nhất, nhóm thực hiện xử lý liên tiếp mỗi lượt 10 sản phẩm trong đó có 5 sản lỗi được sắp xếp thứ tự ngẫu nhiên Điều kiện làm việc trong môi trường có ánh sáng tốt, màu sắc của đối tượng thực nghiệm không có sự sai lệch Tốc độ băng tải trong thực nghiệm lần lượt là:

Trường hợp 1: Băng tải chạy với tốc độ 0.25 m/s

Bảng 5.1: Kết quả thực nghiệm trường hợp 1

Tổng sản phẩm Sản phẩm lỗi Độ chính xác (%)

Trường hợp 2: băng tải chạy với tốc độ 0.3 m/s

Bảng 5.2: Kết quả thực nghiệm trường hợp 2

Tổng sản phẩm Sản phẩm lỗi Độ chính xác (%)

Trường hợp 3: băng tải chạy với tốc độ 0.4 m/s

Bảng 5.3: Kết quả thực nghiệm trường hợp 3

Tổng sản phẩm Sản phẩm lỗi Tỉ lệ chính xác

Lần 5 10 4 90% Để các chai nước không đạt khi được xi lanh đẩy sang băng tải lỗi không bị đỗ, thời gian để xi lanh thực hiện hành trình là 1,2(s) Như vậy để quá trình phân loại được diễn ra liên tục, ổn định, các chai nước phải cách nhau một khoảng sao cho các lần phân loại sản phẩm cách nhau 1,5(s), đáp ứng được năng lực sản xuất tối đa trên lý thuyết của dây chuyền là 2400 chai/giờ Từ đó tính được khoảng cách S giữa các chai:

S = 𝒗 bt 𝒕 (𝒎) Với + 𝑣 bt : vận tốc băng tải (m/s) ph

+ 𝑡: khoảng thời gian xử lý ảnh giữa hai sản phẩm (t = 1,5s)

Ngày đăng: 07/06/2024, 16:31

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Dây chuyền sản xuất nước đóng chai - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 1.1 Dây chuyền sản xuất nước đóng chai (Trang 10)
Hình 1.2: Băng chuyền vận chuyển sản phẩm - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 1.2 Băng chuyền vận chuyển sản phẩm (Trang 11)
Hình 1.3: Trạm phân loại sản phẩm - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 1.3 Trạm phân loại sản phẩm (Trang 12)
Hình 1.4: Đối tượng phân loại, chai PET 500 ml - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 1.4 Đối tượng phân loại, chai PET 500 ml (Trang 12)
Hình 2.1: Các bước cơ bản xử lý ảnh - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 2.1 Các bước cơ bản xử lý ảnh (Trang 16)
Hình 2.2: Lân cận 4 và lân cận 8 - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 2.2 Lân cận 4 và lân cận 8 (Trang 19)
Hình 2.6: Sơ đồ chân Arduino Mega2560 - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 2.6 Sơ đồ chân Arduino Mega2560 (Trang 31)
Hình 2.8: Ảnh chỉnh hệ số màu - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 2.8 Ảnh chỉnh hệ số màu (Trang 39)
Hình 3.2: Khối xử lý Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.2 Khối xử lý Arduino (Trang 42)
Hình 3.5: Van điện từ và xilanh - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.5 Van điện từ và xilanh (Trang 43)
Hình 3.3: Khối Camera - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.3 Khối Camera (Trang 43)
3.2.2. Sơ đồ kết nối hệ thống - ứng dụng labview trong phân loại nhãn chai nước bằng camera
3.2.2. Sơ đồ kết nối hệ thống (Trang 44)
Hình 3.7: Các bước thu thập và xử lý ảnh trên phần mềm LabVIEW - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.7 Các bước thu thập và xử lý ảnh trên phần mềm LabVIEW (Trang 45)
Sơ đồ kết nối toàn mạch - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Sơ đồ k ết nối toàn mạch (Trang 47)
Hình 3.13: Thiết lập nhận ảnh - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.13 Thiết lập nhận ảnh (Trang 48)
Hình 3.14: Khối nhận ảnh và xuất ảnh - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.14 Khối nhận ảnh và xuất ảnh (Trang 49)
Hình 3.21: Khối giao tiếp Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.21 Khối giao tiếp Arduino (Trang 52)
Hình 3.22: Code điều khiển thiết bị ngoại vi bằng Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.22 Code điều khiển thiết bị ngoại vi bằng Arduino (Trang 53)
Hình 3.23: Lưu đồ giải thuật phần mềm phân loại nhãn chai - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.23 Lưu đồ giải thuật phần mềm phân loại nhãn chai (Trang 54)
Hình 3.24: Khối xử lý ảnh - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.24 Khối xử lý ảnh (Trang 56)
Hình 3.26: Thiết lập vùng nhận diện chai nước - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.26 Thiết lập vùng nhận diện chai nước (Trang 57)
Hình 3.27: Thiết lập vùng nhận diện màu sắc nhãn chai - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.27 Thiết lập vùng nhận diện màu sắc nhãn chai (Trang 58)
Hình 3.28: Chọn màu sắc dùng để tiến hành phân loại - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.28 Chọn màu sắc dùng để tiến hành phân loại (Trang 58)
Hình 3.29: Đặt giá trị Minimum Match Score - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.29 Đặt giá trị Minimum Match Score (Trang 59)
Hình 3.30: Đường dẫn đến cửa số nạp chương trình cho Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.30 Đường dẫn đến cửa số nạp chương trình cho Arduino (Trang 59)
Hình 3.32: Chọn cổng COM đang kết nối giữa máy tính và Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.32 Chọn cổng COM đang kết nối giữa máy tính và Arduino (Trang 60)
Hình 3.31: Cửa sổ LINX Firmware Wizard - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.31 Cửa sổ LINX Firmware Wizard (Trang 60)
Hình 3.34: Giao diện phần mềm và code LabVIEW - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.34 Giao diện phần mềm và code LabVIEW (Trang 61)
Hình 3.33: Hoàn thành việc nạp dữ liệu cho Arduino - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 3.33 Hoàn thành việc nạp dữ liệu cho Arduino (Trang 61)
Hình 4.1: Giao diện làm việc của phần mềm - ứng dụng labview trong phân loại nhãn chai nước bằng camera
Hình 4.1 Giao diện làm việc của phần mềm (Trang 62)

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

TÀI LIỆU LIÊN QUAN

w