Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
1,93 MB
Nội dung
LỜI CAM ĐOAN Tôi xin cam đoan nghiên cứu riêng Các số liệu kết nêu luận văn trung thực chưa công bố công trình khác LỜI CẢM ƠN Trước tiên xin kính gửi đến thầy TS Võ Lê Cường lời cảm ơn chân thành sâu sắc nhất, xin cảm ơn thầy tận tình hướng dẫn đưa lời khuyên giúp đỡ, bảo to lớn để hoàn thành luận văn tốt nghiệp Xin kính gửi lời cảm ơn chân thành tới tất quý thầy cô trường Đại học Bách Khoa Hà Nội nói chung, đặc biệt thầy cô giảng dạy viện điện tử viễn thông sau đại học nói riêng truyền dạy trang bị kiến thức cần thiết cho suốt thời gian theo học trường Xin kính gửi lời cảm ơn chân thành sâu sắc tới ban lãnh đạo trường, khoa, viện sau đại học trường Đại học Bách Khoa Hà Nội tạo điều kiện thuận lợi cho theo học hỗ trợ giúp đỡ thời gian học tập trường Xin gửi lời cảm ơn chân thành tới người bạn, anh em giúp đỡ suốt trình học tập thực luận văn Và xin gửi lời cảm ơn đến gia đình, chỗ dựa tinh thần vật chất cho suốt thời gian theo học Viện sau đại học Trường đại học Bách Khoa Hà Nội Sau xin gửi lời chúc sức khỏe, hạnh phúc thành công tới quý thầy cô, gia đình anh em bạn bè Hà Nội, ngày 29 tháng 03 năm 2015 Nguyễn Văn Luân MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT, KÝ HIỆU DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Chƣơng TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN DÒ TÌM CHUYỂN ĐỘNG 1.1 Khái quát xử lý ảnh 1.1.1 Xử lý ảnh gì? 1.1.2 Các vấn đề xử lý ảnh 14 1.1.2.1 Điểm ảnh (Picture Element) .14 1.1.2.2 Độ phân giải ảnh 14 1.1.2.3 Mức xám ảnh .15 1.1.2.4 Định nghĩa ảnh số 15 1.1.2.5 Quan hệ điểm ảnh 15 1.1.2.6 Biến đổi ảnh .18 1.1.2.7 Nén ảnh 18 1.1.2.8 Thu nhận ảnh 18 1.1.2.9 Lấy mẫu lượng tử hóa 22 1.1.2.10 Một số phương pháp biểu diễn ảnh .24 1.1.2.11 Các định dạng ảnh 26 1.1.2.12 Ảnh đen trắng ảnh mầu .27 1.1.3 Xử lý nâng cao chất lượng ảnh 29 1.1.4 Phân tích ảnh 31 1.1.5 Nhận dạng .32 1.1.6 Nén ảnh .33 1.2 Video toán dò tìm chuyển động 36 1.2.1 Một số khái niệm 36 1.2.2 Một số thuộc tính đặc trưng video .37 1.2.3 Chuyển động (Motion) .37 1.2.4.Bài toán dò tìm chuyển động 38 Chƣơng THUẬT TOÁN DÒ TÌM CHUYỂN ĐỘNG 39 2.1 Thuật toán trừ .39 2.2 Thuật toán trừ trung bình 40 2.3 Thuật toán - 40 2.4 Thuật toán - cải tiến 41 2.5 Thuật toán thống kê khác biệt .43 2.6 Thuật toán trừ trung bình với biến đổi cosin rời rạc 44 Chƣơng THỰC NGHIỆM THUẬT TOÁN DÒ TÌM CHUYỂN ĐỘNG 45 3.1 Giới thiệu 45 3.2 Hệ thống dò tìm chuyển động 45 3.2.0 Lựa chọn thuật toán 45 3.2.1 Phần cứng 47 3.2.2 Phần mềm 47 3.2.2.1 Hệ điều hành Windows 47 3.2.2.2 Thư viện xử lý ảnh OpenCV 48 3.2.2.3 Ngôn ngữ lập trình thuật toán C++ chạy Visual Studio Professional 2010 54 3.2.3 Chạy thử nghiệm chương trình thuật toán phân tích kết 55 3.2.4 Nhận xét 62 Chƣơng KẾT LUẬN, HƢỚNG PHÁT TRIỂN, ỨNG DỤNG THỰC TIỄN 63 4.1 Kết luận 63 4.2 Hướng phát triển ứng dụng thực tiễn đề tài 63 TÀI LIỆU THAM KHẢO 64 DANH MỤC CÁC CHỮ VIẾT TẮT, KÝ HIỆU MPEG Moving Picture Experts Group CIE Commission Internationale d'Eclairage RGB Red, Green, Blue HSV Hue, Saturation, Value NTSC National Television System Committee CMY Cyan Magenta Yellow YIQ Mô hình màu YIQ GIF Graphics Interchange Format JPEG Joint Photographic Experts Group TV Television RLC Run Length Coding LZW Lempel Ziv-Wench USB Universal Serial Bus CPU Central Processing Unit OpenCV Open Source Computer Vision API Application Programming Interface 3D 3-Dimensions VC++ Visual C++ DANH MỤC CÁC HÌNH VẼ Hình 1.1 Sơ đồ trình xử lý ảnh Hình 1.2 Các bước xử lý ảnh .10 Hình 1.3 Sơ đồ phân tích xử lý ảnh, lưu đồ thông tin khối 13 Hình 1.4 Lân cận điểm ảnh 16 Hình 1.5 Hệ tọa độ màu RGB 19 Hình 1.6 Hệ tọa độ màu HSV 20 Hình 1.7 Giá trị lấy mẫu lượng tử hóa 24 Hình 1.8 Biểu diễn ảnh mã xích .25 Hình 1.9 Biểu diễn mức xám ảnh số 27 Hình 1.10 Ảnh thu ảnh mong muốn 31 Hình 1.11 Cấu tạo khung video .37 Hình 3.1 Sơ đồ khối thực thuật toán dò tìm chuyển động 46 Hình 3.2 Sơ đồ phần cứng 47 Hình 3.3 Lịch sử phát triển thư viện xử lý ảnh OpenCV 49 Hình 3.4 Tổ chức OpenCV 51 Hình 3.5 Cài đặt OpenCV 54 Hình 3.6 Video đầu vào 55 Hình 3.7 Thiết lập trung bình 56 Hình 3.8 Nền trung bình cập nhật 57 Hình 3.9 Mặt nạ đối tượng chuyển động 58 Hình 3.10 Mặt nạ nhị phân 59 Hình 3.11 Mặt nạ nhị phân sau khử nhiễu .60 Hình 3.12 Kết dò tìm chuyển động 61 Hình 3.13 Kết dò tìm chuyển động với camera 62 MỞ ĐẦU Lý chọn đề tài Con người phát triển xây dựng nhiều công trình khoa học, ứng dụng vào lĩnh vực sống mang tính tầm cỡ cao Với thay dần máy móc vào cho người nhiệm vụ mang tính xác, an toàn nhiệm vụ mà tự thân người thực thi Thì thị giác máy tính hệ thống thông minh có giác quan nhìn nhận xử lý thông tin thị giác người ngày phát triển mạnh mẽ hệ thống camera thông minh dùng giám sát hay an ninh ứng dụng rộng rãi nhiễu lĩnh vực sống Camera thông minh thành phần quan trọng hệ thống máy có tương tác giống người Trong tình giám sát từ xa camera thông minh phải đưa định thông minh lựa chọn khung hình đáng ý nhiều để tối ưu hóa truyền thông hiệu xử lý.Từ việc phát thay đổi hình ảnh ứng dụng rộng rãi như: Giám sát Video, viễn thám, hệ thống tương tác thông minh, hệ thống xe tự lái thông minh etc Để làm điều việc nghiên cứu thực thuật toán dò tìm chuyển động ứng dụng camera đóng vai trò quan trọng Đó lý chọn nghiên cứu thực đề tài luận văn “ Nghiên cứu thuật toán dò tìm chuyển động ứng dụng cho camera thông minh” hướng dẫn TS Võ Lê Cường Một đề tài mang tính thực tiễn cao, ứng dụng rộng rãi khả thi, nhu cầu thực tế sống có nhiều phương pháp tiếp cận Mục đích nghiên cứu luận văn Đề tài có mục đích nghiên cứu thuật toán dò tìm chuyển động, nghiên cứu áp dụng thuật toán vào hệ thống camera thông minh, phát chuyển động đối tượng khung hình thu Bên cạnh đề tài cung cấp nhìn toàn diện vai trò khả ứng dụng công nghệ xử lý ảnh vào thực tiễn sống Đối tƣợng phạm vi nghiên cứu Đối tượng nghiên cứu Trong luận văn đối tượng xử lý khung hình, ghi sẵn tệp video khung hình thu trực tiếp từ camera Phạm vi nghiên cứu Nghiên cứu thuật toán dò tìm chuyển động, thuật toán “Trừ nền” Phƣơng pháp nghiên cứu Phương pháp nghiên cứu lý thuyết Nghiên cứu thuật toán dò tìm chuyển động phương pháp “Trừ trung bình” Nghiên cứu hệ thống thực thuật toán, máy tính chạy hệ điều hành Windows camera Nghiên cứu sử dụng ngôn ngữ lập trình C++ Microsoft Visual Studio 2010 thư viện xử lý ảnh mã nguồn mở OpenCV Intel Phương pháp nghiên cứu thực nghiệm Tiến hành lập trình chạy thử chương trình thuật toán dò tìm chuyển động phương pháp “Trừ trung bình” máy tính từ phát chuyển động đối tượng chuyển động video Phân tích, đánh giá, tối ưu thuật toán Triển khai thuật toán cho camera thông minh Nội dung Mở đầu Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN DÒ TÌM CHUYỂN ĐỘNG Chương 2: THUẬT TOÁN DÒ TÌM CHUYỂN ĐỘNG Chương 3: THỰC NGHIỆM THUẬT TOÁN DÒ TÌM CHUYỂN ĐỘNG Chương 4: KẾT LUẬN, HƯỚNG PHÁT TRIỂN, ỨNG DỤNG THỰC TIỄN Chƣơng TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN DÒ TÌM CHUYỂN ĐỘNG 1.1 Khái quát xử lý ảnh 1.1.1 Xử lý ảnh gì? Con người thu nhận thông tin vềhình ảnh thông qua giác quan thị giác trình xử lý phân tích thao tác với thông tin hình ảnh nhận từ mắt người xảy não đưa kết điều khiển quan khác thể coi trình xử lý ảnh Xuất phát từ thực tiễn với phát triển nhanh chóng ngành công nghiệp, ứng dụng thực tiễn lĩnh vực xử lý ảnh đồ họa hình ảnh phát triển nhanh chóng ứng dụng nhiều sống Sơ đồ trình xử lý ảnh: Hệ thống xử lý ảnh Hình ảnh Thu nhận ảnh Kết ( phần cứng, phần mềm, thuật toán…) xử lý ảnh Hình 1.1 Sơ đồ trình xử lý ảnh Xử lý ảnh lĩnh vực mang tính khoa học công nghệ Nó ngành khoa học mẻ so với nhiều ngành khoa học khác tốc độ phát triển nhanh, kích thích trung tâm nghiên cứu, ứng dụng, đặc biệt máy tính chuyên dụng riêng cho Để dễ tưởng tượng, xét bước cần thiết xử lý ảnh Đầu tiên, ảnh tự nhiên từ giới thu nhận qua thiết bị thu (như Camera, máy chụp ảnh) Trước đây, ảnh thu qua Camera ảnh tương tự Gần đây, với phát triển công nghệ, ảnh màu đen trắng lấy từ Camera, sau chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý (Máy ảnh số thí dụ gần gũi) Mặt khác, ảnh tiếp nhận từ vệ tinh; quét từ ảnh chụp máy quét ảnh Thu ảnh nhận Tiền xử lý ảnh Phân đoạn ảnh Biểu diễn mô tả Nhận dạng nội suy Cơ sở tri thức Hình 1.2 Các bước xử lý ảnh Sơ đồ bao gồm thành phần sau: a) Phần thu nhận ảnh (Image Acquisition) Ảnh nhận qua camera màu đen trắng Thường ảnh nhận qua camera ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, ảnh 25 dòng), có loại camera số hoá (như loại CCD - Change Coupled Device) loại photodiot tạo cường độ sáng điểm ảnh Camera thường dùng loại quét dòng ; ảnh tạo có dạng hai chiều Chất lượng ảnh thu nhận phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh) b) Tiền xử lý (Image Processing) Sau thu nhận, ảnh nhiễu độ tương phản thấp nên cần đưa vào tiền xử lý để nâng cao chất lượng Chức tiền xử lý lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét c) Phân đoạn (Segmentation) hay phân vùng ảnh Phân vùng ảnh tách ảnh đầu vào thành vùng thành phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch) phong bì thư cho mục đích phân loại bưu phẩm, cần chia câu, chữ địa tên người thành từ, chữ, số (hoặc vạch) riêng biệt để nhận dạng Đây 10 Modul thị giác máy cấp độ cao OpenCV gồm vài tác dụng cấp độ cao Thêm vào nhận dạng mặt, dò tìm, theo dõi Nó bao gồm luồng thị giác ( sử dụng camera di động để xác định cấu trúc 3D), kích cỡ camera âm AI and machine-learning Các ứng dụng thị giác máy thường yêu cầu máy móc phải học ( machine learning) hình thức trí tuệ nhân tạo khác Một vài số chúng có sẵn gói OpenCV Lấy mẫu ảnh phép biến đổi Nó thường tốt cho trình xử lý nhóm phần tử ảnh đơn vị OpenCV bao gồm lấy tách ra, lấy mẫu ngẫu nhiên, phục chế, xoay ảnh, làm cong ảnh ( warping), thay đổi hiệu ứng ảnh Cách thức tạo phân tích ảnh nhị phân Ảnh nhị phân thường xuyên dùng hệ thống kiểm tra có khuyết điểm hình dạng phận quan trọng Sự biểu diễn ảnh thuận tiện biết rõ vật thể cần bắt Cách thức cho tính toán thông tin 3D ( methods for computing 3D information) Những hàm có ích cần xếp xác định với khối lập thể (with a stereo rig) với không gian nhìn phức tạp ( multiple views) từ camera riêng Các phép toán cho xử lý ảnh, thị giác máy biểu diễn ảnh( image interpretation) OpenCV sử dụng phép toán phổ biến như: đại số học, thống kê tính toán hình học Đồ họa Những giao diện giúp ta viết chữ vẽ hình ảnh Thêm vào chức sử dụng nhiểu ghi nhãn đánh dấu Ví dụ ta viết chương trình cần nhận dạng nhiểu đối tượng có ích cho tạo nhãn ảnh ( label image) với kích thước vị trí 50 Phƣơng thức GUI OpenCV bao gồm cửa sổ giao diện thân Trong giao diện so sánh giới hạn với khả thực môi trường Chúng cung cấp môi trường API đa phương tiện đơn giản để thị hình ảnh, cho phép người dùng nhập liệu thông qua chuột , bàn phím điều khiển trính Cấu trúc liệu giải thuật Với giao diện ta giữ lại, tìm kiếm, lưu cách danh mục điều khiển, tuyển tập(cũng tập hợp lệnh gọi ), đồ họa sơ đồ nhánh cách hiệu Khả tồn lâu dài liệu (Data persistence) Những phương pháp cung cấp giao diện cách thuận lợi để lưu trữ dạng khác liệu vào đĩa để khôi phục cần thiết Một vài ví dụ tác dụng OpenCV như: nhận dạng mặt, nhận dạng đường viền, nhận dạng biên… c) Cách tổ chức Cấu trúc OpenCV gồm nhiều module Hình 3.4 Tổ chức OpenCV 51 CXCORE bao gồm dạng liệu rõ ràng Ví dụ cấu trúc dự liệu ảnh, điểm, hình chữ nhật xác định file cxtypes.h CXCORE chứa phép toán đại số tuyến tính thống kê, hàm lưu trữ lâu dài ( persistence fun…) lỗi thao tác Có điều thay hàm đồ họa cho việc vẽ ảnh lưu trữ CV chứa đựng trình xử lý ảnh phương pháp đánh giá sơ kích thước ảnh Những hàm tính toán hình học lưu trữ CVAUX mô tả văn OpenCV modul cũ dùng để thí nghiệm Tuy nhiên, giao diện đơn giản cho nhận dạng mặt nằm modul Những mã nguồn nằm module phù hợp cho việc nhận dạng mặt chúng sử dụng rộng rãi cho mục đích MLL chứa đựng giao diện machine- learning Những hàm lại nằm HighGUI CVCAM Cả hai nẳm thư mục có tên “otherlibs”, sử dụng chúng dễ gặp lỗi Vì HighGUI chứa thư viện vào , chứa đựng nhiều cửa sổ đa chức CVCAM thư viện chứa hàm truy nhập video thông qua DirectX môi trường Window 32 bit Tuy nhiên, HighGUI có giao diện video Chúng đơn giản, làm việc nhiều môi trường Nếu ta sử dụng Window XP, ta làm tăng hiểu cách chuyển qua giao diện CVCAM, OpenCV đơn giản dùng HighGUI d) Khởi tạo OpenCV Khởi tạo OpenCV cho Linux MacOSX đóng gói gói mã nguồn lưu trữ Ta phải xây dựng thư viện tĩnh đối tượng chia sẻ (sharedobject) Ta cần xây dựng RPM trước tiên cài đặt từ nó, biên dịch cài đặt ngay.Cấu trúc cho hai nằm INSTALL Với Window ta cài đặt OpenCV,nó cop file OpenCV vào thư mục mà ta chọn Cách thức lựa chọn đường dẫn hệ thống ta chứa mã nhị phân OpenCV, đăng kí vài lọc DirectX 52 Những yêu cầu khởi tạo window Với người sử dụng Window, thật dễ dàng để cài đặt OpenCV, cài đặt mặc định làm việc Kể từ lúc OpenCV phát triển công cụ, chương trình, ta muốn lưu vào nơi khác mà thư mục Program Files Ta định trước khởi tạo ta muốn Window tìm kiếm file dlls OpenCV nào?Ta lựa chọn chỉnh sửa đường dẫn hệ thống có sẵn ta thay cho đường dẫn họ ta thay đổi thư mục “bin” OpenCV thư mục gốc ta Sau khởi tạo Trong thư mục OpenCV có vài thư mục khác Ta xem xét thư mục Thư mục docs chứa file văn html cho toàn hàm OpenCV kiểu liệu.Từ file văn ta làm ví dụ, ta muốn xem thư mục “samples”.Những file header cần thiết ta dịch chương trình sử dụng OpenCV Cả Linux Window ta xác định file header cách tìm kiếm thư mục cài đặt thư mục khác file có dạng *.h, *.hpp Sẽ có nhiều nhiều, nhiên ta không cần nhiều Header dùng cho tất module trừ HighGUI tách riêng “include” Bạn bỏ header thư mục “src” Khi dùng HighGUI ta cần highgui.h Nó nằm otherlibs/highgui e) Cài đặt OpenCV 2.48 phiên dành cho Visual Studio 2010 Trước hết download chương trình OpenCV 2.4.8.exe phiên dành cho VC++ 2010 Windows Tiến hành cài đặt 53 Hình 3.5 Cài đặt OpenCV Click Extract chọn đường dẫn tiến hành cài đặt Sau cài đặt xong, ta tiến hành copy tất file thư mục bin, include,và lib OpenCV cho vào thư mục tương ứng bin, include,và lib VC++ 2010 để sử dụng thư viện OpenCV lập trình VC++ 2010 3.2.2.3 Ngôn ngữ lập trình thuật toán C++ chạy Visual Studio Professional 2010 a) Tổng quan Microsoft Visual Studio Microsoft Visual Studio môi trường phát triển tích hợp (IDE) từ Microsoft Nó sử dụng để phát triển chương trình máy tính cho Microsoft Windows, trang web, ứng dụng web dịch vụ web Visual Studio sử dụng tảng phát triển phần mềm Microsoft Windows API, Windows Forms, Windows Presentation Foundation, Windows Store Microsoft Silverlight Nó sản xuất hai ngôn ngữ máy mã số quản lý Visual Studio bao gồm trình soạn thảo mã hỗ trợ IntelliSense cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động trình gỡ lỗi mức độ mã nguồn gỡ lỗi mức độ máy Công cụ tích hợp khác bao gồm mẫu thiết kế hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp thiết kế giản đồ sở liệu Nó chấp nhận plug-in nâng cao chức hầu hết cấp bao gồm thêm hỗ trợ cho hệ thống quản lý phiên (như Subversion) bổ sung thêm công cụ biên tập thiết kế trực quan cho miền ngôn ngữ cụ thể công cụ dành cho khía cạnh khác quy trình phát triển phần mềm 54 Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác cho phép trình biên tập mã gỡ lỗi để hỗ trợ (mức độ khác nhau) ngôn ngữ lập trình Các ngôn ngữ tích hợp gồm có C, C++ C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C thăng (thông qua Visual C#) F thăng (như Visual Studio 2010) Hỗ trợ cho ngôn ngữ khác J++/J thăng, Python Ruby thông qua dịch vụ cài đặt riêng rẽ Nó hỗtrợ XML/XSLT, HTML/XHTML, JavaScript CSS Trong luận văn sử dụng Microsoft Visual Studio Professional 2010 Lập trình thuật toán sử dụng ngôn ngữ lập trình C++ 3.2.3 Chạy thử nghiệm chƣơng trình thuật toán phân tích kết Sau viết chương trình VC++, sử dụng thư viên xử lý ảnh OpenCV theo sơ đồ hình 3.1 chạy thực nghiệm ta có kết Chương trình thử nghiệm thuật toán dò tìm dễ dàng chuyển động hai trường hợp liệu đầu vào dùng camera tệp video.Kết hiển thị hình đối tượng chuyển động cảnh báo khoanh hình chữ nhật đỏ a) Tệp video chứa đối tƣợng chuyển động Hình 3.6 Video đầu vào 55 Trong hình Video đầu vào tệp có sẵn, chứa đối tượng chuyển động ảnh b) Nền trung bình đƣợc khởi tạo Hình 3.7 Thiết lập trung bình Trong hình trung bình khởi tạo, kết đạt trung bình cố định Giá trị khởi tạo: B0(x,y) = I0(x,y) lúc với khung video đến Kết đạt được: Tạo trung bình đầu tiên, để chương trình tính toán xử lý để tạo trung bình cập nhật 56 c) Cập nhật trung bình Hình 3.8 Nền trung bình cập nhật Trong hình hình cập nhật dựa theo công thức Bt(x,y) = (1- ) Bt-1(x,y) + It(x,y) Trong Với : Ngưỡng cho trước; : Tham số cập nhật cho trước [0,1]; Bt(x,y): Giá trị nền; It(x,y): Giá trị frame đến Giá trị khởi tạo: B0(x,y) = I0(x,y) Kết đạt được: Ta thu để dựa vào dò tìm đối tượng chuyển động theo thời gian hay nói cách khác gần làm 57 d) Mặt nạ đối tƣợng chuyển động Hình 3.9 Mặt nạ đối tượng chuyển động Thực phép trừ khung ảnh thời đến với trung bình cập nhật trước ta thu hình ảnh, ảnh gọi mặt nạ chứa đối tượng chuyển động Kết đạt được: Trong hình ta thấy rõ đối tượng chuyển động có sai khác lớn 58 e) Mặt nạ nhị phân Hình 3.10 Mặt nạ nhị phân Trong hình mặt nạ đối tượng chuyển động chuyển sang mặt nạ nhị phân dựa công thức 1, if │It(x,y) –B(x,y) > D(x,y) = 0, if │It(x,y) –B(x,y) Với ngưỡng cho trước D(x,y) = (điểm ảnh màu đen), pixel Ngược lại, D(x,y) = (điểm ảnh màu trắng), pixel đối tượng chuyển động Kết đạt được: Lúc toàn Pixel màu đen, toàn Pixel đối tượng chuyển động màu trắng rõ ràng Thu mặt nạ nhị phân 59 f) Khử nhiễu phép co ảnh dãn ảnh Hình 3.11 Mặt nạ nhị phân sau khử nhiễu Trong hình mặt nạ nhị phân đối tượng chuyển động (phần màu trắng), ( phần màu đen) rõ ràng liền khối Sau lọc nhiễu phép biến đổi hình thái học ảnh Vậy đối chuyển động khoanh vùng cách xác Kết đạt được: Dựa vào mặt nạ nhị phân ta vẽ đường bao, dò tìm, đánh dấu đối tượng chuyển động khung hình video tai 60 g) Kết dò tìm chuyển động tệp video Hình 3.12 Kết dò tìm chuyển động Trong hình đối tượng chuyển động, dò tìm phát bao theo vết bới hình chữ nhật màu đỏ quanh đối tượng chuyển động Như chương trình dò tìm chuyển động video dựa thuật toán “Trừ trung bình” Kết đạt được: Chương trình thử nghiệm dò tìm xác chuyển động có tệp video cách khoanh vùng theo vết đối tượng 61 h) Kết dò tìm chuyển động trực tiếp từ camera Hình 3.13 Kết dò tìm chuyển động với camera Trong hình hình ảnh đầu vào thu trực tiếp từ camera có đối tượng chuyển động, chương trình dò tìm đối tượng chuyển động vùng quan sát camera khoanh vùng ( màu đỏ) bám theo đối tượng Kết đạt được: Chương trình thực nghiệm thuật toán dò tìm phát chuyển động đối tượng khung hình thu trực tiếp từ camera quan sát 3.2.4 Nhận xét Chương trình thử nghiệm lập trình dựa thuật toán “Trừ trung bình” dò tìm chuyển động tốt xác hai trường hợp với video đầu vào thu trực tiếp từ camera mở tệp video có sẵn 62 Chƣơng KẾT LUẬN, HƢỚNG PHÁT TRIỂN, ỨNG DỤNG THỰC TIỄN 4.1 Kết luận a) Phần lý thuyết Hiểu nắm được, sử dụng kiến thức xử lý ảnh, hệ thống xử lý ảnh Nắm kiến thức lập trình xử lý ảnh ngôn ngữ lập trình C++, cách sử dụng, ứng dụng phần mềm Microsoft Visual Studio 2010, thư viện xử lý ảnh OpenCV để xử lý ảnh lĩnh vực thị giác máy tính b) Phần thực nghiệm Hoàn thành nghiên cứu thuật toán dò tìm chuyển động ứng dụng cho camera thông minh Hoàn thành nghiên cứu hệ thống thực thuật toán Thử nghiệm thuật toán “Trừ trung bình” chạy thuật toán máy tính Triển khai thuật toán cho hệ thống camera thông minh dò tìm chuyển động khung hình thu được, từ gửi kết xử lý tới hệ thống khác 4.2 Hƣớng phát triển ứng dụng thực tiễn đề tài Đề tài cẩn phải phát triển nữa, thêm nhiều tính cải tiến hệ thống thuật toán Từ dò tìm xác chuyển động điều kiện phức tạp camera thu hình ảnh có độ nhiễu cao, đối tượng chuyển động chậm hay không chuyển động… - Ứng dụng điều khiển giám sát Robot - Ứng dụng điều khiển quản lý giao thông - Ứng dụng đảm bảo an ninh khu vực cần bảo vệ nghiêm ngặt - Ứng dụng quân 63 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đại học Bách khoa Hà Nội, Nhập môn xử lý ảnh số [2] Nguyễn Quang Hoan, Giáo trình xử lý ảnh [3] Khoa Công nghệ thông tin, Đại học Khoa học tự nhiên TP Hồ Chí Minh (2013), Nhập môn thị giác máy tính [4] Nguyễn Văn Long, Ứng dụng xử lý ảnh thực tế với thư viện OpenCV C/C++ Tiếng Anh [5] Diogo M Cabral Machado (2011), People Counting System Using ExistingSurveillance Video Camera [6] Gary Bradski and Adrian Kaehler (2008), Learning OpenCV [7] http://opencv.org/downloads.html [8] http://www.microsoft.com/en-us/download/details.aspx?id=24988.html [9] Ivor Horton’s, Beginning Visual C++ 2010 [10] Juan Soulié, C++ Language Tutorial [11] Robert Laganière (2011), OpenCV Computer Vision Application Programming [12] The OpenCV Tutorials, Release 2.4.6.0 64 ... camera Phạm vi nghiên cứu Nghiên cứu thuật toán dò tìm chuyển động, thuật toán “Trừ nền” Phƣơng pháp nghiên cứu Phương pháp nghiên cứu lý thuyết Nghiên cứu thuật toán dò tìm chuyển động phương... tiếp cận Mục đích nghiên cứu luận văn Đề tài có mục đích nghiên cứu thuật toán dò tìm chuyển động, nghiên cứu áp dụng thuật toán vào hệ thống camera thông minh, phát chuyển động đối tượng khung... giá, tối ưu thuật toán Triển khai thuật toán cho camera thông minh Nội dung Mở đầu Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN DÒ TÌM CHUYỂN ĐỘNG Chương 2: THUẬT TOÁN DÒ TÌM CHUYỂN ĐỘNG Chương