TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO TỔNG KẾT Đồ án 1 Đề tài ĐỊNH VỊ ĐỐI TƯỢNG MẶT ĐẤT THÔNG QUA XỬ LÝ ẢNH UAV Họ tên sinh viên MSSV Lớp – Khóa Võ Kiều Trinh 20182833 Điện t.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Họ tên sinh viên MSSV Lớp – Khóa
Võ Kiều Trinh 20182833 Điện tử 02-K63
Lê Huy Hoàng 20182536 Điện tử 02-K63
Lê Đình Hữu 20182571 Điện tử 05-K63 Giảng viên hướng dẫn: TS Phạm Văn Tiến
Hà Nội, 08-2021
Trang 2LỜI NÓI ĐẦU
Thị giác máy tính (Computer Vision) là một trong những lĩnh vực hot nhất của khoa học máy tính và nghiên cứu trí tuệ nhân tạo, Nhiều ứng dụng bạn sử dụng hàng ngày sử dụng công nghệ thị giác máy tính Google sử dụng nó để giúp bạn tìm kiếm các đối tượng và cảnh vật như là “con người” hoặc “đồ vật” trong một thư viện hình ảnh của bạn, các cơ sở y tế sử dụng để chuẩn đoán phát hiện bệnh Các công ty khác sử dụng thị giác máy tính để giúp nâng cao hình ảnh Phát hiện đối tượng, tìm khoảng cách, bám đối tượng chuyển động là những ứng dụng quan trọng của thị giác máy tính trong thực tiễn
Trên cơ sở những kiến thức đã học cùng với đề tài “ Định vị đối tượng mặt đất thông qua xử lý ảnh UAV” sẽ là một cơ hội để chúng em tìm tòi những kiến thức mới
cũng như rèn luyện các kỹ năng làm việc nhóm và quản lý thời gian hiệu quả
Qua đây chúng em xin chân thành cám ơn thầy Phạm Văn Tiến đã trực tiếp định
hướng, tạo điều kiện cần thiết và tận tình hướng dẫn chúng em có thể hoàn thành để tài của mình Chúng em đã cố gắng để hoàn thành tốt nhưng do vốn kiến thức còn hạn hẹp cũng như yếu tố khách quan khác mà không tránh khỏi sai sót Chúng em mong sự đóng góp ý kiến, phê bình và hướng dẫn thêm của thầy để đề tài của chúng em hoàn thiện hơn
Trang 3
LỜI CAM ĐOAN
Em là Võ Kiều Trinh, mã số sinh viên 20182833, đại diện nhóm Thầy hướng dẫn
là TS Phạm Văn Tiến Em xin cam đoan toàn bộ nội dung được trình bày trong “Đề tài
đồ án 1 Định vị đối tượng mặt đất thông qua xử lý ảnh UAV ” là kết quả quá trình
tìm hiểu và nghiên cứu của chúng em Các dữ liệu được nêu trong báo cáo là hoàn toàn trung thực, phản ánh đúng kết quả thực tế Mọi thông tin trích dẫn đều tuân thủ các quy định về sở hữu trí tuệ, các tài liệu tham khảo được liệt kê rõ ràng Chúng em xin chịu hoàn toàn trách nhiệm với những nội dung được viết trong báo cáo này
Hà Nội, Tháng 08 năm 2021
Người cam đoan
Võ Kiều Trinh
Trang 4MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iii
CHƯƠNG 1 ĐẶT VẤN ĐỀ 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu của đề tài 1
1.3 Lập kế hoạch 1
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 Xử lý ảnh 3
2.1.1 Tổng quan về xử lý ảnh 3
2.1.2 Các quá trình xử lý ảnh 3
2.1.3 Ảnh trong máy tính 4
2.1.4 Phạm vi ứng dụng của xử lý ảnh 8
2.2 Công nghệ UAV 8
2.2.1 UAV là gì 8
2.2.2 Cấu tạo của thiết bị bay chụp UAV 9
2.2.3 Quy trình bay chụp và xử lý ảnh 9
CHƯƠNG 3 Tổng quan về thư viện mã nguồn 11
3.1 Thư viện OpenCV 11
3.1.1 OpenCV là gì ? 11
3.1.2 Vì sao lựa chọn OpenCV ? 11
3.1.3 Cấu trúc và nội dung của OpenCV 12
CHƯƠNG 4 Phân tích và thiết kế phần mềm 13
4.1 Phân tích hệ thống phát hiện đối tượng và đo khoảng cách 13
4.2 Phân tích hệ thống bám đối tượng chuyển động 16
CHƯƠNG 5 KẾT QUẢ MÔ PHỎNG 18
5.1 Kết quả phát hiện đối tượng và đo khoảng cách 18
Trang 55.2 Kết quả phát hiện đối tượng chuyển động và bám đối tượng 18
CHƯƠNG 6 KẾT LUẬN 20
6.1 Kết quả đạt được 20
6.2 Nhứng vấn đề chưa thực hiện được và hạn chế của đề tài 20
6.3 Hướng phát triển của đề tài 20
TÀI LIỆU THAM KHẢO 21
Trang 6i
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
UAV Unmanned aerial vehicle
RGB Red, Green, Blue
OpenCV Open Source Computer Vision
Trang 7ii
DANH MỤC HÌNH VẼ
Hình 2.1 Các giai đoạn chính trong xử lý ảnh 3
Hình 2.2 Mô hình màu RBG 5
Hình 2.3 Mô tả bộ số rgb của màu 6
Hình 2.4 Ảnh màu 7
Hình 2.5 Ảnh xám 8
Hình 2.6 Mô tả quá trình bay chụp và xử lý ảnh UAV 10
Hình 3.1 Biểu tượng thư viện OpenCV 11
Hình 4.1 Mô tả hệ thống phát hiện đối tượng và đo khoảng cách 13
Hình 4 2 Mô tả kiến thức vật lý 14
Hình 4 3 Khai báo khoảng cách và face_width 14
Hình 4 4 Sử dụng mô-đun phát hiện đối tượng Haar Cascade của OpenCV 15
Hình 4.5 Hàm tính ra face_width 15
Hình 4.6 Mô tả hàm tính tiêu cự f 15
Hình 4.7 Sử dụng mô-đun phát hiện đối tượng Haar Cascade của OpenCV 15
Hình 4.8 Hàm tính khoảng cách 16
Hình 4 9 Mô tả hệ thống bám đối tượng chuyển động 16
Hình 4.10 Khởi tao BackgroundSubtractorMOG2 16
Hình 4.11 Duyệt qua từng frame, xử lý từng frame với Background Subtractor 17 Hình 4 12 Xác định khu vực quan tâm, xác định đối tượng 17
Hình 5.1 Phát hiện đối tượng và đo khoảng cách 18
Hình 5.2 Xác định được khu vực cần quan tâm 18
Hình 5.3 Phát hiện đối tượng chuyển động và bám đối tượng 19
Trang 8iii
DANH MỤC BẢNG BIỂU
Bảng 1 1 Mô tả công việc 1 Bảng 1 2 Phân công công việc cho các thành viên 2
Trang 91
CHƯƠNG 1 ĐẶT VẤN ĐỀ
1.1 Lý do chọn đề tài
Trước sự phát triển mạnh mẽ và ngày càng được ứng dụng phổ biến cả trong dân sự
và quân sự của các thiết bị bay không người lái ( UAV ) trong những năm gần đây, UAV
đã thực sự là một nguồn cho rất nhiều lĩnh vực UAV có thể hoạt động trong phạm vi rộng lớn với địa hình đa dạng mà không cần quá nhiều nhân lực và chi phí cao Tuy nhiên với số lượng lớn ảnh có thể thu thập được, vấn đề phát sinh là xử lý, đánh giá và xác định các đôi tượng cần quan tâm
Xuất phát từ những nhu cầu thực tế đó nhóm chúng em quyết định chọn đề tài “ Định
vị đối tượng mặt đất thông qua xử lý ảnh UAV ”
1.2 Mục tiêu của đề tài
• Phát triển phần mềm đo lường khoảng cách hướng của đối tượng mặt đất bằng cách xử lý dữ liệu video flycam
• Phần mềm bám đối tượng chuyển động chạy trên giao diện web
1.3 Lập kế hoạch
Mô tả công việc thể hiện trong bảng 1.1
Bảng 1 1 Mô tả công việc
gian
1 Tìm hiểu nội dung đề tài Tìm hiểu nội dung đề
tài
2-3 ngày
Trang 102
2 Tìm hiểu lý thuyết Tìm hiểu về lý thuyết ,
các khái niệm và các nội dung liên quan tuần 2-3
3 Xây dựng tổng quan và chi tiết
phần mềm
Lập trình và phát triển phần mềm
4-5 tuần
1-2 tuần
Phân công cho các thành viên thể hiện trong bảng 1.2
Bảng 1 2 Phân công công việc cho các thành viên
Trinh
Lê Đình Hữu
Lê Huy Hoàng
5 Trình bày báo cáo tổng
kết
Trang 11Xử lý ảnh số bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên Mục đích của xử lý ảnh gồm:
• Biến đổi ảnh làm tăng chất lượng ảnh
• Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh
2.1.2 Các quá trình xử lý ảnh
Hình 2.1 mô tả các quá trình trong xử lý ảnh
Hình 2.1 Các giai đoạn chính trong xử lý ảnh
Thu nhận ảnh: Đây là công đoạn đầu tiên mang tính quyết định đối với quá trình xử
lý ảnh Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera, sensor, máy scanner,v.v… và sau đó các tín hiệu này sẽ được số hóa
Trang 124
Tiền xử lý: Ở bước này, ảnh sẽ được cải thiện về độ tương phản, khử nhiễu, khử bóng, khử độ lệch,v.v… với mục đích làm cho chất lượng ảnh trở lên tốt hơn nữa, chuẩn
bị cho các bước xử lý phức tạp hơn về sau trong quá trình xử lý ảnh
Phân đoạn ảnh: phân đoạn ảnh là bước then chốt trong xử lý ảnh Giai đoạn này phân tích ảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng màu, cùng mức xám v.v… Mục đích của phân đoạn ảnh là để có một miêu tả tổng hợp về nhiều phần tử khác nhau cấu tạo lên ảnh thô Vì lượng thông tin chứa trong ảnh rất lớn, trong khi đa số các ứng dụng chúng ta chỉ cần trích một vài đặc trưng nào đó, do vậy cần có một quá trình để giảm lượng thông tin khổng lồ đó Quá trình này bao gồm phân vùng ảnh và trích chọn đặc tính chủ yếu
Tách các đặc tính: Kết quả của bước phân đoạn ảnh thường được cho dưới dạng dữ liệu điểm ảnh thô, trong đó hàm chứa biên của một vùng ảnh, hoặc tập hợp tất cả các điểm ảnh thuộc về chính vùng ảnh đó
Nhận dạng và giải thích: Đây là bước cuối cùng trong quá trình xử lý ảnh Nhận dạng ảnh có thể được nhìn nhận một cách đơn giản là việc gán nhãn cho các đối tượng trong ảnh Ví dụ đối với nhận dạng phương tiện giao thông, các đối tượng trong ảnh cần nhận dạng là các phương tiện, ta cần tách riêng chúng với vạch kẻ đường, cây cối,v.v…
2.1.3 Ảnh trong máy tính
- Hệ màu RBG:
RGB viết tắt của red (đỏ), green (xanh lục), blue (xanh lam), là ba màu chính của ánh sáng khi tách ra từ lăng kính Khi trộn ba màu trên theo tỉ lệ nhất định có thể tạo thành các màu khác nhau
Trang 135
Hình 2.2 Mô hình màu RBG
Với mỗi bộ 3 số r, g, b nguyên trong khoảng [0, 255] sẽ cho ra một màu khác nhau Do có 256 cách chọn r, 256 cách chọn màu g, 256 cách chọn b => tổng số màu
có thể tạo ra bằng hệ màu RGB là: 25 6 * 256 * 256 = 16777216 màu
Ví dụ khi bạn chọn một màu thì sẽ ra một bộ ba số tương ứng (r,g,b) như trong hình 2.3
Trang 146
Hình 2.3 Mô tả bộ số rgb của màu
Màu được chọn là rgb(255, 102, 153), nghĩa là r = 255, g = 102, b = 153
- Ảnh màu:
Ảnh màu là một ma trận các pixel mà mỗi pixel biểu diễn một điểm màu Mỗi điểm màu được biểu diễn bằng bộ 3 số (r,g,b) Để tiện cho việc xử lý ảnh thì sẽ tách ma trận pixel ra 3 channel red, green, blue Hình 2.4 là một ví dụ về ảnh màu
Trang 157
Hình 2.4 Ảnh màu
Ví dụ bức ảnh trên có kích thước 800 pixel * 600 pixel, có thể biểu diễn dưới dạng ma trận một kích thước 600 * 800
Trong đó mỗi phần tử Wij là một pixel Như vậy có thể hiểu là mỗi pixel thì biểu diễn
một màu và bức ảnh trên là sự kết hợp rất nhiều pixel Hiểu đơn giản thì in bức ảnh ra,
kẻ ô vuông như chơi cờ ca rô với 800 đường thẳng ở chiều dài, 600 đường ở chiều rộng, thì mỗi ô vuông là một pixel, biểu diễn một chấm màu.Để biểu diễn một chấm màu ta cần 3 thông số (r, b, g)
- Ảnh xám:
Ảnh xám cũng tương tự như ảnh màu tuy nhiên mỗi pixel trong ảnh xám chỉ cần biểu diễn bằng một giá trị nguyên trong khoảng từ [0,255] thay vì (r,g,b) như trong ảnh màu Giá trị 0 là màu đen, 255 là màu trắng và giá trị pixel càng gần 0 thì càng tối và càng gần 255 thì càng sáng Hình 2.5 là một ví dụ về ảnh xám
Trang 168
Hình 2.5 Ảnh xám
2.1.4 Phạm vi ứng dụng của xử lý ảnh
Xử lý ảnh đã đem lại nhiều ứng dụng trong nhiều lĩnh vực khác nhau: Nông nghiệp,
hệ thống giao thông, công nghiệp, y học, khoa học hình hình sự, khí tượng thuỷ văn, quản lý,
Trang 179
2.2.2 Cấu tạo của thiết bị bay chụp UAV
Hệ thống chụp ảnh hàng không kỹ thuật số bằng máy bay không người lái UAV
để xây dựng bản đồ địa hình được chia làm 4 thành phần chính:
• Hệ thống máy bay: được cấu tạo gồm thân máy bay, đầu thu GPS, cảm biến tốc
độ gió, cảm biến độ cao, cảm biến áp xuất, cảm biến cân bằng và bộ thu phát tín hiệu, pin hành trình cung cấp nguồn điện cho quá trình bay chụp của thiết bị
• Máy ảnh kỹ thuật số : Thông thường các máy ảnh sử dụng để chụp ảnh địa hình bằng UAV là các loại máy ảnh kỹ thuật số có kích thước nhỏ gọn, có tiêu cự cố định và khả năng lấy nét tự động
• Trạm điều khiển mặt đất: Mội hệ thống máy bay UAV đều phải được điều khiển bằng trạm điều khiển mặt đất
2.2.3 Quy trình bay chụp và xử lý ảnh
Công tác chuẩn bị bao gồm hoạch định vị trí và phạm vi bay chụp, kiểm tra vùng cấm bay tiếp đến là kiểm tra điều kiện thời tiết có phù hợp cho công tác bay chụp hay không
Khi các điều kiện tiến hành thủ tục bay đảm bảo tiếp đến là thiết kế tuyến bay và tiến hành bay chụp
Sau khi có kết quả bay chụp, số liệu bao gồm ảnh số và tọa độ được đưa vào phần mềm xử lý ảnh
Trên cơ sở nội dung và trính tự thực hiện các bước ta đưa ra quy trình bay chụp và xử
lý số liệu được mô tả như hình 2.6
Trang 1810
Hình 2.6 Mô tả quá trình bay chụp và xử lý ảnh UAV
Trang 1911
CHƯƠNG 3 Tổng quan về thư viện mã nguồn
3.1 Thư viện OpenCV
3.1.1 OpenCV là gì ?
OpenCV viết tắt của Open Source Computer Vision được xem là một trong những thư viện mã nguồn mở hàng đầu cho việc xử lý ảnh theo thời gian thực
Hình 3.1 Biểu tượng thư viện OpenCV
OpenCV chính thức được ra mắt đầu tiên vào năm 1999, OpenCV là thư viện mã nguồn mở miễn phí cho cả học thuật và thương mại Hiện nay OpenCV có trên các giao diện lập trình khác nhau như là Python, C, C++, Java… và nó có thể hỗ trợ được cho các hệ điều hành bao gồm Linux, Windows, IOS, OS, Android Riêng đối với C/C++ thì OpenCV có thể tận dụng được các bộ xử lý đa lõi và mang đến kết quả đáng bất ngờ
3.1.2 Vì sao lựa chọn OpenCV ?
OpenCV hiện có hơn 47 nghìn người dùng và ước tính hơn 14 triệu số lượt tải xuống, thư viện OpenCV được sử dụng rộng rãi trong nhiều lĩnh vực như giám sát tự động tìm kiểm, phục hồi, xử lý ảnh, nhận dạng khuôn mặt, cử chỉ, nhận dạng chữ viết, con số, ký tự… Có rất nhiều công nghệ hiện đại và các công ty lớn sử dụng thư viện OpenCV
Trang 2012
trong ứng dụng của mình như : Intel, Microsoft, IBM, Siemens, Google… và các trung tâm nghiên cứu như: Stanford, MIT, Cambridge, INRIA…Điều đó khẳng định rằng OpenCV thực sự đã góp phần vô cùng lớn trong lĩnh vực thị giác máy
3.1.3 Cấu trúc và nội dung của OpenCV
OpenCV có cấu trúc module, nghĩa là gói bao gồm một số thư viện liên kết tĩnh (static libraries) hoặc thư viện liên kết động (shared libraries) Xin phép liệt kê một số định nghĩa chi tiết các module phổ biến có sẵn như sau:
• Core functionality (core) – module nhỏ gọn để xác định cấu trúc dữ liệu cơ bản,
bao gồm mảng đa chiều dày đặc và nhiều chức năng cơ bản được sử dụng bởi tất
cả các module khác
• Image Processing (imgproc) – module xử lý hình ảnh gồm cả lọc hình ảnh tuyến
tính và phi tuyến (linear and non-linear image filtering), phép biến đổi hình học (chỉnh size, afin và warp phối cảnh, ánh xạ lại dựa trên bảng chung), chuyển đổi không gian màu, biểu đồ, và nhiều cái khác
• Video Analysis (video) – module phân tích video bao gồm các tính năng ước tính
chuyển động, tách nền, và các thuật toán theo dõi vật thể
• Camera Calibration and 3D Reconstruction (calib3d) – thuật toán hình học đa chiều cơ bản, hiệu chuẩn máy ảnh single và stereo (single and stereo camera calibration), dự đoán kiểu dáng của đối tượng (object pose estimation), thuật toán thư tín âm thanh nổi (stereo correspondence algorithms) và các yếu tố tái tạo 3D
• 2D Features Framework (features2d) – phát hiện các đặc tính nổi bật của bộ nhận diện, bộ truy xuất thông số, thông số đối chọi
• Object Detection (objdetect) – phát hiện các đối tượng và mô phỏng của các hàm được định nghĩa sẵn – predefined classes (vd: khuôn mặt, mắt, cốc, con người,
xe hơi,…)
• … và một số module hỗ trợ khác
Trang 2113
CHƯƠNG 4 Phân tích và thiết kế phần mềm
4.1 Phân tích hệ thống phát hiện đối tượng và đo khoảng cách
Hình 4.1 Mô tả hệ thống phát hiện đối tượng và đo khoảng cách
Hệ thống phát hiện đối tượng ( người ) và đo khoảng cách từ camera đến đối tượng được mô tả như hình 4.1 Quá trình thực hiện có thể chia làm 2 giai đoạn:
• Xác định tiêu cự f
• Tìm khoảng các tử camera đến đối tượng
Trang 22
Giai đoạn 1: Tính tiêu cự f
Bước 1: Đo khoảng cách từ đối tường đến camera để tìm được know_distance ( d ),
real_face_width (h ) khoảng 14,3 cm
Hình 4 3 Khai báo khoảng cách và face_width
Bước 2: Chụp lại bức ảnh, đầu vào lúc này sẽ là ảnh gốc
Bước 3: Chuyển ảnh sang ảnh xám
Bước 4: Sử dụng mô-đun phát hiện đối tượng Haar Cascade của OpenCV để phát hiện
ra khuôn mặt và sử dụng phương thức detectMultiScale để tìm được face_width (a)