1. Trang chủ
  2. » Giáo Dục - Đào Tạo

luận án tiến sĩ nghiên cứu nâng cao chất lượng tái tạo hình học bề mặt các sản phẩm cơ khí bằng công nghệ quét 3d sử dụng thiết bị kinect v2

208 38 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 208
Dung lượng 2,34 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Bùi Văn Biên NGHIÊN CỨU NÂNG CAO CHAT LƯỢNG TÁI TẠO HÌNH HỌC BỀ MẶT CÁC SẢN PHÀM CƠ KHÍ BẰNG CƠNG NGHỆ QT 3D SỬ DỤNG THIẾT BỊ KINECT V2 LUẬN ÁN TIẾN SĨ KỸ THUẬT CƠ KHÍ Hà Nội - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Bùi Văn Biên NGHIÊN CỨU NÂNG CAO CHAT LƯỢNG TÁI TẠO HÌNH HỌC BỀ MẶT CÁC SẢN PHÀM CƠ KHÍ BẰNG CÔNG NGHỆ QUÉT 3D SỬ DỤNG THIẾT BỊ KINECT V2 Ngành: Kỹ thuật Cơ khí Ma số: 9520103' LUẬN ÁN TIẾN SĨ KỸ THUẬT CƠ KHÍ NGƯỜI HƯỚNG GS TSKH BànhDẪN TiếnKHOA Long HỌC: Hà Nội - 2021 LỜI CAM ĐOAN Tơi xin cam đoan kết trình bày luận án cơng trình nghiên cứu tơi hướng dẫn cán hướng dẫn Các số liệu, kết trình bày luận án hoàn toàn trung thực chưa tác giả khác cơng bố Các liệu tham khảo trích dẫn đầy đủ Hà Nội, ngày 11 tháng 01 năm 2021 Người hướng dẫn khoa học Nghiên cứu sinh GS.TSKH Bành Tiến Long Bùi Văn Biên Trang LỜI CẢM ƠN Trong q trình nghiên cứu hồn thành Luận án, Nghiên cứu sinh nhận định hướng, giúp đỡ, ý kiến đóng góp quý báu lời động viên nhà khoa học, thầy giáo, đồng nghiệp gia đình Trước hết, Nghiên cứu sinh xin bày tỏ lời cảm ơn sâu sắc tới thày GS.TSKH Bành Tiến Long tận tình hướng dẫn giúp đỡ trình nghiên cứu Cho phép Nghiên cứu sinh chân thành cảm ơn thày cô giáo, nhà khoa học Bộ môn Gia công vật liệu Dụng cụ công nghiệp, Viện Cơ khí, Trường Đại học Bách khoa Hà Nội có góp ý quý báu cho Nghiên cứu sinh trình thực Luận án Nghiên cứu sinh chân thành cảm ơn Ban Giám hiệu, Phòng Đào tạo, Viện Cơ khí, Trường Đại học Bách khoa Hà Nội, Ban Giám hiệu, Khoa Điện Cơ, Trường Đại học Hải Phòng tạo điều kiện thuận lợi để Nghiên cứu sinh hoàn thành nhiệm vụ nghiên cứu Cuối Nghiên cứu sinh bày tỏ lời cảm ơn tới đồng nghiệp, gia đình, bạn bè ln động viên, chia sẻ, ủng hộ giúp đỡ Nghiên cứu sinh vượt qua khó khăn để đạt kết nghiên cứu Luận án NCS Bùi Văn Biên MỤC LỤC 2.1.1 2.1 Ảnh hưởng khoảng cách thiết bị đối tượng 50 2.2.1 2.2.2 2.2.3 2.2.4 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIET TẮT Danh mục ký hiệu 2.2.5 S 2.2.6 Ký TT 2.2.15 A 2.2.7 Giải nghĩa 2.2.10 Thời gian mà sóng ánh sáng truyền từ phát đến đối tượng quay trở lại thu 2.2.13 Khoảng cách (độ sâu) từ cảm biến IR thiết bị Kinect v2 tới đối tượng 2.2.16 Biên độ tín hiệu hữu ích 2.2.18 B 2.2.19 Biên độ ánh sáng 2.2.21 A^ 2.2.22 Độ lệch pha tín hiệu hữu ích 2.2.24 fmod 2.2.27 L 2.2.25 Tần số sóng điều chế 2.2.28 Giá trị lớn khoảng cách d 2.2.30 ơd 2.2.33 ự,u, 2.2.31 Nhiễu trình xác định khoảng cách d hiệu 2.2.8 2.2.9 Td 2.2.11 2.2.12 d 2.2.14 2.2.17 2.2.20 2.2.23 2.2.26 2.2.29 2.2.32 2.2.35 10 2.2.38 11 2.2.41 12 2.2.44 13 2.2.47 14 2.2.50 15 2.2.53 16 2.2.56 17 2.2.59 18 2.2.62 19 2.2.65 20 2.2.68 21 2.2.71 v) 2.2.36 (C, x ,y,z) 2.2.39 p 2.2.34 Hệ tọa độ ảnh đơn vị pixel 2.2.37 Hệ tọa độ máy ảnh (x,y,z) 2.2.42 p(u 2.2.40 Vị trí điểm vật lý hệ tọa độ máy ảnh 2.2.43 Vị trí điểm ảnh hệ tọa độ ảnh đơn vị v) pixel 2.2.45 f 2.2.48 MA D 2.2.46 Tiêu cự cảm biến IR 2.2.49 Độ lệch tuyệt đối trung vị 2.2.51 dkNN 2.2.52 Khoảng cách trung bình k lân cận gần 2.2.54 P 2.2.57 M 2.2.55 Đám mây điểm liệu 2.2.58 Đám mây điểm mơ hình 2.2.60 T 2.2.61 Ma trận tịnh tiến 2.2.63 R 2.2.64 Ma trận quay 2.2.66 cov( 2.2.67 Ma trận hiệp phương sai X X) 2.2.69 RPC 2.2.70 Giá trị trung bình phân bố liệu đám mây điểm A xác định theo phương pháp PCA 2.2.72 Danh mục chữ viết tắt 2.2.73 2.2.74 Viết STT 2.2.77 2.2.81 tắt 2.2.78 CA D 2.2.82 CA M 2.2.85 2.2.86 3D 2.2.89 2.2.90 CM M 2.2.94 2.2.95 RE 2.2.98 2.2.99 ToF 2.2.102 2.2.103 SLAM 2.2.106 2.2.107 IR 2.2.110 2.2.111 ICP 2.2.114 2.2.115 10 2D 2.2.118 2.2.119 11 NURBS 2.2.122 2.2.123 12 CNC 2.2.127 2.2.128 13 PCA 2.2.75 Tiếng Anh 2.2.79 Computer Aided Design 2.2.83 Computer Aided Manufacturing 2.2.87 Three Dimensional 2.2.91 Coordinates Measuring 2.2.92 Machine 2.2.96 Reverse Engineering 2.2.100 Time-ofFlight 2.2.104 Simultaneous Localization And Mapping 2.2.108 Infra-Red 2.2.112 Iterative Closest Points 2.2.116 Two Dimensional 2.2.120 Non-uniform rational Bspline 2.2.124 Computer Numerical 2.2.125 Control 2.2.129 Principal Comp onent 2.2.130 Analysis 2.2.76 Tiếng Việt 2.2.80 Thiết kế có hỗ trợ máy tính 2.2.84 Sản xuất có hỗ trợ máy tính 2.2.88 Ba chiều 2.2.93 Máy đo tọa độ 2.2.97 Kỹ thuật ngược 2.2.101 Thời gian truyền sóng 2.2.105 Bản đồ hóa định vị đồng thời 2.2.109 Hồng ngoại 2.2.113 2.2.117 Các điểm lặp gần Hai chiều 2.2.121 Mặt đường B-spline hữu tỉ không đồng 2.2.126 Điều khiển số máy tính 2.2.131 phần Phân tích thành 2.2.132 DANH MỤC CÁC BẢNG 2.2.133 2.2.134 2.2.135 DANH MỤC CÁC HÌNH VẼ 2.2.136 2.2.137 2.2.138 Hình 1.19 Đám mây điểm bề mặt líp xe đạp thể điểm ngoại lai thưa thớt (hình chữ nhật màu tím), điểm ngoại lai dạng cụm lập (hình chữ nhật màu xanh) điểm ngoại lai dạng cụm khơng lập (hình chữ nhật màu đỏ) (nguồn: [57]) 39 2.2.139 Hình 2.1 Cấu hình thí nghiệm q trình khởi động Kinect v2 44 2.2.140 Hình 2.2 Kết phép đo độ sâu vị trí cách tường 1,5m 46 2.2.150 53 2.2.151 54 2.2.1535 end 2.2.1536 pause(0.01) 2.2.1537 end 2.2.1538 time = round(toc (tt) ,0) ; 2.2.1539 % Dong doi tuong Kinect 2.2.1540 k2.delete; 2.2.152 2.2.1541 close all 2.2.153 Phụ lục 2.3: Chương trình máy tính phục vụ khảo 2.2.1542 2.2.154 sát ảnh hưởng vị trí điểm ảnh ảnh độ sâu 2.2.155 2.2.1543 % Chuong trinh thu nhan du lieu cho thi nghiem 2.2.156 khao 2.2.157 sat khoang cach 2.2.1544 % tu may anh Kinect v2 2.2.1545 addpath('Mex'); 2.2.158 2.2.1546 clear all 2.2.159 2.2.1547 close all 2.2.1548 % Nhan thong tin hinh anh tu Kinect v2 2.2.160 2.2.1549 k2 = Kin2('color','depth'); 2.2.1550 % Kich thuoc anh sau 2.2.1551 depth_width = 512; depth_height = 424; 2.2.161 outũfRange = 10 4000; 2.2.162 2.2.1552 % Tao ma tran luu tru anh 11 2.2.1553 depth = zeros(depth_height,depth_width,'uint16'); 2.2.163 2.2.1554 % Hien thi anh sau 12 2.2.1555 h1 = f igure; 2.2.164 2.2.1556 hdepth = imshow(depth,[0 255]); 13 2.2.1557 title('Depth Map') 2.2.165 2.2.1558 % Cac bien trung gian 14 2.2.1559 i = 1; 2.2.166 2.2.1560 tt=tic; 15 2.2.1561 pc = zeros(1,50); 2.2.167 2.2.1562 sigma = zeros(1,50); 16 2.2.1563 % Chuong trinh thu thap du lieu 2.2.168 17 2.2.1564 while true 2.2.169 2.2.1565 % Cap nhat du lieu tu Kinect v2 2.2.1566 validData = k2.updateData; 18 2.2.170 2.2.1567 % Truoc thu thap du lieu, chung ta can chac 19 chan rang 2.2.171 2.2.1568 % khung hinh hop le duoc thu nhan 20 2.2.172 Trang 21 P194 2.2.173 22 2.2.186 35 2.2.187 36 2.2.1569 if validData 2.2.188 2.2.1570 if (i 50) 47 2.2.1588 break; 2.2.199 2.2.1589 end 48 2.2.1590 end 2.2.200 2.2.1591 pause(0.01) 49 2.2.1592 end 2.2.201 2.2.1593 time=round(toc(tt) ,0) ; 50 2.2.1594 % Dong doi tuong Kinect 2.2.202 2.2.1595 k2.delete; 51 2.2.1596 close all 2.2.203 52 2.2.204 Phụ lục 3.1: Chương trình máy tính phục vụ thực 53 2.2.1597 nghiệm 2.2.205 54 phương pháp ghép đám mây điểm bù vùng trống liệu theo dịch chuyển tịnh tiến 2.2.1598 % Chuong trinh may tinh thuc nghiem phuong phap ghep dam may diem bu vung 2.2.1599 % t rong du lieu theo dich chuyen tinh tien clear all 2.2.206 2.2.1600 close all 2.2.1601 % Gan dam may diem tham chieu 2.2.1602 pc = pcread('5.ply ' ) ; 2.2.207 2.2.208 2.2.209 Trang P195 2.2.222 17 2.2.223 18 2.2.224 2.2.1603 19 2.2.1604 2.2.225 2.2.1605 20 2.2.1606 2.2.226 21 2.2.1607 2.2.1608 2.2.227 22 2.2.1609 2.2.1610 2.2.228 23 2.2.1611 2.2.1612 2.2.229 24 roi=[-70,60;-30,100;1245,1255]; indices=findPointsInROI(pc,roi); pcA=select(pc,indices); % Gan dam may diem dich chuyen pc=pcread('6.ply'); roi=[-190,-60;-30,100;1245,1255]; indices=findPointsInROI(pc,roi); pc6=select(pc,indices); % Xac dinh ma tran quay va ma tran tinh tien A = [cos(0) sin(0) 0; 2.2.1613 -sin(0) cos(0) 0; 2.2.1614 0010; 120 0 1]; 2.2.1615 tform = affine3d(A); 2.2.1616 % Thuc hien bien doi he truc toa mpc = pctransform(pc6,tform); 2.2.1617 % Hop nhat hai dam may diem pcA=pcmerge(mpc,pcA,0.0001); 2.2.230 2.2.1618 Phụ lục 3.2: Chương trình máy tính phục vụ thực 2.2.231 nghiệm phương pháp ghép đám mây điểm bù vùng trống liệu 2.2.232 theo dịch chuyển quay 2.2.233 2.2.1619 % Chuong trinh may tinh thuc nghiem phuong phap 2.2.234 ghep dam may diem bu vung 2.2.235 2.2.1620 % du lieu theo dich chuyen quay 2.2.1621 clear all 2.2.236 close all 2.2.1622 % Nhap du lieu 2.2.237 2.2.1623 numf iles=36; 2.2.1624 for n = 1:numfiles 2.2.238 2.2.1625 myfilename = sprintf( '%d.ply ' , n) ; 2.2.1626 % Gan dam may diem tham chieu 2.2.239 2.2.1627 if (n 1) % Gan dam may diem dich chuyen 13 pcTC = pcA ; 2.2.243 2.2.1631 pc=pcread(myfilename); 14 2.2.244 Trang 15 P196 2.2.245 16 2.2.1632 roi = [-100,90;-60,130;1065,1075] ; indices=findPointsInROI(pc,roi); pcA=select(pc,indices); 2.2.1633 % Xac dinh ma tran quay va ma tran tinh tien 2.2.1634 A = [cos(-(n-1)*pi/18) sin(-(n1)*pi/18) 0; 2.2.1635 2.2.1636 -sin(-(n-1)*pi/18) cos(-(n1)*pi/18) 0; 2.2.1637 2.2.1638 0010; 2.2.1639 000 1]; 2.2.1640 tform = affine3d(A); Trang P197 2.2.257 28 2.2.258 29 2.2.259 2.2.1641 % Thuc hien bien doi he truc toa dompc 30 = pctransform(pcA,tform); 2.2.260 % Hop nhat hai dam may diem 31 pcA=pcmerge(mpc,pcTC,0.0001); 2.2.261 2.2.1642 end 32 end 2.2.1643 Phụ lục 3.3: Chương trình để lọc nhiễu ảnh độ sâu 2.2.262 2.2.1644 function output = MAD_Filter(X) 2.2.263 global madRatioThreshold; try 2.2.264 2.2.1645 % Gan gia tri mac dinh b = 1.4826; 2.2.265 2.2.1646 output = 0; 2.2.1647 % Lay gia tri trung vi cua du 2.2.266 lieu 2.2.267 medianValue = median(X); 2.2.1648 % Lay gia tri trung vi tuyet 2.2.268 doi absoluteDeviation = abs(X(:) 2.2.269 medianValue) ; 2.2.1649 % Tinh gia tri lech tuyet 2.2.270 doi trung vi 2.2.271 2.2.1650 MAD_Value = 10 b*median(absoluteDeviation ); 2.2.272 2.2.1651 % Nhan dang diem ngoai lai 11 centralValue = abs(X(:) - medianValue) ; 2.2.1652 2.2.273 2.2.1653 % Loai bo anh chua diem ngoai 12 lai if centralValue > madRatioThreshold * 2.2.274 MAD_Value 13 2.2.1654 itIsAnOutlier = true; 2.2.275 else 14 itIsAnOutlier = false; 2.2.276 15 2.2.277 16 2.2.278 17 2.2.279 2.2.1655 end 2.2.1656 % Gan anh sau loc diem ngoai lai ; Trang P198 2.2.288 27 2.2.289 28 2.2.290 output = itIsAnOutlier; 2.2.1657 catch ME 2.2.1658 % Hien thi Loi neu co errorMessage = sprintf('Error in MAD_Filter():\n\nError Message:\n%s' , ME message) ; 2.2.1659 fprintf(1, ' %s\n' , errorMessage); 2.2.1660 end return; 2.2.291 2.2.292 2.2.1661 Phụ lục 3.4: Chương trình máy tính phục vụ khảo 2.2.293 sát ảnh 2.2.294 hưởng số lượng ảnh độ sâu liên tiếp 2.2.295 2.2.1662 % Chuong trinh may tinh thuc nghiem xac dinh so 2.2.296 luong anh sau hop ly 2.2.297 clear all close all format long 2.2.298 2.2.1663 % Lay thong tin tu Kinect depthDevice = imaq.VideoDevice('kinect',2); 2.2.299 % Kich thuoc anh sau 10 depth_width = 512; depth_height = 424; outũfRange = 2.2.300 1500; 11 2.2.1664 % Khoi tao may anh 2.2.301 step(depthDevice); 12 2.2.1665 % Thu thap N anh sau 2.2.302 2.2.1666 % Tu 1-10 13 tt=tic; 2.2.303 for i = 1:10 14 if (i < 2) 2.2.304 depthlmage = step(depthDevice); 15 2.2.305 2.2.1667 elseif (i > 1) tg = depthlmage; 16 depthlmage = step(depthDevice); 2.2.306 depthlmage = tg+depthlmage; 17 2.2.307 2.2.1668 end 2.2.1669 depthImage1 = depthlmage/10; 18 2.2.1670 pc = 2.2.308 pcfromkinect(depthDevice,depthImage1); 19 roi=[-0.040,0.030;-0.010,0.060;1.152,1.157]; 2.2.309 indices=findPointsInRũI(pc,roi); 20 2.2.310 Trang 21 P199 2.2.311 22 2.2.325 36 2.2.326 37 2.2.327 2.2.1671 pcA=select(pc,indices); 38 2.2.1672 ztb(1) = mean(pcA.Location(:,3)); 2.2.328 sigma(1) =std(pcA.Location(:,3)); 39 num_points(1) = max(size(pcA.Location)); 2.2.329 40 end 2.2.1673 %Tu 11 -20 2.2.330 41 2.2.1674 for i = 11:20 2.2.331 2.2.1675 if (i 11) 43 2.2.333 2.2.1678 tg = depthlmage; 44 2.2.1679 depthlmage = step(depthDevice); 2.2.334 2.2.1680 depthlmage = tg+depthlmage; 45 2.2.1681 end 2.2.335 2.2.1682 depthImage2 = depthlmage/10; 46 2.2.1683 depthImage12 = (depthlmagel + 2.2.336 depthImage2)/2; 47 2.2.1684 pc = 2.2.337 pcfromkinect(depthDevice,depthImage12); 48 2.2.1685 roi=[-0.040,0.030;2.2.338 0.010,0.060;1.152,1.157]; 49 2.2.1686 indices=findPointsInROI(pc,roi); 2.2.339 2.2.1687 pcA=select(pc,indices); 50 2.2.340 2.2.1688 ztb(2) = mean(pcA.Location(:,3)); 51 2.2.1689 sigma(2) =std(pcA.Location(:,3)); 2.2.341 2.2.1690 num_points (2) = 52 max(size(pcA.Location)); 2.2.342 2.2.1691 end 53 2.2.1692 % Tu 21-30 2.2.343 2.2.1693 for i = 21:30 54 2.2.1694 if (i 21) 2.2.345 2.2.1697 tg = depthImage; 56 2.2.1698 depthImage = step(depthDevice); 2.2.346 2.2.1699 depthImage = tg+depthImage; 57 2.2.347 2.2.1700 end 2.2.1701 depthImage3 = depthImage/10; 58 2.2.1702 depthImage13 = (depthImage1 + 2.2.348 depthImage2 + 59 depthImage3)/3; 2.2.349 2.2.1703 pc = 60 pcfromkinect(depthDevice,depthImage13); 2.2.1704 roi=[-0.040,0.030;2.2.350 61 Trang 2.2.351 P200 62 2.2.352 2.2.368 79 2.2.369 80 0.010,0.060;1.152,1.157]; 2.2.370 2.2.1705 indices=findPointsInROI(pc,roi); 81 2.2.1706 pcA=select(pc,indices); 2.2.371 2.2.1707 ztb(3) = mean(pcA.Location(:,3)); 82 2.2.1708 sigma(3) =std(pcA.Location(:,3)); 2.2.372 2.2.1709 num_points(3) = 83 max(size(pcA.Location)); 2.2.373 end 84 2.2.1710 2.2.1711 % Tu 31-40 2.2.374 for i = 31 :40 85 2.2.1712 2.2.1713 if (i 31) 87 2.2.1716 tg = depthImage; 2.2.377 2.2.1717 depthImage = step(depthDevice); 88 2.2.1718 depthImage = tg+depthImage; 2.2.378 2.2.1719 end 89 2.2.1720 depthImage4 = depthImage/10; 2.2.379 2.2.1721 depthImage14 = (depthlmagel + 90 depthImage2 + 2.2.380 depthImage3 + depthImage4)/4; 91 2.2.1722 pc = 2.2.381 pcfromkinect(depthDevice,depthImage14); 92 2.2.1723 roi=[-0.040,0.030;2.2.382 0.010,0.060;1.152,1.157]; 93 indices=findPointsInROI(pc,roi); 2.2.383 2.2.1724 pcA=select(pc,indices); 94 2.2.1725 ztb(4) = mean(pcA.Location(:,3)); 2.2.384 2.2.1726 sigma(4) =std(pcA.Location(:,3)); 95 2.2.1727 num_points(4) = 2.2.385 max(size(pcA.Location)); 96 2.2.1728 end 2.2.386 % Tu 41-50 97 2.2.1729 2.2.1730 for i = 41:50 2.2.387 2.2.1731 if (i 41) 2.2.388 2.2.1734 tg = depthImage; 99 2.2.1735 depthImage = step(depthDevice); 2.2.389 2.2.1736 depthImage = tg+depthImage; 100 2.2.390 2.2.1737 end 101 2.2.1738 depthImage5 = depthImage/10; 2.2.391 2.2.1739 depthImage15 = (depthImage1 + 102 depthImage2 + 2.2.392 depthImage3 + depthImage4 + depthImage5)/5; 103 2.2.1740 pc = 2.2.393 Trang 104 P201 2.2.394 105 2.2.409 120 2.2.410 121 2.2.411 pcfromkinect(depthDevice,depthImage15); 122 2.2.1741 roi=[-0.040,0.030;2.2.412 0.010,0.060;1.152,1.157] ; 123 indices=findPointsInROI(pc,roi); 2.2.413 2.2.1742 pcA=select(pc,indices); 124 2.2.1743 ztb(5) = mean(pcA.Location(:,3)); 2.2.414 2.2.1744 sigma(5) =std(pcA.Location(:,3)); 125 2.2.1745 num_points(5) = 2.2.415 max(size(pcA.Location)); 126 2.2.1746 end 2.2.416 % Tu 51 - 60 127 2.2.1747 2.2.1748 for i = 51 :60 2.2.417 2.2.1749 if (i 51) 129 2.2.1752 tg = depthImage; 2.2.419 2.2.1753 depthImage = step(depthDevice); 130 2.2.420 2.2.1754 depthImage = tg+depthImage; 131 2.2.1755 end 2.2.421 2.2.1756 depthImage6 = depthImage/10; 132 2.2.1757 depthImage16 = (depthImage1 + 2.2.422 depthImage2 + 133 depthImage3 + depthImage4 + depthImage5 + 2.2.423 depthImage6)/6; 134 2.2.1758 pc = 2.2.424 pcfromkinect(depthDevice,depthImage16); 135 2.2.1759 roi=[-0.040,0.030;2.2.425 0.010,0.060;1.152,1.157]; 136 2.2.1760 indices=findPointsInROI(pc,roi ); 2.2.1761 pcA=select(pc,indices); 2.2.1762 ztb(6) = mean(pcA.Location(:,3)); 2.2.426 2.2.1763 sigma(6) =std(pcA.Location(:,3)); 137 2.2.1764 num_points (6) = 2.2.427 max(size(pcA.Location)); 138 2.2.1765 end 2.2.428 2.2.1766 % Tu 61 - 70 139 2.2.1767 for i = 61:70 2.2.429 2.2.1768 if (i 61) 141 2.2.1771 tg = depthImage; 2.2.431 2.2.1772 depthImage = step(depthDevice); 142 2.2.1773 depthImage = tg+depthImage; 2.2.432 2.2.1774 end 143 2.2.1775 depthImage7 = depthImage/10; 2.2.433 2.2.1776 depthImage17 = (depthImage1 + 144 2.2.434 Trang 145 P202 2.2.435 146 2.2.450 161 2.2.451 162 2.2.452 depthImage2 + 163 depthImage3 + depthImage4 + depthImage5 + 2.2.453 depthImage6 + depthImage7)/7; 164 2.2.1777 pc = 2.2.454 pcfromkinect(depthDevice,depthImage17); 165 2.2.1778 roi=[-0.040,0.030;2.2.455 0.010,0.060;1.152,1.157]; 166 indices=findPointsInROI(pc,roi); 2.2.456 2.2.1779 pcA=select(pc,indices); 167 2.2.1780 ztb(7) = mean(pcA.Location(:,3)); 2.2.457 2.2.1781 sigma(7) =std(pcA.Location(:,3)); 168 2.2.1782 num_points (7) = 2.2.458 max(size(pcA.Location)); 169 2.2.1783 end 2.2.459 % Tu 71 - 80 170 2.2.1784 2.2.1785 for i = 71:80 2.2.460 2.2.1786 if (i 71) 2.2.462 2.2.1789 tg = depthImage; 173 2.2.1790 depthImage = step(depthDevice); 2.2.463 2.2.1791 depthImage = tg+depthImage; 174 2.2.1792 end 2.2.1793 depthImage8 = depthImage/10; 2.2.1794 depthImage18 = (depthImage1 + depthImage2 + 2.2.464 depthImage3 + depthImage4 + depthImage5 + 175 depthImage6 + depthImage7 + depthImage8)/8; 2.2.465 2.2.1795 pc = 176 pcfromkinect(depthDevice,depthImage18); 2.2.466 2.2.1796 roi=[-0.040,0.030;177 0.010,0.060;1.152,1.157]; 2.2.467 indices=findPointsInROI(pc,roi); 178 2.2.1797 pcA=select(pc,indices); 2.2.468 2.2.1798 ztb(8) = mean(pcA.Location(:,3)); 179 2.2.1799 sigma(8) =std(pcA.Location(: ,3)); 2.2.469 2.2.1800 num_points(8) = 180 max(size(pcA.Location)); 2.2.470 2.2.1801 end 181 2.2.1802 % Tu 81 - 90 2.2.471 for i = 81:90 182 2.2.1803 2.2.1804 if (i 81) 2.2.473 2.2.1807 tg = depthImage; 184 2.2.1808 depthImage = step(depthDevice); 2.2.474 185 Trang 2.2.475 P203 186 2.2.476 2.2.490 201 2.2.491 202 2.2.492 2.2.1809 depthImage = tg+depthImage; 203 2.2.1810 end 2.2.493 2.2.1811 depthImage9 = depthImage/10; 204 2.2.1812 depthImage19 = (depthImage1 + 2.2.494 depthImage2 + 205 depthImage3 + depthImage4 + depthImage5 + 2.2.495 depthImage6 + depthImage7 + depthImage8 + 206 depthImage9)/9; 2.2.496 2.2.1813 pc = 207 pcfromkinect(depthDevice,depthImage19); 2.2.497 roi=[-0.040,0.030;-0.010,0.060;1.152,1.157]; 208 indices=findPointsInROI(pc,roi); 2.2.498 2.2.1814 pcA=select(pc,indices); 209 2.2.1815 ztb(9) = mean(pcA.Location(:,3)); 2.2.499 2.2.1816 sigma(9) =std(pcA.Location(:,3)); 210 2.2.1817 num_points(9) = 2.2.500 max(size(pcA.Location)); 211 2.2.501 2.2.1818 end 212 2.2.1819 % Tu 91 - 100 2.2.502 2.2.1820 for i = 91:100 213 2.2.1821 if (i 91) 214 2.2.1824 tg = depthImage; 2.2.504 2.2.1825 depthImage = step(depthDevice); 215 2.2.1826 depthImage = tg+depthImage; 2.2.505 2.2.1827 end 216 2.2.1828 depthImage10 = depthImage/10; 2.2.506 2.2.1829 depthImage10tb = 217 (depthImage6+depthImage7+ 2.2.507 depthImage8+depthImage9+depthImage10)/5; 218 2.2.1830 depthImage100 = (depthImage15 + 2.2.508 depthImage10tb 219 )/2; 2.2.509 2.2.1831 pc = 220 pcfromkinect(depthDevice,depthImage100); 2.2.510 roi=[-0.040,0.030;-0.010,0.060;1.152,1.157]; 221 indices=findPointsInROI(pc,roi); 2.2.511 2.2.1832 pcA=select(pc,indices); 222 2.2.1833 ztb(10) = mean(pcA.Location(:,3)); 2.2.512 2.2.1834 sigma(10) =std(pcA.Location(:,3)); 223 2.2.1835 num_points(10) = 2.2.513 max(size(pcA.Location)); 224 end 2.2.514 225 % Tu 101 - 150 for i = 101:150 2.2.515 226 Trang 2.2.516 P204 227 2.2.517 2.2.533 2.2.534 2.2.535 if (i 101) tg = depthImage; 2.2.537 depthImage = step(depthDevice); depthImage = tg+depthImage; 2.2.538 end = depthImage/50; 2.2.539 depthImage50 depthImage150 = (depthImage15 + depthImage10tb 2.2.540 + depthImage50)/3; 2.2.1837 pc = pcfromkinect(depthDevice,depthImage150); 2.2.541 roi=[-0.040,0.030;-0.010,0.060;1.152,1.157]; indices=findPointsInROI(pc,roi); pcA=select(pc,indices); 2.2.542 2.2.1838 ztb(11) = mean(pcA.Location(:,3)); 10 sigma(11) =std(pcA.Location(:,3)); 2.2.543 11 num_points(11) = max(size(pcA.Location)); end 2.2.544 12 % Tu 151 - 200 2.2.545 for i = 151: 200 13 if (i 151) 2.2.547 tg = depthImage; 15 depthImage = step(depthDevice); 2.2.548 depthImage = tg+depthImage; 16 end 2.2.549 depthImage60 = depthImage/50; 17 depthImage200 = (depthImage15 + depthImage10tb 2.2.550 + depthImage50 + depthImage60)/4; 18 2.2.1840 pc = 2.2.551 pcfromkinect(depthDevice,depthImage200); 19 roi=[-0.040,0.030;-0.010,0.060;1.152,1.157]; 2.2.552 indices=findPointsInROI(pc,roi); 20 pcA=select(pc,indices); 2.2.553 2.2.1841 ztb(12) = mean(pcA.Location(:,3)); 21 sigma(12) =std(pcA.Location(:,3)); 2.2.554 22 num_points(12) = max(size(pcA.Location)); end 2.2.555 23 time = round (toc (tt) ,0) ; 2.2.1842 release(colorDevice); 2.2.556 24 2.2.1843 release(depthDevice); 2.2.557 2.2.1844 Phụ lục 4.1: Chương trình máy tính để số hóa bề 25 mặt chi 2.2.558 26 Trang 2.2.559 P205 27 2.2.560 2.2.571 2.2.572 tiết 2.2.573 2.2.1845 % Chuong trinh thu nhan dam may diem bang Kinect 2.2.574 v2 2.2.575 clear all close all 2.2.576 format long 2.2.1846 % Lay thong tin tu Kinect 2.2.577 2.2.1847 colorDevice = imaq.VideoDevice('kinect',1); depthDevice = imaq.VideoDevice('kinect',2); 2.2.578 % Kich thuoc anh sau 2.2.1848 depth_width = 512; depth_height = 424; outũfRange = 2.2.579 1500; 2.2.1849 % Khoi tao may anh 2.2.580 step (colorDevice); 10 step(depthDevice); 2.2.581 2.2.1850 % Bien trung gian 11 2.2.1851 N = 50; 2.2.582 2.2.1852 madRatioThreshold = 1.4826; 12 2.2.1853 % Thu thap N anh sau 2.2.583 13 for i = 1:N 2.2.584 2.2.1854 if (i < 2) 2.2.1855 depthlmage = step(depthDevice); 14 2.2.585 2.2.1856 elseif (i > 1) tg = depthlmage; 15 depthlmage = step(depthDevice); 2.2.586 depthlmage = tg+depthlmage; 16 2.2.587 2.2.1857 end 17 2.2.1858 end 2.2.588 2.2.1859 % Loc nhieu anh sau 18 depthlmage = MAD_Filter(depthlmage); 2.2.589 2.2.1860 % Tinh anh sau t rung binh 19 depthlmage = depthlmage/size(depthlmage); 2.2.590 2.2.1861 % Xac dinh dam may diem 20 colorlmage = step(colorDevice); 2.2.591 2.2.1862 pc = 21 pcfromkinect(depthDevice,depthlmage,colorlmage); 2.2.592 pc = pcdenoise(pc, 'NumNeighbors' ,8, 'Threshold' ,0.5); 22 2.2.1863 pc = pcdownsample(pc, 'gridAverage' ,0.5); 2.2.593 2.2.1864 % Truy xuat dam may diem 23 2.2.1865 pcwrite(pc, ' tru ' , 'PLYFormat' , 'binary') ; 2.2.594 24 2.2.1866 release(colorDevice); release(depthDevice); 2.2.595 25 2.2.1867 2.2.596 26 2.2.597 27 Phụ lục 4.2: Chương trình máy tính phục vụ thực Trang P206 nghiệm xác định phân bố liệu đám mây điểm xung quanh bề mặt danh nghĩa chi tiết khí 2.2.1868 % Chuong trinh may tinh xac dinh nham be mat bang Kinect v2 clear all close all format long 2.2.1869 % Lay thong tin tu Kinect depthDevice = imaq.VideoDevice('kinect',2); % Kich thuoc anh sau depth_width = 512; depth_height = 424; outũfRange = 1500; 2.2.1870 % Khoi tao may anh step(depthDevice); % Bien trung gian N = 50; 2.2.1871 madRatioThreshold = 1.4826; numf iles = 50; for i = 1:numfiles for i = 1:N if (i < 2) depthlmage = step(depthDevice); elseif (i > 1) tg = depthlmage; depthlmage = step(depthDevice); depthlmage = tg+depthlmage; end end % Loc nhieu anh sau depthlmage = MAD_Filter(depthlmage); % Tinh anh sau t rung binh depthlmage = depthImage/size(depthImage); % Xac dinh dam may diem pc = pcfromkinect(depthDevice,depthlmage); pc = pcdenoise(pc,'NumNeighbors',8,'Threshold' ,0.5) ; 2.2.1872 pc = pcdownsample(pc, 'gridAverage' ,0.5); % Xac dinh vung roi=[-20,18.1;-87.7, -75;1248,1250]; indices=findPointsInRũI(pc,roi); pcA=select(pc,indices); 2.2.1873 % Xac dinh phan chinh Trang P207 2.2.1874 X=pcA.Location; 2.2.1875 [coeff,score] = pca(X); 2.2.1876 % Xac dinh nham be mat mpxy = coeff(:,1:2); 2.2.1877 pt = coeff (: ,3); 2.2.1878 [n,p] = size(X); 2.2.1879 tbX = mean(X,1); 2.2.1880 Xfit = repmat(tbX,n,1) + score(: , 1:2)*coeff(: ,1:2) ; 2.2.1881 ; 2.2.1882 residuals = X - Xfit; 2.2.1883 ss = abs((X - repmat(tbX,n,1))*pt); 2.2.1884 tongss= sum(ss); 2.2.1885 R_PCA(i)=tongss/n; 2.2.1886 38 2.2.1887 39 2.2.1888 40 2.2.1889 41 2.2.1890 42 2.2.1891 43 2.2.1892 44 2.2.1893 45 2.2.1894 2.2.1895 2.2.1896 2.2.1897 2.2.1898 2.2.1899 46 47 48 49 50 end Trang P208 ... nhằm nâng cao chất lượng trình tái tạo hình học bề mặt sản phẩm khí cơng nghệ qt 3D sử dụng thiết bị Kinect v2 Trang 18 2.2.167 • Đã ứng dụng để tái tạo hình học bề mặt chi tiết mũ bảo hiểm bề mặt. .. án nghiên cứu nâng cao chất lượng tái tạo hình học bề mặt sản phẩm khí cơng nghệ qt 3D sử dụng thiết bị Kinectv2, thiết bị rẻ tiền chế tạo theo kỹ thuật ToF Chứng minh thực nghiệm trình tái tạo. .. ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Bùi Văn Biên NGHIÊN CỨU NÂNG CAO CHAT LƯỢNG TÁI TẠO HÌNH HỌC BỀ MẶT CÁC SẢN PHÀM CƠ KHÍ BẰNG CƠNG NGHỆ QT 3D SỬ DỤNG THIẾT BỊ KINECT V2 Ngành: Kỹ thuật Cơ

