1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn thị giác máy position estimation

12 143 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài báo cáo này trình bày phương pháp sử dụng camera để xác định vị trí vật thể trong không gian 2 chiều... II, Thực hiện và kết quả: Bài toán đặt ra: xác định vị trí của robot trong môi

Trang 2

Mục lục

I, Giới thiệu 3

II, Thực hiện và kết quả: 4 III, Tóm tắt và kết luận 11

Trang 3

I, Giới thiệu

Trong vấn đề điều khiển robot, luôn xuất hiện bài toán định vị vị trí cho robot

Có nhiều phương pháp định vị, sử dụng nhiều thuật toán phức tạp như slam, đòi hỏi kết hợp với nhiều loại cảm biến cùng lúc: lidar, encoder hay camera để định vị robot trong không gian 2d/3d

Bài báo cáo này trình bày phương pháp sử dụng camera để xác định vị trí vật thể trong không gian 2 chiều

Trang 4

II, Thực hiện và kết quả:

Bài toán đặt ra: xác định vị trí của robot trong môi trường không gian phẳng ( hệ trục Oxy )

bằng 1 camera đặt ở vị trí cố định

Mục tiêu: Từ một ảnh với một vật mốc được chụp ở các tư thế bất kỳ, xác định được pose của vật mốc,

và vị trí tương đối của các điểm trong ảnh so với vật mốc trong không gian 2 chiều Oxy

Các vấn đề cần giải quyết:

 Hình chụp từ camera không mô tả chính xác thế giới do các thống số không lý tưởng trong

camera ( lens khó được lắp đặt chính xác vào vị trí cần thiết so với màn trập, thấu kính không có

độ cong hoàn hảo ) gây nền các hiện tượng méo hình ( distortions ) -> ảnh hưởng đến kết quả định vị

 Camera đặt ở các góc nhìn khác nhau nên khoảng từ điểm mốc tới các điểm khác bị biến dạng -> gây khó khăn cho việc xác định vị trí

Trang 5

Giải pháp:

 Thực hiện calib camera để bù cho những thông số không lý tưởng

 Xác định thế của vật mốc ( pose ) để chỉnh định lại góc nhìn của camera về không gian 2 chiều Oxy

Quá trình thực hiện:

 Calib camera:

Tổng quan quá trình calib:

o Tìm ra ma trận nội của camera, ma trận này chứa các thông số như tiêu cự, độ lệch của lens so với vị trí chuẩn,…

o Tìm các hệ số méo dạng

Việc tìm ma trận nội và các hệ số méo dạng được hệ thống hóa thành bài toán giải hệ phương trình nhiều ẩn Các phương trình này được chiết ra từ một loạt hình input, với điều kiện trong hình phải chứa những pattern hoặc vật thể mà, một hoặc ta phải biết được chính xác tọa độ của pattern/ vật thể trong không gian 3 chiều, hoặc pattern/ vật thể chứa cấu trúc đặc biệt mà chỉ cần từ tọa độ 3 chiều của 1 điểm trong pattern có thể suy ra tọa độ của nhiều điểm khác Tiếp theo sẽ nhận dạng các điểm của pattern trên hình, từ đó ứng với mỗi cặp pattern trên hình – pattern trong không gian 3 chiều sẽ cho 1 phương trình

Pattern ở đây lựa chọn là hình bàn cờ với các ô vuông xen kẽ theo quy luật

Các hàm có sẵn của 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 các corners của bàn cờ, ví dụ bàn cờ 6x6

patternSize có kích thước là 5x5, 10x7 -> 9x6

o corners: tọa độ các góc tìm được

o flags: cờ chỉnh chế độ hoạt động

 Hàm trả về bool xem có tìm được đủ các góc của bàn cờ hay không

Trang 6

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 độ các corners trong không gian thực

o imagePoints : tọa độ các corners trong ảnh

o cameraMatrix: ma trận nội tính được

o distCoeffs: các 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 trong hàm

 Hàm trả về sai số reprojected

Trang 7

 Xác định thế và biến đổi góc nhìn (Pose estimation và homography transform):

Thế là cách vật được đặt trong không gian, xác định được thế đồng nghĩa xác định được vị trí cũng như góc nhìn của camera so với vật

Homography transfrom: Từ ma trận nội, và thế của vật, có thể mapping các điểm của vật trong ảnh bất kỳ để tạo thành một ảnh khác mà trong đó, các điểm của vật được nhìn theo góc từ trên cao xuống

Các hàm có sẵn của thư viện OpenCV cho Pose estimation và 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 trong không gian thực

o imagePoints : tọa độ điểm tham chiếu trong ảnh

o cameraMatrix: ma trận nội của camera

o distCoeffs: các hệ số distort của camera

o rvecs: vector quay tính được

o tvecs: vector chuyển vị tính được

o useExtrinsicGuess: nếu true thì sẽ sử dụng rvec,tvec lúc đầu để tính toán rvec,tvec

o flags: các chế độ hoạt động khác nhau

 Hàm ước lượng pose của các 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 = 0 );

 Tham số:

o objectPoints : tọa độ điểm tham chiếu trong không gian thực

o rvec: vector quay của camera so với vật

o tvec: vector chuyển vị của camera so với vật

o cameraMatrix: ma trận nội của camera

o distCoeffs: các hệ số distort của camera

o imagePoints: tọa độ điểm trong ảnh

o jacobian: chưa nghiên cứu và để default

o aspectRatio: chưa nghiên cứu và để default

 Hàm project một hoặc nhiều điểm trong không gian thực thành một hoặc nhiều điểm trên ảnh

Mat getPerspectiveTransform( const Point2f src [], const Point2f dst [] );

 Tham số:

o src : 4 điểm chọn từ hình gốc

o dst: 4 điểm tương ứng từ hình muốn biến đổi

 Hàm trả về ma trận Homography

Trang 8

void warpPerspective( InputArray src , OutputArray dst , InputArray , 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ệ của 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

Trang 9

Kết quả:

H1 Hình chụp gốc sau khi calib camera cùng điểm mốc (0,0), điểm chọn bất kỳ có vị trí tương đối là (4.99,1.02) trong hệ tọa độ Oxy với điểm mốc là gốc tọa độ

Trang 10

H2: Ảnh sau khi được biến đổi theo góc nhìn từ trên xuống dưới ( bird eye ) với điểm mốc (0,0) và điểm chọn có vị trí giống với H1

Trang 11

III, Tóm tắt và kết luận

Bài toán định vị ví trí nhóm thực hiện tóm gọn lại thành các phần thể hiện qua các lưu đồ dưới:

Lưu đồ calibrate camera:

Trang 12

Lưu đồ giải thuật cho bài toán định vị robot:

Ngày đăng: 09/04/2019, 17:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w