Tải bản đầy đủ (.pdf) (27 trang)

XỬ LÝ THUẦN JAVA TRONG ỨNG DỤNG NHẬN DẠNG VIDEO

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.03 MB, 27 trang )

AQ`11 +

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG




TRẦN NGỌC SƠN

XỬ LÝ THUẦN JAVA TRONG
ỨNG DỤNG NHẬN DẠNG VIDEO




TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT





HÀ NỘI - 2014



Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


Người hướng dẫn khoa học: TS. Đặng Hoài Bắc




Phản biện 1: ……………………………………………………
………………………………………………………………………

Phản biện 2: ……………………………………………………
………………………………………………………………………





Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại
Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông


1
MỞ ĐẦU

Việc tích hợp Điện tử - Viễn thông - Công nghệ Thông tin hiện đang rất
phát triển trên thế giới để tạo ra các hệ thống tích hợp dựa trên nền tảng của hệ
thống viễn thông 3G. Việc làm chủ các công nghệ nguồn, các phương thức
truyền dẫn tiên tiến trên thế giới và các chương trình ứng dụng trên các thiết bị
cầm tay Handheld sẽ tạo ra các ứng dụng phong phú trong nhiều lĩnh vực của
đời sống xã hội. Luận văn này sẽ áp dụng các công cụ mới nhất của xử lý thuần
Java trong xử lý Video để xây dựng một hệ thống giám sát Video thông minh,

phát hiện các sự kiện và truyền dẫn dữ liệu hình ảnh, video tức thời đến
smartphone. Các kỹ thuật được áp dụng trong luận văn có tính cập nhật và làm
chủ được những công nghệ mới có xu hướng phát triển của thế giới về công
nghệ di động và viễn thông. Nội dung luận văn bao gồm 3 chương:
 Chương 1: Các Hệ thống Giám sát Video
Chương này giới thiệu một số hệ thống giám sát Video trong một số lĩnh
vực giám sát điển hình, từ đó làm cơ sở để xây dựng các ứng dụng thực hiện
trong luận văn khi thiết kế hệ thống giám sát video thông minh dựa trên hạ tầng
di dộng 3G với bộ xử lý trung tâm thuần Java.
 Chương 2: Xử lý thuần Java trong hệ thống giám sát Video thông
minh.
Trong chương này chúng ta sẽ xem xét tìm hiểu về ngôn ngữ Java và bộ
xử lý thuần Java trong việc xử lý các dữ liệu video. Trên cơ sở đó chúng ta sẽ
xây dựng mô hình hệ thống giám sát Video thông minh, trong đó cấu hình thiết
bị giám sát Video sẽ được ứng dụng hoàn toàn bằng việc xử lý thuần Java trên
bộ xử lý aJ 200
 Chương 3: Xây dựng hệ thống giám sát Video thông minh
Trong chương này chúng ta sẽ xây dựng các thiết kế phần cứng và cấu
hình phần mềm cho hệ thống Video thông minh dựa trên bộ xử lý thuần Java
trong hệ thống thử nghiệm giám sát video thông minh.



2
Chương 1- CÁC HỆ THỐNG GIÁM SÁT VIDEO

1.1. Giới thiệu chương
1.2. Giới thiệu các hệ thống giám sát video
Ngày nay nhắc tới hệ thông giám sát an ninh và cảnh báo bảo vệ là chúng
ta nghĩ ngay tới một hệ thống Video giám sát gồm các Camera giám sát và thiết

bị an ninh hết sức thông dụng đối với mọi người, có thể được lắp đặt để giám
sát hoạt động ở mọi nơi: các nhà máy, văn phòng, cơ quan xí nghiệp, khách sạn,
cửa hàng … mà không cần phải đi đến tận nơi quan sát hoặc có thể ở bất cứ
đâu, bất cứ lúc nào mà vẫn theo dõi được công việc hàng ngày diễn ra. Nhờ các
hạ tầng viễn thông mà các tiện ích mang lại từ Video giám sát ngày càng trở
nên phong phú và sinh động. Sau đây chúng ta sẽ xem xét một số các hệ thống
Camera điển hình như sau
1.2.1. Giám sát trường học
Sử dụng hệ thống Camera quan sát các lớp học, giảng đường và quản lý
cơ sở vật chất nhà trường. Ta có thể quản lý trực tiếp thông qua hệ thống màn
hình hiển thị hoặc có thể quan sát trường học thông qua mạng Internet. Thậm
chí, ban giám hiệu nhà trước có thể dự giờ một lớp học mà không phải có mặt
tại lớp hoặc trông coi việc kiểm tra của sinh viên mà không cần phải có mặt
trực tiếp tại lớp học.

Hình 1.1 Hệ thống Camera giám sát trong trường học[13]
.

3
1.2.2. Giám sát nhà xưởng, xí nghiệp sản xuất
1.2.3. Giám sát cho văn phòng
1.2.4. Giám sát cho gia đình
1.2.4. Giám sát cho nhà Chung cư
1.2.4. Giám sát cho khách sạn
1.3. Giới thiệu các hệ thống an ninh cảnh báo
1.3.1. Hệ thống cảnh báo trộm dùng đầu dò hồng ngoại
Ngày nay việc sử dụng hệ thống báo trộm ở các hộ dân cư đã trở nên phổ
biến. Các hệ thống này tỏ ra rất hiệu quả trong việc ngăn chặn các hành vi trộm
cắp, bảo vệ an toàn tài sản cho người sử dụng. Sử dụng cảm biến chuyển động
ta có thể xây dựng được một hệ thống cảnh báo trộm, nhằm giúp người sử dụng

lựa chọn được những thiết bị phù hợp cho từng ứng dụng riêng biệt.

Hình 1.7 Hệ thống cảnh báo trộm
Đầu dò hồng ngoại (hay còn gọi là đầu dò di động hoặc mắt thần) là
những tên gọi phổ biến do người sử dụng dùng để gọi tên các loại thiết bị cảm
biến chuyển động (Motion Detector) nói chung. Đầu dò hồng ngoại được chia
thành hai loại: đầu dò hồng ngoại tích cực (còn gọi là đầu dò tia – Beam
Detector) và đầu dò hồng ngoại thụ động (còn gọi chung là đầu dò hồng ngoại –
PIRs).
Đầu dò hồng ngoại tích cực: có nguyên lý hoạt động rất đơn giản. Đầu dò
bao gồm 2 bộ phận: bộ phát và bộ thu. Bộ phát có sẽ phát ra một chùm tia sáng
hồng ngoại đến bộ thu đặt ở xa. Bộ thu sẽ liên tục nhận chùm tia năng lượng
hồng ngoại từ bộ phát. Năng lượng này được chuyển đổi thành dòng điện nhờ
các tế bào quang điện. Dòng điện trên được dùng để điều khiển một thiết bị báo
động và ra lệnh cho nó ở trạng thái chờ. Nếu bộ thu không nhận được năng

4
lượng hồng ngoại từ bộ phát do chùm tia hồng ngoại bị che chắn, thiết bị báo
động sẽ ngay lập tức chuyển sang chế độ cảnh báo.
Đầu dò hồng ngoại tích cực được chia làm 2 loại: loại đơn tia và loại đa
tia (gồm từ 2 tia trở lên). Loại đơn tia thường được sử dụng để bảo vệ chống đột
nhập qua tường rào. Loại đa tia được sử dụng chống đột nhập cho các cửa sổ,
cửa ra vào.
Khi lựa chọn đầu dò tia để bảo vệ hàng rào hoặc các cửa sổ, cửa ra vào,
cần chọn loại có khoảng cách giữa bộ phát và bộ thu phù hợp. Cũng nên chọn
loại đầu dò được thiết kế với chùm tia có góc mở nhỏ.
Đầu dò hồng ngoại thụ động: hoạt động dựa trên nguyên lý hấp thụ năng
lượng hồng ngoại của môi trường trong vùng giám sát, phân tích và tạo ra tín
hiệu cảnh báo.
Tất cả các vật thể, cơ thể động vật và con người đều luôn phát ra môi

trường xung quanh một lượng năng lượng hồng ngoại có bước sóng trong vùng
năng lượng mà mắt thường không nhìn thấy được và lượng năng lượng hồng
ngoại này có độ lớn không giống nhau. Trong một căn phòng kín và không có
vật thể chuyển động, lượng năng lượng hồng ngoại ở mọi vị trí luôn có độ lớn
xác định. Khi có một vật thể di chuyển vào môi trường nói trên, năng lượng
hồng ngoại do chính vật thể đó phát ra sẽ làm cho năng lượng hồng ngoại trong
phòng tăng cao hoặc giảm mạnh ở một số vị trí.
Đầu dò hồng ngoại sẽ xác định mức thay đổi năng lượng hồng ngoại
tương ứng với mức năng lượng hồng ngoại do cơ thể con người phát ra khi di
chuyển và phát ra tín hiệu cảnh báo. Thông thường, các đầu dò hồng ngoại này
được thiết kế có góc nhìn và tầm phủ nhất định tương ứng với nhu cầu bảo vệ
cho từng khu vực có kiến trúc khác nhau.
Đầu dò hồng ngoại thụ động phù hợp khi sử dụng đề bảo vệ các vùng
không gian rộng và không có người hoạt động trong khu vực như phòng khách,
phòng trưng bày sản phẩm … vào thời điểm ban đêm. Một nhược điểm của loại
đầu dò này là tình trạng báo động giả khi bị ảnh hưởng bởi một nguồn hồng
ngoại lớn ví dụ như vật nuôi, các nguồn phát nhiệt lớn như lò sưởi, bếp nấu ăn

Để hạn chế tín hiệu cảnh báo giả và để đầu dò hoạt động chính xác hơn,
các nhà sản xuất đã tìm cách tích hợp kỹ thuật hồng ngoại với một kỹ thuật dò
chuyển động khác như kỹ thuật vi ba, siêu thanh hoặc ra-da vào cùng một đầu
dò. Các loại đầu dò thế hệ mới này chỉ kích hoạt tín hiệu cảnh báo khi thiết bị

5
dò hồng ngoại và thiết bị dò chuyển động của đầu dò cùng lúc dò được vật thể
chuyển động trong vùng giám sát có đặc tính của cơ thể người.
Để lựa chọn đầu dò hồng ngoại phù hợp, cần xác định rõ một số điểm sau
đây:
 Chọn đầu dò có vùng phủ phù hợp với kiến trúc của khu vực cần
bảo vệ.

 Tránh lắp đặt đầu dò ở các vị trí có ánh sáng mặt trời chiếu trực tiếp
vào đầu dò.
 Không lắp đặt đầu dò hướng trực tiếp vào nguồn phát nhiệt lớn, ví
dụ như bếp nấu ăn, hoặc hướng ra các cửa sổ, cửa ra vào bằng kính.
 Chỉ sử dụng đầu dò hồng ngoại dùng cho môi trường ngoài trời khi
cần giám sát các khu vực hành lang.
 Nếu sử dụng loại đầu dò có chức năng bỏ qua sự di chuyển của vật
nuôi trong nhà, cần xem rõ khuyến cáo của nhà sản xuất và kiểm tra xem chức
năng này của đầu dò đã đạt được các tiêu chuẩn chưa.
Nếu đòi hỏi tính an ninh cao và hạn chế tín hiệu cảnh báo giả, cần lựa
chọn đầu dò có tích hợp kỹ thuật dò chuyển động khác như siêu thanh hay vi
ba.
1.3.2. Hệ thống cảnh báo trộm theo khu vực
1.3.3. Giải pháp sử dụng tin nhắn SMS để chống trộm
Thiết bị báo động không dây cho phép chúng ta có thể đi ra ngoài mà
không cần phải lo sợ khi có trộm đột nhập vào nhà. Giải pháp thông minh này
có thể phát hiện kẻ trộm bằng các cảm biến mở cửa, cảm biến chuyển động khi
kẻ trộm đột nhập. Sử dụng cảm biến mở cửa (cửa chính hay cửa sổ) khi được
mở và chuyển động khi có người xâm nhập qua bộ cảm biến hồng ngoại.
Hệ thống này kết hợp giữa phần cứng và phần mềm. Khi có người xâm
nhập sẻ phát ra tín hiệu báo động bằng còi hú để hù dọa kẻ xâm nhập và gây
chú ý cho người xung quanh đồng thời sẽ gởi tin nhắn đến người sử dụng để
báo cho người thân hoặc công an gần nhất có thể dễ dàng phát hiện được kẻ
trộm và giúp người sử dụng có thể yên tâm.

6

Hình 1.12 Mô hình thiết bị chống trộm SMS
1.4. Ứng dụng kết hợp hệ thống an ninh và giám sát
a, khái niệm:

- Khái niệm nhận dạng: nhận dạng là một khái niệm rộng cho phép xác định
một người, một thực thể dưới nhiều khía cạnh khác nhau. Ví dụ như có thể nhận
dạng được khuôn mặt của một người, nhận dạng giọng nói của một người. Ở
đây ta quan tâm một khía cạnh nhỏ của nhận dạng đó là việc nhận dạng 1 hành
động đột nhập trái phép thông qua việc phân tích, so sánh hình ảnh và âm
thanh.
- Khái niệm giám sát: là việc quan sát, theo dõi liên tục một khu vực cần bảo
vệ, từ đó phát hiện, nhận dạng các hành động sâm phạm đột nhập trái phép. Từ
đó làm cơ sở để thực hiện các hình bảo vệ an ninh phù hợp.
- Cảnh báo an ninh: Hệ thống cảm biến tự động phát hiện sự đột nhập an ninh
trái phép và các thiết bị báo động khi có sự đột nhập.
b, Xây dựng ứng dụng
Trong nhiều bài toán thiết kế, dung lượng của các liên kết thường là
không biết trước và cần phải tính. Khi bài toán thiết kế mạng đặt ra là phải xác
định các luồng nhu cầu và dung lượng liên kết cần thiết để đảm bảo truyền được
khối lượng nhu cầu đã cho, thì ta thường gọi đó là bài toán định cỡ
(dimensioning).

7
Với qui ước đường ngắn nhất là đường có giá nhỏ nhất, qui tắc đường đi
ngắn nhất có thể được ứng dụng để tìm nghiệm tối ưu cho bài toán định cỡ.
1.5. Kết luận chương
Sau khi đã tìm hiểu các sơ đồ của hệ thống giám sát camera điển hình như
trên, chúng ta thấy rằng các hệ thống này đều không có sự cảnh báo tức thời về
các khu vực quan sát khi xảy ra sự cố và chưa tận dụng được hết hạ tầng mạng
viễn thông để truyền dẫn các hình ảnh video, điều này gây một số hạn chế trong
việc giám sát. Chương 2 chúng ta sẽ xem xét đề xuất xây dựng hệ thống Video
giám sát với các tính năng dựa trên hạ tầng mạng 3G, xử lý thuần Java với các
dữ liệu Video để tạo hiệu quả cao trong việc giám sát, xử lý hình ảnh và thay
đổi các ứng dụng tiện ích.


Chương 2- XỬ LÝ THUẦN JAVA TRONG HỆ THỐNG GIÁM SÁT
VIDEO
2.1. Giới thiệu chương
2.2. Giới thiệu Ngôn ngữ lập trình Java
2.2.1. Giới thiệu chung

Hình 2.1 Các bước phát triển một ứng dụng Java
2.2.2. Một số điểm nổi bật của Java so với các ngôn ngữ lập trình khác
Cụ thể một số đặc điểm nổi bật của ngôn ngự lập trình Java so với các
ngôn ngữ lập trình khác:
- Đơn giản (simple)

8
- Hướng đối tượng (Object - oriented)
- Độc lập với cấu trúc (architecture neutral).
- Mạnh mẽ (robust)
- An toàn (secure)
- Di động (portable.
- Đa luồng (multithreaded)
- Động(dynamic)
- Network-savvy
- Có thể thông dịch(interpreted)
2.3. Giới thiệu Bộ xử lý thuần Java aJ-200
2.3.1. Bộ xử lý thuần Java aJ-200
2.3.1

Hình 2.2 Chip aJ-200
Chip aJ-200 (Java Multimedia NetWorking Processor) được xây dựng
trên nền tảng Java SOCs, để tạo điều kiện thuận lợi cho phát triển sản phẩm

nhanh chóng aJile cung cấp cho aJ-200 các mô-đun hoàn chỉnh để nhúng Java
vào các thiết bị nhỏ. Dựa trên nền tảng về chip Java cơ bản, dòng chip aJ-200
luôn thực hiện các tác vụ, đồng bộ hóa các đối tượng, lập trình và xử lí ngắt một
cách nhanh chóng.
Chip aJ-200 rất thích hợp để sản xuất các thiết bị động thông minh, các
thiết bị không dây, điều khiển công nghiệp, cảm biến không dây từ xa và các
thiết bị truyền thông ô tô qua Internet.

9
2.3.2. Kiến trúc tổng quan
Bộ xử lý Java
Bộ xử lý Java của aJile là thế hệ thứ ba của aJile về nguồn mức thấp, bộ
xử lý thực thi trực tiếp cho platform Java, “bộ xử lý Java”. Nó được nâng lên
với MAC dấu phẩy tĩnh 32 bit, 32 KB RAM, giao diện AHB và APB.

Hình 2.3 Sơ đồ khối bộ xử lý Java [11].
JEMCore-II thực hiện trực tiếp các tập lệnh bytecode của Java Virtual
Machine (JVM), các hệ thống Java thời gian thực cơ bản và một số các lệnh
bytecode mở rộng cho multimedia và các ứng dụng nhúng trong mạng.
JEMCore-II cải thiện hiệu quả thực hiện các lệnh java kết quả dẫn đến
thời gian chuyển đổi ngữ cảnh thread-to-thread được giảm đáng kể(<1µs). Vì
tập lệnh bytecode được thực hiện như các lệnh cơ bản nên JEMCore của bộ xử
lý Java hoạt động giống như bộ xử lí RISC thực hiện việc biên dịch trong C.
Thêm vào đó, các hoạt động Java cơ bản (wait, yield, notify, monitor enter/exit)
được thực hiện như các lệnh bytecode mở rộng, loại bỏ các yêu cầu cho một
RTOS truyền thống. Dựa trên sự phong phú của nền tảng Java multimedia,
JEMCore-II đã được cải tiến với một microcode chuyên dụng-dựa trên dữ liệu
DSP để làm tăng thêm các thuật toán khác nhau cho các ứng dụng audio, điều
khiển nhúng, điều khiển động cơ, ghi lại giọng nói và chữ viết tay.



10

Hình 2.4 Sơ đồ khối JEMCore-II [11].
Nguồn clock
Hệ thống bus
Nguồn cung cấp cho aJ-200
Quản lý nhiều JVM
Tính năng nhiều máy ảo của aJ-200 cho phép chạy hai ứng dụng Java độc
lập trong một khoảng thời gian. Trong khi thực hiện, mỗi môi trường JVM có
thể đảm bảo không gian bộ nhớ thực hiện không bị sự can thiệp của các ứng
dụng bị lỗi hoặc độc hại. MJM cung cấp thời gian chạy và các ngắt để đảm bảo
không có JVM nào có thể vào JVM đang chạy. Timer riêng biệt được cung cấp
cho mỗi JVM.


11

Hình 2.6 Quản lý hai JVM [11].
2.2.3 Lựa chọn xây dựng ứng dụng bằng ngôn ngữ Java trên vi xử lý aj-200
Từ phân tích lợi thế của ngôn ngữ bậc cao Java và đặc điểm của bộ vi xử
lý aj-200, chúng ta xây dựng ứng dụng sử dụng ngôn ngữ Java chạy trên vi xử
lý aj-200. Việc phát triển sản phẩm bằng lựa chọn này cho phép chúng ta có
một số lợi thế sau:
- Sử dụng ngôn ngữ bậc cao Java để phát triển ứng dụng trên nền ứng
dụng nhúng (đa phần hiện nay thường dùng ngôn ngữ bậc thấp trong
các ứng dụng có giao tiếp các thiết bị ngoại vị: camera, cảm biến âm
thanh, cảm biến hồng ngoại, thiết bị cảnh báo).
- Việc sử dụng chíp aj-200 cho phép thiết kế, xây dựng sản phẩm nhỏ
gọn đáp ứng yêu cầu sử dụng.


12
Thuận tiện, dễ dàng hơn cho người lập trình. Vì sử dụng ngôn ngữ bậc
cao phổ biến và không đòi hỏi hiểu biết sâu về phần cứng nên người phát triển
tiếp cận đơn gian hơn, dễ dàng hơn từ đó dẫn tới thời gian phát triển, hoàn thiện
sản phẩm nhanh và hiệu quả hơn.
2.4. Xây dựng mô hình hệ thống giám sát video dựa trên bộ xử lý
thuần java
2.4.1. Giới thiệu
Dựa trên các mô hình giám sát Video đã trình bày ở chương 1, trong phần
cuối chương này, dựa trên các tính năng của Bộ xử lý thuần Java chúng ta sẽ
xây dựng các chức năng của hệ thống xử lý thuần Java cho Mô hình hệ thống
giám sát video thông minh với hạt nhân là một thiết bị giám sát Video thông
minh đảm bảo các yếu tố sau:
- Có tính di động cao, ở bất kỳ đâu cũng có thể thực hiện được việc giám
sát thông qua mạng 3G tiếp nhận các cảnh báo tức thời.
- Sử dụng các thuật toán DSP để phát hiện tiếng động, phát hiện xâm
nhập, ghi lại hình ảnh, và gửi cảnh báo tức thời đến smart phone thông qua
mạng di động thế hệ sau. Thiết bị cũng tích hợp tính năng chụp hình ảnh hoặc
quay video, giám sát trực tiếp và có thể kết nối mạng LAN và WLAN và 3G.
- Phạm vi quan sát của thiết bị giám sát Video thông minh căn cứ vào
hiệu ứng bắt tiếng động và khả năng của Camera có thể giám sát được với một
diện tích gần 200 m2.
- Với các cấu hình, thiết lập đơn giản, thiết bị sẽ tương thích với vị trí mới
của smart phone một cách nhanh chóng và dễ dàng. Hệ thống giám sát video có
thể được lắp đặt trong căn hộ, văn phòng, cửa hàng, các ngôi nhà di động,
container, tàu / thuyền…
- Bộ xử lý trung tâm cho thiết bị giám sát Video thông minh sẽ tận dụng
các thể mạnh của Bộ xử lý thuần Java aJ 200 để làm nền tảng xử lý, đặc biệt
trong xử lý dữ liệu Video và truyền dẫn dữ liệu này đến Server Google App.

Đối với hệ thống giám sát video yêu cầu người dùng cần một smart phone
(sử dụng hệ điều hành Android hoặc iPhone) có khả năng kết nối wifi hoặc dịch
vụ dữ liệu nền tảng di động thế hệ sau 3G/4G.
2.4.2. Sơ đồ khối hệ thống
Hệ thống giám sát thông minh với nền tảng là thiết bị giám sát video
thông minh sử dụng thiết bị được gọi là aJ-PTIT sử dụng chip xử lý thuần Java
được mô tả theo sơ đồ khối sau:

13
Google App
aJ-PTIT
Media
Gateway
Smart Phone

Hình 2.8 Sơ đồ khối hệ thống
Các kết nối của thiết bị giám sát video cần các yếu tố sau:
 Một bộ định tuyến không dây có cổng kết nối theo chuẩn cáp RJ-45.
 Trên bộ định tuyến cần được thiết lập giao thức UPnP. Ngoài ra, cổng
chuyển tiếp cho các thiết bị cần phải được kích hoạt trong phạm vi 8800-8899.
(Địa chỉ IP của thiết bị được cấu hình tĩnh trong khi cài đặt.)
Thiết bị giám sát Video thông minh aJ-PTIT có các khối chức năng như
sau:
- Bộ xử lý trung tâm với hạt nhân là Bộ xử lý Java: Làm nhiệm vụ xử lý
các sự kiện và bắt (capture) các hình ảnh, Video về sự kiện cảnh báo và thực
hiện streaming Video, đồng thời kết nối tới Media Gateway và Google App
- Khối xử lý tín hiệu DSP: Xử lý thuật toán về tiếng động và hình ảnh để
bắt sự kiện khi có cảnh báo
- Module kết nối Ethernet: kết nối giữa thiết bị Orion và mạng
- Khối nguồn cung cấp: Cung cấp nguồn cho thiết bị hoạt động

- Khối giao tiếp USB:
- Khối cổng COM: Đọc các dữ kiện thông qua cổng COM
Tiếp theo chúng ta sẽ đi tìm hiểu các giao thức kết nối của hệ thống
2.4.3. Giao thức UPnP
2.4.4. Giao thức XmPP
Thiết lập từ smart phone đến thiết bị.
Đầu tiên, aJ-PTIT phải được kết nối với access point bằng cáp RJ-45. Do

14
được kích hoạt sẵn dịch vụ UPnP nên smart phone và thiết bị sẽ gửi các bản tin
và thiết lập cho nhau. aJ-PTIT được xây dựng một thư viện weupnp trên nền
tảng java để thực hiện công việc như tìm gateway cho thiết bị, xác định và thiết
lập sẵn Port, IP,

aJ-PTITSmart Phone
Gateway Dicover
Set Gateway Device
Set port, IP,
Port Mapping Entry
SYN
ACK

Hình 2.9 Quá trình bắt tay giữa smart phone và aJ-PTIT

Ngay sau khi được kết nối mạng, thiết bị sẽ gửi các gói tin broadcast tìm
gateway:
Tiếp theo, cả smart phone và aJ-PTIT thiết lập các port cần thiết:
Sau khi thiết lập được gateway, Port, địa chỉ IP, thiết bị đã sẵn sàng hoạt
động trong hệ thống giám sát an ninh.
Hoạt động của hệ thống khi có cảnh báo:



15
1
2
3
4
Google App
aJ-PTIT
Media
Gateway
Smart Phone

Hình 2.10 – Hoạt động của thiết bị khi có cảnh báo
1. Thiết bị giám sát aJ-PTIT được kết nối tới Google App (XMPP)
2. Smart Phone được kết nối tới Google App (XMPP) và đăng ký với
aJ-PTIT
3. Khi thiết bị aJ-PTIT phát hiện có sự xâm nhập, nó sẽ gửi các gói tin
tới Media Gateway và các thông báo sẽ được đẩy đến smart phone.
4. Media Gateway sẽ gửi thông báo tới smart phone. Nếu thiết lập
thông báo được bật, một cảnh báo bao gồm hình ảnh hoặc video sẽ được gửi tới
người sử dụng về các mối đe dọa an ninh.
Trong thời gian chờ, aJ-PTIT gửi các gói tin Ping và phản hồi Echo, khi
kết nối được thiết lập, các hình ảnh sẽ được gửi qua XmPP server, có thể mô tả
như sau:

16
AlertPacketListener
(com::ajile::orion::android::service::XMPPConnectionService)
~this$0 : XMPPConnectionService

-AlertPacketListener(this : XMPPConnectionService)
+processPacket(packet : Packet) : void
~AlertPacketListener(parameter : XMPPConnectionService, parameter2 : AlertPacketListener)
XMPPConnectionService
(com::ajile::orion::android::service)
-logTag : String = aJOrion
+NOT_CONNECTED : int = 0
+CONNECTED : int = 1
+CONNECTIN G : int = 2
+AUTHENTICATING : int = 3
+AUTHENTICATED : int = 4
+AUTHENTICATION_FAILED : int = 5
-connectionState : int
~host : String
~port : String
+service : String
+username : String
+credentialsState : String
-password : String
+localResource : String
+remoteResource : String
+longAccountName : String
-masterSecret : String = hkjahdsfoiuower9823rHKI
+instanceCount : int
+name : String
-xmppConnection : XMPPConnection
-useResolvedAddress : String
-resolvedAddress : String
-isChatConnected : boolean
-isOrionEchoing : boolean

-credentialsFailed : boolean
-keepAlivePingThread : KeepAlivePingThread
-notificationManager : NotificationManager
-serviceNotification : Notification
-alertNotification : Notification
-fileTransferManager : FileTransferManager
-alertFileTransferListenier : MonitorFileTransferListener
~alertPacketListener : AlertPacketListener
-connectingLock : Object
-connectingBoolean : boolean
-instance : XMPPConnectionService
-privateProperties : SharedPreferences
-startService : boolean
~cm : ConnectivityManager
-setForegroundSignature : Class[]
-startForegroundSignature : Class[]
-stopForegroundSignature : Class[]
-setForeground : Method
-startForeground : Method
-stopForeground : Method
-setForegroundArgs : Object[]
-startForegroundArgs : Object[]
-stopForegroundArgs : Object[]
-startupTrigger : String
-lineOfConnection : String
-loserSoundUri : Uri
-perfectSoundUri : Uri
+externalImageStore : File
+XMPPConnetionService()
+getInstance() : XMPPConnectionService

+onBind(intent : Intent) : Ibinder
+onStart(intent : Intent, startId : int) : void
+onUnbind(intent : Intent) : boolean
+onDestroy() : void
+onCreate() : void
-startServiceStuff() : void
-refreshCredentials() : void
+startCreateThread(uiHandler : Handler) : void
-waitForNetwork() : void
-disconnect() : void
+shutdown() : void
+doDisconnect() : void
+reconnect() : void
-doCancelAlertNotification() : void
-doAlertNotification(alert : Alert) : void
-doServiceNotification() : void
-connect() : void
+refreshMonitorListener() : void
+authenticate() : void
+sendPacket(packet : Packet) : void
-setXMPPConnection(xmppConnection : XMPPConnection) : void
+getXMPPConnection() : XMPPConnection
-setFileTransferManager(fileTransferManager : FileTransferManager) : void
+getFileTransferManager() : FileTransferManager
~invokeMethod(method : Method, args : Object[]) : void
~startForegroundCompat( id : int, notification : Notification) : void
~stopForegroundCompat() : void
+getAlertFileTransferListener() : AlertFileTransferListener
+getMonitorFileTransferListener() : MonitorFileTransferListener
+setChatConnected(isChatConnected : boolean) : void

+isChatConnected() : boolean
+isOrionEchoing() : boolean
+getConnectionState() : int
+isConnectingBoolean() : boolean
-saveCredentials(status : String) : void
~access$0(parameter : XMPPConnectionService, parameter2 : Alert) : void
~access$1(parameter : XMPPConnectionService) : Object
~access$2() : boolean
~access$3(parameter : boolean) : void
~access$4(parameter : XMPPConnectionService) : KeepAlivePingThread
~access$5(parameter : XMPPConnectionService) : void
~access$6(parameter : int) : void
~access$7(parameter : XMPPConnectionService) : void
~access$8(parameter : XMPPConnectionService) : void
XMPPConnectionServiceBinder
(com::ajile::orion::android::service)
-serviceInstance : XMPPConnectionService
+XMPPConnectionServiceBinder(serviceInstance : XMPPConnectionService)
+getServiceInstance() : XMPPConnectionService
2
(com::ajile::orion::android::service::XMPPConnectionService)
~this$0 : XMPPConnectionService
~2(this : XMPPConnectionService)
+run() : void
1
(com::ajile::orion::android::service::XMPPConnectionService)
~this$0 : XMPPConnectionService
~1(this : XMPPConnectionService)
+run() : void
XMPPConnectionServiceReceiver

(com::ajile::orion::android::service)
-logTag : String = aJOrion
-xmppConnectionService : XMPPConnectionService
+XMPPConnectionServiceReceiver()
+onReceive(context : Context, intent : Intent) : void
-checkForService(context : Context, trigger : String) : void
+onServiceConnected(name : ComponentName, service : Binder) : void
KeepAlivePingThread
(com::ajile::orion::android::service::XMPPConnectionService)
~ping : Ping
~echo : Echo
~pingCollector : PacketCollector
~echoCollector : PacketCollector
~pingAddress : String
~running : boolean
~this$0 :XMPPConnectionService
-KeepAlivePingThread(this : XMPPConnectionService)
+end() : void
+run() : void
~KeepAlivePingThread(parameter : XMPPConnectionService, parameter2 : KeepAlivePingThread)
1
1
This$0
keepAlive
-serviceInstance 1
1
xmppConnectionService
1
1
alertPacketListener

This$0
1
This$0

Hình 2.11 Sơ đồ khối các class
- Phía thiết bị aJ-PTIT (client):
Người sử dụng đăng nhập trên phần mềm aJ-PTIT chính là tài khoản
dùng trong mạng Jabber, và đó là Jabber duy nhất (thường được gọi là JID). JID
có cấu trúc giống như địa chỉ email với phần đầu là tên người dùng và phần sau
là địa chỉ DNS của server nơi người dùng đăng ký, server được sử dụng ở đây
là của google, với phần DNS : @gmail.com
Nếu người dùng muốn đăng nhập trên thiết bị khác, aJ-PTIT sẽ chỉ định
thêm một chuỗi được gọi là resource, chuỗi đó sẽ chỉ rõ phần mềm dùng trên

17
smartphone hay PC giả lập… Mỗi resource có đọ ưu tiên được thể hiện bằng số,
ví dụ JID đầy đủ của một user dùng điện thoại di động sẽ là
/mobile một gói tin gửi đến sẽ
được gửi đến resoure nào có độ ưu tiên cao nhất, còn gói tin gửi đến
/mobile sẽ chỉ gửi tới phần mềm mobile.
- Sơ đồ gửi tin:
Giả sử trên phần mềm aJ-PTIT đăng nhập vời tài khoản ,
chúng sẽ bắt đầu tạo các gói tin ping và thiết lập listener và các chuỗi thông tin
để thiết lập quá trình kết nối và duy trì kết nối với server
- Phía Google App (XmPP Server):
Một chức năng rất hữu dụng của hệ thống XMPP là chuyển tiếp
(transports) chúng sử dụng các gateway cho phép user truy cập các mạng khác
protocol, như các mạng chat giao thức khác hay SMS, e-mail. XMPP server
cung cấp việc truy cập thông qua dịch vụ chuyển tiếp đặc biệt được đặt trên 1
máy cho phép truy cập từ xa. User đăng nhập trên phần mềm aJ-PTIT có thể

dùng JID đã đăng ký những thông tin để truy cập vào server với hệ thông
gateways, sau đó họ có thể đăng nhập bằng JID và “nói chuyện với server”.
Điều đó có nghĩa là user của hệ thống XMPP có thể liên lạc với bất kỳ một
mạng nào khác nếu có gateways hỗ trợ mạng đó tồn tại.
- Khi có cảnh báo, client sẽ các gói tin ping và đợi gói tin echo từ server,
tiếp theo chúng sẽ gửi lên Server, do server sử dụng giao thức XmPP nên nó có
thể đẩy các luồng video (video thời gian thực) hoặc hình ảnh tới gateway, và từ
đó được gửi tới smartphone.
2.5. Kết luận chương
Trong chương này chúng ta đã xây dựng được sơ đồ tổng quát hệ
thống giám sát video thông minh và các giao thức kết nối của hệ thống đến
server. Trong chương sau chúng ta sẽ tìm hiểu chi tiết về thiết bị giám sát video
thông minh cả về thiết kế phần cứng và cấu hình phần mềm.

Chương 3- XÂY DỰNG HỆ THỐNG GIÁM SÁT VIDEO THÔNG MINH

3.1. Giới thiệu chương
3.2. Thiết kế phần cứng thiết bị aJ-PTIT
Thiết bị aJ-PTIT có thể mô tả các module bằng sơ đồ khối như sau:

18
KHỐI XỬ LÝ
TRUNG TÂM
ENTHERNET
COM PORT
NGUỒN
GIAO TIẾP USB
CAMERA

Hình 3.1 Sơ đồ khối các module

Trong đó: khối nguồn cung cấp làm nhiệm vụ cung cấp nguồn cho thiết bị
hoạt động với các loại nguồn phổ dụng như mô tả
Khối xử lý trung tâm: Bao gồm bộ xử lý Java thuần Java nhằm xử lý các
tác vụ về mã hóa giải mã video cũng như các kết nối truyền dẫn đến server.
Khối giao tiếp USB:
Khối kết nối Ethernet
3.2.1. Module nguồn cung cấp
a. Yêu cầu thiết kế khối.
b. Mạch nguyên lý.


Hình 3.2 Mạch xử lý nguồn vào


19
Nguồn ngoài được đưa tới mạch thông qua jack CON2 và được đưa qua
mạch xử lý chống ngược chiều thông qua các diode và lọc nhiễu cơ bản bằng tụ
lọc nguồn đầu vào.

Hình 3.3 Mạch chuyển đổi mức điện áp

Sau khi được xử lý cơ bản, nguồn ngoài được đưa qua mạch chuyển đổi
điện áp sử dụng IC LT1963 để tạo ra điện áp 3.3V cho các linh kiện khác trong
mạch.
Năng lượng cũng có thể lấy từ Battery 3.7V 1800 mAh. Battery được
đưa qua IC chuyển đổi điện áp LTC3586 để chuyển đổi thành điện áp thích
hợp. LTC3586 còn tạo ra các giá trị điện áp khác nhau như 3,3V cho các IC
thông thường và 5V cho LCD…



Hình 3.4 IC biến đổi điện áp LTC3586.

20
3.2.2. Module Enthernet – USB.
a. Giới thiệu chức năng
b. Mạch nguyên lý.


Hình 3.5 Mạch nguyên lý khối Ethernet và USB

3.2.3. Module Camera
3.2.4 Module Modem – COM
3.2.5 Module bộ xử lý trung tâm
3.3. Thiết kế phần mềm thiết bị aJ-PTIT
3.3.1 Phần mềm thực thi smart phone (client)
+ Phần mềm aJ-PTIT thiết kế trên hệ điều hành android sẽ xử lý công
việc này, với ý tưởng sử dùng các luồng xử lý các công việc, thỏa thuận port,
giao thức sử dụng để truyền, nhận bản tin và hình ảnh
3.3.2. Phần mềm Server Thiết bị aJ-PTIT(XmPP Server)
a, Lưu đồ thuật toán phát hiện
Từ thông tin các thiết bị ngoại vi đi qua các module xử lý, sau đó vi xử lý sẽ
tổng hợp để xác định sự kiện và đưa ra quyết định cảnh báo theo lưu đồ sau:

21
Camera
Cảm biến
âm thanh
Cảm biến
hồng ngoại
Phát hiện sự

di chuyển
Phát hiện
hồng ngoại
Phát hiện
âm thanh
Phát hiện
sự kiện
Xử lý
cảnh báo

Hình 3.11-a. Luồng Lưu đồ phát hiện sự kiện đột nhập
- Trong đó lưu đồ thuật toán phát hiện sự chuyển động:
Begin
Thu khung hình
hiện tại, và trước
Chuyển thành
ảnh xám
So sánh từng pixel của
2 ảnh xám
Giá trị > ngưỡng
cho trước
Pixel ảnh đầu ra
mầu trắng
Pixel ảnh đầu ra
mầu đen
Số điểm trắng >
mức báo động
Có sự di
chuyển
Không có sự

di chuyển
End
Sai
Đúng
Đúng
Sai


22
Hình 3.11-b. lưu đồ phát hiện sự di chuyển
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 đó là (img2), một bản sao mầu sám của nó là
(gray_img1) và (gray_img2). Trước hết chúng ta hãy tìm những khu vực
nơi nơi 2 khung hình khác nhau bằng cách trừ 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 đó chung ta sẽ nhận
được một hình ảnh ở đầu ra (resul) 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 đ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 thì chúng ta có thể báo hiệu về một sự kiện chuyển động.
- Bộ phát hiện âm thanh: xác định tín hiệu âm thanh thu được, nếu giá trị
lớn hơn một ngưỡng nào đó thì xác định có sự kiện âm thanh.
- Bộ phát hiện hồng ngoại: Phát hiện vật thể sâm phạm vùng hồng ngoại
quan sát.
b, hoạt động của thiết bị
Đầu tiên, Server sẽ capture hình ảnh khi có sự kiện cảnh báo:
Ý tưởng thực hiện: Sử dụng hai luồng xử lý chạy song song, luồng thứ
nhất xử lý sự kiện NoiseEvent, luồng thứ hai xử lý quá trình capture hình ảnh.
Sensor (Camera)
Timer

Memory (Buffer)
Noise Envent
Process (Noise
Event)
Luồng 1 Luồng 2
10s
Tạo khung mới phát lại
video vừa thu được


23
Hình 3.10 Luồng xử lý sự kiện và xử lý hình ảnh trong hệ thống giám sát
video
3.4. Các Giao diện hệ thống
Phần mềm aJ-PTIT được phát triển trong luận văn, có thể download phần
mềm quản lý thiết bị này trên itunes (với những thiết bị chạy hệ điều hành IOS),
trên google play (với thiết bị chạy hệ điều hành Android), phần mềm có giao
diện rất dễ sử dụng.

Hình 3.11 Giao diện chính
Đây là màn hình chính sau khi đăng nhập thành công. Úng dụng sẽ hiển
thị trạng thái kết nối của hệ thống như sau:
- Biểu tượng và thông báo trạng thái kết nối đến server (Kết nối hoặc
không kết nối)
- Biểu tượng và thông báo trạng thái kết nối đến thiết bị (Kết nối
hoặc không kết nối)
Giao diện chính sẽ được cập nhật liên tục trong khi kết nối với Google
App. Ứng dụng sẽ gửi các gói tin Ping và gói tin Echo trong 60 giây để cập
nhật trạng thái của cả hai kết nối "Connected to server" và "Connected to
device" tương ứng.

- Nút “Stop service” được sử dụng để dừng ứng dụng
- Nút “Refresh” được sử dụng để kích hoạt lại quá trình kết nối tới
server và thiết bị.

×