Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
0,95 MB
Nội dung
Mục lục I, Giới thiệu II, Thực kết quả: III, Tóm tắt kết luận 11 I, Giới thiệu Trong vấn đề điều khiển robot, xuất tốn định vị vị trí cho robot Có nhiều phương pháp định vị, sử dụng nhiều thuật tốn phức tạp slam, đòi hỏi kết hợp với nhiều loại cảm biến lúc: lidar, encoder hay camera để định vị robot không gian 2d/3d Bài báocáo trình bày phương pháp sử dụng camera để xác định vị trí vật thể khơng gian chiều II, Thực kết quả: Bài toán đặt ra: xác định vị trí robot mơi trường không gian phẳng ( hệ trục Oxy ) camera đặt vị trí cố định Mục tiêu: Từ ảnh với vật mốc chụp tư bất kỳ, xác định pose vật mốc, vị trí tương đối điểm ảnh so với vật mốc không gian chiều Oxy Các vấn đề cần giải quyết: Hình chụp từ camera khơng mơ tả xác giới thống số không lý tưởng camera ( lens khó lắp đặt xác vào vị trí cần thiết so với trập, thấu kính khơng có độ cong hoàn hảo ) gây tượng méo hình ( distortions ) -> ảnh hưởng đến kết định vị Camera đặt góc nhìn khác nên khoảng từ điểm mốc tới điểm khác bị biến dạng -> gây khó khăn cho việc xác định vị trí Giải pháp: Thực calib camera để bù cho thông số không lý tưởng Xác định vật mốc ( pose ) để chỉnh định lại góc nhìn camera khơng gian chiều Oxy Quá trình thực hiện: Calib camera: Tổng quan trình calib: o Tìm ma trận nội camera, ma trận chứa thông số tiêu cự, độ lệch lens so với vị trí chuẩn,… o Tìm hệ số méo dạng Việc tìm ma trận nội hệ số méo dạng hệ thống hóa thành tốn giải hệ phương trình nhiều ẩn Các phương trình chiết từ loạt hình input, với điều kiện hình phải chứa pattern vật thể mà, ta phải biết xác tọa độ pattern/ vật thể không gian chiều, pattern/ vật thể chứa cấu trúc đặc biệt mà cần từ tọa độ chiều điểm pattern suy tọa độ nhiều điểm khác Tiếp theo nhận dạng điểm pattern hình, từ ứng với cặp pattern hình – pattern không gian chiều cho phương trình Pattern lựa chọn hình bàn cờ với ô vuông xen kẽ theo quy luật Các hàm có sẵn thư viện OpenCV hỗ trợ việc calib: bool findChessboardCorners( InputArray image, Size patternSize interior number of corners, OutputArray corners, int flags operation flags); Tham số: o Image: ảnh chứa hình bàn cờ o patternSize: kích thước corners bàn cờ, ví dụ bàn cờ 6x6 patternSize có kích thước 5x5, 10x7 -> 9x6 o corners: tọa độ góc tìm o flags: cờ chỉnh chế độ hoạt động Hàm trả bool xem có tìm đủ góc bàn cờ hay không double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags = 0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); Tham số: o objectPoints: tọa độ corners không gian thực o imagePoints: tọa độ corners ảnh o cameraMatrix: ma trận nội tính o distCoeffs: hệ số distort o rvecs: vector quay o tvecs: vector chuyển vị o flags: cờ tùy chỉnh chế độ hoạt động cho hàm calibrateCamera o criteria: điều kiện để dừng vòng lặp sử dụng hàm Hàm trả sai số reprojected Xác định biến đổi góc nhìn (Pose estimation homography transform): Thế cách vật đặt không gian, xác định đồng nghĩa xác định vị trí góc nhìn camera so với vật Homography transfrom: Từ ma trận nội, vật, mapping điểm vật ảnh để tạo thành ảnh khác mà đó, điểm vật nhìn theo góc từ cao xuống Các hàm có sẵn thư viện OpenCV cho Pose estimation biến đổi góc nhìn: bool solvePnP( InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE ); Tham số: o objectPoints: tọa độ điểm tham chiếu không gian thực o imagePoints: tọa độ điểm tham chiếu ảnh o cameraMatrix: ma trận nội camera o distCoeffs: hệ số distort camera o rvecs: vector quay tính o tvecs: vector chuyển vị tính o useExtrinsicGuess: true sử dụng rvec,tvec lúc đầu để tính tốn rvec,tvec o flags: chế độ hoạt động khác Hàm ước lượng pose object points nhập vào ( rvec, tvec ) void projectPoints( InputArray objectPoints, InputArray rvec, InputArray tvec, InputArray cameraMatrix, InputArray distCoeffs, OutputArray imagePoints, OutputArray jacobian = noArray(), double aspectRatio = ); Tham số: o objectPoints: tọa độ điểm tham chiếu không gian thực o rvec: vector quay camera so với vật o tvec: vector chuyển vị camera so với vật o cameraMatrix: ma trận nội camera o distCoeffs: hệ số distort camera o imagePoints: tọa độ điểm ảnh o jacobian: chưa nghiên cứu để default o aspectRatio: chưa nghiên cứu để default Hàm project nhiều điểm không gian thực thành nhiều điểm ảnh Mat getPerspectiveTransform( const Point2f src[],const Point2f dst[] ); Tham số: o src: điểm chọn từ hình gốc o dst: điểm tương ứng từ hình muốn biến đổi Hàm trả ma trận Homography void warpPerspective( InputArray src, OutputArray dst, InputArray M, Size dsize) Tham số: o src: hình gốc o dst: hình muốn biến đổi o M: ma trận Homography o Dsize: tỉ lệ hình muốn biến đổi so với hình gốc Hàm biến đổi hình thái học cho hình nhập vào Kết quả: H1 Hình chụp gốc sau calib camera điểm mốc (0,0), điểm chọn có vị trí tương đối (4.99,1.02) hệ tọa độ Oxy với điểm mốc gốc tọa độ H2: Ảnh sau biến đổi theo góc nhìn từ xuống ( bird eye ) với điểm mốc (0,0) điểm chọn có vị trí giống với H1 III, Tóm tắt kết luận Bài tốn định vị ví trí nhóm thực tóm gọn lại thành phần thể qua lưu đồ dưới: Lưu đồ calibrate camera: Lưu đồ giải thuật cho toán định vị robot: ... với nhiều loại cảm biến lúc: lidar, encoder hay camera để định vị robot không gian 2d/3d Bài báo cáo trình bày phương pháp sử dụng camera để xác định vị trí vật thể khơng gian chiều II, Thực... kiện để dừng vòng lặp sử dụng hàm Hàm trả sai số reprojected Xác định biến đổi góc nhìn (Pose estimation homography transform): Thế cách vật đặt không gian, xác định đồng nghĩa xác định vị trí... thành ảnh khác mà đó, điểm vật nhìn theo góc từ cao xuống Các hàm có sẵn thư viện OpenCV cho Pose estimation biến đổi góc nhìn: bool solvePnP( InputArray objectPoints, InputArray imagePoints, InputArray