NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 143 NHẬN DẠNG HÀNH VI UỐNG THUỐC SỬ DỤNG STEREO CAMERA RECOGNITION OF MEDICATION INTAKE USING A STEREO CAMERA Huỳnh Hữu Hưng Trường Đại học Bách khoa,Đại học Đà Nẵng, Việt Nam Jean Meunier Đại học Montreal, Montreal, Canada Jean Meunier, Marc Daniel Đại học Mediterranean, Marseille, France TÓM TẮT Trong bài báo này, chúng tôi giới thiệu việc phát hiện (detect), theo dõi (tracking) các đối tượng chuyển động như khuôn mặt, vùng miệng, vùng tay và lọ thuốc trong ngữ cảnh giám sát hành vi uống thuốc sử dụng stereo camera, nhằm phục vụ nhận dạng hành vi uống thuốc của người già, tại nhà riêng nhằm tránh việc sử dụng thuốc không đúng. Phương pháp trừ nền được sử dụng để phát hiện các đối tượng chuyển động, sử dụng thông tin màu để phát hiện vùng màu da và lọ thuốc trong không gian màu RGB chuẩn hóa. Khoảng cách dịch chuyển tối thiểu được sử dụng để theo dõi các vùng màu da và sử dụng tỉ lệ màu R/G để phát hiện vùng miệng. Độ lệch (disparity) được sử dụng để xác định khoảng cách của đối tượng so với camera, từ đó có thể quyết định liệu hai đối tượng che khuất có tiếp xúc với nhau hay không. Kết quả thử nghiệm cho thấy giải pháp đề xuất đơn giản và hiệu quả trong việc xác định trạng thái tiếp xúc của các đối tượng khi che khuất, điều này cần thiết để cải thiện việc nhận dạng hành vi uống thuốc. ABSTRACT In this paper, the detection and tracking of face, mouth, hands and medication bottles in the context of medication intake monitored with a camera is presented. This is aimed at recognizing medication intake for the elderly in their home setting to avoid an inappropriate use. Background subtraction is used to isolate moving objects, and then, skin and bottle segmentations are done in the RGB normalized color space. We use a minimum displacement distance criterion to track skin color regions and the R/G ratio to detect the mouth. Then the disparity is used for estimating the distance from the camera so that we can decide whether two objects in occlusion are in genuine contact or not. The experiments show that the proposed approach is very simple and efficient for detecting contact state of objects in occlusion, a necessary step to further improve the detection and recognition of medication intake activity. 1. Đặt vấn đề Ở các nước phát triển, tỉ lệ người cao tuổi tăng nhanh, đòi hỏi phải có các biện pháp hiệu quả và tự động để chăm sóc những người lớn tuổi tại nhà riêng với chi phí bé nhất. Với mục đích này, nhiều công cụ chăm sóc sức khỏe, công nghệ thông tin tích hợp như chăm sóc di động (mobile-care), chăm sóc tại nhà (home-care), y tế từ xa (telemedicine),… đã được đề xuất. Các thiết bị này nhằm thông báo trình trạng sức khỏe của người già với gia đình hoặc với người chăm sóc. Gần đây, nhiều cố gắng phát triển các hệ thống máy tính giám sát sử dụng camera (computer vision) phục vụ giám sát việc uống thuốc ở người già [1], [2], [3]. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 144 Các nghiên cứu này làm việc với một camera cố định nên gặp khó khăn trong việc xác định trạng thái tiếp xúc giữa hai đối tượng che khuất từ góc nhìn của camera (hình 6), điều này quan trọng và ảnh hưởng đến việc nhận dạng hành vi uống thuốc. Do vậy, chúng tôi đề xuất sử dụng hệ thống stereo camera nhằm giúp xác nhận trạng thái tiếp xúc giữa các đối tượng che khuất bằng cách tính khoảng cách giữa chúng, qua đó cải thiện kết quả nhận dạng hành vi uống thuốc. 2. Kết quả nghiên cứu và khảo sát 2.1. Tổng quan hệ thống Hệ thống nhận dạng hành vi uống thuốc đề xuất gồm nhiều bước : từ mức thấp đến mức cao. Việc xử lý ở mức thấp bao gồm: xây dựng ảnh nền, phát hiện các đối tượng chuyển động, phát hiện vùng màu da, phát hiện vùng mặt và vùng miệng, theo dõi các đối tượng chuyển động. Ở mức cao, chúng tôi nhận dạng hành vi cơ bản (primitive activity), hành vi đơn giản (simple activity) trong quá trình uống thuốc và nhận dạng hành vi uống thuốc. Các phần tiếp theo mô tả vắn tắt các bước và chi tiết của phương pháp được trình bày trong [4]. Hình 1. Tổng quan hệ thống giám sát hành vi uống thuốc. 2.2. Phát hiện các đối tượng chuyển động Phương pháp trừ nền trong không gian màu YCrCb được sử dụng để phát hiện đối tượng chuyển động. Ảnh nền được mô phỏng bởi các giá trị trung bình ( µ Y , µ Cr , µ Cb ) và sai số chuẩn ( δ Y , δ Cr , δ Cb ), được học trong một khoảng thời gian nhất định và không có mặt đối tượng chuyển động trong khoảng thời này [4]. Sau khi phát hiện đối tượng chuyển động, các vùng màu da được phát hiện trong không gian màu rgb (RGB chuẩn hóa); với không gian màu này, thay đổi về độ sáng và màu da giảm đáng kể. Tiếp theo, chúng tôi sử dụng phương pháp AdaBoost [5] để phát hiện đôi mắt trong các vùng màu da nhằm xác định vùng mặt. Thực nghiệm cho thấy, sử dụng AdaBoost để phát hiện đôi mắt nhanh hơn là phát hiện cả khuôn mặt khi sử dụng cùng Xây dựng ảnh nền Đối tượng chuyển động Phát hiện vùng màu da Xác định khuôn mặt Phát hiện miệng Phát hiện vùng tay - Ảnh đầu vào Phát hiện lọ thuốc Biểu diễn các đối tượng Theo dõi các đối tượng Nhận dạng hàng vi cơ sở Nhận dạng hành vi đơn giản Nhận dạng hành vi uống thuốc TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 145 phương pháp. Việc phát hiện vùng miệng là cần thiết để nhận dạng chính xác hành vi uống thuốc, sử dụng AdaBoost [5]. Sau khi phát hiện vùng mặt, các vùng màu da còn lại được giả thiết là cánh tay. Việc phát hiện vùng ngón tay trong cánh tay dựa trên nếp gấp (edges, contours) và sử dụng phương pháp Canny [7]. Vùng hình vuông có mật độ nếp gấp lớn nhất là vùng ngón tay. Cuối cùng, việc phát hiện và theo dõi các lọ thuốc (được tô bởi các màu khác nhau) được thực hiện dựa trên khoảng cách đối với vector màu trung bình của nó, sử dụng phương pháp cắt ngưỡng (thresholding) [4]. (a) (b) Hình 2. Minh họa kết quả phát hiện, theo dõi và nhận dạng hành vi uống thuốc : (a) phát hiện và theo dõi các đối tượng, (b) nhận dạng hành vi uống thuốc sử dụng phương pháp phân cấp. 2.3. Theo dõi các đối tượng chuyển động Chúng ta thấy rằng, chuyển động của các vùng màu da giữa hai khung ảnh (frame) liên tiếp là tương đối nhỏ, do vậy chúng tôi sử khoảng cách dịch chuyển để theo dõi các vùng màu da (vùng màu da trong gần nhất khung ảnh hiện tại so với vùng màu da trong khung ảnh trước trước đó). Trong trường hợp có sự che khuất giữa các vùng màu da (chẳng hạn như che khuất giữa vùng tay và vùng mặt), bộ lọc Kalman được sử dụng để dự báo vùng có thể chứa vùng màu da và việc tìm kiếm được thực hiện trong vùng dự báo dựa trên histogram của đối tượng tìm kiếm. Tỉ lệ màu R/G của các điểm ảnh (pixel) và bộ lọc Kalman được sử dụng để theo dõi vùng miệng [4]. Việc theo dõi các lọ thuốc được thực hiện bằng các so sánh khoảng cách các đối tượng chuyển động không phải vùng màu da với màu trung bình của mỗi lọ thuốc. Vùng màu da được xác định bị che khuất khi một trong các hình hộp bao của các vùng màu da trong khung ảnh hiện tại chứa ít nhất hai tâm của các vùng màu da trong khung ảnh trước đó. Đối với lọ thuốc, chúng được xác định là ẩn sau lọ thuốc khác hoặc ẩn sau vùng tay (khi tay nắm lọ thuốc) dựa trên tiêu chí khoảng cách tối thiểu. 2.4. Nhận dạng hành vi uống thuốc Hình 2(b) mô tả mô hình phân cấp ba mức để nhận dạng các kiểu uống thuốc khác nhau. Ở m ức thấp nhất, mỗi khung ảnh được phân tích để phát hiện hành vi cơ bản Hành vi hoàn chỉnh Chuỗi các hành vi đơn giản Chuỗi sự kiện (event/primitive activities) XXA 1 B 1 A 1 CDA 1 E A 2 B 2 A 3 B 3 CD Chuỗi ảnh đầu đầu vào (frame) TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 146 (ví dụ, X : sự kiện không quan tâm, A i : một tay nắm lọ thuốc i, C : một tay tiến gần và che vùng mặt, D : một tay che khuất vùng miệng) dựa trên sự che khuất giữa các hình hộp bao của các đối tượng (ví dụ như tay và lọ thuốc). Bằng việc kết hợp các hành vi cơ bản, thuật toán tạo ra các hành vi đơn giản (ví dụ như AB : mở/đóng lọ thuốc, CD : uống thuốc) và xét đến chuỗi thứ tự thực hiện các hành vi đơn giản, hệ thống có thể nhận dạng được liệu hành vi uống thuốc có đúng hay không. Chi tiết giải pháp nhận dạng hành vi uống thuốc được trình bày trong [4]. 2.5. Vấn đề cho khuất giữa các đối tượng Hệ thống mô tả trên đây có nhận dạng chính xác 98% hành vi uống thuốc [4]. Tuy nhiên, do sử dụng một camera nên trong một vài tình huống không thể phân biệt được hai đối tượng thực sự tiếp xúc với nhau hay chỉ đơn giản là một đối tượng đứng trước và che khuất đối tượng khác theo góc nhìn của camera (hình 6). Do vậy, chúng tôi sử dụng stereo camera để xác định trạng thái tiếp xúc của hai đối tượng che khuất bằng cách xác định vị trí của nó trong không gian 3D, nhờ vậy cải thiện được kết quả nhận dạng hành vi uống thuốc. 2.6. Cải thiện che khuất với Stereo vision Stereo vision là kỹ thuật sử dụng hai camera để đo khoảng cách giữa các đối tượng. Cấu hình đơn giản nhất (hay cấu hình stereo chuẩn) sử dụng hai camera thẳng hàng và cách nhau theo phương ngang (hình 3). Các ảnh của các camera được phân tích để tìm các điểm chung. Sử dụng qui tắc tam giác đồng dạng và độ lệch của các điểm chung để xác định khoảng cách (độ sâu) so với camera. Hình 3. Cấu hình chuẩn của hệ thống hai camera với tiêu cự f và khoảng cách cơ sở T. Sự sai khác theo phương ngang giữa p l và p r được gọi là (horizontal) disparity và cho phép tính koảng cách Z P của một điểm P trong không gian 3D so với camera. Độ lệch d của điểm P trong không gian 3D được định nghĩa là sự sai khác giữa các hình chiếu của nó p l (ở ảnh trái) và p r (ở ảnh phải) so với các tâm của chúng (c l và c r ). Sử dụng khái niệm tam giác đồng dạng ở hình 3, chúng ta có được mối quan hệ giữa độ lệch và và khoảng cách Z P của điểm P. PrlP ZTfppd / = − = (1) T f p r p l ∆Z PQ Q P Z P Z Q c l c r Bề mặt ảnh Tâm ống kính TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 147 hay PP dTfZ / = Trên thực tế, độ lệch được xác định theo điểm ảnh (tức là không đo ở hệ mét) và không nhất thiết phải tính từ tâm ảnh (không phải lúc nào cũng xác định được tâm ảnh một cách chính xác), do vậy quan hệ trên được viết lại thành: Trong đó d P pxl là độ lệch tính theo điểm ảnh và d 0 là một hằng số gắn với độ lệch tâm ảnh và/hoặc các sai lệch khác. w là độ rộng của điểm ảnh và hằng số K = f T/w đều được tính trong hệ mét. Công thức (2) cho phép tính được khoảng cách của đối tượng so với camera từ độ lệch, từ đó có thể xác định hai đối tượng che khuất có tiếp xúc với nhau hay không hay chỉ đơn giản là một đối tượng đứng trước đối tượng khác thông qua việc so sánh độ lệch hoặc khoảng cách của chúng (ví dụ như điểm P và Q trong hình 3). Hai đối tượng tiếp xúc nhau khi độ lệch của chúng xấp xỉ như nhau (hoặc nhỏ hơn một ngưỡng). Việc phát hiện trạng thái tiếp xúc của các đối tượng là quan trọng đối với việc nhận dạng hành vi uống thuốc, ví dụ : cần phải xác nhận tay nắm/mở/đóng lọ thuốc hoặc tay tiếp xúc với miệng khi uống thuốc. Trong phần sau, chúng tôi sử dụng stereo camera để thực nghiệm giải pháp đề xuất. 2.6.1. Stereo Camera Chúng tôi sử dụng camera Fujifilm FinePix REAL 3D W1 [10] với 2 CCD đồng bộ có kích thước 1/2.3-inch, cách nhau 77 mm theo cấu hình chuẩn. Tiêu cự của camera 6,3mm (sử dụng góc nhìn rộng) và vùng tiêu cự từ 600 mm đến vô cùng. Các video được ghi với tốc độ 30 khung hình/giây, với độ phân giải 640 x 480 điểm ảnh. 2.6.2. Tính độ lệch bằng phương đối sánh mẫu Để tính độ lệch của đối tượng trong cặp ảnh đồng bộ (stereo pair-image), trước hết chúng ta phát hiện đối tượng (tay, lọ thuốc, mặt và miệng) trong ảnh bên trái và sau đó dung phương pháp đối sánh mẫu (template matching) để xác định vị trí của chúng ở ảnh bên phải. 2.6.3. Xác định thông số camera bằng mô hình hai điểm Để sử dụng công thức (2), chúng ta cần xác định các thông số khác nhau của camera. Mặc dù nhà sản xuất đã cung cấp các giá trị f, khoảng cách T, tuy nhiên các giá trị này là gần đúng. Hơn nữa, các thông số khác (ví dụ như c l , c r , w pxl ) không được cung cấp. Do vậy, chúng tôi đề xuất giải pháp dùng hai điểm trong không gian 3D để xác định các thông số của camera. Do tiêu cự của camera từ 600 mm đến vô cùng nên vùng quan tâm trong ngữ cảnh uống thuốc được thiết lập từ 600 mm đến 2000 mm để xác định các thông số. () 00 dd K wdd Tf Z pxl P pxl P P + = + = ( 2) TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 148 Hình 4. Môi trường thực nghiệm nhận dạng hành vi uống thuốc. Các thông số cần xác định gồm K và d 0 trong công thức (2). Do vậy, chúng tôi chọn hai điểm ở hai đầu của vùng quan tâm, tức là một điểm ở khoảng cách 600 mm và điểm còn lại ở khoảng cách 2000 mm so với ống kính của camera, độ lệch tương ứng của hai điểm này là 69 và 0 điểm ảnh. Thay các giá trị này vào công thức (2) ta nhận được K=59140 và d 0 =29,57. Lưu ý rằng, cấu hình chuẩn có điểm hội tụ ở vô cùng chứ không phải ở khoảng cách 2000 mm, tuy nhiên, nhà sản xuất mô phỏng điểm hội tụ ở khoảng cách 2 m [10] bằng cách sử dụng sai số/độ dịch (offset) trong độ lệch. Với (2), chúng ta có thể tính được khoảng cách của các đối tượng so với camera, từ đó có thể quyết định liệu chúng có tiếp xúc nhau hay không. 3. Kết quả và thảo luận 3.1. Kiểm tra mô hình đề xuất Để kiểm tra mô hình đề xuất ở công thức (2), chúng tôi tính độ lệch cho 13 điểm trong không gian 3D ở các khoảng cách từ 700 mm đến 1900 mm với bước nhảy 100 mm. Hình 5 mô tả kết quả thử nghiệm khoảng cách/độ lệch (đường xanh liền nét) so với kết quả tính từ mô hình đề xuất (đường đỏ nét đứt) trong vùng quan tâm. Như chúng ta thấy, sự sai lệch là rất bé, điều này khẳng định tính đúng đắng của mô hình đề xuất. Hình 5. So sánh quan hệ khoảng cách/độ lệch của mô hình đề xuất (đường xanh liền nét) và kết quả thử nghiệm (đường đỏ nét đứt). 3.2. Kết quả thử nghiệm phục vụ nhận dạng hành vi uống thuốc Chúng tôi đã thử nghiệm với hai tính huống chính gặp phải trong ngữ cảnh uống thuốc (1) che khuất giữa tay và lọ thuốc, và (2) che khuất giữa tay và vùng miệng (hình 6). Các tình huống này tương ứng với các hành vi cơ bản A i : một tay nắm lọ thuốc i và 0 m m 600 m m Vùng quan tâm 2000 m m TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 149 D : một tay tiếp xúc vùng miệng. Khi xảy ra che khuất giữa các hình hộp bao của các đối tượng này, (tay và lọ thuốc hoặc tay và miệng), hệ thống stereo camera được sử dụng để xác định liệu các đối tượng che khuất thực sự tiếp xúc nhau hay không bằng cách so sánh độ lệch hoặc khoảng cách. Hình 6(a) thể hiện các ví dụ trong tình huống thứ nhất và hình 6(b) thể hiện tình các ví dụ trong tình hướng thứ hai. Với một camera, cả ba trường hợp trong hình 6(a) đều được nhận dạng là “nắm lọ thuốc”. Tuy nhiên, thông qua độ lệch, chúng ta xác nhận chỉ có trường hợp thứ hai là tay nắm lọ thuốc. Chúng ta có thể sử dụng độ lệch mà không cần đến công thức (2), tuy nhiên độ lệch không tuyến tính với khoảng cách nên gây ra một số khó khăn trong việc xác định ngưỡng để xác nhận trạng thái tiếp của các đối tượng. (a) (b) Hình 6. Thử nghiệm với các đối tượng che khuất : Tay (H), lọ thuốc (B) và miệng (M). d X và Z X là độ lệch (pixels) và khoảng cách (mm) của đối tượng X so với camera. ∆ ZXY là khoảng cách giữa X và Y. Hình 6(b) thể hiện hai ví dụ của tình huống thứ 2. Với một camera, cả hai trường hợp này đều được nhận dạng là “uống thuốc”. Trong tình huống thứ hai, khoảng cách ∆Z HM khác 0 do tay không phải là một điểm mà thể hiện hình dạng 3D và có độ dày nhất định. Dọ vậy, phương pháp so sánh mẫu xét đến cả vùng tay chứ không chỉ xét đến ngón tay. 4. Kết luận Hệ thống giám sát hành vi uống trước do chúng tôi đề xuất trước đó có thể nhận dạng với tỉ lệ chính xác 98% nhưng không thể phân biệt được hai đối tượng liệu hai đối tượng có tiếp xúc nhau không hay một đối tượng đúng trước đối tượng kia. Trong bài báo này, chúng tôi trình bày hệ thống stereo-camera để xác nhận trạng thái tiếp xúc của các đối tượng thông qua việc tính vị trí của các đối tượng trong không gian 3D, từ đó nhận dạng chính xác hơn hành vi uống thuốc. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 4(39).2010 150 Với 50% bênh nhận là người lớn tuổi dùng thuốc không đúng cách và hơn 30% trong số đó xảy ra với người lớn hơn 50 tuổi [9], chúng tôi tin rằng hệ thống camera giám sát hành vi uống thuốc sẽ đóng góp tích cực để nâng cao chất lượng cuộc sống người cao tuổi. TÀI LIỆU THAM KHẢO [1] Batz, D., et al., A Computer Vision System for Monitoring Medication Intake. In: The 2nd Canadian Conference on Computer and Robot Vision, pp. 362-369 (2005). [2] Valin, M., et al., Video Surveillance of Medication Intake. In: IEEE Engineering in Medicine and Biology Society, vol. 1, pp. 6396-6399 (2006). [3] Ammouri, S. and G A. Bilodeau, Face and Hands Detection and Tracking Applied to the Monitoring of Medication Intake. In: Canadian Conference on Computer and Robot Vision, pp. 147-154 (2008). [4] Huynh, H H., et al., Real-time Detection, Tracking and Recognition of Medication Intake. In : World Academy of Science, Engineering and Technology, vol. 60: pp. 280-287 (2009). [5] Viola, P. and M. Jones, Robust Real-time Object Detection. In : Int. J. Computer Vision, vol. 1: pp. 511-518 (2001). [6] Castrillon-Santana, M., et al., Face and Facial Feature Detection Evaluation: Performance Evaluation of Public Domain Haar Detectors for Face and Facial. VISAPP 2008, Funchal, Portugal. (2008). [7] Canny, J., A Computational Approach to Edge Detection. In: IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8(6), pp. 679-698 (1986). [8] Faugeras, Three-Dimensional Computer Vision: A Geometric Viewpoint. MIT Press, Cambridge (1993). [9] Nugent, C., et al., Can Technology Improve Compliance to Medication? Int. Conference on Smart Homes and Health Telematic, Sherbrooke, QC, Canada, pp. 65-72 (2005). [10] Fujifilm products, http://www.fujifilm.com/products/3d/camera/finepix_real3dw1/.