Quy trình xây dựng ứng dụng trên lớp AVICap:

Một phần của tài liệu Phát hiện đối tượng đột nhập dựa trên kỹ thuật trừ ảnh: luận văn thạc sĩ (Trang 38)

Khi xây dựng một ứng dụng video dùng lớp AVICap, các ứng dụng thường được thực hiện theo các trình tự sau:

 Tạo một capture window

 Kết nối vào một capture driver

 Liệt kê các capture driver đã cài đặt trong hệ thống

 Lấy thông tin về khả năng của một capture driver

 Lấy thông tin trạng thái của một capture window

 Trình bày dialogbox để thiết lập các thông số video

 Lấy cũng như thiết lập các thông số của video format

 Cho phép preview video

 Cho phép overlay video

 Đặt tên cho capture file

 Cấp phát trước vùng nhớ trên đĩa cho capture file

 Định dạng audio capture

 Thay đổi các thông số video capture

 Thu dữ liệu

 Thêm các chuỗi thông tin vào capture file

 Thêm các hàm callback vào ứng dụng

3.2.3 Một số hàm AVICap Windows thường dùng

 Hàm tạo capture window

hWndC = capCreateCaptureWindow(

(LPSTR) “My Capture Window”, // tên cửa sổ WS_CHILD | WS_VISIBLE, // kiểu cửa sổ 0, 0, 160, 120, // vị trí cửa sổ

(HWND) hwndParent, (int) nID );

 Kết nối vào capture driver

fOK = capDriverConnect(hWndC,0);

 Hủy bỏ kết nối với capture driver capDriverDisconnect(hWndC);

 Kích hoạt chế độ Preview video:

Đầu tiên chúng ta cần phải đặt tốc độ bắt giữ hình ảnh, sau đó kích hoạt chế độ Preview video. Ví dụ dưới đây thiết lập tốc độ hiển thị

frame ở chế độ preview là 66 miliseconds mỗi frame(tức là khoảng 15 fps) và thiết lập chế độ preview cho capture window

CapPreviewRate(hWndC,66); CapPreview(hWndC, TRUE); CapPreview(hWndC, FALSE);

3.3 Các hàm và lớp chính trong chương trình

Chương trình phát hiện đối tượng đột nhập “Intrusion Detection” được xây dựng trên bộ Visual Studio 2010 với ngôn ngữ lập trình C#. Cài đặt bộ hỗ trợ DriectX 10 trên nền tảng Windows 7 x86.

Sau đây là một số hàm và lớp chính trong chương trình.

Lớp ImageProcessing: Chức năng chính của lớp này là xử lý các hình ảnh thu được từ camera.

3.3.1 Các biến và kiểu dữ liệu trong lớp

Bitmap flag,flag2,flag3;

int width,width2,width3;

BitmapData bitmapData=null,bitmapData2=null,bitmapData3=null; Byte*pBase=null,pBase2=null,pBase3=null;

public struct Pixel {

public byte blue;

public byte green; public byte red;

}

3.3.2 Một số phương thức trong lớp

Phương thức PixelSize: Cho kích cỡ của điểm ảnh. Cấu trúc của phương thức như sau:

public Point PixelZize {

get

{

Rectanglef bounds = flag.GetBounds(ref unit);

returnnew Point((int)bounds.width, (int) bounds.height); }

}

Phương thức PixelAt: Cho vị trí của điểm ảnh. Cú pháp của phương thức như sau:

public Pixel*PixelAt(int x, int y) {

return(Pixel*)(pBase+y*width+x*sizeof(Pixel)); }

3.3.3 Một số hàm trong lớp

Hàm LockBitmap: Được sử dụng trong việc trừ hai ảnh. Cú pháp của hàm như sau:

public void Lockbitmap() {

GraphicsUnit unit = GraphicsUnit.Pixel;

RectangleF boundsF = flag.GetBounds(ref unit); Rectangle bounds = new Rectangle((int)boundsF.X, (int) boundsF.Y,

(int) boundsF.Width, (int) boundsF.Heigt);

width = (int) boundsF.Width*sizeof(Pixel);

if (width%4!=0) { width=4*(width/4 + 1); } bimapData=flag.LockBits(bounds,ImageLockNode.ReadWrite,PixelF omat.Format24bppRgb); pBase=(Byte*)bitmapData.Scan0.ToPointer(); }

Hàm UnlockBitmap: Được sử dụng trong việc trừ hai ảnh. Cú pháp như sau:

public voidUnlockBitmap() {

flag.UnlockBits(bitmapData); bitmapData= null;

}

Hàm Save: Lưu lại ảnh. Cú pháp như sau:

public void Save(string filename) {

flag3.Save(filename, ImageFormat.Jpeg); }

Hàm CompareUnsafeFaster: Thực hiện việc trừ hai ảnh.

Cú pháp của hàm như sau:

