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 ?

 

Read More →
Replies: 0 / Share:

ban-do-so-bach-khoa-ha-noi

Đây là bài tập lớn môn Định vị dẫn đường của mình.

Thầy yêu cầu thiết kế bản đồ số Đại học Bách Khoa Hà Nội

Mình lúc đầu định xây dựng cơ sở dữ liệu theo tọa độ điểm và viết thuật toán tìm đường. Đã hình dung được phải làm những gì nhưng cuối cùng thấy sức một mình chưa đủ thời gian để làm được nên quay sang làm web. Xài một tý kiến thức CSS, Photoshop, Jquery là có được kết quả như trên ^^

Các bạn có thể xem thành quả của mình tại địa chỉ http://anhduc.org/web/bkmap

———————————————————————————— Updated 21/06/2013, 10:24 am

Có bạn email hỏi mình thuật toán mình xử dụng trong project này. Như mình đã nói ở trên, mình chưa thực sự viết thuật toán để tìm đường như kiểu google map hoặc các chương trình tương tự như thế. Mình chỉ áp dụng một kĩ thuật nhỏ mình học được trong quá trình thiết kế web thôi. Các bước làm các bạn có thể nhìn hình minh họa dưới đây. Cũng khá là dễ hiểu nếu bạn nào từng có một chút kiến thức cơ bản về thiết kế web, hàm truyền tham số và nhận lại dữ liệu trên sever.

9098707004_5cc066c126_c

Cách làm phía trên chỉ áp dụng được với mô hình nhỏ như trường học, vị trí phòng ban trong cơ quan…

Để giải quyết các bài toán lớn bạn có thể dựa trên các lý thuyết sử dụng trong Viễn thông, cụ thể là các thuật toán định tuyến. Đây là mô hình mình nghĩ ra, chưa có thời gian để kiểm nghiệm thực tế. Các bạn có thể dựa vào đó để phát triển riêng cho mình.9096316769_e5e8523c04_c

Read More →
Replies: 0 / Share: