Nghiên cứu một số phương pháp phát hiện chuyển động trong video và ứng dụng

69 12 0
Nghiên cứu một số phương pháp phát hiện chuyển động trong video và ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 hoà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, qt 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 tiêu chuẩn CCIR (Consultative Committee for International Radio) Bảng1.1 Các tiêu chuẩn Video số CCIR 601525/60 NTSC CCIR 601625/50 PAL/SECAM CIF QCIF Độ phân giải độ chói 720x480 360x576 352x288 176x144 Độ phân giải màu sắc 360x480 360x576 176x144 88x72 Lấy mẫu màu 4:2:2 4:2:2 4:2:0 4:2:0 Số trường /s 60 50 30,15,10,7.5 30,15,10,7.5 Cách dòng Cách dòng Liên tục Liên tục 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 toá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, Cr, 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 720 Số dòng lớn ảnh 576 Số ảnh giây 30 Số MB ảnh 396 Số MB giây 9900 Tốc độ bit tối đa Kích thước đệm giải nén tối đa 1.86 Mbps 376.832 bits 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 MPEG-4 phát triển cho tốc độ bit thấp từ 4.8 đến 68 kbps, nhiên sau nâng tốc độ lên đáng kể - Video: 5kbps đến 10 Mbps - Audio: 2kbps đến 64 kbps Dạng chuẩn nhằm hỗ trợ phát triển riêng cho đối tượng khác tạo khả thích nghi, linh động để cải thiện chất lượng dịch vụ như: tivi số, đồ họa trình diễn, World Wide Web, videophone mở rộng chúng MPEG-4 gọi chuẩn ISO/IEC 14496 Chuẩn Video MPEG-7 Được thừa nhận thành tiêu chuẩn quốc tế tháng 7/2001 MPEG-7 đề xuất cho việc tìm kiếm, chọn lựa, quản lý phân tích thơng tin đa phương tiện, khơng tập trung vào ứng dụng cụ thể, tiêu chuẩn mã hóa thực cho Audio, Video hay multimedia MPEG-7 dạng phát triển lên từ phiên MPEG-1 phát triển MPEG-7 cung cấp tập hợp đầy đủ cơng cụ chuẩn hóa để mơ tả nội dung đa phương tiện Cả người dùng hệ thống tự động xử lý hệ âm thực thuộc phạm vi MPEG-7 Ngoài ra, tổ chức chuẩn ITU-T (International Telecommunication Union) đưa số chuẩn cho Video sau: Chuẩn H.120 H.120 chuẩn cho việc mã hóa video kĩ thuật số đưa vào năm 1984 H.120 chạy với tốc độ 1544kbit/s cho NTSC 2048 cho PAL Chuẩn Video H.261 H.261 phát triển cho dịch vụ truyền hình hội nghị Video phone qua ISDN tốc độ px64kbps/s (p=1, 2, …,30), H.261 làm sở cho chuẩn nén sau MPEG 1, H.261 sử dụng dạng thức trung gian CIF (Common Intermediate Format) với tốc độ bit thấp hơn, sử dụng dạng có tốc độ nhỏ ¼ QCIF (Quadrature) Với tốc độ 30 khung hình/s tốc độ liệu CIF 37.3 Mbps, QCIF 9.35 Mbps Tốc độ thấp giảm số khung hình/s Tín hiệu video phân thành lớp, lớp có header để định nghĩa tham số sử dụng mã hóa tạo dịng bit Lớp ảnh phân thành 52 Hình 3.4: Ảnh 3.2.3 Một số hình ảnh phát đánh dấu đối tượng chuyển động Hình 3.5: Phát đánh dấu vùng đối tượng chuyển động 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à tơi 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 real-time 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 non-rigid 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 Multi-Object 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 objectbased 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 real-time 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 non-rigid 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 Bitmap backgroundFrame; private BitmapData bitmapData; private bool calculateMotionLevel = false; private int width; // image width private int height; // image height private int pixelsChanged; // 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[] backgroundFrame = null; private byte[] currentFrame = null; private byte[] currentFrameDilatated = null; private int counter = 0; private bool calculateMotionLevel = false; private int width; // image width private int height; // image height private int pixelsChanged; // 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 t1 = i * 8; t2 = i * rem; for ( j = 0; j < len - 1; buf[k] = (byte)( tmp[j] / buf[k++] = (byte)( tmp[j] } } } // Hau xu ly anh dau vao binh j++, k++ ) t1 ); / t2 ); 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); if (( ( ( x ( ( y ( ( y ( % % % x 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 ( ( j == ) || ( buf[k - 1] == ) ) ) || j == lenWM1 ) || ( buf[k + 1] == ) ) ) || i == ) || ( buf[k - len] == ) ) ) || i == lenHM1 ) || ( buf[k + len] == )))) { src[RGB.R] = 255; } } } src += offset; ... 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

Ngày đăng: 16/03/2021, 11:29

Mục lục

    1.1. Tổng quan về xử lý Video

    1.1.1. Sơ lược về Video

    1.2. Một số vấn đề cơ bản trong xử lý Video

    1.2.1. Phát hiện đối tượng chuyển động trong Video

    1.2.2. Phân loại đối tượng trong video

    1.2.3. Phát hiện ánh sáng

    1.2.4. Đánh dấu đối tượng

    2.1. Phát hiện đối tượng

    2.1.1. Phát hiện nổi trội

    2.1.2. Bước hậu xử lý điểm ảnh