Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
1,51 MB
Nội dung
i BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM - NGUYỄN THÀNH GIAO KẾT HỢP HIỆU CHỈNH ẢNH VÀ KỸ THUẬT 3D VISION XÁC ĐỊNH ĐỘ SÂU ĐỐI TƯỢNG BẰNG CAMERA ĐIỆN TỬ LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã số ngành: 60480201 TP HỒ CHÍ MINH, tháng 09/2015 ii BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM - NGUYỄN THÀNH GIAO KẾT HỢP HIỆU CHỈNH ẢNH VÀ KỸ THUẬT 3D VISION XÁC ĐỊNH ĐỘ SÂU ĐỐI TƯỢNG BẰNG CAMERA ĐIỆN TỬ LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã số ngành: 60480201 CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS LÊ MẠNH HẢI TP HỒ CHÍ MINH, tháng 10/2015 i CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM Cán hướng dẫn khoa học : Tiến sĩ Lê Mạnh Hải (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn Thạc sĩ bảo vệ Trường Đại học Công nghệ TP HCM ngày 17 tháng 10 năm 2015 Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ Luận văn Thạc sĩ) TT Họ tên GS.TSKH Hoàng Văn Kiếm PGS.TS Lê Hoài Bắc TS Vũ Thanh Hiền TS Hồ Đắc Nghĩa TS Cao Tùng Anh Chức danh Hội đồng Chủ tịch Phản biện Phản biện Ủy viên Ủy viên, Thư ký Xác nhận Chủ tịch Hội đồng đánh giá Luận sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV ii TRƯỜNG ĐH CƠNG NGHỆ TP HCM PHỊNG QLKH – ĐTSĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP HCM, ngày 26 tháng 10 năm 2015 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Thành Giao Giới tính: Nam Ngày, tháng, năm sinh: 10-01-1983 Nơi sinh: Long An Chuyên ngành: Công nghệ thông tin MSHV:1341860038 I- Tên đề tài: Kết hợp hiệu chỉnh ảnh kỹ thuật 3D Vision xác định độ sâu đối tượng camera điện tử II- Nhiệm vụ nội dung: Nhiệm vụ: Thu hai ảnh từ hai camera, tìm điểm tương ứng từ hai hình thu được, dựng điểm tương ứng thành điểm 3D Từ rút trích độ sâu đối tượng III- Ngày giao nhiệm vụ: (Ngày bắt đầu thực LV ghi QĐ giao đề tài) IV- Ngày hoàn thành nhiệm vụ: 15 – 08 – 2015 V- Cán hướng dẫn: (Ghi rõ học hàm, học vị, họ, tên) Tiến sĩ: Lê Mạnh Hải CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) iii LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi Các số liệu, kết nêu Luận văn trung thực chưa cơng bố cơng trình khác Tôi xin cam đoan giúp đỡ cho việc thực Luận văn cảm ơn thơng tin trích dẫn Luận văn rõ nguồn gốc Học viên thực Luận văn (Ký ghi rõ họ tên) Nguyễn Thành Giao iv LỜI CẢM ƠN Tôi xin gởi lời cảm ơn đến phòng sau đại học, quý thầy cô trường Đại Học Công Nghệ Tp HCM trang bị tri thức tạo điều kiện thuận lợi suốt trình học tập thực luận văn Mặc dù nổ lực, song thời gian kinh nghiệm nghiên cứu khoa học có hạn chế nên khơng thể tránh khỏi thiếu sót Em mong nhận góp ý thầy cô bạn để luận văn tốt Qua luân văn em xin chân thành cám ơn: TS Lê Mạnh Hải tận tình giúp đỡ, động viên, định hướng, hướng dẫn em nghiên cứu hoàn thành luận văn Tp Hồ Chí Minh 09/2015 Người viết luận văn Nguyễn Thành Giao v TÓM TẮT Đo độ sâu đối tượng hay thị giác máy tính góp phần khơng nhỏ vào việc hổ trợ người việc quản lý từ xa, tiết kiệm cho số chi phí đáng kể Những ứng dụng xã hội ngày camera giám sát hành trình, camera dùng hệ thống giữ xe thông minh, mắt robot… Để tiếp nối ứng dụng trên, đề tài thực ứng dụng tìm độ sâu đối tượng camera điện tử Hệ thống hỗ trợ người việc xác định độ sâu đối tượng tự động thay cách thủ công thông thường đặc biệt nơi xa, hiểm trở người khó tiếp xúc Mục đích luận văn ngồi việc tính độ sâu đối tượng, giúp ta sâu vào lĩnh vực xử lý ảnh, đặc biệt ứng dụng camera vào ứng dụng thực tế Kết thực nghiệm phân tích để đánh giá tính xác hệ thống điều kiện kiểm thử khác vi ABSTRACT Measure the depth of the object or computer vision has contributed significantly to the support people to manage remotely, saving us a significant cost The application of it in today's society, such as surveillance cameras journey, the camera used in intelligent parking systems, robotic eyes To follow up the application on, the subject application implementation find objects an equal depth by two camera This system will assist people in determining the depth of the object automatically instead of manually common especially those far away, very difficult craggy human touch The aim of this thesis in addition to depth object properties, and helps us to go deeper into the field of image processing, particularly camera applications in the real application The experimental results were analyzed to assess the accuracy of the systems in the different test conditions vii MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ ĐO ĐỘ SÂU 1.1 Các nghiên cứu lĩnh vực 1.1.1 Cơ sở lý thuyết 1.1.2 Ứng dụng 1.2 Tổng quan xử lý ảnh 1.2.1 Giới thiệu chung 1.2.2 Các giai đoạn trình xử lý ảnh 1.3 Một số khái niệm liên quan 1.3.1 Phần tử ảnh .9 1.3.2 Mức xám 1.3.3 Ảnh .9 1.4 Phương pháp lọc nhiễu 11 1.4.1 Lọc trung bình(mean filter) 12 1.4.2 Lọc trung vị (Median Filter) 13 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ QUY TRÌNH ĐO ĐỘ SÂU 2.1 Tổng quan 15 2.2 Mơ hình camera 16 2.2.1 Mơ hình Pinhole camera 16 2.2.2 Tâm chiếu 16 2.2.3 Điểm 18 2.2.4 Xoay dịch Camera 19 2.2.5 Ma trận hiệu chỉnh camera 20 2.3 Một số thuật toán dùng đo độ sâu 21 2.3.1 Hình học epipolar 21 2.3.2 Thuật toán điểm 23 2.3.3 Thuật toán tam giác (Triangulation) 24 viii 2.4 Quy trình xác định độ sâu 26 2.4.1 Mô hình hệ thống tìm độ sâu đối tượng 26 2.4.1.1 Calibration camera (tìm thông số bên camera) 26 2.4.1.2 Thu ảnh từ camera 29 2.4.1.3 Tiền xử lý ảnh 30 2.4.2 Xác định điểm 3D đối tượng 30 2.4.2.1 Tìm điểm tương ứng đối tượng 30 2.4.2.2 Tìm ma trận 31 2.4.2.3 Dựng điểm 3D đối tượng 34 2.4.3 Xác định độ sâu đối tượng 35 2.4.3.1 Tìm biên đối tượng 35 2.4.3.2 Rút trích độ sâu đối tượng 37 CHƯƠNG 3: THỰC NGHIỆM 3.1 Mơ hình thực 39 3.2 Xác định thông số K 39 3.3 Kết thực nghiệm 40 CHƯƠNG 4: KẾT LUẬN 4.1 Kết luận 44 4.2 Đóng góp luận 44 4.3 Giới hạn luận văn 44 4.4 Hướng phát triển 45 33 // Gọi thư viện findFundamentalMat openCV để tìm ma trận F = findFundamentalMat(imgpts1, imgpts2, FM_RANSAC, 0.006 * maxVal, 0.99, status); For i = 0: status.size IF status[i] is True imgpts1.push(imgpts1[i]); imgpts2.push(imgpts2[i]); End If End For b) Ma trận E trường hợp tổng quát ma trận Một ma trận camera biểu diễn P K R | t , x = PX điểm ảnh K ma trận calibration x K 1 x R | t X Ma trận E xác định sau: E K 'T FK // Khai báo hàm để tìm ma trận E Mat findEssentialMatrix( const Mat &F, const Mat &K, const Mat &K1 ) { // Tính ma trận thơng số E từ F, K, K1 Mat_ E = K1.t() * F * K; return E; } // Khai báo hàm để ma trận camera void FindCameraMatrices( const Mat& E, const vector& imgpts1, 34 const vector& imgpts2, Matx34d& P, Matx34d& P1, Mat_& R, Mat_& t ) // Sử dụng SVD thư viện openCV SVD svd(E, SVD::MODIFY_A); Matx33d W( 0, -1, 0, 1, 0, 0, 0, 0, 1); // Tính thông số Rotation R = svd_u * Mat(W) * svd_vt; // Tính thơng số Translation t = svd_u.col(2); // Ma trận P1 ma trận camera thứ P1 = Matx34d( R(0, 0), R(0, 1), R(0, 2), t(0), R(1, 0), R(1, 1), R(1, 2), t(1), R(2, 0), R(2, 1), R(2, 2), t(2)); 2.4.2.3 Dựng điểm 3D đối tượng Một điểm 3D X hình chiếu phần điểm tương ứng s1 s2, điểm giao tia từ O1 xuyên qua s1 từ O2 xuyên qua s2 Điểm S’ trung điểm khoảng cách nhỏ nối từ tia 35 Hình 2.17 – Dựng điểm 3D Để tính S’ dùng giải thuật Triangulation dựa điểm tương ứng xác định // Gọi thư viện LinearLSTriangulation open CV để tìm điểm 3D Mat_ X = LinearLSTriangulation(u, P, u1, P1); //Lưu trữ điểm 3D pointcloud.push(Point3d(X(0), X(1), X(2))); 2.4.3 Xác định độ sâu đối tượng Bây có tập điểm 3D dựng lên từ cặp điểm tương ứng hai hình thu từ hai camera Phần trình bày để rút trích độ sâu đối tượng cần tính độ sâu Dưới bước để thực Điểm 3D Tìm biên đối tượng Rút trích độ sâu Hình 2.18 – Xác định độ sâu đối tượng 2.4.3.1 Tìm biên đối tượng Tìm biên đối tượng tức tìm vùng cần rút trích độ sâu, đối tượng lớn ta nên lấy điểm để tính Trong luận văn đối tượng cần tính độ sâu mặt người phải nhận dạng mặt người mặt người phạm vi cần tính độ sâu 36 Nhận dạng khn mặt dùng chức “cvHaarDetectObjects” thư viện openCv cách sử dụng Haar Cascade Face Detector Tập huấn luyện để nhận dạng dung tập huấn luyện “haarcascade_frontalface_default.xml ” Đây liệu huấn luyện chuẩn mà thư viện OpenCV xây dựng nên Hình 2.19 - Nội dung tập liệu huấn luyện open CV xây dựng Dưới mã để nhận dạng khuôn mặt // Trỏ tới file liệu nhân dạng khuôn mặt thư viện open CV char *faceCascadeFilename = "haarcascade_frontalface_default "; CvHaarClassifierCascade* faceCascade; faceCascade = (CvHaarClassifierCascade*)cvLoad(faceCascadeFilename, 0, 0, 0); 37 IF faceCascade is True { // Không nhận dạng khn mặt End If // Tạo hình chữ để bao khuôn mặt CvRect faceRect = detectFaceInImage(inputImg, faceCascade); IF faceRect.width > Nhận dạng thành công End If 2.4.3.2 Rút trích độ sâu đối tượng Hình 2.20 - Mơ hình rút trích độ sâu Mơ hình mô tả O1 O2 hai tâm camera S’ điểm chiều tìm từ điểm tương ứng S1, S2 Như hình trục tọa độ X,Y, Z mô tả cho ta thấy trục Z xuất phát từ tâm camera hướng tới đối tượng Khi ta tìm tọa độ chiều đối tượng cụ thể S’ tìm độ sâu đối tượng khoảng cách từ camera đến đối tượng tọa độ z điểm S’ Ở tìm nhiều điểm chiều có điểm tương ứng tìm nhiêu điểm 3D Do nhận dạng khn mặt để có phạm 38 vi nhận dạng xác hơn, điểm chiều thỏa phạm vị khuôn mặt mà nhận dạng Chỉ điểm chiều thỏa mản phạm vi khn mặt rút trích độ sâu // Tính điểm 3D, gọi hàm thư viện open CV 3dPointcloud = TriangulatePoints(imgpts1,imgpts2,K, K’); // Xác định khuôn mặt để làm biên cho đối tượng recfaces = cvHaarDetectObjects( inputImg1, faceCascade); // Tìm điểm 3D thuộc khn mặt hình chữ nhật pointFeature = CalPointFeatureIntoFace(3dPointcloud, recfaces); // Calculate Depth depthResult = pointFeature.Z * dChessboard 39 CHƯƠNG 3: THỰC NGHIỆM 3.1 Mơ hình thực Dùng webcame camera thu ảnh trực tiếp, rút trích 30 hình giây Hình 3.1 Mơ hình camera thực nghiệm 3.2 Xác định thông số K Dùng bảng chess board để xác định thông số camera với 7x4 ô trắng đen Ở dùng 10 hình chess board với góc quay chess board khác Bằng cách giữ nguyên camera xoay góc khác bảng chess board Sau đưa vào thuật tốn để xác định thơng số K, K1 camera Hình bên minh họa cách để xác định thông số K chess board 40 Hình 3.2 Hình chụp chess board để thực nghiệm 3.3 Kết thực nghiệm - Đối tượng cần tính độ sâu mặt người Hướng camera vào đối tượng cần tính Khn mặt bên trái hình ảnh thu từ camera trái khn mặt bên phải hình ảnh thu từ camera bên phải Sau thu hình thời điểm sau tìm điểm tương đồng đối tượng (khn mặt) Có cặp điểm tương ứng tìm điểm 3D từ cặp điểm 41 Hình 3.3 – Kết thực nghiệm Kết đo với khoảng cách thật 30 cm Bảng 3.1 - Bảng kết thực thực nghiệm với khoảng cách 30cm Nhận dạng Số lần đo đối tượng Khoảng cách Khoảng cách Độ xác thực tế đo (%) Được 30 cm 25 cm 83% Được 30 cm 27 cm 90% Được 30 cm 24 cm 80% Được 30 cm 22 cm 73% Được 30 cm 28 cm 93% Được 30 cm 24 cm 80% Được 30 cm 27 cm 90% Được 30 cm 23 cm 76% Được 30 cm 20 cm 66% 10 Được 30 cm 28 cm 93% 42 Biểu đồ thể kết khoảng cách thật 30 cm Biểu đồ 3.1 - Biểu đồ thể kết đo với khoảng cách 30 cm Biểu đồ thể kết đo 30 25 20 15 10 5 10 Kết đo với khoảng cách thật 100 cm Bảng 3.2 - Bảng kết thực thực nghiệm với khoảng cách 100 cm Nhận dạng Số lần đo đối tượng Khoảng cách Khoảng cách Độ xác thực tế đo (%) Được 100cm 75 cm 75% Được 100cm 78 cm 78% Được 100cm 82 cm 82% Được 100cm 69 cm 69 % Được 100cm 78 cm 78% Được 100cm 70 cm 70% Được 100cm 67 cm 67% Được 100cm 80 cm 80% Được 100cm 58 cm 58% 10 Được 100 cm 67 cm 67% 43 Biểu đồ thể kết khoảng cách thật 100 cm Biểu đồ 3.2 - Biểu đồ thể kết đo với khoảng cách 100 cm Biểu đồ thể kết đo 90 80 70 60 50 40 30 20 10 10 Biểu đồ so sánh kết thu từ hai khoảng cách 30 cm 100 cm Biểu đồ 3.3 So sánh kết khoảng cách 30 cm 100 cm 100 90 80 70 60 50 40 30 20 10 Khoảng cách 100 cm Khoảng cách 30 cm 10 Như quan sát biểu đồ 3.3 thực nghiệm có kết tốt với đối tượng gần camera 44 CHƯƠNG KẾT LUẬN 4.1 Kết luận Luận văn nghiên cứu thực nghiệm đo độ sâu đối tượng hai camera điện tử dựa thuật tốn hình học phép chiếu Ứng dụng thực nghiệm thực tế với cảnh phức tạp tình trạng ánh sáng khác dựa hai webcam camera Cuối ước tính giá trị chiều sâu đối tượng so với camera Do thời gian hạn chế kiến thức có hạn tài liệu hầu hết tiếng Anh nên tìm hiểu bị hạn chế Vì trình thực luận văn khơng thể tránh khỏi thiếu sót hạn chế Thêm vào camera dùng để thực luận văn dùng webcame độ phân giải hình ảnh thu kém, nên xác định điểm tương đồng đơi khơng xác 4.2 Đóng góp luận Xây dựng mơ hình camera xác định độ sâu đối tượng camera bất đồng Với mơ hình dựng đối tượng từ 2D sang 3D đơn giản Dùng camera khác chỉnh thấu kính tùy thích để thu ảnh rõ nét với hệ thống stereo thiết chuẩn với camera giống cố định ống kính khơng cho canh chỉnh độ phân giải Vì hệ thống linh hoạt ứng dụng nhiều lĩnh vực Vị trí đặt camera khơng cần đặt song song, miễn thu ảnh tìm điểm tương đồng ảnh đối tượng cần tính độ sâu Hệ thống stereo đòi hỏi phải đặt hai camera song song cố định 4.3 Giới hạn luận văn Độ xác chưa cao, số điều kiện từ môi trường tác động vào Chưa tìm biên rõ ràng điểm cố định đối tượng mà thường xun bị trơi nên tìm biên luận văn nhận dạng khuôn mặt 45 biên khn mặt rút trích độ sâu từ điểm tìm khn mặt 4.4 Hướng phát triển Đề tài “Xác định độ sâu đối tượng” trình bày chi tiết đầy đủ cách xác định độ sâu đối tượng cách tính thơng số bên camera bảng bàn cờ (chess board) Từ thực nghiệm thu số kết cho thấy độ xác nhận dạng đối tượng cụ thể khuôn mặt, độ xác độ sâu chưa cao khoảng 80%, hạn chế luận văn Luận văn nghiên cứu tìm hiểu lĩnh vực thị giác máy tính mà giới lĩnh vực phát triển ứng dụng nhiều thực tiễn sống Với luận văn tìm hiểu ứng dụng vào việc tính toán độ sâu đối tượng camera, chưa hồn thiện mong muốn tiền đề để tác giả nghiên cứu sâu lĩnh vực thị giác máy tính nói chung hay xác định độ sâu đối tượng nói riêng Hướng phát triển luận văn lĩnh vực thị giác máy tính lớn Vì xã hội ngày máy tính dần thay người số lĩnh vực điều khiển, tự động hóa, áp dụng quân sự, nhận dạng vật thể 46 TÀI LIỆU THAM KHẢO [1] R Hartley and A Zisserman (2004) Multiple view Geometry in computer vision (2nd Edition) [2] Richard Szeliski ( 2011) Computer Vision: Algorithms and Applications [3] Arne Henrichsen (2000) 3D Reconstruction and Camera calibration from 2D Images [4] Antonio torralba and Aude Oliva (2002) Depth Estimation from Image structure [5] Ashraf Anwar Fahmy (2013) Stereo vision based depth estimation algorithm in uncalibration rectification [6] Gary Bradski and Adrian Kaehler (2008) Learning OpenCV [7] Antonio Torralba, Fei-Fei Li and Rob Fergus (2007) Foundations of Computer Vision Object Recognition [8] D.A Forsyth and J Ponce (2012) Computer Vision: A Modern Approach (2nd Edition) [9] Samarth Brahmbhatt (2013) Practical OpenCV [10] C.M Bishop (2008) Pattern Recognition and Machine Learning [11] Daniel Lélis Baggio, Shervin Emami, David Millán Escrivá, Khvedchenia Ievgen, Naureen Mahmood, Jason Saragih, Roy Shilkrot (2012) Mastering OpenCV with Practical Computer Vision Projects Mastering [12] R.C Gonzalez and R.E (2008) Digital Image Processing (3rd Edition) [13] P Anandan and M Irani (2002) Factorization with uncertainty International Journal of Computer Vision [14] R Hartley and F Kahl (2003) A critical configuration for reconstruction from rectilinear motion In Proc IEEE Conference on Computer Vision and Pattern Recognition 47 [15] PhD thesis, Lund Institute of Technology (2001) Geometry and Critical Configurations of Multiple Views [16] PhD thesis, Department of Engineering Science, University of Oxford (1996) Self-Calibration from Image Sequences [17] S Birchfield (1998) An Introduction to Projective Geometry (for Computer Vision) [18] A Fusiello, E Trucco, and A Verri (2000) A compact algorithm for rectification of stereo pairs Machine Vision and Applications [19] Anthony, M and N Biggs (1992) An Introduction to Computational Learning Theory Cambridge University Press [20] Bach, F R and M I Jordan (2002) Kernel independent component analysis Journal of Machine Learning Research ... đo độ sâu đối tượng từ camera 2. 4.1 Mơ hình hệ thống tìm độ sâu đối tượng Calibration camera Tiền xử lý ảnh Thu ảnh từ camera Xác định điểm 3D Tìm độ sâu đối tượng Hình 2. 9 Mơ hình tìm độ sâu đối. .. ứng đối tượng 30 2. 4 .2. 2 Tìm ma trận 31 2. 4 .2. 3 Dựng điểm 3D đối tượng 34 2. 4.3 Xác định độ sâu đối tượng 35 2. 4.3.1 Tìm biên đối tượng 35 2. 4.3 .2. .. hai camera Phần trình bày để rút trích độ sâu đối tượng cần tính độ sâu Dưới bước để thực Điểm 3D Tìm biên đối tượng Rút trích độ sâu Hình 2. 18 – Xác định độ sâu đối tượng 2. 4.3.1 Tìm biên đối tượng