4.3 THI CƠNG MƠ HÌNH
Mơ hình các khối hình hộp đƣợc gấp từ những tấm bìa cứng thành những hình hộp chữ nhật, hình vng, hình tam giác và đƣợc dán ở bên ngồi bằng những lớp giấy màu (đỏ) để dễ dàng hơn trong việc nhận dạng, tránh việc nhiễu màu. Mơ hình phải đƣợc thực hiện trong điều kiện có ánh sang đầy đủ để tránh những sai số, giúp cho ảnh có chất lƣợng tốt hơn cũng nhƣ tang cƣờng quá trình nhận dạng ổn định hơn và nhanh hơn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 Hình 4.2: Các khối hộp (Hình dạng sản phẩm)
4.4 LẬP TRÌNH HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 Hình 4.3: Lƣu đồ giải thuật chính
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
Lƣu đồ giải thuật chính gồm: Thu thập ảnh RGB từ camera 3D, tiền xử lý ảnh, nhận dạng màu sắc, tách biên, xác định các thông số 3D của môi trƣờng và giai đoạn quan trọng nhất là nhận dạng và tính kích thƣớc sản phẩm, cuối cùng là xuất kết quả. Trong đó:
Thu thập ảnh RGB từ camera 3D
Khi có một đối tƣợng di chuyển qua camera, đối tƣợng sẽ đƣợc chụp lại dƣới dạng ảnh RGB với khung và độ phân giải là 720x640, 30fps.
RGB là từ viết tắt tiếng Anh của cơ chế hệ màu cộng, thƣờng đƣợc sử dụng để hiển thị màu trên các màn hình TV, monitor máy tính và những thiết bị điện tử khác (chẳng hạn nhƣ camera kỹ thuật số). Với ba màu cơ bản gồm: đỏ, xanh lá và xanh dƣơng.
OpenCV xử lý ảnh và video ở định dạng 8 bit, số ngun khơng dấu, định dạng BGR. Nói cách khác, hình ảnh đƣợc chụp có thể đƣợc coi là 3 ma trận: xanh dƣơng, xanh lá và đỏ (BGR) với các giá trị nguyên nằm trong khoảng từ 0 đến 255. Hình ảnh sau đây cho thấy hình ảnh màu đƣợc biểu diễn bằng 3 ma trận.
Hình 4.4: Ma trận không gian màu BGR Tiền xử lý ảnh
Bao gồm các bƣớc lọc nhiễu, nâng cao chất lƣợng ảnh để thuận tiện cho q trình nhận dạng ảnh.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 41
Ở bƣớc này, ảnh RGB đầu vào đƣợc sau khi đƣợc lọc nhiễu ta tiến hành chuyển đổi sang ảnh HSV. Trong không gian màu HSV ta so sánh từng pixel với ngƣỡng trên và ngƣỡng dƣới của màu đỏ. Mục đích là để bộ xử lý sẽ dễ dàng nhận biết hơn đó là đối tƣợng cần nhận dạng, hạn chế nhiễu.
Không gian màu HSV gồm ba ma trận: HUE, SATURATION and VALUE. Trong Opencv thì HUE có phạm vi từ 0-179 mang thông tin màu sắc, SATURATION từ 0-255 cho thông tin về độ thuần khiết của màu và VALUE từ 0-255 cho biết độ sang của điểm ảnh.
Thƣ viện OpenCV là một thƣ viện chuyên xử lý hình ảnh vì vậy nó hổ trợ rất nhiều hệ màu nhƣ RGB, ARGB, BRGA, YUV, HSV… và nó cũng có cung cấp cho chúng ta hàm cv.cvtColor (CV_BGR2HSV) để thực hiển chuyển đổi BGR sang HSV.
Tách biên và lấp đầy biên
Là q trình xác định đƣờng biên sau đó loại bỏ những dữ liệu khơng cần thiết, sau khi có đƣợc đƣờng biên ta lấp đầy biên để có đƣợc hình dạng của sản phẩm để đi nhận dạng.
Hình 4.5: Sơ đồ khối chƣơng trình con tách biên và lấp đầy biên
Sau khi có đƣợc ảnh ta tiếp tục xử lý chất lƣợng hình ảnh đầu vào để cho quá trình nhận dạng ảnh đƣợc tốt bao gồm việc chuyển đổi ảnh xám cũng nhƣ giãm nhiễu để có chất lƣợng ảnh tốt hơn.
Giảm nhiễu:Quá trình giảm nhiễu ở đây ta giải nhiễu thêm một lần nữa giúp ảnh chất lƣợng hơn. Vì phát hiện cạnh, đƣờng biên dễ bị nhiễu trong ảnh, bƣớc đầu tiên là loại bỏ nhiễu trong ảnh bằng bộ lọc Gaussian.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
Chuyển đổi ảnh xám là quá trình chuyển đổi hình ảnh dƣới dạng RGB (Red- Green-Blue) sang ảnh xám. Điều này có nghĩa là có ba ma trận xám tƣơng ứng cho màu Red, Green, Blue, vơng việc là tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất đó là ma trận xám.
Xác định đƣờng biên: Ảnh đƣợc lọc mịn đƣợc đem đi xác định biên tạo ra các đƣờng biên có giá trị là là một trong giá trị nhị phân của hình. Ở bƣớc này ta xác đinh đƣờng biên bằng các tìm điểm A ở giữa hai điểm lân cận C và B ta xác định đó có phải giái trị cực đại không tức là giá trị rất lớn so với các điểm lân cận. nếu nó đúng thì ta có thể có thể xác định tạm thời đó là một phần của đƣờng biên.
Tách biên: Là quá trình lọai bỏ các dữ liệu khơng phải là biên đƣợc xác định từ trƣớc, chỉ dữ lại những đƣờng biên.
Lấp đầy biên: Là quá trình lấp đầy các đƣờng biên kín, khơng bị gián đoạn hay đứt khúc, để tạo ra đƣợc ảnh nhị phân có giá trị 0 và 1. Mức 1 là giá trị của hình dạng lấp đầy biên, và bên ngoài biên đƣợc coi là giá trị 0.
Nhận dạng và tính kích thƣớc sản phẩm
Ở đây bao gồm giai đoạn gán nhãn cho từng hình dạng rồi phân tích nhận dạng. Gán nhãn nói một cách tóm tắt là ta đi ghi chú cho từng hình để biết đó là hình gì, chu vi và độ dài các cạnh là bao nhiêu.
Muốn phân loại đƣợc thì ta cần đi nhận dạng các đặc điểm của từng hình. Trong đó có 3 đặc điểm chính để ta nhận dạng: Ta tìm đỉnh của hình dạng số đỉnh hình vng và chữ nhật có 4 đỉnh, hình tam giác có 3 đỉnh. Trong đó 2 cạnh bên của hình vng bằng nhau và hình chữ nhật không bằng nhau. Nhƣ vậy, ta đã phân loại đƣợc 3 loại sản phẩm.
Tính kích thƣớc là q trình tìm ra độ dài thực tế của các cạnh của sản phẩm để tìm ra chu vi thực tế của sản phẩm.
Xuất kết quả là việc hiển thị kết quả từ bƣớc nhận dạng và tính kích thƣớc, độ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 Hình 4.6: Lƣu đồ con nhận dạng sản phẩm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
4.4.2 Lập trình với ngơn ngữ Python cùng thƣ viện OpenCV Giới thiệu ngôn ngữ Python Giới thiệu ngôn ngữ Python
Python là một ngơn ngữ lập trình đƣợc sử dụng phổ biến ngày nay từ trong môi trƣờng học đƣờng cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng, phần mềm khác nhau nhƣ các chƣơng trình chạy trên desktop, server, lập trình các ứng dụng web...
Ngồi ra Python cũng là ngơn ngữ ƣa thích trong xây dựng các chƣơng trình trí tuệ nhân tạo trong đó bao gồm machine learning. Nó có thể chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix.
Giao diện IDLE
Tạo File mới
Để tạo tập tin mới và lập trình trên Python ta vào khung tìm kiếm trên Window nhập Python -> chọn IDLE
Hình 4.7: Tìm kiếm Python
Tiếp theo ta chọn File -> chon tiếp New File để xuất hiện khung bên cạnh là ta đã tạo đƣợc File mới.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 Hình 4.8: Tạo project mới
Viết chƣơng trình hệ thống
Chƣơng trình hệ thống bao gồm các phần (Đƣợc trình bày ở phụ lục). Thƣ viện.
Chƣơng trình chính.
Chƣơng trình con nhận dạng và phân loại sản phẩn. Chƣơng trình con tính khoảng cách.
4.5 MÔ PHỎNG
4.5.1 Lƣu đồ
Ảnh đầu vào Bắt đầu
Kiểm tra và xuất kết quả
Kết thúc
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 Ảnh đầu vào: với phần mềm Paint (phần mềm vẽ) trên Window để tạo ra đƣợc
các hình dạng của sản phẩm cơ bản, hoặc lấy hình trên internet.
Kiểm tra: là quá trình kiểm tra những giải thuật đƣợc viết ở trên có đúng hay
sai đƣợc kiểm tra trên python sau đó xuất kết quả. Các bƣớc kiểm tra bao gồm:
- Kiểm tra việc xử lý hình ảnh. - Kiểm tra tách biên và lấp đầy.
- Kiểm tra phân loại và nhận dạng sản phẩm.
Hình 4.10: Kiểm tra các bƣớc thực hiện
4.5.2 Xử lý tín hiệu hay hình ảnh
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
Ở giai đoạn đầu ta mơ phỏng trên những hình học cơ bản trƣớc với các hình cơ bản là hình chữ nhật, hình trịn, hình vng, hình tam giác.
b. Kiểm tra tiền xử lý ảnh
Hình 4.11: Ảnh xám
Tại đây ta xử lý chất lƣợng ảnh cùng với việc chuyển đổi ảnh xám
c. Kiểm tra tách biên và lấp đầy
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48 Hình 4.13: Lấp đầy biên
d. Kiểm tra nhận dạng và phân loại sản phẩm
Hình 4.14: Kết quả nhận dạng phân loại sản phẩm. 4.6 VIẾT TÀI LIỆU HƢỚNG DẪN SỬ DỤNG, THAO TÁC 4.6 VIẾT TÀI LIỆU HƢỚNG DẪN SỬ DỤNG, THAO TÁC 4.6.1 Viết tài liệu hƣớng dẫn sử dụng
Bƣớc 1: Lắp camera vào hệ thống và kiểm tra hệ thống đã nhận camera chƣa
Sau khi cấp nguồn cho hệ thống, đợi hệ thống khởi động xong ta truy cập vào IDLE để thực thi chƣơng trình test camera.
Bƣớc 2: Kiểm tra cài đặt python và cài đặt những thƣ viện liên quan cho python.
Ta tiến hành mở cửa sổ command line lên, gõ python xem hệ thống đã cài đặt thành công python hay chƣa. Một trong những điểm mạnh của python là có thể dùng lại rất nhiều thƣ viện và package khác mà mình khơng phải mất cơng viết lại từ đầu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
Bản thân mỗi module, mỗi package đã chun mơn hố một số việc cho mình. Khi muốn cài một package nào đó, ta có thể dùng lệnh pip install <tên package>. Chúng ta cài đặt các package không cần phải tải về lằng nhằng mà chỉ cần gõ 1 dịng lệnh là đủ.
Vì thế dùng pip để cài đặt thƣ viện cho hệ thống một cách dễ dàng, ta mở command line lên và gõ những dòng lệnh theo mẫu trên để cài đặt những thƣ viện: OpenCV, Numpy, Spicy.
Kiểm tra xem tất cả thƣ viện ta cần cho chƣơng trình đều đã sẵn sàng chƣa:
Hình 4.15: Kiểm tra thƣ viện
Bƣớc 3: Mở IDLE và chạy chƣơng trình nhận dạng sản phẩm và tính kích thƣớc.
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50 Bƣớc 4: Quan sát kết quả thu đƣợc khi đƣa từng sản phẩm (những khối hình) vào
khung hình camera ở những vị trí khác nhau.
Ta tiến hành di chuyển sản phẩm và đặt đến từng vị trí khác nhau để quan sát xem kích thƣớc thực của sản phẩm có chính xác hay bị thay đổi không đồng thời độ dài các cạnh thực tế của sản phẩm có đúng với kết quả hay khơng.
4.6.2 Quy trình thao tác
Hình 4.17: Quy trình vận hành Khởi động hệ thống và chạy chƣơng trình Khởi động hệ thống và chạy chƣơng trình
Là quá trình kết nối các thiết bị ngoại vi bên ngoài với laptop (ở đây là camera 3D ). Sau khi hệ thống nhận thiết bị, ta chọn chạy IDLE và mở file code.py cần chạy.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
Mục đích để ta dễ dàng tìm đƣợc kích thƣớc sản phẩm một cách chính xác nhất. Ngồi ra ta có thể thay đổi khoảng cách đó để quan sát kết quả có đƣợc tính đúng với kích thƣớc thực tế của sản phẩm
Quan sát kết quả và so với thực tế
Kết quả đƣợc hiển thị ngay trên lap với thời gian ngắn. Sau khi có kết quả sản phẩm này ta vẫn có thể tiếp tục thực hiện với sản phẩm khác.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
52
CHƢƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1 CAMERA 3D 5.1 CAMERA 3D
Qua quá trình thực hiện đề tài, nhóm đã biết sử dụng Camera 3D với chức năng cơ bản của camera là lấy đƣợc ảnh đầu vào, độ sâu của sản phẩm ở nhiều vị trí khác nhau và kết nối với laptop để đi thực hiện mơ hình.
Hình 5.1: Kết quả ảnh đầu vào từ camera
Camera 3D có độ phân giải cao nhƣng ngƣợc lại nó có giá thành khơng q đắt, cùng với chất lƣợng ảnh và quay ảnh phù hợp với việc xử lý ảnh. Việc thu đƣợc độ dài và kích thƣớc của sản phẩm từ camera vẫn chƣa chính xác tuyệt đối do những yếu tố tác động từ bên ngoài nhƣ tốc độ xử lý của laptop, ánh sáng,…
5.2 XÁC ĐỊNH MÀU SẮC CỦA SẢN PHẨM
Với mục đích lựa chọn một màu sắc để camera dễ nhận dạng hơn sản phẩm cần nhần dạng cũng nhƣ là tránh nhiễu từ những yếu tố xung quanh sản phẩm, nhóm đã thành công trong việc nhận dàng màu sắc của sản phẩm là màu đỏ, những sản phẩm, yếu tố xung quanh khơng có màu đỏ sẽ khơng đƣợc nhận dạng hình dạng và tính tốn.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH
53
Hình 5.2: Kết quả xác định màu sắc sản phẩm của camera
Dƣới đây là bảng thống kê thực tế kết quả xác định màu sắc của sản phẩm trong điều kiện môi trƣờng ánh sáng đầy đủ khi sản phẩm là màu đỏ và những màu khác nhƣ màu xanh, màu vàng:
Bảng 5.1: Thống kê kết quả xác định màu sắc sản phẩm
STT Sản phẩm Màu sắc Nhận dạng đƣợc Không nhận dạng đƣợc 1 Hình vng Đỏ 2 Hình chữ nhật Đỏ 3 Hình tam giác Đỏ 4 Hình vng Vàng 5 Hình chữ nhật Vàng 6 Hình tam giác Vàng 7 Hình vng Xanh 8 Hình chữ nhật Xanh
9 Hình tam giác Xanh
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
54
Thời gian đáp ứng rất nhanh trong điều kiện lý tƣởng khi làm khảo sát
Khi hoạt động trong môi trƣờng kém ánh sáng, việc nhận đáp ứng chậm hơn, việc nhận dạng có thể chập chờn khơng ổn định.
Thiết bị nhận diện đƣợc gần nhƣ 100% sản phẩm màu đỏ và hồn tồn khơng nhận diện những sản phẩm có màu sắc khác
5.3 NHẬN DẠNG VÀ TÍNH KÍCH THƢỚC SẢN PHẨM
Kết quả thu đƣợc khi sản phẩm đƣợc nhận dạng là hình chữ nhật với chu vi thực tế là 23cm, chiều dài 6,5cm, chiều rộng 5cm:
Hình 5.3: Nhận dạng và tính kích thƣớc sản phẩm hình chữ nhật
Kết quả thu đƣợc khi sản phẩm đƣợc nhận dạng là hình vng với chu vi thực tế là 24cm, chiều dài cạnh là 6cm:
Hình 5.4: Nhận dạng và tính kích thƣớc sản phẩm hình vng
Kết quả thu đƣợc khi sản phẩm đƣợc nhận dạng là hình tam giác với chu vi thực tế là 13cm, độ dài cạnh là 4cm, 4cm, 5cm:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
55
Hình 5.5: Nhận dạng và tính kích thƣớc sản phẩm hình tam giác
Bảng 5.2: Kết quả khảo sát nhận dạng và tính kích thƣớc đối với hình vng Lần Lần thực hiện thứ Khoảng cách camera - vật (cm) Độ dài cạnh thực tế (cm) Độ dài cạnh thu đƣợc (cm) Chu vi thực tế (cm) Chu vi thu đƣợc (cm) Sai số tƣơng đối (%) 1 19 6,1 5,8 24,4 23,2 4,9 2 14 6,1 5,6 24,4 22,4 8,1 3 29 6,1 5,4 24,4 21,6 11,5 4 16 6,1 6,1 24,4 24,4 0 5 17 6,1 6,1 24,4 22,4 0 6 22 6,1 5.7 24,4 22,8 8,1 7 29 6,1 6,3 24,4 25,2 4,5 8 15 6,1 5,8 24,4 23,2 4,9 9 18 6,1 6 24,4 24 1,6 10 20 6,1 6,1 24,4 24,4 0
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
56 Ba hình dạng cơ bản (vng, chữ nhật, tam giác) đƣợc nhận dạng với độ chính xác 95% và tính đƣợc chu vi, độ dài cạnh của từng sản phẩm ở nhiều vị trí khác nhau so với camera. Tuy nhiên khi để sản phẩm quá gần hoặc quá xa tầm mắt của camera thì có thể sản phẩm sẽ khơng nhận dạng và tính kích thƣớc đƣợc hoặc kết quả sẽ chênh lệch với thực tế một ít. Bảng 5.2, bảng 5.3, bảng 5.4 thống kê thực tế kết quả nhận dạng và tính kích thƣớc của 3 sản phẩm: hình vng, hình chũ nhật, hình tam giác