Nội dung yêu cầu: thiết kế một phần mềm nhận diện được trạng thái ngã của người già và phát cảnh báo đến người thân.
Phần mềm của mình được viết trên nền visual studio 2010, sử dụng C++ và thư viện mã nguồn mở Opencv 2.4.4
Đề tài xử lý ảnh như này ở Việt Nam hiện tại có rất ít tư liệu tham khảo, mình đã mất rất nhiều thời gian thử nghiệm các phương pháp giải quyết bài toán này của một số Paper nước ngoài nhưng kết quả đều không được như ý muốn, may mắn cuối cùng mình đã tự tìm ra cho mình một phương pháp riêng mà mình sẽ trình bày dưới đây. Hy vọng đó sẽ là cơ sở cho các bạn có hứng thú với bộ môn xử lý ảnh sau này.
Tính năng của phần mềm:
- Phần mềm có khả năng tách đối tượng ra khỏi khung hình
- Có khả năng nhận diện được nhiều đối tượng
- Nhận biết được trạng thái Đứng, ngồi, ngã của đối tượng và đưa ra cảnh báo
Video thực tế phần mềm:
————Thuật toán ————
Khung hình từ camera sẽ được so sánh với nền để tách đối tượng từ đó đưa ra các đặc trưng của đối tượng để xác định trạng thái.
Ảnh đầu vào được chuyển sang mức xám sau đó áp dụng bộ lọc trung vị để giảm nhiễu.
So sánh khung hình với nền để tìm sự sai khác bằng cách lấy trị tuyệt đối hiệu giá trị độ xám các điểm ảnh tương ứng
Ảnh thu được được lấy ngưỡng để loại bỏ bóng, nhiễu.
Ảnh sau khi lấy ngưỡng đã xác định được đối tượng nhưng chưa bị lấp đầy, tiếp tục sử dụng phép toán hình thái học opening để lấp đầy đối tượng.
Đối tượng sau khi được lấp đầy vẫn còn xuất hiện những vùng nhỏ gây ra do nhiễu, tại đây thực hiện phân vùng ảnh để loại bỏ những vùng có kích thước nhỏ và đánh dấu những vùng có diện tích lớn hơn mức ngưỡng là đối tượng
Tính toán ra hai giá trị để xác định trạng thái của đối tượng là tỉ lệ khung và góc của đối tượng so với phương ngang. Tỉ lệ khung chính là tỉ lệ hai chiều hình chữ nhật bao quanh đối tượng, góc là góc tạo bởi trục dài của elip bao quanh đối tượng so với phương ngang.
Thực hiện thống kê để tìm ra các mức ngưỡng của tỉ lệ khung và tỉ lệ góc xác định các trạng thái của đối tượng
Giao diện phần mềm và các trạng thái nhận biết được (Đứng, ngồi, cảnh báo ngã, báo ngã)
Thử nghiệm tại các điều kiện môi trường ánh sáng, không gian khác nhau
Kết quả của phần mềm
Trên đây là các bước thuật toán mình đã tìm hiểu trong phạm vi đồ án. Toàn bộ code khoảng 152 dòng, tuy nhiên mình xin phép không chia sẻ, các giá trị lấy ngưỡng là bao nhiêu mình cũng không công khai. Phạm vi bài viết nhằm giúp các bạn định hướng được công việc phải làm cũng như tạo động lực cho các bạn tự mình làm được nên hy vọng các bạn hiểu :).
Mọi thắc mắc, bình luận các bạn có thể liên hệ tại đây hoặc email cho mình theo địa chỉ [email protected]
Điều gì giúp đươc mình sẽ hết mình trong khả năng.
Cảm ơn các bạn đã đọc ?