Thuật toán bám đối tượng

Một phần của tài liệu Đồ án robot tự hành vận chuyển hành lí (Trang 106 - 111)

3.2.4.1. Giới thiệu

Ngày nay, sự tương tác giữa con người và robot là nhu cầu thiết yếu trong các ứng dụng thực tiễn. Với chức năng tự động bám theo đối tượng, nhóm mong muốn robot có thể giúp ích cho người sử dụng như quan sát trẻ nhỏ hoặc mang các vật nặng cho người lớn tuổi. Chức năng trên còn có thể được sử dụng ở nhiều môi trường khác nhau. Trong siêu thị, robot có thể giúp khách hàng mang vác các vật dụng cần mua thay vì phải dùng xe đẩy. Tương tự đối với những robot phục vụ trong sân bay, nhà hàng, khách sạn. Chức năng bám theo đối tượng giúp cho người sử dụng tiết kiệm thời gian và sức lực. Robot cần được trang bị thuật toán nhận dạng đối tượng và bám theo khi đối tượng di chuyển.

GVHD: TS. Trương Công Tuấn 107

Hiện nay có nhiều phương pháp nhận dạng người để robot bám theo. Xét về đối tượng nhận dạng có thể chia thành nhận dạng khuôn mặt hoặc nhận dạng các bộ phận trên cơ thể người. Xét theo mức độ nhận dạng có thể chia thành chỉ phát hiện có đối tượng hay không và nhận dạng đối chiếu với tập cơ sở dữ liệu đã xây dựng. Xét về số lượng có thể chia thành nhận dạng duy nhất một đối tượng hoặc nhận dạng tất cả các đối tượng có trong phạm vi nhìn thấy của robot. Nhóm đã chọn phương pháp nhận dạng màu sắc bám theo đối tượng để qua đó phục vụ cho quá trình quét bản đồ ban đầu.

3.2.4.2. Nhận dạng màu sắc

3.2.4.2.1. Mục đích nhận dạng màu sắc

Trong đồ án này bọn em sử dụng RealSense Depth Camera để lấy hình ảnh từ bên ngoài và lọc ra màu sắc cần phải bám theo, ví dụ như là nhân viên mặc áo màu xanh dẫn robot đi quét bản đồ.

3.2.4.2.2. Mô hình màu RGB và mô hình màu HSV

a) Mô hình màu RGB

Mô hình màu RGB sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lục và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu khác. Từ viết tắt RGB trong tiếng Anh có nghĩa là đỏ (red), xanh lục (green) và xanh lam (blue), là ba màu gốc trong các mô hình ánh sáng bổ sung.

Cũng lưu ý rằng mô hình màu RGB tự bản thân nó không định nghĩa thế nào là "đỏ", "xanh lục" và "xanh lam" một cách chính xác, vì thế với cùng các giá trị như nhau của RGB có thể mô tả các màu tương đối khác nhau trên các thiết bị khác nhau có cùng một mô hình màu. Trong khi chúng cùng chia sẻ một mô hình màu chung, không gian màu thực sự của chúng là dao động một cách đáng kể.

GVHD: TS. Trương Công Tuấn 108

(0, 255, 0) là màu xanh lá cây (0, 0, 255) là màu xanh dương (255, 255, 0) là màu vàng (0, 255, 255) là màu ngọc lam (255, 0, 255) là màu hồng

Định nghĩa trên sử dụng thỏa thuận được biết đến như là toàn bộ khoảng RGB. Thông thường, RGB cho video kỹ thuật số không phải là toàn bộ khoảng này. Thay vì thế video RGB sử dụng thỏa thuận với thang độ và các giá trị tương đối chẳng hạn như (16, 16, 16) là màu đen, (235, 235, 235) là màu trắng v.v. Ví dụ, các thang đọ và giá trị tương đối này được sử dụng cho định nghĩa RGB kỹ thuật số trong CCIR 601.

b) Mô hình màu HSV

Không gian màu HSB, còn gọi là không gian màu HSV, là một không gian màu dựa trên ba số liệu:

 H: (Hue) Vùng màu, màu sắc được mô hình hóa dưới dạng một chiều góc mã hóa thông tin màu sắc

 S: (Saturation) Độ bão hòa màu

 B (hay V): (Bright hay Value) độ sáng, thể hiện số lượng màu tương ứng được trộn với màu đen.

GVHD: TS. Trương Công Tuấn 109

Hình 3.47: Mô hình màu HSV

3.2.4.2.3. Chuyển đổi từ màu RGB sang HSV

Yêu cầu bài toán là phát hiện các đối tượng màu xanh lá cây trong hình ảnh. Hình ảnh thu được từ camera sẽ đọc khung dưới dạng không gian màu BGR. Nhưng để phát hiện bất kỳ màu nào, trước tiên, chúng ta phải chuyển đổi khung hình sang không gian màu HSV. Điều nay được lí giải bởi không gian màu HSV rất hữu ích khi chúng ta đang làm việc với thông tin về màu sắc.

Để chuyển đổi từ không gian màu RGB sang HSV thì cần có các bước sau:

- Bước 1: Các giá trị R, G, B được chia cho 255 để thay đổi phạm vi từ 0..255 thành 0..1: 𝑅′ = 𝑅/255 𝐺′ = 𝐺/255 𝐵′ = 𝐵/255 𝐶𝑚𝑎𝑥 = 𝑚𝑎𝑥(𝑅′, 𝐺′, 𝐵′) 𝐶𝑚𝑖𝑛 = tối thiểu (𝑅′, 𝐺′, 𝐵′) Δ = 𝐶𝑚𝑎𝑥 − 𝐶𝑚𝑖𝑛 (3.53) (3.54) (3.55) (3.56) (3.57) (3.58) - Bước 2: Tính các giá trị H, S, V: 𝐻 = { 0∘ Δ = 0 60∘× (𝐺 ′− 𝐵′ Δ 𝑚𝑜𝑑6) , 𝐶𝑚𝑎𝑥 = 𝑅 ′ 60∘× (𝐵 Δ− 𝑅′ Δ′ + 2) , 𝐶𝑚𝑎𝑥 = 𝐺′ 60∘ × (𝑅 ′− 𝐺′ Δ + 4) , 𝐶𝑚𝑎𝑥 = 𝐵 ′ (3.59)

GVHD: TS. Trương Công Tuấn 110

áp dụng một mặt nạ để có được tất cả các màu xanh trong ảnh theo ngưỡng HSV = [50, 20, 20] đến [10, 255, 255]. Và sau đó để viền bao quanh xác định đối tượng.

3.2.4.3. Thuật toán bám theo đối tượng

Sau khi xác định được đối tượng cần bám dựa vào nhãn dán, từ vị trí trọng tâm của đối tượng mà robot sẽ đưa ra các lệnh điều khiển phù hợp sao cho robot luôn hướng về đối tượng (tức góc lệch Δθ giữa người và robot bằng 0) và luôn giữ khoảng cách cố định đến đối tượng dgoal bằng 0.5 mét. Lưu đồ giải thuật bám theo đối tượng với ngõ vào là nhãn dán của đối tượng muốn bám và ngõ ra là các lệnh điều khiển di chuyển robot như hình 4.30.

GVHD: TS. Trương Công Tuấn 111

Hình 3.48: Thuật toán bám đối tượng. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Đồ án robot tự hành vận chuyển hành lí (Trang 106 - 111)