publicvoid CompareUnsafeFaster(out Int32 percent)

{

Point size = PixelSize; percent=0;

LockBitmap(); LockBitmap2(); LockBitmap3();

for (int y = 0; y < size.Y; y++) {

Pixel* pPixel = PixelAt(0, y); Pixel* pPixel2 = PixelAt2(0, y); Pixel* pPixel3 = PixelAt3(0, y);

for (int x = 0; x < size.X; x++) { if(!(pPixel->green==pPixel2->green)) { pPixel3->red = pPixel2->red; pPixel3->green = pPixel2->green; pPixel3->blue = pPixel2->blue; percent++; } pPixel++; pPixel2++; pPixel3++; } } UnlockBitmap3(); UnlockBitmap2(); UnlockBitmap(); }

3.4 Chức năng và cách sử dụng chương trình 3.4.1 Chức năng của chương trình

Chức năng chính của chương trình là kết nối với các webcam, hiển thị hình ảnh thu từ webcam lên trên form. Khi phát hiện có đối tượng đột nhập chương trình sẽ tự động đưa ra cảnh báo và lưu lại ảnh có chứa đối tượng đột nhập. Sau đây sơ đồ hoạt động của chương trình:

Bắt đầu

Kết nối với webcam

Thiết lập thông số

Bắt đầu quan sát

Có đối tượng đột

nhập?

yes

Hình 3.2: Sơ đồ hoạt động của chương trình

Tự động đưa ra cảnh báo Lưu lại hình ảnh của đối

tượng

Kết Thúc Tiếp tục theo dõi? yes

Nguồn: Nghiên cứu của tác giả

No No

3.4.2 Giao diện và cách sử dụng

 Giao diện chương trình khi hoạt động:

Nguồn: Chụp từ phần mềm thực nghiệm

Hình 3.3: Giao diện chính khi hoạt động

Trong hộp thoại properties cho phép chúng ta thiết lập các thông số cho ảnh đầu ra. Chúng ta có thể thay đổi loại ảnh, kích cỡ ảnh đầu ra, chất lượng của ảnh (tùy theo từng camera mà các thông số này có thể khác nhau).

Nguồn: Chụp từ phần mềm thực nghiệm

Nhấn nút Apply để áp dụng và nhấn nút OK để đóng hộp thoại này. Khi đó chương trình bắt đầu hiển thị hình ảnh thu được lên form:

Nguồn: Chụp từ phần mềm thực nghiệm

Hình 3.5: Chương trình bắt đầu quan sát qua webcam

Khi chúng ta nhấn vào nút bắt đầu chương trình sẽ bắt đầu quan sát, và khi phát hiện có đối tượng đột chương trình sẽ báo động bằng âm thanh và lưu lại hình ảnh có chứa đối tượng đột nhập vào thư mục wanted:

Nguồn: chụp từ phần mềm thực nghiệm

Nguồn: xuất ra từ phần mềm thực nghiệm

Hình 3.7: Bắt và lưu hình đối tượng đột nhập 3.5 Đánh giá kết quả thử nghiệm

3.5. 1 Kịch bản thử nghiệm

Kịch bản thử nghiệm của chương trình nhằm giải quyết bài toán với yêu cầu đặt ra đó là phát hiện các đối tượng chuyển động tại nới đặt camera quan sát như hành lang, cầu thang, nhà kho, cửa ra vào các phòng... nơi mà khung hình hầu như không thay đổi theo thời gian và điều kiện khách quan như thời tiết không ảnh hưởng tới khung hình của camera quan sát.

3.5.2 Đánh giá và so sánh

Dựa vào yêu cầu bài toán luận văn đã trình bày đầy đủ rõ ràng kỹ thuật trừ ảnh dựa vào điểm ảnh và xây dựng thành công chương trình Intrusion Detection. Qua đó cài đặt và thử nghiệm chương trình cho kết quả tương đối tốt. Với điều kiện

khung nhìn khi thực hiện theo kịch bản thử nghiệm thì phần mềm đạt hiệu quả đến 95% theo yêu cầu, 5% còn lại là do đối tượng xuất khiện trong khung hình quá nhanh hoặc quá xa so với tiêu cự cho phép của camera quan sát nên camera không thể bắt hình và lưu lại đối tượng được. Tuy vẫn tồn tại một số nhược điểm cần đánh giá và khắc phục khi triển khai trên thực tế với nhiều kịch bản xảy ra khác nhau như điều khiện khung hình và các điều kiện khách quan khác, nhưng nhìn chung chương trình đạt kết qua như mong đợi và giải quyết được yêu cài bài toán đặt ra ở trên.

Kết luận chương

