1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG CHƯƠNG TRÌNH TỰ ĐỘNG PHÂN LOẠI ĐIỂM ĐÁM MÂY - Full 10 điểm

11 0 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

Tiêu đề Xây Dựng Chương Trình Tự Động Phân Loại Dữ Liệu Đám Mây Điểm
Tác giả Bùi Ngọc Quý, Lê Đình Hiển, Phạm Văn Hiệp, Vũ Sơn Tùng, Dương Anh Quân, Trần Thị Thu Trang
Trường học Hanoi University of Mining and Geology
Chuyên ngành Geomatics and Land Administration
Thể loại article
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 1,56 MB

Nội dung

Journal of Mining and Earth Sciences Vol 64 , Issue 4 ( 2023 ) 1 - 11 1 Building a program to automatically classify point cloud data Quy Ngoc Bui 1,2,* , Hien Dinh Le 3 , Hiep Van Pham 1,2 , Tung Son Vu 4 , Quan Anh Duong 1,2 , Trang Thu Thi Tran 1 1 Faculty of Geomatics and Land Administration, Hanoi University of Mining and Geology, Vietnam 2 Research and Development of Geospatial Data Management and Analysis Techniques (GMA) , Hanoi University of Mining and Geology, Vietnam 3 Natural Resources and Environment One Member Co , Ltd, Hanoi , Vietnam 4 GeoPro Ltd, Hanoi , Vietnam ARTICLE INFO ABSTRACT Article history: Received 1 st Apr 2023 Revised 23 rd July 2023 Accepted 17 th Aug 2023 Along with cartography science and technology development, data acquisition through aeronautical laser scanning systems has been developing This is an essential and detailed data source for database construction, mapping, and city 3D modeling, City 3D modeling requires processing many types of data, at which point cloud data processing and classification play an essential role in creating input data sources for the model However, the processing and classification of point cloud data mainly depend on commercial software with very high costs; moreover, the algorithms and parameters of commercial software are locked That makes it impossible for the user to intervene to improve product accuracy Therefore, building a program to automatically cl assify point cloud data into different geographical objects helps us master data processing technology for creating 3D models It makes an important contribution to building and developing smart cities The article introduces the step - by - step classificatio n of LiDAR point cloud data and the process of automatically building a program to classify point cloud data based on Visual Studio Net language The result is a bilingual program automatically classifying point cloud data (Vietnamese - English) The progr am can read and fully deploy algorithms to process LiDAR point cloud data containing information with four color bands (red, green, blue, and near - infrared) The primary processing is based on proposed classification steps and thresholds for point cloud da ta classification into eight feature classes, including hydrology, solar land, traffic, low plants, medium plants, high plants, houses, and other objects, to establish 3D city models Copyright © 2023 Hanoi University of Mining and Geology All rights reserved Keywords: 3D city model, LiDAR, Point cloud , Program _____________________ * Corresponding author E - mail: b uingocquy@humg edu vn DOI: 10 46326/JMES 202 3 6 4 ( 4 ) 0 1 2 T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t T ậ p 64 , K ỳ 4 ( 2023 ) 1 - 11 _____________________ * Tác gi ả liên h ệ E - mail: buingocquy@humg edu vn DOI: 10 46326/JM 3 ES 202 3 6 4 (4) 01 Xây d ự ng chương trình t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m Bùi Ng ọ c Quý 1,2,* , Lê Đình Hi ể n 3 , Ph ạ m Văn Hi ệ p 1,2 , Vũ Sơn Tùng 4 , Dương Anh Quân 1,2 , Tr ầ n Th ị Thu Trang 1 1 Khoa Tr ắ c đ ị a - B ả n đ ồ và Qu ả n lý đ ấ t đai, Trư ờ ng Đ ạ i h ọ c M ỏ - Đ ị a ch ấ t, Vi ệ t Nam 2 Nhóm nghiên c ứ u n ghiên c ứ u phát tri ể n công ngh ệ qu ả n lý và phân tích d ữ li ệ u không gian đ ị a lý , Hà N ộ i , Vi ệ t Nam 3 Công ty TNHH MTV Tài nguyên và Môi trư ờ ng Vi ệ t Nam, Hà N ộ i, Vi ệ t Nam 4 Công ty TNHH GeoPro, Hà N ộ i, Vi ệ t Nam THÔNG TIN BÀI BÁO TÓM T Ắ T Quá trình: Nh ậ n bài 1 / 4 / 2023 S ử a xong 23 / 7 / 2023 Ch ấ p nh ậ n đăng 17 / 8 / 2023 Cùng v ớ i s ự phát tri ể n trong lĩnh v ự c khoa h ọ c và công ngh ệ đo đ ạ c b ả n đ ồ , công tác thu nh ậ n d ữ li ệ u thông qua h ệ th ố ng quét laser hàng không đã có s ự phát tri ể n m ạ nh m ẽ Đây là ngu ồ n d ữ li ệ u quan tr ọ ng và chi ti ế t cho công tác xây d ự ng cơ s ở d ữ li ệ u, thành l ậ p b ả n đ ồ , xây d ự ng mô hình 3D thành ph ố , Quá trình xây d ự ng mô hình 3D thành ph ố đòi h ỏ i ph ả i x ử lý nhi ề u lo ạ i d ữ li ệ u, trong đó công tác x ử lý và phân lo ạ i d ữ li ệ u đám mây đi ể m có vai trò quan tr ọ ng trong vi ệ c t ạ o ngu ồ n d ữ li ệ u đ ầ u vào cho mô hình Tuy nhiên, vi ệ c x ử lý và phân lo ạ i d ữ li ệ u đám mây đi ể m hi ệ n nay ch ủ y ế u ph ụ thu ộ c vào các p h ầ n m ề m thương m ạ i có b ả n quy ề n v ớ i giá thành r ấ t cao, hơn n ữ a các thu ậ t toán và tham s ố c ủ a ph ầ n m ề m thương m ạ i đư ợ c mã hóa làm cho ngư ờ i dùng không th ể can thi ệ p đ ể c ả i thi ệ n đ ộ chính xác c ủ a s ả n ph ẩ m Do v ậ y, vi ệ c xây d ự ng m ộ t chương trình t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m thành các đ ố i tư ợ ng đ ị a lý khác nhau giúp chúng ta có th ể làm ch ủ đư ợ c công ngh ệ x ử lý d ữ li ệ u ph ụ c v ụ công tác xây d ự ng các mô hình 3D thành ph ố ti ế n t ớ i góp ph ầ n quan tr ọ ng vào ti ế n trình xây d ự ng và phát tri ể n thành ph ố thông m inh Bài báo gi ớ i thi ệ u quy trình các bư ớ c th ự c hi ệ n phân lo ạ i d ữ li ệ u đám mây đi ể m LiDAR và quá trình tri ể n khai xây d ự ng chương trình t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m d ự a trên ngôn ng ữ Visual Studio Net K ế t qu ả bài báo đã xây d ự ng đư ợ c chương trìn h t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m song ng ữ (Vi ệ t – Anh), có th ể đ ọ c và tri ể n khai đ ầ y đ ủ các thu ậ t toán đ ể x ử lý d ữ li ệ u đám mây đi ể m LiDAR ch ứ a thông tin 4 kênh màu (đ ỏ , l ụ c, lam và c ậ n h ồ ng ngo ạ i) Quá trình x ử lý chính d ự a theo các bư ớ c và ngư ỡ ng phân lo ạ i đã đ ề xu ấ t cho phân lo ạ i d ữ li ệ u đám mây đi ể m thành 8 l ớ p đ ố i tư ợ ng đ ị a lý khác nhau bao g ồ m: th ủ y văn, m ặ t đ ấ t, giao thông, th ự c v ậ t th ấ p, th ự c v ậ t trung bình, th ự c v ậ t cao, nhà và các đ ố i tư ợ ng khác ph ụ c v ụ cho công tác thành l ậ p các mô hình 3 D thành ph ố © 2023 Trường Đại học Mỏ - Địa chất Tất cả các quyền được bảo đảm T ừ khóa: Chương trình, Đám mây đi ể m, LiDAR, Mô hình 3D thành ph ố Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 3 1 M ở đ ầ u Hi ệ n nay, trên th ế gi ớ i các nghiên c ứ u v ề mô hình 3D thành ph ố ph ụ c v ụ cho công tác mô hình hóa b ề m ặ t và xây d ự ng thành ph ố thông minh đã và đang đư ợ c chú tr ọ ng nghiên c ứ u và phát tri ể n Các mô hình 3D thành ph ố đư ợ c xây d ự ng là k ế t qu ả c ủ a quá trình tích h ợ p nhi ề u lo ạ i d ữ li ệ u khác nhau như: DEM, ả nh v ệ tinh, b ả n đ ồ đ ị a hình, ả nh s ố , d ữ li ệ u đám mây đi ể m LIDAR,… (Bui và nnk , 2020 ; 2021; Dương và nnk , 2 202 ; Lê, 2019 ; 2023 ) Quá trình xây d ự ng mô hình 3D thành ph ố đòi h ỏ i ph ả i x ử lý nhi ề u lo ạ i d ữ li ệ u, trong đó công tác x ử lý và phân lo ạ i d ữ li ệ u đám mây đi ể m có vai trò quan tr ọ ng trong vi ệ c t ạ o ngu ồ n d ữ li ệ u đ ầ u vào cho mô hình 3D thành ph ố N hi ề u công trình nghiên c ứ u đã đưa ra các phương pháp và thu ậ t toán v ề p hân lo ạ i đám mây đi ể m đ ể t ừ đó nh ậ n d ạ ng các đ ố i tư ợ ng b ằ ng cách phân l ớ p cho đám mây đi ể m thu nh ậ n đư ợ c, trong đó ch ủ y ế u t ậ p trung vào 2 hư ớ ng: (1) Các thu ậ t toán d ự a trên mô hình máy h ọ c (Alexandre, 2020; Arief và nnk , 2019; Chenglu và nnk , 2019; Qiang và nnk , 2020; Yongguang và nnk , 2020 ) ; (2) Các thu ậ t toán phân lo ạ i d ự a trên hình thái và ph ổ (Heidar và nnk , 2020; Markus and Jing, 2014; Ronggang và nnk , 2018; Wuzhao và nnk , 2020; Yi và nnk , 2020; Yangbin và nnk , 2018; Xudong và nnk , 2019) Th ự c t ế hi ệ n n ay , công ngh ệ đo đ ạ c thu th ậ p d ữ li ệ u đã d ị ch chuy ể n d ầ n t ừ các thi ế t b ị đo đ ạ c truy ề n th ố ng, đơn l ẻ t ừ ng đi ể m sang các thi ế t b ị thu th ậ p thông tin không gian m ộ t cách toàn di ệ n và nhanh chóng như máy quét laser m ặ t đ ấ t, máy quét laser di đ ộ ng (mobile mapping ), thi ế t b ị quét LiDAR trên máy bay hay trên UAV Đ ị nh d ạ ng d ữ li ệ u chung cho các thi ế t b ị này là d ữ li ệ u d ạ ng đám mây đi ể m 3D mang thông tin chính xác v ề t ọ a đ ộ đ ị a lý và nhi ề u thông tin khác như màu s ắ c, cư ờ ng đ ộ ph ả n x ạ , xung ph ả n h ồ i, V ớ i s ự xu ấ t hi ệ n c ủ a d ữ li ệ u đám mây đi ể m 3D, th ế gi ớ i th ự c đư ợ c th ể hi ệ n m ộ t cách đ ầ y đ ủ tr ự c quan v ớ i đúng t ỷ l ệ Hơn n ữ a, kh ố i lư ợ ng d ữ li ệ u đám mây đi ể m 3D đư ợ c thu th ậ p ngày càng nhi ề u đã t ạ o đi ề u ki ệ n thu ậ n l ợ i cung c ấ p ngu ồ n thông tin đa d ạ ng, đ ầ y đ ủ cho phân lo ạ i và xây d ự ng các đ ố i tư ợ ng n ộ i dung c ủ a mô hình 3D thành ph ố ph ụ c v ụ các ứ ng d ụ ng quy ho ạ ch, qu ả n lý môi trư ờ ng đô th ị , không gian, c ả nh quan, Tuy nhiên, v ớ i kh ố i lư ợ ng d ữ li ệ u l ớ n, vi ệ c phân lo ạ i d ữ li ệ u đám mây đi ể m hi ệ n nay h ầ u h ế t d ự a trên các công c ụ c ủ a ph ầ n m ề m thương m ạ i đi kèm c ủ a các hãng s ả n xu ấ t thi ế t b ị thu th ậ p d ữ li ệ u mà chưa có nhi ề u nghiên c ứ u xây d ự ng chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m Hơn n ữ a, vi ệ c s ử d ụ ng các ph ầ n m ề m thương m ạ i đòi h ỏ i ph ả i chi phí mua b ả n quy ề n l ớ n, các t ham s ố và thu ậ t toán tính toán đư ợ c mã hóa làm cho ngư ờ i dùng không th ể can thi ệ p đ ể c ả i thi ệ n đ ộ chính xác c ủ a s ả n ph ẩ m ( Lê, 2023) Chính vì t h ế , vi ệ c thi ế t k ế và xây d ự ng chương trình máy tính ph ụ c v ụ công tác phân lo ạ i d ữ li ệ u đám mây đi ể m có ý nghĩa kh oa khoa h ọ c và th ự c ti ễ n cao 2 Thi ế t k ế t ổ ng th ể chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m 2 1 Phương pháp phân lo ạ i d ữ li ệ u đám mây đi ể m D ữ li ệ u đám mây đi ể m LiDar đư ợ c thu nh ậ n đư ợ c v ớ i b ố n d ả i màu: đ ỏ - xanh l ụ c - xanh lam - h ồ ng ngo ạ i g ầ n D ự a trê n các đ ặ c đi ể m c ủ a đám mây đi ể m, nhóm nghiên c ứ u đã xây d ự ng quy trình chi ti ế t các bư ớ c đ ể phân lo ạ i t ự đ ộ ng d ữ li ệ u đám mây đi ể m thành các l ớ p d ữ li ệ u ch ứ a các đ ố i tư ợ ng đ ị a lý khác nhau bao g ồ m: l ớ p đi ể m m ặ t đ ấ t, l ớ p đi ể m giao thông, l ớ p đi ể m th ự c v ậ t, l ớ p đi ể m nhà và các l ớ p đi ể m các đ ố i tư ợ ng khác Đám mây đi ể m sau khi phân lo ạ i s ẽ là d ữ li ệ u đ ầ u vào đ ể thành l ậ p mô hình 3D thành ph ố Quy trình chi ti ế t bao g ồ m quá trình x ử lý v ớ i các thu ậ t toán l ọ c d ữ li ệ u đám mây đi ể m thành các l ớ p đ ố i tư ợ ng đ ị a lý k hác nhau Vi ệ c phân lo ạ i d ữ li ệ u đám mây đi ể m này d ự a trên ngư ỡ ng phân lo ạ i đư ợ c mô t ả trong H ình 1 M ứ c ngư ỡ ng đư ợ c phát tri ể n d ự a trên đ ặ c đi ể m t ự nhiên c ủ a các l ớ p đ ố i tư ợ ng trong đám mây đi ể m cũng như cư ờ ng đ ộ ph ả n x ạ c ủ a các đ ố i tư ợ ng đ ị a lý đư ợ c khuy ế n cáo t ừ hãng s ả n xu ấ t thi ế t b ị thu nh ậ n d ữ li ệ u ( B ả ng 1) Có b ố n đ ặ c đi ể m đư ợ c s ử d ụ ng đ ể phát tri ể n m ứ c ngư ỡ ng đó là: cư ờ ng đ ộ , ch ỉ s ố th ự c v ậ t (NDVI), chi ề u cao và hình h ọ c (Bui và nnk , 2021; Lê, 2023) B ả ng 1 Ph ạ m vi cư ờ ng đ ộ c ủ a các đám mây đi ể m CityMapper cho các đ ố i tư ợ ng khác nhau TT Đ ố i tư ợ ng Kho ả ng cư ờ ng đ ộ 1 Đư ờ ng nh ự a 2100 ÷ 5400 2 Bê tông 9000 ÷ 12500 3 Mái ngói 7300 ÷ 9700 4 M ặ t đ ấ t 7500 ÷ 13600 4 Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 B ả ng 1 cho th ấ y r ằ ng đư ờ ng nh ự a có th ể đư ợ c l ọ c ra kh ỏ i các v ậ t th ể m ặ t đ ấ t khác theo giá tr ị cư ờ ng đ ộ Vì n ề n đ ấ t b ằ ng ph ẳ ng trong khu v ự c g ồ m có đ ư ờ ng nh ự a, bê tông, ngói, đ ấ t ngõ, đ ấ t Các bư ớ c tri ể n khai phương pháp phân lo ạ i d ữ li ệ u đám mây đi ể m cho xây d ự ng chương trình t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m đư ợ c quy trình hóa theo th ứ t ự tri ể n khai thu ậ t toán bao g ồ m: (1) L ọ c b ỏ đi ể m nhi ễ u; (2) Phân lo ạ i đi ể m m ặ t đ ấ t; (3) Phân lo ạ i giao thông; (4) Phân lo ạ i th ự c v ậ t; (5) Phân lo ạ i đi ể m mái nhà (Dương và nnk , 2022) 2 2 Sơ đ ồ thi ế t k ế h ệ th ố ng c hương trình máy tính phân lo ạ i d ữ li ệ u đám mây đi ể m Chương trình phân lo ạ i d ữ li ệ u đư ợ c thi ế t k ế đ ể làm vi ệ c v ớ i d ữ li ệ u đám mây đi ể m và d ữ li ệ u s ố hóa (đi ể m, đư ờ ng, vùng) Các đ ị nh d ạ ng d ữ li ệ u này s ẽ hi ể n th ị trong môi trư ờ ng 2D trên c ử a s ố chính c ủ a chương trình v ớ i các công c ụ h ỗ tr ợ tương tác đ ể ngư ờ i dùng có th ể thay đ ổ i các góc nhìn khác nhau c ủ a các đ ố i tư ợ ng, biên t ậ p và ch ỉ nh s ử a các d ữ li ệ u tr ự c ti ế p trên chương trình đã xây d ự ng Chương trình đư ợ c thi ế t k ế theo sơ đ ồ thi ế t k ế h ệ th ố ng v ớ i các nhóm ch ứ c năng và các công c ụ như H ình 2, trong đó t ậ p trung vào vi ệ c thi ế t k ế nhóm ch ứ c năng phân lo ạ i d ữ li ệ u đám mây đi ể m thành các l ớ p n ộ i dung như đã đ ề c ậ p trong m ụ c 2 1 3 Xây d ự ng chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m 3 1 Thi ế t k ế giao di ệ n chương trình Chương trình đư ợ c thi ế t k ế trên n ề n t ả ng ngôn ng ữ l ậ p trình VisualBasic Net v ớ i giao di ệ n đơn gi ả n d ễ s ử d ụ ng, bao g ồ m 4 nhóm: (1) Menu bao g ồ m 6 m ụ c ch ứ c năng c hính: t ệ p, đ ị nh d ạ ng, v ẽ , góc nhìn, công c ụ và tr ợ giúp; (2) Các công c ụ ch ứ c năng: t ạ o m ớ i, m ở t ệ p, lưu, các công c ụ v ẽ đi ể m, đư ờ ng, hình tròn, ghi chú…, các công c ụ thay đ ổ i góc nhìn, các công c ụ phân lo ạ i đám mây đi ể m, công c ụ l ọ c, hi ể n th ị và phân lo ạ i l ạ i; (3) Màn hình hi ể n th ị : cho phép v ẽ các đ ố i tư ợ ng đ ồ h ọ a cơ b ả n như d ạ ng đi ể m, đư ờ ng, vùng và hi ể n th ị d ữ li ệ u Hình 1 Quy trình phân lo ạ i các đ ố i tư ợ ng t ừ d ữ li ệ u đám mây đi ể m (Bui và nnk , 2021; Lê, 2023) Hình 2 Sơ đ ồ thi ế t k ế h ệ th ố ng chương trình phân lo ạ i đám mây đi ể m (Lê 2023) Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 5 đám mây đi ể m trên giao di ệ n c ủ a chương trình; (4) Thanh tr ạ ng thái phía dư ớ i, hi ể n th ị thông tin v ề t ọ a đ ộ c ủ a con tr ỏ ( H ình 3) 3 2 Thi ế t k ế ch ứ c năng c ủ a chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m Chương trình đư ợ c thi ế t k ế v ớ i 7 nhóm ch ứ c năng bao g ồ m: (1) Nhóm ch ứ c năng qu ả n lý t ệ p; (2) Nhóm ch ứ c năng hi ể n th ị cho phép tùy ch ỉ nh đ ị nh d ạ ng hi ể n th ị c ủ a các đ ố i tư ợ ng đư ợ c s ố hóa b ở i ph ầ n m ề m; (3) Nhóm ch ứ c năng s ố hóa; (4) Nhóm ch ứ c năng đi ề u ch ỉ nh góc nhìn; (5) Nhóm các công c ụ b ổ tr ợ như đo kho ả ng cách, công c ụ đo di ệ n tích, công c ụ tra c ứ u thông tin đám mây đi ể m; (6) Nhóm công c ụ tr ợ giúp gi ớ i thi ệ u v ề chương trình và 1 s ố thông tin hư ớ ng d ẫ n, đ ồ ng th ờ i có th ể l ự a ch ọ n chuy ể n đ ổ i ngôn ng ữ c ủ a chương trình qua l ạ i gi ữ a ti ế ng Vi ệ t và ti ế ng Anh; (7) Nhóm ch ứ c năng phân lo ạ i d ữ li ệ u đám mây đi ể m bao g ồ m các công c ụ th ự c hi ệ n các tính năng phân lo ạ i đám mây đi ể m đư ợ c thi ế t k ế và xây d ự ng theo logic các bư ớ c đã đ ề xu ấ t trong m ụ c 2 1 bao g ồ m các c ông c ụ : lo ạ i b ỏ đi ể m nhi ễ u; phân lo ạ i đi ể m m ặ t đ ấ t; phân lo ạ i đi ể m đư ờ ng giao thông; phân lo ạ i đi ể m th ự c v ậ t; phân lo ạ i nhà; tái phân lo ạ i; l ọ c hi ể n th ị theo l ớ p 3 3 L ậ p trình xây d ự ng chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m 3 3 1 Khai báo c ử a s ổ hi ể n th ị d ữ li ệ u Chương trình đư ợ c thi ế t k ế đ ể phân đ ị nh rõ gi ữ a h ệ t ọ a đ ộ th ự c - r và h ệ t ọ a đ ộ màn hình - V H ệ t ọ a đ ộ th ự c lưu tr ữ thông tin t ọ a đ ộ th ự c c ủ a m ỗ i đ ố i tư ợ ng trong khi h ệ t ọ a đ ộ màn hình lưu tr ữ giá tr ị t ọ a đ ộ hi ể n th ị c ủ a các đ ố i tư ợ ng trên c ử a s ổ hi ể n th ị d ữ li ệ u Do đó, v ớ i b ấ t k ỳ đ ố i tư ợ ng nào có trong d ữ li ệ u đám mây đi ể m đ ầ u vào, s ẽ đư ợ c lưu tr ữ thông tin dư ớ i d ạ ng c ả 2 h ệ t ọ a đ ộ Vì v ậ y , chương trình đã đư ợ c xây d ự ng 6 hàm đ ể chuy ể n đ ổ i t ừ h ệ t ọ a đ ộ th ự c sang h ệ t ọ a đ ộ màn hình cho giá tr ị X,Y và h ệ s ố t ỷ l ệ m ''''Cac tham so anh xa Dim vXo, vYo As Integer Dim rXo, rYo As Double Dim m As Double Dim rXmin, rYmin, rZmin As Double Dim rXmax, rYmax, rZmax As Double Dim rLasXmin, rLasYmin As Double Dim rLasXmax, rLasYmax As Double ''''Tu man hinh sang thuc Private Function rX(ByVal vX As Double) As Integer Return (rXo + (vX - vXo) / m) End Function Private Function rY(ByVal vY As Double) As Integer Return (rYo - (vY - vYo) / m) End Function Private Function rS(ByVal vS As Double) As Integer Return (vS / m) Hình 3 Giao di ệ n chương trình ( Lê, 2023) 6 Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 End Function ''''Tu thuc sang man hinh Private Function vX(ByVal rX As Double) As Integer Return (vXo + m * (rX - rXo)) End Function Private Function vY(ByVal rY As Double) As Integer Return (vYo - m * (rY - rYo)) End Function Private Function vS(ByVal rS As Double) As Integer Return (m * rS) End Function Trong 6 hàm trên, có rX, rY, rS, vS là các bi ế n s ố , ứ ng v ớ i t ọ a đ ộ th ự c và t ọ a đ ộ màn hình c ủ a m ỗ i đi ể m ; rXo, rYo là h ằ ng s ố , m ặ c đ ị nh ban đ ầ u có giá tr ị là 0 ; vXo, vYo, m cũng là h ằ ng s ố , đư ợ c xác đ ị nh khi m ở c ử a s ổ chương trình Mã ngu ồ n l ệ nh m ở c ử a s ổ chương trình và xác đ ị nh các h ằ ng s ố vXo, vYo, m đư ợ c xác đ ị nh như sau: Private Sub FrmView_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase Load g = PicView CreateGraphics m = 1 vXo = PicView Width / 2 vYo = PicView Height / 2 End Sub 3 3 2 Khai báo khuôn d ạ ng d ữ li ệ u Đ ố i v ớ i l ớ p d ữ li ệ u đư ờ ng, polyline, hình tròn và ghi chú chương trình ch ỉ lưu tr ữ dư ớ i d ạ ng 2D do chương trình không thi ế t k ế đ ể hi ể n th ị trong môi trư ờ ng 3D V ớ i m ỗ i d ạ ng đ ố i tư ợ ng, ti ế n hành khai báo m ộ t m ả ng d ữ li ệ u 2D, bao g ồ m các giá tr ị v ề t ọ a đ ộ v ị trí dư ớ i d ạ ng s ố th ự c, đ ồ ng th ờ i v ớ i m ộ t giá tr ị s ố lư ợ ng d ạ ng s ố nguyên tương ứ ng Đư ờ ng tròn khai báo thêm giá tr ị bán kính, còn ghi chú khai báo thêm giá tr ị n ộ i dung ghi chú dư ớ i d ạ ng string Structure Line_2D Dim rX1 As Double Dim rY1 As Double Dim rX2 As Double Dim rY2 As Double End Structure Dim DS_Lines() As Line_2D, LinesCount As Integer Structure Circle_2D Dim rX1 As Double Dim rY1 As Double Dim rR1 As Double End St ructure Dim DS_Circles() As Circle_2D, CirclesCount As Integer Đ ố i v ớ i đ ị nh d ạ ng d ữ li ệ u polyline, ti ế n hành khai báo m ả ng polyline bao g ồ m m ả ng các vertex và s ố lư ợ ng vertex, cùng v ớ i s ố lư ợ ng polyline M ỗ i v ertex s ẽ ch ứ a thông s ố v ề t ọ a đ ộ X , Y t ừ ng vertex Structure Polyline_2D Dim DS_Vertexs() As Point_3D, VertexsCount As Integer End Structure Dim DS_Polylines() As Polyline_2D, PolylinesCount As Integer Ngoài ra, đ ể ph ụ c v ụ cho thu ậ t toán phân lo ạ i đi ể m m ặ t đ ấ t, chương trình c ầ n khai báo thêm m ả ng ô lư ớ i (grid) và m ả ng tam giác ( triangle ) M ả ng g rid bên trong bao g ồ m các m ả ng con đ ể lưu tr ữ các đi ể m trong m ỗ i ô lư ớ i cùng v ớ i s ố lư ợ ng g rid M ả ng triangle lưu tr ữ dư ớ i d ạ ng ba đ ỉ nh c ủ a tam giác và s ố lư ợ ng tam giác Structure Grid_2D Dim DS_Vertexs() As Point_3D, VertexsCount As Integer End Structure Dim DS_Grids() As Grid_2D, GridsCount As Integer Structure Triang le Dim iD1 As Integer Dim iD2 As Integer Dim iD3 As Integer End Structure Dim DS_Triangles() As Triangle, TrianglesCount As Integer Đ ố i v ớ i đ ị nh d ạ ng d ữ li ệ u đám mây đi ể m, do d ữ li ệ u LiDAR ngoài thông tin t ọ a đ ộ X, Y, Z còn bao g ồ m thông tin v ề cư ờ ng đ ộ tia quét, l ớ p phân lo ạ i, thông tin v ề b ố n d ả i màu : đ ỏ , l ụ c, l am và c ậ n h ồ ng ngo ạ i, nên c ấ u trúc đ ị nh d ạ ng đám mây đi ể m đư ợ c khai báo theo mã ngu ồ n l ệ nh khai báo đ ị nh d ạ ng d ữ li ệ u cho đám mây đi ể m như sau: Structure LasPoin t_3D Dim rX1 As Double Dim rY1 As Double Dim rZ1 As Double Dim classification As Integer Dim Intensity As Integer Dim Red As Integer Dim Green As Integer Dim Blue As Integer Dim NIR As Integer End Structure Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 7 3 3 3 Khai báo đ ọ c d ữ li ệ u Chương trình đư ợ c xây d ự ng đ ể đ ọ c đư ợ c d ữ li ệ u đám mây đi ể m D ữ li ệ u đám mây đi ể m c ầ n đư ợ c lưu tr ữ dư ớ i d ạ ng t ệ p văn b ả n, m ỗ i đi ể m tươ ng ứ ng v ớ i m ộ t dòng, bao g ồ m các thông tin v ề t ọ a đ ộ X, Y, Z, cư ờ ng đ ộ , thông tin màu s ắ c bao g ồ m giá tr ị đ ỏ , l ụ c, l am, c ậ n h ồ ng ngo ạ i và thông tin v ề phân l ớ p M ỗ i thông tin s ẽ đư ợ c ngăn cách b ằ ng ký hi ệ u ngăn cách – delimeter thư ờ ng là d ấ u cách tr ố ng ho ặ c d ấ u ph ẩ y Do đó , c ầ n xây d ự ng m ộ t hàm giúp nh ậ n di ệ n ký hi ệ u ngăn cách này và lưu thông tin c ủ a t ừ ng đi ể m gi ữ a m ỗ i ký hi ệ u ngăn cách Đ ặ t tên hàm này là SplitChain (tách chu ỗ i) Function SplitChain(ByVal Text As String, ByVal Delimeter As String, ByRef Words() As String) As Integer Dim n As Integer, i As Integer i = 0 Do i = i + 1 Text = Trim(Text) n = InStr(Text, Delimeter) ReDim Preserve Words(i) If n > 0 Then Words(i) = Mid(Text, 1, n - 1) Text = Mid(Text, n + 1) Else Words(i) = Text Return i Exit Do End If Loop End Function Nguyên lý hàm tách chu ỗ i này như sau: s ử d ụ ng l ệ nh l ặ p Do - Loop, v ớ i bi ế n i ch ạ y Đ ầ u tiên th ự c hi ệ n c ắ t b ỏ các kho ả ng tr ố ng th ừ a hai đ ầ u m ỗ i dòng v ớ i hàm Trim(Text) Ti ế p đ ế n xác đ ị nh giá tr ị s ố lư ợ ng ch ữ - n cho đ ế n khi g ặ p ký t ự ngăn cách – delimeter b ằ ng hàm InStr V ớ i đi ề u ki ệ n n > 0, hàm s ẽ l ầ n lư ợ t lưu các giá tr ị gi ữ a các ký t ự ngăn cách vào m ả ng Word(i) b ằ ng hàm Mid(Text, 1, n - 1) Như v ậ y các thông s ố v ề X, Y, Z, cư ờ ng đ ộ , thông tin màu s ắ c s ẽ đư ợ c l ầ n lư ợ t lưu vào m ả ng Word(i) 3 3 4 Khai báo hi ể n th ị d ữ li ệ u D ữ li ệ u đư ợ c hi ể n th ị dư ớ i d ạ ng 2D, theo góc nhìn th ẳ ng đ ứ ng t ừ trên xu ố ng V ớ i m ỗ i đ ố i tư ợ ng đư ợ c v ẽ , đ ề u có l ệ nh Graphic draw đ ể v ẽ các đ ố i tư ợ ng v ớ i màu s ắ c m ặ c đ ị nh là tr ắ ng trên n ề n đen V ớ i d ữ li ệ u đám mây đi ể m * las, sau khi đư ợ c t ả i vào chương trìn h, d ữ li ệ u s ẽ đư ợ c x ử lý đ ể t ự đ ộ ng đưa toàn b ộ d ữ li ệ u v ề màn hình hi ể n th ị (Hình 4) Hình 4 Giao di ệ n hi ể n th ị d ữ li ệ u đám mây đi ể m ( Lê, 2023) 8 Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 4 K ế t qu ả và th ả o lu ậ n 4 1 K ế t qu ả xây d ự ng chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m V ớ i m ỗ i modul công c ụ ch ứ c năng sau khi xây d ự ng s ẽ đư ợ c ti ế n hành ch ạ y th ử v ớ i d ữ li ệ u đám mây đi ể m có s ố lư ợ ng t ừ nh ỏ đ ế n l ớ n đ ể ki ể m tra, n ế u có phát sinh l ỗ i thì s ẽ ti ế n hành ki ể m tra l ỗ i và th ự c hi ệ n các ch ỉ nh s ử a c ầ n thi ế t M ỗ i modul công c ụ s ẽ đư ợ c hoàn thi ệ n sau khi ch ạ y th ử d ữ li ệ u ở nhi ề u khu v ự c khác nhau và lo ạ i b ỏ h ế t cá c trư ờ ng h ợ p phát sinh l ỗ i Các câu l ệ nh cũng đư ợ c biên t ậ p ra các ch ứ c năng riêng và b ố trí m ộ t cách g ọ n gàng nh ấ t, giúp tăng cư ờ ng t ố c đ ộ x ử lý d ữ li ệ u, tránh các bư ớ c ch ạ y đư ờ ng vòng, lãng phí th ờ i gian và tài nguyên b ộ nh ớ K ế t qu ả xây d ự ng chương trìn h có th ể hi ể n th ị và x ử lý phân lo ạ i d ữ li ệ u đám mây đi ể m đ ể tách d ữ li ệ u thành 8 l ớ p d ữ li ệ u đ ị a lý bao g ồ m: m ặ t nư ớ c, m ặ t đ ấ t, giao thông, th ự c v ậ t th ấ p, th ự c v ậ t trung bình, th ự c v ậ t cao, nhà c ử a và các đ ố i tư ợ ng khác 4 2 Ứ ng d ụ ng chương trình trong p hân lo ạ i d ữ li ệ u đám mây đi ể m Trên cơ s ở chương trình đã xây d ự ng nhóm nghiên c ứ u ti ế n hành th ự c nghi ệ m phân lo ạ i d ữ li ệ u đám mây đi ể m cho khu v ự c phư ờ ng Thư ợ ng Lý, thành ph ố H ả i Phòng ( H ình 5) Đám mây đi ể m đư ợ c s ử d ụ ng công c ụ l ọ c nhi ễ u đ ể l ọ c b ỏ các đi ể m th ấ p, k ế t qu ả thu đư ợ c nh ữ ng khu v ự c không có d ữ li ệ u và đưa v ề l ớ p th ủ y văn T i ế p theo , ti ế n hành l ự a ch ọ n công c ụ l ọ c m ặ t đ ấ t và thi ế t l ậ p các tham s ố cho thu ậ t toán l ọ c m ặ t đ ấ t bao g ồ m kích thư ớ c c ủ a ô lư ớ i; kho ả ng cách và góc l ặ p l ầ n 1; đ ộ bi ế n thiên c ủ a d ữ li ệ u; kho ả ng cách và góc l ặ p l ầ n 2 ( H ình 6) Khi đó , chương trình s ẽ căn c ứ vào kích thư ớ c c ủ a ô lư ớ i đư ợ c l ự a ch ọ n đ ể xác đ ị nh các đi ể m h ạ t gi ố ng là các đi ể m th ấ p nh ấ t trong các ô lư ớ i và ti ế n hành tam giác hóa b ề m ặ t đ ể t ạ o mô hình TIN D ự a trên b ề m ặ t TIN này chương trình ti ế n hành áp d ụ ng các đi ề u ki ệ n v ề kho ả ng cách và góc l ặ p đ ể xác đ ị nh đi ể m m ặ t đ ấ t, c ụ th ể đi ể m đư ợ c xét là đi ể m n ằ m trong tam giác đ ồ ng th ờ i th ỏ a mãn đi ề u ki ệ n nh ỏ hơn giá tr ị tham s ố c ủ a kho ả ng cách và góc l ặ p mà ngư ờ i dùng đã thi ế t l ậ p Khi đó , đi ể m này s ẽ đư ợ c tính là đi ể m m ặ t đ ấ t, chương trình s ẽ xóa b ỏ tam giác ch ứ a nó và s ử d ụ ng đi ể m này đ ể l ậ p 3 tam giác gi ữ a đi ể m đó và 3 c ạ nh c ủ a tam giác ban đ ầ u Sau khi vòng l ặ p 1 k ế t thúc chương trình s ẽ ti ế n hành tương t ự cho vòng l ặ p th ứ 2 v ớ i các tham s ố đã đư ợ c ngư ờ i dùng xác đ ị nh v ớ i đi ể m kh ở i tính ban đ ầ u là các đi ể m m ặ t đ ấ t c ủ a vòng l ặ p th ứ nh ấ t v ớ i giá tr ị góc l ặ p l ớ n hơn và kho ả ng cách l ặ p nh ỏ hơn l ầ n 1 đ ể xác đ ị nh các đi ể m m ặ t đ ấ t ở nh ữ ng khu v ự c đ ị a hình có đ ộ Hình 5 V ị trí khu v ự c phư ờ ng Thư ợ ng Lý, thành ph ố H ả i Phòng Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 9 d ố c l ớ n cũng như tránh cho bư ớ c nh ả y l ớ n vào b ề m ặ t c ủ a các đ ố i tư ợ ng khác (Dương và nnk , 2022) K ế t qu ả cu ố i cùng s ẽ tách đư ợ c l ớ p đi ể m m ặ t đ ấ t ra kh ỏ i d ữ li ệ u đám mây đi ể m g ố c ban đ ầ u ( H ình 7) Sau khi phân lo ạ i xong các đi ể m m ặ t đ ấ t, ti ế n hành phân lo ạ i l ớ p đư ờ ng giao thông d ự a trên d ữ li ệ u các đi ể m m ặ t đ ấ t đã đư ợ c tách ra t ừ quá trình l ọ c m ặ t đ ấ t Chương trình s ẽ d ự a trên tham s ố v ề giá tr ị cư ờ ng đ ộ mà ngư ờ i d ùng nh ậ p vào ( H ình 8) đ ể l ọ c ra các đi ể m đư ờ ng giao thông K ế t qu ả c ủ a quá trình này s ẽ tách đư ợ c l ớ p m ặ t đ ấ t và l ớ p đư ờ ng giao thông ( H ình 9) Sau khi l ọ c các đ ố i tư ợ ng giao thông, ti ế n hành l ọ c các đ ố i tư ợ ng th ự c v ậ t Th ự c v ậ t đư ợ c l ọ c ra thành 3 l ớ p (th ấ p, trung bình và cao) d ự a trên giá tr ị NDVI k ế t h ợ p v ớ i đ ộ cao c ủ a đi ể m so v ớ i b ề m ặ t TIN đư ợ c t ạ o ra t ừ k ế t qu ả phân lo ạ i đi ể m m ặ t đ ấ t K ế t qu ả c ủ a quá trình này s ẽ thu đư ợ c 4 l ớ p th ự c v ậ t th ấ p, th ự c v ậ t trung bình, th ự c v ậ t cao và các đ ố i tư ợ ng khác Cu ố i cùng chương trình ti ế n hành tri ể n khai thu ậ t toán đ ể phân lo ạ i l ớ p nhà trên cơ s ở d ữ li ệ u các đ ố i tư ợ ng khác v ừ a đư ợ c tách ra t ừ quá trình ph ân lo ạ i th ự c v ậ t d ự a vào đ ặ c đi ể m d ữ li ệ u lúc này đó là các đi ể m n ằ m trên m ộ t m ặ t ph ẳ ng đ ả m b ả o th ỏ a mãn góc d ố c so v ớ i b ề m ặ t đ ấ t m ộ t giá tr ị đư ợ c xác đ ị nh c ủ a ngư ờ i dùng s ẽ đư ợ c đưa v ề l ớ p nhà K ế t qu ả s ẽ thu nh ậ n đư ợ c l ớ p nhà ( H ình 10) và các đ ố i tư ợ ng đ ị a lý còn l ạ i s ẽ đư ợ c đưa vào l ớ p các đ ố i tư ợ ng khác Hình 6 Xác đ ị nh các tham s ố cho công c ụ l ọ c đi ể m m ặ t đ ấ t Hình 7 K ế t qu ả phân lo ạ i l ớ p m ặ t đ ấ t (Dương và nnk , 2022) Hình 8 Xác đ ị nh tham s ố cho l ọ c đư ờ ng giao thông Hình 9 L ớ p giao thông đư ợ c tách ra t ừ l ớ p đi ể m m ặ t đ ấ t d ự a trên giá tr ị cư ờ ng đ ộ (Dương và nkk , 2022) Hình 10 K ế t qu ả phân lo ạ i l ớ p đi ể m mái nhà (Dương và nkk , 2022) 10 Bù i Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 5 K ế t lu ậ n Bài báo đã ti ế n hành xây d ự ng và hi ệ n th ự c hóa các bư ớ c tri ể n khai phân lo ạ i d ữ li ệ u đám mây đi ể m trên cơ s ở thu ậ t toán và ngư ỡ ng phân lo ạ i đư ợ c đ ề xu ấ t b ở i nhóm tác gi ả trong nghiên c ứ u c ủ a (Bùi và nnk , 2021; Lê, 2023) K ế t qu ả xây d ự ng chương trình phân lo ạ i d ữ li ệ u đám mây đi ể m c ủ a bài báo cho th ấ y chúng ta hoàn toàn có th ể ch ủ đ ộ ng công tác thi ế t k ế và xây d ự ng các chương trình máy tính h ỗ tr ợ cho phân lo ạ i d ữ li ệ u đám mây đi ể m đ ộ c l ậ p mà không quá ph ụ thu ộ c vào các ph ầ n m ề m thương m ạ i như hi ệ n nay Ch ương trình phân lo ạ i d ữ li ệ u đám mây đi ể m đã xây d ự ng đ ả m b ả o đ ọ c đư ợ c d ữ li ệ u đám mây đi ể m có ch ứ a thông tin 4 kênh màu bao g ồ m đ ỏ , l ụ c, lam và c ậ n h ồ ng ngo ạ i và có th ể tri ể n khai đ ầ y đ ủ các thu ậ t toán phân lo ạ i d ữ li ệ u đám mây đi ể m theo quy trình các bư ớ c đã đ ề xu ấ t và có th ể phân lo ạ i d ữ li ệ u đám mây đi ể m thành các đ ố i tư ợ ng đ ị a lý riêng bi ệ t bao g ồ m: th ủ y văn, m ặ t đ ấ t, giao thông, th ự c v ậ t th ấ p, th ự c v ậ t trung bình, th ự c v ậ t cao, nhà và các đ ố i tư ợ ng khác Chương trình có giao di ệ n đơn gi ả n, d ễ nhìn, d ễ s ử d ụ ng v ớ i 2 ngôn ng ữ t i ế ng Vi ệ t và t i ế ng Anh Đ ặ c bi ệ t, chương trình có th ể l ự a ch ọ n các tham s ố cho t ừ ng đ ố i tư ợ ng trong quá trình phân lo ạ i đ ể phù h ợ p v ớ i t ừ ng nhóm đ ố i tư ợ ng đ ị a lý trong nh ữ ng đi ề u ki ệ n đ ị a lý khác nhau giúp cho k ế t qu ả phân lo ạ i đ ả m b ả o sát v ớ i th ự c t ế nh ấ t V ớ i chương trình máy tính đã xây d ự ng, ngư ờ i dùng có th ể đ ọ c, hi ể n th ị và ti ế n hành phân lo ạ i đám mây đi ể m ra nhi ề u các phân l ớ p khác nhau m ộ t cách t ự đ ộ ng nh ằ m cung c ấ p d ữ li ệ u đ ầ u vào cho xây d ự ng các mô hình 3D thành ph ố Ngo ài ra, chương trình cũng cho phép s ố hóa các đ ố i tư ợ ng đ ồ h ọ a d ạ ng đi ể m, đư ờ ng, vùng h ỗ tr ợ công tác đánh d ấ u các đ ố i tư ợ ng khi c ầ n thi ế t, đây cũng là m ộ t s ự k ế t h ợ p c ầ n thi ế t mà ít các ph ầ n m ề m thương m ạ i hi ệ n nay quan tâm xây d ự ng Đóng góp c ủ a tác gi ả B ùi Ng ọ c Quý - lên ý tư ở ng thi ế t k ế , vi ế t ph ầ n phương pháp và hoàn thi ệ n b ả n th ả o; Lê Đình Hi ể n - l ậ p trình xây d ự ng chương trình; Dương Anh Quân - đ ánh giá các k ế t qu ả th ự c nghi ệ m và biên t ậ p b ả n th ả o; Ph ạ m Văn Hi ệ p - ch ạ y th ử nghi ệ m và ki ể m tra d ữ li ệ u sa u phân lo ạ i; Vũ Sơn Tùng - l ọ c d ữ li ệ u, b ắ t l ỗ i chương trình; Tr ầ n Th ị Thu Trang – thu th ậ p d ữ li ệ u đám mây đi ể m th ự c nghi ệ m, biên t ậ p và rà soát b ả n th ả o Tài li ệ u tham kh ả o Alexandre Boulch (2020) ConvPoint: Continuous Convolutions for Point Cloud Proce ssing Computers and Graphics , 88, 24 - 34 doi org/10 1016/j cag 2020 02 005 Arief, H A A , Indahl, U G , Strand, G H , & Tveite, H (2019) Addressing overfitt ing on point cloud classification using Atrous XCRF ISPRS Journal of Photogrammetry and Remote Sensing , 155 , 90 - 101 doi org/10 1016/j isprsjprs 2019 07 002 Bui, N Q , Le, D H , Duong, A Q , Nguyen Q L (2021) Rule - based classification of Airborne Laser Scanner data for automatic extraction of 3D objects in the urban area Journa l of the Polish Mineral Engineering Society , 48(2), 103 - 114 DOI: doi org/10 29227/IM - 2021 - 02 - 09 Bui, N Q , Le, Di H , Nguyen, Q L , Tong, S S , Duong, A Q , Pham , V H , Phan, T H , Pham, T L (2020) Method of defining the parameters for UAV point cloud classification algorithm Journal of the Polish Mineral Engineering Society , 46(1) 49 - 56 DOI: doi org/1 0 29227/IM - 2020 - 02 - 08 Chenglu Wen, Xiaotian Sun, Jonathan Li, Cheng Wang, Yan Guo, Ayman Habib (2019) A Deep Learning Framework for Road Marking Extraction, Classification and Completion from Mobile Laser Scanning Point Clouds ISPRS Journal of Photogrammetry and Remote Sensing, 147, 178 - 92 doi org/10 1016/j isprsjprs 2018 10 007 Dương, A Q , Lê, Đ H , Ph ạ m, V H , Nguy ễ n, Q C , Bùi, N Q (2022) Xây d ự ng quy trình thu nh ậ n, x ử lý và phân lo ạ i d ữ li ệ u đám mây đi ể m LiDAR ph ụ c v ụ thành l ậ p mô hình 3D thành ph ố T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t, 63(4), 1 - 12 doi:10 46326/JMES 2022 63(4) 01 H eidar Rastiveis, Alireza Shams, Wayne A Sarasua, Jonathan Li (2020) Automated Extraction of Lane Markings from Mobile LiDAR Point Clouds Based on Fuzzy Inference ISPRS Journal of Photogrammetry and Remote Bùi Ng ọ c Quý và nnk /T ạ p chí Khoa h ọ c K ỹ thu ậ t M ỏ - Đ ị a ch ấ t 64 ( 4 ), 1 - 11 9 Sensing, 160, 149 - 66 doi org/10 1016/j isprsjprs 2019 12 009 Lê, Đ H (2019) Nghiên c ứ u quy trình x ử lý d ữ li ệ u thu nh ậ n t ừ h ệ th ố ng bay ch ụ p ả nh & quét Lidar Leica City Mapper trong thành l ậ p mô hình C yber City Lu ậ n văn Th ạ c sĩ K ỹ thu ậ t, Trư ờ ng Đ ạ i h ọ c M ỏ - Đ ị a ch ấ t Hà N ộ i, 82 trang (Vi ệ t Nam) Lê, Đ H (2023) Nghiên c ứ u t ố i ưu hóa thu ậ t toán t ự đ ộ ng phân lo ạ i d ữ li ệ u đám mây đi ể m h ỗ tr ợ xây d ự ng mô hình 3D thành ph ố thông minh Lu ậ n án Ti ế n sĩ K ỹ thu ậ t, Trư ờ ng Đ ạ i h ọ c M ỏ - Đ ị a ch ấ t Hà N ộ i, 135 trang (Vi ệ t Nam) Markus Gerke, Jing Xiao (2014) Fusion of Airborne Laserscanning Point Clouds and Images for Supervised and Unsupervised Scene Classification ISPRS Journal of Photogrammetry and Remote Se nsing , 87, 78 - 92 doi org/10 1016/j isprsjprs 2013 10 011 Qiang Lu, Chao Chen, Wenjun Xie, Yuetong Luo (2020) “PointNGCNN: Deep Convolutional Networks on 3D Point Clouds with Neighborhood Graph Filters Computers and Graphics , 86, 42 – 51 doi org/10 1016/j c ag 2019 11 005 Ronggang Huang, Bisheng Yang, Fuxun Liang, Wenxia Dai, Jianping Li, Mao Tian, Wenxue Xu (2018) A Top - down Strategy for Buildings Extraction from Complex Urban Scenes Using Airborne LiDAR Point Clouds Infrared Physics and Technology, 92, 203 - 18 doi org/10 1016/j infrared 2018 05 021 Wuzhao Li, Fu Dong Wang, Gui Song Xia (2020) A Geometry - Attentional Netwo rk for ALS Point Cloud Classification ISPRS Journal of Photogrammetry and Remote Sensing, 164, 26 - 40 doi org/10 1016/j isprsjprs 2020 03 016 Xudong Lai, Yif ei Yuan, Yongxu Li, Mingwei Wang (2019) Full - Waveform LiDAR Point Clouds Classification Based on Wavelet Support Vector Machine and Ensemble Learning Sensors , 19(14) doi org/10 3390/s19143191 Yangbin Lin, Cheng Wang, Dawei Zhai, Wei Li, Jonathan Li (2018) Toward Better Boundary Preserved Supervoxel Segmentation for 3D Point Clouds ISPRS Journal of Photogrammetry and Remote Sensing , 143, 39 - 47 doi org/10 1016/j isprsjprs 2018 05 004 Yi Yang, Hairong Fang, Yuefa Fang, Shijian Shi (2020) Three - Dimensional Point Cloud Data Subtle Feature Extraction Algorithm for Laser Scanning Measurement of Large - Scale Irregular Surface in Reverse Engineering Journal of Measurement , 151, 107 - 220 doi org/10 1016/j measurement 2019 10722 0 Yongguang Yang, Feng Chen, Fei Wu, Deliang Zeng, Yi - mu Ji, Xiao - Yuan Jing (2020) Multi - View Semantic Learning Network for Point Cloud - Based 3D Object Detection Neurocomputing , doi org/10 1016/j n eucom 2019 10 116

Trang 1

Building a program to automatically classify point

cloud data

Quy Ngoc Bui 1,2,*, Hien Dinh Le 3, Hiep Van Pham 1,2, Tung Son Vu 4, Quan Anh Duong 1,2, Trang Thu Thi Tran 1

1 Faculty of Geomatics and Land Administration, Hanoi University of Mining and Geology, Vietnam

2 Research and Development of Geospatial Data Management and Analysis Techniques

(GMA), Hanoi University of Mining and Geology, Vietnam

3 Natural Resources and Environment One Member Co., Ltd, Hanoi, Vietnam

4 GeoPro Ltd, Hanoi, Vietnam

Article history:

Received 1st Apr 2023

Revised 23rd July 2023

Accepted 17th Aug 2023

Along with cartography science and technology development, data acquisition through aeronautical laser scanning systems has been developing This is an essential and detailed data source for database construction, mapping, and city 3D modeling, City 3D modeling requires processing many types of data, at which point cloud data processing and classification play an essential role in creating input data sources for the model However, the processing and classification of point cloud data mainly depend on commercial software with very high costs; moreover, the algorithms and parameters of commercial software are locked That makes it impossible for the user to intervene to improve product accuracy Therefore, building a program to automatically classify point cloud data into different geographical objects helps us master data processing technology for creating 3D models It makes an important contribution to building and developing smart cities The article introduces the step-by-step classification of LiDAR point cloud data and the process of automatically building a program to classify point cloud data based on Visual Studio.Net language The result is a bilingual program automatically classifying point cloud data (Vietnamese - English) The program can read and fully deploy algorithms to process LiDAR point cloud data containing information with four color bands (red, green, blue, and near-infrared) The primary processing is based on proposed classification steps and thresholds for point cloud data classification into eight feature classes, including hydrology, solar land, traffic, low plants, medium plants, high plants, houses, and other objects, to establish 3D city models

Copyright © 2023 Hanoi University of Mining and Geology All rights reserved

Keywords:

3D city model,

LiDAR,

Point cloud,

Program

_

* Corresponding author

E - mail: buingocquy@humg.edu.vn

DOI: 10.46326/JMES.2023.64(4).01

Trang 2

2 Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất Tập 64, Kỳ 4 (2023) 1 - 11

_

* Tác giả liên hệ

E - mail: buingocquy@humg.edu.vn

DOI:10.46326/JM3ES.2023.64(4).01

Xây dựng chương trình tự động phân loại dữ liệu đám mây điểm

Bùi Ngọc Quý 1,2,*, Lê Đình Hiển 3, Phạm Văn Hiệp 1,2, Vũ Sơn Tùng 4, Dương Anh Quân 1,2, Trần Thị Thu Trang 1

1 Khoa Trắc địa - Bản đồ và Quản lý đất đai, Trường Đại học Mỏ - Địa chất, Việt Nam

2 Nhóm nghiên cứu nghiên cứu phát triển công nghệ quản lý và phân tích dữ liệu không gian địa lý, Hà Nội, Việt Nam

3 Công ty TNHH MTV Tài nguyên và Môi trường Việt Nam, Hà Nội, Việt Nam

4 Công ty TNHH GeoPro, Hà Nội, Việt Nam

THÔNG TIN BÀI BÁO TÓM TẮT

Quá trình:

Nhận bài 1/4/2023

Sửa xong 23/7/2023

Chấp nhận đăng 17/8/2023

Cùng với sự phát triển trong lĩnh vực khoa học và công nghệ đo đạc bản

đồ, công tác thu nhận dữ liệu thông qua hệ thống quét laser hàng không

đã có sự phát triển mạnh mẽ Đây là nguồn dữ liệu quan trọng và chi tiết cho công tác xây dựng cơ sở dữ liệu, thành lập bản đồ, xây dựng mô hình 3D thành phố, Quá trình xây dựng mô hình 3D thành phố đòi hỏi phải xử

lý nhiều loại dữ liệu, trong đó công tác xử lý và phân loại dữ liệu đám mây điểm có vai trò quan trọng trong việc tạo nguồn dữ liệu đầu vào cho mô hình Tuy nhiên, việc xử lý và phân loại dữ liệu đám mây điểm hiện nay chủ yếu phụ thuộc vào các phần mềm thương mại có bản quyền với giá thành rất cao, hơn nữa các thuật toán và tham số của phần mềm thương mại được mã hóa làm cho người dùng không thể can thiệp để cải thiện độ chính xác của sản phẩm Do vậy, việc xây dựng một chương trình tự động phân loại dữ liệu đám mây điểm thành các đối tượng địa lý khác nhau giúp chúng ta có thể làm chủ được công nghệ xử lý dữ liệu phục vụ công tác xây dựng các mô hình 3D thành phố tiến tới góp phần quan trọng vào tiến trình xây dựng và phát triển thành phố thông minh Bài báo giới thiệu quy trình các bước thực hiện phân loại dữ liệu đám mây điểm LiDAR và quá trình triển khai xây dựng chương trình tự động phân loại dữ liệu đám mây điểm dựa trên ngôn ngữ Visual Studio.Net Kết quả bài báo đã xây dựng được chương trình tự động phân loại dữ liệu đám mây điểm song ngữ (Việt – Anh), có thể đọc và triển khai đầy đủ các thuật toán để xử lý

dữ liệu đám mây điểm LiDAR chứa thông tin 4 kênh màu (đỏ, lục, lam và cận hồng ngoại) Quá trình xử lý chính dựa theo các bước và ngưỡng phân loại đã đề xuất cho phân loại dữ liệu đám mây điểm thành 8 lớp đối tượng địa lý khác nhau bao gồm: thủy văn, mặt đất, giao thông, thực vật thấp, thực vật trung bình, thực vật cao, nhà và các đối tượng khác phục vụ cho công tác thành lập các mô hình 3D thành phố

© 2023 Trường Đại học Mỏ - Địa chất Tất cả các quyền được bảo đảm

Từ khóa:

Chương trình,

Đám mây điểm,

LiDAR,

Mô hình 3D thành phố

Trang 3

1 Mở đầu

Hiện nay, trên thế giới các nghiên cứu về mô

hình 3D thành phố phục vụ cho công tác mô hình

hóa bề mặt và xây dựng thành phố thông minh đã

và đang được chú trọng nghiên cứu và phát triển

Các mô hình 3D thành phố được xây dựng là kết

quả của quá trình tích hợp nhiều loại dữ liệu khác

nhau như: DEM, ảnh vệ tinh, bản đồ địa hình, ảnh

số, dữ liệu đám mây điểm LIDAR,… (Bui và nnk.,

2020; 2021; Dương và nnk., 2202; Lê, 2019;

2023) Quá trình xây dựng mô hình 3D thành phố

đòi hỏi phải xử lý nhiều loại dữ liệu, trong đó công

tác xử lý và phân loại dữ liệu đám mây điểm có vai

trò quan trọng trong việc tạo nguồn dữ liệu đầu

vào cho mô hình 3D thành phố Nhiều công trình

nghiên cứu đã đưa ra các phương pháp và thuật

toán về phân loại đám mây điểm để từ đó nhận

dạng các đối tượng bằng cách phân lớp cho đám

mây điểm thu nhận được, trong đó chủ yếu tập

trung vào 2 hướng: (1) Các thuật toán dựa trên mô

hình máy học (Alexandre, 2020; Arief và nnk.,

2019; Chenglu và nnk., 2019; Qiang và nnk., 2020;

Yongguang và nnk., 2020); (2) Các thuật toán

phân loại dựa trên hình thái và phổ (Heidar và

nnk., 2020; Markus and Jing, 2014; Ronggang và

nnk., 2018; Wuzhao và nnk., 2020; Yi và nnk.,

2020; Yangbin và nnk., 2018; Xudong và nnk.,

2019)

Thực tế hiện nay, công nghệ đo đạc thu thập

dữ liệu đã dịch chuyển dần từ các thiết bị đo đạc

truyền thống, đơn lẻ từng điểm sang các thiết bị

thu thập thông tin không gian một cách toàn diện

và nhanh chóng như máy quét laser mặt đất, máy

quét laser di động (mobile mapping), thiết bị quét

LiDAR trên máy bay hay trên UAV Định dạng dữ

liệu chung cho các thiết bị này là dữ liệu dạng đám

mây điểm 3D mang thông tin chính xác về tọa độ

địa lý và nhiều thông tin khác như màu sắc, cường

độ phản xạ, xung phản hồi, Với sự xuất hiện của

dữ liệu đám mây điểm 3D, thế giới thực được thể

hiện một cách đầy đủ trực quan với đúng tỷ lệ

Hơn nữa, khối lượng dữ liệu đám mây điểm 3D

được thu thập ngày càng nhiều đã tạo điều kiện

thuận lợi cung cấp nguồn thông tin đa dạng, đầy

đủ cho phân loại và xây dựng các đối tượng nội

dung của mô hình 3D thành phố phục vụ các ứng

dụng quy hoạch, quản lý môi trường đô thị, không

gian, cảnh quan, Tuy nhiên, với khối lượng dữ

liệu lớn, việc phân loại dữ liệu đám mây điểm hiện

nay hầu hết dựa trên các công cụ của phần mềm thương mại đi kèm của các hãng sản xuất thiết bị thu thập dữ liệu mà chưa có nhiều nghiên cứu xây dựng chương trình phân loại dữ liệu đám mây điểm Hơn nữa, việc sử dụng các phần mềm thương mại đòi hỏi phải chi phí mua bản quyền lớn, các tham số và thuật toán tính toán được mã hóa làm cho người dùng không thể can thiệp để cải thiện độ chính xác của sản phẩm (Lê, 2023) Chính

vì thế, việc thiết kế và xây dựng chương trình máy tính phục vụ công tác phân loại dữ liệu đám mây điểm có ý nghĩa khoa khoa học và thực tiễn cao

2 Thiết kế tổng thể chương trình phân loại dữ liệu đám mây điểm

2.1 Phương pháp phân loại dữ liệu đám mây điểm

Dữ liệu đám mây điểm LiDar được thu nhận được với bốn dải màu: đỏ - xanh lục - xanh lam - hồng ngoại gần Dựa trên các đặc điểm của đám mây điểm, nhóm nghiên cứu đã xây dựng quy trình chi tiết các bước để phân loại tự động dữ liệu đám mây điểm thành các lớp dữ liệu chứa các đối tượng địa lý khác nhau bao gồm: lớp điểm mặt đất, lớp điểm giao thông, lớp điểm thực vật, lớp điểm nhà và các lớp điểm các đối tượng khác Đám mây điểm sau khi phân loại sẽ là dữ liệu đầu vào để thành lập mô hình 3D thành phố Quy trình chi tiết bao gồm quá trình xử lý với các thuật toán lọc dữ liệu đám mây điểm thành các lớp đối tượng địa lý khác nhau Việc phân loại dữ liệu đám mây điểm này dựa trên ngưỡng phân loại được mô tả trong Hình 1 Mức ngưỡng được phát triển dựa trên đặc điểm tự nhiên của các lớp đối tượng trong đám mây điểm cũng như cường độ phản xạ của các đối tượng địa lý được khuyến cáo từ hãng sản xuất thiết bị thu nhận dữ liệu (Bảng 1) Có bốn đặc điểm được sử dụng để phát triển mức ngưỡng đó là: cường độ, chỉ số thực vật (NDVI), chiều cao và hình học (Bui và nnk., 2021; Lê, 2023)

Bảng 1 Phạm vi cường độ của các đám mây điểm CityMapper cho các đối tượng khác nhau

TT Đối tượng Khoảng cường độ

1 Đường nhựa 2100÷5400

2 Bê tông 9000÷12500

3 Mái ngói 7300÷9700

4 Mặt đất 7500÷13600

Trang 4

4 Bùi Ngọc Quý và nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), 1 - 11

Bảng 1 cho thấy rằng đường nhựa có thể

được lọc ra khỏi các vật thể mặt đất khác theo giá

trị cường độ Vì nền đất bằng phẳng trong khu vực

gồm có đường nhựa, bê tông, ngói, đất ngõ, đất

Các bước triển khai phương pháp phân loại

dữ liệu đám mây điểm cho xây dựng chương trình

tự động phân loại dữ liệu đám mây điểm được quy

trình hóa theo thứ tự triển khai thuật toán bao

gồm: (1) Lọc bỏ điểm nhiễu; (2) Phân loại điểm

mặt đất; (3) Phân loại giao thông; (4) Phân loại

thực vật; (5) Phân loại điểm mái nhà (Dương và

nnk., 2022)

2.2 Sơ đồ thiết kế hệ thống chương trình máy

tính phân loại dữ liệu đám mây điểm

Chương trình phân loại dữ liệu được thiết kế

để làm việc với dữ liệu đám mây điểm và dữ liệu

số hóa (điểm, đường, vùng) Các định dạng dữ liệu

này sẽ hiển thị trong môi trường 2D trên cửa số

chính của chương trình với các công cụ hỗ trợ

tương tác để người dùng có thể thay đổi các góc

nhìn khác nhau của các đối tượng, biên tập và

chỉnh sửa các dữ liệu trực tiếp trên chương trình

đã xây dựng Chương trình được thiết kế theo sơ

đồ thiết kế hệ thống với các nhóm chức năng và các công cụ như Hình 2, trong đó tập trung vào việc thiết kế nhóm chức năng phân loại dữ liệu đám mây điểm thành các lớp nội dung như đã đề cập trong mục 2.1

3 Xây dựng chương trình phân loại dữ liệu

đám mây điểm

3.1 Thiết kế giao diện chương trình

Chương trình được thiết kế trên nền tảng ngôn ngữ lập trình VisualBasic.Net với giao diện đơn giản dễ sử dụng, bao gồm 4 nhóm: (1) Menu bao gồm 6 mục chức năng chính: tệp, định dạng,

vẽ, góc nhìn, công cụ và trợ giúp; (2) Các công cụ chức năng: tạo mới, mở tệp, lưu, các công cụ vẽ điểm, đường, hình tròn, ghi chú…, các công cụ thay đổi góc nhìn, các công cụ phân loại đám mây điểm, công cụ lọc, hiển thị và phân loại lại; (3) Màn hình hiển thị: cho phép vẽ các đối tượng đồ họa cơ bản như dạng điểm, đường, vùng và hiển thị dữ liệu

Hình 1 Quy trình phân loại các đối tượng từ dữ

liệu đám mây điểm (Bui và nnk., 2021; Lê, 2023) Hình 2 Sơ đồ thiết kế hệ thống chương trình phân loại đám mây điểm (Lê 2023)

Trang 5

đám mây điểm trên giao diện của chương

trình; (4) Thanh trạng thái phía dưới, hiển thị

thông tin về tọa độ của con trỏ (Hình 3)

3.2 Thiết kế chức năng của chương trình phân

loại dữ liệu đám mây điểm

Chương trình được thiết kế với 7 nhóm chức

năng bao gồm: (1) Nhóm chức năng quản lý tệp;

(2) Nhóm chức năng hiển thị cho phép tùy chỉnh

định dạng hiển thị của các đối tượng được số hóa

bởi phần mềm; (3) Nhóm chức năng số hóa; (4)

Nhóm chức năng điều chỉnh góc nhìn; (5) Nhóm

các công cụ bổ trợ như đo khoảng cách, công cụ đo

diện tích, công cụ tra cứu thông tin đám mây điểm;

(6) Nhóm công cụ trợ giúp giới thiệu về chương

trình và 1 số thông tin hướng dẫn, đồng thời có thể

lựa chọn chuyển đổi ngôn ngữ của chương trình

qua lại giữa tiếng Việt và tiếng Anh; (7) Nhóm

chức năng phân loại dữ liệu đám mây điểm bao

gồm các công cụ thực hiện các tính năng phân loại

đám mây điểm được thiết kế và xây dựng theo

logic các bước đã đề xuất trong mục 2.1 bao gồm

các công cụ: loại bỏ điểm nhiễu; phân loại điểm

mặt đất; phân loại điểm đường giao thông; phân

loại điểm thực vật; phân loại nhà; tái phân loại; lọc

hiển thị theo lớp

3.3 Lập trình xây dựng chương trình phân loại

dữ liệu đám mây điểm

3.3.1 Khai báo cửa sổ hiển thị dữ liệu

Chương trình được thiết kế để phân định rõ giữa hệ tọa độ thực - r và hệ tọa độ màn hình - V

Hệ tọa độ thực lưu trữ thông tin tọa độ thực của mỗi đối tượng trong khi hệ tọa độ màn hình lưu trữ giá trị tọa độ hiển thị của các đối tượng trên cửa sổ hiển thị dữ liệu Do đó, với bất kỳ đối tượng nào có trong dữ liệu đám mây điểm đầu vào, sẽ được lưu trữ thông tin dưới dạng cả 2 hệ tọa độ

Vì vậy, chương trình đã được xây dựng 6 hàm để chuyển đổi từ hệ tọa độ thực sang hệ tọa độ màn hình cho giá trị X,Y và hệ số tỷ lệ m

'Cac tham so anh xa Dim vXo, vYo As Integer Dim rXo, rYo As Double Dim m As Double

Dim rXmin, rYmin, rZmin As Double Dim rXmax, rYmax, rZmax As Double Dim rLasXmin, rLasYmin As Double Dim rLasXmax, rLasYmax As Double 'Tu man hinh sang thuc

Private Function rX(ByVal vX As Double)

As Integer Return (rXo + (vX - vXo) / m) End Function

Private Function rY(ByVal vY As Double)

As Integer Return (rYo - (vY - vYo) / m) End Function

Private Function rS(ByVal vS As Double)

As Integer Return (vS / m)

Hình 3 Giao diện chương trình (Lê, 2023)

Trang 6

6 Bùi Ngọc Quý và nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), 1 - 11

End Function

'Tu thuc sang man hinh

Private Function vX(ByVal rX As Double)

As Integer

Return (vXo + m * (rX - rXo))

End Function

Private Function vY(ByVal rY As Double)

As Integer

Return (vYo - m * (rY - rYo))

End Function

Private Function vS(ByVal rS As Double)

As Integer

Return (m * rS)

End Function

Trong 6 hàm trên, có rX, rY, rS, vS là các biến

số, ứng với tọa độ thực và tọa độ màn hình của mỗi

điểm; rXo, rYo là hằng số, mặc định ban đầu có giá

trị là 0; vXo, vYo, m cũng là hằng số, được xác định

khi mở cửa sổ chương trình Mã nguồn lệnh mở

cửa sổ chương trình và xác định các hằng số vXo,

vYo, m được xác định như sau:

Private Sub FrmView_Load(ByVal sender As

Object, ByVal e As EventArgs) Handles

MyBase.Load

g = PicView.CreateGraphics

m = 1

vXo = PicView.Width / 2

vYo = PicView.Height / 2

End Sub

3.3.2 Khai báo khuôn dạng dữ liệu

Đối với lớp dữ liệu đường, polyline, hình tròn

và ghi chú chương trình chỉ lưu trữ dưới dạng 2D

do chương trình không thiết kế để hiển thị trong

môi trường 3D Với mỗi dạng đối tượng, tiến hành

khai báo một mảng dữ liệu 2D, bao gồm các giá trị

về tọa độ vị trí dưới dạng số thực, đồng thời với

một giá trị số lượng dạng số nguyên tương ứng

Đường tròn khai báo thêm giá trị bán kính, còn ghi

chú khai báo thêm giá trị nội dung ghi chú dưới

dạng string

Structure Line_2D

Dim rX1 As Double

Dim rY1 As Double

Dim rX2 As Double

Dim rY2 As Double

End Structure

Dim DS_Lines() As Line_2D, LinesCount As

Integer

Structure Circle_2D

Dim rX1 As Double

Dim rY1 As Double

Dim rR1 As Double

End Structure

CirclesCount As Integer

Đối với định dạng dữ liệu polyline, tiến hành khai báo mảng polyline bao gồm mảng các vertex

và số lượng vertex, cùng với số lượng polyline Mỗi vertex sẽ chứa thông số về tọa độ X, Y từng vertex

Structure Polyline_2D

VertexsCount As Integer End Structure

PolylinesCount As Integer

Ngoài ra, để phục vụ cho thuật toán phân loại điểm mặt đất, chương trình cần khai báo thêm mảng ô lưới (grid) và mảng tam giác (triangle) Mảng grid bên trong bao gồm các mảng con để lưu trữ các điểm trong mỗi ô lưới cùng với số lượng grid Mảng triangle lưu trữ dưới dạng ba đỉnh của tam giác và số lượng tam giác

Structure Grid_2D Dim DS_Vertexs() As Point_3D, VertexsCount As Integer

End Structure Dim DS_Grids() As Grid_2D, GridsCount As Integer

Structure Triangle Dim iD1 As Integer Dim iD2 As Integer Dim iD3 As Integer End Structure

Dim DS_Triangles() As Triangle, TrianglesCount As Integer

Đối với định dạng dữ liệu đám mây điểm, do

dữ liệu LiDAR ngoài thông tin tọa độ X, Y, Z còn bao gồm thông tin về cường độ tia quét, lớp phân loại, thông tin về bốn dải màu: đỏ, lục, lam và cận hồng ngoại, nên cấu trúc định dạng đám mây điểm được khai báo theo mã nguồn lệnh khai báo định dạng

dữ liệu cho đám mây điểm như sau:

Structure LasPoint_3D Dim rX1 As Double Dim rY1 As Double Dim rZ1 As Double Dim classification As Integer Dim Intensity As Integer Dim Red As Integer Dim Green As Integer Dim Blue As Integer Dim NIR As Integer End Structure

Trang 7

3.3.3 Khai báo đọc dữ liệu

Chương trình được xây dựng để đọc được dữ

liệu đám mây điểm Dữ liệu đám mây điểm cần

được lưu trữ dưới dạng tệp văn bản, mỗi điểm

tương ứng với một dòng, bao gồm các thông tin về

tọa độ X, Y, Z, cường độ, thông tin màu sắc bao gồm

giá trị đỏ, lục, lam, cận hồng ngoại và thông tin về

phân lớp Mỗi thông tin sẽ được ngăn cách bằng ký

hiệu ngăn cách – delimeter thường là dấu cách

trống hoặc dấu phẩy Do đó, cần xây dựng một

hàm giúp nhận diện ký hiệu ngăn cách này và lưu

thông tin của từng điểm giữa mỗi ký hiệu ngăn

cách Đặt tên hàm này là SplitChain (tách chuỗi)

Function SplitChain(ByVal Text As String,

ByVal Delimeter As String, ByRef Words() As

String) As Integer

Dim n As Integer, i As Integer

i = 0

Do

i = i + 1

Text = Trim(Text)

n = InStr(Text, Delimeter)

ReDim Preserve Words(i)

If n > 0 Then

Words(i) = Mid(Text, 1, n - 1)

Text = Mid(Text, n + 1)

Else

Words(i) = Text Return i

Exit Do End If Loop End Function

Nguyên lý hàm tách chuỗi này như sau: sử dụng lệnh lặp Do - Loop, với biến i chạy Đầu tiên thực hiện cắt bỏ các khoảng trống thừa hai đầu mỗi dòng với hàm Trim(Text) Tiếp đến xác định giá trị số lượng chữ - n cho đến khi gặp ký tự ngăn cách – delimeter bằng hàm InStr Với điều kiện n >

0, hàm sẽ lần lượt lưu các giá trị giữa các ký tự ngăn cách vào mảng Word(i) bằng hàm Mid(Text,

1, n-1) Như vậy các thông số về X, Y, Z, cường độ, thông tin màu sắc sẽ được lần lượt lưu vào mảng Word(i)

3.3.4 Khai báo hiển thị dữ liệu

Dữ liệu được hiển thị dưới dạng 2D, theo góc nhìn thẳng đứng từ trên xuống Với mỗi đối tượng được vẽ, đều có lệnh Graphic.draw để vẽ các đối tượng với màu sắc mặc định là trắng trên nền đen Với dữ liệu đám mây điểm *.las, sau khi được tải vào chương trình, dữ liệu sẽ được xử lý để tự động đưa toàn bộ dữ liệu về màn hình hiển thị (Hình 4)

Hình 4 Giao diện hiển thị dữ liệu đám mây điểm (Lê, 2023)

Trang 8

8 Bùi Ngọc Quý và nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), 1 - 11

4 Kết quả và thảo luận

4.1 Kết quả xây dựng chương trình phân loại

dữ liệu đám mây điểm

Với mỗi modul công cụ chức năng sau khi xây

dựng sẽ được tiến hành chạy thử với dữ liệu đám

mây điểm có số lượng từ nhỏ đến lớn để kiểm tra,

nếu có phát sinh lỗi thì sẽ tiến hành kiểm tra lỗi và

thực hiện các chỉnh sửa cần thiết Mỗi modul công

cụ sẽ được hoàn thiện sau khi chạy thử dữ liệu ở

nhiều khu vực khác nhau và loại bỏ hết các trường

hợp phát sinh lỗi Các câu lệnh cũng được biên tập

ra các chức năng riêng và bố trí một cách gọn gàng

nhất, giúp tăng cường tốc độ xử lý dữ liệu, tránh

các bước chạy đường vòng, lãng phí thời gian và

tài nguyên bộ nhớ Kết quả xây dựng chương trình

có thể hiển thị và xử lý phân loại dữ liệu đám mây

điểm để tách dữ liệu thành 8 lớp dữ liệu địa lý bao

gồm: mặt nước, mặt đất, giao thông, thực vật thấp,

thực vật trung bình, thực vật cao, nhà cửa và các

đối tượng khác

4.2 Ứng dụng chương trình trong phân loại dữ

liệu đám mây điểm

Trên cơ sở chương trình đã xây dựng nhóm

nghiên cứu tiến hành thực nghiệm phân loại dữ

liệu đám mây điểm cho khu vực phường Thượng

Lý, thành phố Hải Phòng (Hình 5) Đám mây điểm được sử dụng công cụ lọc nhiễu để lọc bỏ các điểm thấp, kết quả thu được những khu vực không có

dữ liệu và đưa về lớp thủy văn Tiếp theo, tiến hành lựa chọn công cụ lọc mặt đất và thiết lập các tham số cho thuật toán lọc mặt đất bao gồm kích thước của ô lưới; khoảng cách và góc lặp lần 1; độ biến thiên của dữ liệu; khoảng cách và góc lặp lần

2 (Hình 6) Khi đó, chương trình sẽ căn cứ vào kích thước của ô lưới được lựa chọn để xác định các điểm hạt giống là các điểm thấp nhất trong các ô lưới và tiến hành tam giác hóa bề mặt để tạo mô hình TIN Dựa trên bề mặt TIN này chương trình tiến hành áp dụng các điều kiện về khoảng cách và góc lặp để xác định điểm mặt đất, cụ thể điểm được xét là điểm nằm trong tam giác đồng thời thỏa mãn điều kiện nhỏ hơn giá trị tham số của khoảng cách và góc lặp mà người dùng đã thiết lập Khi đó, điểm này sẽ được tính là điểm mặt đất, chương trình sẽ xóa bỏ tam giác chứa nó và sử dụng điểm này để lập 3 tam giác giữa điểm đó và

3 cạnh của tam giác ban đầu Sau khi vòng lặp 1 kết thúc chương trình sẽ tiến hành tương tự cho vòng lặp thứ 2 với các tham số đã được người dùng xác định với điểm khởi tính ban đầu là các điểm mặt đất của vòng lặp thứ nhất với giá trị góc lặp lớn hơn và khoảng cách lặp nhỏ hơn lần 1 để xác định các điểm mặt đất ở những khu vực địa hình có độ

Hình 5 Vị trí khu vực phường Thượng Lý, thành phố Hải Phòng

Trang 9

dốc lớn cũng như tránh cho bước nhảy lớn

vào bề mặt của các đối tượng khác (Dương và nnk.,

2022) Kết quả cuối cùng sẽ tách được lớp điểm

mặt đất ra khỏi dữ liệu đám mây điểm gốc ban đầu

(Hình 7) Sau khi phân loại xong các điểm mặt đất,

tiến hành phân loại lớp đường giao thông dựa trên

dữ liệu các điểm mặt đất đã được tách ra từ quá

trình lọc mặt đất Chương trình sẽ dựa trên tham

số về giá trị cường độ mà người dùng nhập vào

(Hình 8) để lọc ra các điểm đường giao thông Kết

quả của quá trình này sẽ tách được lớp mặt đất và

lớp đường giao thông (Hình 9)

Sau khi lọc các đối tượng giao thông, tiến

hành lọc các đối tượng thực vật Thực vật được lọc

ra thành 3 lớp (thấp, trung bình và cao) dựa trên

giá trị NDVI kết hợp với độ cao của điểm so với bề

mặt TIN được tạo ra từ kết quả phân loại điểm mặt

đất Kết quả của quá trình này sẽ thu được 4 lớp

thực vật thấp, thực vật trung bình, thực vật cao và các đối tượng khác Cuối cùng chương trình tiến hành triển khai thuật toán để phân loại lớp nhà trên cơ sở dữ liệu các đối tượng khác vừa được tách ra từ quá trình phân loại thực vật dựa vào đặc điểm dữ liệu lúc này đó là các điểm nằm trên một mặt phẳng đảm bảo thỏa mãn góc dốc so với bề mặt đất một giá trị được xác định của người dùng

sẽ được đưa về lớp nhà Kết quả sẽ thu nhận được lớp nhà (Hình 10) và các đối tượng địa lý còn lại sẽ được đưa vào lớp các đối tượng khác

Hình 6 Xác định các tham số cho công cụ lọc

điểm mặt đất

Hình 7 Kết quả phân loại lớp mặt đất (Dương và

nnk., 2022)

Hình 8 Xác định tham số cho lọc đường giao thông

Hình 9 Lớp giao thông được tách ra từ lớp điểm mặt đất dựa trên giá trị cường độ (Dương và nkk., 2022)

Hình 10 Kết quả phân loại lớp điểm mái nhà (Dương

và nkk., 2022)

Trang 10

10 Bùi Ngọc Quý và nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), 1 - 11

5 Kết luận

Bài báo đã tiến hành xây dựng và hiện thực

hóa các bước triển khai phân loại dữ liệu đám mây

điểm trên cơ sở thuật toán và ngưỡng phân loại

được đề xuất bởi nhóm tác giả trong nghiên cứu

của (Bùi và nnk., 2021; Lê, 2023) Kết quả xây

dựng chương trình phân loại dữ liệu đám mây

điểm của bài báo cho thấy chúng ta hoàn toàn có

thể chủ động công tác thiết kế và xây dựng các

chương trình máy tính hỗ trợ cho phân loại dữ liệu

đám mây điểm độc lập mà không quá phụ thuộc

vào các phần mềm thương mại như hiện nay

Chương trình phân loại dữ liệu đám mây

điểm đã xây dựng đảm bảo đọc được dữ liệu đám

mây điểm có chứa thông tin 4 kênh màu bao gồm

đỏ, lục, lam và cận hồng ngoại và có thể triển khai

đầy đủ các thuật toán phân loại dữ liệu đám mây

điểm theo quy trình các bước đã đề xuất và có thể

phân loại dữ liệu đám mây điểm thành các đối

tượng địa lý riêng biệt bao gồm: thủy văn, mặt đất,

giao thông, thực vật thấp, thực vật trung bình, thực

vật cao, nhà và các đối tượng khác Chương trình

có giao diện đơn giản, dễ nhìn, dễ sử dụng với 2

ngôn ngữ tiếng Việt và tiếng Anh Đặc biệt, chương

trình có thể lựa chọn các tham số cho từng đối

tượng trong quá trình phân loại để phù hợp với

từng nhóm đối tượng địa lý trong những điều kiện

địa lý khác nhau giúp cho kết quả phân loại đảm

bảo sát với thực tế nhất

Với chương trình máy tính đã xây dựng,

người dùng có thể đọc, hiển thị và tiến hành phân

loại đám mây điểm ra nhiều các phân lớp khác

nhau một cách tự động nhằm cung cấp dữ liệu đầu

vào cho xây dựng các mô hình 3D thành phố

Ngoài ra, chương trình cũng cho phép số hóa các

đối tượng đồ họa dạng điểm, đường, vùng hỗ trợ

công tác đánh dấu các đối tượng khi cần thiết, đây

cũng là một sự kết hợp cần thiết mà ít các phần

mềm thương mại hiện nay quan tâm xây dựng

Đóng góp của tác giả

Bùi Ngọc Quý - lên ý tưởng thiết kế, viết phần

phương pháp và hoàn thiện bản thảo; Lê Đình

Hiển - lập trình xây dựng chương trình; Dương

Anh Quân - đánh giá các kết quả thực nghiệm và

biên tập bản thảo; Phạm Văn Hiệp - chạy thử

nghiệm và kiểm tra dữ liệu sau phân loại; Vũ Sơn

Tùng - lọc dữ liệu, bắt lỗi chương trình; Trần Thị

Thu Trang – thu thập dữ liệu đám mây điểm thực nghiệm, biên tập và rà soát bản thảo

Tài liệu tham khảo

Alexandre Boulch (2020) ConvPoint: Continuous Convolutions for Point Cloud Processing

Computers and Graphics, 88, 24-34

doi.org/10.1016/j.cag.2020.02.005

Arief, H A A., Indahl, U G., Strand, G H., & Tveite,

H (2019) Addressing overfitting on point

cloud classification using Atrous XCRF ISPRS

Journal of Photogrammetry and Remote

doi.org/10.1016/j.isprsjprs.2019.07.002 Bui, N Q., Le, D H., Duong, A Q., Nguyen Q L (2021) Rule-based classification of Airborne Laser Scanner data for automatic extraction of

3D objects in the urban area Journal of the

Polish Mineral Engineering Society, 48(2),

103-114 DOI: doi.org/10.29227/IM-2021-02-09 Bui, N Q., Le, Di H., Nguyen, Q L., Tong, S S., Duong, A Q., Pham, V H., Phan, T H., Pham, T

L (2020) Method of defining the parameters for UAV point cloud classification algorithm

Journal of the Polish Mineral Engineering Society, 46(1) 49-56 DOI: doi.org/10

29227/IM-2020-02-08

Chenglu Wen, Xiaotian Sun, Jonathan Li, Cheng Wang, Yan Guo, Ayman Habib (2019) A Deep Learning Framework for Road Marking Extraction, Classification and Completion from

Mobile Laser Scanning Point Clouds ISPRS

Journal of Photogrammetry and Remote

doi.org/10.1016/j.isprsjprs.2018.10.007 Dương, A Q., Lê, Đ H., Phạm, V H., Nguyễn, Q C., Bùi, N Q (2022) Xây dựng quy trình thu nhận,

xử lý và phân loại dữ liệu đám mây điểm LiDAR

phục vụ thành lập mô hình 3D thành phố Tạp

chí Khoa học Kỹ thuật Mỏ - Địa chất, 63(4),

1-12 doi:10.46326/JMES.2022.63(4).01 Heidar Rastiveis, Alireza Shams, Wayne A Sarasua, Jonathan Li (2020) Automated Extraction of Lane Markings from Mobile LiDAR Point Clouds Based on Fuzzy Inference

ISPRS Journal of Photogrammetry and Remote

Ngày đăng: 27/02/2024, 06:49

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

TÀI LIỆU LIÊN QUAN

w