Engineering Document Template ĐỒ ÁN TỐT NGHIỆP Trang A 1 THIẾT KẾ HỆ THỐNG XỬ LÝ ẢNH ĐO KÍCH THƯỚC FULL CODE MỤC LỤC DANH MỤC HÌNH VẼ ix DANH MỤC CÁC CHỮ VIẾT TẮT x CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 11 1 1 Mục đích thực hiện đề tài 11 1 2 Yêu cầu của đề tài 11 1 3 Ý tưởng và phương pháp thực hiện 11 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 11 2 1 Tìm hiểu về Node RED 11 2 2 Cài đặt Node RED 12 2 2 1 Tải và cài đặt Node js 12 2 2 2 Cài đặt Node RED 13 2 3 Giao diện của Node RED 14 2 4 Tìm hiểu Module hỗ trợ xử lý ảnh t.
111Equation Chapter Section THIẾT KẾ HỆ THỐNG XỬ LÝ ẢNH ĐO KÍCH THƯỚC FULL CODE MỤC LỤC DANH MỤC HÌNH VẼ IX DANH MỤC CÁC CHỮ VIẾT TẮT .X CHƯƠNG GIỚI THIỆU ĐỀ TÀI .11 1.1 MỤC ĐÍCH THỰC HIỆN ĐỀ TÀI 11 1.2 YÊU CẦU CỦA ĐỀ TÀI .11 1.3 Ý TƯỞNG VÀ PHƯƠNG PHÁP THỰC HIỆN 11 CHƯƠNG CƠ SỞ LÝ THUYẾT 11 2.1 TÌM HIỂU VỀ NODE-RED 11 2.2 CÀI ĐẶT NODE-RED 12 2.2.1 Tải cài đặt Node.js .12 2.2.2 Cài đặt Node-RED 13 2.3 GIAO DIỆN CỦA NODE-RED 14 2.4 TÌM HIỂU MODULE HỖ TRỢ XỬ LÝ ẢNH TRÊN NODE-RED 14 2.4.1 Tên Module .14 2.4.2 Cách cài đặt thứ 14 2.5 TỔNG QUAN VỀ CÁC NODE CƠ BẢN DÙNG TRONG ĐỒ ÁN 15 2.5.1 Node: inject .15 2.5.2 Node: debug 15 2.5.3 Node: function 16 2.5.4 Node: change 16 2.5.5 Node: image 16 2.5.6 Node: greyscale .16 2.5.7 Node: convolute 16 2.5.8 Node: viewer 17 2.5.9 Node: composite .18 2.5.10 2.6 Node: threshold 18 LÍ THUYẾT VỀ NGƯỠNG 19 2.7 LÍ THUYẾT VỀ NHÂN TÍCH CHẬP .19 2.8 LỌC BIÊN ẢNH 20 CHƯƠNG GIẢI PHÁP THỰC HIỆN 20 3.1 TIỀN XỬ LÝ ẢNH .21 3.2 XỬ LÝ PIXEL 23 3.2.1 Lấy giá trị pixel .23 3.2.2 Tính giá trị dài pixel 24 3.2.3 Tính kích thước vật 25 CHƯƠNG KẾT QUẢ MÔ PHỎNG 26 4.1 KẾT QUẢ XÂY DỤNG CHƯƠNG TRÌNH .26 4.2 KẾT QUẢ 26 4.3 SO SÁNH VỚI KÍCH THƯỚC THỰC TẾ .27 CHƯƠNG KẾT LUẬN 28 5.1 KẾT LUẬN .28 5.1.1 Ưu điểm 28 5.1.2 Nhược điểm .28 5.2 HƯỚNG PHÁT TRIỂN .28 TÀI LIỆU THAM KHẢO 29 DANH MỤC HÌNH VẼ Hình 2-1 Kiểm tra cài đặt Node.js 16 Hình 2-2 Chạy Node-RED 17 Hình 2-3 Giao diện Node-RED .18 Hình 2-4 Cách cài đặt module .19 Hình 2-5 Node inject .19 Hình 2-6 Node debug 19 Hình 2-7 Node function 20 Hình 2-8 Node change 20 Hình 2-9 Node image 20 Hình 2-10 Node greyscale .20 Hình 2-11 Node convolute .20 Hình 2-12 Thơng số node convolute 21 Hình 2-13 Node viewer 21 Hình 2-14 Node composite 22 Hình 2-15 Thông số node composite .22 Hình 2-16 Node threshold .23 Hình 2-17 Phương pháp tính tích chập 24 Hình 3-1 Các bước tiền xử lý ảnh 25 Hình 3-2 Kết sau tiền xử lý ảnh 26 Hình 3-3 Hàm lấy pixel cần thiết 27 Hình 3-4 Kết lấy pixel 28 Hình 3-5 Hàm tính giá trị dài pixel .28 Hình 3-6 Hàm tính kích thước vật 29 Hình 4-1 Kết xây dựng hệ thống .30 Hình 4-2 Ảnh thực tế .31 DANH MỤC CÁC CHỮ VIẾT TẮT IoT Internet of Things API Application Programming Interface ĐỒ ÁN HỆ THỐNG NHÚNG Trang CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Mục đích thực đề tài - Trong thời đại cơng nghệ 4.0 cơng việc thủ cơng dần thay máy móc, cơng cụ đo dạt vật lí dần thay - cơng cụ điện tử có cơng nghệ cao Đề tài nghiên cứu nguyên lý hoạt động cách tạo lập xử lý ảnh đo kích thước Node-RED 1.2 Yêu cầu đề tài - Tìm hiểu kiến thức Node-RED - Tìm hiểu thư viện giúp xử lý ảnh Node-RED - Tìm hiểu thuật tóan bổ trợ xử lý ảnh 1.3 Ý tưởng phương pháp thực - Chụp đưa ảnh vật với thước thẳng lên Node-RED - Tách biên vật để xác định pixel - Xác định pixel dọc theo chiều dài vật thước - Áp dụng thuật tốn để tính tốn kích thước CHƯƠNG CƠ SỞ LÝ THUYẾT 1.4 Tìm hiểu Node-RED - Node RED cơng cụ lập trình dùng để kết nối thiết bị phần cứng, API dịch vụ trực tuyến với Về bản, công cụ trực quan thiết kế cho IoT, sử dụng cho ứng dụng khác nhằm liên kết nhanh luồng (flow) dịch vụ khác - Node-RED mã nguồn mở phát triển Emerging Technology Services IBM tích hợp gói ứng dụng khởi động IoT Bluemix IBM (Platform-as-a-Service PaaS) Node-RED triển khai riêng ứng dụng Node.js Hiện tại, Node-RED dự án JS Foundation - Node-RED cho phép người dùng kết hợp dịch vụ Web phần cứng cách thay tác vụ mã hóa cấp thấp phổ biến (như dịch vụ Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang đơn giản giao tiếp với cổng nối tiếp) điều thực với giao diện kéo thả trực quan Các thành phần khác Node-RED kết nối với để tạo luồng (flow) Hầu hết mã lệnh (code) cần thiết tạo tự động 1.5 Cài đặt Node-RED 1.1.1 Tải cài đặt Node.js - Để download Node.js truy cập vào địa chỉ: https://nodejs.org/en/download/ - Sau tiến hành cài đặt bình thường Sau cài đặt xong mở cửa số Command Line để thực thi lệnh node -v npm -v Nếu hết trả hình thành cơng Hình 2-1 Kiểm tra cài đặt Node.js 1.1.2 Cài đặt Node-RED - Đầu tiên, mở cửa sổ Command Line tổ hợp phím Wn + R, sau nhập cmd nhấn OK Sau chạy lệnh npm install -g –unsafe-perm Node-RED Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang - Sau cài đặt xong, chạy lệnh Node-RED bạn thấy địa IP hình Sao chép đường dẫn vào trình duyệt web để truy cập vào NodeRED Hình 2-2 Chạy Node-RED 1.6 Giao diện Node-RED Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang Hình 2-3 Giao diện Node-RED - Khu vực bao gồm node khu vực chứa node dùng để kéo thả khu - vực làm việc để kết nối với tạo thành chương trình hồn chỉnh Khu vực làm việc khu vực trống nhằm để chứa node, thực - chương trình, hiển thị, … Nút Deploy nút có tác dụng biên dịch, chạy chương trình Khu vực Sidebar Tag bao gồm tag: Help, Debug messages, Information, Dashboard, Configuration nodes, Context Data 1.7 Tìm hiểu Module hỗ trợ xử lý ảnh Node-RED 1.1.3 Tên Module - Node-RED-contrib-image-tools 1.1.4 Cách cài đặt thứ - Nhấn vào nút sau giao diện Node-RED - Chọn Manage palette - Chọn tag Install - Tìm thư viện node-red-contrib-image-tools - Nhấn nút install Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 10 Hình 2-4 Cách cài đặt module 1.8 Tổng quan node dùng đồ án 1.1.5 Node: inject Hình 2-5 Node inject - Dùng gán giá trị cần nhập vào Node-RED vào biến message 1.1.6 Node: debug Hình 2-6 Node debug - Dùng hiển thị giá trị message chọn node lên cửa sổ Debug message 1.1.7 Node: function Hình 2-7 Node function - Cho phép viết hàm ngôn ngữ javascript để tác động lên message Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 11 1.1.8 Node: change Hình 2-8 Node change - Cho phép lưu, xóa, di chuyển, thay đổi giá trị tùy chọn lên biến message 1.1.9 Node: image Hình 2-9 Node image - Dùng để chuyển hình ảnh lên Node-RED, hỗ trợ nhiều kiểu ảnh đường dẫn khác (jimp object, file/URL/base64 string, buffer) 1.1.10 Node: greyscale Hình 2-10 Node greyscale - Dùng để chuyển đổi ảnh màu thành ảnh xám Node-RED 1.1.11 Node: convolute Hình 2-11 Node convolute - Có tác dụng dùng để nhân tích chập ma trận ảnh với ma trận người dùng nhập vào Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 12 Hình 2-12 Thơng số node convolute - Thơng số kernel: chọn {}JSON sau nhập ma trận cần nhân tích chập vào ảnh 1.1.12 Node: viewer Hình 2-13 Node viewer - Dùng để hiển thị hình ảnh không gian làm việc Node-RED, giúp người sử dụng dẽ dàng quan sát ảnh xử lý 1.1.13 Node: composite Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 13 Hình 2-14 Node composite - Dùng để ghép ảnh lại với điểm người dùng chọn Hình 2-15 Thơng số node composite - Thông số src: ảnh nguồn đưa vào để gộp với ảnh gốc Thông số x: vị trí cắt ảnh nguồn để gộp theo chiều rộng Thơng số y: vị trí cắt ảnh nguồn để gộp theo chiều cao Thông số opacitySource: độ mờ ảnh nguồn (từ 0.0 đến 1.0) Thông số opacityDest: độ mờ ảnh gốc (từ 0.0 đến 1.0) 1.1.14 Node: threshold Hình 2-16 Node threshold - Phân loại ảnh theo ngưỡng giá trị pixel người dùng chọn 1.9 Lí thuyết ngưỡng - Ngưỡng số nằm khoảng từ đến 255 Giá trị ngưỡng chia giá trị độ xám ảnh thành miền riêng biệt Miền thứ miền tập hợp Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 14 điểm ảnh có giá trị nhỏ giá trị ngưỡng Miền thứ hai miền tập hợp điểm ảnh có giá trị lớn giá trị ngưỡng 1.10 - Lí thuyết nhân tích chập Phép chập tốn tuyến tính, cho kết hàm dựa vào hai hàm có sẵn Dược xác định theo công thức: - Thành phần khơng thể thiếu phép tích chập ma trận kernel Điểm neo (anchor point) kernel định vùng ma trận tương ứng ảnh để tích chập, thông thường anchor point chọn tâm kernel Giá trị phần tử kernel xem hệ số tổ hợp với giá trị độ xám điểm ảnh vùng tương ứng với kernel - Phép tích chập hình dung thực việc dịch chuyển ma trận kernel qua tất điểm ảnh ảnh, góc bên trái ảnh Và đặt anchor point tương ứng điểm ảnh xét Ở lần dịch chuyển, thực tính tốn kết cho điểm ảnh xét cơng thức tích chập Hình 2-17 Phương 1.11 - Lọc biên ảnh Ta dùng kĩ thuật Sobel prewitt, dùng mặt nạ Một ma trận để lọc hàng, ma trận dùng để lọc cột - pháp tính tích chập Ma trận lọc hàng: Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 15 - Ma trận lọc cột: - Giả sử có ma trận ảnh ban đầu A, ảnh sau áp dụng lọc là: CHƯƠNG - GIẢI PHÁP THỰC HIỆN Để giải tốn đo khoảng cách ta đưa ảnh bao gồm thước với vật vào Node-RED Sau ta chuyển ảnh màu thành ảnh xám sau nhân chập với ma trận Prewitt để lấy biên ảnh Tiếp theo xử lý lấy ngưỡng ảnh để làm rõ điểm ảnh thước vật Sau làm rõ điểm ảnh thước vật ta xác định vị trí điểm ảnh có giá trị 255 theo chiều cao ảnh nằm vạch kẻ chia cm thước để tính giá trị dài điểm ảnh Tương tự ta xác định điểm ảnh nằm biên vật để tính kích thước vật dựa vào giá trị dài điểm ảnh xác định trước 1.12 Tiền xử lý ảnh Hình 3-18 Các bước tiền xử lý ảnh - Đầu tiên chuyển đổi ảnh từ ảnh màu sang ảnh xám, nhân tích chập với ma trận lọc biên để ảnh lấy biên theo phương ngang phương dọc Sau cho ảnh qua khối composite ảnh cuối Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 16 Hình 3-19 Kết sau tiền xử lý ảnh 1.13 Xử lý pixel 1.1.15 Lấy giá trị pixel Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 17 Hình 3-20 Hàm lấy pixel cần thiết - Chương trình lấy vị trí pixel có giá trị 255 từ biên đến biên ảnh vị trí 295và 800 Tại giá trị 295 gióng theo dúng vạch chia cm thước Cịn vị trí 800 gióng thẳng qua chiều dài vật Các vị trí pixel thỏa vị trí 295 lưu vào mảng ycol sau đưa lên biến msg.ycol Các vị trí pixel thỏa vị trí 800 lưu vào mảng ycol1 sau dó đưa lên biến msg.ycol1 Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 18 Hình 3-21 Kết lấy pixel 1.1.16 Tính giá trị dài pixel Hình 3-22 Hàm tính giá trị dài pixel - Ta lấy 20 chia cho tổng số pixel tương ứng Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 19 - Số pixel tương ứng tính cách bỏ giá trị đầu mảng, bỏ giá trị cuối mảng Sau tính hiệu phần tử cuối mảng sau bỏ - phần tử trừ cho phần tử đầu mảng sau loại phần tử Giá trị dài pixel gán cho biến msg.value 1.1.17 Tính kích thước vật Hình 3-23 Hàm tính kích thước vật - Để tính kích thước vật ta lấy tổng số pixel tương ứng với vật sau - nhân cho giá trị dài pixel Giá trị kích thước gán cho biến msg.leng CHƯƠNG 1.14 KẾT QUẢ MÔ PHỎNG Kết xây dụng chương trình Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 20 Hình 4-24 Kết xây dựng hệ thống 1.15 - Kết Sau áp dụng xử lý ảnh hàm tính tốn kết kích thước vật ảnh sau 1.16 Giá trị dài 1pixel xấp xỉ 0.0119617 cm Giá trị kích thước vật xấp xỉ 8.61 cm So sánh với kích thước thực tế Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 21 Hình 4-25 Ảnh thực tế - Ta thấy kích thước thực tế vật xấp xĩ 8.55 gần với gí trị mà chương trình tính Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 22 CHƯƠNG 1.17 KẾT LUẬN Kết luận 1.1.18 Ưu điểm - Hệ thống dễ xây dựng sử dụng Node-RED - Thuật toán đơn giản dễ thay đổi theo mục duch1 sử dụng, hình ảnh tùy chọn 1.1.19 Nhược điểm - Tính áp dụng cịn chưa cao - Cần cải thiện thêm nhiều 1.18 - Hướng phát triển Xây dựng thêm hệ thống xác định kích thước nhiều loại vật thể khác - cách tự động hồn tồn Có thể nâng cấp để thành hệ thống đo kích thước hồn tồn dùng xử lý - ảnh khơng cần cơng cụ đo thủ công Dùng giám sát giao thông đường bộ, … Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 23 TÀI LIỆU THAM KHẢO Tiếng Việt https://dientuviet.com/node-red-la-gi/ https://www.stdio.vn/computer-vision/phep-tich-chap-trong-xu-ly-anh-convolution-r1vHu1 https://viblo.asia/p/tuan-5-gradient-and-edge-bJzKmOGwl9N https://tieuluan.info/bi-ging-x-l-nh-i-tng-trnh i-hc-ngnh-o-to-cng-ngh-thng-tin.html? page=11 https://www.youtube.com/watch?v=iAN52Xz9kLQ Tiếng Anh https://flows.nodered.org/node/node-red-contrib-image-tools https://www.youtube.com/watch?v=3AR432bguOY https://www.npmjs.com/package/jimp Xử lý ảnh đo kích thước ĐỒ ÁN TỐT NGHIỆP Trang A-1 Mô Phỏng Hệ Thống MIMO ... Sau cho ảnh qua khối composite ảnh cuối Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 16 Hình 3-19 Kết sau tiền xử lý ảnh 1.13 Xử lý pixel 1.1.15 Lấy giá trị pixel Xử lý ảnh đo kích thước. .. 0.0119617 cm Giá trị kích thước vật xấp xỉ 8.61 cm So sánh với kích thước thực tế Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 21 Hình 4-25 Ảnh thực tế - Ta thấy kích thước thực tế vật xấp... Có thể nâng cấp để thành hệ thống đo kích thước hồn tồn dùng xử lý - ảnh khơng cần cơng cụ đo thủ cơng Dùng giám sát giao thông đường bộ, … Xử lý ảnh đo kích thước ĐỒ ÁN HỆ THỐNG NHÚNG Trang 23