Tải bản đầy đủ (.docx) (24 trang)

XỬ lý ẢNH đo KÍCH THƯỚC ,có CODE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.44 MB, 24 trang )

111Equation Chapter 1 Section 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 TRÊN NODE-RED......................................14

2.4.1

Tên Module.......................................................................................................14

2.4.2

Cách cài đặt thứ nhất........................................................................................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 3. 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 1 pixel......................................................................................24

3.2.3

Tính kích thước vật...........................................................................................25

CHƯƠNG 4. 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 5. 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 quả 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 quả lấy pixel......................................................................................28
Hình 3-5 Hàm tính giá trị dài 1 pixel.......................................................................28
Hình 3-6 Hàm tính kích thước vật...........................................................................29
Hình 4-1 Kết quả 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 6

CHƯƠNG 1.

GIỚI THIỆU ĐỀ TÀI


1.1 Mục đích thực hiện đề tài
- Trong thời đại cơng nghệ 4.0 hiện nay thì các cơng việc thủ cơng dần được
thay thế bằng máy móc, các cơng cụ đo dạt vật lí cũng dần được thay thế
-

bằng các cơng cụ điện tử có cơng nghệ cao.
Đề tài này sẽ nghiên cứu nguyên lý hoạt động và cách tạo lập một bộ xử lý
ảnh đo kích thước bằng Node-RED

1.2 Yêu cầu của đề tài
- Tìm hiểu kiến thức về Node-RED
- Tìm hiểu về các thư viện giúp xử lý ảnh trong Node-RED
- Tìm hiểu về các thuật tóan bổ trợ xử lý ảnh
1.3 Ý tưởng và phương pháp thực hiện
- Chụp và đưa ảnh vật cùng 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 và thước
- Áp dụng thuật tốn để tính tốn kích thước
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
1.4 Tìm hiểu về Node-RED
- Node RED là một cơng cụ lập trình dùng để kết nối các thiết bị phần
cứng, API và các dịch vụ trực tuyến với nhau. Về cơ bản, đây là một công cụ
trực quan được thiết kế cho IoT, nhưng cũng có thể được sử dụng cho các
ứng dụng khác nhằm liên kết nhanh các luồng (flow) dịch vụ khác nhau.
-

Node-RED là mã nguồn mở và được phát triển bởi Emerging Technology
Services của IBM và được tích hợp trong gói ứng dụng khởi động IoT
Bluemix của IBM (Platform-as-a-Service hoặc PaaS). Node-RED cũng có

thể được triển khai riêng bằng ứng dụng Node.js. Hiện tại, Node-RED là một
dự án của JS Foundation.

-

Node-RED cho phép người dùng kết hợp các dịch vụ Web và phần cứng
bằng cách thay thế các tác vụ mã hóa cấp thấp phổ biến (như một dịch vụ

Xử lý ảnh đo kích thước


ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 7

đơn giản giao tiếp với một cổng nối tiếp) và điều này có thể được thực hiện
với giao diện kéo thả trực quan. Các thành phần khác nhau trong Node-RED
được kết nối với nhau để tạo ra một luồng (flow). Hầu hết mã lệnh (code)
cần thiết được tạo tự động
1.5 Cài đặt Node-RED
1.1.1 Tải và cài đặt Node.js
- Để download Node.js truy cập vào địa chỉ:
/>-

Sau đó tiến hành cài đặt như bình thường. Sau khi cài đặt xong thì chúng ta
mở cửa số Command Line để thực thi lệnh node -v và npm -v. Nếu hết quả
trả về như hình thì là 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 bằng tổ hợp phím Wn + R, sau đó nhập

cmd và 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 8

-

Sau khi cài đặt xong, chạy lệnh Node-RED bạn sẽ thấy một địa chỉ IP như
hình dưới. 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 của Node-RED

Xử lý ảnh đo kích thước


ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 9

Hình 2-3 Giao diện Node-RED
-

Khu vực bao gồm các node là khu vực chứa các node dùng để kéo thả ra khu

-


vực làm việc để kết nối với nhau tạo thành một chương trình hồn chỉnh
Khu vực làm việc là một khu vực trống nhằm để chứa các node, thực hiện

-

chương trình, hiển thị, …
Nút Deploy là 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 các tag: Help, Debug messages, Information,
Dashboard, Configuration nodes, Context Data

