3.4.3.1. Điều khiển góc Yaw
Lấy điểm giữa của khung ảnh làm điểm đối chiếu, việc điều khiển để đưa hình ảnh vật thể vào tâm của khung ảnh có hai vấn đề, điều khiển góc yaw và điều khiển độ cao. Bằng việc chia giá trị góc nhìn của máy ảnh fov cho số lượng pixel tương ứng, chúng ta có thể ước chừng giá trị góc tương ứng với từng pixel
𝑎𝑛𝑔𝑙𝑒𝑠𝑡𝑒𝑝 = 𝑓𝑜𝑣
𝑛𝑝𝑖𝑥𝑒𝑙𝑠 (16)
Khi có kết quả của nhận dạng vật thể, ta sẽ có tọa độ của hộp giới hạn xmin ymin xmax ymax. Tọa độ tâm của hộp giới hạn được tính qua công thức (17)
(𝑢𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑, 𝑣𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑) = (𝑥𝑚𝑎𝑥−𝑥𝑚𝑖𝑛
2 ,𝑦𝑚𝑎𝑥−𝑦𝑚𝑖𝑛
2 ) (17)
Từ tâm của khung hình đến tâm của hộp giới hạn có khoảng cách pixel theo chiều ngang và chiều dọc lần lượt là ℎ𝑝𝑖𝑥𝑒𝑙 và 𝑣𝑝𝑖𝑥𝑒𝑙 như diễn tả trong hình 3.27. Với khoảng cách đó ta có thể sử dụng để tính chuyển vị góc ℎ𝑎𝑛𝑔𝑙𝑒 và 𝑣𝑎𝑛𝑔𝑙𝑒, như trong hình 3.28, sử dụng công thức (18) sau để tính:
𝑎𝑛𝑔𝑙𝑒𝑑𝑖𝑠𝑝 = 𝑝𝑖𝑥𝑒𝑙𝑑𝑖𝑠𝑝 × 𝑎𝑛𝑔𝑙𝑒𝑠𝑡𝑒𝑝 (18) Góc Yaw cần chỉnh ℎ𝑎𝑛𝑔𝑙𝑒 có thể được tính từ công thức trên (18), trong đó 𝑝𝑖𝑥𝑒𝑙𝑑𝑖𝑠𝑝 là ℎ𝑝𝑖𝑥𝑒𝑙, tương tự như vậy 𝑣𝑝𝑖𝑥𝑒𝑙 có thể tính theo công thức trên. Ta cũng có được sai số phương ngang 𝑒𝑟𝑟𝑜𝑟ℎ𝑜𝑟𝑖𝑧𝑜𝑛 = 𝑎𝑛𝑔𝑙𝑒𝑑𝑖𝑠𝑝 , do fov của camera là góc nhìn của camera và độ phân giải của hình ảnh cũng được biết trước.
SVTH: Nguyễn Nhật Anh Lớp: KTDT & THCN K56
HÌNH 3.28. Tính góc sai lệch phương ngang bằng fov.
3.4.3.2. Xác định vị trí của đối tượng
Phần điều khiển phương ngang hoạt động theo trục hướng thẳng từ máy ảnh trên UAV đến vật thể nhận dạng, và đó cũng là trục của máy ảnh. Phần điều khiển này sẽ ra quyết định sẽ bay tiến đến vật hoặc lùi ra xa vật để giữ khoảng cách an toàn cố định giữa người và thiết bị bay. Khoảng cách chúng ta muốn
𝑑𝑡𝑎𝑟𝑔𝑒𝑡 = ℎ𝑒𝑖𝑔ℎ𝑡𝑟𝑒𝑎𝑙
tan(ℎ𝑎𝑛𝑔𝑙𝑒)+ 𝑑𝑏𝑖𝑎𝑠 (19) Trong đó ℎ𝑒𝑖𝑔ℎ𝑡𝑟𝑒𝑎𝑙 là độ cao đo được thực tế của đối tượng, ℎ𝑎𝑛𝑔𝑙𝑒 là góc tìm được qua công thức (18). Nếu đối tượng người tiến đến gần hoặc rời ra xa hơn máy ảnh, kích thước pixel của hộp giới hạn sẽ thay đổi, tuy độ cao thực tế của người thì không thay đổi nhưng mỗi đối tượng người lại có chiều cao thực tế khác nhau, vậy nên phải thêm biến nhiễu 𝑑𝑏𝑖𝑎𝑠 =∆ℎ𝑒𝑖𝑔ℎ𝑡𝑚𝑒𝑎𝑛
tan(∆ℎ𝑎𝑛𝑔𝑙𝑒) là giá trị trung bình sai lệch của chiều cao trung bình thực tế của người khoảng 1,70m chia cho tan sai lệch trung bình của pixel tương ứng với chiều cao đó.
SVTH: Nguyễn Nhật Anh Lớp: KTDT & THCN K56
3.5.KẾT QUẢ THỬ NGHIỆM