Phần mềm nhận diện người già ngã

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 ————

Thuật toán tách người khỏi hình
Thuật toán tách người khỏi hình

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.

Chuyển ảnh sang mức xám
Chuyển ảnh sang mức xám

Ả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.

Tách người ra khỏi nền
Tách người ra khỏi nền

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

Lấy ngưỡng để loại bỏ bóng, nhiễu
Lấy ngưỡng để loại bỏ bóng, nhiễu

Ảnh thu được được lấy ngưỡng để loại bỏ bóng, nhiễu.

Mở rộng và ăn mòn ảnh
Mở rộng và ăn mòn ảnh

Ả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.

Phân vùng ảnh
Phân vùng ảnh

Đố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 tỉ lệ khung hình
Tính tỉ lệ khung hình

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

Thống kê ngã
Thống kê 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ã)

ket-qua-nhan-dien-nga ket-qua-canh-bao-nga

Thử nghiệm tại các điều kiện môi trường ánh sáng, không gian khác nhau

nhan-dien-trang-thai-nguoi

Kết quả của phần mềm

ket-qua

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ỉ ducbk90@gmail.com

Đ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 ?

 

Replies: 0 / Share:

You might also like …

Post Comment

Your email address will not be published. Required fields are marked *