4.2.1 Tổng quan về xử lý ảnh
Trong những năm gần đây, với sự phát triển của phần cứng máy tính làm cho bộ nhớ máy tính có dung lượng lớn hơn, tốc độ của chip vi xử lý nhanh hơn, đã cho phép các ứng dụng đồ họa phát triển mạnh mẽ và có nhiều ứng dụng trong cuộc sống. Trong đó, xử lý ảnh là một trong những công cụ phát triển rất nhanh do nhu cầu ứng dụng trong công nghiệp.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Kết quảđầu ra của một quá trình xử lý ảnh có thể là một ảnh tốt hơn hoặc một kết luận.
Hình 4.23 :Sơđồ quá trình xử lý ảnh
Tùy vào mục đích thực hiện mà kết quả xử lý ảnh là khác nhau. Trong xử lý
ảnh nghệ thuật, kết quả là một ảnh mới có nhiều cải thiện về chất lượng, độ sáng, độ
rõ nét…, trong công nghiệp, người ta sử dụng xử lý ảnh đểđưa ra một kết luận đối với ảnh thu được nhằm xuất tín hiệu điều khiển sang cơ cấu chấp hành.
Trong sơ đồ hình 3, quá trình lấy ảnh được thực hiện thông qua thiết bị thu nhận ảnh (camera, webcam, máy quét ảnh…), sau đó ảnh này được đưa lên máy tính và thực hiện quá trình xử lý. Quá trình xử lý bao gồm: tiền xử lý: là bước sơ
chế, cải thiện chất lượng ảnh đầu vào, nhằm làm nổi bật lên đặc điểm đặc trưng của
ảnh; trích chọn đặc điểm: là bước lấy ra các đặc điểm đặc bề ngoài trưng nhất của
ảnh để xử lý (hình dạng, màu sắc, kích thước, dấu vết, chữ viết trên sản phẩm…); hậu xử lý: là bước gán giá trị cho ảnh do người lập trình quy định để đưa ra kết quả
là kết luận (đúng, sai, tốt, xấu, loại A,B,C…).
Xử lý ảnh trong công nghiệp ngày nay được ứng dụng nhiều trong lĩnh vực quản lý chất lượng, phân loại sản phẩm và điều khiển thông minh. Do yêu cầu vềđộ
chính xác của chi tiết gia công ngày càng trở nên khắt khe nên những vết lỗi nhỏ
trên sản phẩm cũng làm cho sản phẩm thành phế phẩm. Hơn nữa tốc độ sản xuất trong công nghiệp đòi hỏi nhanh để nâng cao năng suất nên không thể nhận dạng bằng mắt thường.
Mặt khác, chi phí để thực hiện xử lý ảnh thông thường không cao, chỉ với một chiếc webcam giá rẻ, người sử dụng có thể tự tạo cho mình nhiều ứng dụng khác nhau. Robot tự hành, một sản phẩm của hocdelamgroup là một sản phẩm ứng dụng xử lý ảnh bằng LabVIEW điều khiển xe mô hình có khả năng tự tránh vật cản chỉ
bằng webcam của laptop.
4.2.2 Xử lý ảnh LabVIEW
Trong mảng xử lý ảnh, hãng National Instruments cung cấp cho người sử dụng module NI Vision builder for Automated Inspection . Module này là một phần mềm hoàn toàn độc lập với LabView và chuyên biệt dành cho xử lý ảnh. Module này có thư viện các hàm lớn với nhiều công cụ cho phép người sử dụng thực hiện công việc nhận dạng và xử lý ảnh bằng nhiều cách khác nhau, cho phép xử lý ảnh với dung lượng lớn, tương thích với nhiều loại camera. Tuy nhiên, nhược điểm của module này nằm ở khâu giao tiếp và xuất tín hiệu giữa phần mềm với cơ cấu chấp hành. Để có thể lấy tín hiệu đã xử lý từ phần mềm xuất ra, phần mềm yêu cầu phải
có card giao tiếp chuyên biệt do chính hãnh National Instrument độc quyền cung cấp và có giá khá cao, do đó, nó không thích hợp với những cơ sở sản xuất có quy mô nhỏ.
Để giải quyết vấn đề này, hãng National Instruments cho phép việc xử lý ảnh
được thực hiện ngay trên môi trường LabVIEW , với LabVIEW là công cụ làm nền
để thực hiện việc lập trình và giao tiếp, module NI Vision Acquisition hỗ trợ cho việc thu nhận ảnh, module NI Vision Assitant hỗ trợ cho việc xử lý ảnh và module NI VISA hỗ trợ giao tiếp, các module này được kết hợp với nhau trên nền LabVIEW. Theo một cách hiểu đơn giản, NI Vision Builder for Automated Inspection chính là một module tích hợp các công cụ xử lý ảnh trên LabVIEW.
Hình 4.25 :Giao diện công cụ xử lý ảnh NI Assitant trên LabVIEW (ứng dụng nhận dạng biển số xe)
Việc lập trình xử lý ảnh trên LabVIEW phụ thuộc rất nhiều vào người lập trình, nghĩa là điều quan trọng nhất là người lập trình phải tìm ra công cụ và kết hợp
các công cụ để lập trình cho phần mềm nhận diện chính xác hình ảnh đồng thời lựa
chọn hàm tối ưu nhất trên LabVIEW để trích lọc, so sánh... các giá trị xuất ra, nó
không chỉ yêu cầu các kỹ năng sử dụng phần mềm mà đây còn là tư duy của người
giảm chi phí cho camera vì thay vì sử dụng một camera đắt tiền có độ phân giải cao
để lấy ảnh chất lượng cao thì người lập trình có thể cải thiện chất lượng hình ảnh
ngay trên phần mềm. Yêu cầu khi thực hiện lập trình xử lý ảnh trên LabVIEW đó là
người lập trình phải đạt được các kỹ năng lập trình LabVIEW căn bản và có kiến
thức về lập trình. Sơđồ xử lý ảnh trên LabVIEW được thể hiện ở hình 4.25.
Hình 4.27 : Sơđồ nối dây trên LabVIEW
4.2.2.1 Thu nhận ảnh
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.
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. Quá trình thu nhận ảnh được
thực hiện qua 4 bước:
Bước đầu tiên trong quá trình thực hiện thu nhận ảnh là chọn địa chỉ để phần
mềm lấy ảnh, 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 ).
Bước 2, lựa chọn kiểu thu nhận ả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.
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.
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.
Chọn camera hoặc thư mục chứa ảnh, file .avi để lập trình
Lựa chọn cách thức thu nhận ảnh
Cài đặt các thông số thu nhận ảnh
4.2.2.2 Xử lý ảnh:
Công việc đầu tiên để thực hiện việc xửảnh là thu thập bộ mẫu gồm toàn bộ
Hình4.29 :Mẫu nắp chai 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.
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
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).
Ảnh đầu vào sau khi chuyển sang không gian màu đỏ RGB-Red Plane
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.
4.2.2.3 Xuất tín hiệu
Trước khi xuất tín hiệu, người lập trình phải chuyển đổi tín hiệu trên LabVIEW thông qua các hàm chuyển đổi, so sánh, trích chọn... Vì tín hiệu từ
Vision Assistant xuất ra là không giống nhau, đó có thể là tín hiệu dạng số, dạng chuỗi, hoặc dạng tương tự... Vì vậy tùy vào ứng dụng và tùy vào cơ cấu hiển thị, chấp hành mà chuyển đổi tín hiệu cho thích hợp.
Tín hiệu sau khi được chuyển đổi sẽđược xuất sang mạch giao tiếp thông qua module NI VISA. Đây là một module hỗ trợ giao tiếp giữa LabVIEW với mạch
điện, tùy vào mạch giao tiếp mà sẽ có các hàm giao tiếp đi kèm. Chức năng của NI VISA là tìm kiếm các mạch điện kết nối với máy tính để người lập trình lựa chọn xuất ra. Trong đề tài sử dụng card giao tiếp HDL 9090 cung cấp bởi
Chương 5
XÂY DỰNG MÔ HÌNH HỆ THỐNG NHẬN DẠNG CHAI BỊ LỖI 5.1 Thiết kế trong tải
5.1.1 Mô tả cơ khí
Chú thích:
(1)Khung mô hình: Được làm bằng sắt và sơn bạc. (2)Motor dẫn động băng tải.
(3)Motor gạt beer lỗi.
(4)Biến trở : Phản hồi vị trí thanh gạt.
(5)Buồng tối: Bên trong có camera và hệ thống đèn led chiếu sang (6)Đế đặt máy tính.
(7)Chai bia text. (8)Thanh gạt beer lỗi. (9)Băng tải. (10) Hộp điện. 5.1.2 Sơđồ mạch điện - Sơđồ mạch kết nối điều khiển động cơ gạt
Sơđồ mạch kết nối điều khiển dẫn động băng tải
5.1.3 Mô hình thực tế
Card HDL 9090 có nhiệm vụ điều khiển động cơ gạt nhận tín hiệu phản hồi từ biến trở chuyển đến chân ADC1,và điều khiển motor dẫn động băng tải
- Trên băng tải động sẽ gắn hộp chứa camera để nhận tín hiệu chai bị lỗi, và chai không bị lỗi tín hiệu này được đến Card HDL 9090.
Dây chuyền hoạt động băng tải
Nơi đặt vị trí chai beer text
- Motor gạt beer lỗi có nhiệm vụđưa chai bị lỗi vào đúng vị trí băng truyền thông qua thuật toán PID, nguyên lý hoạt động nhận tín hiệu từ nơi gá buồng đặt camera
được đưa đến card HDL 9090 và máy tính xử lý ảnh để lấy tín hiệu điều khiển và xuất tín hiệu điều khiển motor gạt bia
5.2 Kết quả lập trình
Lập trình điều khiển motor gạt beer
Màn hình giao diện hiển thị nhận dạng và xử lý lỗi
5.3 Nhận xét
Trong quá trình thực hiện mô hình phần cứng và phần mềm, tôi không thể
tránh khỏi những khó khăn vì kiến thức còn giới hạn. Nhưng nhờ sự giúp đỡ của giáo viên hướng dẫn và các bạn đồng nghiệp, tôi đã hoàn thành được yêu cầu đặt ra của đề tài.
Tuy nhiên, trong bước đầu mô phỏng có xảy ra những sai số hay bị nhiễu, nhưng dần dần đã khắc phục được và hệ thống hoạt động tương đối ổn định.
Thông qua đề tài này, tôi cũng được cung cấp thêm nhiều kiến thức về xử lý
ảnh trong LabVIEW điều thiết bị v.v… có thể giúp ích cho công việc của tôi. Đồng thời đây cũng là tài liệu tham khảo bổ ích cho các bạn học viên đang học tập và nghiên cứu về xử lý ảnh.
Chương 6
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU PHÁT TRIỂN
Đây là một đề tài có tính chất thực tế cao, có thểứng dụng trong dây chuyền sản xuất điều khiển và giám sát thiết bị. Trong đề tài này, tôi chỉ thực hiện một phần trong hệ thống nhận dạng chai bị lỗi trong quá trình sản xuất. Ngoài ra với hệ thống đã được thiết kế - chế tạo còn có thể ứng dụng để nhận dạng chai bị dơ chưa qua khâu xử lý, chai chưa có beer vào v.v…
Tuy nhiên, để hoàn thiện một hệ thống nhận dạng chai bị lỗi trong quá trình sản