Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
3,94 MB
Nội dung
ĐỒ ÁN TỐT NGHIỆP NHẬNDIỆNKHUÔNMẶTTỪCAMERASỬDỤNGMACHINELEARNING x DANH MỤC CÁC TỪ VIẾT TẮT HOG : Histogram of Oriented Gradients SVM: Support Vector Machine SURF: Speeded-Up Robust Features SIFT: Scale Invariant Feature Transfor RGB: Red, Green, Blue CMY: Cyan Meganta yellow LoG: Lower of Gaussian DoG: difference of Gaussian AI: Artifical Intelligence xi Đồ Án Tốt Nghiệp Trang 3/65 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1) Giới thiệu tổng quát đề tài Nhậndiệnkhuônmặt xu phát triển mạnh mẽ, dẫn đầu với công nghệ nhậndiện thấy apple họ đưa nhậndiệnkhuônmặt vào sửdụng việc bảo mật Apple phân tích việc tìm khuônmặt giống với khuônmặt khác đường nét, đặc trưng tỉ lệ vô Chính ưu điểm đặc khn mặt khác tỉ lệ khả bảo vệ việc nhậndiệnkhuônmặt cao Với tính chất tỉ lệ xác suất cao vậy, việc sửdụng công nghệ nhậndiệnkhuônmặt phổ biến áp dụng nhiều lĩnh vực như: Hình 1: Nhậndiện khn mặt facebook Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning Đồ Án Tốt Nghiệp Trang 4/65 Hình 2: Nhậndiệnkhuônmặt Iphone 1.2) Những phần đề tài thực Nhậndiệnkhuônmặt phương pháp trích xuất đặc trưng riêng hình ảnh khn mặt sau sửdụngmachinelearning với phương thức máy học đặc trưng để chúng phân loại xác người cần nhậndiện Bên cạnh đề tài nghiên cứu thuật tốn nhận dạng đặc điểm khn mặt như: • HOG • SIFT • SURF • Support Vector Machine Và thơng số hiệu chỉnh sau: • Kernel Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning Đồ Án Tốt Nghiệp Trang 5/65 • Gamma • Regularization Margin Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning Đồ Án Tốt Nghiệp Trang 6/65 CHƯƠNG 2: TỔNG QUAN VỀ XỬ LÝ ẢNH 2.1) Giới thiệu Xử lý ảnh lĩnh vực nghiên cứu quan trọng nay, xử lý ảnh áp dụng nhiều lĩnh vực thực tiễn ngày ngành công nghệ giới phát triển Hiện công nghệ an ninh giới ngày phát triển, chúng tần cần có ứng dụng thiết bị an ninh kiểm soát tốt để giúp ích cho việc quản lý xã hội giúp tìm người thất lạc camera đường phố khắp nơi Đây lí cho mục đích xây dựng đề tài Xử lí ảnh có nhiều ứng dụng, nói đến nhiệm vụ “ Ranger “ vào năm đầu thập niên 60 Lúc nhà khoa học Mỹ trang bị hệ thống quan sát ghi nhận hình ảnh gắn tàu vũ trụ nhằm chụp lại hình người bước lên mặt trăng hình xử lý tốt nhờ máy tính số Trong sống ngày với xã hội ngày phát triển, đòi hỏi nhu cầu ngày cao ứng dụng xử lý ảnh ứng dụng rộng rãi, tác động mạnh mẽ vào lĩnh vực : cải thiện ảnh truyền hình, truyền hình độ phân giải cao, an ninh, y tế, đồ họa Xử lý ảnh chia thành lĩnh vực Cải thiện hình ảnh Phục hồi ảnh Mã hóa ảnh Lý giải nội dung ảnh 2.1.1) Ảnh sô Ảnh số gồm tập hợp điểm ảnh với cường độ mức xám định nhằm hiển thị ảnh so với ảnh thật Số điểm ảnh lớn độ phân giải cao chất lượng ảnh tốt Nhậndiện khn mặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 7/65 Ảnh số ở không gian chiều hàm G(x,y) với G giá trị biên độ tọa độ (x,y) Trong đó, x số điểm ảnh theo trục hồnh, y theo trục tung Một ảnh có G(64x128) nghĩa độ phân giải ảnh 64x128 2.1.2) Sơ đồ xử lý ảnh sô Camera Thu nhận ảnh Số ảnh hóa Xử lý số Mục đích sửdụng Sơ đồ 1: Sơ đồ xử lý ảnh sô Chú giải: • Thu nhận hình ảnh: thơng qua camera ta thu nhận hình ảnh • Số ảnh hóa: bước chuyển giao ảnh từ tương tự thành số thơng qua q trình lượng tử hóa lấy mẫu • Xử lý số: phục hồi hình ảnh, trích xuất dặc tính, phát biên, … • Mục đích sử dụng: bước tùy vào ứng dụngnhận dạng, hiển thị, phân loại,… 2.1.3) Những mơ hình màu ảnh sơ • Mơ hình RGB: mơ hình bao gồm màu sở Red, Green Blue • Mơ hình CMY: mơ hình dựa màu chủ đạo Cyan, Magenta Yellow, màu có phần bù Red, Green Blue • Mơ hình HSV: màu sắc độ bão hòa, màu sắc, giá trị 2.1.4) Những thành phần bản mợt ảnh sơ • Điểm ảnh Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 8/65 • Độ phân giải • Các loại ảnh màu • Mức xám 2.2) Giải thuật Histogram of Oriented Gradients (HOG) 2.2.1) Giới thiệu Được Navneet Dalal Bill Triggs thuộc nhà nghiên cứu khoa học máy tính tự động hóa ở Pháp HOG kiểu mơ tả đặc tính sửdụng chủ yếu computer vision xử lí ảnh nhằm mục đích phát vật thể Đây kỹ thuật xuất định hướng gradient phần cụ thể hóa hình ảnh Với ý tưởng hình dạng trạng thái vật thể xuất có đặc trưng phân bố cường đồ hướng cạnh HOG dạng feature, biểu thị biểu đồ tính tốn dựa xuất định hướng gradients trục x trục y HOG phương pháp dựa phương pháp Scale-Invariant Feature Transform (SIFT) phát triển lên Nhưng HOG khác biệt với SIFT dùng để phát hiển vùng đặc điểm chứa nhiều đối tượng cần nhận dạng Thường mơ tả đặc trung HOG chuyển đổi hình ảnh với kích thước rộng x, cao y kênh thành vector đặc trưng mảng chiều dài n Thường có kích thước 64x128x3 số vector 3780 HOG với mô tả lấy trích xuất thơng tin có “ hữu ích “ bỏ thông tin không cần thiết ảnh Các gradients thay đổi hướng cường độ pixels có mức sáng khác hình ảnh, ngược lại khơng có mức sáng khác khơng có thay đổi Nhậndiện khn mặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 9/65 Với đặc tính sửdụng thơng tin “ hữu ích “ làm cho việc phát phân loại đối tượng tốt từ vector đặc trưng 2.2.2) Quy trình xử lý trích x́t HOG với mợt hình ảnh • Bước 1: Trước xử lý Theo lý thuyết đầu vào ảnh để trích xuất đặc trưng thường có kích thước 64x128 cho kết cao Có thể ảnh ở dạng khác như: màu, xám, trắng đen,… Hạn chế cần phải cố size hình cố định Trong trường hợp phải có tỉ lệ 1:2 Như cụ thể 100x200, 128x256, 1000x2000 Đầu tiên phải scale hình ảnh xuống mức 64x128 Hình 1: Giảm size mức tơi thiểu [1] • Bước 2: Tính tốn hình ảnh Gradient Tính tốn Gradient vector F(x,y), điểm ảnh chia thành chiều x y tính sau Fx (x,y)=limh0 Nhậndiện khn mặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 10/65 Fy (x,y)=limh0 Tính độ lớn hướng Gradient: G(i,j)= Θ=arctan() Thực tế, để tính gradient x y ảnh đầu vào, sửdụng lọc hình ảnh với mặt nạ lọc: Hình 2: Mặt nạ lọc biên [1] Đây ảnh sau lọc biên Hình 3: Sau lọc biên [1] Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 53/65 line([xm,xm],[rc(2)+rc(4),rc(2)+rc(4)-ht], 'LineWidth',2, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[ym,ym], 'LineWidth',2, 'Color','y'); line([rc(1),rc(1)+wd],[rc(2),rc(2)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2),rc(2)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2)+rc(4)-ht,rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)+wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2)+rc(4),rc(2)+rc(4)-ht], Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 54/65 'LineWidth',4, 'Color','y'); end hold off; end temp = hinhtest; load Maux A = [Maux]; HOG.numBin = 9; HOG.numNgang = 8; HOG.numDoc = 16; HOG.cellsize = 8; HOG.windowsize = [(HOG.numDoc * HOG.cellsize), (HOG.numNgang * HOG.cellsize)]; H = getHOGDescriptor(HOG, temp); hinhtest1 = H'; current = 0; i = 0; for i = 1:50 current = svmclassify(A(i), hinhtest1); if current == break; else current = 0; i = 0; end end if i==1 set(handles.edit3,'String','Nguyen Anh Do') Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 55/65 set(handles.edit6,'String','13/02/1996') set(handles.edit7,'String','Quang Ngai') axes(handles.axes11); hinh=imread('1.jpg'); imshow(hinh) else set(handles.edit3,'String','Unknown') end load MauXTest load TestTichCuc dem = 0; current = svmclassify(MauS22Test, TestTichCuc) for i = : length(current) if current(i) == dem = dem + 1; end end Hieusuat=((length(current) - dem))/length(current)*100; Hieusuat=strcat(num2str(Hieusuat),' %'); set(handles.edit4,'String',Hieusuat) load MauChung load TestTieuCuc dem = 0; current = svmclassify(MauChung, TestTieuCuc) for i = : length(current) if current(i) == dem = dem + 1; end end Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 56/65 Hieusuat = 100 - (dem / length(current) * 100) Hieusuat=strcat(num2str(Hieusuat),' %'); set(handles.edit5,'String',Hieusuat) function TaoMau_Callback(hObject, eventdata, handles) HOG.numBin = 9; HOG.numNgang = 8; HOG.numDoc = 16; HOG.cellsize = 8; HOG.windowsize = [(HOG.numDoc * HOG.cellsize), (HOG.numNgang * HOG.cellsize)]; posFiles = getImagesInDir('./TestTichCuc/', true); negFiles = getImagesInDir('./thumucrong/', true); Y_train = [ones(length(posFiles), 1); zeros(length(negFiles), 1)]; fileList = [posFiles, negFiles]; TestTichCuc = zeros(length(fileList), 3780); fprintf('Tinh toan cho %d anh: ', length(fileList)); for i = : length(fileList) imgFile = char(fileList(i)); img = imread(imgFile); H = getHOGDescriptor(HOG, img); TestTichCuc(i, :) = H'; end save TestTichCuc TestTichCuc function MauTieuCuc_Callback(hObject, eventdata, handles) HOG.numBin = 9; HOG.numNgang = 8; HOG.numDoc = 16; HOG.cellsize = 8; Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 57/65 HOG.windowsize = [(HOG.numDoc * HOG.cellsize), (HOG.numNgang * HOG.cellsize)]; posFiles = getImagesInDir('./TestTieuCuc/', true); negFiles = getImagesInDir('./thumucrong/', true); Y_train = [ones(length(posFiles), 1); zeros(length(negFiles), 1)]; fileList = [posFiles, negFiles]; TestTieuCuc = zeros(length(fileList), 3780); fprintf('Tinh toan cho %d anh: ', length(fileList)); for i = : length(fileList) imgFile = char(fileList(i)); img = imread(imgFile); H = getHOGDescriptor(HOG, img); TestTieuCuc(i, :) = H'; end save TestTieuCuc TestTieuCuc Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 58/65 PHỤ LỤC IV CODE SỬ DỤNGCAMERA function loadcam_Callback(hObject, eventdata, handles) global mycam mycam=ipcam('http://192.168.1.168:8080/video'); preview(mycam) function chupanh_Callback(hObject, eventdata, handles) global mycam global Image Image=snapshot(mycam); axes(handles.axes3); imshow(Image) function TimKhuonMat_Callback(hObject, eventdata, handles) global bboxx global Image global hinhtest faceDetector = vision.CascadeObjectDetector(); hinhtest=rgb2gray(Image); bboxx = step(faceDetector, hinhtest); axes(handles.axes4); imshow(hinhtest) if(~isempty(bboxx)) hold on; for i=1:size(bboxx,1) bbox=bboxx(i,:); rc=bbox+[-bbox(3)/4,-bbox(4)/4,bbox(3)/2,bbox(4)/2]; ht=round(rc(4)/20); wd=round(rc(3)/20); Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 59/65 xm=round(rc(1)+(rc(3)/2)); ym=round(rc(2)+(rc(4)/2)); rectangle('Position',rc, 'Curvature',0, 'LineWidth',2, 'LineStyle',' ', 'EdgeColor','y') line([xm,xm],[rc(2),rc(2)+ht], 'LineWidth',2, 'Color','y'); line([rc(1),rc(1)+wd],[ym,ym], 'LineWidth',2, 'Color','y'); line([xm,xm],[rc(2)+rc(4),rc(2)+rc(4)-ht], 'LineWidth',2, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[ym,ym], 'LineWidth',2, 'Color','y'); line([rc(1),rc(1)+wd],[rc(2),rc(2)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2),rc(2)], Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 60/65 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2)+rc(4)-ht,rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)+wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2)+rc(4),rc(2)+rc(4)-ht], 'LineWidth',4, 'Color','y'); end hold off; end function nhandang_Callback(hObject, eventdata, handles) global hinhtest temp = hinhtest; load MauX A = [MauX]; HOG.numBin = 9; HOG.numNgang = 8; HOG.numDoc = 16; HOG.cellsize = 8; HOG.windowsize = [(HOG.numDoc * HOG.cellsize), (HOG.numNgang * HOG.cellsize)]; H = getHOGDescriptor(HOG, temp); Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 61/65 hinhtest1 = H'; current = 0; i = 0; for i = 1:50 current = svmclassify(A(i), hinhtest1); if current == break; else current = 0; i = 0; end end if i==1 set(handles.edit3,'String','Nguyen Anh Do') set(handles.edit6,'String','13/02/1996') set(handles.edit7,'String','Quang Ngai') axes(handles.axes11); hinh=imread('1.jpg'); imshow(hinh) else set(handles.edit3,'String','Unknown') end function TachKhuonMat_Callback(hObject, eventdata, handles) global hinhtest global bboxx for i = : size(bboxx, 1) J = imcrop(hinhtest, bboxx(i, :)); Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 62/65 end hinhtest=imresize(J,[128 64]); Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 63/65 PHỤ LỤC V CODE CHỤP HÌNH DỮ LIỆU function loadcamera_Callback(hObject, eventdata, handles) global mycam global Image Image=snapshot(mycam); axes(handles.axes3); imshow(Image) function chuphinh_Callback(hObject, eventdata, handles) global mycam global Image Image=snapshot(mycam); axes(handles.axes1); imshow(Image) function savehinh_Callback(hObject, eventdata, handles) global Image faceDetector = vision.CascadeObjectDetector(); hinhtest=rgb2gray(Image); bboxx = step(faceDetector, hinhtest); if(~isempty(bboxx)) for i=1:size(bboxx,1) bbox=bboxx(i,:); rc=bbox+[-bbox(3)/4,-bbox(4)/4,bbox(3)/2,bbox(4)/2]; ht=round(rc(4)/20); wd=round(rc(3)/20); xm=round(rc(1)+(rc(3)/2)); ym=round(rc(2)+(rc(4)/2)); rectangle('Position',rc, 'Curvature',0, Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 64/65 'LineWidth',2, 'LineStyle',' ', 'EdgeColor','y') line([xm,xm],[rc(2),rc(2)+ht], 'LineWidth',2, 'Color','y'); line([rc(1),rc(1)+wd],[ym,ym], 'LineWidth',2, 'Color','y'); line([xm,xm],[rc(2)+rc(4),rc(2)+rc(4)-ht], 'LineWidth',2, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[ym,ym], 'LineWidth',2, 'Color','y'); line([rc(1),rc(1)+wd],[rc(2),rc(2)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2),rc(2)+ht], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2),rc(2)], 'LineWidth',4, 'Color','y'); line([rc(1),rc(1)],[rc(2)+rc(4)-ht,rc(2)+rc(4)], 'LineWidth',4, Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 65/65 'Color','y'); line([rc(1),rc(1)+wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)-wd],[rc(2)+rc(4),rc(2)+rc(4)], 'LineWidth',4, 'Color','y'); line([rc(1)+rc(3),rc(1)+rc(3)],[rc(2)+rc(4),rc(2)+rc(4)-ht], 'LineWidth',4, 'Color','y'); end end for i = : size(bboxx, 1) J = imcrop(hinhtest, bboxx(i, :)); end hinhtest=imresize(J,[128 64]); a=str2double(get(handles.nhapso,'string')); filename = sprintf('%02d.png', a); imwrite(hinhtest,filename) function savehinhRGB_Callback(hObject, eventdata, handles) global Image a=str2double(get(handles.nhapso,'string')); filename = sprintf('%02d.png', a); imwrite(Image,filename) Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 66/65 PHỤ LỤC VI CODE ĐÀO TẠO MẪU TRAINING clear all clc HOG.numBin = 9; HOG.numNgang = 8; HOG.numDoc = 16; HOG.cellsize = 8; HOG.windowsize = [(HOG.numDoc * HOG.cellsize), (HOG.numNgang * HOG.cellsize)]; posFiles = getImagesInDir('./S22/', true); negFiles = getImagesInDir('./conlai/', true); Label = [ones(length(posFiles), 1); zeros(length(negFiles), 1)]; fileList = [posFiles, negFiles]; MauS22Test = zeros(length(fileList), 3780); fprintf('Computing descriptors for %d training windows: ', length(fileList)); for i = : length(fileList) imgFile = char(fileList(i)); img = imread(imgFile); H = getHOGDescriptor(HOG, img); MauS22Test(i, :) = H'; end MauS22Test = svmtrain(MauS22Test, Label) save MauS22Test MauS22Test Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 67/65 TÀI LIỆU THAM KHẢO [1] https://www.learnopencv.com/histogram-of-oriented-gradients/ [2] Đồ án tốt nghiệp tác giả Đinh Gia Luật (2018) trường Đại Học Tôn Đức Thắng [3] https://se.mathworks.com/videos/face-recognition-with-matlab-100902.html? fbclid=IwAR3Lr_YX2oHmZvPvpN8Cpm_0nB2DGt2ztdcIoWLlUxYCRaTbslfi51PlLo [4] https://www.mathworks.com/matlabcentral/fileexchange/53849-code-for-facerecognition-with-matlab-webinar?fbclid=IwAR0aQKnU_6E2uJmcUtB3P_6zGSZYeG8OtnKGABSRsblScFlOhpKspp BE [5] https://www.mathworks.com/discovery/face-recognition.html? fbclid=IwAR1sklUFMI9CaCf_8Ge6_uvFI_7xaacPeStRB8BiICvyvoQGj6ewvAL04I [6] https://machinelearningcoban.com/2017/04/09/smv/ [7] https://opencv-pythontutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_sift_intro/py_sift_intr o.html [8] https://opencv-pythontutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_surf_intro/py_surf_in tro.html Nhậndiệnkhuônmặttừcamerasửdụngmachinelearning SVTH: Cao Nguyễn Ngọc Lưu ... Nhận diện khuôn mặt facebook Nhận diện khuôn mặt từ camera sử dụng machine learning Đồ Án Tốt Nghiệp Trang 4/65 Hình 2: Nhận diện khn mặt Iphone 1.2) Những phần đề tài thực Nhận diện khn mặt phương... màu Nhận diện khuôn mặt từ camera sử dụng machine learning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 25/65 Hình 17: Phân biệt nhóm đơm sáng đen [8] Nhận diện khn mặt từ camera sử dụng machine. .. Nhận diện khuôn mặt từ camera sử dụng machine learning SVTH: Cao Nguyễn Ngọc Lưu Đồ Án Tốt Nghiệp Trang 31/65 Hình 6: Gamma thấp [6] Hình 7: Gamma cao [6] Nhận diện khuôn mặt từ camera sử dụng