Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
3,62 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ HOÀN NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN CHUYỂN ĐỘNG TRONG VIDEO VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ Hà Nội - 2009 MỤC LỤC MỞ ĐẦU Chương 1-TỔNG QUAN VỀ XỬ LÝ VIDEO VÀ PHÁT HIỆN ĐỐI TƯỢNG CHUYỂN ĐỘNG 1.1 Tổng quan xử lý Video 1.1.1 Sơ lược Video 1.1.2 Các dạng Video 1.1.2.1 Video tương tự 1.1.2.2 Video số 1.1.3 Các chuẩn video 1.2 Một số vấn đề xử lý Video 1.2.1 Phát đối tượng chuyển động Video 1.2.1.1 Phép trừ 10 1.2.1.2 Các phương pháp tĩnh 10 1.2.1.3 Sự khác biệt theo thời gian 11 1.2.1.4 Optical Flow 12 1.2.2 Phân loại đối tượng video 12 1.2.2.1 Phân loại dựa theo hình dạng 13 1.2.2.2 Phân loại dựa theo chuyển động 13 1.2.3 Phát ánh sáng 14 1.2.4 Đánh dấu đối tượng 14 Chương 2-PHÁT HIỆN, ĐÁNH DẤU VÀ PHÂN LOẠI ĐỐI TƯỢNG CHUYỂN ĐỘNG TRONG VIDEO 16 2.1 Phát đối tượng 16 2.1.1 Phát trội 18 2.1.1.1 Mơ hình trừ có khả thích ứng 18 2.1.1.2 Mơ hình hỗn hợp Gaussian tương thích 20 2.1.1.3 Sự khác biệt theo thời gian 22 2.1.2 Bước hậu xử lý điểm ảnh 23 2.1.2.1 Phát bóng thay đổi ánh sáng đột ngột 24 2.1.3 Phát vùng liên tục 29 2.1.4 Bước hậu xử lý vùng 29 2.1.5 Trích rút đặc trưng đối tượng 30 2.2 Đánh dấu đối tượng 30 2.2.1 Tham chiếu tương tự với đối tượng 32 2.2.2 Điều khiển chồng chéo đối tượng 36 2.2.2.1 Phát đối tượng bị che khuất 37 2.2.2.2 Phát đối tượng tách 37 2.2.2.3 Lược đồ sở tham chiếu tương ứng 37 2.2.3 Phát đối tượng dời đối tượng biến 39 2.3 Phân loại đối tượng 41 2.3.1 Phân loại dựa mẫu hình chiếu 41 2.3.2 Cơ sở liệu mẫu hình chiếu 42 2.3.3 Ma trận phân loại 45 2.3.4 Sự bảo toàn theo thời gian 46 Chương 3- ỨNG DỤNG 48 3.1 Một số ứng dụng công nghệ phần mềm 49 3.1.1 Ứng dụng phần mềm nhúng (Embedded Software) 49 3.1.1.1 Khái niệm phần mềm nhúng 49 3.1.1.2 Mục đích phần mềm nhúng 49 3.1.1.3 Tính chất phần mềm nhúng 49 3.1.1.4 Lợi ích phần mềm nhúng 49 3.1.1.5 Ứng dụng xử lý video 49 3.1.2 Xây dựng phần mềm điều khiển 50 3.2 Cài đặt số phương pháp phát đánh dấu đối tượng 50 3.2.1 Giao diện chương trình 50 3.2.2 Các menu 51 3.2.3 Một số hình ảnh phát đánh dấu đối tượng chuyển động 52 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 60 MỞ ĐẦU Trong kỷ nguyên công nghệ thông tin nay, với phát triển nhanh chóng cơng nghệ chế tạo thiết bị phần cứng ngày đại, tinh vi ngành cơng nghệ phần mềm khơng ngừng mở rộng để phù hợp với yêu cầu thực tế Trong phải kể đến phát triển thiết bị thu nhận hình ảnh từ giới thực, chẳng hạn hệ thống giám sát camera, song hành với vấn đề liên quan đến việc giám sát Thách thức cho cơng nghệ phần mềm lĩnh vực việc xử lý hình ảnh thu nhận từ hệ thống giám sát Giám sát vấn đề nhiều nhà nghiên cứu quan tâm đặc biệt ứng dụng thiết thực cho đời sống xã hội Chẳng hạn hệ thống giám sát hành vi khả nghi tội phạm, khủng bố địa điểm nhạy cảm phủ Hệ thống giám sát viện bảo tàng, lưu trữ để chống trộm cắp di vật trưng bày Hệ thống giám sát tượng bất bình thường, vi phạm pháp luật, tai nạn điểm giao thông Hệ thống giám sát phòng chống hỏa hoạn Các hệ thống giám sát siêu thị, cửa hàng, công ty để chống trộm cắp, … Thách thức cho ngành cơng nghệ phần mềm đưa giải pháp nhằm xây dựng hệ thống giám sát tối ưu nhằm giúp người phát xác kịp thời tượng bất thường để có biện pháp xử lý nhanh chóng nhằm tránh thiệt hại đáng tiếc cho xã hội Dữ liệu thu từ hệ thống camera giám sát thường lưu trữ dạng video Như công việc nghiên cứu vấn đề liên quan đến việc xử lý video Hiện giới có nhiều cơng trình nghiên cứu xử lý video có nhiều ứng dụng đáng kể lĩnh vực Tuy nhiên, so với yêu cầu thực tế chưa đủ Ở Việt Nam, xử lý Video vấn đề mẻ Thực tế cho thấy rằng, xã hội phát triển mạnh, yêu cầu thiết bị công nghệ cao Như vậy, xử lý video mảnh đất màu mỡ cho trung tâm nghiên cứu, công ty đầu tư vào Nhất giai đoạn hệ thống nhúng phát triển mở kỷ nguyên cho ngành công nghệ phần mềm Giám sát tự động hướng có nhiều triển vọng phát triển lĩnh vực nhận dạng xử lý ảnh chiều Đồng thời, hướng cho mảng phần mềm thiết kế chuyên dụng cho thiết bị giám sát tự động Việc phát đối tượng chuyển động video nhờ kỹ thuật xử lý ảnh, sở đốn nhận số hành vi đối tượng việc làm có ý nghĩa khoa học thực tiễn Nhất hồn cảnh Việt Nam chưa có nhiều nghiên cứu ứng dụng theo hướng Xuất phát từ thực tế đó, việc nghiên cứu đưa phương pháp để xử lý video vô thiết thực Được hướng dẫn PGS.TS Đỗ Năng Tồn tơi tiến hành nghiên cứu đề tài “Nghiên cứu số phương pháp phát đối tượng chuyển động video ứng dụng” Trong khuôn khổ luận văn này, mục tiêu tơi tìm hiểu bước phát hiện, đánh dấu, phân loại đối tượng chuyển động video so sánh mẫu để đưa kết luận tương ứng Sau nghiên cứu kỹ phương pháp đưa ra, tiến hành đánh giá ưu nhược phương pháp mạnh dạn đưa số biện pháp khắc phục nhằm làm cho hệ thống hoạt động tối ưu với hệ thời gian thực Các vấn đề cần giải phạm vi luận văn bao gồm: - Nghiên cứu tổng quan video phát đối tượng chuyển động - Nghiên cứu đề xuất số hướng khắc phục nhược điểm việc phát hiện, đánh dấu, phân loại đối tượng chuyển động tạo kho sở liệu mẫu - Cài đặt số phương pháp phát hiện, đánh dấu đối tượng chuyển động dựa theo phương pháp nêu Chương - TỔNG QUAN VỀ XỬ LÝ VIDEO VÀ PHÁT HIỆN ĐỐI TƯỢNG CHUYỂN ĐỘNG 1.1 Tổng quan xử lý Video 1.1.1 Sơ lược Video Ngày nay, khơng phủ nhận thành tựu mà ngành công nghệ thơng tin mang lại Trong đó, đa phương tiện khía cạnh quan trọng với nhiều ứng dụng thiết thực nhằm làm cho xã hội ngày phát triển hơn, văn minh Nhưng với phát triển không ngừng công nghệ thông tin, chưa đủ Vẫn cần nhiều nghiên cứu liên quan đến khía cạnh Trong phải kể đến lĩnh vực quan trọng đa phương tiện, Video xử lý video Video tái tạo ảnh tự nhiên theo không gian thời gian hai, thực chất dãy ảnh liên tục theo thời gian nhằm mô chuyển động Việc dùng ảnh liên tục để mô tả chuyển động theo thời gian xuất gần kỉ Năm 1834 nhà toán học William George Horner phát minh cách mô tả Sau đó, hàng loạt nghiên cứu khác triển khai có ứng dụng đáng kể Năm 1887, Hannubal Good phát minh phim ảnh vấn đề ảnh chuyển động quan tâm đặc biệt lợi ích kinh tế mà mang lại Năm 1895, hệ thống camera/Projector với chuẩn phim (35mm chiều rộng, 24 khung hình giây) phát triển Louis Lumiére Sự chuẩn hóa video tương tự năm đầu thập niên 1950 (NTSC) năm cuối 1960 (SECAM PAL) làm cho ảnh chuyển động xuất khắp nơi, với thiết bị vô tuyến dùng rộng rãi cho mục đích giải trí, hệ thống ứng dụng công nghệ phát chuyển động tiếp tục phát triển Vào năm 1990, tổ chức chuẩn hóa tổ chức ISO-IEC (International Organization for Standard – International Electrotechnical Commission) đưa chuẩn MJPEG cho video kĩ thuật số, tổ chức chuẩn ITU-T (International Telecommunication Union) đưa chuẩn H.261 số chuẩn liên quan khác Đi kèm với thiết bị tin học giá rẻ tạo nên phát triển bùng nổ cho ứng dụng đa phương tiện 1.1.2 Các dạng Video 1.1.2.1 Video tương tự NTSC Video: Đây dạng Video tương tự với 525 dịng khung hình, 30 khung hình giây, quét cách dòng, chia làm hai trường (mỗi trường 262.5 dịng), có 20 dịng dự trữ cho thông tin điều khiển thời điểm bắt đầu trường PAL Video: Dạng Video có 625 dịng khung hình, 25 khung hình giây, quét cách dòng Khung gồm hai trường chẵn lẽ, trường bao gồm 312.5 dòng 1.1.2.2 Video số Một số tiêu chuẩn Video số lấy theo Committee for International Radio) tiêu chuẩn CCIR (Consultative Bảng1.1 Các tiêu chuẩn Video số Độ phân giải độ chói Độ phân giải màu sắc Lấy mẫu màu Số trường /s Cách quét 1.1.3 Các chuẩn video Các chuẩn tổ chức chuẩn ISO-IEC (International Organization for StandardInternational Electrotechnical Commission) đưa bao gồm: Chuẩn MJPEG MJPEG (Motion JPEG) tên gọi lớp quy cách video, frame video phạm vi kết hợp lại dãy video số nén lại cách độc lập ảnh JPEG MJPEG sử dụng hình thái nén dựa phép biến đổi cosin rời rạc Phép toán chuyển đổi frame video nguồn từ miền thời gian xác định vào miền tần số Một mơ hình tri giác dựa theo cách khơng chặt chẽ vào hệ thống trực quan người để loại bỏ thơng tin có tần số cao, ví dụ chuyển đổi cách xác theo cường độ màu sắc Trong miền chuyển đổi, việc xử lý rút gọn thông tin gọi lượng tử Trong đó, lượng tử phương pháp làm giảm nhóm tỷ lệ lớn (với xẩy khác nhóm) vào nhóm nhỏ hơn, miền chuyển đổi thuận tiện cho việc biểu diễn ảnh hệ số có tần số cao, góp phần làm giảm ảnh hệ số khác với đặc tính có giá trị nhỏ với hệ số nén cao Các hệ số lượng tử sau xếp dãy đóng gói vào đầu tuyến bit Gần việc thi hành tất phần mềm chuẩn MJPEG cho phép người dùng điểu khiển tỉ lệ nén (như tham biến tùy ý khác), cho phép người sử dụng để trao đổi ngoại tuyến tệp có kích thước nhỏ Trong ứng dụng nhúng (miniDV, sử dụng tương tự pha trộn nén biến đổi cosine rời rạc), Các tham biến lựa chọn trước thiết lập cho ứng dụng Chuẩn Video MPEG-1 MPEG-1 chuẩn phát triển thừa nhận năm 1992 để lưu trữ dạng nén thô Video dạng CIF kết hợp với audio khoảng 1.5 Mbps (các tỉ lệ nén tách biệt 26:1 6:1) nhiều môi trường lưu trữ số khác VCD , DAT, Winchester, đĩa quang, cáp, vệ tinh số truyền số với ứng dụng hệ thống đa phương tiện trực tuyến Chuẩn MPEG-1 gọi ISO/IEC-11172 bao gồm phần sau: Các hệ thống (lưu trữ đồng hóa video, audio liệu khác nhau) Video (nén video) Audio (nén audio) Kiểm tra đắn (kiểm tra xác việc thực chuẩn) Các phần mềm sở (chẳng hạn phần mềm mã hóa giải mã) Cụ thể chuẩn MPEG-1 cho Video sau Khơng gian màu MPEG-1 Trước mã hóa video thành MPEG-1, không gian màu chuyển đổi thành Y‟CbCr (Y‟=Luma, Cb = Thành phần màu Blue, Cr = thành phần màu Red) Luma bao gồm độ sáng độ phân giải lưu trữ tách biệt theo thành phần (màu, màu sắc, giai đoạn) phân biệt thành phần Red Blue Các đặc tính MPEG-1 Là tiêu chuẩn tổng quát cú pháp, hỗ trợ ước lượng chuyển động, dự đoán bù chuyển động, dùng thuật tốn mã hóa rời rạc cosine Khơng định nghĩa thuật tốn xác định cụ thể mà thiết kế mã hóa linh hoạt Khả phục vụ ảnh khác nhau, hoạt động thiết bị, tốc độ khác Truy cập ngẫu nhiên dựa điểm truy cập độc lập Tìm nhanh xem qt dịng bit mã hóa, hiển thị khung chọn Trễ mã hóa giải mã hợp lý (1s), gây ấn tượng tốt cho truy cập video đơn công MPEG-1 xét tín hiệu Video lũy tiến Sử dụng không gian màu (Y, C r, Cb) thừa nhận theo kiến nghị CCIR 601 Trong SIF (Standard Input Format) MPEG kênh 352 pixel x 240 dịng 30 khung hình/s Sau số ràng buộc MPEG-1: Bảng 1.2 Một số ràng buộc MPEG-1 Số pixel lớn dòng Số dòng lớn ảnh Số ảnh giây Số MB ảnh Số MB giây Tốc độ bit tối đa Kích thước đệm giải nén tối đa Chuẩn Video MPEG-2 MPEG-2 phiên mở rộng MPEG-1 để cung cấp phạm vi rộng ứng dụng với tốc độ bit độ phân giải khác (2-20Mbps) Các đặc tính MPEG-2 sử dụng rộng rãi định dạng tín hiệu vơ tuyến kỹ thuật số, tín hiệu tín hiệu vệ tinh, tín hiệu hữu tuyến, vơ tuyến Nó định dạng cho phim ảnh số chương trình khác lưu DVD số đĩa từ tương tự MPEG-2 chuẩn quốc tế cịn có tên gọi khác ISO/IEC 13818 Chuẩn MPEG-2 cho video tương tự chuẩn MPEG-1 Chuẩn Video MPEG-4 53 Hình 3.7: Phát đánh dấu đối tượng theo biên Hình 3.8: Phát đánh dấu đối tượng cách đóng khung đối tượng chuyển động hình chữ nhật 54 KẾT LUẬN Như ta biết, giám sát camera ứng dụng rộng rãi nhiều lĩnh vực sống, việc nghiên cứu vấn đề liên quan đến hệ thống giám sát nhằm đưa cảnh báo xác, kịp thời cơng việc mang tính thực tiễn cao Chúng ta biết kết thu nhận từ camera giám sát video Như việc nghiên cứu phát đối tượng chuyển động video Video thu nhận từ camera xử lý qua công đoạn sau: Phát đối tượng chuyển động, đánh dấu đối tượng vừa phát hiện, phân loại chúng đem so sánh với sở liệu mẫu, khớp đưa cảnh báo tương ứng, chưa khớp có bước phán đốn sau tiếp tục cập nhật đối tượng vào kho liệu mẫu Như vậy, theo thời gian, kho liệu mẫu phong phú đầy đủ Trong phạm vi luận văn này, tơi nghiên cứu trình bày lại số phương pháp phát đối tượng số bước hậu xử lý để làm cho đối tượng vừa phát rõ ràng hơn, tránh trường hợp phát nhầm nhiễu Sau phát đối tượng, chuyển sang bước đánh dấu phân loại đối tượng chuyển động Sau nghiên cứu phương pháp đó, tìm phần ưu, phần nhược phương pháp, từ có bước kết hợp phương pháp đưa giải pháp để khắc phục nhược điểm nhằm xây dựng hệ thống giám sát tối ưu Trong luận văn cài đặt thành công số phương pháp phát đánh dấu đối tượng chuyển động Hệ thống đầu vào demo lấy hình ảnh trực tiếp từ camera gắn vào máy tính, lấy file video có phần đặc trưng AVI từ nguồn có sẵn video lấy từ nguồn trực tuyến Hướng nghiên cứu sâu đề tài mà quan tâm phát phân loại phần chuyển động đối tượng, từ xây dựng ứng dụng hỗ trợ cho người Một hướng khác tìm hiểu rõ đặc điểm lửa, từ xây dựng hệ thống cảnh báo hỏa hoạn 55 TÀI LIỆU THAM KHẢO [1] J.K Aggarwal and Q Cai Human motion analysis: A review Computer Vision and Image Understanding, March 1999 [2] A Amer Voting-based simultaneous tracking of multiple video objects In Proc SPIE Int Symposium on Electronic Imaging, Santa Clara, USA, January 2003 [3] E.M Arkin, L.P Chew, D.P Huttenlocher, K Kedem, and J.S.B Mitchell An efficiently computable metric for comparing polygonal shapes IEEE Transactions on Pattern Recognition and Machine Intelligence, 1991 [4] R Bodor, B Jackson, and N Papanikolopoulos Vision-based human tracking and activity recognition In Proc of the 11th Mediterranean Conf on Control and Automation, June 2003 [5] A Cavallaro and F Ziliani Image Analysis for Advanced Video Surveillance, Multimedia Video-Based Surveillance Systems, Kluwer Academic Publishers, Boston, 2000 [6] H.T Chen, H.H Lin, and T.L Liu Multi-object tracking using dynamical graph matching In Proc of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2001 [7] R T Collins, R Gross, and J Shi Silhouette-based human identification from body shape and gait In Proc of Fifth IEEE Conf on Automatic Face and Gesture Recognition, 2002 [8] R Cutler and L.S Davis Robust real-time periodic motion detection, analysis and applications In IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000 [9] A Elgammal, R Duraiswami, D Harwood, and L S Davis Background and foreground modeling using non-parametric kernel density estimation for visual surveillance In Proc of the IEEE, 2002 [10] R T Collins et al A system for video surveillance and monitoring: VSAM final report Technical report CMU-RI-TR-00-12, Robotics Institute, Carnegie Mellon University, May 2000 [11] T Brodsky et al Visual Surveillance in Retail Stores and in the Home, Boston, 2002 [12] H Fujiyoshi and A.J Lipton Real time human motion analysis by image skeletonization In Proc of Workshop Applications of Computer Vision, 1998 56 [13] D M Gavrila The analysis of human motion and its application for visual surveillance In Proc of the 2nd IEEE International Workshop on Visual Surveillance, Fort Collins, U.S.A., 1999 [14] D Greenhill, P Remagnino, and G A Jones VIGILANT, Video-Based Surveillance Systems Kluwer Academic Publishers, Boston, 2002 [15] I Haritaoglu A Real Time System for Detection and Tracking of People and Recognizing Their Activities, University of Maryland at College Park, 1998 [16] I Haritaoglu, R Cutler, D Harwood, and L S Davis Backpack: Detection of people carrying objects using silhouettes Computer Vision and Image Understanding, 2001 [17] I Haritaoglu, D Harwood, and L.S Davis W4: A real time system for detecting and tracking people In Computer Vision and Pattern Recognition, 1998 [18] G Healey, D Slater, T Lin, B Drda, and D Goedeke A system for realtime fire detection Computer Vision and Pattern Recognition, 1993 [19] F Heijden Image Based Measurement Systems: Object Recognition and Parameter Estimation Wiley, January 1996 [20] J Heikkila and O Silven A real-time system for monitoring of cyclists and pedestrians In Proc of Second IEEE Workshop on Visual Surveillance, Fort Collins, Colorado, June 1999 [21] T Horprasert, D Harwood, and L.S Davis A statistical approach for realtime robust background subtraction and shadow detection In Proc of IEEE Frame Rate Workshop, Greece, 1999 [22] H.Ramoser, T.Schlgl, M.Winter, and H.Bischof Shape-based detection of humans for video surveillance In Proc of IEEE Int Conf on Image Processing, Spain, 2003 [23] W Phillips III, M Shah, and N Da Vitoria Lobo Flame recognition in video In Fifth IEEE Workshop on Applications of Computer Vision, December 2000 [24] Y Ivanov, C Stauffer, A Bobick, and W.E.L Grimson Video surveillance of interactions In International Workshop on Visual Surveillance, Fort Collins, Colorado, June 1999 [25] S Ju, M Black, and Y Yaccob Cardboard people: a parameterized model of articulated image motion In Proc of the IEEE International Conference on Automatic Face and Gesture Recognition, 1996 [26] P KaewTraKulPong and R Bowden An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow Detection, Boston, 2002 57 [27] S Khan and M Shah Tracking people in presence of occlusion In Proc of Asian Conference on Computer Vision, Taiwan, January 2000 [28] A J Lipton Local application of optic flow to analyse rigid versus nonrigid motion Technical Report CMU-RI-TR-99-13, Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, December 1999 [29] A J Lipton, H Fujiyoshi, and R.S Patil Moving target classification and tracking from real-time video In Proc of Workshop Applications of Computer Vision, 1998 [30] C B Liu and N Ahuja Vision based fire detection In IEEE International Conference on Pattern Recognition, Cambridge, UK, August 2004 to appear [31] S Loncaric A survey of shape analysis techniques Pattern Recognition, August 1998 [32] D R Magee Tracking multiple vehicles using foreground, background and motion models In Proc of Statistical Methods in Video Processing Workshop, June 2002 [33] J S Marques, P M Jorge, A J Abrantes, and J M Lemos Tracking groups of pedestrians in video sequences In Proc of IEEE Workshop on MultiObject Tracking, Madison, June 2003 [34] A M McIvor Background subtraction techniques In Proc of Image and Vision Computing, New Zealand, 2000 [35] S.J McKenna, S Jabri, Z Duric, and H Wechsler Tracking interacting people In Proc of International Conference on Automatic Face and Gesture Recognition, 2000 [36] F Oberti, G Ferrari, and C S Regazzoni A Comparison between Continuous and Burst, Recognition Driven Transmission Policies in Distributed BIBLIOGRAPHY 84 3GSS, Boston, 2002 [37] J Owens and A Hunter A fast model-free morphology-based object tracking algorithm In Proc of British Machine Vision Conference, UK, September 2002 [38] C Papageorgiou, T Evgeniou, and T Poggio A trainable pedestrian detection system In Proc of IEEE Int Conf on Intelligent Vehicles, Germany, October 1998 [39] C Regazzoni and P Varshney Multi-sensor surveillance In IEEE Int Conf Image Processing, 2002 58 [40] R Rosales and S Sclaroff Improved tracking of multiple humans with trajectory prediction and occlusion modeling In Proc of IEEE CVPR Workshop on the Interpretation of Visual Motion, CA, 1998 [41] M Saptharishi, J.B Hampshire II, and P Khosla Agent-based moving object correspondence using differential discriminative diagnosis In Proc Of Computer Vision and Pattern Recognition, 2000 [42] E Saykol, U Gudukbay, and O Ulusoy A histogram-based approach for object-based query-by-shape-and-color in multimedia databases Technical Report BUCE-0201, Bilkent University, 2002 [43] E Saykol, G Gulesir, U Gudukbay, and O Ulusoy KiMPA: A kinematicsbased method for polygon approximation In International Conference on Advances in Information Systems, Turkey, 2002 [44] C Stauffer and W Grimson Adaptive background mixture models for realtime tracking In Proc of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1999 [45] C Stauffer and W.E.L Grimson Learning patterns of activity using realtime tracking IEEE Pattern Recognition and Machine Intelligence, August 2000 [46] B U Toreyin Moving object detection and tracking in wavelet compressed video Master’s thesis, Bilkent University, 2003 [47] R.C Veltkamp and M Hagedoorn State-of-the-art in shape matching, pages 87– 119 Principles of Visual Information Retrieval Springer, 2001 [48] H Wang and S.F Chang Automatic face region detection in mpeg video sequences In Electronic Imaging and Multimedia Systems, China, November 1996 [49] L Wang, W Hu, and T Tan Recent developments in human motion analysis, March 2003 [50] L Wang, H Ning, T Tan, and W Hu Fusion of static and dynamic features of body biometrics for gait recognition In Proc of International Conference on Computer Vision, France, 2003 [51] L Wixson and A Selinger Classifying moving objects as rigid or nonrigid In Proc of DARPA Image Understanding Workshop, 1998 [52] C R Wren, A Azarbayejani, T J Darrell, and A P Pentland Pfinder: Real-time tracking of the human body IEEE Pattern Recognition and Machine Intelligence, July 1997 [53] M Xu and T Ellis Colour-Invariant Motion Detection under Fast Illumination Changes, Boston, 2002 59 [54] T Zhao, R Nevatia, and F Lv Segmentation and tracking of multiple humans in complex situations In Proc of USC Computer Vision, 2001 [55] X Zhou, R T Collins, T Kanade, and P Metes A master-slave system to acquire biometric imagery of humans at distance In First ACM SIGMM International Workshop on Video Surveillance, ACM Press, 2003 60 PHỤ LỤC Một số mã lệnh phát đánh dấu đối tượng đặc trưng cài đặt viết trền Microsoft Visual C# Phát đối tượng chuyển động phương pháp khác biệt thời gian đánh dấu đối tượng chuyển động màu đỏ namespace motion {using System; using System.Drawing; using System.Drawing.Imaging; using AForge.Imaging; using AForge.Imaging.Filters; public class MotionDetector1 : IMotionDetector { private IFilter grayscaleFilter = new GrayscaleBT709( ); private Difference differenceFilter = new Difference( ); private Threshold thresholdFilter = new Threshold( 15 ); private IFilter erosionFilter = new Erosion( ); private Merge mergeFilter = new Merge( ); private IFilter extrachChannel = new ExtractChannel( RGB.R ); private ReplaceChannel replaceChannel = new ReplaceChannel( RGB.R, null ); private private private private private private Bitmap BitmapData bitmapData; bool int int int / Buoc tinh toan chuyen dong hoac khong chuyen dong public bool MotionLevelCalculation { get { return calculateMotionLevel; } set { calculateMotionLevel = value; } } / So luong cac thay doi theo phan tram public double MotionLevel { get { return (double) pixelsChanged / ( width * height ); } } // Buoc xay dung public MotionDetector1( ) { } / Dat lai phat hien cho trang thai khoi tao public void Reset( ) { if ( backgroundFrame != null ) { backgroundFrame.Dispose( ) ; backgroundFrame = null; } } / Xu ly frame moi public void ProcessFrame( ref Bitmap image ) { 61 if ( backgroundFrame == null ) { // Tao anh nen khoi tao backgroundFrame = grayscaleFilter.Apply( image ); / Lay kich thuoc cua anh width = image.Width; height = image.Height; / chi tra ve cho lan dau tien return; } Bitmap tmpImage; // Ap dung cho muc xam cua anh tmpImage = grayscaleFilter.Apply( image ); differenceFilter.OverlayImage = backgroundFrame; Bitmap tmpImage2 = differenceFilter.Apply( tmpImage ); // Chot anh theo thoi gian va ap dung mot cach loc tren co so du lieu chot bitmapData = tmpImage2.LockBits( new Rectangle( 0, 0, width, height ), ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); / loc threshold thresholdFilter.ApplyInPlace( bitmapData ); / loc erosion Bitmap tmpImage3 = erosionFilter.Apply( bitmapData ); //Huy chot tmpImage2.UnlockBits( bitmapData ); tmpImage2.Dispose( ); / Tinh toan so luong cac pixel da thay doi pixelsChanged = ( calculateMotionLevel ) ? CalculateWhitePixels( tmpImage3 ) : 0; / Giai phong nen cu backgroundFrame.Dispose( ); / dat nen lam nen hien thoi backgroundFrame = tmpImage; / Trich rut mau tu anh goc Bitmap redChannel = extrachChannel.Apply( image ); / Tron mau voi doi tuong chuyen dong mergeFilter.OverlayImage = tmpImage3; Bitmap tmpImage4 = mergeFilter.Apply( redChannel ); redChannel.Dispose( ); tmpImage3.Dispose( ); / Thay goi mau anh goc replaceChannel.ChannelImage = tmpImage4; Bitmap tmpImage5 = replaceChannel.Apply( image ); tmpImage4.Dispose( ); image.Dispose( ); image = tmpImage5; } // Tinh toan cac diem anh trang private int CalculateWhitePixels( Bitmap image ) 62 { int count = 0; // Khoa cac anh khac BitmapData data = image.LockBits( new Rectangle( 0, 0, width, height ), ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); int offset = data.Stride - width; unsafe { byte * ptr = (byte *) data.Scan0.ToPointer( ); for ( int y = 0; y < height; y++ ) { for ( int x = 0; x < width; x++, ptr++ ) { count += ( (*ptr) >> ); } ptr += offset; } } / Huy khoa image.UnlockBits( data ); return count; } } } Phát đối tượng chuyển động đánh dấu đường viền xung quanh đối tượng namespace motion { using System; using System.Drawing; using System.Drawing.Imaging; using AForge.Imaging; using AForge.Imaging.Filters; public class MotionDetector3Optimized : IMotionDetector { private byte[] private byte[] private byte[] backgroundFrame = null; currentFrame = null; currentFrameDilatated = null; private int private bool private int private int private int / Buoc tinh toan chuyen dong hoac khong chuyen dong public bool MotionLevelCalculation { get { return calculateMotionLevel; } set { calculateMotionLevel = value; } } / So luong cac thay doi theo phan tram public double MotionLevel { 63 get { return (double) pixelsChanged / ( width * height ); } } // Phan chinh public MotionDetector3Optimized( ) { } / Dat lai phat hien cho trang thai khoi tao public void Reset( ) { backgroundFrame = null; currentFrame = null; currentFrameDilatated = null; counter = 0; } / Xu ly frame moi public void ProcessFrame( ref Bitmap image ) { / Lay kich co cua anh width = image.Width; height = image.Height; int fW = ( ( ( width - ) / ) + ); int fH = ( ( ( height - ) / ) + ); int len = fW * fH; if ( backgroundFrame == null ) { / Cap phat bo nho cho anh nen va anh hien thoi backgroundFrame = new byte[len]; currentFrame = new byte[len]; currentFrameDilatated = new byte[len]; / khoa anh BitmapData imgData = image.LockBits( new Rectangle( 0, 0, width, height ), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); // Tao anh nen khoi tao PreprocessInputImage( imgData, width, height, backgroundFrame ); / Huy khoa image.UnlockBits( imgData ); } / Chi tra ve lan dau tien return; // khoa anh BitmapData data = image.LockBits( new Rectangle( 0, 0, width, height ), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); // Xu ly anh dau vao PreprocessInputImage( data, width, height, currentFrame ); if ( ++counter == ) { counter = 0; / chuyen nen den frame hien thoi for ( int i = 0; i < len; i++ ) { int t = currentFrame[i] backgroundFrame[i]; if ( t > ) 64 backgroundFrame[i]++; else if ( t < ) backgroundFrame[i] ; } } / su khac biet va nguong pixelsChanged = 0; for ( int i = 0; i < len; i++ ) { int t = currentFrame[i] backgroundFrame[i]; if ( t < ) t = -t; if ( t >= 15 ) { pixelsChanged++; currentFrame[i] = (byte) 255; } else { currentFrame[i] = (byte) 0; } } if ( calculateMotionLevel ) pixelsChanged *= 64; else pixelsChanged = 0; / / dan khung No co the bi bo qua for ( int i = 0; i < fH; i++ ) { for ( int j = 0; j < fW; j++ ) { int k = i * fW + j; int v = currentFrame[k]; / cac diem anh trai if ( j > ) { v += currentFrame[k - 1]; } if ( i > ) { v += currentFrame[k - fW - 1]; } if ( i < fH - ) { v += currentFrame[k + fW - 1]; } / cac diem anh phai if ( j < fW - ) { v += currentFrame[k + 1]; if ( i > ) { v += currentFrame[k - fW + 1]; } if ( i < fH - ) { v += currentFrame[k + fW + 1]; } 65 } / diem anh dinh if ( i > ) { v += currentFrame[k - fW]; } / diem anh phai if ( i < fH - ) { v += currentFrame[k + fW]; } currentFrameDilatated[k] = (v != 0) ? (byte) 255 : (byte) 0; } } // Hau xu ly anh dau vao PostprocessInputImage( data, width, height, currentFrameDilatated ); / Huy khoa anh image.UnlockBits( data ); } // Tien xu ly anh dau vao private void PreprocessInputImage( BitmapData data, int width, int height, byte[] buf ) { int stride = data.Stride; int offset = stride - width * 3; int len = (int)( ( width - ) / ) + 1; int rem = ( ( width - ) % ) + 1; int[] tmp = new int[len]; int i, j, t1, t2, k = 0; unsafe { byte * src = (byte *) data.Scan0.ToPointer( ); for ( int y = 0; y < height; ) { / tap hop cac diem anh Array.Clear( tmp, 0, len ); / tinh toan for ( i = 0; ( i < ) && ( y < height ); i++, y++ ) { // Voi moi pixel for ( int x = 0; x < width; x++, src += ) { // su dung gia trị muc xam BT709 tmp[(int) ( x / )] += (int)( 0.2125f * src[RGB.R] + 0.7154f * src[RGB.G] + 0.0721f * src[RGB.B] ); } src += offset; } / Tinh cac gia tri trung binh t1 = i * 8; t2 = i * rem; for ( j = 0; j < len - 1; j++, k++ ) buf[k] = (byte)( tmp[j] / t1 ); buf[k++] = (byte)( tmp[j] / t2 ); } } } // Hau xu ly anh dau vao 66 private void PostprocessInputImage( BitmapData data, int width, int height, byte[] buf ) { int stride = data.Stride; int offset = stride - width * 3; int len = (int)( ( width - ) / ) + 1; int lenWM1 = len - 1; int lenHM1 = (int)( ( height - ) / 8); int rem = ( ( width - ) % ) + 1; int i, j, k; unsafe { byte * src = (byte *) data.Scan0.ToPointer( ); // Voi moi duong for ( int y = 0; y < height; y++ ) { i = (y / 8); // voi moi diem for ( int x = 0; x < width; x++, src += ) { j = x / 8; k = i * len + j; //kiem tra neu can diem noi bat nhat //cua doi tuong chuyn dong if (buf[k] == 255) { // kiem tra vien if (( ( x % == ) && ( ( j == ) || ( buf[k - 1] == ) ) ) || ( ( x % == ) && ( ( j == lenWM1 ) || ( buf[k + 1] == ) ) ) || ( ( y % == ) && ( ( i == ) || ( buf[k - len] == ) ) ) || ( ( y % == ) && ( ( i == lenHM1 ) || ( buf[k + len] == )))) { } } } } } } } } src += offset; src[RGB.R] = 255; ... theo cần thiết ứng dụng sử dụng theo phương pháp sử dụng giải pháp 16 Chương - PHÁT HIỆN, ĐÁNH DẤU VÀ PHÂN LOẠI ĐỐI TƯỢNG CHUYỂN ĐỘNG TRONG VIDEO 2.1 Phát đối tượng Tổng quan phát hiện, phân loại... Cài đặt số phương pháp phát hiện, đánh dấu đối tượng chuyển động dựa theo phương pháp nêu 3 Chương - TỔNG QUAN VỀ XỬ LÝ VIDEO VÀ PHÁT HIỆN ĐỐI TƯỢNG CHUYỂN ĐỘNG 1.1 Tổng quan xử lý Video 1.1.1... tài ? ?Nghiên cứu số phương pháp phát đối tượng chuyển động video ứng dụng? ?? Trong khuôn khổ luận văn này, mục tiêu tơi tìm hiểu bước phát hiện, đánh dấu, phân loại đối tượng chuyển động video so sánh