1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÁO CÁO
!
" #$%&'(
%)*+%,
Sinh viên thực hiện: NGUYỄN VĂN KIỆM
Lớp ĐT1-K53
Giảng viên hướng dẫn: TS.PHẠM VĂN TIẾN
! /
01!23451111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111116
1.1. Khái niệm máy tính nhúng 4
1.2. Thư viện hỗ trợ lập trình,phát triển đa phương tiện FFmpeg 6
1.3. Thư viện xử lý ảnh Opencv 7
7189:98;8<=>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111?
2.1. Tổng quát chung 9
2.2. Xây dựng thuật toán xử lý ảnh 10
2.2.1 Thu thập và phân tách luồng video 10
2.2.2 Thuật Toán phát hiện sự chuyển động 12
2.2.3 Thuật toán bám theo đối tượng 14
2.3. Xây dựng module restreaming video về Server 21
2.4. Xây dựng module trực canh 21
@19A5B3C3DE.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111177
3.1. Hạng mục xử lý ảnh để xác định đối tượng di chuyển 22
3.2. Hạng mục streaming video 22
3.2.1 Hạng mục trực canh 22
3.2.2 Thu thập tín hiệu phát hiện di chuyển từ các sensor 22
61DF=>G8HIJ=9G8KL111111111111111111111111111111111111111111111111111111111111111111111117@
/;58MN:8BL11111111111111111111111111111111111111111111111111111111111111111111111111111111111111176
2
M=8N 8O=8PQ
3
1. !2345
Hiện nay các khu vực bảo tồn động vật,thực vật gồm một số động thực vật quý cần
được bảo vệ. Ở đây thường xảy ra các vụ trộm cắp động thực vật do vậy yêu cầu
một hệ thống phát hiện,theo dõi và cảnh báo khi đối tượng xâm nhập vào khu vực
này dựa vào việc xử lý tín hiệu video được gửi về từ camera. Hiện tại đã có nhiều
phần mềm theo dõi, giám sát được sử dụng rộng rãi cho các hệ thống giám sát và
an ninh,tuy nhiên hầu hết họ chỉ sử dụng các loại camera cố định không có cơ cấu
xoay, hoặc ít nhất có cơ cấu đế xoay thì cũng phải điều khiển quay bằng tay trên
giao diện. Một phần nữa là các phần mền chủ yếu được cài lên máy tính chạy hệ
điều hành window hay linux vì vậy chỉ triển khai được ở trong nhà và tiêu tốn
nhiều năng lượng. Thay vì dùng máy tính thông thường ý tưởng của em là triển
khai xây dựng một phần mềm trên máy tính nhúng vừa nhỏ gọn, dễ dàng triển khai
ngay cả trong nhà hay ngoài trời,và một phần quan trọng là tiêu tốn ít năng lượng
hơn so với máy tính thông thường. Những thiết bị này có thể chạy nhiều ngày liên
tiếp vì vậy sẽ đảm bảo việc giám sát được thực hiện liên tục.Sau khi phát hiện có
đối tượng nào đó xâm nhập ngoài việc điều khiển camera bám theo đối tượng phần
mền còn gửi bản tin cảnh báo về trung tâm để báo cho người trực canh theo dõi vào
màn hình hiển thị.
Trong khuôn khổ đề tài này,em đi sâu vào việc nghiên cứu và xây dựng phần mềm
sử dụng các thuật toán để phân tích,phát hiện đối tượng di chuyển trong một luồng
video dựa trên thư viện opencv được biên dịch và cài đặt trên máy tính nhúng chạy
hệ điều hành android. Em rất cảm ơn sự hướng dẫn,chỉ bảo nhiệt tình và đặc biệt là
sự hỗ trợ thiết bị của TS. Phạm Văn Tiến đã giúp em hoàn thành đề tài này.
1.1. 8H=;NNHRS=8=8T=>
Thiết bị phần cứng được dùng trong hệ thống này là kit SBC-8530 với các tính
năng sau:
CPU DM3730 32bit,1Ghz là một bộ xử lý được tích hợp nhân Cotex-A8 đồng thời
có chip chuyên xử lý số (DSP) chạy ở tốc độ 800Mhz với tính năng xử lý tín hiệu
số tốc độ cao phù hợp cho các ứng dụng đa phương tiện. Kit hỗ trợ đầy đủ các giao
4
diện như màn hình hiển thị S-VIDEO, USB, Audio input/output, Ethenet, wifi,
Touch Screen, UART, SPI, Camera
Hình 1-1 Sơ đồ khối của Kit SBC-8530
Máy tính nhúng có thể chạy được các hệ điều hành linux 2.6.32,WINCE và
Android 2.2. Hệ điều hành có thể được boot từ bộ nhớ Nand flash (512Mbytes)
hoặc từ TF card. Để nhằm mục đích phát huy tối đa khả năng xử lý đa phương tiện
của máy tính nhúng, em đã cài hệ điều hành Android lên kit.
Android là hệ diều hành phát triển chủ yếu trên các thiết bị di động, tuy nhiên trong
những năm gần đây các thiết bị nhúng khác như: máy tính nhúng arm, một số đầu
phát HD, HD player cũng được cài đặt hệ điều hành android.
5
Android được phát triển bởi Google và dựa trên nền tảng linux.Hơn nữa nó sử dụng
một máy ảo tùy chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng.
Hình 1-2 Cấu trúc tổng quát của một hệ điều hành android
1.2. 8DP;=8UIE/VGIO=8WG8HIJ=3MG8DX=>;=YYNGK>
FFMPEG là một trong những thư viện mở, miễn phí, phổ biến, hữu ích quan trọng
nhất liên quan đến vấn đề nén (compress), giải nén (decompress), xử lý và truyền
nhận video, audio hiện nay. FFMPEG được đánh giá cao bởi tốc độ, khả năng hỗ
trợ đa môi trường từ window, linux (android) tới mac, từ máy bàn mạnh mẽ tới các
thiết bị nhúng yếu ớt. Ngoài ra sự uyển chyển trong cấu trúc dễ dàng mở rộng và
hỗ trợ đa dạng khiến nó trở nên đáp ứng hầu như mọi nhu cầu của nhà phát triển.
Được viết bằng C dựa theo chuẩn ISO C90 và vài cú pháp của ISO C99. Được xây
dựng để biên dịch bằng trình biên dịch gcc
Thư viện FFMPEG bao gồm:
6
MP.LZK.: hỗ trợ các bộ nén/mã hóa và giải nén/giải mã cho video và audio
MPZKP.K: tạo nền giao tiếp với các thiết bị,trình quản lý thiết bị nhập xuất
video,audio.
MP[/KI: tập hợp các thủ tục xử lý,chỉnh sửa,hiệu ứng trên video,audio
MP[LINM: quản lý các định dạng nhập xuất,cấu trúc file(avi,mpeg, ) giao thức
truyền nhận audio,video(http,rtsp )
\]\.M/K:d ùng cho việc thay đổi tỷ lệ,co giãn kích cỡ,chuyển đổi định dạng điểm
ảnh,không gian
)^LNNM=Z/=K=KI[M.K_
YY/MR: một ứng dụng nhỏ nhằm play audio, video dùng để test các API của
ffmpeg.
YY!,: ứng dụng có khả năng đọc audio, video từ nhiều nguồn khác nhau,
thực hiện xử lý, chuyển đổi, chỉnh sửa và xuất ra các kiểu định dạng khác nhau,
phương thức khác nhau.
[[GIL`K: một ứng dụng có khả năng đọc, thu thập thông tin mô tả cả các nguồn đa
phương tiện khác nhau và xuất báo cáo một cách trực quan cho người dùng.
[[\KIPKI: có khả năng làm một máy chủ dịch vụ để stream video / audio dưới các
giao thức như RTP/RTSP/HTTP.
1.3. 8DP;=ab/cB=8GK=.P
OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm
1999 và hoàn thiện thành phiên bản 1.0 năm 2006. Thư viện OpenCV - gồm
khoảng 500 hàm – được viết bằng ngôn ngữ lập trình C và tương thích với các hệ
điều hành Windows, Linux, Mac OS đóng vai trò xác lập chuẩn giao tiếp, dữ liệu,
thuật toán cho lĩnh vực CV và tạo điều kiện cho mọi người tham gia nghiên cứu và
phát triển ứng dụng.
7
Hình 1-3 Tổ chức thư viên Opencv
Tổ chức thư viện OpenCV khá đơn giản (xem Hình), bao gồm 4 module chính và 2
module mở rộng:
- CXCORE chứa các định nghĩa kiểu dữ liệu cơ sở. Ví dụ, các cấu trúc dữ liệu cho
ảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h . CXCORE cũng chứa
đại số tuyến tính và phương pháp thống kê, chức năng duy trì và điều khiển chuỗi.
Một số ít, các chức năng đồ họa để vẽ trên ảnh cũng được đặt ở đây.
- CV chứa các thuật toán về xử lý ảnh và định kích cỡ camera. Các chức năng hình
họa máy tính cũng được đặt ở đây.
- CVAUX được mô tả trong tài liệu của OpenCV như chứa các mã cũ và thứ
nghiệm. Tuy nhiên, các giao diện đơn cho sự nhận diện ảnh ở trong module này.
Code sau này chúng được chuyên dụng cho nhận diện mặt và chúng được ứng dụng
rộng rãi cho mục đích đó.
- HIGHGUI và CVCAM được đặt trong cùng thư mục là “otherlibs”. HIGHGUI
chứa các giao diện vào ra cơ bản, nó cũng chứa các khả năng cửa sổ mở rộng và
vào ra video. CVCAM chứa các giao diện cho video truy cập qua DirectX trên nền
Windows 32 bits
OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử lý ảnh số
vì các ưu điểm sau:
8
- OpenCV là công cụ chuyên dụng: Được Intel phát triển theo hướng tối ưu hóa cho
các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao
diện, truy xuất thiết bị phần cứng được tích hợp sẵn. OpenCV thích hợp để phát
triển nhanh ứng dụng.
- OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí (với BSD
license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ
thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô
hình, thuật toán.
2. 89:98;8<=>
2.1. d=>A5H.85=>
Mô hình hệ thống
Hinh 2-1 Mô hình hoạt động hệ thống
9
Yêu cầu hệ thống:
-Phân tích và xử lý ảnh, điều khiển camera bám theo chuyển động
-Tương tác 2 chiều với thiết bị camera
-Có thể giao tiếp hai chiều với các cảm biến cảnh báo chuyển động.
-Có khả năng hiển thị hình ảnh, phát tín hiệu cảnh báo nhân viên (còi hú, đèn …)
-Có giao diện người dùng, dễ dàng tương tác và điểu khiển
-Giao tiếp với mạng internet liên kết với server
2.2. eRZf=>85VLH=ab/cB=8
71710858VGPG8e=H.8/5g=>PZKL
Một luồng video đã được mã hóa để giảm sự dư thừa về mặt không gian và thời
gian vì vậy các frame liên tiếp có sự ràng buộc và phụ thuộc lẫn nhau. Với sự hỗ
trợ mạnh mẽ của thư viện FFMPEG trong việc giải mã(decompress) một luồng
video thành các ảnh rời rạc
hi=Zj.88DP;=YY!,.8LNHRS=8=8T=>.8CR8;358=8M=ZILZ
h0download sourcecode ffmpeg từ website />h7Tạo file configure để cấu hình biên dịch cho thiết bị nhúng nhân là chip arm:
./configure \
disable-everything \
arch=arm5te \
enable-neon \
target-os=linux \
cross-prefix=arm-linux-androideabi- \
extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors
-Wno-deprecated" \
10
enable-cross-compile \
disable-shared \
enable-static \
enable-small \
disable-ffmpeg \
disable-ffplay \
disable-ffprobe \
disable-ffserver \
disable-avfilter \
disable-avdevice \
enable-network \
enable-protocol=tcp \
enable-protocol=udp \
enable-protocol=rtp \
enable-encoder=mpeg4 \
11
enable-muxer=rtsp \
enable-muxer=rtp \
enable-libx264 \
enable-encoder=libx264 \
enable-gpl \
enable-memalign-hack \
extra-cflags="-I$x264_path" \
extra-ldflags="-L$x264_path"
h@biên dịch
Thực hiện lệnh “make”để biên dịch
Sau khi biên dịch xong mà không có lỗi gì ta sẽ nhận được đầu ra là các file thư
viện .so và .a phục vụ cho việc lập trình trên android thông qua java
nativecode(jni)của java.
7171785VLH=G8H8;=\f.85RJ=3k=>
Có nhiều phương pháp tiếp cận để phát hiện chuyển động trong hình ảnhvideo liên
tục. Có thể so sánh khung hìnhhiện tại với hình nền chúng ta chụp từban đầu khi
bật camera hoặc từ khunghình trước. Đối với phương pháp thứnhất thì đơn
giản và giảm được việc xửlý. Tuy nhiên, cách tiếp cận có một bấtlợi lớn - điều gì
sẽ xảy ra, ví dụ nếu cómột đối tượng đang di chuyển ở frameđầu tiên, nhưng sau
đó nó đã biến mất.Phương pháp thứ hai thì xử lý phức tạphơn, xử lý nhiều hơn
nhưng lại thích nghivới mọi môi trường, kể cả môi trường ítthay đổi hoặc thay
đổi nhiều. Nhượcđiểm là nếu đối tượng di chuyển một cách rất chậm thì hệ thống
12
không phát hiện ra. Nhưng có thể giải quyết bằng cách tăng số khung hình trên
giây. Trong đề tài này giới thiệu theo phương pháp thứ hai.
Giả sử rằng chúng ta có một bản gốc 24 bpp RGB là hình ảnh hiện tại (img1) và
khung hình trước đó (img2), một bản sao màu xám của nó (gray_img1) và
(gray_img2). Trước hết, chúng ta hãy tìm những khu vực nơi hai khung hình khác
nhau bằng cách trừ từng pixel của 2 khung hình xám kia và so sánh với một
ngưỡng cho trước. Tiếp đó, chúng ta sẽ nhận được một hình ảnh ở đầu ra (result)
với các điểm ảnh màu trắng nơi mà những điểm ảnh của khung hiện tại khác với
khung hình trước đó với một ngưỡng cho trước ở trên còn lại màu đen. Ta có thể
đếm các điểm ảnh màu được một hình ảnh ở đầu ra (result) với các điểm ảnh màu
trắng nơi mà những điểm ảnh của khung hiện tại khác với khung hình trước đó với
một ngưỡng cho trước ở trên còn lại màu đen. Ta có thể đếm các điểm ảnh màu
trắng và nếu số điểm ảnh của nó lớn hơn một mức độ báo động xác định trước
chúng ta có thể báo hiệu về một sự kiện chuyển động.
Lưu đồ thuật toán được thể hiện ở hình
13
Hình 2-2 Thuật toán phát hiện đối tượng di chuyển
2.2 .3 85VLH=`HN8KL3<DE=>
Trước khi nói về thuật toán bám theo đối tượng em xin đề cập đến vấn đề là như
thế nào để lấy được tâm vùng chuyển động
Hình dưới đây thể hiện kết quả của quá trình trừ 2 frame liên tiếp nhau trong 1
luồng video
14
Hình 2-4 Kết quả trừ các frame liên tiếp và lấy ngưỡng
Hình bên trái thể hiện ảnh xám của frame hiện tại.Hình bên phải thể hiện kết quả
của phép trừ frame hiện tại với frame trước nó.Vùng sáng hình bên phải thể hiện sự
thay đổi giữa hai ảnh,trong khi đó vùng tối thể hiện các điểm ảnh không thay đổi
giữa hai frame.
Việc xác định tâm vùng chuyển động được tính toán thông qua moment của tập
hợp các điểm sáng.
Trong vật lý học,moment M thể hiện sự tác động của một lực F ở khoảng cách d
tính từ điểm tựa “fulcrum” được mô tả như hình dưới đây:
15
Hinh 2-5 Lực tác động ở khoảng cách từ Fulcrum
Phương trình moment M=F*d
Khái niệm này có thể được tổng quát theo nhiều chiều khác nhau.Ví dụ,thay vì sử
dụng cho tác động của lực nó thường có khuynh hướng nói về khối lượng dẫn tới
trọng lực không cần được xem xét.Ngoài ra phương trình moment có thể được mở
rộng cho nhiều chiều bao gồm cả không gian và khối lượng
Mỗi điểm có một khối lượng (m1,m2, ,mn)và tọa độ ((x1,y1),(x2,y2),…,
(xn,yn)).Nếu chúng ta tưởng tượng rằng các điểm liên kết với nhau bởi một
khung(gồm trục x và trục y)không trọng lượng.Khi đó moment của chúng có thể
được tính liên quan đến từng trục.
Ta xem xét trục y trước.Mỗi điểm sẽ có một moment bằng với khối lượng của điểm
đó nhân với khoảng cách từ điểm đó đến trục.Tổng moment của tất cả các điểm
xung quanh trục y là:
My=m1*x1+m2*x2+…+mn*xn
Tính tương tự với trục x ta cũng có:
Mx=m1*y1+m2*y2+…+mn*yn
Tổng khối lượng của tất cả các điểm:
Msys=m1+m2+…+mn
16
Dựa vào phương trình M=F*d trong không gian 1 chiều có thể được tổng quát hóa
trong không gian 2 chiều như sau:
My=Msys * x(tìm dấu trung bình)
Và Mx=Msys * y
x(tb) và y(tb) có thể được xem như là khoảng cách tương ứng của hệ thống so với
các trục x và y,hay nói cách khác (x,y) là tọa độ của điểm tâm còn gọi là trung tâm
của trọng lực.Tương ứng với các phương trình trên ta tính được
x(tb)=
và y(tb)=
)i=8;l3JNFGaK/\:
Việc sử dụng khối lượng trong phương trình moment chỉ thực hiện khi chúng ta
tính toán moment cho các đối tượng thật.Trong xử lý ảnh,người ta ta thường tập
trung vào các pixel hơn và thành phần khối lượng có thể được thay thế bởi một đặc
tính của pixel đó là cường độ sáng(0-255 cho ảnh mức xám,0-1 cho ảnh nhị phân)
Giả sử mỗi pixel có 1 cường độ sáng(I1,I2, ,In) và tọa độ (x,y) tương ứng
((x1,y1),(x2,y2), ,(xn,yn)) như hình bên dưới
Hình 2-6 Không gian 2 chiều các điểm ảnh
Tổng moment các điểm ảnh quanh trục y được tính như sau:
My=I1*x1+I2*x2+ +In*xn
và moment quanh trục x:
Mx=I1*y1+I2*y2+ +In*yn
17
Cường độ sáng của tất cả các pixel là tổng cường độ sáng của mỗi pixel
Isys=I1+I2+ +In
Từ lập luận như ở trên ta có
x(tb)=My/Isys
y(tb)=Mx/Isys
Điểm có tọa độ(x(tb),y(tb)) là tâm của vùng cần tìm
!LNK=IL=>GK=.P
GK=.Ptính toán các loại moment khác nhau sử dụng phương trình
m(p,q)=I(x,y)*x^p*y^q
Ι() là cường độ sáng của pixel có tọa độ (x,y)
n là số pixel của hình cần tìm
Theo trên ta có:
x(tb)=My/Isys;y(tb)=Mx/Isys
Vì vậy ta cần tính 3 đại lương
My=I1*x1+I2*x2 +In*xn
Mx=I1*y1+I2*y2+ +In*yn
Isys=I1+I2+ +In
Với p=1,q=0,ta có:
m(1,0)=My
Với p=0,q=1,ta có:
m(0,1)=Mx
Isys=m(0,0)
có nghĩa là x(tb),y(tb) có thể được tính như sau:
x(tb)=m(1,0)/m(0,0)
y(tb)=m(0,1)/m(0,0)
Sử dụng thư viện Opencv ta có thể tính toán được các giá trị
m(0,0),m(0,1),m(1,0),từ đó dễ dàng tính được tọa độ (x(tb),y(tb)) là tâm vùng
chuyển động,dưới đây là một đoạn code thực hiện nhiệm vụ này:
cvAbsDiff(buf[idx1], buf[idx2],diffImg );
cvThreshold(diffImg,diffImg,LOW_THRESHOLD,255,CV_THRESH_BINARY)
18
cvEqualizeHist(diffImg,diffImg);
int numberpixel=cvCountNonZero(diffImg);
if(diffImg==0)
if(numberpixel>MIN_PIXELS)
{
CvMoments* moment=new CvMoments();
cvMoments(diffImg,moment,1);
double m00 =moment->m00;
double m10 =moment->m10;
double m01 =moment->m01;
if(m00!=0)
{
int xcenter=(int)(m10/m00+0.5);
int ycenter=(int)(m01/m00+0.5);
COGpoint.x=xcenter;
COGpoint.y=ycenter;
}
else
{
COGpoint.x=160;
COGpoint.y=120;
}
}
else
{
COGpoint.x=160;
COGpoint.y=120;
}
}
19
Sau khi đã xác định được tâm đối tượng di chuyển (x(tb), y(tb)) = (COGpoint.x,
COGpoint.y). Nếu tâm này nằm ngoài điểm ảnh mà định nghĩa trước là điểm min
và max thì điều khiển camera quay sang trái hoặc phải tùy vào là vượt điểm max
hoặc min. Lưu đồ thuật toán thể hiện như hình:
Hình 2-7 Thuật toán quay camera
20
2.3. eRZf=>NLZ5/KIK\IKMN=>PZKLP"KIPKI
Để giải quyết vấn đề truyền tín hiệu video từ camera về server ở một khoảng cách
xa,hệ thống được thiết kế yêu cầu máy tính nhúng không chỉ có nhiệm vụ xử lý
phát hiện chuyển động mà còn phải streaming video từ camera về máy tính trực
canh khi có tín hiệu yêu cầu.Để giảm thiểu tiêu tốn băng thông và cải thiện chất
lượng cũng như tốc độ truyền video,tín hiệu video máy tính nhúng thu thập từ
camera được mã hóa thành luồng MPEG-4 hoặc H264
Nén video (hay mã hóa video) là quá trình nén chuỗi video số thành chuỗi bit với
số lượng bit cần thiết nhỏ hơn. Một chuỗi video thô, chưa nén yêu cầu một số
lượng bit rất lớn (cỡ 250 Mbps). Do đó việc nén 1 video số trước khi lưu trữ hoặc
truyền đi là cần thiết. Nén dữ liệu được thực hiện nhờ loại bỏ các thông tin dư thừa,
các thành phần không thực sự cần thiết cho việc tái tạo lại dữ liệu.
2.4. eRZf=>NLZ5/KIf..M=8
Để hệ thống kịp thời thông báo cho người trực khi có tình huống xấu xảy ra tác vụ
trực canh là thực sự cần thiết.Người dùng không phải luôn luôn nhìn vào màn hình
video mà chỉ khi nào hệ thống phát hiện có đối tượng xâm nhập thì mới yêu cầu
phát ra một tín hiệu(còi,loa) để thông báo cho người trực xem video.Khi đó luồng
video mới được nén và truyền về server.
Phần mềm xem video trên server phải liên tục cập nhật tín hiệu gửi về từ máy tính
nhúng.
21
3. 9A5B3C3DE.
3.1. C=>N ab/cB=83JaH.3j=83<DE=>Z.85RJ=
Đã xác định được tâm của đối tượng di chuyển khi đối tượng này đi vào tầm nhìn
của camera. Xử lý và gửi bản tin yêu cầu quay camera khi đối tượng vượt khỏi tầm
quan sát
3.2. C=>N \IKMN=>PZKL
Khi có tín hiệu yêu cầu xem video,phần mền trên máy tính nhúng đã streaming
được video về server. Luồng video ở đây là luồng RTSP với video được mã hóa
MPEG-4 hoặc H264, chất lượng video khá tốt.tuy nhiên khi camera bắt đầu thực
hiện tác vụ quay thì video vẫn còn bị đứng hình một thời gian.
3.2.1 C=>N If..M=8
Video về server và view được trên giao diện khi có sự kiện đối tượng di
chuyển,đồng thời tín hiệu báo hiệu(còi,loa) cũng được bật để thông báo cho người
trực.
3.2.2 858VGS=8;5G8H8;=Z.85RJ=l.H.\K=\LI
Thông qua giao tiếp uart với vi điều khiển,phần mền đã lấy được các bản tin báo
hiệu từ các node sensor cảm biến hồng ngoại,mini rada qua mạng không dây zigbee
22
Hình 3-1 Nút cảm biến hồng ngoại
Hình:Bản tin báo về từ sensor nhận được trên máy tính nhúng khi có đối tượng di
chuyển
4. DF=>G8HIJ=9G8KL
- Phát triển và hoàn thiện mạch điều khiển động cơ quay webcam bám theo đối
tượng di chuyển, đồng thời nhận tín hiệu từ các node sensor sau đó gửi lên để máy
tính nhúng xử lý
- Điều chỉnh lại thuật toán quay camera vì nhiều trường hợp quay chưa theo ý
muốn
23
/;58MN:8BL
[1] Kinect Chapter 12. Motion Detection Using OpenCV - Java Prog PDF(18th
Dec. 2011)
[2] Human Motion Detection and Tracking for Video
Surveillance
(Department of Electronics and Electrical Communication Engineering
Indian Institute of Technology, Kharagpur, Kharagpur 721302, India
)
[3] Andrew Kirillov, Software Developer (4/2007), “Motion Detection Algorithms”
24