Đồ
Đồ án
án 11
NHẬN DẠNG NGÔN NGỮ KÝ HIỆU
Giảng viên hướng dẫn: TS.Hà Hoàng Kha
L/O/G/O
NỘI
NỘI DUNG
DUNG
Camera
Kinect
PCA
SVM
Chương trình nhận dạng ngôn ngữ ký hiệu thời gian thực sử
dụng chương trình MATLAB
TỔNG
TỔNG QUAN
QUAN ĐỀ
ĐỀ TÀI
TÀI
•
•
1.
2.
3.
Bài toán phát hiện đối tượng.
Nhiệm vụ của đề tài
Tìm hiểu tổng quan xử lý ảnh số, thuật toán lọc nhiễu, bắt ảnh động và nhận dạng.
Nghiên cứu cơ sở lý thuyết 2 thuật toán nhận dạng PCA và SVM.
So sánh ưu khuyết điểm 2 thuật toán PCA và SVM trong nhận dạng cử chỉ tay.
Ý
Ý NGHĨA
NGHĨA -- ỨNG
ỨNG DỤNG
DỤNG
•
Giúp người câm có thể hoàn toàn giao tiếp với người bình thường thông qua việc sử dụng ký hiệu
ngôn ngữ tay để diễn đạt.
Ý
Ý NGHĨA
NGHĨA -- ỨNG
ỨNG DỤNG
DỤNG
•
Công
nghiệp:
chếcông
tạo Robot
bám
theolên
cáccác
cửSmart
động bàn
tay Smart
hoạt động
trong môi
trường
khắc
như
khu
Giải trí:
tích hợp
nghệ xử
lý ảnh
House,
TV, Smart
Phone,
laptop,
v.v..
tương
vực
cóđiều
phóng
xạ cao,
khu vực
dễ xảy
tai với
nạn.các cử chỉ của bàn tay.
tác và
khiển
các thiết
bị trong
gia ra
đình
Tổng
Tổng quan
quan về
về ảnh
ảnh số
số
Các đặc trưng cơ bản của 1 ảnh số:
•
•
•
•
•
Điểm ảnh (pixel)
Độ phân giải (resolution)
Mức xám (grayscale)
Lược đồ xám (histogram)
Các không gian màu (color space)
TÌM HIỂU VÀ ỨNG DỤNG CỦA KINECT
TÌM HIỂU VÀ ỨNG DỤNG CỦA KINECT
BodyPosture
Cho biết rằng khung xương mà camera nhận dạng được đang ở trạng thái đứng (Standing) hay ngồi (Seated). Với giá trị khung xương đứng ( thiết bị
cung cấp 20 điểm trên khung xương) và khung xương ngồi (cung cấp 10 điểm, sử dụng các điểm từ 2-11). Trạng thái mặc định từ thiết bị là Standing.
CameraElevationAngle
0
0
Góc quay của ống kính cảm biến. Giá trị cài đặt phải là số nguyên trong phạm vi [-27 , 27 ].
DepthMode
Thiết lập mức sâu của của cảm biến. Giá trị là Default( có tầm từ 50 đến 400cm) và Near( có tầm từ 40 đến 300cm).
FrameRate
Thiết lập số khung chụp trong 1 giây.
SkeletonsToTrack
Cho biết Skeleton Tracking ID ta có được trong dữ liệu chiều sâu từ cảm biến. Ví dụ:
[TrackingID1] theo dấu 1 khung xương với Tracking ID = TrackingID1
[TrackingID1 TrackingID2] theo dấu 2 khung xương với Tracking IDs = TrackingID1 and TrackingID2.
TrackingMode
Chỉ ra trạng thái hoạt động của việc theo dõi khung xương từ camera. Có các giá trị là:
Skeleton: theo dấu toàn bộ khung xương với tất cả các khớp
Position :vị trí của các khung xương.
Off :tắt theo dõi.
TÌM HIỂU VÀ ỨNG DỤNG CỦA KINECT
IsPositionTracked
Ma trận [1x6] có giá trị nhị phân, cho biết số khung xương mà thiết bị nhận dạng được.
JointDepthIndices
Nếu đặc tính BodyPosture được đặt ở trạng thái Standing, thì dữ liệu JointDepthIndices là dữ liệu gồm toạ độ X-Y của 20 khớp
xương trong ảnh độ sâu.
Nếu đặc tính BodyPosture được đặt ở trạng thái Seated, thì dữ liệu là toạ độ x-y của 10 khớp khương trong ảnh độ sâu.
JointImageIndices
Nếu đặc tính BodyPosture được đặt ở trạng thái Standing, thì dữ liệu JointDepthIndices là toạ độ X-Y của 20 khớp xương trong
ảnh màu.
Nếu đặc tính BodyPosture được đặt ở trạng thái Seated, thì dữ liệu là toạ độ x-y của 10 khớp khương trong ảnh màu.
JointTrackingState
Đây là ma trận [20x6] cho biết trạng thái theo dõi 20 khớp xương từ cảm biến tương ứng với 6 bộ xương. Giá trị là:
0: không nhận ra từ dữ liệu thu về.
1: tự dự đoán vị trí các khớp xương theo các thuật toán của Kinect.
2: nhận được từ dữ liệu thu về.
TÌM HIỂU VÀ ỨNG DỤNG CỦA KINECT
JointWorldCoordinates
Đây là ma trận [20x3x6] của hệ toạ độ x-y-z cho 20 khớp xương, trong đó z là khoảng cách từ bộ xương nhận được tới Kinect.
Nếu BodyPosture ở trạng thái Standing thì nhận được 20 khớp xương. Nếu BodyPosture ở trạng thái Seated thì nhận được 10
khớp xương.
PositionDepthIndices
Đây là ma trận [2x6] cung cấp giá trị vị trí của khung xương trong khung ảnh độ sâu.
PositionImageIndices
Đây là ma trận [2x6] cung cấp giá trị vị trí của khung xương trong khung ảnh màu.
PositionWorldCoordinates
Đây là ma trận [3x6] cung cấp giá trị vị trí của khung xương trong không gian 3 chiều, với Z là khoảng cách từ khung xương tới
cảm biến.
RelativeFrame
Địa chỉ Frame(mẫu) trong 1 lần trigger.
SegmentationData
Ảnh nhị phân hiển thị cơ thể người tách ra khỏi môi trường thật.
SkeletonTrackingID
Địa chỉ ID tương ứng với mỗi đối tượng Kinect nhận diện được.
TriggerIndex
Số thự tự lần Trigger tương ứng.
Bài toán phân 2 lớp cho SVM
Cho tập mẫu D = {(x1, y1), (x2, y2), …, (x3, y3)} với xi ϵ ℝn, thuộc vào hai lớp nhãn : {-1,1} là hai lớp
nhãn tương ứng của các (1 biểu thị lớp , -1 biểu thi lớp ).
xi
F(x) =w.x + b = 0
Bài toán phân 2 lớp cho SVM
•
•
wx + b ≥ 1 thuộc lớp y =1
i
i
wx + b ≤ -1 thuộc lớp y =-1
i
i
yi.(xi.w + b) – 1 ≥ 0
Hệ thống nhận dạng
Dữ liệu huấn luyện và nhận dạng
realVid = videoinput('kinect',1);
depthVid = videoinput('kinect',2);
triggerconfig(depthVid, 'manual');
depthVid.FramesPerTrigger=1;
depthVid.TriggerRepeat=inf;
triggerconfig(realVid, 'manual');
realVid.FramesPerTrigger=1;
realVid.TriggerRepeat=inf;
set(getselectedsource(depthVid),'TrackingMode', 'Skeleton');
start(depthVid);
start(realVid);
Tách bàn tay ra khỏi môi trường thật
[depthMap,~,depthMetaData]=getdata(depthVid);
data=getdata(realVid);
rightHand=depthMetaData.JointImageIndices(12,:,idx);
rightHandBox=[rightHand-100 200 200];
handDepthImage = imcrop(depthMap,rightHandBox);
handSegImage = imcrop(depthMetaData.SegmentationData,rightHandBox);
BW=double(handDepthImage).*double(handSegImage>0);
BW=imfill(BW,'holes');
BW=imclose(BW,strel('disk',5));
[x, y]=size(handReal);
handRealImage=rgb2gray(handRealImage);
for i=1:x
for j=1:y
if BW(i,j)==0
handRealImage(i,j)=255;
end
end
end
Huấn luyện SVM
for i =1:sotaphuanluyen
for i =1 : kichthuoc1taphuanluyen
img = imread(str);
[dong cot] = size(img);
tam = reshape(img,1,dong*cot);
in=[in;tam];
end
end
for j=1:solop
for i=1:kichthuoclop
out=[out;i];
end
end
% bien anh thanh vector
% tang dan kich thuoc ma tran T
Huấn luyện SVM
in=double(in);
out=double(out);
u=unique(out); % chuyển ma trận out với dữ liệu lặp thành ma trận u là dữ liệu của ma trận out không lặp
solop=length(u); % với 24 cử chỉ thì solop=24
MaxIter=statset('MaxIter',Inf,'Display','final'); % số vòng lặp vô hạn
for k=1:solop
G1vAll=(out==u(k));
models(k) = svmtrain(in,G1vAll,'options',MaxIter);
end
truct=models;
Huấn luyện SVM
>> out=[1 2 3 4 1 2 3 4 1 2 3 4];
>> u=unique(out)
u =
1
2
3
4
>> G1vAll=(out==u(1))
G1vAll =
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
>> G1vAll=(out==u(2))
G1vAll =
0
1
0
0
0
1
Nhận dạng SVM
[dong cot] = size(anhvao);
tam = reshape(anhvao,1,dong*cot); tam=double(tam);
for k=1:24
if(svmclassify(truct(k),tam))
vitri=k;
break;
else
vitri=0;
end
end
Kết quả
Contents
ThemeGallery is a Design Digital Content & Contents mall
developed by Guild Design Inc.
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Add your text in here
Contents 1
Contents 2
Hay ha
Title in here
Click to add Text
•
Click to add Text
•
Click to add Text
•
Click to add Text
•
Click to add Text
•
Click to add Text
•
Click to add Text
•
Click to add Text
Click to add Text
•
Click to add Text
•
Click to add Text
Title in here
SVM
Click to add Text
Title in here
•
Click to add Text
•
Click to add Text
Describe aa vision
vision of
of company
company or
or strategic
strategic contents.
contents.
Describe
PCA
•
•
•
KINECT
Hot Tip
•
How do I incorporate my logo to a slide that will apply to all the other
slides?
–
On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change
images to the one you like, then it will apply to all the other slides.
[ Image information in product ]
Image : www.themegallery.com
Note to customers : This image has been licensed to be used within this PowerPoint template only.
You may not extract the image for any other use.
Click to edit title style
e
ur
Yo
re
He
xt
Te
r
He
t
x
Te
e
Yo
ur
Te
xt
r
He
xt
Te
contents
developed by Guild Design Inc.
He
ur
Yo
Description of the
ThemeGallery is a Design Digital Content & Contents mall
re
ur
Yo Click to add Text
Contents
Click to add Text
Click to add Text
Click to add Text
Click to add Text
Click to edit title style
Click to add Text
•
Click to add Text
Contents
ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.
Click to add Text