Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,77 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH KỸ THUẬT PHẦN MỀM Đề tài NHẬN DẠNG TƯ THẾ NGƯỜI VỚI CAMERA KINECT VÀ MÁY HỌC VECTOR HỖ TRỢ Sinh viên: Huỳnh Nhật Minh Mã số: 1111311 Khóa: K37 Cần Thơ, 14/5/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG BỘ MÔN CÔNG NGHỆ PHẦN MỀM LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH KỸ THUẬT PHẦN MỀM Đề tài NHẬN DẠNG TƯ THẾ NGƯỜI VỚI CAMERA KINECT VÀ MÁY HỌC VECTOR HỖ TRỢ Người hướng dẫn Sinh viên thực TS Phạm Nguyên Khang Huỳnh Nhật Minh Mã số: 1111311 Khóa: K37 Cần Thơ, 14/5/2015 LỜI CẢM ƠN Khi viết dòng lúc thời gian làm luận văn kết thúc, luận văn không đánh dấu chặng đường mà buộc nhận bao xa thực may mắn gặp người mà ngày ngày giúp thay đổi thân hoàn thiện ngày hôm Cám ơn cha mẹ ủng hộ không thời gian làm luận văn mà từ lúc định theo đường Xin cám ơn Cô Nguyễn Cao Hồng Ngọc người giúp nhận đường mà muốn đi, cám ơn Cô tin tưởng tiếp thêm lửa cho niềm đam mê lập trình Cám ơn thầy Phạm Nguyên Khang dạy nhiều kiến thức người hướng dẫn để hoàn thành luận văn Tôi xin cám ơn người bạn dành hàng đồng hồ để đứng trước camera Kinect thực động tác, giúp thu thập đầy đủ liệu Xin dành lời cám ơn sâu sắc đến Phạm Nguyễn Hải Âu, Đào Minh Tân, Nguyễn Thanh Quận, Nguyễn Quốc Nhân, Nguyễn Khánh Hà Và cuối xin gửi lời cám ơn đặc biệt đến Nguyễn Thị Ngọc Bích Vì giúp sống sinh động i MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC HÌNH iv DANH MỤC BẢNG v TÓM TẮT vi ABSTRACT vi PHẦN I - GIỚI THIỆU .1 Đặt vấn đề Lịch sử giải vấn đề .1 Mục tiêu đề tài .2 Đối tượng phạm vi đề tài Nội dung nghiên cứu Những đóng góp đề tài Bố cục luận văn PHẦN II - NỘI DUNG .5 Chương Mô tả toán 1.1 Mô tả 1.2 Các tư người cần nhận dạng Chương Thiết kế cài đặt giải pháp 2.1 Trích đặc trưng 2.1.1 Thiết bị Kinect 2.1.1.1 Khả giới hạn 2.1.1.2 Hệ thống khung xương 11 2.1.2 Trích xuất đặc trưng thể người với camera Kinect 12 2.2 Nhận dạng tư 13 2.2.1 Máy học vector hỗ trợ (Support Vector Machine – SVM) 13 2.2.1.1 Giới thiệu .13 2.2.1.2 Máy học vector hỗ trợ tuyến tính 13 2.2.1.3 Phân lớp đa lớp 15 2.2.2 Nhận dạng tư với SVM 16 2.3 Hệ thống nhận dạng tư với camera Kinect máy học SVM .17 ii 2.4 Cài đặt 18 2.4.1 Giao diện chương trình 18 2.4.2 Chức chương trình 21 Chương Kiểm thử đánh giá 25 3.1 Thu thập liệu 25 3.2 Phương pháp đánh giá 26 3.3 Kết 27 3.4 Chương trình tập thể dục .29 PHẦN III - KẾT LUẬN 31 Kết đạt 31 Hướng phát triển 31 Tài liệu tham khảo .33 iii DANH MỤC HÌNH Hình 2.1: Thiết bị Kinect v1 .9 Hình 2.2: Chế độ phạm vi gần 10 Hình 2.3: Chế độ phạm vi mặc định 10 Hình 2.4: Góc nhìn Kinect 10 Hình 2.5: Kinect v1 nhận dạng người cung cấp khung xương .11 Hình 2.6: Chế độ khung xương mặc định (trái) chế độ khung xương ngồi (phải) 11 Hình 2.7: 20 khớp xương tên tương ứng 11 Hình 2.8: Tọa độ không gian 12 Hình 2.9: Ví dụ phân lớp nhị phân .13 Hình 2.10: Vùng “mờ” phương pháp 1-tất (trái) phương pháp 1-1 (phải)15 Hình 2.11: Hệ thống nhận dạng tư 17 Hình 2.12: Giao diện chương trình xử lý liệu trích xuất đặc trưng .18 Hình 2.13: Bảng điều khiển chương trình 19 Hình 2.14: Giao diện kết nhận đạng 20 Hình 2.15: Luồng kiện chương trình “Project K” 21 Hình 3.1: vị trí lấy mẫu liệu 25 Hình 3.2: Ảnh hưởng nhiệt độ môi trường đến trình thu mẫu .25 Hình 3.3: Nghi thức kiểm định chéo 10-fold 26 Hình 3.4: Đồ thị biểu diễn độ xác phương pháp trích xuất đặc trưng 27 Hình 3.5: Giao diện chương trình Demo 29 Hình 3.6: Giao diện tập thể dục 30 iv DANH MỤC BẢNG Bảng 1.1: Các tư cần nhận dạng Bảng 2.1: Các thành phần giao diện 19 Bảng 2.2: Các thành phần bảng điều khiển 20 Bảng 3.1: Độ xác phương pháp trích xuất đặc trưng theo thực nghiệm 28 v TÓM TẮT Nhận dạng tư người đề tài hấp dẫn có nhiều ứng dụng sống tập thể dục, nhận dạng tư bệnh nhân, phát té ngã, thay đổi tư ngồi, v.v… nhiên lĩnh vực đầy thách thức ảnh cần nhận dạng bị ảnh hưởng nhiều yếu tố môi trường độ nhiễu, ánh sáng, góc chụp, v.v Thiết bị Kinect Microsoft công cụ giá rẻ lại cho phép giải vấn đề cách dễ dàng hơn, thông qua liệu cung cấp thiết bị Kinect ta tạo nên liệu huấn luyện nhằm mục đích “dạy” cho máy tính nhận biết tư người Trong nội dung luận văn, trình bày khả nhận dạng 20 tư người với phương pháp trích đặc trưng sử dụng: tọa độ tuyệt đối (1), tọa độ tương đối (2), góc xoay tuyệt đối (3), góc xoay tương đối (4) Những đặc trưng huấn luyện máy học SVM tuyến tính để nhận dạng tư người Kết thực nghiệm cho thấy phương pháp (1) đạt kết cao với 99.83%, phương pháp (2) đạt kết 99.81%, đứng thứ phương pháp thứ (4) với 99.50% cuối phương pháp thứ (3) 98.9% Tuy nhiên, qua thực nghiệm đề xuất luận văn cho thấy phương pháp (1) có độ xác cao chưa thật ổn định loại bỏ số vị trí đứng huấn luyện, phương pháp (2) (4) ổn định đạt độ xác cao ABSTRACT Human posture recognition is an attractive topic with many applications in life such as: sport, recognize patent’s posture, fall detection, change sit posture… However, this is also a challenging field because the image recognition process is affected by noise, light, camera angle… Kinect for Windows of Microsoft is a tool with low price but it can helps and solves these problems easilier With the information Kinect provides to us, we can build a training data to “teach” the computer to recognize human postures In this thesis, I will present the ability to recognize 20 human postures with method of features extracted by using: Absolute Position (1), Relative Position (2), Absolute Rotation (3) and Hierarchical Rotation (4) These features will be trained with SVM to recognize human postures The results reveal method (1) has the highest accuracy with 99.83%, 2nd highest accuracy is method (2) 99.81% and the 3rd is method (4) with 99.50% and the lowest accuracy is method (3) with 98.9% However, through conducted experiment, although method (1) has the highest accuracy but it’s unstable when removes some positions in the training data, while method (2) and (4) still stable and high accuracy vi PHẦN I - GIỚI THIỆU ĐẶT VẤN ĐỀ Hiện nay, nhận dạng tư người (human posture recognition) đề tài nhiều người quan tâm Đề tài ứng dụng vào nhiều lĩnh vực như: Y tế: nhận dạng tư giúp cho bệnh nhân tập vật lý trị liệu [1, 2], theo dõi bệnh nhân từ xa báo cho bác sĩ hay y tá bệnh nhân bị ngã, cần giúp đỡ hay thay đổi tư nằm bị sai, v.v Giải trí: trò chơi mang tính tương tác Hướng dẫn tập thể dục hay tập võ: giúp cho người tập biết tập sai tư thế, chấm điểm cho tư hay biết số lượng carlo tiêu hao thực tư Chính có nhiều ứng dụng vào thực tế nhận dạng tư đề tài đáng để quan tâm, nghiên cứu Tuy nhiên, phương pháp giải truyền thống dựa hình ảnh thu từ camera thông thường sau trích xuất đặc trưng sử dụng mô hình máy học để huấn luyện nhận dạng Việc trích xuất đặc trưng cho tư gặp khó khăn nhiễu, góc chụp, ánh sáng, ảnh hưởng môi trường Vào ngày 01/02/2012, Microsoft mắt thiết bị Kinect dành cho Windows, thiết bị giá thành rẻ, quay phim màu cung cấp ảnh độ sâu (depth image), đặc biệt khả định vị nhận dạng khớp xương người đứng trước Kinect Dựa khả phát định vị khớp xương thiết bị Kinect mong muốn giảm khó khăn phương pháp giải truyền thống xin đề xuất đề tài: nhận dạng tư người với camera Kinect máy học vector hỗ trợ LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Hiện có nhiều nghiên cứu đề tài nhận dạng tư người nhiên hầu hết sử dụng thông tin có từ ảnh màu chụp camera thường Trong có số nghiên cứu tiêu biểu như: “Inference of Human Postures by Classification of 3D Human Body Shape” Isaac Cohen, Hongxia Li [3]: đề tài nhận dạng 12 tư sử dụng máy học vector hỗ trợ (SVM) với đầu vào vỏ tư thể dạng 3D (3D visual hull) trích xuất từ bóng (silhouette) người từ camera đồng với “Human Behavior Analysis Using Multiple 2D Features and Multicategory Support Vector Machine” [4] Hao-Cheng Mo, Jin-Jang Leou, Cheng-Shian Lin đề xuất hệ thống phân tích hành vi người với tư là: đi, cúi người ngồi Đề tài sử dụng máy học SVM với đặc trưng khung xương hình (star skeleton) vector chuyển động (motion vector) “Human Action Recognition Based on Non-linear SVM Decision Tree” [5] Haiyong Zhao Zhijing Liu sử dụng mô hình trọng tâm – bán kính (centroid – radii) để “mô tả” hình dạng tư sau kết hợp máy học SVM định (decision tree) để nhận dạng Những đề tài nêu việc nhận dạng tư đòi hỏi độ phức tạp cao khó thực truy vấn theo thời gian thực điểm yếu thực đề tài dễ bị ảnh hướng yếu tố bên ngoài, góc chụp, điều kiện ánh sáng hay chất lượng hình ảnh thu từ camera thường Các đề tài nhận dạng tư người có sử dụng camera Kinect có số lượng có số đề tài đáng ý như: Đề tài “Human posture recognition using human skeleton provided by Kinect” [6] TS Lê Thị Lan thực thực nghiệm với cách trích xuất liệu từ khung xương cung cấp thiết bị Kinect Kết đề tài cho thấy độ xác cao nhận dạng tư đứng, ngồi, nằm cúi người “Human gesture recognition using Kinect camera” [7] Orasa Patsadu, Chakarida Nukoolkit Bunthit Watanapa, đề tài đưa so sánh phương pháp phân loại backpropagation neutral network, SVM, định Bayes thơ ngây “Gesture recognition from Indian classical dance using Kinect” [8] Sripara Saha, Shreya Ghosh, Amit Konar, Atulya K Nagar đề tài sử dụng tọa độ 11 khớp xương phần thân để nhận dạng cử bao gồm: giận dữ, sợ hãi, vui vẻ, buồn, thư giãn Những đề tài đạt độ xác cao sử dụng liệu khung xương từ camera Kinect, nhiên số lượng tư đề tài (3-5 tư thế) cách trích xuất liệu yêu cầu nhiều công đoạn gây phức tạp MỤC TIÊU ĐỀ TÀI Mục tiêu đề tài xây dựng mô hình nhận dạng tư người đứng trước Kinect cách sử dụng thông tin vị trí khớp xương thu nhận từ Kinect mô hình máy học vector hỗ trợ (SVM) Qua ứng dụng mô hình nhận dạng tư vào chương trình tập thể dục 10 Button Trích xuất đặc trưng từ khung ảnh Start đến End 11 Textbox Nhập tên ứng viên 12 ComboBox Chọn vị trí thu mẫu 13 ComboBox Chọn tư 14 Label Hiện khoảng cách từ ứng viên đến camera Kinect 15 TrackBar Điều chỉnh góc Kinect Bảng 2.2: Các thành phần bảng điều khiển Bảng kết nhận dạng Hình 2.14: Giao diện kết nhận đạng TT Loại điều khiển Chức Label Hiện kết nhận dạng phương pháp sử dụng góc xoay tương đối Label Hiện kết nhận dạng phương pháp sử dụng góc xoay tuyệt đối Label Hiện kết nhận dạng phương pháp sử dụng vị trí tuyệt đối Label Hiện kết nhận dạng phương pháp sử dụng vị trí tương đối 20 2.4.2 Chức chương trình Chức trích xuất liệu thực theo luồng kiện sau: Xử lý trích xuất liệu khung xương Theo dõi khung xương Vẽ khung xương Lưu hình ảnh liệu tương ứng Chọn khung hình lưu liệu vào file Hình 2.15: Luồng kiện chương trình “Project K” Theo dõi khung xương Đầu tiên có người đứng trước camera Kinect, nhờ vào cảm biến Kinect theo dõi khung xương người Có thể bắt kiện dựa theo hàm bên private void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) { skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); skeleton = (from s in skeletons where s.TrackingState==SkeletonTrackingState.Tracked select s).FirstOrDefault(); if (skeleton == null) lblSkeletonState.Text = skeletonTrackingState.NotTracked.ToString(); } } } 21 Vẽ khung xương Tiếp theo liệu khung xương truyền vào hàm vẽ khung xương private void DrawSkeleton(Skeleton skeleton) { Bitmap bmp = new Bitmap(colorFrame, pbStream.Size); Graphics g = Graphics.FromImage(bmp); pbStream.Image = bmp; Pen greenPen = new Pen(Color.Green, 4); GraphicsPath graphicsPath = new GraphicsPath(); JointCollection joints = skeleton.Joints; Size defaultSize = new Size(4, 4); //Vẽ phần đầu DrawBone(graphicsPath,joints[JointType.Head],joints[JointType.ShoulderCenter] , defaultSize); //Vẽ tay phải DrawBone(graphicsPath, joints[JointType.ShoulderCenter], joints[JointType.ShoulderRight], defaultSize); DrawBone(graphicsPath, joints[JointType.ShoulderRight], joints[JointType.ElbowRight], defaultSize); DrawBone(graphicsPath, joints[JointType.ElbowRight], joints[JointType.WristRight], defaultSize); DrawBone(graphicsPath, joints[JointType.WristRight], joints[JointType.HandRight], defaultSize); //Vẽ tay trái DrawBone(graphicsPath, joints[JointType.ShoulderCenter], joints[JointType.ShoulderLeft], defaultSize); DrawBone(graphicsPath, joints[JointType.ShoulderLeft], joints[JointType.ElbowLeft], defaultSize); DrawBone(graphicsPath, joints[JointType.ElbowLeft], joints[JointType.WristLeft], defaultSize); DrawBone(graphicsPath, joints[JointType.WristLeft], joints[JointType.HandLeft], defaultSize); //Tiếp tục thực hàm 20 khớp xương để vẽ toàn khung xương … g.DrawPath(greenPen, graphicsPath); greenPen.Dispose(); graphicsPath.Dispose(); } //Hàm vẽ xương private void DrawBone(GraphicsPath gp, Joint joint1, Joint joint2, System.Drawing.Size jointSize) { DrawJoint(gp, joint1, jointSize); DrawJoint(gp, joint2, jointSize); if (joint1.TrackingState != JointTrackingState.NotTracked && joint2.TrackingState != JointTrackingState.NotTracked) { gp.AddLine(JointToPoint(joint1.Position), JointToPoint(joint2.Position)); } } 22 Lưu hình ảnh liệu tương ứng Sau khung xương vẽ hình ảnh khung xương lưu lại gán nhãn tương ứng, nhãn có liệu tương ứng với khung xương hình Từ việc gán nhãn người dùng dễ dàng lưu lại liệu tương ứng với khung xương phù hợp với tư thu mẫu public static List Get(Skeleton skeleton, DataType dataType) { List result = new List(); switch (dataType) { case DataType.AbsolutePosition: foreach (Joint joint in skeleton.Joints) { result.Add(joint.Position.X); result.Add(joint.Position.Y); result.Add(joint.Position.Z); } break; case DataType.RelativePosition: foreach (Joint joint in skeleton.Joints) { result.Add(joint.Position.X skeleton.Joints[JointType.Head].Position.X); result.Add(joint.Position.Y skeleton.Joints[JointType.Head].Position.Y); result.Add(joint.Position.Z skeleton.Joints[JointType.Head].Position.Z); } break; case DataType.AbsoluteRotation: foreach (BoneOrientation orientation in skeleton.BoneOrientations) { Vector4 vectorAbsoluteRotation = Nomalize(orientation.AbsoluteRotation.Quaternion); result.Add(vectorAbsoluteRotation.X); result.Add(vectorAbsoluteRotation.Y); result.Add(vectorAbsoluteRotation.Z); result.Add(vectorAbsoluteRotation.W); } break; case DataType.HierarchicalRotation: foreach (BoneOrientation orientation in skeleton.BoneOrientations) { Vector4 vectorHierarchicalRotation = Nomalize(orientation.HierarchicalRotation.Quaternion); result.Add(vectorHierarchicalRotation.X); result.Add(vectorHierarchicalRotation.Y); result.Add(vectorHierarchicalRotation.Z); result.Add(vectorHierarchicalRotation.W); } break; } return result; } Hàm dùng để trích xuất liệu theo phương pháp đề 23 Chức nhận dạng Ngoài ra, chương trình cho phép nhận dạng trực tiếp để kiểm tra kết mô hình sau huấn luyện Kết trả hàm bên nhãn phân lớp theo mô hình sau huấn luyện máy học SVM public double Predict(List data) { svm_problem test = ProblemHelper.ReadProblem(data); return svm.Predict(test.x[0]); } Bật chức nhận dạng cách check vào checkbox “Recognition Online” (1) lúc người đứng trước Kinect thực động tác phần 1.2 Hệ thống tự động nhận dạng khung xương trả kết thông qua bảng “Recognition Result” (2) 24 CHƯƠNG KIỂM THỬ VÀ ĐÁNH GIÁ 3.1 Thu thập liệu Bộ liệu thu thập từ người với chiều cao từ 1.5m-1.8m theo quy trình sau: Mỗi người thu 20 tư khác Mỗi tư thu khoảng cách 2.5m ± 0.2m 3.3m ± 0.2m Mỗi khoảng cách có vị trí đứng: bên trái, bên phải Mỗi tư lấy góc độ: đối diện kinect, xoay trái 30 xoay phải 30 Mỗi góc độ thu liệu 10 khung xương Vị trí lấy mẫu Thiết bị Kinect 2.5m 3.3m Hình 3.1: vị trí lấy mẫu liệu Do thiết bị Kinect sử dụng cảm biến hồng ngoại để nhận dạng nên nhiệt độ môi trường ảnh hưởng đến trình thu mẫu liệu Ví dụ: khung xương hình bên nhận dạng sai môi trường xung quanh có nhiệt độ cao gây nhiễu, hình bên phải ảnh độ sâu (depth image) đo cảm biến hồng ngoại Chính nên thu sử dụng thiết bị Kinect nơi mát hạn chế ánh sáng mặt trời chiếu vào Hình 3.2: Ảnh hưởng nhiệt độ môi trường đến trình thu mẫu 25 3.2 Phương pháp đánh giá Đối với phương pháp trích xuất đặc trưng tập liệu kiểm tra sẵn nên áp dụng nghi thức k-flod để đánh giá [19] Nghi thức chia tập liệu D thành k phần (fold) nhau, lặp lại k lần, lần sử dụng k-1 folds để học fold để kiểm tra, sau tính trung bình k lần kiểm tra Do tập liệu có 300 phần tử nên sử dụng phương pháp 10-fold it = test train train train train train train train train train it = train test train train train train train train train train train train train train train train train train test … it = 10 train Hình 3.3: Nghi thức kiểm định chéo 10-fold Đối với thực nghiệm nêu bên liệu chia thành tập học tập kiểm tra, nên đề tài sử dụng tập liệu học để xây dựng mô hình sử dụng tập liệu kiểm tra để đánh giá hiệu giải thuật Tiêu chí đánh giá Độ 𝑐ℎí𝑛ℎ 𝑥á𝑐 𝑝ℎâ𝑛 𝑙ớ𝑝 𝑡ổ𝑛𝑔 𝑡ℎể = 26 𝑆ố 𝑙ượ𝑛𝑔 𝑝ℎâ𝑛 𝑙ớ𝑝 𝑐ℎí𝑛ℎ 𝑥á𝑐 𝑇ổ𝑛𝑔 𝑠ố 𝑙ượ𝑛𝑔 𝑝ℎâ𝑛 𝑙ớ𝑝 3.3 Kết Kết phân lớp SVM với phương pháp trích đặc trưng khác trình bày hình 3.2 Các tham số SVM hàm nhân tuyến tính, số c = 1000 Độ xác phương pháp trích đặc trưng 100.00% 99.83% 99.81% 99.80% 99.60% 99.50% 99.40% 99.20% 99.00% 98.90% 98.80% 98.60% 98.40% Tọa độ tuyệt đối Tọa độ tương đối Góc xoay tuyệt đối Góc xoay tương đối Độ xác Hình 3.4: Đồ thị biểu diễn độ xác phương pháp trích xuất đặc trưng Dựa vào kết cho thấy phương pháp đạt độ xác cao 99.83%, phương pháp với 99.81% Trong phương pháp đạt độ xác thấp mức chấp nhận 99.50% Tuy nhiên, mặt trực quan cho thấy độ xác phương pháp không cao lại đạt kết tốt, mặt liệu phương pháp dụng tọa độ khớp làm đặc trưng, đặc trưng có giá trị y không đổi giá trị z có giá trị 2.5 3.3 Chính độ xác phương pháp không đúng, để kiểm chứng thêm độ xác, luận văn thực thêm thực nghiệm sau: Thực nghiệm 1: Phân loại liệu thu vị trí bên trái cách huấn luyện liệu có vị trí bên phải Thực nghiệm 2: Phân loại liệu thu vị trí liệu thu vị trí bên trái bên phải Thực nghiệm 3: Phân loại liệu thu vị trí bên phải liệu thu vị trí bên trái 27 100.00% 98.00% Độ xác 96.00% 94.00% 92.00% 90.00% 88.00% 86.00% 84.00% 82.00% 80.00% Thực nghiệm Thực nghiệm Thực nghiệm Tọa độ tuyệt đối 96.03% 98.40% 95.70% Độ xác trung bình 96.71% Tọa độ tương đối 97.88% 99.58% 98.29% 98.58% Góc xoay tuyệt đối 87.85% 92.35% 87.26% 89.16% Góc xoay tương đối 97.21% 98.21% 97.13% 97.51% Bảng 3.1: Độ xác phương pháp trích xuất đặc trưng theo thực nghiệm Dựa vào kết cho thấy độ xác phương pháp không cao loại bỏ vị trí thu mẫu Trong phương pháp đạt độ xác trung bình cao 98.58% Do phương pháp sử dụng tọa độ tương đối góc xoay tương đối sử dụng để giải vấn đề toán ổn định độ xác cao phương pháp 28 3.4 Chương trình tập thể dục Chương trình viết Visual Studio Community 2013 tảng Winform ngôn ngữ C# kết hợp với thư viện libSVM C# Nicolas Panel Mô hình nhận dạng tư áp dụng chương trình mô hình sử dụng góc xoay tương đối Môi trường vận hành: Hệ điều hành Windows 7/8/8.1 Bộ xử lý: Tối thiểu Petium IV, 1.8GHz Dung lượng RAM: Tối thiểu 256MB Dung lượng trống đĩa cứng: Tối thiểu 100MB Bắt buộc có thiết bị Kinect Hình 3.5: Giao diện chương trình Demo TT Loại điều khiển Chức Label Hiện thông tin tập thể dục PictureBox Hiện hình ảnh tập thể dục Panel Chứa thông tin tập thể dục nút bấm để mở tập thể dục Button Thoát chương trình tập thể dục 29 Hình 3.6: Giao diện tập thể dục Loại điều khiển Chức WMPlayer Phát video tập thể dục PictureBox Hiện khung xương người tập Label Hiện điểm số tập động tác PictureBox Hiện tập 10 động tác TT Chương trình demo sử dụng lại hầu hết hàm cài đặt Chương nên chức chương trình không nêu lại 30 PHẦN III - KẾT LUẬN KẾT QUẢ ĐẠT ĐƯỢC Như luận văn đạt kết sau: Đã nghiên cứu toán nhận dạng tư sử dụng liệu cung cấp camera Kinect Đề xuất phương pháp đặc trưng với kết sau: o Phương pháp sử dụng tọa độ tương đối góc xoay tương đối đem lại độ xác cao, ổn định đặc biệt không phụ thuộc nhiều vào vị trí lấy mẫu o Phương pháp sử dụng tọa độ tuyệt đối đem lại kết cao nhiên độ ổn định không cao cần phải thu liệu nhiều vị trí, liệu thu phải đa dạng o Phương pháp sử dụng góc xoay tuyệt đối đem lại kết thấp không nên sử dụng để nhận dạng tư Xây dựng chương trình demo cho toán nhận dạng tư với phương pháp trích đặc trưng, nhận dạng 20 tư khác với 500 mẫu cho tư Ứng dụng kết đạt xây dưng chương trình tập thể dục với độ xác cao HƯỚNG PHÁT TRIỂN Dựa vào kết đạt được, mô hình nhận dạng tư người có nhiều ứng dụng như: Hướng dẫn tập tập võ, yoga, v.v Các ứng dụng dạng chấm điểm, kiểm tra động tác có tập hay không Nhận dạng tư nằm bệnh nhân Tuy nhiên, đề tài số hạn chế mà dựa vào để có nghiên cứu khác Trong trình thu mẫu liệu, phận thể bị che khuất dẫn đến khung xương không xác (các điểm khung xương bị suy biến) Để giải vấn đề sử dụng nhiều thiết bị Kinect đặt vị trí khác để thu mẫu xác từ giúp cho việc nhận dạng đạt độ xác cao Đây phương án khả thi thiết bị Kinect có chi phí thấp Đề tài thực mô hình máy học vector hỗ trợ tuyến tính, tương lai thực hàm nhân (Kernel) khác như: o Polynomial o Radial Basis Function o Sigmoid 31 Hay sử dụng giải thuật khác như: o Backpropagation Neutral Network o Cây định o Bayes thơ ngây Đề tài tạo tiền đề để phát triển từ nhận dạng tư sang nhận dạng cử Trong tương lai nghiên cứu sử dụng thiết bị Kinect v2 có khả đạt độ xác cao so với nghiên cứu 32 TÀI LIỆU THAM KHẢO [1] M Peck, "Defense News," 17 December 2012 [Online] Available: http://www.defensenews.com/article/20121217/TSJ01/312170003/MicrosoftWants-Kinect-Pentagon [Accessed 2015] [2] "InfoStrat," Information Strategies, Inc, 2015 [Online] Available: http://www.infostrat.com/solutions/remotion360 [Accessed 2015] [3] I Cohen and H Li, "Inference of Human Postures by Clasification of 3D Human Body Shape," in IEEE International Workshop on Analysis and Modeling of Faces and Gestures, IOCV 2003, 2003 [4] H.-C Mo, J.-J Leou and C.-S Lin, "Human Behavior Analysis Using Multiple 2D Features and Multicategory Support Vector Machine," MVA 2009 APR Conference on Machine Vision Applications, Yokohama, 2009 [5] Z L Haiyong Zhao, "Human Action Recognition Based on Non-linear SVM Decision Tree," pp 7: 2461-2468, 2011 [6] T.-L Le, M.-Q Nguyen and T.-T.-M Nguyen, "Human posture recognition using human skeleton," IEEE, pp 340-345, 2013 [7] O Patsadu, C Nukoolkit and B Watanapa, "Human gesture recognition using Kinect camera," in 2012 Ninth International Joint Conference on Computer Science and Software Engineering, Bangkok, 2012 [8] S Saha, S Ghosh, A Konar and A K Nagar, "Gesture recognition from Indian classical dance using Kinect," in CICSYN '13 Proceedings of the 2013 Fifth International Conference on Computational Intelligence, Communication Systems and Networks, Kolkata, 2013 [9] C.-C Chang and C.-J Lin, "LIBSVM : a library for support vector machines," ACM Transactions on Intelligent Systems and Technology, vol 2, no 3, pp 2:27:1 27:27, 2011 [10] "Kinect for Windows," Microsoft, [Online] Available: http://www.microsoft.com/en-us/kinectforwindows/ [Accessed 2015] [11] Human Interface Guidelines v1.8.0, Microsoft Corporation, 2013 [12] V N Vapnik, "The Nature of Statistical Learning Theory," Springer, New York, 1995 [13] Đ C Trần K N Phạm, “Phân loại văn với máy học vector hỗ trợ định,” Tạp chí Khoa học 2012, pp 21a 52-63, 2012 33 [14] S Monir, S Rubya and H S Ferdous, "Rotation and Scale Invariant Posture Recognition," Bangladesh University of Engineering and Technology, Dhaka [15] C M Bishop, in Pattern Recognition and Machine Learning (Information Science and Statistics), New Jersey, Springer-Verlag New York, Inc Secaucus, NJ, USA, 2006, p 341 [16] V N Vapnik, Statistical Learning Theory, New York: Wiley-Interscience, 1998 [17] C.-W Hsu and C.-J Lin, "A Comparison of Methods for Multi-class Support Vector Machines," IEEE Transactions on Neural Networks, vol XIII, no 2, pp 415-425, 2002 [18] N Panel, "libsvm.net," December https://github.com/nicolaspanel/libsvm.net 2014 [Online] Available: [19] Đ T Nghị P N Khang, “Phương pháp đánh giá hiệu giải thuật học có giám sát,” Giáo trình nguyên lý máy học, Cần Thơ, Đại học Cần Thơ, 2012, p 75 34 [...]... 34:0.658672451972961 35:-0.238412603735924 Người mô tả tư thế Thu nhận tư thế Nhận dạng tư thế Mô tả tư thế Tư thế được nhận dạng 1.2 Các tư thế người cần nhận dạng Hệ thống sẽ nhận dạng 20 tư thế được trình bày trong bảng 1.1, tuy chỉ nhận dạng 20 tư thế những khi cần thiết hệ thống có thể bổ sung nhận dạng nhiều tư thế hơn TT Hình ảnh tư thế Mô tả 1 Tư thế đứng: ứng viên đứng thẳng trên hai chân,... luận về 4 phương pháp nhận dạng tư thế người với camera Kinect, hướng phát triển cho những đề tài kế tiếp 4 PHẦN II - NỘI DUNG CHƯƠNG 1 MÔ TẢ BÀI TOÁN 1.1 Mô tả Nhận dạng tư thế người là phân lớp một tư thế thu được từ camera vào một trong các tư thế đã được định nghĩa trước đó ví dụ như: đứng, ngồi, nằm Người mô tả tư thế sẽ đứng trước camera và hệ thống sẽ nhận dạng tư thế đó là tư thế gì 9 1:-0.89025092124939... giới thiệu sơ bộ về bài toán nhận dạng tư thế người với camera Kinect thêm vào đó là 20 tư thế sẽ được nhận dạng 2 Thiết kế và cài đặt giải pháp Chương 2 sẽ tập trung vào 2 phần trọng tâm của bài toán là cách trích đặc trưng và nhận dạng thư thế, trong đó sẽ giới thiệu về camera Kinect, quy trình trích đặc trưng, thuật toán SVM, chương trình hỗ trợ trích đặc trưng 3 Kiểm thử và đánh giá Cách kiểm thử,... Phần này sẽ trình bày mô hình máy học SVM và ứng dụng nó vào giai đoạn nhận dạng 2.2.1 Máy học vector hỗ trợ (Support Vector Machine – SVM) 2.2.1.1 Giới thiệu Máy học vector hỗ trợ (SVM) là một giải thuật máy học có giám sát do Vapnik xây dựng vào năm 1995 [12] Giải thuật này trong những năm gần đây được sử dụng nhiều trong lĩnh vực phân loại (classification) và nhận dạng (prediction) Đã có nhiều nghiên... học véc-tơ hỗ trợ Trong luận văn, chúng tôi sử dụng thư viện libSVM [9] để huấn luyện và nhận dạng 5 NỘI DUNG NGHIÊN CỨU Dựa vào phạm vi của đề tài, bài luận văn này sẽ thực hiện theo hướng như sau: Tìm hiểu camera Kinect và bộ phát triển SDK của thiết bị Thu thập dữ liệu: tạo nhiều tư thế khác nhau và dùng Kinect ghi nhận lại vị trí các khớp xương của mỗi tư thế Mỗi tư thế thu nhận nhiều lần với. .. tay, nhận dạng khuôn mặt người, v.v… Nhận dạng tư thế và cử chỉ cũng nằm trong số đó, có nhiều phương pháp đã được nghiên cứu về nhận dạng tư thế như Backpropagation Neural Network (BPNN), máy học SVM, cây quyết định, Bayes thơ ngây Trong đó thuật toán SVM là một phương pháp rất hiệu quả và đem lại kết quả có độ chính xác cao [7, 14] Bài toán phân lớp cơ bản dựa vào những đặc trưng của một lớp và quyết... thống nhận dạng tư thế với camera Kinect và máy học SVM Huấn luyện Nhận dạng Thu ảnh Dữ liệu Ảnh màu Depth Image Dữ liệu khung xương Thu ảnh Dữ liệu Ảnh màu Depth Image Dữ liệu khung xương Trích đặc trưng Trích đặc trưng Tọa độ tuyệt đối Tọa độ tư ng đôi Góc xoay tuyệt đối Góc xoay tư ng đối Tọa độ tuyệt đối Tọa độ tư ng đôi Góc xoay tuyệt đối Góc xoay tư ng đối Huấn luyện Mô hình nhận. .. 8 CHƯƠNG 2 THIẾT KẾ VÀ CÀI ĐẶT GIẢI PHÁP Hệ thống nhận dạng bao gồm hai phần chính Trích đặc trưng Nhận dạng tư thế Trong chương này, chúng tôi trình bày chi tiết về hai giai đoạn trong một quy trình nhận dạng tư thế với kinect và SVM Phần cài đặt hệ thống cũng sẽ được trình bày ở cuối chương 2.1 Trích đặc trưng Trích đặc trưng là bước không thể thiếu trong một hệ thống nhận dạng Mục tiêu của trích... phân biệt đối tư ng này với đối tư ng khác Trong phần này chúng tôi sẽ trình bày bốn phương pháp trích đặc trưng tư thế người với camera Kinect 2.1.1 Thiết bị Kinect Kinect [10, 11] là một thiết bị cảm biến chuyển động của Microsoft được tích hợp dành cho Xbox 360 Thiết bị cung cấp một giao diện người dùng tự nhiên (Natural User Interface – NUI) qua đó người dùng có thể tư ng tác với máy tính mà không... này mỗi vector đặc trưng cho một tư thế sẽ có 20 x 4 = 80 chiều Phương pháp 4: trong phương pháp này 20 vector thể hiện cho góc xoay tư ng đối bao gồm 4 giá trị (x, y, z, w) sẽ được sử dụng như vậy mỗi vector đặc trưng cho một tư thế sẽ có 20 x 4 = 80 chiều 12 2.2 Nhận dạng tư thế Sau khi đã trích đặc trưng, giai đoạn kế tiếp là huấn luyện một mô hình phân lớp có khả năng nhận dạng đúng tư thế dựa ... 35:-0.238412603735924 Người mô tả tư Thu nhận tư Nhận dạng tư Mô tả tư Tư nhận dạng 1.2 Các tư người cần nhận dạng Hệ thống nhận dạng 20 tư trình bày bảng 1.1, nhận dạng 20 tư cần thiết hệ thống bổ sung nhận dạng. .. thể người với camera Kinect 12 2.2 Nhận dạng tư 13 2.2.1 Máy học vector hỗ trợ (Support Vector Machine – SVM) 13 2.2.1.1 Giới thiệu .13 2.2.1.2 Máy học vector hỗ trợ. .. toán nhận dạng tư người với camera Kinect thêm vào 20 tư nhận dạng Thiết kế cài đặt giải pháp Chương tập trung vào phần trọng tâm toán cách trích đặc trưng nhận dạng thư thế, giới thiệu camera Kinect,