Nội dung trong chương trình bày một cách chi tiết bài toán phát hiện đột nhập, từ đó xây dựng giải thuật để xây dựng phần mềm Intrusion Detection. Tìm hiểu kỹ thuật bắt giữ hình ảnh qua camera sử dụng lớp AVIcap trên nền tảng Windows 7 X86 từ đó xây dựng, cài đặt và thử nghiệm thành công chương trình Intrusion Detection.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Quá trình tìm hiểu và nghiên cứu luận văn đã đạt được kết quả sau đây:

1. Kết quả

- Trình bày tổng quan về video, bài toán phát hiện chuyện động.

- Trình bày các kỹ thuật trừ ảnh ứng dụng vào bài toán phát hiện chuyển động.

- Tìm hiểu về ngôn ngữ lập trình Csharp và kỹ thuật bắt giữ hình ảnh thông qua camera trên môi trường Windows.

- Xây dựng phần mềm Phát hiện đột nhập dựa trên kỹ thuật trừ ảnh.

- Cài đặt thành công ứng dụng phát hiện đột nhập thông qua webcamera.

- Giảm dung lượng lưu trữ trên không gian đĩa, bằng cách chỉ lưu lại những hình ảnh có chứa đối tượng đột nhập thay vì phải lưu lại cả đoạn video

2. Hạn chế

- Chương trình này giới hạn chỉ thực hiện được với Video định dạng *.AVI và hỗ trợ thực thi trên nền tảng Windows x86 và được cài đặt trên một máy tính cục bộ chưa chạy được trong hệ thống mạng.

- Chương trình chỉ sử dụng một trong số các kỹ thuật trừ ảnh với ngưỡng do đó khi thực thi với video có chất lượng thu hình kém dẫn tới kết quả không như mong muốn.

- Chương trình chỉ đưa ra cảnh báo vào lưu lại đối tượng đột nhập nhưng chưa nhận dạng được đối tượng.

3. Hướng phát triển

Với các kết quả đã đạt được cùng những hạn chế và thiếu sót trên đã mở ra một số hướng phát triển cho luận văn “Phát hiện đột nhập dựa trên kỹ thuật trừ ảnh” như sau:

- Hiệu chỉnh giao diện hoàn chỉnh hơn, thêm các chức năng mở rộng, có giao diện thân thiện và đẹp mắt hơn.

- Chương trình thực hiện được nhiều định dạng video khác nhau, chạy được trên nhiều nền tảng windows khác nhau cũng như cài đặt và sử dụng được trên hệ thống giám sát qua mạng.

- Phát triển chương trình ứng dụng đưa thêm nhiều một số kỹ thuật xử lý ảnh nhằm nâng cao hiệu suất phát hiện đột nhập cũng như nhận dạng được đối tượng đột nhập.

TÀI LIỆU THAM KHẢO

TÀI LIỆU TIẾNG VIỆT

[1]Đỗ Năng Toàn, Phạm Việt Bình (2008), “Giáo trình xử lý ảnh”, Đại Học Thái Nguyên, Nxb KH&KT, 2008.

[2]Nhóm tác giả: Trần Thanh Việt, Trần Công Chiến, Huỳnh Cao Tuấn, Nguyễn Hữu Nam, Đỗ Năng Toàn, Trần Hành, Nghiên cứu khoa học:“Một Kỹ Thuật Phát Hiện, Bám Sát Đối Tượng Và Ứng Dụng”,2010.

TÀI LIỆU TIẾNG ANH

[3]Andrew Kirillov, Software Developer (4/2007), “Motion Detection Algorithms”

[4]Badatosh Chanda, Dwijesh Dutta Majumder, “Digital Image Processing and Analysis”, Prentice Hall of India, 2001, pp. 10-17

[5]Hampapur, A. , Jain, R. , Weymouth, T. , “Digital Video Segmentation”, Proc. ACM Multimedia 94, San Francisco CA, 1994, pp. 357 – 364.

[6]Jyrpi Korki - Anttila (2002), “Automatic color enhancement and sence change detection of digital video”, Dept of Automation and Systems, Lab of Media Technology, Hensiki University of Technology, pp. 7-45.

[7]Shahraray B(1995), “Scene Change Detection and Content-Based Sampling of Video Sequences”, Digital Video Compression: Algorithms and Technologies, A. Rodriguez, R. Safranek, E. Delp, Editors, Proc. SPIE 2419, pp. 2–13.

[8]Xiong Wei, John C. Lee, Dixon M. Ip(1998), Net comparison: “a fast and effective method for classifying image sequences”, SPIE Conf. Storage and Retrieval for Image and Video Databases III, Proceedings, San Jose, CA, pp. 318 – 328.

[9]XiaowenLiu, CharlesB.Owen, FilliaS.Makedon(1995), “Automatic Video Pause Detection Filter” Dartmouth College Computer Science Technical Report PCS, pp 97-307.

Một phần của tài liệu Phát hiện đối tượng đột nhập dựa trên kỹ thuật trừ ảnh: luận văn thạc sĩ (Trang 38)

Tải bản đầy đủ (PDF)

(50 trang)