Chương 1: TỔNG QUAN HỆ THỐNG GIÁM SÁT SỬ DỤNG KỸ THUẬT PHÂNTÍCH THÔNG MINH TÍN HIỆU VIDEOTrình bày tổng quan hệ thống giám sát thông minh, các loại hình phổ biến của hệ thống video thông minh, sơ đồ khối của một hệ thống video thông minh cơ bản đồng thời giới thiệu ứng dụng mà đề tài hướng đến.Chương 2: TRÍCH ĐỐI TƯỢNG Trình bày khối trích đối tượng với các kỹ thuật được sử dụng là trừ nền và phương pháp hình thái toán học.Chương 3: BÁM ĐUỔI, TRÍCH THUỘC TÍNH VÀ PHÂN TÍCHBám đuổi đối tượng và trích các thuộc tính liên quan đến các đặc điểm té ngã của đối tượng, sau đó phân tích các khả năng kết hợp thuộc tính để kết luận té ngã.Chương 4: CHƯƠNG TRÌNH VÀ KẾT QUẢPhân tích lưu đồ giải thuật và viết chương trình cho hệ thống, kết quả mô phỏng và nhận xét, hiệu suất tổng quát về toàn bộ quá trình trong các trường hợp khi chưa được cải tiến và khi đã được cải tiến.Phương pháp nghiên cứu xuyên suốt đồ án tốt nghiệp này là tìm hiểu và rút ra các thuật toán cơ bản từ các tài liệu báo chí đáng tin cậy, ở Việt Nam cũng như trên thế giới. Sau khi đã có được những kết quả ban đầu, tiếp tục đi sâu phân tích các ưu, khuyết điểm của hệ thống và tìm cách khắc phục: ở đây là việc đẩy nhanh tốc độ xử lý của hệ thống cũng như nâng cao hiệu suất của cả hệ thống.
LỜI NÓI ĐẦU Nếu tuổi già thách thức nhân loại tai nạn té ngã người già lại thách thức lớn ngành y tế Tai nạn té ngã người già nguy hiểm thường gây chấn thương nghiêm trọng dẫn đến tử vong không phát kịp thời Ở nước ta, ước tính số người 65 tuổi vào năm 2009 khoảng 7% (khoảng 5,81 triệu người) theo khảo sát Tổ chức Y tế giới có tới 28 – 35% người 65 tuổi bị té năm Như Việt Nam, có khoảng 1,6 đến triệu người cao tuổi bị té ngã lần năm [1] Phát tai nạn té ngã hệ thống phát cảnh báo té ngã để trợ giúp người gặp tai nạn cần thiết để tránh hậu đáng tiếc Giải pháp đơn giản sử dụng thiết bị cảnh báo đặt vị trí thuận tiện thể để người ta ấn nút kích hoạt cảnh báo bị ngã Thực tế thiết bị hỗ trợ người già ngã đau tim đột quỵ Lúc thiết bị phát té ngã tự động sử dụng cảm biến vận tốc, gia tốc có ý nghĩa vô thiết thực Tuy nhiên, nhược điểm không thoải mái với người già phải mang chúng người Để giải khó khăn nêu trên, giải pháp đề xuất triển khai năm gần đây, sử dụng hệ thống giám sát ứng dụng kỹ thuật phân tích thông minh tín hiệu video Khi hệ thống làm việc, hoạt động đối tượng ghi hình xử lý Việc phân tích nội dung video thực hoàn toàn tự động máy tính phát có tai nạn té ngã, đầu hệ thống đưa cảnh báo với độ xác cao Với mục đích ý nghĩa đó, nhiều hệ thống video thông minh phát té ngã đời có nhiều ứng dụng quan trọng giúp ích cho đời sống đại Trên sở phát triển ưu điểm hệ thống video đó, đồng thời nhằm cải tiến khuyết điểm tồn tại, đề tài em nghiên cứu tiếp tục nằm mạch ý tưởng hệ thống ưu việt lĩnh vực Với không gian hệ thống thường không gian nhà tĩnh lặng, vật thể chuyển động, đối tượng phát phương pháp trừ bám đuổi phổ biến Bên cạnh đó, việc phát hành vi té ngã đối tượng tối ưu đạt hiệu suất cao thông qua việc bổ sung thêm thông số chuyển động cách khảo sát chuyển động, bước đầu tiền hành nghiên cứu ứng dụng thuật toán tin cậy từ tài liệu quốc tế, em xây dựng hệ thống phân tích video hoàn chỉnh, đặc biệt tỉ lệ phát hành vi té ngã hệ thống cao Bố cục đồ án em chia làm chương sau: Chương 1: TỔNG QUAN HỆ THỐNG GIÁM SÁT SỬ DỤNG KỸ THUẬT PHÂN TÍCH THÔNG MINH TÍN HIỆU VIDEO Trình bày tổng quan hệ thống giám sát thông minh, loại hình phổ biến hệ thống video thông minh, sơ đồ khối hệ thống video thông minh đồng thời giới thiệu ứng dụng mà đề tài hướng đến Chương 2: TRÍCH ĐỐI TƯỢNG Trình bày khối trích đối tượng với kỹ thuật sử dụng trừ phương pháp hình thái toán học Chương 3: BÁM ĐUỔI, TRÍCH THUỘC TÍNH VÀ PHÂN TÍCH Bám đuổi đối tượng trích thuộc tính liên quan đến đặc điểm té ngã đối tượng, sau phân tích khả kết hợp thuộc tính để kết luận té ngã Chương 4: CHƯƠNG TRÌNH VÀ KẾT QUẢ Phân tích lưu đồ giải thuật viết chương trình cho hệ thống, kết mô nhận xét, hiệu suất tổng quát toàn trình trường hợp chưa cải tiến cải tiến Phương pháp nghiên cứu xuyên suốt đồ án tốt nghiệp tìm hiểu rút thuật toán từ tài liệu báo chí đáng tin cậy, Việt Nam giới Sau có kết ban đầu, tiếp tục sâu phân tích ưu, khuyết điểm hệ thống tìm cách khắc phục: việc đẩy nhanh tốc độ xử lý hệ thống nâng cao hiệu suất hệ thống LỜI CẢM ƠN Em xin chân thành cảm ơn TS Trần Thị Hương, giảng viên khoa Điện tử Viễn thông, tận tình hướng dẫn giúp đỡ em thời gian thực đề tài trên, không việc hoàn thành đồ án tốt nghiệp mà công việc viết báo khoa học cho Đại học Đà Nẵng cho hội nghị khoa học quốc tế Em xin chân thành cảm ơn thầy cô giảng viên khoa Điện tử viễn thông truyền đạt kiến thức hữu ích cho chúng em suốt năm vừa qua, làm sở để chúng em hoàn thành đồ án Mặc dù cố gắng tránh khỏi sai sót đồ án Em mong nhận thông cảm góp ý tận tình từ thầy cô Sinh viên Mai Bảo Lê Hoàng MỤC LỤC LỜI CAM ĐOAN………………………………………………………………………… MỤC LỤC………………………………………………………………………………… DANH MỤC CÁC TỪ VIẾT TẮT……………………………………………………… DANH MỤC HÌNH VẼ………………………………………………………………… DANH MỤC BẢNG BIỂU……………………………………………………………… LỜI NÓI ĐẦU…………………………………………………………………………… LỜI CẢM ƠN…………………………………………………………………………… Chương 1: TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT SỬ DỤNG KỸ THUẬT PHÂN TÍCH VIDEO THÔNG MINH 1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.5 1.6 Giới thiệu chương………………………………………………………… Phân loại hệ thống té ngã……………………………………………….1 Hệ thống phát té ngã dựa vào âm Hệ thống phát té ngã dựa vào thiết bị cảm biến Hệ thống phát té ngã dựa vào video Tổng quan hệ thống giám sát sử dụng video……………………………… Hệ thống giám sát video Hệ thống giám sát thông minh video Sơ đồ khối tống quát hệ thống video thông minh……………………….6 Khối trích đối tượng Khối bám đuổi đối tượng Khối trích thuộc tính Khối nhận dạng Một số ứng dụng hệ thống video thông minh…………………………11 Kết luận chương……………………………………………………………13 Chương 2: TRÍCH ĐỐI TƯỢNG 2.1 Giới thiệu chương…………………………………………………………14 2.2 Tổng quan trích đối tượng…………………………………………… 14 2.3 Tổng quan phương pháp trừ nền……………………………………….16 2.4 Kết thực nghiệm phương pháp trừ nền……………………………17 2.5 Lọc đối tượng phương pháp hình thái toán học…………………… 19 2.5.1 Giới thiệu phương pháp hình thái toán học 2.5.2 Thực MM xử lý ảnh 2.6 Kết luận chương………………………………………………………….20 Chương 3: BÁM ĐUỔI ĐỐI TƯỢNG, TRÍCH THUỘC TÍNH VÀ PHÂN TÍCH 3.1 Giới thiệu chương…………………………………………………………….22 3.2 Bám đuổi đối tượng………………………………………………………… 22 3.3 Giới thiệu thuộc tính dùng để phát té ngã……………………… 23 3.4 Tọa độ trọng tâm đối tượng……………………………………………… 24 3.5 Định dạng Elip bao quanh đối tượng…………………………………………24 3.5.1 Góc đứng đối tượng 3.5.2 Xác định trọng tâm đối tượng 3.5.3 Xác định độ lớn hai bán trục 3.5.4 Định vị Elip 3.6 Phân tích thuộc tính dùng để phát té ngã……………………………26 3.6.1 Góc tức thời đối tượng 3.6.2 Tốc độ chuyển động đối tượng 3.6.3 Tốc độ thay đối góc đứng đối tượng 3.6.4 Độ lệch tâm tức thời Elip 3.6.5 Tốc độ thay đổi trọng tâm đối tượng theo phương thẳng đứng 3.7 Phân tích khả kết hợp thuộc tính……………………………….28 3.8 Kết luận chương…………………………………………………………… 29 Chương 4: CHƯƠNG TRÌNH VÀ KẾT QUẢ 4.1 Giới thiệu chương…………………………………………………………….31 4.2 Cấu trúc chương trình……………………………………………………… 31 4.2.1 Cấu trúc chương trình 4.2.2- 4.2.7 Lưu đồ thuật toán 4.3 Kết nhận xét………………………………………………………… 47 4.4 Kết luận chung hướng phát triển đề tài……………………………………48 PHỤ LỤC: Một số đoạn code chương trình mô Tài liệu tham khảo DANH MỤC HÌNH VẼ Hình 1.1 – Các vị trí đặt cảm biến thể người Hình 1.2 – Sơ đồ khối hệ thống Hình 1.3 – Các phương pháp bám đuổi đối tượng Hình 1.4 – Quá trình xử lý hệ thống giám sát thông minh video 10 Hình 2.1 – Ví dụ mô tả bước thực khối trích đối tượng 15 Hình 2.2 – Thực thuật toán Frame Differencing video VN-SIN-VE_02.avi 18 Hình 2.3 – Thực thuật toán Frame Differencing video Leavy.avi 18 Hình 2.4 – Các phần tử cấu trúc 19 Hình 2.5 – Ví dụ hai phép toán Morphology .20 Hình 2.6 – Ví dụ phép Opening với phần tử cấu trúc hình vuông có 20 điểm ảnh 21 Hình 2.7 – Ví dụ phép Closing với phần tử cấu trúc hình vuông có 20 điểm ảnh… 21 Hình 3.1 – Miền xác định góc θ 25 Hình 3.2 – Đối tượng với hình elip bao quanh 26 Hình 3.3 – MHI chuyển động bước 27 Hình 4.1 – Lưu đồ thuật toán chương trình 33 Hình 4.2 – Lưu đồ thuật toán phương thức học 34 Hình 4.3 – Lưu đồ thuật toán phương thức trích đối tượng 35 Hình 4.4 – Lưu đồ thuật toán phương thức phân tích chuyển động 36 Hình 4.5 – Lưu đồ thuật toán phương thức vẽ elip 37 Hình 4.6 – Lưu đồ thuật toán phương thức phân tích tổng hợp 38 Hình 4.7 – FallAngleThreshold góc thỏa mãn θ điều kiện 39 Hình 4.8 – Lưu đồ thuật toán xác định trọng tâm đối tượng 40 Hình 4.9 – Các cửa sổ hiển thị chạy chương trình 47 DANH MỤC BẢNG BIỂU Bảng 2.1- Kết thực nghiệm sử dụng thuật toán Frame Differencing……………18 Bảng 4.1- Kết nhận dạng té ngã TH1…………………………………………… 46 Bảng 4.2- Kết nhận dạng té ngã TH2…………………………………………… 47 DANH MỤC CÁC TỪ VIẾT TẮT MHI Motion History Image MM Mathematical Morphology NF Negative False PF Positive False TH1 Trường hợp TH2 Trường hợp R Right SE Structuring Element Chương 1: TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT SỬ DỤNG KỸ THUẬT PHÂN TÍCH THÔNG MINH TÍN HIỆU VIDEO 1.1 Giới thiệu chương Ngày nay, người nhận thấy việc phát kịp thời tai nạn té ngã người già bước quan trọng để tránh chấn thương nặng Một hệ thống phát té ngã tự động giải vấn đề cách giảm thiểu tối đa khoảng thời gian từ lúc xảy tai nạn đến có yêu cầu trợ giúp 1.2 Phân loại hệ thống phát té ngã Hiện nay, hệ thống phát té ngã [2] phát triển dựa ba loại kỹ thuật phổ biến sau: - Phát té ngã dựa vào âm (Acoustic Based Fall Detection) - Phát té ngã dựa vào thiết bị cảm biến mang người (Wearable Sensor Based Fall Detection) - Phát té ngã dựa vào video (Video Based Fall Detection) 1.2.1 Hệ thống phát té ngã dựa vào âm Hệ thống phát té ngã dựa vào âm bao gồm mảng microphone thiết bị phát chuyển động Thành phần quan trọng hệ thống phần mềm phân loại kiện tai nạn té ngã hoạt động sinh hoạt thường ngày dựa tín hiệu âm phát từ Tuy nhiên, để thực điều không đơn giản: thấy té ngã hành động bất thường có kho ảng mười trường hợp té ngã khác Hơn nữa, té ngã lại xảy môi trường sinh hoạt thực dễ bị nhầm lẫn với tiếng ồn xung quanh rơi đồ vật, di chuyển ghế, đóng cửa bước đi… Vì thế, khả cảnh báo xác hệ thống không cao 1.2.2 Hệ thống phát hiên té ngã dựa vào thiết bị cảm biến Loại hệ thống hoạt động dựa vào thiết bị cảm biến nhỏ gắn quần áo, thắt lưng… (hình 1.1) để theo dõi thông số chuyển động thể người thời gian thực xác định thời điểm xảy té ngã dựa việc phân tích thông số 4.4 Cơ sở liệu kết 4.4.1 Cơ sở liệu Chương trình hoạt động chế độ: xử lý liệu sẵn có (offline) Nhóm liệu thời gian thực video ghi webcam máy tính đồng thời đưa vào hệ thống để xử lý tức thời Tuy nhiên, để chuẩn bị cho giai đoạn kiểm tra đánh giá mức độ xác chương trình, em tiến hành xây dựng sở liệu với 65 đoạn video [12] có 35 video ghi hình động tác té, ngã dàn dựng giống với thực tế 30 video ghi lại hoạt động sinh hoạt bình thường có khả bị nhầm lẫn với tư người bị ngã Phần phân tích cụ thể thông số đặc tính phân loại nội dung sở liệu Thông số kỹ thuật thiết bị ghi hình: - Trường hợp xử lý offline: sử dụng chức quay phim máy ảnh kỹ thuật số Sony Cyber–shot DSC–N1 có độ phân giải 8.1 triệu điểm ảnh (Megapixels) Phân loại: Cơ sở liệu nhóm xây dựng gồm có 65 tập tin video phân chia thành nhóm dựa vào nội dung, là: nhóm 35 video ghi hình động tác té ngã dàn dựng giống với thực tế (Fall) nhóm 30 video ghi lại hoạt động sinh hoạt bình thường có khả bị nhầm lẫn với tư người bị ngã (Non–fall) Các đoạn video với thời lượng trung bình 17s ghi hình tư té ngã người hoạt động bình thường người khác nhau, cụ thể bảng 4.1 Sử dụng 15 video để huấn luyện cho hệ thống 50 video để kiểm tra kết nhận dạng Trong đó: - Front Fall: Các động tác té, ngã mà người tư nằm sấp hướng phía trước - Back Fall: Ngược lại với trường hợp Front Fall, Back Fall kiểu té mà người ngã phía sau - Side Fall: Kiểu ngã nghiêng người phía bên trái bên phải - Hidden Fall: Trường hợp bị ngã, đối tượng bị che khuất phần thể vật dụng phòng - Rolled Fall: Động tác ngã người nằm giường vô tình té lăn xuống bên - Stair Fall: Tư người cầu thang bị trượt chân ngã 4.4.2 Kết thực nghiệm Phần mềm: Microsoft Visual C++ 2010 Express thư viện OpenCV2.1 Mô tả hệ thống thực thi chương trì.nh: Khi chạy chương trình, hình xuất cửa sổ hình 4.10, gồm: - Original Video: Cửa sổ hiển thị đoạn video đầu vào hệ thống - Motion: Xuất khung ảnh xám MHI Ở chế độ Debug cửa sổ xuất số điểm ảnh trắng, số điểm ảnh đen tốc độ chuyển động đối tượng để thuận tiện cho việc khảo sát - Silhouette: Cửa sổ hiển thị bóng đối tượng quan sát - Silhouette With Elipse: Ở cửa sổ này, bóng đối tượng đặt vào hình elip với kích thước phù hợp Trên khung hình thể giá trị thuộc tính: góc đứng tức thời đối tượng (current Angle), tốc độ thay đổi góc đứng đối tượng (C Theta), độ lệch tâm tức thời elip (Eccentricity), tốc độ thay đổi trọng tâm đối tượng theo phương thẳng đứng (CCentroid) Với cử động hay hành động bình thường hệ thống không phát cảnh báo, cửa sổ Original Video có dòng chữ NORMAL (bình thường) màu xanh đoạn video Khi hệ thống phát có tai nạn té, ngã thông qua tính toán so sánh thông số Kết phân tích, đánh giá hệ thống: Sau đưa sở liệu gồm video tự quay Ở bước kiểm tra đầu tiên, chọn ngẫu nhiên 30 video khác từ sở liệu thực chương trình Với chương trình toàn thuật toán thiết kế theo trình tự thời gian người lập trình chưa sử dụng đến thông số Cmotion Kết chạy chương trình thể bảng sau: Nhóm video Nhận dạng FALL NONFALL Total Nhận dạng sai Sai tiêu cực Sai tích cực 12/15 11/15 1/15 1/15 2/15 3/15 23/30 2/15 5/15 Bảng 4.1 – Kết nhận dạng té ngã TH1 Với kết trên, ta thấy hiệu suất làm việc hệ thống ban đầu có dấu hiệu tốt khả nhận dạng chiếm 76.67%, cao so với mục tiêu đặt ban đầu 70% Tuy nhiên, từ bảng trên, mục Nhận dạng sai, ta thấy tỉ lệ sai tiêu cực cao hẳn so với tỉ lệ sai tích cực Điều yêu cầu thông số cuối Cmotion mà ta đề cập để cải thiện khả làm việc hệ thống Sử dụng chương trình theo trình tự ngược lại thời gian, khung hình xét khung hình có cố xảy ra, tính ngược trở lại khung hình lưu MHI, kết hợp việc khảo sát thêm thông số Cmotion khung hình Ta sử dụng toàn sở liệu 65 video khác để thực chạy thu kết sau: Nhóm video FALL NON-FALL Nhận dạng 22/25 20/25 Nhận dạng sai Sai tiêu cực Sai tích cực 1/25 0/25 2/25 5/25 Tổng cộng 42/50 1/50 7/50 Bảng 4.2- Kết nhận dạng té ngã TH2 Kết thống kê Bảng 4.2 cho thấy tỉ lệ nhận dạng xác 84% cao, tỉ lệ cao nhiều so với mục tiêu đề ban đầu nhóm nhận dạng khoảng 70% - Tỉ lệ nhận dạng sai thấp, chiếm 16% tỉ lệ nhận dạng sai tiêu cực chiếm (6%) Nhận dạng sai thông thường phân chia thành loại nhận dạng sai tiêu cực (Negative False) nhận dạng sai tích cực (Positive False) Đối với hệ thống phát tai nạn té, ngã trường hợp có xảy tai nạn té ngã mà hệ thống không phát không đưa cảnh báo xem Negative False Ngược lại, hoạt động đối tượng giám sát hoạt động sinh hoạt bình thường mà hệ thống lại bị nhầm lẫn tai nạn té, ngã đưa cảnh báo Positive False Đối với hệ thống giám sát dành cho người cao tuổi, trường hợp Negative False đặc biệt cần giảm đến mức mức thấp thể trạng người cao tuổi phần lớn nên xảy té ngã mà không phát kịp thời dẫn đến tác động xấu cho sức khỏe Như vậy, nói ưu điểm bật hệ thống trường hợp Negative False chiếm tỉ lệ thấp 4.5 Nhận xét Từ kết thực nghiệm (bảng 4.2), ta thấy khả nhận dạng xác chương trình cao (84%) Đặc biệt, toàn trường hợp phát nhầm nhận dạng sai tích cực (Positive Fall), không gây thiệt hại lớn có phát sai Và điều quan trọng, chương trình giảm đến mức tối đa trường hợp sai tiêu cực (Negative Fall) Ngoài ra, ưu điểm quan trọng toàn chương trình xây dựng ngôn ngữ C++, với đặc điểm bật thời gian tính toán nhanh so với ngôn ngữ thông dụng khác (như Matlab) Nhờ đó, hệ thống sử dụng chương trình làm việc thời gian thực Đó yêu cầu hệ thống giám sát phát tai nạn té ngã mà ta xây dựng Hơn nữa, thay lập trình theo kiểu cấu trúc truyền thống, hệ thống sử dụng phương pháp lập trình hướng đối tượng Điều giúp chương trình trực quan, linh hoạt dễ dàng phát triển Bên cạnh đó, với việc tối ưu thuật toán chương trình cách sử dụng đến thuộc tính để phát té ngã (so với thuộc tính [8]), hệ thống phát hầu hết tư té ngã với camera giám sát (so với camera mà hệ thống [8] sử dụng) Điều giúp giảm giá thành sản phẩm, yếu tố quan trọng giúp sản phẩm tồn thị trường Tuy nhiên, điểm hạn chế chương trình chưa hoàn chỉnh bước ước lượng nền, xác định cách cho máy tính chọn khung hình ổn định chưa có đối tượng vào để làm Vì chương trình sử dụng môi trường tĩnh, chuyển động yếu tố ngoại cảnh Kết mô chương trình: Hình 4.9.- Các cửa sổ hiển thị chạy chương trình KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Phát tai nạn té ngã người cao tuổi sử dụng kỹ thuật phân tích thông minh tín hiệu video hệ thống có tính thực tiễn cao, ứng dụng sống hàng ngày để giúp đỡ cho công tác chăm sóc sức khỏe người già Kết đạt đồ án này: - Đã trích bám đuổi đối tượng khỏi có sẵn - Trích thuộc tính đối tượng - Xây dựng sở liệu để kiểm tra thực nghiệm với 65 đoạn video, tốc độ khung hình 30 fps - Có thể sử dụng camera để phát té ngã theo thời gian thực, nhiên dùng webcam cần phải điều chỉnh lại mức ngưỡng tốc độ khung hình webcam tương đối thấp - Chương trình viết lập trình C++ hướng đối tượng nên thời gian thực tương đối nhanh, đáp ứng thời gian thực Tuy nhiên, đồ án hạn chế như: - Nền dùng để phân tích thông minh phải tĩnh, thật học sẵn vài khung hình - Thuật toán trừ để trích đối tượng với trị tuyệt đối hiệu độ sáng khung hình tương đối đơn giản nên đối tượng trích bị khuyết, đôi lúc ảnh hưởng đến kết phân tích Trên sở vấn đề làm chưa làm trên, nhóm chúng em mong muốn đề tài phát triển lên cao theo hướng sau: - Sử dụng liên tục nhiều camera webcam xây dựng hệ thống rộng lớn hơn, camera chia sẻ liệu để bám đuổi, theo dõi người qua nhiều không gian phục vụ cho nhiều mục đích khác lĩnh vực đời sống TÀI LIỆU THAM KHẢO [1] BS Đồng Ngọc Khanh, “Phòng tránh tai nạn té ngã người cao tuổi,” Bệnh viện Hoàn Mỹ Sài G.n, 2009 [2] Nguyễn Xuân Tường Huy, Nguyễn Hoàng Vũ, “T.m hiểu kỹ thuật phát người video giám sát lớp học,” Đại học Khoa học tự nhiên – Đại học Quốc gia TP HCM, 2010, pp 10 – 17 [3] C Lin and Z Ling, “Automatic Fall Incident Detection in Compressed Video for Intelligent Homecare”, in Proc ICCCN, 2007, pp.1172-1177 [4] D Pava, “Object detection in low resolution video sequences”, Master thesis defense, Florida Atlantic University, 2009 [5] Gary Bradski and Adrian Kaehler, “Learning OpenCV,” O'Reilly Media, September 2008 [6] Q Zhou and J.K Aggraval, “Tracking and classifying moving objects from video,” Proceedings of 2nd IEEE Int Workshop on Performance Evaluation of Tracking and Surveillance (PETS’2001), Kauai, Hawaii, USA, 2001 [7] Rafael C Gonzalez, Richard E Woods, “Digital Image Processing,” Prentice Hall, 3rd edition, 2008 [8]William Brendel and Sinisa Todorovic, “Video Object Segmentation by Tracking Regions,” in Proc Of IEEE International Conference on Computer Vision (ICCV), Kyoto, Japan, 2009 [9] Y Benezeth, P.M Jodoin, B Emile, H Laurent, C Rosenberger, “Review and evaluation of commonly-implemented background subtraction algorithms,” et al (2008), 2008 19th International Conference on Pattern Recognition [10] YingLi Tian, “Class 2: Moving object detection,” Video Surveillance E6998-007 Senior/Feris/Tian, Columbia University, Spring 2008 [11] http://opencv.willowgarage.com/wiki/ [12] Đồ án tốt nghiệp “Ứng dụng kỹ thuật phân tích thông minh tín hiệu video để phát tai nạn té ngã người cao tuổi”, khoa Điện tử viễn thông năm 2006 PHỤ LỤC: Một số đoạn code // IVA_CAM.cpp : Defines the entry point for the console application #include #include #include #include #include #include #include "stdafx.h" "Define.h" #include #include #include #include //#include #include using namespace std; #include "Block.h" #include "Frame.h" #include "IVA.h" int main(int argc, char* argv[]) { IVA VIDEO(argv[1]); VIDEO.Play_Video(); #ifdef WAIT_GETCHAR_CMD_WINDOW getchar(); #endif return 0; } // C centroid cpp: defines and count C_cen in the video float Calc_MeanCen() { float CCen_temp = ; if (this->b_USE_CAM) { for (int i = ; i < (NUMBER_OF_CENTROID>>1); i++) { CCen_temp += (float) (*(this->CenPosSeq + i)); } return (CCen_temp/(NUMBER_OF_CENTROID>>1)); } else { for (int i = ; i < NUMBER_OF_CENTROID; i++) { CCen_temp += (float) (*(this->CenPosSeq + i)); } return (CCen_temp/NUMBER_OF_CENTROID); } } //Block Class class Block { public : int i_Width; int i_Height; int i_Weight; #ifndef USE_COLOR int *ipointer_Block_Value; #else int *ipointer_Block_Value_Red; int *ipointer_Block_Value_Green; int *ipointer_Block_Value_Blue; #endif //bool b_UsingColorVideo; public : Block(int Cus_Width, int Cus_Height, int Cus_Weight) // constructor { i_Width = Cus_Width; i_Height = Cus_Height; i_Weight = Cus_Weight; #ifdef USE_COLOR // Use color video ipointer_Block_Value_Red = new int[Cus_Width*Cus_Height]; ipointer_Block_Value_Green = new int[Cus_Width*Cus_Height]; ipointer_Block_Value_Blue = new int[Cus_Width*Cus_Height]; //b_UsingColorVideo = true; #else // Don't use color video ipointer_Block_Value = new int[Cus_Width*Cus_Height]; //b_UsingColorVideo = false; #endif } //Block_candicate.cpp: float Calc_CCentroid() { float MeanCen = Calc_MeanCen(); float CCen_temp = ; if (this->b_USE_CAM) { for (int i = ; i < (NUMBER_OF_CENTROID>>1); i++) { CCen_temp += ((float) pow(*(this->CenPosSeq + i) - MeanCen, (float) 2.0 )); } CCen_temp = CCen_temp / (NUMBER_OF_CENTROID>>1); } else { for (int i = ; i < NUMBER_OF_CENTROID; i++) { CCen_temp += ((float) pow(*(this->CenPosSeq + i) - MeanCen, (float) 2.0 )); } CCen_temp = CCen_temp / NUMBER_OF_CENTROID; } return ((float) pow (CCen_temp, (float) 0.5) ); } float Intra_block_mean() { int i,j; int Width_temp = this->i_Width; int Height_temp = this->i_Height; float M=0; for(i=0;ii_Width; int Height_temp = this->i_Height; float S=0; for(i=0;ii_Width; int Height_temp = Previous_Block->i_Height; float C=0; for(i=0;iIntra_block_mean())*((*Current_Block>ipointer_Block_Value + i * Width_temp + j)-Current_Block>Intra_block_mean())); } } C=C/(Previous_Block->Standa_deviation()*(Current_Block>Standa_deviation())); return C; } float MAD_Coefficients(Block *Previous_Block, Block *Current_Block) { int i,j; int Width_temp = Previous_Block->i_Width; int Height_temp = Previous_Block->i_Height; float MAD=0; for(i=0;iipointer_Block_Value + i * Width_temp + j)))); } } MAD=MAD/(Width_temp*Height_temp); return MAD; } //Draw Ellipse.cpp: #include "FittingEllipse.h" void DrawEllipse() { Param Pr; Point Cen; CvScalar Color; Color.val[0] = 255; int White_Count= 0; this->HasEllipse = false; White_Count=Count_WhitePixel(); if (White_Count>ThresPixel) { this->HasEllipse = true; Cen = Get_Centroid(); Pr = Get_EllipseParameters(Cen); this->CurrentAngle = Pr.theta * 180 / (float) M_PI; this->yCentroid = Cen.y; #ifndef DEBUG //cvEllipse(this->Image, cvPoint(Cen.x, Cen.y), cvSize(Pr.a, Pr.b), -Pr.theta*180/M_PI, 0, 360, Color, 2, 8, 0); cvEllipse(this->Image, cvPoint(Cen.x, Cen.y), cvSize(Pr.a, Pr.b), Pr.theta*180/M_PI, 0, 360, Color, 2, 8, 0); #else //#ifdef DEBUG // // // // // // int w_x, w_y; float rad; // cout height) // { // cvSet2D(this->Image, w_y, w_x, Color); // } // } // cout Image, cvPoint(Cen.x, Cen.y), cvSize(Pr.a, Pr.b), Pr.theta*180/M_PI, 0, 270, Color, 2, 8, 0); int delta_x, delta_y; if (fabsf(tan(Pr.theta)) < 1) { delta_x = ThresMajorRadius; delta_y = (int) delta_x * tan(Pr.theta); } else { delta_x = (int) ThresMajorRadius/ tan(Pr.theta); delta_y = ThresMajorRadius; } cvLine(this->Image, cvPoint((int) (Cen.x + delta_x), Cen.ydelta_y), cvPoint((int) (Cen.x - delta_x), Cen.y+delta_y), cvScalar(255), 1, 8, 0); //int MinorRadius = (int) ThresMinorRadius*tan((float)M_PI/2 Pr.theta); if (fabsf(tan((float)M_PI/2 - Pr.theta)) > 1) { delta_y = ThresMinorRadius; delta_x = (int) delta_y / tan((float)M_PI/2 - Pr.theta); } else { delta_y = (int) ThresMinorRadius * tan((float)M_PI/2 Pr.theta); delta_x = ThresMinorRadius; } cvLine(this->Image, cvPoint((int) (Cen.x - delta_x), Cen.y delta_y), cvPoint((int) (Cen.x + delta_x), Cen.y + delta_y), cvScalar(255), 1, 8, 0); /// Print Theta Angle /// char *Str_Count = new char[100]; CvFont font; double hScale=.5; double vScale=.5; int lineWidth=1; cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, hScale,vScale,0,lineWidth); char *Str_Print = "Rotation Angle"; sprintf(Str_Count,"%0.3f",Pr.theta*180/M_PI); cvPutText(this->Image, Str_Print, cvPoint(5, 15), &font, Color); cvPutText(this->Image, Str_Count, cvPoint(20, 30), &font, Color); /////////////////// #endif } } [...]... một góc nghiêng nhỏ ,và do đó chương trình phát hiện sẽ không được kích hoạt, tai nạn sẽ không được phát hiện 1.2.3 Hệ thống phát hiện té ngã dựa vào video Trong hệ thống phát hiện té ngã dựa vào video, mọi hoạt động con người trong video được ghi hình lại, sau đó được phân tích dùng kỹ thuật xử lý ảnh và kỹ thuật thị giác máy tính để phát hiện té ngã và phát tín hiệu báo động Hệ thống cũng có thể cung... 3.7 3.2 Bám đuổi đối tượng Có rất nhiều phương pháp bám đuổi đối tượng đã được trình bày ở chương 1 Tuy nhiên, để dễ dàng cho việc viết chương trình phát hiện té ngã qua các video tự xây dựng và phát hiện té ngã thông qua 1 webcam, đồ án này sử dụng phương pháp bám đuổi đối tượng khá đơn giản đó là bám đuổi theo bóng (silhouette) Trước hết, hệ thống sẽ học nền tĩnh từ một khung hình chưa có đối tượng. .. tượng của đoạn video đầu vào Sau đó, cứ mỗi khung hình khi quan sát đối tượng, hệ thống sẽ bám đuổi bóng của đối tượng thông qua phương pháp trừ pháp trừ nền, cắt ngưỡng và làm tinh đối tượng Sau khi bám đuổi đối tượng, hệ thống sẽ sử dụng phương pháp nhận dạng để phát hiện té ngã là “template matching” (trùng khớp mẫu) Các mẫu ở đây là một số các điều kiện tổ hợp từ các thuộc tính của đối tượng, nếu... động Hệ thống cũng có thể cung cấp chính xác nguyên nhân khiến đối tượng bị té ngã Hiện nay, nhiểu tổ chức cũng như cá nhân đã và đang phát triển các phương pháp phát hiện té ngã dựa vào video Hầu hết các hệ thống phát hiện té ngã dựa vào tầm nhìn máy tính này đều dùng thông tin chuyển động hoặc phương pháp trừ nền để tách đối tượng Sau đó hệ thống sẽ sử dụng các mô hình nhận dạng như mẫu phù h ợp (TemplateMatching)... khối bám đuổi đối tượng và trích thuộc tính đôi lúc được gộp chung lại thành một khối gọi là bám đuổi đối tượng (Object Tracking System), trong đó bao gồm cả việc xác định hình dáng, vị trí của đối tượng và trích các thuộc tính của đối tượng (a) (b) (c) (d) Hình 1.4 – Quá trình xử lý của hệ thống giám sát thông minh video (a) Khung hình đầu vào; (b) Tách đối tượng; (c) Loại bỏ bóng của đối tượng; (d) Bám. .. thuộc tính của đối tượng là xác định các phần của đối tượng như chiều không gian 2D hoặc 3D, phát hiện rìa của đối tượng, độ nét, độ sáng, cử động từng phần của đối tượng Nếu như khối bám đuổi đối tượng thực hiện việc chuẩn bị dữ liệu về h ình dáng của đối tượng thì khối trích thuộc tính của đối tượng sẽ trích ra các thông tin đặc biệt như rìa đối tượng (ở mức độ thấp) hay đầu, tay của đối tượng (ở mức... trong nhà 1.4.2 Khối bám đuổi đối tượng (Tracking System) Sau khi trích đối tượng ra khỏi hình nền, hệ thống sẽ bám đuổi theo đối tượng hay thiết lập sự liên kết của đối tượng qua các khung hình liên tiếp trong chuỗi hình ảnh Khối bám đuổi đối tượng sẽ cung cấp dữ liệu cho khối trích thuộc tính và khối nhận dạng hành động tiếp theo sau nó Các phương pháp bám đuổi đối tượng trong video có thể phân loại... dụng phát hiện sự té ngã ; nhưng trước khi trích thuộc tính đối tượng cần được bám đuổi, cụ thể phương pháp bám đuổi sẽ được trình bày ở mục 3.2 Các mục 3.3 đến 3.6 của chương này sẽ khảo sát những đặc điểm của đối tượng khi té ngã, từ đó chọn và giới thiệu các thuộc tính dùng trong phát hiện té ngã, cuối cùng là phân tích khả năng kết hợp của các thuộc tính để hệ thống kết luận có xảy ra sự té ngã. .. của đối tượng, trong trường hợp này là tai nạn té ngã Phần tiếp theo của chương này sẽ trình bày tổng quan về hệ thống giám sát thông minh video 1.3 Tổng quan hệ thống giám sát thông minh video 1.3.1 Hệ thống giám sát video Giám sát video là một kỹ thuật của ngành công nghiệp an ninh, được ứng dụng trong kiểm soát truy cập, phát hiện và kiểm soát hỏa hoạn, các kỹ thuật quản lý các tòa nhà, các hệ thống. .. thành 3 loại cơ bản: bám đuổi theo điểm, bám đuổi theo khung sườn và bám đuổi theo bóng - Bám đuổi theo điểm (point tracking): Đối tượng được biểu diễn bởi các điểm khi nó được phát hiện trong mỗi khung hình Sự tương quan giữa đối tượng và điểm biểu diễn dựa trên cơ sở vị trí trước đó của đối tượng và hướng chuyển động của nó Phương pháp này thích hợp cho việc bám đuổi các đối tượng có kích thước nhỏ,