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 (6.72 MB, 86 trang )
CAMERA
Điện thoại
XỬ LÝ ẢNH
Module Sim
800L
Vi Điều Khiển
Arduino Uno
Hình 4.1 Sơ đồ khối toàn bộ hệ thống.
-
Camera: Camera được kết nối trực tiếp với phần mềm Matlab. Hình ảnh thu
được từ camera sẽ được matlab xử lý liên tục, chất lượng hình ảnh từ Camera quyết
định đến độ chính xác của quá trình xử lý phát hiện cháy.
-
Xử lý ảnh: Dựa trên đặc tính của khói lửa, chương trình thực hiện các bước xử
lý ảnh để nhận dạng đám cháy và xuất tín hiệu về vi điều khiển
-
Vi điều khiển: Trong quá trình xử lý nếu phát hiện cháy Vi điều khiển sẽ nhận
được tín hiệu từ Matlab và thực hiện thông báo cháy.
-
Module Sim 800L: Nhận nhiệm vụ nhắn tin, gọi điện thoại thơng báo cho người
dung khi có cháy.
-
Điện thoại: Thiết bị sẽ nhận được tin nhắn và cuộc gọi từ Module Sim khi có
cháy xảy ra.
4.1.2 Lưu đồ giải thuật phát hiện đám cháy
20
Hình 4.2 Lưu đồ giải thuật phát hiện cháy.
21
Đặc tính của ngọn lửa là xuất hiện kèm theo khói, lửa có màu tương tự như
màu cam, vàng, đỏ và chuyển động ngẫu nhiên. Dựa vào đó đề tài này xây dựng thuật
tốn phát hiện cháy trên các đặc điểm đó. Ban đầu chương trình sẽ thiết lập kết nối
Camera với Matlab, các khung ảnh từ Camera được đưa vào bộ nhớ đệm để tiến hành
xử lý, 2 khung ảnh liên tiếp được so sánh năng lượng với nhau, nếu xuất hiện suy giảm
năng lượng ảnh (đồng nghĩa với xuất hiện khói) chương trình sẽ chuyển sang nhận
dạng màu đỏ (nếu có) từ khung ảnh. Nếu trong 50 khung hình liên tiếp khơng có sự
xuất hiện màu đỏ thì chương trình sẽ quay trở lại giám sát sự suy giảm năng lượng
ảnh. Sau khi đã tách được màu đỏ từ ảnh và lưu vào bộ nhớ đệm, một số khung ảnh
liên tiếp chứa màu đỏ sẽ được trừ với nhau để kiểm tra sự chuyển động. Nếu màu đỏ
trong các khung ảnh chuyển động vượt qua ngưỡng thì chương trình sẽ thơng báo
cháy, ngược lại chương trình sẽ tiếp tục nhận dạng lại màu đỏ trong các khung tiếp
theo.
4.2 Xử lý ảnh phát hiện cháy
4.2.1 Thu nhận ảnh
Bước đầu tiên của quá trình xử lý là thu nhận ảnh từ Camera. Camera có chất
lượng hình ảnh càng tốt thì q trình nhận diện lửa càng chính xác. Do mục tiêu của
đề tài là phát hiện đám cháy ngoài trời nên điều kiện thời tiết như ánh sáng, sương mù,
mưa,…ảnh hưởng khá nhiều đến quá trình xử lý. Quá trình xử lý ảnh trên Matlab khá
chậm nên nếu Camera có chất lượng quá cao sẽ làm treo hệ thống. Vì vậy mà yếu tố
camera là yếu tố quan trọng nhất.
Camera được sử dụng trong đề tài này là camera Logitech C905 với cảm biến
thực 2MP, độ phân giải 720p.
Hình 4.3 Camera Logitech C905.
22
Hinh 4.4 Ảnh thu nhận từ camera kết nối với matlab.
Để nhận diện và phát hiện cháy, đề tài này đã sử dụng 3 biện pháp: Suy giảm
năng lượng ảnh, nhận dạng màu và phát hiện chuyển động.
4.2.1 Suy giảm năng lượng của ảnh
Mục đích của việc xác định sự suy giảm năng lượng của ảnh là để gián tiếp xác
định sự xuất hiện của khói. Khi có khói năng lượng ảnh sẽ giảm, dựa vào việc liên tục
tính năng lượng của từng khung ảnh và so sánh với khung ảnh trước đó ta có thể biết
được sự xuất hiện của khói. Để tính năng lượng của ảnh ta phải biến đổi Fourier 2
chiều ảnh xám. Phép biến đổi Fourier của tín hiệu rời rạc 2 chiều (ảnh số) được tính
bằng cơng thức:
M 1 N1
G (u , v ) g ( x, y )e
ux vy
2 j
M N
x 0 y 0
Với: M, N lần lượt là số pixel của chiều x, y.
23
Hình 4.5 Ảnh gốc và biến đổi Fourier 2 chiều của ảnh.
Sau khi biến đổi Fourier, chương trình sẽ tính năng lượng của ảnh. Năng lượng
của 2 khung ảnh liên tiếp sẽ được liên tục so sánh với nhau, nếu có sự giảm năng
lượng vượt qua ngưỡng tính tốn từ trước hệ thống sẽ thơng báo có khói. Q trình
giám sát sự thay đổi năng lượng của các khung ảnh phụ thuộc khá nhiều vào điều
khiện ánh sáng, sương mù, cũng như chất lượng Camera. Ngưỡng được tính tốn phù
hợp để tránh phát hiện nhằm gây ra thông báo giả.
Gọi:
1 là tổng năng lượng của khung ảnh trước.
2 là tổng năng lượng của khung ảnh sau.
là ngưỡng thay đổi năng lượng được tính tốn từ trước.
Nếu: 1 - 2 > thì chương trình sẽ thơng báo xuất hiện khói.
Ngồi ra, tùy thuộc khoảng cách đặt Camera với khu vực cần giám sát đám
cháy mà khung ảnh thu được có thể lớn hoặc nhỏ, lượng khói xuất hiện có thể nhiều
hoặc ít nên ta cần phải điều chỉnh ngưỡng () cao hoặc thấp cho phù hợp. Với
khoảng cách gần ngưỡng sẽ khá cao để tránh phát hiện nhằm, khoảng cách xa ngưỡng
nên nhỏ hơn để phát hiện kịp lúc trược khi đám cháy lan rộng.
Với khoảng cách từ 8-9m đề tài chọn = 1e+14.
24
Hình 4.6 Ảnh khơng khói và biến đổi Fourier 2 chiều của ảnh.
Hình 4.7 Ảnh có khói và biến đổi Fourier 2 chiều của ảnh.
4.2.2 Nhận dạng màu
Sau khi phát hiện khói, chương trình chuyển sang q trình nhận dạng lửa,
trước hết là nhận dạng màu đỏ. Lúc này tất cả hình ảnh thu nhận được từ Camera sẽ
đều được chuyển sang ảnh xám để tiến hành các bước xử lý nhận dạng màu đỏ.
4.2.2.1 Chuyển ảnh xám.
Cấu tạo của một ảnh RGB được cấu thành từ ba ma trận ảnh: Red, Green, Blue.
Thực chất, 3 lớp này đại diện bởi 3 lớp ảnh xám khác nhau (gray- scale) có tỉ lệ xám
khác nhau, tùy tỉ lệ đó mà chúng tạo nên lớp R,G hay B trong ảnh màu RGB. Trên cơ
sở đó, chúng ta khơng thể xử lý trực tiếp trên nền ảnh ảnh RGB mà cần phải chuyển
sang xám. Kết quả sau khi chuyển sang ảnh xám như sau:
25
Hình 4.8 Ảnh thu nhận từ camera chuyển sang ảnh xám.
4.2.2.2 Nhận dạng màu đỏ
Mục đích của việc nhận dạng màu đỏ là xác định phần tử lửa có trong ảnh. Để
nhận dạng màu đỏ được cho là lửa ta phải tiến hành một số bước xử lý ảnh như: lấy
kênh màu đỏ, thực hiện trừ kênh màu đỏ với ảnh xám, lọc trung bình 2 chiều,
chuyển sang ảnh nhị phân, loại các đối tượng nhỏ khỏi ảnh.
26
Hình 4.9 Kênh màu đỏ của ảnh.
Hình 4.10 Ảnh sau khi đã trừ kênh màu đỏ với ảnh xám.
Sau khi trừ kênh màu đỏ với ảnh xám, đối tượng đỏ còn khá mờ, ảnh khá xấu vì
bị nhiễu nên ta sử dụng bộ lọc trung bình 2 chiều và chuyển sang ảnh nhị phân.
27
Hình 4.11 Ảnh sau khi lọc và chuyển sang nhị phân.
Các đối tượng với số lượng điểm ảnh quá nhỏ bị loại bỏ để làm nét ảnh.
Hình 4.12 Ảnh sau khi loại bỏ các đối tượng nhỏ
28
4.2.3 Phát hiện chuyển động
Trong quá trình hình thành và phát sinh của mình thì hình dạng và kích thước
của lửa ln ln thay đổi và khơng cố định. Hay nói đúng hơn, ngọn lửa di chuyển,
và có thể coi là 1 chuyển động. Vì thế những phần tử màu đỏ được phát hiện trong
ảnh phải chuyển động ngẫu nhiên mới được xác định là lửa. Các khung ảnh liên tiếp
sẽ được so sánh với nhau để xác định đó là sự chuyển động của lửa hay đó chỉ là đối
tượng màu đỏ.
Hinh 4.13 Ảnh phần tử đỏ lấy ra từ hai khung ảnh liên tiếp
Hình 4.14 Ảnh cho thấy sự khác biệt giữa 2 khung.
Do chất lượng Camera kém nên dù vật có đứng yên thì sau khi lấy sự khác biệt
vẫn sẽ xuất hiện những sự chuyển động nhỏ, ảnh hưởng đến quá trình xử lý. Vì vậy
chương trình phải tính tốn mức ngưỡng hợp lí, với ngưỡng q nhỏ ta khơng thu về
đủ các giá trị pixel trắng để phân tích; với ngưỡng quá lớn, các thành phần không
mong muốn sẽ xuất hiện, gây nhiễu, làm sai lệch kết quả. Ngưỡng hợp lý chính là số
số lượng điểm ảnh trắng sau khi so sánh sự khác biệt.
4.2.4 Giao diện của chương trình
29
Giao diện phần mềm được thiết kế đơn giản, dể sử dụng nhưng đảm bảo yêu
cầu chức năng như trong hình 4. . Có mục trạng thái để thơng báo khi phát hiện khói,
lửa, tình trạng thơng báo và thời gian xảy ra cháy.
Hình 4.15 Giao diện chương trình.
Các khung hình liên tiếp thu được từ camera sẽ được hiển thị trên khung
webcam, lửa nhận dạng được sẽ được hiển thị dưới dạng ảnh nhị phân trên khung lửa
tách được. Ở thanh trạng thái:
-
Khói: nếu có khói chương trình sẽ hiển thị “Có”, ngược lại “Khơng Có”.
-
Lửa: “Lua to” hoặc “Lua nho” sẽ được hiển thị sau khi chương trình nhận dạng
được đám cháy .
-
Thơng báo: Ở đây chương trình sẽ cho ta biết thông báo cháy qua tin nhắn và
gọi điện thoại đã được thực thi hay chưa.
-
Thời gian cháy: Thời gian xảy ra cháy sẽ cập nhật ngay lập tức.
4.3 Cảnh báo cháy thông qua Module Sim 800L
30