Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
1,98 MB
Nội dung
ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH BỘ MƠN ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA BÁO CÁO BÀITẬPLỚNTHỊGIÁCMÁY Đề tài: DetectingandMatchingObject Giáo viên hướng dẫn: Nguyễn Trọng Tài Sinh viên thực hiện: Châu Thanh Hải 1411037 Phạm Văn Thịnh 1413797 TP Hồ Chí Minh, tháng 12 năm 2017 Mục lục I Giới thiệu ………………………………………………………………… II Ứng dụng nhận dạng đối tượng……………………………… Phương pháp tìm điểm Keypoint…………………………………………….2 a SIFT (Scale-Invariant Feature Transform)…………………………… b SURF (Speeded-Up Robust Features)……………………………….12 Phương pháp Matching………………………………………………………13 Thuật toán tăng độ xác Homography………………………………13 Tăng độ xác phương pháp Grabcut…………………………14 Giao diện người dùng phần mềm Qt……………………………… 15 Kết đánh giá………………………………………………………… 17 Thuật toán PCA – SIFT……………………………………………………… 21 Một số lệnh thực thi quan trọng chương trình………………… 24 III Kết luận………………………………………………………………… 26 IV Tài liệu tham khảo…………………………………………………… 27 I Giới thiệu: Trong kỷ nguyên công nghệ thông tin nay, với phát triển nhanh chóng cơng nghệ chế tạo thiết bị phần cứng ngày đại, tinh vi ngành cơng nghệ phần mềm không ngừng mở rộng để phù hợp với yêu cầu thực tế Trong phải kể đến phát triển thiết bị thu nhận hình ảnh từ giới thực, chẳng hạn hệ thống giám sát camera, song hành với vấn đề liên quan đến việc giám sát Thách thức cho cơng nghệ phần mềm lĩnh vực việc xử lý hình ảnh thu nhận từ hệ thống giám sát MatchingObject giải thuật có tính ứng dụng cao khơng dùng để nhận dạng đối tượng mà dùng ứng dụng giám sát vật thể động vật thể tĩnh hay chuyển động đối tượng Giám sát vấn đề nhiều nhà nghiên cứu quan tâm đặc biệt ứng dụng thiết thực cho đời sống xã hội Chẳng hạn hệ thống giám sát hành vi khả nghi tội phạm, khủng bố địa điểm nhạy cảm phủ Hệ thống giám sát viện bảo tàng, lưu trữ để chống trộm cắp di vật trưng bày Hệ thống giám sát tượng bất bình thường, vi phạm pháp luật, tai nạn điểm giao thơng Hệ thống giám sát phòng chống hỏa hoạn Các hệ thống giám sát siêu thị, cửa hàng, cơng ty để chống trộm cắp,… Thách thức cho ngành công nghệ phần mềm đưa giải pháp nhằm xây dựng hệ thống giám sát tối ưu nhằm giúp người phát xác kịp thời tượng bất thường để có biện pháp xử lý nhanh chóng nhằm tránh thiệt hại đáng tiếc cho xã hội Dữ liệu thu từ hệ thống camera giám sát thường lưu trữ dạng Video Như công việc nghiên cứu vấn đề liên quan đến việc xử lý Video Hiện giới có nhiều cơng trình nghiên cứu xử lý Video có nhiều ứng dụng đáng kể lĩnh vực Tuy nhiên, so với yêu cầu thực tế chưa đủ Ở Việt Nam, xử lý Video vấn đề mẻ Thực tế cho thấy rằng, xã hội phát triển mạnh, yêu cầu thiết bị công nghệ cao Page of 27 Như vậy, xử lý Video mảnh đất màu mỡ cho trung tâm nghiên cứu, công ty đầu tư vào Nhất giai đoạn hệ thống nhúng phát triển mở kỷ nguyên với cho ngành công nghệ phần mềm Một số cơng trình nghiên cứu khoa học Việt Nam như: “Ứng dụng phát ước lượng khoảng cách vật cản, ứng dụng trợ giúp dẫn đường cho người khiếm thị” Ứng dụng tích hợp vào camera robot thông minh Camera bắt khung hình trực tiếp mơi trường hai thời điểm khác để đem so sánh matching để xây dựng đồ chênh lệch, từ ước lượng độ sâu vật cản “Ứng dụng nhận dạng hành vi khách hàng siêu thị”.Ứng dụng để nhận dạng đối tượng khách hàng Từ đó, xác định số lượng khách hàng quan tâm đến gian hàng đánh giá hiệu trưng bày Với hình ảnh thu từ camera giám sát, hệ thống nhận dạng hầu hết đối tượng vào vùng quan sát, theo dõi họ để có quỹ đạo đường thời gian lưu lại vùng quan sát Quỹ đạo phân đoạn lấy tọa độ đại diện, sau dung giải thuật máy học vector hỗ trợ để phân loại hoạt động khách hàng gồm có quan tâm đến gian hàng ghé vào lựa chọn số hoạt động khác “Ứng dụng toán xác hóa theo dõi chuyển động đối tượng” giám sát tự động hướng có nhiều triển vọng phát triển lĩnh vực nhận dạng xử lý ảnh chiều Đồng thời, hướng cho mảng phần mềm thiết kế chuyên dụng cho thiết bị giám sát tự động Việc phát đối tượng chuyển động Video nhờ kỹ thuật xử lý ảnh, sở đốn nhận số hành vi đối tượng việc làm có ý nghĩa khoa học thực tiễn, hồn cảnh Việt Nam chưa có nhiều nghiên cứu ứng dụng theo hướng II Ứng dụng nhân diện đối tượng: Do kiến thức thịgiácmáy hạn hẹp, nên phần nhóm trình bày hiểu biết kết thực nhóm Nếu có sai sót mong Thầy bạn bỏ qua Phương pháp tìm điểm Keypoint: Trong ảnh thường có nhiều điểm đặc trưng cho ảnh, nhìn vào người ta nhận diện đối tượng ảnh ai, vật thể gì? Nhờ vào suy luận tích lũy kiến thức não người Page of 27 Ta dễ dàng nhận hỉnh ảnh toa tháp Bitexco với đặc trưng vốn có ảnh mà tòa nhà khác khơng có mà dù có xoay hay nhìn từ góc độ ta nhận tòa nhà Bitexco Vậy rõ ràng ảnh có cho điểm đặc trưng Tuy nhiên, để máy tính hiểu điểm đặc trưng hay khơng? Để làm điều đó, máy tính phải thực thêm bước để tìm điểm đặc trưng đáng tin cậy gọi Keypoint Keypoint chia làm nhiều loại: Keypoint mặt phẳng, Keypoint cạnh Keypoint góc Page of 27 Hình Keypoint mặt phẳng - Keypoint cạnh - Keypoint góc Để tìm Keypoint có nhiều phương pháp: SIFT (Scale-Invariant Feature Transform), SURF (Speeded-Up Robust Features), Fast Algorithm for Corner Detection, BRIEF (Binary Robust Independent Elementary Features), ORB (Oriented FAST and Rotated BRIEF) Trong khuôn khổ báo cáo chúng em xin trình bày hai phương pháp SIFT SURF Vì hai phương pháp ưa chuộng độ xác cao SIFT tốc độ xữ lí nhanh SURF a SIFT (Scale-Invariant Feature Transform): Trước thực phương pháp SIFT, từ ảnh đầu vào người ta cho qua mặt nạ ma trận Hessian ma trận đạo hàm bậc để tìm điểm đặc trưng sơ khai ảnh Ta có giá trị ngưỡng λ định thức ma trận Hessian, định thức của trân Keypoint lớn giá trị Keypoint sơ khai nhỏ bỏ qua Trong bước này, ta cần dò tìm vị trí số đo (kích cỡ) mà chúng bất biến khung nhìn khác đối tượng Các vị trí bất biến số đo dò tìm cách tìm kiềm đặc trưng ổn định toàn số đo Từ ảnh đầu vào, SIFT thức làm mờ ảnh thuật toán mờ Gaussian đồng thời thu nhỏ ảnh theo đơn vị octave – octave kích thước ảnh giảm Page of 27 Sau làm mờ thu nhỏ ảnh, ta có tập hợp ảnh bao gồm ảnh gốc với ảnh bị làm mờ ảnh thu nhỏ tương ứng với ảnh làm mờ Ta thực lấy vi sai cặp ảnh octave để điểm tiền đặc trưng Page of 27 Hình 2+3 Quá trình làm mờ lấy đặc trưng ảnh Sau bước thu nhiều điểm tiềm làm điểm đặc biệt, nhiên số chúng không cần thiết bước loại bỏ điểm có độ tương phản (nhạy cảm với nhiễu) tính đặc trưng cục điểm khác có xu hướng đường biên đối tượng Bước thực gồm công đoạn : - Phép nội suy lân cận cho vị trí điểm tiềm năng: Phép nội suy lân cận () sử dụng mở rộng Taylor (Taylor expansion) cho hàm Difference-of-Gaussian D(x,y,ó) : (2.2.1) Page of 27 Trong : D đạo hàm tính điểm tiềm X = (x,y,ó) khoảng cách từ điểm Vị trí điểm cực trị xác định cách lấy đạo hàm hàm với đối số X tiến dần đến : Hình : Mơ sử dụng công thức mở rộng Taylor cho hàm DoG Nếu > 0.5 theo chiều có số cực trị không gần với điểm tiềm khác, bị thay đổi phép nội suy thay vai trò điểm khác gần Page of 27 Hình Minh họa bước trình lựa chọn điểm keypoints (a) ảnh gốc (b) mô tả 832 điểm keypoints tìm được, điểm keypoints vẽ dạng vector thể thơng tin : vị trí, hướng độ dài (c) sau đặt ngưỡng tương phản tổi thiểu, ta giữ lại 729 điểm (d) Giữ lại 536 điểm sau áp ngưỡng hệ số độ cong - Loại trừ điểm có tính tương phản kém: Các điểm nhạy cảm với độ sáng nhiễu khơng trở thành điểm đặc biệt cần loại bỏ khỏi danh sách điểm tiềm Trong khai triển Taylor mở rộng trên, điểm tiềm có giá trị < 0.03 điểm bị loại, ngược lại giữ lại theo vị trí (y+ ) tùy biến ó, với y vị trí cũ giá trị biến ó - Loại bỏ điểm dư thừa theo biên : Sử dụng hàm DoG cho tác động mạnh đến biên vị trí biên khó xác định điểm tiềm biên không bất biến bị nhiễu Và để tăng Page of 27 Phương pháp Matching: Sau tìm Keypoint đáng tin cậy phương pháp SIFT SURF ta tiến hành lấy ảnh khác thực bước thơng qua SIFT SURF để tìm Keypoint ảnh Cuối cùng, ta thu tập hợp ma trận vector tọa độ từ biểu đồ Histogram Nhiệm vụ lại ta so sánh ma trận ảnh tham chiếu ảnh đem Matching, kết tương tự ta xác định hai Keypoint trùng Tính tồn số lượng điểm Keypoint Matching tổng số điểm Keypoint đem Matching cho mức ngưỡng định Nếu lớnthi vật thể mà ta mà ta đem tham chiếu ngược lại Để thực việc này, ta có hai phương pháp: Brute-Force Matcher Flann Matcher Đối với Brute-Force Matcher, đem điểm mơ tả đặc trưng ảnh tham chiếu với điểm đặc trưng ảnh đem Matching để tính khoảng cách, khoảng đủ gần so với mức ngưỡng đặt chúng trùng ngược lại Lưu ý, khoảng cách độ sai lệch hai điểm mô tả đặc trưng Đối với Flann Matcher, đem điểm mơ tả đặc trưng ảnh đem Matching để sấp sỉ ma trân Sau đó, lấy điểm đặc trưng bên ảnh đem tham chiếu để đem so sánh, đặc trưng điểm thuộc vào khoảng xấp xỉ điể đặc trưng bên ảnh đem Matching xác định chúng trùng Tương ta có knnBrute-Force Matcher knnFlann Matcher cho điểm Matching tốt điểm Matching Thuật tốn tăng độ xác Matching – Homography: Homography ma trận chuyển đổi 3x3: Trong phương pháp người ta lấy cần Matching bên ảnh tham chiếu điểm ảnh đem Matching, ta liên kết chung lại thông qua ma trận chuyển đổi Homography Page 13 of 27 Trong đó: x1, y1 tọa độ điểm đặc trưng ảnh tham chiếu x2, y2 tọa độ điểm đặc trưng anh đem Matching Ta tính với tất điểm hai ảnh Nhưng ảnh có ma trân Homography xấp xỉ điểm trung Ngồi ra, ta đơn giản ta làm vài điểm để tím ma trận Homography đặc trưng chung Sau dùng ma trận Homography để chuyển đổi tồn ảnh, lúc việc Matching trỡ nên dễ dàng Hình 12 Dùng Homography để chỉnh ảnh Tăng độ xác phương pháp Grabcut: Để loại bỏ điểm đặc trưng không mong muốn lấy đặc trưng vùng ảnh mong mn Ta sử dụng thuật tốn Grabcut để loại bỏ background ảnh để lại vùng ảnh mà mong muốn Matching trước đưa vào thuật tốn SIFT SURF để tìm đặc trưng Grabcut hoạt động cách dùng findContour để tìm vùng ngăn cách có kích thước lớn ảnh Sau xóa vùng xung quanh để lại vùng chưa kích thước lớn Page 14 of 27 Hình 13 Xóa background Grabcut Thiết kế giao diện người dùng phần mềm Qt: ➢ Giao diện capture & segment đối tượng đầu vào Giao diện cho phép capture đối tượng từ camera Sau có ảnh đối tượng ta sử dụng phương pháp Grabcut để tách đối tượng mong muốn cuối lưu trữ Hình 14 Giao diện capture & segment đối tượng Page 15 of 27 Hình 15 Đối tượng sau tách background Grabcut ➢ Lưu trữ đối tượng Hình 16 Giao diện dùng để lưu đối tượng Hình 17 Lưu trữ đối tượng Page 16 of 27 ➢ Giao diện detect & matchingobject Hình 18 Giao diện matching đối tượng ➢ Kết đánh giá: Đối với đối tượng bị Scale SIFT SURF detect matching đúng: Hinh 19 Detect Matching dùng SIFT Page 17 of 27 Hình 20 Detect Matching dùng SURF ➢ Đối với đối tượng bị xoay SIFT đáp ứng tốt so với SURF: Hình 21 SIFT với đối tượng bị xoay Hình 22 SURF với đối tượng bi xoay Page 18 of 27 Hình 23 SIFT với đối tượng bị xoay Hình 24 SURF với đối tượng bị xoay ➢ Đối với đối tượng bị phơi sáng SURF đáp ứng tốt só với SIFT: Hình 25 SIFT với đối tượng bị phơi sáng Page 19 of 27 Hình 26 SURF với đối tượng bị phơi sang Hình 27 SIFT với đối tượng bị phơi sáng Hình 28 SURF với đối tượng bị phơi sang Page 20 of 27 ➢ Thử nghiệm đối tượng người: Hình 29 Detect Matching với đối tượng mặt người ➢ Đánh giá: Hình 30 Bảng so sánh thuật tốn Thuật toán PCA – SIFT: a Thuật toán PCA: PCA phương pháp biến đổi giúp giảm số lượng lớn biến có tương quan với thành tập biến cho biến tạo tổ hợp tuyến tính biến cũ khơng có tương quan lần Ví dụ, có 100 biến ban đầu có tương quan tuyến tính với nhau, sử dụng phương pháp PCA xoay chiều không gian cũ thành chiều không gian mà biến khơng có tương quan tuyến tính mà nhiều lượng thơng tin từ nhóm biến ban đầu Page 21 of 27 Hình 31 Góc nhìn khác cho ta cách đánh giá khác Cùng lạc đà, nhiên với cách nhìn khác (trục thơng tin), lại có cách thu nhận thơng tin khác cho ta kết luận khác Một số đặc tính PCA kể đến như: Giúp giảm số chiều liệu - Giúp visualization liệu có q nhiều chiều thơng tin Do liệu ban đầu có số chiều lớn (nhiều biến) PCA giúp xoay trục tọa độ xây trục tọa độ đảm bảo độ biến thiên liệu giữ lại nhiều thông tin mà không ảnh hưởng tới chất lượng mơ hình dự báo (Maximize the variability) Do PCA giúp tạo hệ trục tọa độ nên mặt ý nghĩa toán học, PCA giúp xây dựng biến factor tổ hợp tuyến tính biến ban đầu Trong khơng gian mới, có thẻ giúp khám phá thêm thông tin quý giá mà chiều thông tin cũ thông tin quý giá bị che (Điển hình cho ví dụ lạc đà phía trên) Mơ hình PCA: Xét tập khơng gian (dữ liệu) k biến, k biến biểu qua j thành phần cho (j < k) Xét thành phần có dạng: PC1 = a1X1+a2X3+a4X5+ akXk Thành phần chứa đựng hầu hết thơng tin từ k biến ban đầu (được hình thành tổ hợp tuyến tính biến ban đầu) lúc tiếp tục xét thành phần thứ biểu diễn tuyến tính từ k biến ban đầu nhiên thành phần thứ phải khơng trực giao với thành phần ban đầu hay (thành phần thứ khơng có mối tương quan tuyến tính với thành phần đầu tiên) Về lý thuyết xây dựng nhiều thành phần từ nhiều biến ban đầu Tuy nhiên cần tìm trục khơng gian cho thành phần mà biểu diễn hầu hết thông tin từ biến ban đầu Page 22 of 27 Hình 32 Kết chạy so sánh thuật toán b Áp dụng PCA vào thuật toán SIFT: B1: Sau có điểm mơ tả đặc trưng ảnh tham chiếu, ta xếp chúng theo ma trận hàng cột ma trận chứa tọa độ điểm Keypoint ảnh tham chiếu B2: Ta tính trung bình ma trận theo cơng thức: B3: Tính ma trận phương sai cách lấy ma trận mô tả đặc trưng ảnh tham chiếu trừ cho giá trị trung bình vừa tính B4: Tính ma trận hiệp phương sai Trong đó: Từ ta tính trị riêng vector riêng ma trận C, ta suy vector riêng ma trận chứa tọa độ điểm Keypoint ảnh tham chiếu Page 23 of 27 B5: Sau đó, ta nên chuẩn hóa vector ui ( ui ), nghĩa là: ui ui ui B6: Tìm M vector riêng tốt tương ứng với K trị riêng lớn vừa tính B7: Sau chuyển hệ tọa độ Keypoint sang hệ tọa cách nhân vector chứa tọa độ điểm Keypoint ảnh tham chiếu với vector riêng Được biễu diễn bằng: Trong đó: B8: Thu thập ảnh đầu vào, thực lại B1, B2, B3 để có ma trận B9: Tìm Nếu er < Tr (Tr mức ngưỡng để chấp nhận được) ta xác nhận hai điểm trùng Một số lệnh thực thi quan trọng chương trình: class FindKeypoint_Method { public: FindKeypoint_Method(); vector Surf_keypoint(Mat inputImage,int minHessian); vector Sift_keypoint(Mat inputImage,int minHessian); Mat Surf_descriptor(Mat inputImage,vector Keypoints); Mat Sift_descriptor(Mat inputImage,vector Keypoints); private: Matching_Method matches; }; Page 24 of 27 class Matching_Method { public: Matching_Method(); Mat Brute_Force(Mat queryImg, Mat trainImg, vector queryKeypoints, vector trainKeypoints, Mat queryDescriptors, Mat trainDescriptors,Rect rect); Mat knnMatching(Mat queryImg, Mat trainImg, vector queryKeypoints, vector trainKeypoints, Mat queryDescriptors, Mat trainDescriptors, int k,Rect rect); Mat FlannMatching(Mat queryImg, Mat trainImg, vector queryKeypoints, vector trainKeypoints, Mat queryDescriptors, Mat trainDescriptors,Rect rect); }; H = findHomography( obj, scene, CV_RANSAC ); grabCut(*image, mask, rect, bgdModel, fgdModel, 1, GC_INIT_WITH_MASK); grabCut(*image, mask, rect, bgdModel, fgdModel, 1, GC_INIT_WITH_RECT); ➢ Ảnh hưởng thơng số: Đối với phương pháp tìm điểm Keypoint thơng số minHessian octaveLayers - Ma trận Hessian ma trận đạo hàm bậc hai ma trận bao quanh điểm Keypoint, từ tính định thức ma trận ta có thơng số Hessian Đem thơng số so sánh với minHessian ta tìm Keypoint Do đó, mức ngưỡng hợp lí cho ta cac Keypoint xác Thường chọn khoảng 300 – 500 - octaveLayer số lần mà ảnh bị giảm kích thước phần hai, số lượng octave anh hưởng đến số Keypoint xác Thường chọn Đối với phương pháp tăng độ xác để tìm Keypoint Grabcut có hai loại mặt nạ Một loại mặt nạ hình chữ nhật loại dạng hoạch định sẵn Tùy nhu cầu mà sử dụng cho phù hợp Page 25 of 27 III Kết luận: Nhận xét: - Qua kết tìm hiểu thực cho thấy chất lượng thuật toán SIFT dù tốt so với SURF tốc độ xữ lí hoàn toàn thua xa so với SURF Như vây ứng dụng đòi hỏi tốc độ xử lí nhanh hay real – time nên dung SURF nên kết hợp SURF với phương pháp hay lọc để tăng độ xác cho SURF - Về phương pháp Matching điểm đặc trưng phương pháp Flann Matcher hẳn so với Brute – Frorce Matcher độ xác tốc độ xữ lí - Qua thực nghiệm kết Matching chưa xác ý muốn, độ xác vào tầm 80% Nên đội nhận diện nhầm vật thể đưa vật có đặc trưng tương tự vào - Kết Matching cho kết xác cao đối tượng tham chiếu rõ ràng đủ lớn Hường phát triển: - Với Matching người ta Matching khảo sát chuyển động vật thể - Áp dụng huấn luyện mạng Neural vaò Matching - Áp dụng thuật toán PCA vào Matching - Thực Matching vào đối tượng người để khảo sát chuyển động người số người người để thay mốt cách đáng tin cậy cho loại cảm biến phổ thông - Hệ thống chống trộm sử dụng Detect Matching kết hợp với nhận dạng khuôn mặt Page 26 of 27 IV Tài liệu tham khảo: [1] Lecture 6: Feature Detection andMatching [2] https://phvu.net/2011/10/05/pca-principal-component-analysis/ [3] http://www.cs.cmu.edu/~yke/pcasift/ [4] http://www.aishack.in/tutorials/sift-scale-invariant-feature-transformintroduction/ [5] https://docs.opencv.org/3.1.0/d5/d6f/tutorial_feature_flann_matcher.html [6] https://www.learnopencv.com/homography-examples-using-opencv-python-c/ [7] [Kenneth_Dawson-Howe]_A_practical_introduction_to_(b-ok.org) [8] [Prateek_Joshi,_Vinicius_Godoy,_David_Millan_Escri(b-ok.org) [9] [Robert_Laganiere]_OpenCV_2_Computer_Vision_Applic(b-ok.org) [10] https://docs.opencv.org/3.1.0/d8/d83/tutorial_py_grabcut.html Page 27 of 27 ... điểm Matching tốt điểm Matching Thuật tốn tăng độ xác Matching – Homography: Homography ma trận chuyển đổi 3x3: Trong phương pháp người ta lấy cần Matching bên ảnh tham chiếu điểm ảnh đem Matching, ... 27 ➢ Giao diện detect & matching object Hình 18 Giao diện matching đối tượng ➢ Kết đánh giá: Đối với đối tượng bị Scale SIFT SURF detect matching đúng: Hinh 19 Detect Matching dùng SIFT Page... - Kết Matching cho kết xác cao đối tượng tham chiếu rõ ràng đủ lớn Hường phát triển: - Với Matching người ta Matching khảo sát chuyển động vật thể - Áp dụng huấn luyện mạng Neural vaò Matching