Ngày đăng: 04/02/2021, 07:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bành Tiến Long và Bùi Ngọc Tuyên (2013), “Lý thuyết tạo hình bề mặt và ứng dụng trong kỹ thuật cơ khí ”, Nhà xuất bản Giáo dục Việt Nam Sách, tạp chí
Tiêu đề: Lý thuyết tạo hình bề mặtvà ứng dụng trong kỹ thuật cơ khí
Tác giả: Bành Tiến Long và Bùi Ngọc Tuyên
Nhà XB: Nhà xuất bản Giáo dục Việt Nam
Năm: 2013
[2] Francesco Buonamici, Monica Carfagni, and Yary Volpe (2017), “Recent strategies for 3D reconstruction using Reverse Engineering: a bird’s eye view”, Advances on Mechanics, Design Engineering and Manufacturing, pp. 841-850, ISSN : 21954364, DOI : 10.1007/978-3-319-45781-9_84 Sách, tạp chí
Tiêu đề: Recentstrategies for 3D reconstruction using Reverse Engineering: a bird’s eyeview
Tác giả: Francesco Buonamici, Monica Carfagni, and Yary Volpe
Năm: 2017
[3] Bành Tiến Long và Bùi Ngọc Tuyên (2005), “Xây dựng mặt lưới tam giác tối ưu từ đám mây điểm - Một bước cần thiết của kỹ thuật ngược”, Tạp chí Khoa học và Công nghệ, (50) Sách, tạp chí
Tiêu đề: Xây dựng mặt lưới tamgiác tối ưu từ đám mây điểm - Một bước cần thiết của kỹ thuật ngược”
Tác giả: Bành Tiến Long và Bùi Ngọc Tuyên
Năm: 2005
[4] Pierre Alain Fayolle and Alexander Pasko (2016), “An evolutionary approach to the extraction of object construction trees from 3D point clouds”, CAD Computer Aided Design, Vol. 74, pp. 1-17, ISSN : 00104485,DOI : 10.1016/j.cad.2016.01.001 Sách, tạp chí
Tiêu đề: An evolutionaryapproach to the extraction of object construction trees from 3D pointclouds
Tác giả: Pierre Alain Fayolle and Alexander Pasko
Năm: 2016
[5] A. Kumar, P. K. Jain, and P.M. Pathak (2012), “Industrial Application of Point Cloud / STL Data for Reverse Engineering”, Daaam Interna- tional Scientific Book 2012, pp. 445-462, ISSN : 1726-9687, DOI : 10.2507 /daaam.scibook.2012.38 Sách, tạp chí
Tiêu đề: Industrial Applicationof Point Cloud / STL Data for Reverse Engineering
Tác giả: A. Kumar, P. K. Jain, and P.M. Pathak
Năm: 2012
[6] Nelson Max and Hyojin Kim (2015), “Optimization of Plane Fits to Image Segments in Multi-view Stereo”, pp. 1130-1136, DOI : 10.1109/W ACV.2015.155 Sách, tạp chí
Tiêu đề: Optimization of Plane Fits toImage Segments in Multi-view Stereo
Tác giả: Nelson Max and Hyojin Kim
Năm: 2015
[7] C. Bernal, B. de Agustina, M.M. Marín, and A.M. Camacho (2013),“Performance Evaluation of Optical Scanner Based on blue LED Struc- tured Light”, Procedia Engineering, Vol. 63, pp. 591-598, ISSN : 18777058,DOI : 10.1016/j.proeng.2013.08.261 Sách, tạp chí
Tiêu đề: Performance Evaluation of Optical Scanner Based on blue LED Struc-tured Light
Tác giả: C. Bernal, B. de Agustina, M.M. Marín, and A.M. Camacho
Năm: 2013
[8] Lê Quang Trà (2016), “Nghiên cứu đo biên dạng 3D của chi tiết bằng phương pháp sử dụng ánh sáng cấu trúc ”, Luận văn tiến sĩ, Trường Đại học Bách khoa Hà Nội Sách, tạp chí
Tiêu đề: Nghiên cứu đo biên dạng 3D của chi tiết bằngphương pháp sử dụng ánh sáng cấu trúc
Tác giả: Lê Quang Trà
Năm: 2016
[9] S. Burak Gokturk, Hakan Yalcin, and Cyrus Bamji (2004), “A time- of-flight depth sensor - System description, issues and solutions”, IEEE Computer Society Conference on Computer Vision and Pattern Recog- nition Workshops, Vol. 2004-Janua (January), ISSN : 21607516, DOI : 10.1109/CVPR.2004.291 Sách, tạp chí
Tiêu đề: A time-of-flight depth sensor - System description, issues and solutions
Tác giả: S. Burak Gokturk, Hakan Yalcin, and Cyrus Bamji
Năm: 2004
[10] Miles Hansard, Seungkyu Lee, Ouk Choi, and Radu Horaud (2012),“ Time of Flight Cameras : Principles , Methods , and Applications ”, Springer, ISBN : 9781447146582 Sách, tạp chí
Tiêu đề: Time of Flight Cameras : Principles , Methods , and Applications
Tác giả: Miles Hansard, Seungkyu Lee, Ouk Choi, and Radu Horaud
Năm: 2012
[11] Giovanna Sansoni and Franco Docchio (2004), “Three-dimensional opti- cal measurements and reverse engineering for automotive applications”,Robotics and Computer-Integrated Manufacturing, Vol. 20 (5), pp. 359- 367, ISSN : 07365845, DOI : 10.1016/j.rcim.2004.03.001 Sách, tạp chí
Tiêu đề: Three-dimensional opti-cal measurements and reverse engineering for automotive applications
Tác giả: Giovanna Sansoni and Franco Docchio
Năm: 2004
[12] Zhaohui Geng and Bopaya Bidanda (2017), “Review of reverse engi- neering systems - current state of the art”, Virtual and Physical Proto- typing, Vol. 12 (2), pp. 161-172, ISSN : 1745-2759, DOI : 10.1080/174527 59.2017.1302787 Sách, tạp chí
Tiêu đề: Review of reverse engi-neering systems - current state of the art
Tác giả: Zhaohui Geng and Bopaya Bidanda
Năm: 2017
[15] Svenja Kahn, Ulrich Bockholt, Arjan Kuijper, and Dieter W. Fellner (2013), “ Towards precise real-time 3D difference detection for industrial applications”, Computers in Industry, Vol. 64 (9), pp. 1115-1128, ISSN : 01663615, DOI : 10.1016/j.compind.2013.04.004 Sách, tạp chí
Tiêu đề: Towards precise real-time 3D difference detection for industrialapplications
Tác giả: Svenja Kahn, Ulrich Bockholt, Arjan Kuijper, and Dieter W. Fellner
Năm: 2013
[16] Thomas Hoegg, Damien Lefloch, and Andreas Kolb (2013), “ Time-of- Flight camera based 3D point cloud reconstruction of a car”, Computers in Industry, Vol. 64 (9), pp. 1099-1114, ISSN : 01663615, DOI : 10.1016/j .compind.2013.06.002 Sách, tạp chí
Tiêu đề: Time-of-Flight camera based 3D point cloud reconstruction of a car”
Tác giả: Thomas Hoegg, Damien Lefloch, and Andreas Kolb
Năm: 2013
[18] Moller Tobias, Kraft Holger, Frey Jochen, Albrecht Martin, and Lange Robert (2005), “Robust 3D Measurement with PMD Sensors”, RangeImaging Day, Zủrich, Vol. 7 (Section 5), p. 8, DOI : ISBN3-906467-57-0 Sách, tạp chí
Tiêu đề: Robust 3D Measurement with PMD Sensors
Tác giả: Moller Tobias, Kraft Holger, Frey Jochen, Albrecht Martin, and Lange Robert
Năm: 2005
[19] Benjamin Langmann, Klaus Hartmann, and Otmar Loffeld (2012), “Depthcamera technology comparison and performance evaluation”, ICPRAM 2012 - Proceedings of the 1st International Conference on Pattern Recog- nition Applications and Methods, Vol. 2, pp. 438-444, DOI : 10.5220/00 03778304380444 Sách, tạp chí
Tiêu đề: Depth"camera technology comparison and performance evaluation
Tác giả: Benjamin Langmann, Klaus Hartmann, and Otmar Loffeld
Năm: 2012
[20] Sergi Foix, Guillem Alenya, and Carme Torras (2011), “Lock-in Time- of-Flight (ToF) Cameras: A Survey”, IEEE Sensors Journal, Vol. 11 (9), pp. 1917-1926, ISSN : 1530-437X, DOI : 10.1109/JSEN.2010.2101060 Sách, tạp chí
Tiêu đề: Lock-in Time-of-Flight (ToF) Cameras: A Survey
Tác giả: Sergi Foix, Guillem Alenya, and Carme Torras
Năm: 2011
[22] Kai Berger (2013), “A State Of the Art Report on Research in Multi- ple RGB-D sensor Setups”, Computer Vision and Pattern Recognition,ISSN : 16113349 Sách, tạp chí
Tiêu đề: A State Of the Art Report on Research in Multi-ple RGB-D sensor Setups”
Tác giả: Kai Berger
Năm: 2013
[23] Péter Fankhauser, Michael Bloesch, Diego Rodriguez, Ralf Kaestner, Marco Hutter, and Roland Siegwart (2015), “Kinect v2 for mobile robot navigation: Evaluation and modeling”, Proceedings of the 17th Interna- tional Conference on Advanced Robotics, ICAR 2015, (July), pp. 388- 394, DQI : 10.1109/ICAR.2015.7251485 Sách, tạp chí
Tiêu đề: Kinect v2 for mobile robotnavigation: Evaluation and modeling
Tác giả: Péter Fankhauser, Michael Bloesch, Diego Rodriguez, Ralf Kaestner, Marco Hutter, and Roland Siegwart
Năm: 2015
[24] John Sell and Patrick O’Connor (2014), “The Xbox One System on a Chip and Kinect Sensor”, IEEE Micro, Vol. 34 (2), pp. 44-53, ISSN : 0272-1732, DQI : 10.1109/MM.2014.9 Sách, tạp chí
Tiêu đề: The Xbox One System on aChip and Kinect Sensor
Tác giả: John Sell and Patrick O’Connor
Năm: 2014

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w