Với tất cả những ứng dụng trên thì phương pháp xử lý ảnh trong LabVIEW đều theo lưu đồ sau: Hình 2.7: Lưu đồ xử lý ảnh trong LabVIEW Hình 2.8: Sơ đồ kết nối các khối xử lý ảnh trong L
Trang 1
CHƯƠNG 2
TỔNG QUAN VỀ LabVIEW
2.1 LabVIEW là gì
LabVIEW (viết tắt của Laboratory Virtual Instrumentation Engineering Workbench) là môi trường ngôn ngữ đồ họa hiệu quả trong việc giao tiếp đa kênh giữ con người, thuật toán và các thiết bị
Gọi LabVIEW là ngôn ngữ đồ học hiệu quả vì về cách thức lập trình, LabVIEW khác với các ngôn ngữ C (hay Python, Basic, vv.) Thay vì sử dụng các từ vựng (từ khóa) cố định, LabVIEW sử dụng các khối hình ảnh sinh động và các dây nối để tạo
ra các lệnh và các hàm như trong hình 2.2 Đặc biệt, LabVIEW rất phù hợp đối với
kỹ sư, nhà khoa học, hay giảng viên Chính vì vậy LabVIEW trở thành một trong những công cụ phổ biến trong các ứng dụng thu thập dữ liệu từ các cảm biến, phát triển các thuật toán, và điều khiển thiết bị tại các phòng thí nghiệm trên thế giới
Hình 2.1: Giao diện LabVIEW
Trang 2
Hình 2.2: Hàm truyền trong LabVIEW
Hình 2.3: Giao diện điều khiển trong LabVIEW
Về ý nghĩa kỹ thuật, LabVIEW cũng được dùng để lập trình ra các chương trình (source code: mã nguồn) trên máy tính tương tự các ngôn ngữ lập trình dựa trên chữ (text – bassed language) như C, Python, Java, Basic, vv
Đồng thời, LabVIEW hỗ trợ các kỹ sư, nhà khoa học và sinh viên, vv Xây dựng (thực thi) các thuật toán một cách nhanh, gọn, sáng tạo, và dễ hiểu nhờ các khối hình ảnh có tính gợi nhớ và cách thức hoạt động theo kiểu dòng dữ liệu (date flow) lần lượt từ trái qua phải Các thuật toán này được áp dụng lên các mạch điện
và cơ cấu chấp hành thực nhờ vào việc kết nối hệ thống thật với LabVIEW thông qua nhiều chuẩn giao tiếp như chuẩn giao tiếp RS232 (giao tiếp qua cổng COM), chuẩn USB, chuẩn giao tiếp mạng TCP/IP, UDP, chuẩn GBIB, Vì vậy LabVIEW
là một ngôn ngữ giao tiếp đa kênh
Trang 3
2.2 Các ứng dụng của LabVIEW
LabVIEW được sử dụng trong các lĩnh vực đo lường, tự động hóa, cơ điện
tử, robotics, vật lý, toán học, sinh học, vật lý, ôtô, Nhìn chung:
- LabVIEW giúp kỹ sư kết nối bất kỳ cảm biến và bất kỳ cơ cấu chấp hành nào với máy tính
- LabVIEW có thể được sử dụng để xử lý các kiểu dữ liệu như tín hiệu tương
tự (analog), tín hiệu số (digital) hình ảnh (vision), âm thanh (audio)
- LabVIEW hỗ trợ các giao thức giao tiếp khác nhau như RS232, RS485, TCP/IP, PCI, PXI, và như vậy
- LabVIEW cũng có thể tạo ra các thực thi độc lập và các thư viện chia sẽ (ví dụ như viên liên kết động DLL), bởi vì LabVIEW là một trình biên dịch 32 – bit
Hình 2.4: Hệ thống đọc code tự động trong các dây chuyền sản xuất
Trang 4
Hình 2.5: Hệ thống quét bằng lưới để phân tích dòng chảy cho sản phẩm nhựa
Hình 2.6: Hệ thống phân loại sản phẩm trong sản xuất của công ty Bosch
Trang 5
Với tất cả những ứng dụng trên thì phương pháp xử lý ảnh trong
LabVIEW đều theo lưu đồ sau:
Hình 2.7: Lưu đồ xử lý ảnh trong LabVIEW
Hình 2.8: Sơ đồ kết nối các khối xử lý ảnh trong LabVIEW
THU NHẬN ẢNH
(Vision
Acquisition)
XỬ LÝ ẢNH
(Vision Assistant)
XUẤT TÍN HIỆU
(NI VISA)
- Giao tiếp camera,
webcam
- Lựa chọn nguồn
ảnh
- Thiết lập thông số
ảnh
- Chọn thông số
xuất ra
- Lấy tín hiệu từ Vision Acquisition
- Phân tích, chỉnh sửa ảnh
- Trích chọn đặc điểm ảnh
- Chọn thông số xuất ra
- Lấy tín hiệu sau khi xử lý ảnh
- Giao tiếp với mạch điều khiển
- Đưa tín hiệu điều khiển vào cơ cấu chấp hành
Trang 6
2.3 Toolkits thu thập hình ảnh NI Vision Acquisition Software
Việc thu nhận ảnh trong môi trường LabVIEW được thực hiện riêng thông qua module Vision Acquisition Đây là một module mở rộng được lập trình với chức năng thực hiện việc tìm kiếm camera đang liên kết với máy, thu nhận ảnh, xuất ảnh nhận được về môi trường LabVIEW và đưa dữ liệu xuất sang môi trường
xử lý ảnh (Vision Assistant) Trong LabVIEW, module này tương ứng với hàm Vision Acquisititon nằm trong thư viện Vision Express
Cách lấy hàm Vision Acquisition trong LabVIEW
Hình 2.9: Thực hiện hàm Vision Acquisition
Sau khi lấy hàm Vision Acquisition để lập trình thu nhận ảnh, double click vào
biểu tượng của hàm, giao diện lập trình sẽ mở ra và việc thực thi quá trình thu nhận ảnh được thiết lập hoàn toàn riêng biệt trên module này
Trang 7
Quá trình thu nhận ảnh được thực hiện qua 4 bước:
Hình 2.10: Quá trình thu nhận ảnh trong Vision Acquisition
- Bước đầu tiên: là chọn địa chỉ để lấy ảnh nguồn, Select Acquisition Source Vision Acquisition cho phép thực hiện xử lý ảnh tĩnh, ảnh động (trực tiếp từ camera hoặc lấy từ file video định dạng AVI )
Hình 2.11: Chọn camera hoặc thư mục chứa ảnh
- Bước 2: lựa chọn phương pháp thu thập ảnh, Select Acquisition type , là lựa
chọn cách thức mà phần mềm sẽ lấy ảnh bao gồm: lấy một ảnh, lấy ảnh liên tục, lấy ảnh liên tục sau một khoảng thời gian (lấy mẫu) với mỗi cách thức lấy ảnh, trên LabVIEW sẽ sinh ra kiểu vòng lặp tương ứng
CHỌN ẢNH
NGUỒN
PHƯƠNG PHÁP THU THẬP ẢNH
CÀI ĐẶT THÔNG
SỐ CHO ẢNH
THIẾT LẬP TÍN HIỆU VÀO/RA
Trang 8
Hình 2.12: Lựa chọn phương pháp thu thập ảnh
- Bước 3: cài đặt các thông số cho ảnh thu nhận, Configure Acquisition Setting
, là cài đặt các thông số cho ảnh sẽ thu nhận bao gồm: độ phân giải, chế độ chụp, các thông số về độ sáng, độ tương phản, không gian màu cho ảnh và kiểm tra các
thông số đã cài đặt bằng cách click vào nút test để xem ảnh và quyết định tiếp tục
hoặc quay lại chỉnh sửa các thông số cho thích hợp
Hình 2.13: Cài đặt các thông số thu nhận ảnh
Trang 9
- Bước 4: là bước cuối cùng và là bước quan trọng nhất Tại đây người lập
trình sẽ lựa chọn các thông số để thiết lập đầu vào/ra cho ảnh, Select Control/Indicator Các thông số đầu vào (control) chính là các thông số đã được
cài đặt ở bước 3, khi lựa chọn nó, phần mềm sẽ cho phép sửa chữa các thông số này ngay trên LabVIEW, nghĩa là có thể thay đổi các thông số này mà không cần quay
lại cửa sổ Vision Acquisition Các thông số đầu ra (Indicator) là các yếu tố kết quả
của quá trình thu nhận ảnh mà người lập trình mong muốn lấy ra để tiếp tục xử lý,
trong đó, quan trọng nhất là image out được chọn mặc định vì đây sẽ là yếu tố liên
kết sang module xử lý ảnh và hiển thị ảnh lên trên giao diện khi chạy phần mềm
Hình 2.14: Thiết lập các tín hiệu đầu vào/ra
2.4 Toolkits xử lý ảnh
2.4.1 Vision Development Module (VDM)
Đây là công cụ chung nhất cho việc tạo các hàm truyền xử lý các hình ảnh Ngoài ra VDM còn cho phép người dùng cài đặt thêm các công cụ xử lý ảnh mở rộng thêm từ tất cả nhà cung cấp phần mềm của LabVIEW
Trang 10
Hình 2.15: Các công cụ trong VDM Trong VDM còn cung cấp cho người sử dụng nhiều driver cho các loại camera vision trong các dây chuyền sản xuất Hay rất nhiều công cụ hỗ trợ như:
- Vision Utilities: cung cấp cho người dùng các tiện ích tách màu, sao chép điểm màu, chọn vùng cần phân tích màu,…
- Image Processing: xử lý tất cả các màu và hình ảnh đã phân tích ở công cụ tiện ích
- Machine Vision: cung cấp cho người sử dụng tất cả các công cụ tính năng của các camera vision trong dây chuyền sản xuất như: đếm sản phẩm, tính diện tích bề mặt,…
- Ngoài ra còn có các công cụ của NI nhằm cung cấp cho tất cả dòng sản phẩm
mà công ty NI đang có trên thị trường để tạo nên sự tương thích nhằm nâng cao hiệu suất, tính ổn định trong các dây chuyền tự động hóa
2.4.2 Module Vision Assistant
Sau khi xử lý các hình ảnh bằng VDM thì chúng ta bắt đầu thực hiện các bước tạo code cho các hình ảnh mà ta đã phân tích và xử lý trước đó
Trang 11
Hình 2.16: Thực hiện hàm Vision Assistant
Hình 2.17: Giao diện module Vision Assistant
Ảnh sau khi thu nhận bằng Vision Acquisition sẽ được đưa sang module Vision Assistant để xử lý Đây là bước quan trọng vì toàn bộ các công việc chính của xử lý
ảnh đều tập trung ở đây Xử lý ảnh là bước không chỉ yêu cầu người sử dụng các kỹ năng về lập trình mà còn là vấn đề tư duy để giải quyết vấn đề chính xác và làm cho chương trình đơn giản nhất vì chương trình càng tinh gọn, tốc độ xử lý càng nhanh
Trong LabVIEW, module này chính là hàm Vision Assistant nằm trong thư viện Vision Express, chung với Vision Acquisition
Trang 12
Tùy vào từng trường hợp, từng đặc điểm cần nhận dạng, từng loại camera mà người lập trình sẽ sử dụng các công cụ khác nhau Tuy nhiên, nhìn chung, quá trình
xử lý ảnh sẽ trải qua các bước:
Đầu tiên, ảnh khi mới đưa vào sẽ có chất lượng không cao, vì vậy, cần phải cải thiện chất lượng hình ảnh để làm đặc điểm cần nhận diện nổi lên rõ nét nhất Tùy vào ứng dụng mà lựa chọn công cụ thích hợp khi nâng cao chất lượng hình ảnh và làm nổi bật đặc điểm nhận dạng bằng cách thay đổi không gian màu Ảnh đầu vào
là một ảnh ở không gian RGB, để nhận dạng chính xác màu của vật thể, ảnh sẽ được chuyển sang một không gian màu khác sao cho đặc điểm của ảnh là nổi bật nhất
Đây là một ví dụ đơn giản để nâng cao chất lượng để làm nổi bật đặc điểm cần nhận dạng Những người có kinh nghiệm lập trình xử lý ảnh với Vision Assistant sẽ
có nhiều cách để cải thiện chất lượng hình ảnh bằng nhiều công cụ khác nhau trong phần mềm
Ảnh đầu vào có màu nâu trong không gian RGB
Hình 2.18: Xử lý ảnh đầu vào Qua ví dụ, có thể nhận thấy ở không gian màu đỏ làm ảnh nổi bật so với không gian màu xanh (vì màu vàng có giá trị đỏ trong không gian RGB cao)
Trang 13
Ảnh đầu vào sau khi chuyển sang không gian màu đỏ RGB-Red Plane
Hình 2.19: Kết quả sau khi xử lý ảnh đầu vào ở không gian đỏ
Ngoài ra, ở bước này cũng cho phép người trích chọn một phần ảnh để nhận diện Đa số ứng dụng trong xử lý ảnh công nghiệp không thực hiện trên toàn bộ ảnh nhận được mà chỉ cần nhận diện một đặc điểm ở một vị trí nào đó của ảnh, vì vậy phần mềm cho phép chọn ra một vùng nào đó gọi là ROI (Region Of Interest) của ảnh để xử lý, điều này không chỉ giúp việc nhận diện được chính xác mà còn giúp giảm dung lượng chương trình giúp chương trình chạy nhanh hơn
Tùy vào công cụ phần mềm sẽ cho phép xử lý trên ảnh có dung lượng lớn hoặc nhỏ, vì vậy phần mềm sẽ có công cụ để nén ảnh hoặc chuyển đổi kiểu ảnh tùy vào đầu vào và đầu ra của mỗi bước trong quá trình xử lý
Sau khi làm nổi bật đặc điểm cần nhận dạng, ảnh sẽ được xử lý tùy theo ứng dụng: nhận dạng, đo kích thước, đếm số lượng, nhận dạng chữ viết, đọc mã vạch
mà phần mềm hỗ trợ Và tùy vào bước xử lý sẽ có những nội dung mà người lập trình phải quy định để gán kết luận cho ảnh
Cuối cùng, các giá trị xử lý sẽ được lựa chọn qua bước select control, cũng giống như ở phần thu nhận ảnh, các giá trị của các bước trong quá trình xử lý sẽ được đưa ra để lập trình trên LabVIEW
Trang 14
Lựa chọn yếu tố đầu vào và đầu ra để kiểm soát quá trình xử lý ảnh
Hình 2.20: Chọn lựa tín hiệu đầu ra
2.4.3 Vision Builder for Automated Inspection (VBAI)
Hai công cụ trên đã giúp việc lập trình xử lý ảnh nhanh và hiệu quả cao trong LabVIEW Trong trường hợp bạn cần tạo ứng dụng mà hoàn toàn không muốn lập trình thì VBAI là công cụ để làm việc này
VBAI là một chương trình độc lập với LabVIEW, dùng để tạo ứng dụng xử
lý ảnh hoàn toàn bằng tùy chỉnh Mục tiêu của VBAI là đưa ra ứng dụng kiểm tra tự động hoàn chỉnh, từ thu ảnh đến xử lý đến kết quả (khác với mục tiêu của Vision Assistant là lập trình nghiên cứu và phân tích ý nghĩa từng công việc của xử lý ảnh)
Hình 2.21: Giao diện VBAI
Trang 15
Màn hình làm việc của VBAI khác Vision Assistant ở 3 điểm chính:
Tích hợp chức năng thu ảnh vào cửa sổ các bước xử lý
Flowchart tổng quan chương trình: cửa sổ này dùng để ra quyết định
Ví dụ: nếu tìm thấy vật thể A thì làm gì tiếp theo, không thấy A thì làm gì tiếp theo
Khung các bước xử lý thể hiện các giá trị Pass/Fail và kết quả của từng bước xử lý và kết quả tổng kết
Hình 2.22: Ứng dụng VBAI trong hệ thống xử lý sản phẩm