tài liệu matlab tiếng Việt và chương trình matlab nhận diện chuyện động qua camera dùng trong hệ thống chống trộm xử dụng giao diện guide, Để nhận chi tiết tài liệu hoặc có nhu cầu tìm hiểu về xử lí ảnh bằng matlab ib qua zalo 0327697318 .
TRƯỜNG ĐẠI HỌC KĨ THUẬT CÔNG NGHIỆP THÁI NGUYÊN KHOA CƠ KHÍ BỘ MƠN: CƠ ĐIỆN TỬ TIỂU LUẬN MATLAB HỌC PHẦN: ỨNG DỤNG CAMERA TRONG ROBOT GVHD: SVTH: MSSV: Lớp: TS Ngô Ngọc Vũ Đặng Văn Khang K175520114211 K53CĐT.02 1|VanKhang Câu 1: Trình bày hiểu biết anh(chị) ứng dụng xử lí ảnh thị giác máy công nghiệp đời sống nay.Trình bày phân tích ứng dụng cụ thể cho Robot I) Mở đầu Xử lý ảnh thị giác máy lĩnh vực mà ngày phát triển ứng dụng rộng rãi nhiều lĩnh vực khác nhờ vào phát triển ngày mạnh mẽ hệ thống máy tính, thuật tốn cơng trình nghiên cứu khác nhiều nhà khoa học giới Đó lĩnh vực mang tính khoa học cơng nghệ, ngành khoa học mẻ so với nhiều ngành khoa học khác tốc độ phát triển nhanh, kích thích trung tâm nghiên cứu, ứng dụng nhằm thay đổi công nghệ lên tầm cao Ở Việt Nam, ứng dụng xử ảnh bước đầu triển khai số lĩnh vực lắp đặt hệ thống nhận dạng biển biển số xe bãi đỗ xe, ứng dụng y tế chụp X quang xử lí ảnh y sinh, hệ thống nhận dạng vân tay chấm công hay điểm danh dựa nhận diện khuôn mặt công sở gần gũi với học sinh, sinh viên hệ thống chấm thi trắc nghiệm gần đây, với tình trạng đại dịch covid19 có diễn biến phức tạp cơng nghệ nhận dạng đeo trang dựa Deep Learning điểm nóng cho cơng nghệ xử lí ảnh thị giác máy tính … Môn học xử lý ảnh trường đại học xem môn học bắt buộc số ngành công nghệ thông tin, điện tử viễn thơng, kỹ thuật máy tính, cơng nghệ phần mềm khoa học máy tính, … Tuy nhiên nhìn nhận cách khách quan số lượng ứng dụng triển khai mơn xử lí ảnh trường lớp q ỏi, ứng dụng từ mơn học xử lí ảnh này cịn phát triển mạnh mẽ tương lai quan tâm cách nghiêm túc! II) Tổng quan xử lí ảnh Các phương pháp xử lý ảnh ứng dụng chính: nâng cao chất lượng phân tích ảnh Ứng dụng biết đến nâng cao chất lượng ảnh báo truyền từ Luân đôn đến New York từ năm 1920 Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng độ phân giải ảnh Việc nâng cao chất lượng ảnh phát triển vào khoảng năm 1955 Điều giải thích sau chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho trình xử lý ảnh số thuận lợi Năm 1964, máy tính có khả xử lý nâng cao chất lượng ảnh từ mặt trăng vệ tinh Ranger Mỹ bao gồm: làm đường biên, lưu ảnh Từ năm 1964 đến nay, phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo mạng nơ-ron nhân tạo, thuật toán xử lý đại cải tiến, công cụ nén ảnh ngày áp dụng rộng rãi thu nhiều kết khả quan Khái niệm xử lí ảnh: Q trình xử lí ảnh q trình tác động lên ảnh số nhằm thay đổi thuộc tính vốn có 2|VanKhang - Các bước ứng dụng xử lý ảnh gồm bước chính: Tiền xử lý -> Phát - - > Nhận diện Tuy nhiên tùy theo u cầu mà khơng cần phải có đủ bước Xử lý ảnh hay bị nhầm với chỉnh sửa ảnh Photoshop, người ta gọi Thị giác máy tính (TGMT) cho ngắn gọn Hình 1: ví dụ xử lí ảnh a) b) c) d) Ứng dụng TGMT có input ảnh ouput thông tin Thông tin output dùng để trả lời câu hỏi tốn như: Có vật thể ảnh khơng? Vật thể vị trí nào? Có vật thể ảnh? Vật thể loại gì? e) Ảnh có đủ chất lượng khơng? (nét, nhiễu,…) Bước 1: Tiền xử lý Tiền xử lý có mục đích làm cho ảnh dễ nhận dạng hơn, loại bỏ yếu tố không cần thiết Các công việc thường gặp như: – Crop ảnh, resize ảnh sử dụng hàm imcrop, imresize – Biến đổi ảnh thành dạng ảnh khác: ảnh màu sang ảnh xám, ảnh xám sang nhị phân, RGB -> HSV,…sử dụng hàm rgb2gray, im2bw,… – Cân sáng : A = imread('Hulkbaby.tiff'); A = demosaic(A,'rggb'); A_sRGB = lin2rgb(A); montage({A,A_sRGB}) – Xoay ảnh, warp ảnh… Ví dụ : code xoay ảnh tự động function rotated_image = HienLe(image, rot_angle_degree) // rotate tự động RA = imref2d(size(image)); tform = affine2d([cosd(rot_angle_degree) -sind(rot_angle_degree) 0; sind(rot_angle_degree) cosd(rot_angle_degree) 0; 3|VanKhang 0 1]); Rout = images.spatialref.internal.applyGeometricTransformToSpatialRef(RA,tform); Rout.ImageSize = RA.ImageSize; xTrans = mean(Rout.XWorldLimits) - mean(RA.XWorldLimits); yTrans = mean(Rout.YWorldLimits) - mean(RA.YWorldLimits); Rout.XWorldLimits = RA.XWorldLimits+xTrans; Rout.YWorldLimits = RA.YWorldLimits+yTrans; rotated_image = imwarp(image, tform, 'OutputView', Rout, 'interp', 'cubic', 'fillvalues', 255); end Hình 2: phát chữ xoay ngang ảnh Bước 2: Phát Phát vật thể dùng để tìm vật thể ảnh Sau bước biết có vật thể cần tìm khơng, có vị trí & số lượng Tùy theo loại đối tượng cần tìm mà có cách khác nhau, Cascade cách Các tốn đơn giản tìm màu sắc cần dùng kênh màu HSV Khi xong bước phát khuôn mặt bạn biết số lượng khuôn mặt ảnh (0 -> n) Nếu có khn mặt dừng lại & trả kết quả, có qua bước để nhận diện Biển số xe tương tự, cần phải xác định có biển số xe ảnh hay khơng Nếu khơng có trả kết cho người dùng khơng có biển số Cịn có biển số lặp lại bước Phát lần để tìm ký tự biển Sau tách xong ký tự đưa sang bước để nhận diện Hình 3: phát vật thể ảnh binary Bước 3: Nhận diện (Nhận dạng) 4|VanKhang Sau phát vật thể muốn nhận diện vật thể loại cần bước Bước phải sử dụng Machine Learning để phân lớp (classification) đối tượng Để nhận diện khuôn mặt cần crop khuôn mặt để Machine Learning nhận diện Bước phân lớp tác dụng tìm xem giống khuôn mặt học Kết trả khuôn mặt giống kèm tỉ lệ giống (confident) Các ký tự sau segment khỏi ảnh tiến hành phân loại lớp để lấy kết quả: Hình 4: đưa kết sau so sánh vật ảnh binary với database Kết luận: Tiền xử lý ln có ứng dụng TGMT, cịn bước Nhận diện tùy theo yêu cầu mà thực Bước Nhận diện cần phải chuẩn bị đầy đủ liệu để training kiến thức Machine Learning Tuy nhiên bước bước phải cần đến Machine Learning vật thể cần tìm có cấu trúc phức tạp Đôi phải lặp lại nhiều lần bước 1-2-3 kết Do bước mang tính chất tham khảo tương đối, khơng áp dụng cho hồn cảnh Thứ tự bước mang tính tương đối, tùy theo loại yêu cầu toán Do cần có tư linh hoạt, sẵn sàng thử nghiệm, so sánh để tìm cách xác Vai trị xử lí ảnh thị giác máy tính Thị giác máy tính cho phép máy tính robot, phương tiện điều khiển từ máy tính thứ từ nhà máy, thiết bị nông trại đến xe máy bay thực số hoạt động tự động, hoạt động cách hiệu quả, chí an tồn Tầm quan trọng trở nên rõ ràng thời đại kỹ thuật số Chúng ta nhìn thấy ứng dụng cơng nghệ qua việc hỗ trợ người dùng tổ chức truy cập vào sưu tập hình ảnh họ mà không cần gắn thẻ tag đánh dấu Google Photos Nhưng 5|VanKhang điều đáng nói làm trì liên tục mà số lượng hình ảnh chia sẻ ngày lên đến hàng tỷ Với người thao tác thủ công điều làm Một nghiên cứu vào năm ngoái dịch vụ in ảnh Photoworld cho số liệu sau người đến 10 năm để xem qua tất hình ảnh chia sẻ snapchat (chỉ giờ) chưa đề cập đến việc phân loại Và dĩ nhiên 10 năm số lượng ảnh tương ứng tăng theo cấp số nhân Điều cho thấy giới ngày tràn ngập hình ảnh kỹ thuật số cần công nghệ máy tính xử lý tất ,nó vượt qua khả mà người khơng thể xử lý Ứng dụng công nghiệp thực tế 3.1 Ứng dụng thực tế: - Nhận diện/kiểm tra ngoại dạng sản phẩm: Sản phẩm sau lắp ráp hay gia công cần kiểm ngoại dạng trước chuyển sang công đoạn để đảm bảo không để lọt sản phẩm NG tới khách hàng Thông thường công đoạn kiểm tra người thao tác (công nhân) trực tiếp dùng mắt kiểm tra với quy trình định Việc có nhiều ưu điểm song lại khơng đạt độ xác cao mà nhà sản xuất mong muốn Công Ty VSTECH xin giới thiệu đến quý khách hàng giải pháp kiểm tra ngoại dạng sản phẩm dùng Camera thay hầu hết công việc mà công nhân thực thị giác Hình 5: Kiểm tra ngoại dạng sản phẩm - Đo lường kiểm tra kích thước khơng tiếp xúc: Các phép đo truyền thống thực với dụng cụ đo (đã hiệu chỉnh xác) người thực đo phải huấn luyện kĩ thuật đo đảm bảo kết đo có độ tin cậy cao Khi sản xuất hàng loạt, sản phẩm nhiều & nhỏ, khiến cho việc kiểm tra kích thước sản phẩm người trở nên khó khăn tốn VSTECH cung cấp giải pháp đo kiểm kích thước khơng tiếp xúc dùng camera giúp xác định xác (cỡ 10µm 10% dung sai kích thước vẽ) với tốc độ cao các: khoảng cách, góc, diện tích, 6|VanKhang độ khớp đường, độ khớp trịn … Từ nhà máy bạn tiết kiệm nhiều chi phí nhân cơng, giảm tối đa sai sót so với phương pháp đo kiểm truyền thống Hình 6: đo kích thước thơng qua camera - Điều Hướng Robot: Trong nhiều công việc khan nguồn lao động phải hạn chế sử dụng người sử dụng Robot giải pháp thay Robot đóng vai trò cấu chấp hành, nhận mệnh lệnh từ điều khiển hay máy tính để gắp/hút/nhặt sản phẩm xếp/thả chúng vào vị trí khác lập trình sẵn Nhưng điều khiển cần liệu để xử lý đưa định điều khiển Robot, liệu đưa từ cảm biến Camera Bạn xem Video Demo bên cạnh để thấy Camera đưa hình ảnh tơm di chuyển băng truyền máy tính sau hình ảnh xử lý trả liệu vị trí đầu , tơm, góc xoay tơm …từ Robot biết hút tơm vị trí vào thời điểm giúp phân loại tôm băng truyền Hình 7: Robot nhặt tơm 3.2 Robot nhận diện/ kiểm tra phân loại màu sắc ( phân tích cụ thể): Màu sắc sử dụng nhiều xử lý ảnh như: Nhận diện sản phẩm, phân loại sản phẩm, kiểm tra bề mặt v.v Việc sử dụng cảm biến màu hiệu bạn kiểm tra khu vực nhỏ, khu vực cần kiểm tra có diện tích lớn tốn phức tạp 7|VanKhang khiến bạn phải thay đổi phương án xử lý Và sử dụng Camera lựa chọn tối ưu thay thếcảm biến màu Bạn tưởng tượng bạn sử dụng camera độ phân giải 640×480 (px) tức bạn có 640×480 =307.200 điểm ảnh điểm ảnh coi cảm biến có độ phân giải 24bits mang lại cho bạn kết nhận diện hay kiểm tra sản phẩm dựa vào màu sắc hiệu Hình 9: hệ thống phân loại màu sắc sử dụng xử lí ảnh qua camera Giới thiệu không gian màu: Một ảnh chụp biểu diễn khơng gian màu khác Khơng gian màu mơ hình tốn học dùng để mô tả màu sắc thực tế biểu diễn dạng số học Trên thực tế có nhiều khơng gian màu khác sử dụng vào mục đích khác Trong phần tìm hiểu qua ba khơng gian màu hay nhắc tới ứng dụng nhiều, hệ khơng gian màu RGB, HSV CMYK a Không gian màu RGB: RGB không gian màu phổ biến dùng đồ họa máy tính nhiều thiết bị kĩ thuật số khác Ý tưởng khơng gian màu kết hợp màu sắc bản: màu đỏ (R, Red), xanh lục (G, Green) xanh lơ (B, Blue) để mơ tả tất màu sắc khác Hình 10: không gian màu RGB Nếu ảnh số mã hóa 24bit, nghĩa 8bit cho kênh R, 8bit cho kênh G, 8bit cho kênh B, kênh màu nhận giá trị từ 0-255 Với giá trị khác kênh màu kết hợp với ta màu khác nhau, ta có tổng cộng 8|VanKhang 255x255x255 = 1.66 triệu màu sắc Ví dụ: màu đen kết hợp kênh màu (R, G, B) với giá trị tương ứng (0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0), màu tím đậm có giá trị (64, 0, 128) Nếu ta dùng 16bit để mã hóa kênh màu (48bit cho tồn kênh màu) dãi màu trãi rộng lên tới 3*2^16 = Một số lớn b Không gian màu CMYK: CMYK không gian màu sử dụng phổ biến ngành công nghiệp in ấn.Ý tưởng hệ không gian dùng màu sắc để phục vụ cho việc pha trộn mực in Trên thực tế, người ta dùng màu C=Cyan: xanh lơ, M=Magenta: hồng xẫm, Y=Yellow: vàng để biểu diễn màu sắc khác Nếu lấy màu hồng xẫm cộng với vàng màu đỏ, màu xẫm kết hợp với xanh lơ cho xanh lam Sự kết hợp màu cho màu đen, nhiên màu đen đen tuyệt đối thường có độ tương phản lớn, nên ngành in, để tiết kiệm mực in người ta thêm vào màu đen để in chi tiết có màu đen thay phải kết hợp màu sắc Và ta có hệ màu CMYK chữ K để kí hiệu màu đen (Black), có nhẽ chữ B dùng để biểu diễn màu Blue nên người ta lấy chữ cuối K để biểu diễn màu đen Hình 11: khơng gian màu CMYK Nguyên lý làm việc hệ màu sau : Trên giấy trắng, màu in lên loại bỏ dần thành phần màu trắng màu C, M, Y khác in theo tỉ lệ khác loại bỏ thành phần cách khác cuối cho ta màu sắc cần in Khi cần in màu đen, thay phải in màu người ta dùng màu đen để in lên Nguyên lý khác với nguyên lý làm việc hệ RGB chỗ hệ RGB kết hợp thành phần màu, hệ CMYK loại bỏ lẫn thành phần màu c Không gian màu HSV: HSV gần tương tự HSL không gian màu dùng nhiều việc chỉnh sửa ảnh, phân tích ảnh phần lĩnh vực thị giác máy tính Hệ khơng gian dựa vào thông số sau để mô tả màu sắc H = Hue: màu sắc, S = Saturation: độ đậm đặc, bảo hòa, V 9|VanKhang = value: giá trị cường độ sáng Không gian màu thường biểu diễn dạng hình trụ hình nón Hình 12: khơng gian màu HSV Ví dụ: màu đen kết hợp kênh màu (R, G, B) với giá trị tương ứng (0, 0, 0) màu trắng có giá trị (255,255, 255), màu vàng có giá trị (255, 255, 0), màu tím đậm có giá trị (64, 0, 128) Nếu ta dùng 16bit để mã hóa kênh màu (48bit cho toàn kênh màu) dãi màu trãi rộng lên tới 3*2^16 = Một số lớn Các bước thực hiện: i ii iii iv Thu thập ảnh: Thu thận ảnh q trình mà ảnh thu nhận qua camera lấy từ nhớ hệ thống Tiền xử lí ảnh: Là bước chỉnh sửa chất lượng ảnh, việc lọc nhiễu hay tăng cường độ sáng, để nâng cao chất lượng ảnh chuyển sang ảnh xám để dễ dạng nhận dạng ảnh Chuyển đổi ảnh: Là bước chỉnh sửa chất lượng ảnh, việc lọc nhiễu hay tăng cường độ sáng, để nâng cao chất lượng ảnh chuyển sang ảnh xám để dễ dạng nhận dạng ảnh Nhận dạng phân loại: Ta nhận dạng màu sắc dựa vào đặc điểm riêng biệt màu, có đặc điểm riêng biệt màu, ta tiến hành phân loại màu sắc sản phẩm nhờ vào việc so sánh đặc điểm riêng biệt chúng với giá trị định trước Ta so sánh màu một, từ màu đỏ, đến màu xanh, đến màu vàng Nếu đặc điểm trùng khớp với đặc điểm đề trước màu ta kết luận sản phẩm có màu Ngược lại khơng có đặc điểm khớp ta kết luận sản phẩm khác mà khơng phải sản phẩm định sẵn Ví dụ hệ thống nhận diện tracking màu ứng dụng cho Robot gắp phân loại theo màu: 10 | V a n K h a n g Hình 13: Tracking and detection red system Tài liệu tham khảo: [1] https://www.mathworks.com [2] https://www.google.com/ [3] https://www.youtube.com/channel/UCezizb5kh-rcla61D6TJ6GQ [4] https://thigiacmaytinh.com/category/bo-tro-kien-thuc/ [5] https://matpic.com [6] https://www.mathworks.com/help/images/understanding-color-spaces-andcolor-space-conversion.html?searchHighlight=color%20not%20space&s_tid=srchtitle [7] https://scholar.google.com/citations?hl=vi&user=7zI4aY4AAAAJ&view_op=list_works&aut huser=2 Câu 2: Hiệu chuẩn camera (CAMERA CALIBRATION) Hiệu chuẩn máy ảnh hình học[1] cịn gọi thay đổi kích thước máy ảnh , ước tính thơng số ống kính cảm biến hình ảnh máy ảnh máy quay video Bạn sử dụng thơng số để sửa độ méo ống kính, đo kích thước vật thể theo đơn vị giới xác định vị trí máy ảnh cảnh Các tác vụ sử dụng ứng dụng thị giác máy để phát đo lường đối tượng Chúng sử dụng chế tạo người máy, hệ thống định vị tái tạo cảnh 3-D Từ nhiều máy ảnh thực ứng dụng thị giác máy tính khác Việc hiệu chỉnh máy ảnh nhằm xác định thơng số hình học trình hình thành ảnh Đây bước quan trọng nhiều ứng dụng thị giác máy tính, đặc biệt yêu cầu thông tin số liệu cảnh Trong ứng dụng này, máy ảnh thường mơ hình hóa với tập hợp thơng số nội (tiêu cự, điểm chính, độ lệch trục) hướng thể thơng số bên (quay dịch) Cả hai tham số nội ngoại ước lượng phương pháp tuyến tính phi tuyến sử dụng điểm biết giới thực hình chiếu chúng mặt phẳng ảnh Những điểm thường trình bày dạng mơ hình hiệu chỉnh với hình học biết, thường bàn cờ phẳng 11 | V a n K h a n g Các thông số camera bao gồm hệ số nội hàm, ngoại lai hệ số biến dạng Để ước tính thơng số máy ảnh, bạn cần có điểm giới 3-D điểm hình ảnh 2-D tương ứng chúng Bạn nhận tương ứng cách sử dụng nhiều hình ảnh mẫu hiệu chuẩn, chẳng hạn bàn cờ Sử dụng thư từ, bạn giải thông số máy ảnh Sau bạn hiệu chỉnh máy ảnh, để đánh giá độ xác thơng số ước tính, bạn có thể: • Vẽ vị trí tương đối máy ảnh mẫu hiệu chuẩn • Tính tốn lỗi từ chối • Tính tốn sai số ước lượng tham số Thơng số hiệu chuẩn máy ảnh: Thuật tốn hiệu chỉnh tính tốn ma trận camera cách sử dụng tham số bên ngồi bên Các thơng số bên ngồi thể chuyển đổi cứng nhắc từ hệ tọa độ giới 3-D sang hệ tọa độ máy ảnh 3-D Các thông số nội thể chuyển đổi xạ ảnh từ tọa độ máy ảnh 3-D thành tọa độ ảnh 2-D Hình 2.1: chuyển đổi xạ ảnh từ toạ độ máy ảnh Các thông số bên ngoài: Các tham số bên bao gồm phép quay R phép tịnh tiến t Gốc hệ tọa độ máy ảnh tâm quang học trục x y xác định mặt phẳng ảnh Hình 2.2 hệ toạ độ tâm máy ảnh Hiện nay, nhu cầu ngày tăng hệ thống có nhiều camera, chẳng hạn ứng dụng thực tế tăng cường tái tạo 3D, điều làm cho việc hiệu chỉnh thủ công trở thành nhiệm vụ thực tốn nhiều thời gian Một số công cụ để hiệu chỉnh máy ảnh tự động có sẵn Hộp cơng cụ Bouguet MATLAB thực quy trình hiệu chuẩn bán tự động Ứng dụng yêu cầu người dùng xác định bốn điểm cực đại đại diện cho khu vực mà thuật tốn tìm kiếm điểm hiệu chuẩn với số lượng hàng cột củamẫu Thư viện 12 | V a n K h a n g OpenCV thư viện thị giác máy tính phổ biến cung cấp cách tự động để phát mẫu bàn cờ hình ảnh cách sử dụng findChessboardCorners() function Phương pháp thực phép tốn hình thái liên tiếp xác định số đường bao vùng đen trắng sau đó, bốn góc trích đường bao, bao gồm tập điểm hiệu chuẩn Mẫu nhận dạng tất hình chữ nhật xác định Trong hệ thống trực tuyến, hạn chế làm đáng kể khung hình ảnh, khơng phải lúc bạn phát tất hình chữ nhật bàn cờ Q trình hiệu chuẩn khơng phụ thuộc vào toàn mẫu hiệu chuẩn phát Thuật tốn thực số điểm tối thiểu xác định Thuật toán đủ nhanh để sử dụng ứng dụng trực tuyến có phức tạp VÍ DỤ MINH HOẠ: AprilTags sử dụng rộng rãi làm điểm đánh dấu trực quan cho ứng dụng phát đối tượng, địa hóa mục tiêu để hiệu chỉnh máy ảnh[2] AprilTags tương tự mã QR, thiết kế để mã hóa liệu giải mã nhanh hơn, ví dụ, hữu ích cho ứng dụng robot thời gian thực Ví dụ sử dụng chức readAprilTag để phát khoanh vùng AprilTags mẫu hiệu chuẩn Các chức readAprilTag hỗ trợ tất gia đình thẻ thức Ví dụ sử dụng chức bổ sung Computer Vision Toolbox ™ để thực hiệu chỉnh máy ảnh từ đầu đến cuối Mẫu bàn cờ mặc định thay lưới AprilTags cách Để biết ví dụ việc sử dụng mẫu bàn cờ để hiệu chuẩn, tham khảo Single Camera Calibrator App Ưu điểm việc sử dụng AprilTags làm mẫu hiệu chuẩn là: phát điểm tính mạnh mẽ hơn, phát quán lặp lại Ví dụ đóng vai trị mẫu để sử dụng hiệu chuẩn tùy chỉnh khác, chẳng hạn trường vòng tròn thay mẫu bàn cờ điển hình Bước 1: Tạo mẫu hiệu chuẩn Tải xuống chuẩn bị hình ảnh thẻ 13 | V a n K h a n g Hình 2.3 ảnh mẫu Sử dụng chức readAprilTag mẫu dẫn đến phát vị trí góc thẻ riêng lẻ nhóm lại với Hàm helperAprilTagToCheckerLocations sử dụng để chuyển đổi cách xếp thành kiểu xếp theo cột tương tự bàn cờ Hình 2.4 sau xử lí Chuẩn bị hình ảnh để hiệu chuẩn Mẫu hiệu chuẩn tạo phải in bề mặt phẳng máy ảnh cần hiệu chuẩn sử dụng để chụp ảnh mẫu Một số điểm cần lưu ý chuẩn bị hình ảnh để hiệu chuẩn: • Trong mẫu in giấy ví dụ này, cân nhắc in bề mặt phẳng không bị biến dạng độ ẩm, v.v • Vì quy trình hiệu chuẩn giả định mẫu phẳng, khuyết tật mẫu (ví dụ: bề mặt khơng phẳng) làm giảm độ xác hiệu chuẩn • Quy trình hiệu chuẩn u cầu hình ảnh mẫu sử dụng từ 10 đến 20 hình ảnh cho kết xác • Chụp nhiều hình ảnh khác mẫu cho mẫu lấp đầy hầu hết hình ảnh, bao phủ tồn trường xem Ví dụ, để nắm bắt tốt biến dạng ống kính, có hình ảnh mẫu tất cạnh khung hình ảnh • Đảm bảo mẫu hiển thị hoàn toàn ảnh chụp, ảnh có mẫu hiển thị phần bị từ chối • Để biết thêm thơng tin cách chuẩn bị hình ảnh mẫu hiệu chuẩn Prepare the Pattern, Camera, and Images 14 | V a n K h a n g Bước 2: Phát địa hóa AprilTags Hàm helperDetectAprilTagCorners , bao gồm cuối ví dụ, sử dụng để phát khoanh vùng thẻ từ hình ảnh chụp xếp chúng theo kiểu bàn cờ để sử dụng làm điểm quy trình hiệu chuẩn Bước 3: Tạo điểm giới cho mẫu hiệu chuẩn Mẫu AprilTag tạo cho thẻ đặt theo kiểu bàn cờ đó, tọa độ giới cho tọa độ hình ảnh tương ứng xác định (in imagePoints) lấy cách sử dụng hàm generateCheckerboardPoints Ở đây, kích thước hình vng thay kích thước thẻ kích thước bảng có từ bước trước Đo kích thước thẻ cạnh màu đen bên ngồi mặt thẻ Hình 2.5 thay kích thước Bước 4: Ước tính thơng số camera Ước tính thơng số máy ảnh cách sử dụng chức estimateCameraParameters Hình dung độ xác hiệu chuẩn thông số máy ảnh bên hiển thị mặt phẳng mẫu hiệu chuẩn ảnh chụp Hình 2.6 Hình 2.7 hiển thị ngoại vi 15 | V a n K h a n g Kiểm tra vị trí điểm hình ảnh phát điểm chiếu lại thu cách sử dụng thông số máy ảnh ước tính Hình 2.8 kiểm tra vị trí Sử dụng mẫu hiệu chuẩn khác Trong ví dụ sử dụng điểm đánh dấu AprilTags mẫu hiệu chuẩn, quy trình làm việc tương tự mở rộng sang mẫu phẳng khác Việc estimateCameraParameters sử dụng để lấy thông số máy ảnh u cầu: • ImagePoints : Các điểm mẫu hiệu chuẩn tọa độ hình ảnh thu từ hình ảnh chụp • WorldPoints : Tọa độ điểm giới tương ứng điểm mẫu hiệu chuẩn Miễn có cách để đạt điểm này, phần cịn lại quy trình hiệu chuẩn giữ nguyên Tài liệu tham khảo: [1] https://www.mathworks.com/help/vision/ug/camera-calibration [2] E Olson, "AprilTag: Một hệ thống fiducial trực quan mạnh mẽ linh hoạt," Hội nghị quốc tế IEEE năm 2011 robot tự động hóa , Thượng Hải, 2011, trang 3400-3407, doi: 10.1109 / ICRA.2011.5979561 [3] https://scholar.google.com/citations?hl=vi&user=7zI4aY4AAAAJ&view_op=list_works &authuser=2 Câu 3: Hệ thống giám sát lưu lại chuyển động qua camera thuyết minh code: 16 | V a n K h a n g - Bắt đầu với nút ‘SET CAM’ nhằm xác định video quay webcam hay camera ngồi thơng qua guide ‘SELECTION_CAM_HULK’ Code: function pushbutton2_Callback(hObject, eventdata, handles) SELECTION_CAM_HULK uiwait % Bring the camera features % id= Camera ID % es_web_ext= indicator if laptop or external camera global id es_web_ext % Determine format depending on the type of camera if es_web_ext==0 formato='YUY2_640x480'; else formato='RGB24_320x240'; end try % Create video object handles.vidobj = videoinput('winvideo',id,formato); set(handles.pushbutton3,'enable','on') % Update handles guidata(hObject, handles); catch % msgbox('Check the camera connection','Camera') % set(handles.axes1,'XTick',[ ],'YTick',[ ]) end - Sau setup camera, nhấn ‘START CAM’ để bắt đầu quay Code: function pushbutton3_Callback(hObject, eventdata, handles) global id es_web_ext cam1 cam2 cam3 cam4 a b c d cam1=0; cam2=0; cam3=0; cam4=0; a=0; b=0; c=0; d=0; axes(handles.axes1) setfigureproperties; global cc hh1=[ ];hm1=[ ];hs1=[ ]; global rs;rs=10; %gán chuỗi hiển thị edit2 vào biếm umbral umbral=str2double(get(handles.edit2,'string')); %nếu umbral trống báo nhập giá trị vào edit2 guide if umbral umbral; umbral_mov = umbral_mov + 1; if umbral_mov >= sens; %lưu hình ảnh num_mov = num_mov + 1; fecha=strrep(datestr(clock),':','-'); imwrite(imgn,['luu lai chuyen dong\',fecha,' ',num2str(num_mov),'.jpg']) umbral_mov = 0; %hiển thị số lần lưu lên text10 set(handles.text10,'string',num_mov); end else umbral_mov = 0; end end delete(vid); clear vid; %ngắt kết nối với tất đối tượng thu nhận hình ảnh imaqreset; 19 | V a n K h a n g - Trong q trình quay, dừng camera cách nhấn vào ‘CAM1’, ‘CAM2’ ,‘CAM3’ ‘CAM4’ (note: code nút tương tự nhau) %ấn lần tắt cam cách gán a=1 , ấn lần bật cam cách gán a =0 global cam1 a cam1=cam1+1; if cam1==1 a=1 elseif cam1==2 a=0; cam1=0; end - Trong qúa trình hoạt động, chương trình lưu lại chuyển động mà camera ghi hình lưu thư mục ‘luu lai chuyen dong’ Nhấn ‘DATA’ để xem trực tiếp giao diện guide ‘CAPTURED_HULK’ function pushbutton5_Callback(hObject, eventdata, handles) %CAPTURED_HULK guide riêng dùng để xem hình ảnh lưu lại CAPTURED_HULK - Để dừng quay toàn nhấn ‘STOP CAM’ Code: function pushbutton4_Callback(hObject, eventdata, handles) %cấp phép nút ‘START’ sáng nút ‘STOP’ tắt, thực ngắt camera cách kick UserData lên để thực lệnh break set(handles.pushbutton3,'enable','on'); set(handles.pushbutton4,'enable','off'); set(handles.pushbutton4,'UserData',1); - Và cuối cùng, để chương trình nhấn ‘EXIT’ Code: function pushbutton6_Callback(hObject, eventdata, handles) %thốt tồn chương trình delete(handles.figure1); 20 | V a n K h a n g