1.7 Tìm hiểu Module hỗ trợ xử lý ảnh trên Node-RED
1.1.3 Tên Module
- Node-RED-contrib-image-tools
1.1.4 Cách cài đặt thứ nhất
- Nhấn vào nút sau trên 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 về các node cơ bản dùng trong đồ á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 trong 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 bằng ngôn ngữ javascript để tác động lên các 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 nhau (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 trên 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 một 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 trên khơng gian làm việc của Node-RED, giúp
người sử dụng có thể dẽ dàng quan sát được ảnh đang 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 2 ảnh lại với nhau tại một điểm người dùng chọn

Hình 2-15 Thơng số node composite
-

Thơng số </>src: là ả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ờ của ảnh nguồn (từ 0.0 đến 1.0)
Thông số </>opacityDest: độ mờ của ả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 do người dùng chọn

1.9 Lí thuyết về ngưỡng
- Ngưỡng là một số nằm trong khoảng từ 0 đến 255. Giá trị ngưỡng sẽ chia giá
trị độ xám của ảnh thành 2 miền riêng biệt. Miền thứ nhất là miền tập hợp

Xử lý ảnh đo kích thước


ĐỒ ÁN HỆ THỐNG NHÚNG

Trang 14

các điểm ảnh có giá trị nhỏ hơn giá trị ngưỡng. Miền thứ hai là miền tập hợp
các điểm ảnh có giá trị bằng hoặc lớn hơn giá trị ngưỡng
1.10
-

Lí thuyết về nhân tích chập
Phép chập là một một phép tốn tuyến tính, cho ra kết quả là mộ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 của phép tích chập là ma trận kernel. Điểm neo
(anchor point) của kernel sẽ quyết định vùng ma trận tương ứng trên ảnh để
tích chập, thơng thường anchor point được chọn là tâm của kernel. Giá trị
mỗi phần tử trên kernel được xem như là hệ số tổ hợp với lần lượt từng giá
trị độ xám của điểm ảnh trong vùng tương ứng với kernel.

-

Phép tích chập được hình dung thực hiện bằng việc dịch chuyển ma
trận kernel lần lượt qua tất cả các điểm ảnh trong ảnh, bắt đầu từ góc bên trái
trên của ảnh. Và đặt anchor point tương ứng tại điểm ảnh đang xét. Ở mỗi
lần dịch chuyển, thực hiện tính tốn kết quả mới cho điểm ảnh đang xét bằng
cơng thức tích chập ở trên

Hình 2-17 Phương

1.11

-

Lọc biên ảnh
Ta dùng kĩ thuật Sobel và prewitt, dùng 2 mặt nạ. Một ma trận để lọc hàng,
một 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 là A, thì ảnh sau khi áp dụng bộ lọc sẽ là:

CHƯƠNG 3.
-

GIẢI PHÁP THỰC HIỆN


Để giải quyết bài tốn đo khoảng cách thì đầu tiên ta sẽ đưa ảnh bao gồm
một cây thước cùng với vật vào Node-RED. Sau đó ta sẽ chuyển ảnh màu
thành ảnh xám sau đó nhân chập với ma trận Prewitt để lấy ra biên ảnh. Tiếp
theo chúng ta sẽ xử lý lấy ngưỡng ảnh để làm rõ các điểm ảnh của thước và
vật. Sau khi làm rõ được các điểm ảnh của thước và vật thì ta sẽ xác định vị
trí một điểm ảnh có giá trị 255 theo chiều cao ảnh lần lượt nằm trên các vạch
kẻ chia cm của thước để tính được giá trị dài của một điểm ảnh. Tương tự ta
cũng xác định các điểm ảnh nằm trên biên của vật để tính được kích thước
vật dựa vào giá trị dài của một điểm ảnh đã xác định được ở 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 chúng ta sẽ chuyển đổi ảnh từ ảnh màu sang ảnh xám, tiếp theo đó
sẽ nhân tích chập lần lượt với ma trận lọc biên để được 2 ảnh lấy biên theo
phương ngang và phương dọc. Sau đó cho 2 ảnh qua khối composite sẽ được
ảnh cuối cùng

Xử lý ảnh đo kích thước


ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 16

Hình 3-19 Kết quả 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 trên sẽ lấy được vị trí các pixel có giá trị 255 từ biên trên đến
biên dưới ảnh tại vị trí 295và 800. Tại giá trị 295 thì sẽ gióng theo dúng các
vạch chia cm trên thước. Cịn vị trí 800 thì sẽ gióng thẳng qua chiều dài vật.
Các vị trí các pixel thỏa tại vị trí 295 thì sẽ được lưu vào mảng ycol sau đó
được đưa lên biến msg.ycol. Các vị trí các pixel thỏa tại vị trí 800 thì sẽ được
lưu vào mảng ycol1 sau dó được đư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 quả lấy pixel
1.1.16 Tính giá trị dài 1 pixel


Hình 3-22 Hàm tính giá trị dài 1 pixel
-

Ta sẽ 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 sẽ được tính bằng cách bỏ 3 giá trị đầu của mảng, bỏ 3
giá trị cuối của mảng. Sau đó tính hiệu của phần tử cuối mảng sau khi bỏ 3

-

phần tử trừ cho phần tử đầu mảng sau khi loại đi 3 phần tử
Giá trị dài 1 pixel sẽ được 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 thì ta sẽ lấy tổng số pixel tương ứng với vật sau đó

-


nhân cho giá trị dài của 1 pixel
Giá trị kích thước sẽ được gán cho biến msg.leng

CHƯƠNG 4.
1.14

KẾT QUẢ MÔ PHỎNG

Kết quả 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 quả xây dựng hệ thống
1.15
-

Kết quả
Sau khi áp dụng xử lý ảnh và các hàm tính tốn thì chúng ta sẽ được kết quả
kích thước vật như ảnh sau

1.16

Giá trị dài của 1pixel sẽ xấp xỉ 0.0119617 cm
Giá trị kích thước của vật sẽ 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 rằng kích thước thực tế của vật sẽ xấp xĩ 8.55 gần đúng với gí trị mà
chương trình tính được

Xử lý ảnh đo kích thước


ĐỒ ÁN HỆ THỐNG NHÚNG
Trang 22

CHƯƠNG 5.
1.17

KẾT LUẬN

Kết luận

1.1.18 Ưu điểm
- Hệ thống dễ xây dựng khi 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 quá 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 nhau

-

một cách tự động hoàn tồn
Có thể nâng cấp để thành một hệ thống đo kích thước hồn tồn dùng xử lý

-

ảnh khơng cần bất kì cơng cụ đo thủ cơng nào
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
/> />a/p/tuan-5-gradient-and-edge-bJzKmOGwl9N
o/bi-ging-x-l-nh-i-tng-trnh--i-hc-ngnh-o-to-cng-ngh-thng-tin.html?
page=11
/>Tiếng Anh

/> /> />
Xử lý ảnh đo kích thước


ĐỒ ÁN TỐT NGHIỆP
Trang A-1

Mô Phỏng Hệ Thống MIMO



×