Trong đồ án này em sẽ tập trung đi vào xử lý bài toán được ứng dụng trong cách tay robot với mục đích phân loại và định vị vật thể đối với những vật có đường biên phức tạp, khó gắp.. Tro
Trang 1ĐỒ ÁN TỐT NGHIỆP Phát triển mô hình học máy phát hiện và định
vị vật thể ứng dụng trong điều khiển cánh tay
robot
BÙI VIỆT HOÀNG
hoang.bv170753@sis.hust.edu.vn
Chuyên ngành Cơ điện tử
Giảng viên hướng dẫn: TS Nguyễn Xuân Hạ
HÀ NỘI, 2/2022
Chữ ký của GVHD
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Bùi Việt Hoàng
Khoá: 62 Lớp: CK.CĐT.05 Chuyên ngành: Cơ điện tử
Tên đề tài tốt nghiệp: Phát triển mô hình học máy phát hiện và định vị vật thể ứng dụng trong điều khiển cánh tay robot
NỘI DUNG NHẬN XÉT
I Khối lượng đồ án:
1 Phần thuyết minh: 68 trang
II Nhận xét
Sinh viên Bùi Việt Hoàng được giao nhiệm vụ tìm hiểu và nghiên cứu bài phát triển
mô hình học máy phát hiện và định vị vật thể ứng dụng trong điều khiển cánh tay robot Để thực hiện nhiệm vụ này Việt Hoàng đã tích cực học hỏi và nâng cao kiến thức mới như trí tuệ nhân tạo – mạng học sâu, công nghệ xử lý ảnh, công nghệ tính toán nhúng
Trong quá trình thực hiện luận văn Việt Hoàng luôn tích cực chủ động và có ý thức làm việc tốt Kết quả đạt được là đáng kích lệ trong đó một mô hình trí tuệ nhân tạo được phát triển cho phép phân loại và định vị vật thể ứng dụng trong cánh tay robot, mô hình
có thể định vị và xử lý những vật có hình dáng đường biên phức tạp Mô hình này được tối ưu và triển khai trên phần cứng nhúng Jetson Nano để đánh giá hiệu quả tính toán và tính khả thi trong ứng dụng Các kết quả này đã được tổng hợp thành 01 bài báo khoa học đang trong quá trình phản biện
Vơi kết quả đạt tôi đồng ý để sinh viên Việt Hoàng được bảo vê luận văn tốt nghiệp của
mình trước hội đồng
Trang 3
Hà Nội, ngày tháng 02 năm 2022 Giảng viên hướng dẫn
Trang 4TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Bùi Việt Hoàng
Khoá: 62 Lớp: CK.CĐT.05 Chuyên ngành: Cơ điện tử
Tên đề tài tốt nghiệp: Phát triển mô hình học máy phát hiện và định vị vật thể ứng dụng trong điều khiển cánh tay robot
NỘI DUNG NHẬN XÉT
I Khối lượng đồ án:
1 Phần thuyết minh: 68 trang
II Nhận xét
Hà Nội, ngày tháng 02 năm 2022
Giảng viên phản biện
Trang 5Trước hết em muốn gửi lời cảm ơn chân thành tới Tiến sĩ Nguyễn Xuân Hạ và các thầy
cô của bộ môn Cơ sở Thiết kế máy và Robot đã nhiệt tình hướng dẫn giúp em hoàn thành luận văn tốt nghiệp một cách tốt nhất
Tiếp đến em muốn gửi lời cảm ơn tới anh Nguyễn Duy Anh đã giúp đỡ trong quá trình
em thực hiện luận văn tốt nghiệp
Quá trình hoàn thành đồ án tốt nghiệp không chỉ giúp em củng cố lại các kiến thức đã từng được học mà còn giúp em làm quen với cách thức làm việc của một người kỹ sư,
đó là ý thức làm việc độc lập, tư duy sáng tạo và tính kỷ luật, trách nhiệm đối với công việc được giao
Và cuối cùng do thời gian thực hiện dự án tương đối ngắn và kiến thức đối với chủ đề được giao vẫn còn hạn chế, em rất mong có thể nhận được những góp ý, nhận xét chân thành để giúp bản luận văn của em sẽ được cải thiện tốt hơn nữa
Tóm tắt nội dung đồ án
Ứng dụng robot vào trong sản xuất hiện nay đang là xu hướng để có thể tiết kiệm được chi phí nhân công, vận hành dây chuyền sản xuất một cách hiệu quả hơn Tuy nhiên, trong các nhà máy hiện nay vẫn chưa thể hoàn toàn áp dụng tự động hóa bằng robot do một số hạn chế nhất định về các nhiệm vụ chưa có tính tổng quát cao Trong đồ án này
em sẽ tập trung đi vào xử lý bài toán được ứng dụng trong cách tay robot với mục đích phân loại và định vị vật thể đối với những vật có đường biên phức tạp, khó gắp Trong khuôn khổ của đồ án, em đã xây dựng hệ thống nhận diện và phân loại vật thể và phát hiện các điểm quan trọng của vật thể phục vụ cho việc định vị và lên kế hoạch gắp cho cánh tay robot đồng thời tối ưu và triển khai các mô hình trên máy tính nhúng Jetson Nano Mô hình triển khai tốc độ tương đối cao (~20fps) phù hợp với xử lý thời gian thực, tuy nhiên còn hạn chế khi sai số của hệ thống tương đối lớn (~4mm) Dẫu vậy những kết quả đạt được sẽ là cơ sở để em sẽ phát triển thêm các bài toán khác như định
vị vật thể trong không gian 3 chiều, phân loại và lắp ráp vật thể trong hệ robot – băng tải,…
Trang 6MỤC LỤC
DANH MỤC HÌNH ẢNH iii
DANH MỤC BẢNG BIỂU vi
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Tổng quan về cánh tay robot 1
1.2 Ứng dụng của thị giác máy trong hệ robot 2
1.3 Bài toán phát hiện và phân loại sản phẩm 3
1.4 Bài toán lắp ráp và đóng gói sản phẩm 4
1.5 Tổng kết 7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9
2.1 Học máy, học sâu 9
2.1.1 Các khái niệm cơ bản 10
2.1.2 Phân loại các bài toán trong thị giác máy 15
2.1.3 Phương pháp huấn luyện các mô hình học sâu 18
2.2 Bài toán phát hiện vật thể (object detection) 19
2.3 Bài toán định vị điểm (keypoint detection) 22
2.4 Các mạng xương sống phổ biến trong mô hình học sâu 24
2.5 Multi-task Learning 29
2.6 Bài toán động học ngược 30
CHƯƠNG 3: CÁC BƯỚC TRIỂN KHAI ĐỀ TÀI 32
3.1 Thiết lập các điều kiện làm việc 32
3.2 Thiết kế hệ thống robot 32
3.3 Xây dựng mô hình huấn luyện 36
3.3.1 Lựa chọn và thiết kế mô hình 36
3.3.2 Chuẩn bị dữ liệu 38
3.3.3 Huấn luyện mô hình 39
3.4 Giải bài toán động học ngược 41
3.5 Điều khiển robot 44
Trang 73.5.1 Phương thức giao tiếp 44
3.5.2 Điều khiển động cơ 45
3.6 Triển khai thuật toán trên robot thật và đánh giá 47
CHƯƠNG 4: KẾT LUẬN 55
4.1 Kết luận 55
4.2 Hướng phát triển của đồ án trong tương lai 55
TÀI LIỆU THAM KHẢO 56
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 Cánh tay robot đang thực hiện những nhiệm vụ khác nhau trong một quy trình sản
xuất [1] 1
Hình 2 Robot lắp ráp thực hiện công việc trong một dây chuyền sản xuất tự động [2] 2
Hình 3 Robot định vị và lắp ráp phôi trên băng tải tự động [3] 3
Hình 4 Hệ thống phân loại rác thải tái chế (bên trái) [4] và hệ thống phát hiện sản phẩm lỗi (bên phải) [5] 4
Hình 5 Định vị vật thể có sẵn trong 1 khuôn mẫu (template) có sẵn [32] 5
Hình 6 Định vị vật thể bằng cách xác định hướng gắp và các điểm cần gắp trong không gian 3 chiều [33] 5
Hình 7 Định vị vật thể bằng các phương pháp học máy sử dụng ảnh 2D [33] 6
Hình 8 Robot thực hiện công việc lắp ráp trong dây chuyền sản xuất tự động [6] 7
Hình 9 Dây chuyền đóng gói bánh kẹo chưa được tự động hóa hoàn toàn [7] 7
Hình 10 Các khái niệm cơ bản trong trí tuệ nhân tạo [8] 9
Hình 11 Một số ứng dụng phổ biến của Học sâu như nhận diện hình ảnh (bên trái) [9] hay trợ lý ảo, chatbot (bên phải) [10] 10
Hình 12 Mạng nơ ron nhân tạo [11] 13
Hình 13 Cấu trúc chung của một mạng nơ ron tích chập [12] 14
Hình 14 Bộ lọc trích xuất các đặc trưng về các đường bao của các vật thể khác nhau trong ảnh (hình bên phải) [13] 14
Hình 15 Bài toán phân loại ảnh [14] 15
Hình 16 Bài toán nhận dạng đối tượng [14] 15
Hình 17 Bài toán phân đoạn ảnh [14] 16
Hình 18 Bài toán phân đoạn cá thể trong ảnh [14] 16
Hình 19 Bài toán mô tả ảnh [15] 17
Hình 20 Bài toán nhận diện khuôn mặt cần phát hiện các điểm Facial Landmark (bên trái) [16] và ước tính tư thế người cần phát hiện vị trí các khớp (bên phải) [17] 17
Hình 21 Hình ảnh mô tả mô hình RCNN, một mô hình đại diện cho phương pháp Two-stage Detection [18] 19
Hình 22 Phương pháp One-stage tìm kiếm và phát hiện vật thể cũng như phân loại chúng chỉ trong một thuật toán [19] 20
Hình 23 Chỉ số IoU [20] 21
Hình 24 Precision Recall Curve – đường biểu diễn mối quan hệ giữa Precision và Recall [20] 21
Trang 9Hình 25 Mô hình định vị các điểm neo của khuôn mặt [21] 22
Hình 26 Ước tính tư thế (Pose Estimation) hỗ trợ cho việc tập thể thao [22] 22
Hình 27 Phương pháp sử dụng bản đồ nhiệt giúp tăng độ chính xác cho dự đoán điểm [23] 23
Hình 28 Kiến trúc chung của một mô hình học sâu gồm 2 phần: backbone network và các additional layers [24] 24
Hình 29 Kiến trúc của 1 khối Residual Block trong mạng Resnet [25] 25
Hình 30 Kiến trúc đầy đủ của Resnet [24] 25
Hình 31.Kiến trúc khối Conv block [24] 25
Hình 32 Kiến trúc khối Identity block [24] 25
Hình 33 Cách tính số lượng tham số đối với tích chập 2 chiều thông thường [24] 26
Hình 34 Cách tính tích chập của phương pháp tích chập chiều sâu (Depthwise Convolution) [24] 26
Hình 35 Cách tính tích chập điểm (Pointwise Convolution) [24] 27
Hình 36 Kiến trúc của Mobilenet [26] 28
Hình 37 Cách hoạt động của Multi-task Learning [27] 29
Hình 38 Quy tắc xây dựng hệ trục tọa độ cho robot của phương pháp Denavit Hartenberg [28] 30
Hình 39 Hệ robot (bên phải) được xây dựng theo quy tắc Denavit Hartenberg và bảng D-H (bên trái), ma trận biến đổi tọa độ thuần nhất từ hệ (i-1) sang hệ (i) [28] 31
Hình 40 Hình ảnh của robot Yahboom Dofbot 5 bậc tự do [29] 33
Hình 41 Mô hình động học của robot 33
Hình 42 Camera Cimsum [30] 34
Hình 43 Hệ thống robot – thị giác máy trên thực tế 35
Hình 44 Kích thước mẫu thứ nhất 36
Hình 45 Kích thước mẫu vật thứ hai 36
Hình 46 Mô hình retinaface với khả năng phát hiện và định vị khuôn mặt [31] 37
Hình 47 Kiến trúc của mô hình Retinaface [31] 37
Hình 48 Hình ảnh dữ liệu được thu thập qua camera 38
Hình 49 Thực hiện gán nhãn cho vật thể 39
Hình 50 Chuyển dữ liệu về đúng định dạng để có thể huấn luyện mô hình 39
Hình 51 Tinh chỉnh các tham số trong file cấu hình 40
Hình 52 Thiết lập hệ trục tọa độ cho robot bằng phương pháp Denavit Hartenberg 41
Hình 53 Lên kế hoạch gắp cho robot 41
Trang 10Hình 54 Biến khớp q5 được suy ra khi mô hình học sâu dự đoán được các điểm từ p1 đến
p6 42
Hình 55 Vùng làm việc của robot được giới hạn trong khoảng [𝑟𝑚𝑖𝑛, 𝑟𝑚𝑎𝑥 ] 43
Hình 56 Thiết lập vùng làm việc cho robot 44
Hình 57 Phương thức giao tiếp I2C [34] 45
Hình 58 Điều chế xung PWM [35] 46
Hình 59 Điều chế xung PWM để điều chỉnh góc quay của động cơ servo [36] 46
Hình 60 Luồng xử lý của hệ thống robot 47
Hình 61 Tình trạng gặp phải đối với các vật thể đặt ở góc 47
Hình 62 Đo lường sai số theo phương x theo khoảng cách của vật đến gốc tọa độ 49
Hình 63 Đường biểu diễn hàm nội suy dùng để hiệu chuẩn để giảm sai số đo đạc theo phương x 50
Hình 64 Đường biển diễn hàm nội suy dùng để hiệu chuẩn để giảm sai số đo đạc theo phương y 50
Hình 65 Đồ thị biểu diễn phân phối sai số theo phương x sau khi hiệu chuẩn 51
Hình 66 Đồ thị biểu diễn phân phối sai số theo phương y sau khi hiệu chuẩn 51
Hình 67 Kết quả của mô hình học sâu đã được huấn luyện và đánh giá trên tập dữ liệu kiểm tra 52
Trang 11DANH MỤC BẢNG BIỂU
Bảng 1 Bảng thông số của robot Yahboom 5 bậc tự do 34
Bảng 2 Bảng DH của robot 42
Bảng 3 Bảng số liệu tọa độ các điểm đo đạc trên thực tế và các điểm đo đạc bằng camera, đơn vị milimet (mm) 48
Bảng 4 Bảng kết quả sai số hiệu chuẩn, đơn vị milimet (mm) 52
Bảng 5 Bảng số liệu kết quả đánh giá theo phương pháp Average Precision 52
Bảng 6 Bảng đánh giá sai số theo phương pháp PCK 53
Trang 12Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Tổng quan về cánh tay robot
Cánh tay robot là một loại cánh tay cơ học, thường được lập trình, có chức năng tương tự như cánh tay người, cánh tay có thể là tổng của cơ chế hoặc có thể là một phần của robot phức tạp hơn Các liên kết của một bộ điều khiển như vậy được kết nối bởi các khớp cho phép chuyển động quay hoặc dịch chuyển tịnh tiến Được sử dụng trong quy trình sản xuất công nghiệp được vận hành bởi con người Ưu điểm nổi bật nhất của nó là thiết
kế linh hoạt, thao tác nhanh nhẹn, tỉ mỉ và có khả năng hoàn thiện cả những phần chi tiết sản phẩm nhỏ nhất
Hình 1 Cánh tay robot đang thực hiện những nhiệm vụ khác nhau trong một quy trình sản xuất [1]
Ứng dụng của cánh tay robot: Ứng dụng của cánh tay robot rất đa đạng, tùy vào những nghành nghề, công việc khác nhau mà ta có thể áp dụng những robot công nghiệp riêng biệt Dưới đây là một số nghành trong hệ thống sản xuất mà áp dụng robot công nghiệp
• Ứng dụng trong tự động hóa công nghiệp: robot có thể trực tiếp tham gia vào quá trình sản xuất, lắp ráp các linh kiện/máy móc của sản phẩm Chúng hoạt động một cách trơn tru và đảm bảo độ chính xác cao mà không cần sự giám sát của con người
Trang 13Hình 2 Robot lắp ráp thực hiện công việc trong một dây chuyền sản xuất tự động [2]
• Ứng dụng trong lĩnh vực hóa- thực phẩm: Trong lĩnh vực dược phẩm và thực phẩm,
rô bốt công nghiệp được ứng dụng chính trong dây chuyền phân loại sản phẩm Dưới sự trợ giúp của thị giác máy tính, chúng sẽ nhận diện chính xác từng loại sản phẩm nhờ vào khả năng so sánh hình ảnh với sản phẩm và thông qua cơ chế đọc mã vạch thông minh Ngoài ra, robot có thể làm việc trong các điều kiện môi trường khác nhau (hóa chất, nhiệt độ tùy biến,….) mà không bị ảnh hưởng
• Ứng dụng trong lĩnh vực lắp ráp, gia công cơ khí: cánh tay robot có thể hỗ trợ con người thực hiện các công việc tiềm ẩn nguy hiểm cao như hàn điện, hàn hồ quang, lắp đặt linh kiện, gia công, mài… đảm bảo sự an toàn cho người lao động Thêm vào đó, rô bốt công nghiệp không bao giờ có tình trạng “mệt mỏi” hay “mất tập trung” như con người, nên đảm bảo hiệu quả công việc luôn vượt trội Doanh nghiệp
sử dụng cobot còn giúp tối ưu chi phí thuê nhân công mà vẫn đảm bảo quy trình làm việc trơn tru và hiệu quả nhất
1.2 Ứng dụng của thị giác máy trong hệ robot
Công nghệ thị giác máy tính (Computer Vision): là một kỹ thuật tìm kiếm các cách
để tự động hóa tất cả công việc mà một hệ thống thị giác của con người có thể làm Thị giác máy bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh và, nói chung là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin
số hoặc biểu tượng, ví dụ trong các dạng quyết định Một số ứng dụng phổ biến của thị giác máy hiện nay:
❖ Phân loại hình ảnh
❖ Phát hiện đối tượng
❖ Định vị đối tượng
Trang 14❖ Tái thiết hình ảnh
❖ Theo dõi đối tượng
Trong những năm gần đây, nhờ sự phát triển của khả năng tính toán trên các thiết
bị phần cứng, sự tăng trưởng về dữ liệu, sự phát triển của trí tuệ nhân tạo, thị giác máy đang trở nên phổ biến và được áp dụng rộng rãi trong các ngành sản xuất tự động cũng như các thiết bị thông minh do độ chính xác của nó đem lại cao hơn khá nhiều so với các phương pháp tự động khác
Trước đây, các phương pháp xử lý ảnh truyền thống cũng đã được áp dụng trong các hệ Robot và đem lại những kết quả tích cực, tuy nhiên, nhờ vào sự phát triển mạnh mẽ của trí tuệ nhân tạo trong những năm gần đây, thị giác máy đang trở thành xu hướng trong các hệ Robot và các ngành công nghiệp sản xuất tự động, các ứng dụng phổ biến mà thị giác máy đem lại khi áp dụng vào Robot có thể kể đến như:
❖ Phát hiện đối tượng nhanh và chính xác
❖ Đo lường kích thước vật thể
❖ Phát hiện lỗ hổng, khuyết tật sản phẩm
❖ Định vị vật thể
❖ Đếm số lượng vật thể
Hình 3 Robot định vị và lắp ráp phôi trên băng tải tự động [3]
1.3 Bài toán phát hiện và phân loại sản phẩm
Trong các nhà máy, công xưởng, các hệ tự động hóa, cánh tay Robot thường được ứng dụng trong các hệ thống phân loại sản phẩm Hệ thống phân loại sản phẩm là giải pháp công nghiệp thay thế con người thực hiện các khâu phân loại sản phẩm theo từng đặc tính
mà người sử dụng quy định Bài toán phân loại sản phẩm thường được ứng dụng với 2 mục đích chính:
Trang 15❖ Phân loại 2 hay nhiều loại sản phẩm khác nhau
❖ Phân loại sản phẩm lỗi, khuyết tật với sản phẩm thường
Hình 4 Hệ thống phân loại rác thải tái chế (bên trái) [4] và hệ thống phát hiện sản phẩm lỗi (bên
phải) [5]
Việc thực hiện phân loại sản phẩm thường dựa vào các thông tin khác nhau Đối với các hệ thống phân loại sử dụng xử lý ảnh truyền thống, một số đặc trưng thường được sử dụng để phân loại có thể kể đến như: mã vạch, màu sắc, hình dáng đường bao,… Các phương pháp phân loại truyền thống có thể hoạt động tốt trên các loại sản phẩm đặc thù có hình dáng, kích thước hay màu sắc khác nhau nhưng lại thiếu chính xác khi các sản phẩm
có cùng những đặc trưng kể trên Trong những năm gần đây, trí tuệ nhân tạo đang là một lĩnh vực vô cùng phát triển, việc áp dụng các mạng học máy, học sâu vào vào các sản phẩm thực tế đang trở nên phổ biến Đối với các hệ thống robot phân loại sản phẩm, việc áp dụng các mạng học sâu vào để phân loại cũng đang trở thành xu hướng mới nhờ độ chính xác cao mà nó đem lại Ngoài ra, khả năng tổng quát hóa các bài toán phân loại, trí tuệ nhân tạo có thể tiết kiệm các chi phí thiết kế những hệ thống phân loại với những sản phẩm đặc thù riêng
1.4 Bài toán lắp ráp và đóng gói sản phẩm
Một ứng dụng phổ biến khác của cánh tay robot thường được ứng dụng trong tự động hóa công nghiệp là lắp ráp và đóng gói sản phẩm Công việc chính của robot là gắp,
bỏ sản phẩm đưa vào khay, gói, túi, thùng carton hay đưa các phôi gia công vào khuôn mẫu Để có thể lắp ráp hay thực hiện các thao tác theo đúng tiêu chuẩn trên các vật thể, robot cần phải có khả năng định vị được vật thể
Các phương pháp định vị vật thể phổ biến được áp dụng hiện nay có thể kể đến như:
• Định vị vật thể có sẵn trong 1 khung cố định:
Trang 16Hình 5 Định vị vật thể có sẵn trong 1 khuôn mẫu (template) có sẵn [32]
Ưu điểm: Định vị vật thể có sẵn trong 1 khuôn mẫu có độ chính xác cao, chỉ cần sử dụng các phương pháp xử lý ảnh hay quét laser thông thường để phát hiện vị trí của vật
Nhược điểm: Hệ robot trở nên hạn chế vì chỉ gắp được những vật theo đúng chiều
có sẵn ở trong vùng làm việc đã xác định, nếu vật bị xoay, nghiêng hay để sai vị trí sẽ dẫn đến sai số, các bài toán này phải thiết kế riêng hệ thống cho từng loại vật thể
• Định vị vật thể bằng các phương pháp định vị 3D, sử dụng các mô hình học máy với dữ liệu bao gồm ảnh và độ sâu và dự đoán hướng gắp cũng như vị trí gắp:
Hình 6 Định vị vật thể bằng cách xác định hướng gắp và các điểm cần gắp trong không gian 3
chiều [33]
Ưu điểm: Có thể gắp đối với tất cả các vật với các hình dáng đường biên khác nhau trong không gian Có thể gắp được với đa dạng các hướng gắp khác nhau
Nhược điểm: Sử dụng dữ liệu trong không gian 3 chiều, bao gồm ảnh và thông tin
về chiều sâu ( thu thập từ depth camera hoặc các cảm biến laser), hệ thống trở nên phức
Trang 17tạp hơn, thu thập và xử lý dữ liệu khó khăn, độ chính xác phụ thuộc rất nhiều vào cảm biến
độ sâu Ngoài ra, dữ liệu 3D chứa nhiều thông tin hơn nên việc đào tạo 1 mô hình xử lý sẽ tốn chi phí hơn cũng như chưa chắc có thể đảm bảo xử lý được trong thời gian thực (real-time)
ra, hướng gắp của những bài toán chỉ sử dụng thông tin 2 chiều sẽ không được đa dạng
Robot lắp ráp và đóng gói sản phẩm thường được ứng dụng trong các ngành hóa mỹ phẩm, thực phẩm, chế tạo máy, công nghiệp ô tô,… Để thực hiện nhiệm vụ lắp ráp và đóng gói, hệ robot cần phải có khả năng định vị tốt về vị trí của sản phẩm Hiện nay, các hệ robot lắp ráp, đóng gói thường chỉ hoạt động tốt với những sản phẩm đã được thiết lập vị trí cố định trong dây chuyền sản xuất hay đối với những vật có kích thước đối xứng, hình dáng phổ thông với bề mặt phẳng hoặc trơn Đối với những vật có hình dáng đường biên phức tạp, không đối xứng, việc thiết kế hệ thống định vị trở nên phức tạp và tốn chi phí Ở trong một số nhà máy hiện nay, việc đóng gói hay lắp ráp vẫn phụ thuộc vào nhân công và chưa thể tự động hóa hoàn toàn
Trang 18Hình 8 Robot thực hiện công việc lắp ráp trong dây chuyền sản xuất tự động [6]
Hình 9 Dây chuyền đóng gói bánh kẹo chưa được tự động hóa hoàn toàn [7]
1.5 Tổng kết
Với mục tiêu nâng cao năng suất dây chuyền công nghệ để giảm giá thành, nâng cao chất lượng và khả năng cạnh tranh của sản phẩm, việc ứng dụng công nghệ tự động hóa có tính linh hoạt cao thay thế cho các dây chuyền tự động cứng ngày càng rộng rãi Cho nên xu thế sử dụng Robot thay thế con người trong các dây chuyền sản xuất và lắp ráp trở nên tất yếu Các hệ robot đang dần được áp dụng nhiều trong các hệ sản xuất tự động tuy nhiên vẫn cần sự giúp sức của con người do có những hệ thống sở hữu những đặc thù riêng, không mang tính tổng quát
Trang 19Trong những năm gần đây, trí tuệ nhân tạo là một lĩnh vực đang phát triển một cách bùng nổ đem lại rất nhiều ứng dụng và giải pháp khác nhau trong tất cả các ngành nghề và mang tính tổng quát hóa cao, tuy nhiên ứng dụng trong robot và sản xuất tự động vẫn đang
là một lĩnh vực tiềm năng, chưa khai thác được hết
Dựa vào các nhu cầu thực tế đã khảo sát ở trên, đề tài này được thực hiện để ứng dụng trí tuệ nhân tạo ứng dụng trong Robot để giải quyết bài toán phân loại và định vị vật thể sử dụng phương pháp định vị các điểm quan trọng (keypoint) của vật
Mục tiêu sau khi thực hiện đề tài:
• Xây dựng mô hình trí tuệ nhân tạo có thể phân loại và định vị vật thể
• Giải quyết vấn đề về việc gắp các vật thể có hình dáng đường biên phức tạp, không đối xứng, khó gắp
• Xây dựng hệ thống robot có khả năng phân loại, đóng gói, lắp ráp
Trang 20CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Học máy, học sâu
Trong những năm gần đây, trí tuệ nhân tạo đang trở nên vô cùng phổ biến và được ứng dụng rộng rãi trong các lĩnh vực của cuộc sống Trí tuệ nhân tạo (hay còn gọi là AI – Artifactial Inteligence) là công nghệ sử dụng đến kỹ thuật số có khả năng thực hiện những nhiệm vụ mà bình thường phải cần tới trí thông minh của con người, được xem là phổ biến nhất Đặc trưng của công nghệ AI là năng lực “tự học” của máy tính, do đó có thể tự phán đoán, phân tích trước các dữ liệu mới mà không cần sự hỗ trợ của con người, đồng thời có khả năng xử lý dữ liệu với số lượng rất lớn và tốc độ cao
Trí tuệ nhân tạo có nhiều hướng nghiên cứu, trong đó, một trong những hướng phổ biến nhất là học máy (Machine learning - ML) Học máy có thể giúp máy móc có khả năng dựa vào các tri thức về môi trường xung quanh rút ra một nguyên lý để phục vụ cho việc
ra quyết định Và để thực hiện được quá trình này, có nhiều phương pháp ở trong ML Phương pháp ML phổ biến nhất được sử dụng trong lĩnh vực thị giác máy tính là học sâu (Deep learning - DL)
Hình 10 Các khái niệm cơ bản trong trí tuệ nhân tạo [8]
- Học máy (Machine Learning):
Như đã trình bày ở phần trên, học máy là một thành phần của trí tuệ nhân tạo giúp máy móc có thể "học" từ dữ liệu của môi trường xung quanh và thực hiện hành động nào
đó Để đạt được mục tiêu này, các nhà khoa học đã nghiên cứu ra nhiều giải thuật khác nhau, được chia thành 3 nhóm chính:
❖ Học có giám sát - Supervised-learning
❖ Học không giám sát - Unsupervised-learning
❖ Học tăng cường - Reinforcement learning
Trang 21- Học sâu (Deep Learning):
Học sâu là một phương pháp học máy được xây dựng dựa trên việc mô tả lại cách hoạt động của bộ não con người trong việc xử lý dữ liệu và tạo các mô hình ra quyết định Nhờ sự bùng nổ về dữ liệu với việc các tập đoàn lớn, các mạng xã hội đã tạo ra một kho
dữ liệu khổng lồ (Big Data) cũng như sự phát triển mạnh mẽ về phần cứng (GPU, FPGA,…) với hiệu năng tính toán cao, học sâu đã trở thành một lĩnh vực đột phá cực kỳ lớn của công nghệ trí tuệ nhân tạo trong thập kỷ vừa qua
Hình 11 Một số ứng dụng phổ biến của Học sâu như nhận diện hình ảnh (bên trái) [9] hay trợ lý
ảo, chatbot (bên phải) [10]
Ưu điểm: Học sâu gần như một trợ thủ đắc lực trong tất cả các lĩnh vực trong cuộc
sống, đây cũng là phương pháp mới nhất trong các lĩnh vực như thị giác máy tính và xử lý ngôn ngữ tự nhiên Mạng nơ ron sâu có hiệu suất cao trên tập dữ liệu ảnh, audio và chữ viết; có thể dễ dàng cập nhật mô hình bằng dữ liệu mới Kiến trúc của một mô hình (số lượng và cấu trúc từng tầng) có thể được ứng dụng qua nhiều bài toán khác nhau với độ chính xác cao
Nhược điểm: Nhược điểm lớn nhất của học sâu là phải cần một số lượng dữ liệu
rất lớn để đào tạo Bên cạnh đó, chi phí đào tạo cũng là một vấn đề nan giải do phải cần một lượng dữ liệu rất lớn cho việc này Không chỉ thế, mạng lưới thần kinh khó đào tạo cũng gây ra tình trạng xấu đi trong mạng lưới thần kinh, tốn thời gian cải tạo
2.1.1 Các khái niệm cơ bản
Các bài toán trong học sâu nói chung có thể chia thành 2 lớp bài toán chính: Phân loại (Classification) và Hồi quy (Regression)
❖ Bài toán Hồi quy (Regression):
Bài toán hồi quy (Regression) có mục đích là tạo ra một mô hình có khả năng dự đoán kết quả dựa vào các đầu vào cho trước Bài toán có dạng cơ bản nhất là hồi quy tuyến tính (Linear Regression) là một thuật toán phân tích quan hệ giữa biến phụ thuộc Y với một hay nhiều biến độc lập X Mô hình của hồi quy tuyến tính có dạng:
𝑓(𝑥) = 𝑤1𝑥1+ 𝑤2𝑥2+ +𝑤𝑛𝑥𝑛 = 𝑤𝑇𝑋
Trang 22Mục tiêu của bài toán là với tín hiệu đầu vào là X, ta có thể tìm được tập các trọng
số W thông qua quá trình huấn luyện sao cho mô hình F(x)=W.X sẽ có giá trị gần nhất so
với kết quả trên thực tế Y:
𝑦 ≈ 𝑓(𝑥) = 𝑤𝑇𝑥 = 𝑦̌
Ví dụ: Dự đoán giá y của căn nhà có diện tích x1 m2, x2 phòng ngủ và cách trung tâm thành phố x3 km Với 1 tập dữ liệu đã có sẵn về giá của 100 căn nhà và thông tin (x1,x2,x3) của 100 căn nhà đó, bài toán hồi quy cần phải tìm được tập trọng số
w=[w1,w2,w3] để có thể tìm được mô hình dự đoán giá căn nhà có dạng:
𝑦 = 𝑤1𝑥1+ 𝑤2𝑥2+ 𝑤3𝑥3Trên thực tế, bài toán hồi quy thường được sử dụng để dự đoán tọa độ các điểm trên một bức ảnh, dự đoán vị trí của vật thể trong ảnh,…
❖ Bài toán Phân loại (Classification):
Bài toán phân loại (Classification) có mục đích là tạo ra một mô hình có khả năng phân các đầu vào thành các lớp (classes) riêng biệt có chung đặc điểm với nhau Bài toán phân loại thường sử dụng mạng có nhiều lớp gọi là Multi-Layer Perceptron, là một mạng
nơ ron mô phỏng hoạt động của bộ não con người để có thể phân các đầu vào khác nhau thành nhiều lớp tùy vào nhu cầu của bài toán Mục tiêu của bài toán vẫn là tìm được tập trọng số w=[w1,w2,….,wn] sau quá trình huấn luyện để tìm ra một mô hình có dạng:
𝑦 = 𝑓(𝑥) = 𝜎(𝑤𝑇𝑥)
với y là nhãn (label) đại diện cho tê gọi của các lớp (class) đã phân, 𝝈(𝒘𝑻𝒙) là phép biến đổi phi tuyến nhằm mục đích phân loại đầu vào x vào một nhãn y cụ thể
Ví dụ: Với 2 tập dữ liệu gồm tập chứa ảnh chó và tập chứa ảnh mèo, bài toán phân
loại cần tìm ra mô hình có thể phân lớp tập dữ liệu trên sau quá trình huấn luyện sao cho khi có một dữ liệu mới (ảnh chó hoặc mèo) qua mô hình có thể phân lớp đúng xem ảnh
đó là chó hay mèo
- Một số khái niệm cần chú ý:
Hàm mất mát (Loss Function): Gọi 𝑦 ̌là giá trị dự đoán được, còn y là giá trị thực Hàm mất mát là hàm biểu diễn độ lệch giữa giá trị trên thực tế và giá trị mà mô hình dự đoán được Mục tiêu của tất cả những bài toán học máy, học sâu là sau quá trình huấn luyện, giá trị của hàm mất mát là nhỏ nhất Hay nói cách khác, quá trình huấn luyện là quá trình tối ưu các trọng số w=[w1,w2,….,wn] của mô hình sao cho giá trị mà mô hình dự đoán
ra sau khi huấn luyện có độ lệch nhỏ nhất so với giá trị thực tế Giả sử sai lệch của giá trị thực và giá trị dự đoán là e:
Trang 23Gọi L(w) là hàm mất mát của mô hình, để sai số đạt nhỏ nhất, ta cần tìm:
𝑤∗= 𝑎𝑟𝑔𝑚𝑖𝑛𝑤(𝐿(𝑤))
Huấn luyện mô hình:
Huấn luyện mô hình là việc cho mô hình học sâu với bộ tham số được khởi tạo ngẫu nhiên w0=[w10,w20,….,wn0] dự đoán trên tập dữ liệu huấn luyện Sau khi dự đoán và tính được hàm mất mát trên tập dữ liệu huấn luyện, ta cập nhật lại bộ tham số
w1=[w11,w21,….,wn1] để hàm mất mát giảm bằng các phương pháp tối ưu Lặp đi lăp lại
quá trình trên tới m vòng lặp (epoch) wm=[w1m,w2m,….,wnm], khi hàm mất mát 𝑳(𝒘𝒎)
đủ nhỏ (đã đạt đến điểm tối ưu) thì dừng lại
Tối ưu hàm mất mát:
Như đã nói ở trên, quá trình huấn luyện là quá trình cập nhật các trọng số
w=[w1,w2,….,wn] của mô hình để tối ưu hàm mất mát sao cho hàm số này đạt giá trị nhỏ nhất Để tìm giá trị nhỏ nhất, các phương pháp tối ưu phổ biến thường dùng có thể kể đến
là Gradient Descent, SGD (Stochastic Gradient Descent), Momentum, NAG (Nesterov Accelerated Gradient) Ý tưởng chung của các phương pháp này là điều chỉnh các tham
số để lặp đi lặp lại thông qua mỗi dữ liệu huấn luyện để giúp hàm mất mát đạt tới điểm tối ưu (giá trị cực tiểu)
Ban đầu, khởi tạo w0=[w10,w20,….,wn0], để tối ưu trọng số w, ta cần cập nhật liên tục khi đưa mô hình qua tập dữ liệu huấn luyện Luật cập nhật trọng số của các phương pháp này
có thể được biểu diễn:
𝑤𝑛 +1 = 𝑤𝑛− 𝜂 𝛿(𝐿(𝑤𝑛)) Trong đó:
𝜹(𝑳(𝒘)) là đạo hàm của hàm mất mát tại vòng lặp thứ n khi khi cập nhật trọng số
w, ý tưởng của các phương pháp trên là cập nhật trọng số w bằng cách đi ngược lại hướng của đạo hàm vì đạo hàm biểu diễn cho chiều biến thiên của hàm số, việc công thêm vào biến số một lượng nhỏ ngược với hướng của đạo hàm giúp cho hàm số tiến gần
về cực tiểu hơn
𝜼 là tốc độ học (learning rate) của mô hình, đây là thông số có thể chọn khi huấn luyện mô hình giúp mô hình tiến đến điểm tối ưu nhanh nhất, thường được chọn là 1 số nhỏ để mô hình có thể học từ từ và không vượt qua điểm tối ưu
Mạng nơ ron (Neural Network):
Mạng nơ-ron (Neural Network) là một chuỗi những thuật toán được đưa ra để tìm kiếm các mối quan hệ cơ bản trong tập hợp các dữ liệu Thông qua việc bắt trước cách thức hoạt động từ não bộ con người
Trang 24Mạng Neural Network là sự kết hợp của những tầng perceptron (các nút mạng) hay còn gọi là perceptron đa tầng Và mỗi một mạng Neural Network thường bao gồm 3 kiểu tầng là:
❖ Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng
❖ Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu
ra của mạng
❖ Tầng hidden layer (tầng ẩn): Tầng này nằm giữa tầng vào và tầng ra nó thể hiện cho quá trình suy luận logic của mạng
Hình 12 Mạng nơ ron nhân tạo [11]
Các nút mạng của lớp trước được sẽ được tổng hợp tại nút sau bằng cách nối qua các cạnh, mỗi cạnh sẽ đánh một trọng số w Giá trị tổng hợp của một nút tại nút sau được biểu diễn:
𝑎 = 𝜎( 𝑤1𝑥1 + 𝑤2𝑥2+ +𝑤𝑛𝑥𝑛) = 𝜎(𝑤𝑇𝑥)
Trong đó: 𝑎 là giá trị của một nút của lớp sau khi được tổng hợp bởi các nút ở lớp trước
𝑥 = [𝑥1, 𝑥2, … , 𝑥𝑛] là giá trị của tất cả các nút của lớp trước
𝑤 = [𝑤1, 𝑤2, … , 𝑤𝑛] là trọng số (được biểu diễn bằng các cạnh), đây cũng là trọng số cần phải tìm khi huấn luyện mô hình như đã nói ở trên
𝜎(𝑤𝑇𝑥) là hàm kích hoạt phi tuyến, mục đích là để giữ lại những thông tin cần thiết cho quá trình suy luận và lược bỏ những thông tin thừa Một số hàm kích hoạt phi tuyến phổ biến có thể kể đến như ReLU, tanh, sigmoid, Thiết kế mô hình học sâu chính là việc thiết kế mạng nơ ron để có thể thực hiện các nhiệm vụ phân loại hay hồi quy một cách tốt nhất tùy vào yêu cầu cụ thể trên thực tế
Mạng nơ ron tích chập (Convolutional Neural Network):
Trang 25Mạng nơ ron tích chập là mạng nơ ron sử dụng các bộ lọc (các lớp ma trận tích chập) xếp chồng lên nhau để tạo ra một mạng nơ ron hoàn chỉnh Các bộ lọc này đóng vai trò trích xuất các đặc trưng, thông tin khác nhau trong ảnh để giúp mô hình có thể đưa ra được các quyết định cho các nhiệm vụ khác nhau (phân loại hay dự đoán)
Hình 13 Cấu trúc chung của một mạng nơ ron tích chập [12]
Các bộ lọc là các ma trận chứa các tham số khác nhau, sử dụng phương pháp tích chập để có thể trích xuất các giá đặc trưng khác nhau trên một bức ảnh Ở hình 14, có thể thấy bộ lọc ở hình bên phải trích xuất các cạnh đường bao của các vật trong bức ảnh, các đặc trưng này sẽ phục vụ cho các mục đích khác nhau như dự đoán vị trí của vật thể, phân loại vật thể,… Các tham số của ma trận chính là các tham số sẽ được cập nhật trong quá trình huấn luyện và chính là các tham số cần tối ưu để mô hình có thể hoạt động tốt nhất
Hình 14 Bộ lọc trích xuất các đặc trưng về các đường bao của các vật thể khác nhau trong ảnh
(hình bên phải) [13]
Mạng nơ ron tích chập đang được sử dụng chính trong các nhiệm vụ về thị giác máy tính nhờ những ưu điểm của nó Thiết kế một mô hình học sâu cho một bài toán thị
Trang 26giác máy chính là việc thiết kế một mạng nơ ron tích chập để thực hiện một nhiệm vụ cụ thể
2.1.2 Phân loại các bài toán trong thị giác máy
Các bài toán trong thị giác máy phổ biến có thể kể đến như:
Phân loại ảnh – Image Classification
Bài toán phân loại ảnh có nhiệm vụ gán nhãn cho một bức ảnh từ một tập các nhãn định sẵn Đây là một trong những vấn đề cốt lõi trong thị giác máy tính, với rất nhiều ứng dụng thực tiễn đa dạng như phân loại đồ vật, phân loại động vật, phân loại giới tính, v.v Hơn thế nữa, bài toán phân loại ảnh cũng là một bài toán tiền đề cho các bài toán khác của thị giác máy tính Mục đích của bài toán phân loại là đưa ra một nhãn tương ứng với mỗi ảnh kèm theo chỉ số confidence (độ tin cậy) của nhãn đó
Hình 15 Bài toán phân loại ảnh [14]
Nhận dạng đối tượng – Object Detection
Nhận dạng đối tượng là quá trình tìm kiếm trong một bức ảnh hoặc video các vật thể riêng biệt và vị trí của chúng, khoanh vùng đối tượng bằng một hình chữ nhật
(bounding box) và phân loại chúng Bài toán này có rất nhiều ứng dụng như tìm kiếm đồ vật, theo dõi đối tượng
Hình 16 Bài toán nhận dạng đối tượng [14]
Phân đoạn hình ảnh – Image Classification
Nhiệm vụ của bài toán phân đoạn ảnh là phân loại từng pixel trong ảnh thuộc lớp nào Trong bài toán phân đoạn ảnh, chúng ta sẽ không quan tâm tới từng vật riêng biệt mà
Trang 27chỉ quan tâm tới từng pixel Semantic segmentation có thể ứng dụng trong xe tự lái, phân tách làn đường, khi mà nếu chỉ có bounding box, chúng ta không thể biết đoạn đường phía trước xe là cong hay thẳng, rẽ trái hay rẽ phải
Hình 17 Bài toán phân đoạn ảnh [14]
Phân đoạn cá thể ảnh – Instance segmentation
Bài toán phân đoạn cá thể ảnh có thể coi là tổng hợp của 2 bài toán nhận diện vật thể và phân đoạn ảnh Vì vậy, đây là bài toán khó nhất và thách thức nhất trong lĩnh vực thị giác hiện tại khi phải thực hiện đồng thời hai nhiệm vụ mà vẫn phải đảm bảo độ chính xác và tốc độ đủ dùng Instance segmentation không những giúp chúng ta phát hiện vật thể
mà còn giúp chúng ta biết được hình dáng của vật thể đó Instance segmentation có nhiều ứng dụng trong xe tự lái nhận diện vật thể giao thông, trong việc hiểu ngữ cảnh của ảnh (trên mạng xã hội)
Hình 18 Bài toán phân đoạn cá thể trong ảnh [14]
Mô tả ảnh – Image Captioning
Bài toán mô tả ảnh là bài toán với đầu vào là một bức ảnh và đầu ra là một nhãn (label) miêu tả nội dung của bức ảnh đó dưới dạng văn bản (text) hoặc giọng nói
(speech) Đây là một bài toán kết hợp giữa 2 loại mô hình học sâu là CNN và RNN để có
Trang 28thể xử lý với các kiểu dữ liệu khác nhau là ảnh và ngôn ngữ Đây là một trong lĩnh vực khó và đang được nghiên cứu
Hình 19 Bài toán mô tả ảnh [15]
Định vị, dự đoán các điểm quan trọng – Keypoint/ Landmark detection
Bài toán định vị dự, đoán các điểm quan trọng là bài toán có nhiệm vụ xác định vị trí của các điểm neo (Keypoint/Landmark) của một vật thể Các điểm này đã được định nghĩa và xác định theo thứ tự từ trước Mục đích của bài toán là xác định tập hợp các điểm của một vật thể để có thể thao tác, nhận diện dựa trên đặc điểm của các điểm đó Các vấn đề trên thực tế thường gặp cần phải xác định các điểm neo có thể kể đến như nhận diện khuôn mặt (Face Recognition), ước tính tư thế của người (Pose Estimation)
Hình 20 Bài toán nhận diện khuôn mặt cần phát hiện các điểm Facial Landmark (bên trái) [16]
và ước tính tư thế người cần phát hiện vị trí các khớp (bên phải) [17]
Trang 292.1.3 Phương pháp huấn luyện các mô hình học sâu
Quy trình huấn luyện một mô hình học sâu cần phải thực hiện các bước sau:
Bước 1: Chuẩn bị dữ liệu huẩn luyện (Data Preparation): gồm 2 phần chính:
Thu thập dữ liệu và Tiền xử lý dữ liệu
Thu thập dữ liệu là tập hợp các phương pháp khác nhau để tìm kiếm dữ liệu phù hợp (ở dạng ảnh, video, audio,….) và gom chúng lại phục vụ cho bài toán đang làm Ngoài
ra, ta cần phải tìm hiểu và phân tích để đánh giá tập dữ liệu này trên một tiêu chí xác định phù hợp với các tác vụ đang thực hiện Đối với các mô hình học sâu của thị giác máy, các
dữ liệu dạng ảnh thường được thu thập ở các trang web công cộng, không có bản quyền hoặc có thể tự chụp bằng camera Ngoài ra, có một vài phương pháp nâng cao để tăng cường dữ liệu (data augmentation) sử dụng các phương pháp xử lý ảnh để thực hiện
Tiền xử lý dữ liệu là công việc lọc sạch và chuẩn hóa dữ liệu Đây là công việc tốn nhiều thời gian nhưng là bước quan trọng nhất trong phần chuẩn bị dữ liệu Mục tiêu của việc tiền xử lý dữ liệu là loại bỏ nhiễu, đưa dữ liệu về một quy chuẩn chung nhằm giúp mô hình có thể học được tốt hơn, tiết kiệm chi phí, thời gian huấn luyện, gia tăng độ chính xác Trong các mô hình học sâu của thị giác máy, thường sử dụng các phương pháp xử lý ảnh truyền thống với các phép biến đổi hình thái học để có thể tiền xử lý cho dữ liệu
Bước 2: Tinh chỉnh các siêu tham số để huẩn luyện mô hình (Tuning Hyperparameters) Các siêu tham số (hyperparameters) khác với các tham số của mô hình
(parameters), các tham số của mô hình hay còn được gọi là trọng số là các số được tìm ra sau quá trình huấn luyện trên tập dữ liệu, còn các siêu tham số là các số được chọn thủ công để giúp cho mô hình tìm ra các tham số một cách tối ưu nhất
Một vài siêu tham số có thể kể đến như: số vòng lặp (epoch): là số lần đưa mô hình qua toàn bộ tập dữ liệu, tốc độ học (learning rate) là một số nằm trong khoảng từ 0 đến 1, tốc
độ học có nhiệm vụ kiểm soát tốc độ mô hình thay đổi và cập nhật trọng số Ngoài ra còn
có thể lựa chọn thay đổi các phương pháp tối ưu khác nhau như GD, SGD, Adam,…
Sau khi lựa chọn các siêu tham số, ta huấn luyện mô hình và đánh giá kết quả của
mô hình Cần phải chọn nhiều bộ siêu tham số khác nhau để có thể tìm ra mô hình tốt nhất
Bước 3: Đánh giá kết quả của mô hình
Sau khi thực hiện bước tinh chỉnh các siêu tham số và huấn luyện mô hình, ta cần phải đánh giá xem liệu mô hình đã hoạt động tốt hay chưa Với mỗi bộ siêu tham số, ta có một mô hình với các trọng số khác nhau, ta cần phải đánh giá xem bộ siêu tham số nào đem lại kết quả tốt nhất trên thực tế Thông thường, để đánh giá mô hình, ta cần chuẩn bị một tập dữ liệu để kiểm tra tách biệt độc lập với tập dữ liệu huấn luyện Tập dữ liệu kiểm tra (test data) là tập dữ liệu khác hoàn toàn so với tập dữ liệu khi mô hình chạy qua để cập nhật trọng số, nếu mô hình cho kết quả tốt trên tập dữ liệu kiểm tra, có thể kết luận đó là một mô hình tốt Một số phương pháp đánh giá có thể kể đến như: Đánh giá độ chính xác (Accuracy), Average Precision (AP), Average Recall (AR), mean Average Precision (mAP), F1 Score, Confusion Matrix, PCK, OKS,…
Trang 302.2 Bài toán phát hiện vật thể (object detection)
Bài toán phát hiện vật thể hay nhận dạng đối tượng (Object detection) là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong ảnh kỹ thuật số Nhận dạng đối tượng đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái Có nhiều cách để nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực tế
Về phần tiếp cận mô hình, thuật toán nhận dạng đối tượng có thể được phân loại thành 2 dạng chính: One-stage và Two-stage Method
❖ One-stage Method:
Trang 31Khác với phương pháp Two-stage, phương pháp này sẽ không phân ra hai giai đoạn
rõ ràng, mà cùng lúc sẽ thực hiện cả việc phát hiện vật thể (tìm bounding box) và phân loại vật thể (classification)
Hình 22 Phương pháp One-stage tìm kiếm và phát hiện vật thể cũng như phân loại chúng chỉ
trong một thuật toán [19]
Một số mô hình phổ biến của phương pháp One-stage có thể kể đến như YOLO, SSD,… Ưu điểm của phương pháp trên là nhanh, có khả năng chạy trong thời gian thực (real time) tuy nhiên độ chính xác không cao bằng các phương pháp two-stage
Các phương pháp đánh giá bài toán nhận dạng vật thể:
Đối Với bài toán nhận dạng vật thể, phương pháp hay được sử dụng nhất là độ chính xác trung bình, tính chỉ số AP (Average precision)
Precision đại diện cho độ tin cậy của mô hình, là tỉ lệ số điểm true positive trong số
những điểm được phân loại là positive, cho chúng ta biết độ chính xác của phép dự đoán như tỉ lệ phần trăm các dự đoán đúng Precision cao tức là trong những điểm tìm được, tỉ
lệ tìm được đúng cao
Recall đại diện cho độ nhạy của mô hình, là tỉ lệ số điểm true positive trong số
những điểm thực sự là positive, cho ta biết xem có bỏ sót nhiều điểm positive không Recall càng cao thì tỉ lệ các điểm positive bị bỏ sót sẽ thấp
Một mô hình phân loại tốt phải là một mô hình có cả Precision và Recall đều cao
Có hai cách đo chất lượng của bộ phân loại dựa vào Precision và Recall: Precision-Recall curve và F-score
Trang 32IoU đo sự giao nhau giữa hai vùng được nhận diện Chúng ta sử dụng chỉ số này để
đo xem bao nhiêu phần của vùng được dự đoán giao với ground truth (vùng ảnh thật) Trong một số bộ dữ liệu, chúng ta sẽ định nghĩa trước một ngưỡng IoU để phân loại xem phép dự đoán là true positive hay false positive
Hình 23 Chỉ số IoU [20]
Precision Recall Curve & Average Precision
Khi một mô hình nhận diện ra kết quả dự đoán(prediction) , ta cần so sánh kết quả
đó với đáp án trên thực tế (ground truth) Với những kết quả dự đoán có chỉ số IoU của prediction và groundtruth lớn hơn 1 ngưỡng nào đó (từ 0 đến 1), ta quy định kết quả đó là True Positive, ngược lại sẽ là False Positive Từ đó, với mỗi 1 ngưỡng (threshold) khác nhau, ta có thể vẽ được các đường cong mô tả mối quan hệ giữa Precision và Recall (Precision Recall Curve)
Hình 24 Precision Recall Curve – đường biểu diễn mối quan hệ giữa Precision và Recall [20]
Giá trị AP (Average Precision) được chính là vùng diện tích phía dưới đường Precision Recall Curve Với AP lớn, nó cho thấy Precision và Recall cao, chứng minh rằng
model học tốt, còn với AP nhỏ thì ngược lại
Trang 33mAP (mean Average Precision)
Thông thường, với mỗi 1 lớp trong bài toán phân loại sẽ có 1 giá trị AP riêng, và mAP là trung bình cộng của các giá trị AP của các lớp khác nhau
2.3 Bài toán định vị điểm (keypoint detection)
Bài toán định vị điểm (Keypoint/Landmark detection) là một thuật ngữ chung để
mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc dự đoán
vị trí/tọa độ của 1 vật trong một bức ảnh Trong thực tế, định vị điểm thường được sử dụng vào bài toán nhận diện khuôn mặt (Face Recognition) với việc trích xuất ra tọa độ các điểm neo trên khuôn mặt (Facial Landmark Detection)
Hình 25 Mô hình định vị các điểm neo của khuôn mặt [21]
Ngoài ra, bài toán định vị điểm còn được sử dụng để ước tính tư thế người (Pose Estimation) dùng để phục vụ cho các bài toán khác như tương tác người-máy (Human-machine interaction), nhận diện hành vi (Action Recognition), thực tế ảo (Augmented Reality), Animation và Game, Robotics,…
Trang 34Đối với bài toán định vị điểm, thuật toán được sử dụng chủ yếu là thuật toán hồi quy
để dự đoán các điểm trên ảnh Hiện nay có một số phương pháp mới có thể giúp tăng độ chính xác của điểm dự đoán bằng cách sử dụng bản đồ nhiệt (Heatmap) để trích xuất ra vùng có khả năng chứa điểm cần dự đoán
Hình 27 Phương pháp sử dụng bản đồ nhiệt giúp tăng độ chính xác cho dự đoán điểm [23]
Các phương pháp đánh giá bài toán định vị điểm:
PCK (Percentage of Correct Keypoints)
Trong bài toán định vị điểm, nếu khoảng cách của điểm dự đoán (prediction) và kết quả thực tế (groundtruth) nhỏ hơn 1 ngưỡng cho phép (do người huấn luyện mô hình quy định) thì điểm đó được coi là dự đoán đúng, ngược lại sẽ là dự đoán sai PCK là chỉ số cho thấy tỷ lệ số điểm dự đoán đúng được tính như sau:
𝑃𝐶𝐾 = ∑ 𝑐𝑜𝑟𝑟𝑒𝑐𝑡 𝑘𝑒𝑦𝑝𝑜𝑖𝑛𝑡𝑠
∑ 𝑎𝑙𝑙 𝑘𝑒𝑦𝑝𝑜𝑖𝑛𝑡𝑠PCK biểu diễn cho số điểm dự đoán đúng trên tổng số điểm được dự đoán
Sai số bình phương trung bình (mean Square Error - MSE)
MSE được gọi là giá trị sai số bình phương trung bình hoặc là lỗi bình phương trung bình Vấn đề khi nói về sai số trung bình của một mô hình dự đoán nhất định là rất khó xác định mức độ lỗi là do mô hình và mức độ là do ngẫu nhiên MSE chỉ đơn giản đề cập đến giá trị trung bình của chênh lệch bình phương giữa tham số dự đoán và tham số quan sát được
𝑛∑(𝑦𝑖− 𝑦̃ )𝑖 2𝑛
𝑖=0Trong đó: 𝑦̃ là vị trí điểm của vật thể trên thực tế 𝑖