Trong nội dung luận văn này tập trung nghiên cứu về vấn đề xác định 6 bậc tự do của vật thể trong không gian thông qua hình ảnh thu được từ một camera đã được hiệu chỉnh.. Hướng phát tri
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN PHƯƠNG THANH HẢI
XÁC ĐỊNH QUỸ ĐẠO TRONG KHÔNG GIAN CHO ROBOT 6 BẬC TỰ DO SỬ DỤNG 1 CAMERA
Chuyên ngành: KỸ THUẬT CƠ ĐIỆN TỬ
LUẬN VĂN THẠC SĨ
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG - HCM
Cán bộ hướng dẫn khoa học: PGS.TS Nguyễn Quốc Chí
Cán bộ chấm nhận xét 1: PGS TS Nguyễn Thanh Phương
2 Thư ký: TS Lê Thanh Hải
3 Phản biện 1: PGS TS Nguyễn Thanh Phương
4 Phản biện 2: PGS TS Trương Đình Nhơn
5 Ủy viên: TS Lê Đức Hạnh
Xác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG
TRƯỞNG KHOA CƠ KHÍ
Trang 3
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Phương Thanh Hải MSHV:1770540
Ngày, tháng, năm sinh: 09/05/1989 Nơi sinh: Quảng Trị
Chuyên ngành: Kỹ thuật cơ điện tử Mã số :60520114
I TÊN ĐỀ TÀI: XÁC ĐỊNH QUỸ ĐẠO TRONG KHÔNG GIAN CHO ROBOT 6 BẬC
TỰ DO SỬ DỤNG 1 CAMERA
II NHIỆM VỤ VÀ NỘI DUNG:
Tìm hiểu về một số thuật toán cơ bản trong xử lý hình ảnh Trong đó đi sâu vào ứng dụng phương pháp tối thiểu sai số của quá trình nhận dạng ảnh
Xây dựng hệ thống ước lượng 6 bậc tự do sử dụng 1 camera
Áp dụng hệ thống ước lượng và xây dựng dữ liệu cho quá trình nhận dạng chữ viết tay
III NGÀY GIAO NHIỆM VỤ : 21/9/2020
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 3/1/2021
V CÁN BỘ HƯỚNG DẪN : PGS.TS Nguyễn Quốc Chí
Trang 4LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
LỜI CẢM ƠN
Lời đầu tiên tôi xin chân thành cảm ơn Thầy PGS TS Nguyễn Quốc Chí đã tận tình giúp đỡ, hướng dẫn và tạo điều kiện thuận lợi cho tôi thực hiện luận văn này Trong thời gian thực hiện luận văn, Thầy đã cố vấn cho tôi những những lời khuyên thiết thực, giúp tôi tháo gỡ những khó khăn trong quá trình nghiên cứu để kịp thời hoàn thành luận văn này đúng thời hạn
Tôi cũng xin gửi lời cảm ơn đến quý Thầy trong khoa Kỹ Thuật Cơ sở, các thầy trong bộ môn Nhiệt điện Trường ĐH Trần Đại Nghĩa đã luôn giúp đỡ và tạo điều kiện cho tôi trong suốt thời gian thực hiện luận văn
Đồng thời, tôi cũng xin cảm ơn quý Thầy/Cô trong khoa Cơ Khí đã tham gia giảng dạy chương trình Thạc sĩ trong thời gian tôi học tập ở trường Thầy/Cô đã trang
bị cho tôi những kiến thức để tôi có thể hoàn thành luận văn của mình
Cuối cùng, tôi xin gửi lời biết ơn sâu sắc đến tất cả những người thân trong gia đình, bạn bè, đồng nghiệp (nơi tôi đang làm việc) đã luôn thông cảm, giúp đỡ, tạo điều kiện và động viên tôi trong quá trình học tập và nghiên cứu tại trường đại học Bách khoa TP.HCM
Tôi xin chân thành cảm ơn!
Tp Hồ Chí Minh, tháng 1 năm 2021
Học viên
Nguyễn Phương Thanh Hải
Trang 5LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
TÓM TẮT LUẬN VĂN
Khoa học kỹ thuật ngày càng phát triển giúp cho khả năng tự động hóa quá
trình sản xuất ngày càng được nâng cao Trong xu thế đó sự phát triển của công nghệ
xử lý ảnh đóng một vai trò ngày càng quan trọng Trong nội dung luận văn này tập
trung nghiên cứu về vấn đề xác định 6 bậc tự do của vật thể trong không gian thông
qua hình ảnh thu được từ một camera đã được hiệu chỉnh Bằng cách kết hợp 2
phương pháp tối thiểu sai số về dựng hình và khoảng cách mà nghiên cứu đã làm rõ
hơn và chỉ ra phương pháp ước lượng 6 bậc tự do bằng một camera có tính khả thi
trong thực tế Kết quả của nghiên cứu được sử dụng trong quá trình thu thập và phân
tích chữ viết tay Hướng phát triển tương lai của nghiên cứu là hoàn thiện thuật toán
để nâng cao độ chính xác cho quá trình ước lượng, đồng thời xây dựng hệ thống đo
lường chuẩn để đánh giá tốt hơn kết quả nghiên cứu, tạo điều kiện áp dụng cho hệ
thống robot hàn trong việc nâng cao năng suất và chất lượng sản phẩm
Từ khóa: ước lượng 6 bậc tự do, rô bốt hàn, chữ viết tay
ABSTRACT
Science and technology are increasingly developing to help production
automation be more and more improved In that trend, the development of image
processing technology plays an increasingly important role In this thesis, author
focuses on studying in identifying 6 degrees of freedom of an object in space through
images obtained from a modified camera By combining two methods of minimizing
the error of rendering and distance, the study has clarified and showed that the method
of estimating 6 degrees of freedom with a camera is feasible in practice The results
of the study were used in the handwriting collection and analysis process The future
work of the research is to perfect the algorithm to improve the accuracy of the
estimation process, and to build a standard measurement system to evaluate research
results more accurately, to facilitate application for welding robot system in
improving productivity and product quality
Keywords: estimation 6 Dof, welding robot, handwriting
Trang 6LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung luận văn này do chính bản thân tôi thực hiện dưới sự hướng dẫn của PGS.TS Nguyễn Quốc Chí Nội dung luận văn là trung thực và chưa từng được ai công bố trong bất kỳ một công trình nào khác Trừ những phần tham khảo đã ghi rõ trong nội dung luận văn
Nếu sai, tôi xin chịu mọi hình thức kỷ luật theo quy định
Người thực hiện
NGUYỄN PHƯƠNG THANH HẢI
Trang 7LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
MỤC LỤC LUẬN VĂN
LỜI CẢM ƠN i
TÓM TẮT LUẬN VĂN ii
LỜI CAM ĐOAN iii
MỤC LỤC LUẬN VĂN iv
DANH MỤC CÁC HÌNH ẢNH vii
DANH MỤC CÁC BẢNG x
CHƯƠNG 1 TỔNG QUAN 1
1.1 Tính cấp thiết của đề tài 1
1.2 Tổng quan về các nghiên cứu 3
1.2.1 Tình hình các nghiên cứu trên thế giới 3
1.2.2 Tình hình nghiên cứu trong nước 4
1.3 Mục tiêu và đối tượng nghiên cứu 5
1.4 Ý nghĩa khoa học của đề tài 5
1.5 Ý nghĩa thực tiễn của đề tài 5
KẾT LUẬN CHƯƠNG 1 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 Tham số hóa phép quay 8
2.1.1 Euler angle 8
2.1.2 Biểu diễn trục góc 10
2.1.3 Quaternions 12
2.2 Thuật toán PnP và Kabsch 12
2.3 Phương pháp Lucas-Kanade 13
2.4 Binary Square Fiducial Marker 15
Trang 8LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
2.4.1 Các điểm đánh dấu 15
2.4.2 Từ điển 16
2.5 Tổng quan về Open-CV 16
2.6 Một số thuật toán Machine Learming 17
2.6.1 Gradient Descent 17
2.6.2 Logistic Regression 20
2.6.3 Softmax Regression 22
KẾT LUẬN CHƯƠNG 2 25
CHƯƠNG 3: THIẾT KẾ PHƯƠNG ÁN TÁI TẠO QUỸ ĐẠO ĐẦU DÒ 26
3.1 Xây dựng mô hình 26
3.1.1 Thiết kế khối 12 mặt 26
3.1.2 Hiệu chỉnh camera 28
3.2 Xây dựng qui trình tính toán ước lượng pose 30
3.3 Thiết kế chương trình 31
3.3.1 Xây dựng thông số dodecahedron lý tưởng 31
3.3.2 Ứng dụng opencv vào xác định pose aruco 33
3.3.2.1 Xác định pose khi aruco đứng yên 33
3.3.2.2 Ứng dụng phương pháp APE và DPR 37
3.3.2.3 Thực nghiệm kiểm tra 43
KẾT LUẬN CHƯƠNG 3 44
CHƯƠNG 4: ỨNG DỤNG NHẬN DIỆN VỚI DỮ LIỆU TỌA ĐỘ 45
4.1 Xử lý dữ liệu tọa độ điểm 45
4.1.1 Chuyển đổi tọa độ không gian sang mặt phẳng 45
4.1.2 Chuyển đổi dữ liệu sang hình ảnh 47
4.2 Xây dựng thuật toán nhận diện chữ số 47
Trang 9LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
4.2.1 Giới thiệu về Google Colab 47
4.2.2 Xây dựng và huấn luyện mạng neutral network 48
KẾT LUẬN CHƯƠNG 4 55
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
5.1 Kết luận 56
5.2 Hướng nghiên cứu trong tương lai 56
TÀI LIỆU THAM KHẢO 57
PHẦN LÝ LỊCH TRÍCH NGANG 58
Trang 10LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
DANH MỤC CÁC HÌNH ẢNH
Hình 1 1 Phân bố robot trong các ngành công nghiệp 1
Hình 1 2 Quy trình thiết kế chế tạo sản phẩm 2
Hình 2 1: Mô hình chiếu phối cảnh (O, i , j ,k ) 0 o o là hệ tọa độ của vật thể, c c c (C, i , j ,k ) là hệ tọa độ camera 8
Hình 2 2: Hình ảnh của aruco 15
Hình 2 3: Mô hình biểu diễn cho phương pháp Gradient Descent 18
Hình 2 4: So sánh Gradient Descent với các hiện tượng vật lý 20
Hình 2 5 : Các activation function khác nhau 21
Hình 2 6: Mô hình one-vs-rest 22
Hình 2 7: Mô hình Sotfmax Regression dưới dạng Neutral network 24
Hình 3.1 : Một số trường hợp không thể nhận diện, nhận diện sai marker 27
Hình 3.2 : Năm khối đa diện đều phổ biến 27
Hình 3.3 : Tỉ lệ diện tích của marker trong tam giác đều nhỏ hơn nhiều so với ngũ giác đều 27
Hình 3 4: Hình ảnh khối 12 mặt trên phần mềm Solidwork và thực tế 28
Hình 3 5: Biến dạng của ảnh khi không có hiệu chỉnh 28
Hình 3 6: Quá trình tính toán, ước lượng pose khối 12 mặt 31
Hình 3 7: Khối 12 mặt được định nghĩa 32
Hình 3 8: Xây dựng tọa độ và ma trận chuyển vị trên python 33
Hình 3 9: Aruco được cố định trên mặt bàn 33
Hình 3 10: dữ liệu tâm thu được theo thời gian khi sử dụng một aruco 34
Hình 3 11: Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 34
Hình 3 12: Sai số theo khoảng cách các điểm tâm tức thời so với tâm trung bình 34
Hình 3 13: Sai số theo vị trí pixel 35
Hình 3 14 : Aruco được cố định trên mặt bàn 35
Trang 11LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
Hình 3 15 : Dữ liệu tâm thu được theo thời gian khi sử dụng khối 12 mặt 35
Hình 3 16: Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 36
Hình 3 17: Sai số theo khoảng cách các điểm tâm tức thời so với tâm trung bình 36
Hình 3 18: Sai số theo vị trí pixel 36
Hình 3 19: Dữ liệu tâm thu được theo thời gian khi sử dụng khối 12 mặt 38
Hình 3 20: Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 38
Hình 3 21: Sai số theo khoảng cách các điểm tâm tức thời so với tâm trung bình 39
Hình 3 22: Sai số theo vị trí pixel 39
Hình 3 23: Dữ liệu tâm thu được theo thời gian khi sử dụng khối 12 mặt 40
Hình 3 24: Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 40
Hình 3 25: Sai số theo khoảng cách các điểm tâm tức thời so với tâm trung bình 40
Hình 3 26 :Sai số theo vị trí pixel 41
Hình 3 27: Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 42
Hình 3 28 : Sai số theo giá trị tâm trung bình theo 3 phương x,y,z 42
Hình 3 29: Hệ thống phần cứng thực hiện thí nghiệm 43
Hình 3 30: Vị trí đầu được biểu diễn lại 43
Hình 3 31: Mặt phẳng xây dựng bởi các điểm đầu dò ghi nhận được 44
Hình 3 32: Sai số khoảng cách từ các điểm đến mặt phẳng 44
Hình 4 1: Dữ liệu tọa độ thu được khi viết trên mặt phẳng 45
Hình 4 2 : Tạo và chiếu các điểm dữ liệu lên mặt phẳng 46
Hình 4 3: Trường hợp nhận dữ liệu cả quá trình viết và di chuyển bút 46
Hình 4 4 : Tạo mặt phẳng và loại bỏ các điểm không phải là chữ viết 47
Hình 4 5: Hình ảnh thu được trên mặt phẳng khi kết nối các điểm dữ liệu 47
Hình 4 6: Mô hình kết nối colab với các dạng lưu trữ dữ liệu 48
Hình 4 7: một số dạng dữ liệu viết tay trong MNIST 49
Hình 4 8 : Sai số theo mười vòng lặp và n=5 50
Trang 12LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
Hình 4 9 : Biểu đồ Boxplots khi n=5 51
Hình 4 10 : Sai số theo mười vòng lặp và n=7 51
Hình 4 11 : Biểu đồ Boxplots khi n=7 52
Hình 4 12 : Sai số khi thêm bộ lọc Batch 52
Hình 4 13 : Biểu đồ Boxplots khi thêm bộ lọc Batch và n=5 53
Hình 4 14 : Sai số sau khi thêm lớp convolution và pooling 54
Hình 4 15 : Biểu đồ Boxplots sau khi thêm lớp convolution và pooling 54
Trang 13LUẬN VĂN THẠC SĨ GVHD: PGS.TS NGUYỄN QUỐC CHÍ
DANH MỤC CÁC BẢNG
Bảng 3 1: Phần cứng sử dụng trong qua trình nghiên cứu 26Bảng 3 2: Giá trị sai số trung bình của các phương pháp 41
Trang 14CHƯƠNG 1 TỔNG QUAN
1.1 Tính cấp thiết của đề tài
Trong mọi lĩnh vực của đời sống hiện nay, robot đang được sử dụng một cách rộng rãi, đóng góp to lớn vào nâng cao năng suất và chất lượng sản phẩm Theo số liệu thống kê của Hiệp hội robot thế giới, trong năm 2018 tổng số lượng robot được lắp đặt đã tăng 6% lên 442,271, giá trị đạt 16,5 tỉ USD (không tính phần mềm và thiết
bị ngoại vi), 30% trong ngành công nghiệp ôtô, 24% robot công nghiệp được sử dụng trong ngành sản xuất linh kiện điện tử, 10% trong sản xuất máy và luyện kim, 6% trong ngành thực phẩm Ngoài ra, robot cũng được sử dụng khá nhiều trong các ngành hóa chất, máy chính xác, gốm, giấy, nông nghiệp và lâm nghiệp
Hình 1.1 Phân bố robot trong các ngành công nghiệp
Cùng với sự phát triển của khoa học kỹ thuật trên lĩnh vực cơ khí chế tạo và thuật toán Mechine Learning đã thay đổi, phát triển phương thức làm việc của robot
từ các hành động lặp đi lặp lại được lập trình trước chuyển sang tự phân tích, mô phỏng, bắt chước các hành động của con người Điều này mở ra nhiều phương thức
Trang 15gia công chế tạo, vận hành sản xuất mới
Quy trình thiết kế chế tạo sản phẩm:
Hình 1.2 Quy trình thiết kế chế tạo sản phẩm
Ngày nay sự phát triển không ngừng của khoa học kỹ thuật cùng với đó là nhu cầu về sản phẩm của con người thay đổi liên tục tạo điều kiện thuận lợi cũng như bắt buộc phải liên tục thay đổi kỹ thuật, mẫu mã, năng suất và chất lượng sản phẩm Điều
đó tạo ra áp lực rất lớn trong việc thiết kế chế tạo sản phẩm Làm sao sản phẩm đưa
ra phải nhanh mà vẫn đảm bảo được chất lượng
Bài toán đặt ra là phải giảm thời gian thiết kế và lập trình gia công, nhằm áp dụng vào các nhiệm vụ, môi trường và điều kiện làm việc thay đổi liên tục, đồng thời đảm bảo mục tiêu chi phí về máy móc thiết bị thấp nhất, thời gian và phương thức để thiết lập chương trình cho robot là ít, tiện lợi nhất Để đạt được mục tiêu trên, nhiều doanh nghiệp và các nhà khoa học đang tập trung vào nghiên cứu và phát triển theo hai hướng chủ yếu:
Thứ nhất là kết hợp các công nghệ về xử lý ảnh để quét và tạo khối 3D đối tượng, sau đó đưa trực tiếp vào phần mềm để tính toán ra thông số cho robot thao tác
Thiết kế chi tiết (1)
Lập trình gia công (2)
Gia công (3) Kiểm tra
(4)
Trang 16– Giảm thời gian ở khâu thiết kế, kiểm tra sản phẩm, giá trị sai số nhỏ
Nhược điểm:
– Giá thành cao, ảnh hưởng nhiều bởi điều kiện môi trường làm việc
Thứ hai là dạy trực tiếp robot thông qua hướng dẫn bằng hành động để robot ghi nhớ (quá trình ghi nhận hoạt động được các sensor hoặc camera ghi nhận và lưu lại) và sử dụng các phần mềm tự học và tự nâng cấp (sử dụng các thuật toán xử lý để tối ưu hóa quá trình làm việc) đảm bảo cho quá trình vận hành của robot là hiệu quả
1.2 Tổng quan về các nghiên cứu
1.2.1 Tình hình các nghiên cứu trên thế giới
Tác giả Po Chen Wu đã xây dựng các thuật toán nâng cao độ chính xác cho quá trình ước lượng 6 bậc tự do về hướng và vị trí của đối tượng Trong nghiên cứu của mình tác giả đã phát triển phương pháp ổn định trực tiếp cho quá trình ước lượng 6 bậc tự do cho đối tượng có kết cấu và không có kết cấu phụ trợ chỉ với hệ thống monocamera, từ đó ứng dụng vào các mô hình nhận dạng đường, hướng di chuyển của vật thể trong không gian Kết quả của nghiên cứu cho sai số 0.4mm, có thể so sánh cùng với các hệ thống hiện đại sử dụng nhiều camera [1]
Ankit Shah, Shen Li và Julie Shah đến từ Massachusetts Institute of Technology, đã đưa ra được thuật toán kết hợp với vision áp dụng vào robot thực
Trang 17hiện công việc đơn giản Tác giả đã chứng minh sự tồn tại của quy trình quyết định Markov tương đương cho bất kỳ trường hợp nào đối với các thông số kỹ thuật không chắc chắn (PUnS) Cuối cùng tác giả và nhóm cộng sự đã tiến hành kiểm tra, chứng minh tính đúng dắn của lý thuyết dựa trên mô hình robot phục vụ đặt bàn dựa trên sự
chỉ dẫn của con người [2]
Công ty KUKA Robotics đã kết hợp cảm biến lực, moment 6 bậc và cánh tay robot nhà sản xuất đã tạo ra hệ thống ghi nhớ và thực hành lại thao tác chỉ dẫn hướng của con người đối với đầu thao tác robot thông qua tín hiệu thu nhận từ cảm biến góc tại các khớp của robot Nguyên lý của quá trình ghi nhận này là khi có lực tác động điều hướng của con người thì robot sẽ di chuyển theo hướng của lực tác động, đồng thời với đó là quá trình ghi nhận lại giá trị góc quay tại các khớp của cánh tay robot Thông số nhà sản xuất đưa ra là hệ thống có thể đạt đến dung sai h7 [3]
Công ty YASKAWA Electric, Robotic welding cell with the vision system MotoSENSE, 2016, robot hàn được tích hợp hệ thống xử lý hình ảnh có thể nhận diện, phân tích và đưa ra phương án hàn hợp lý, cho ra kết quả dung sai 0,3mm Motosense là hệ thống thị giác được tích hợp vào hệ thống điều khiển robot đảm nhiệm chức phát hiện và theo dõi đối tượng Hệ thống motosense cho phép robot phát hiện vị trí các góc, biên dạng hàn Ngoài ra hệ thống thị giác còn cho robot khả năng hiệu chỉnh các thông số hàn đảm bảo cho mối hàn không chỉ đúng vị trí mà còn đảm bảo được độ phủ [4]
1.2.2 Tình hình nghiên cứu trong nước
Phạm Ngọc Phương, Trường ĐH Bách khoa TP HCM, “ Thiết kế hệ thống
hàn tích hợp với thị giác 3D”, 2019, đã đưa ra phương pháp quét chi tiết bằng tia laser
để tạo dữ liệu 3D từ đó tiến hành lập trình gia công Phương pháp đã giúp rút ngắn được rất nhiều thời gian gia công ở công đoạn thiết kế chi tiết
Nguyễn Minh Phát, Trường ĐH Bách khoa TP HCM, “ Thiết kế hệ thống 3D vision dạng structured light cho tay máy phun keo ngành công nghiệp giày”, đưa ra phương pháp sử dụng kết cấu vân sáng để quét chi tiết, tạo dữ liệu 3D với sai số nhỏ
Trang 18– Nhiều phương pháp xử lý hình ảnh được sử dụng với mục tiêu xây dựng cơ sở
dữ liệu 3D với sai số nhỏ
– Thiết kế robot làm việc ở môi trường thay đổi liên tục đòi hỏi sự linh hoạt cao – Tìm cách rút ngắn quá trình sản xuất bằng cách giảm thời gian ở khâu thiết kế gia công
1.3 Mục tiêu và đối tượng nghiên cứu
Mục tiêu nghiên cứu của đề tài là xây dụng hệ thống estimation pose bằng vision với sai số nhỏ, có thể áp dụng cho robot hàn
Đối tượng nghiên cứu là hệ thống vision sử dụng một camera Trong đó đi sâu vào tìm hiểu các phương pháp tối ưu sai số estimation pose
1.4 Ý nghĩa khoa học của đề tài
Đề tài phù hợp với xu thế phát triển của nền công nghiệp trên toàn thế giới nói chung và ngành cơ khí - tự động hóa nói riêng hướng đến mục tiêu tăng năng suất và chất lượng sản phẩm
Quá trình xây dựng hệ thống ước lượng vị trí, hướng của vật thể trong không gian là một vấn đề đang được nghiên cứu và có tính ứng dụng cao Đề tài sẽ đóng góp một số kết quả cho quá trình nghiên cứu về phương pháp này
1.5 Ý nghĩa thực tiễn của đề tài
Nghiên cứu có thể ứng dụng trong thực tế sản xuất khi đối tượng nghiên cứu
là monocamera và cánh tay robot được trang bị khá phổ biến tại nhiều nhà máy trong nước
Kết quả nghiên cứu có thể sử dụng để theo dõi các vật thể di chuyển (sản phẩm
Trang 19trên băng chuyền, robot trong kho hàng…)
KẾT LUẬN CHƯƠNG 1
Sau khi nghiên cứu tổng hợp các công trình và tài liệu, tác giả xây dựng được cái nhìn tổng quan về các thành tựu, phương hướng của ứng dụng vision lên các hệ thống tự động Nắm được xu thế phát triển, phân tích, đánh giá được ưu điểm và hạn chế của các nghiên cứu trước trong nước cũng như trên thế giới và xác định được mục tiêu, đối tượng nghiên cứu của đề tài
Trang 20CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Xây dựng vấn đề
Cho một đối tượng trong không gian O t , có thể ở dạng phẳng hoặc 3D, và
một ảnh camera quan sát L c Nhiệm vụ được đặt ra là xác định vị trí và hướng của
đối tượng trong không gian so với tọa độ của camera đã được hiệu chỉnh Ta có tập
hợp điểm tham chiếu x = [x , y ,z ] ,i = 1, ,n, n > 3 trong hệ tọa độ i i i i T O t, và tương
i i
i
x hu
y
hv = K[R | t]
z h
Quá trình tìm kiếm p(R,t) ta xây dựng được tập hợp các điểm u = [ u ,v ] i i i T
, thuật toán ước đoán vị trí và hướng của đối tượng (gọi tắt là pose) phải xác định
p(R,t) đảm bảo cho giá trị của hàm sai số là nhỏ nhất Có hai dạng hàm sai số hay
được sử dụng cho quá trình estimation pose Dạng thứ nhất được gọi là sai số dựng
hình, sử dụng rộng rãi trong thuật toán PnP:
2 2 1
Dạng hàm sai số thứ hai được xây dựng dựa trên khoảng cách xuất hiện và là
phương pháp sử dụng chủ yếu trong các giải pháp trực tiếp:
Trang 21Hoặc:
1
2 1
1(p) ( (u ) (x ))
Trong đó L (u ) c i là giá trị điểm ảnh của L ctại u i , O t(x )i là giá trị điểm ảnh cấu trúc của O ttại xi Hàm sai số (2.4) và (2.5) tương ứng còn gọi là Sum of Absolute Differences (SAD) và Sum of Squared Differences (SSD) errors
2.1 Tham số hóa phép quay
Dạng chung của phép quay trong là ma trận3 3x3 Tuy nhiên việc biểu diễn
ma trận với 9 phân tử có vẻ dư thừa vì chỉ có tối đa ba bậc tự do Thêm vào đó sẽ có một số trường hợp khi giải ngược từ ma trận quay ra góc thì số nghiệm không phải là
duy nhất (hiện tượng gimbal lock) Thật ra có nhiều cách để tham số hóa phép quay
3 bậc tự do với ít tham số hơn như góc Euler (Euler angle), biểu diễn trục góc (Axis angle representation) và quaternion
2.1.1 Euler angle
Trang 22phép quay nào trong cũng được mô tả bằng thành phần quay và góc Euler có thể 3được định nghĩa bởi ba yếu tố này Phép quay xung quanh 3 trục cơ bản x,y,z bằng 3 góc x, y, z được xác định như sau:
( ) 0 cos sin ; ( ) 0 1 0
cos sin 0( ) sin cos 0
Phép nhân ma trận này không có tính chất giao hoán, sự sắp xếp vị trí các phép
quay sẽ cho ra các kết quả khác nhau Thực tế có tổng cộng 12 cách sắp xếp cho phép quay, được chia thành 2 nhóm:
• Góc Tait-Bryan (xyz, yzx, zxy, xzy, zyx, yxz)
• Góc Euler (zxz, xyx, yzy, zyz, xzx, yxy)
Cụ thể nếu ta quay quanh các trục theo thứ tự trục z, trục y, trục x thì phép quay tổng hợp được biểu diễn theo công thức:
Ta sử dụng ký hiệu c a =cos(a) và s a =sin( )a cho a=x, y, z
Với R13 chúng ta dễ dàng tìm ra y =asin(R13) Từ đây chúng ta có 3 trường hợp cần lưu ý
➢ Trường hợp thứ 1: Nếu y −( / 2, / 2)thì x =atan 2(−R23,R33) Lúc này atan2 có 2 giá trị cần xem xét Thêm vào đó z =atan 2(−R12,R11) Tổng hợp lại: y =asin(R13),x =atan 2(−R23,R33),z =atan 2(−R12,R11)
➢ Trường hợp thứ 2: Nếu y = / 2 thì s y =1 ,c y =0 Trong trường hợp này:
Trang 2321 22
sin( ) cos( )cos( ) sin( )
1
11
Trang 24gian đều tương đương về xoay quanh một trục Góc nhân với vector đơn vị tạo nên
vector trục góc hay còn gọi là Euler vector:
r =a, (2 13) Phép quay theo quy tắc bàn tay phải (anticlockwise) So sánh với phương pháp Euler angles, phương pháp Euler vector đơn giản hơn và tránh được hiện tượng gimbal lock Phép quay được thực hiện như sau:
Cho một vector v trong không gian , sau khi quay quanh trục a bằng một 3
góc ta thu được v được tính toán dựa vào công thức Rodrigues rotation [5]:
v = v cos +(a× v)sin +a(a.v)(1 - cos ) , (2 14)
Ta cũng thu được ma trận quay R:
2
( , ) I sin [a]x (1 cos )[a]x
R a = + + − , (2 15) Với I là ma trận đơn vị 3x3 và [a]x là ma trận đối xứng chéo Ta có [a ,a ,a ]x y z T
Tr acos
= −
, (2 18) Sau đó tiếp tục tính a:
32 23
13 31
21 12
12sin
Trang 252.1.3 Quaternions
Quaternion được định nghĩa như một số phức có 3 thành phần ảo, nó mang
đến một cách thức đơn giản để chuyển đổi trục góc Một quaternion q được biểu diễn
theo dạng [7]:
q=q +q i+q j+q k, (2 20) Trong đó q0, q1,q2 ,q3 là các số thực và i, j, k là các số ảo đại diện cho đơn vị
quaternion cơ sở Thỏa mãn 2 2 2
1
i = j =k =ijk = −
Áp dụng vào phép quay không gian, giả sử có một vector trục quay a (vector
a phải là vector đơn vị, tức 2 2 2
1
a +a +a = ) và góc quay (anticlockwise) thì chúng ta có một quaternion quay như sau:
,
1 2 3
2 0
2.2 Thuật toán PnP và Kabsch
Nếu ta có một tập hợp n điểm tham chiếu trong hệ tọa độ không gian ba chiều
và tương ứng với nó là các điểm 2 chiều trên mặt phẳng tọa độ camera thì thuật toán
Trang 26tượng và hệ tọa độ camera, bằng cách tìm ra giá trị nhỏ nhất của hàm mục tiêu thông qua quá trình tính toán lặp lại nhiều lần
Tương tự như thế, thuật toán Kabsch tính toán tìm giá trị tối ưu giữa hai cặp điểm trong không gian N chiều bằng cách tối thiểu sai số (root mean squared devition) giữa chúng [8] Ví dụ, cho hai cặp điểm trong không gian 3 chiều x i y i biểu diễn theo công thức:
, 1, ,
i i
y =Rx +t i= n , (2 24) Bước thứ nhất ta tính toán tâm của hai tập điểm và sai số giữa các điểm so với tâm nhận được:
1
n T
i i i
=
= , (2 27) Sau đó dựa theo tính được singular value decomposition (SVD) của ma trận hiệp phương sai [9]:
T
H = U V , (2 28) Cuối cùng chúng ta thu được gia trị tối ưu của ma trận quay và tịnh tiến như sau:
d = det(VU ) được sử dụng để sửa ma trận quay R đảm bảo một hệ
tọa độ theo quy tắc bàn tay phải
2.3 Phương pháp Lucas-Kanade
Phương pháp Lucas-Kanade được sử dụng rộng rãi trong việc phát hiện và theo vết đối tượng theo thời gian thực [10] Đó là kết quả của quá trình tìm tối thiểu
Trang 27tổng sai số giữa hai ảnh thông qua tham số hình học p = [p , , p ] : 1 m T
2
x
f(p) =(L (w(x, p)) - L (x)) , (2 30) Trong đó L c là ảnh camera, L t là ảnh đối tượng, x = [x, y] là vị trí pixel, T
T
w(x, p)= [u(x, p),v(x, p)] là hàm sắp xếp tương ứng pixel từ L t sang L c Khi đó vấn
đề tối ưu là phi tuyến bởi sự xuất hiện của L t(.) và L c(.) vậy nên không có giải pháp triệt để nào giải quyết cho (2.23) Do đó phương pháp LK giả định rằng ước đoán hiện tại thông số hình học p đã được biết , sau đó lặp lại phương pháp tối ưu hóa để
Trang 28Lúc này tìm giá trị nhỏ nhất của hàm f( p) tương đương với việc tìm ra p :
Mã này có thể quay theo nhiều chiều khác nhau trong môi trường, vì vậy, để xác định đúng dữ liệu mà nó truyền tải ta cần phải xác định được độ quay ban đầu của nó, do đó mỗi góc được xác định rõ ràng Mã hóa nhị phân sẽ giải quyết vấn đề này
Hình 2 2: Hình ảnh của aruco
Trang 292.4.2 Từ điển
Từ điển của các marker là một tập các điểm đánh dấu được xem xét trong một ứng dụng cụ thể Nó chỉ đơn giản là danh sách các mã hoá nhị phân cho mỗi dấu hiệu của nó Hai thuộc tính chính của một từ điển là kích thước từ điển và kích thước điểm đánh dấu:
− Kích cỡ từ điển là số lượng dấu hiệu được tạo ra từ từ điển
− Kích thước điểm đánh dấu là kích thước của các dấu hiệu (số bits)
Module Aruco chứa một số từ điển được định nghĩa trước bao gồm một loạt các kích cỡ từ điển khác nhau và kích thước marker
Một bộ phận có thể cho rằng id điểm đánh dấu là số thu được từ quá trình chuyển đổi mã nhị phân thành số thập phân cơ sở Tuy nhiên, điều này là không thể khi mà kích thước điểm đánh dấu là các số bit cao và quản lý số lượng lớn như vậy
là không thực tế Thay vào đó, địa chi một điểm đánh dấu chỉ đơn giản là chỉ mục đánh dấu bên trong từ điển mà nó thuộc về Ví dụ, 5 dấu đầu tiên trong một từ điển
có id: 0, 1, 2, 3 và 4
2.5 Tổng quan về Open-CV
OpenCV (OpenSource Computer Vision) là một thư viện mã nguồn mở OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương mại
Thư viện OpenCV cung cấp cho người dùng các cấu trúc dữ liệu, đối tượng và hàm bằng cách khai báo nguyên mẫu (prototype) của chúng trong các tập tin thư viện C/C++ và định nghĩa chi tiết trong các tập tin mã nguồn Với mức độ sử dụng OpenCV, ta chỉ cần giải nén các tập tin đã được biên dịch sẵn rồi thực hiện các thao tác cài đặt đường dẫn cho thích hợp để hệ điều hành tìm đến đúng vị trí của các tập tin thư viện Ở mức độ cao hơn, nếu muốn hiệu chỉnh sửa đổi thuật toán hay sử dụng phần mở rộng của OpenCV ta cần phải biên dịch mã nguồn trực tiếp trên máy trước khi cài đặt
Trang 30đa lõi Được sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot
Gói chương trình OpenCV kèm theo giao diện đa nền tảng Ngoài Windows, OpenCV còn hỗ trợ một số ngôn ngữ lập trình khác nhau như C++, C, Python và Java, nếu bạn đang thực hiện các dự án Java thì đây chính là bộ công cụ hỗ trợ vô cùng cần thiết Trọng tâm chính của phần mềm này là ứng dụng thời gian thực, được phát triển nhờ vào tính năng xử lý nhiều lõi của hệ thống
OpenCV bao gồm một số module khác nhau, mỗi module có các chức năng riêng biệt và bổ sung cho nhau:
– Core cung cấp cho người dùng cấu trúc dữ liệu cơ sở và các tính năng, trong khi thành phần "Imgproc" có tính năng xử lý hình ảnh, bao gồm lọc ảnh (cả tuyến tính và phi tuyến tính), cũng như các tuỳ chọn chỉnh sửa ảnh khác (thay đổi kích thước, biến dạng ) và chuyển đổi không gian màu
– Video OpenCV cung cấp cho bạn một số thuật toán mạnh nhằm ước tính chuyển động, theo dõi đối tượng và thực hiện phương pháp tách cảnh nền – Calib3d bao gồm nhiều thuật toán hình học multiple-view, cung cấp một số tính năng chẳng hạn như hiệu chỉnh camera hoặc xây dựng lại đồ hoạ 3D – Features2d bao gồm bộ mô tả và bộ tương hợp mô tả cũng như công cụ phát hiện tính năng
– Objdetect người dùng có thể tìm các đối tượng khác nhau từ các lớp xác định trước (ví dụ xe hơi, khuôn mặt, ánh mắt )
– Highgui được thiết kế để quay video, mã hoá giải mã hình ảnh và video
2.6 Một số thuật toán Machine Learming
Trang 31dùng phép tính lặp đi lặp lại để tiến dần đến điểm cần tìm Gradient Descent (GD) và các biến thể của nó là một trong những phương pháp được sử dụng nhiều nhất
Hình 2 3: Mô hình biểu diễn cho phương pháp Gradient Descent
2.6.1.1 Grandient Descent cho hàm 1 biến
Cần tìm giá trị nhỏ nhất cho hàm y= f(x) Giả sử x t là điểm ta tìm được
sau vòng lặp thứ t Ta cần một thuật toán để đưa x tvề x*càng gần càng tốt Có 2 vấn
đề cần lưu ý:
- Nếu đạo hàm của hàm số tại x t : f'(x)0 thì nằm về bên phải so với x*
(và ngược lại) Để điểm tiếp theo x t+1 gần với x*hơn , chúng ta cần đi chuyển x tvề phía trước, tức là về phía âm Nói cách khác, chúng ta cần di chuyển ngược dấu với đạo hàm: x t+1 = + x t
Trong đó là một đại lượng ngược dấu với đạo hàm f'(x)
- x t càng xa về phía bên phải thì f'(x) càng lớn hơn 0 (và ngược lại) Vậy lượng di chuyển tỉ lệ thuận với −f'(x)
Hai điều trên cho chúng ta một cập nhật đơn giản là:
Trang 322.6.1.2 Gradient Descent cho hàm nhiều biến
Giả sử ta cần tìm global minimum cho hàm số f( ) trong đó là một vector, thường được dùng để ký hiệu tập hợp các tham số của một mô hình cần tối ưu Đạo hàm của hàm số đó tại một điểm bất kỳ được ký hiệu là f( ) Tương tự như hàm 1 biến, thuật toán GD cho hàm nhiều biến cũng bắt đầu bằng một điểm dự đoán,
ở vòng lặp thứ t, quy tắc cập nhật là: t+1= − t f( )
Hoặc viết dưới dạng đơn giản hơn: = − f( )
2.6.1.3 Biến thể của Gradient Descent
– Batch Gradient Descent: là thuật toán sử dụng toàn bộ dữ liệu để cập nhật giá trị cho Cách làm này hạn chế đối với cơ sở dữ liệu có vô cùng nhiều điểm Việc tính toán lại đạo hàm với tất cả các điểm này sau mỗi vòng lặp trở nên cồng kềnh và không hiệu quả
– Stochastic Gradient Descent: trong thuật toán này, tại một thời điểm, ta chỉ tính đạo hàm của hàm mất mát dựa trên chỉ một điểm dữ liệu xi rồi cập nhật
dựa trên đạo hàm này Việc này được thực hiện với từng điểm trên toàn bộ
dữ liệu, sao đó quá trình được lặp lại Mỗi lần duyệt một lượt qua tất cả các điểm trên toàn bộ dữ liệu được gọi là một epoch Sau mỗi epoch chúng ta cần xáo trộn thứ tự các dữ liệu để đảm bảo tính ngẫu nhiên Việc này cũng ảnh hưởng đến hiệu năng của SGD
– Mini-batch Gradient Descent: khác với SGD, mini-batch sử dụng một số lượng
n lớn hơn 1 (nhưng vẫn nhở hơn tổng số dữ liệu N rất nhiều) Giống với SGD,
mini-batch GD bắt đầu mỗi epoch bằng việc xáo trộn ngẫu nhiên dữ liệu rồi
chia toàn bộ dữ liệu thàn các mini-batch, mỗi mini-batch có n điểm dữ liệu
(trừ mini-batch cuối có thể ít dữ liệu hơn cho trường hợp không chia hết cho
n) mỗi lần cập nhật, thuật toán lấy ra một mini-batch để tính toán đạo hàm rồi
cập nhật Công thức có thể viết dưới dạng: = − J( ; x i i n:+ ; yi i n:+ ) Mini-batch GD được sử dụng trong hầu hết các thuật toán machine learning,
đặc biệt trong Deep Learning Giá trị n thường khoảng từ 50 – 100
Trang 332.6.1.4 Tối ưu cho Gradient Descent bằng momentum
Như hiện tượng vật lý được mô tả dưới dây, momentum (theo đà) giúp cho giá trị cập nhật (vị trí hòn bi) luôn đạt được giá trị mong muốn
a) GD b) GD c) DG với momentum
Hình 2 4: So sánh Gradient Descent với các hiện tượng vật lý
Trong GD, chúng ta cần tính lượng thay đổi ở thời điểm t để cập nhật vị trí mới
cho nghiệm (tức hòn bi) Nếu chúng ta coi đại lượng này như vận tốc v t trong vật lý,
vị trí mới của hòn bi sẽ là t+1 = −t v t Dấu trừ thể hiện việc phải di chuyển ngược với đạo hàm Công việc của chúng ta bây giờ là tính đại lượng sao cho nó vừa mang thông tin của độ dốc (tức đạo hàm), vừa mang thông tin của đà, tức vận tốc trước
đó (chúng ta coi như vận tốc ban đầu ) Một cách đơn giản nhất, ta có thể cộng (có trọng số) hai đại lượng này lại: v t =v t−1+ J( )
Trong đó thường được lấy giá trị khoảng 0.9, v t là vận tốc tại thời điểm đó,
Trang 34activation của Logistic Regression (LG) được biểu diễn dưới dạng xác suất Đầu ra
dự đoán của LG thường được viết chung dưới dạng: f x( )=(w x T ) Trong đó
được gọi là logistic function Một số activation cho mô hình tuyến tính được thể hiện dưới đây:
Hình 2 5 : Các activation function khác nhau
Trong số các hàm số trong hình thì hàm sigmoid 1
Sử dụng phương pháp Stochastic Gradient Descent để tối ưu hóa hàm mất mát trên Hàm mất mát với chỉ một điểm dữ liệu là:
J( w;x , y )= −(y logz + −( y )log( −z )) (2 38) Với đạo hàm :
Để cho biểu thức trở nên gọn đẹp, chúng ta tìm hàm T
z= f ( w x) sao cho mẫu
số triệt tiêu Và ta xây dựng được 1
Trang 35Công thức cập nhật cho logistic sigmoid regression:
w= +w (y −z ) x (2 39)
Mặc dù có tên là Regression, tức một mô hình cho fitting, Logistic Regression lại được sử dụng nhiều trong các bài toán Classification Sau khi tìm được mô hình,
việc xác định class y cho một điểm dữ liệu x được xác định bằng việc so sánh hai biểu
thức xác suất: P(y=1| x; w ); P(y=0| x; w )
Nếu biểu thức thứ nhất lớn hơn thì ta kết luận điểm dữ liệu thuộc class 1, ngược lại thì nó thuộc class 0 Vì tổng hai biểu thức này luôn bằng 1 nên một cách gọn hơn,
ta chỉ cần xác định xem P(y=1| x; w ) lớn hơn 0.5 hay không Nếu có, class 1 Nếu không, class 0
2.6.3 Softmax Regression
Hình 2.6: Mô hình one-vs-rest
Các bài toán classification thực tế thường có rất nhiều classes (multi-class), các binary classifiers mặc dù có thể áp dụng cho các bài toán multi-class, chúng vẫn