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
Journal of Mining and Earth Sciences Vol 64, Issue (2023) - 11 Building a program to automatically classify point cloud data Quy Ngoc Bui 1,2,*, Hien Dinh Le 3, Hiep Van Pham Duong 1,2, Trang Thu Thi Tran 1,2, Tung Son Vu 4, Quan Anh Faculty of Geomatics and Land Administration, Hanoi University of Mining and Geology, Vietnam Research and Development of Geospatial Data Management and Analysis Techniques (GMA), Hanoi University of Mining and Geology, Vietnam Natural Resources and Environment One Member Co., Ltd, Hanoi, Vietnam GeoPro Ltd, Hanoi, Vietnam ARTICLE INFO ABSTRACT 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-bystep 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 Keywords: 3D city model, LiDAR, Point cloud, Program Copyright © 2023 Hanoi University of Mining and Geology All rights reserved _ *Corresponding author E - mail: buingocquy@humg.edu.vn DOI: 10.46326/JMES.2023.64(4).01 Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất Tập 64, Kỳ (2023) - 11 Xây dựng chương trình tự động phân loại 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 Khoa Trắc địa - Bản đồ Quản lý đất đai, Trường Đại học Mỏ - Địa chất, Việt Nam Nhóm nghiên cứu nghiên cứu phát triển công nghệ quản lý phân tích liệu khơng gian địa lý, Hà Nội, Việt Nam Công ty TNHH MTV Tài nguyên Môi trường Việt Nam, Hà Nội, Việt Nam Công ty TNHH GeoPro, Hà Nội, Việt Nam THÔNG TIN BÀI BÁO TĨM TẮT Q trình: Nhận 1/4/2023 Sửa xong 23/7/2023 Chấp nhận đăng 17/8/2023 Cùng với phát triển lĩnh vực khoa học công nghệ đo đạc đồ, công tác thu nhận liệu thơng qua hệ thống qt laser hàng khơng có phát triển mạnh mẽ Đây nguồn liệu quan trọng chi tiết cho công tác xây dựng sở liệu, thành lập đồ, xây dựng mơ hình 3D thành phố, Q trình xây dựng mơ hình 3D thành phố địi hỏi phải xử lý nhiều loại liệu, cơng tác xử lý phân loại liệu đám mây điểm có vai trò quan trọng việc tạo nguồn liệu đầu vào cho mơ hình Tuy nhiên, việc xử lý phân loại liệu đám mây điểm chủ yếu phụ thuộc vào phần mềm thương mại có quyền với giá thành cao, thuật toán tham số phần mềm thương mại mã hóa làm cho người dùng khơng thể can thiệp để cải thiện độ xác sản phẩm Do vậy, việc xây dựng chương trình tự động phân loại liệu đám mây điểm thành đối tượng địa lý khác giúp làm chủ công nghệ xử lý liệu phục vụ cơng tác xây dựng 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 phát triển thành phố thông minh Bài báo giới thiệu quy trình bước thực phân loại liệu đám mây điểm LiDAR trình triển khai xây dựng chương trình tự động phân loại liệu đám mây điểm dựa ngôn ngữ Visual Studio.Net Kết báo xây dựng chương trình tự động phân loại liệu đám mây điểm song ngữ (Việt – Anh), đọc triển khai đầy đủ thuật toán để xử lý liệu đám mây điểm LiDAR chứa thông tin kênh màu (đỏ, lục, lam cận hồng ngoại) Quá trình xử lý dựa theo bước ngưỡng phân loại đề xuất cho phân loại liệu đám mây điểm thành lớp đối tượng địa lý khác 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à đối tượng khác phục vụ cho công tác thành lập mơ hình 3D thành phố Từ khóa: Chương trình, Đám mây điểm, LiDAR, Mơ hình 3D thành phố © 2023 Trường Đại học Mỏ - Địa chất Tất quyền bảo đảm _ *Tác giả liên hệ E - mail: buingocquy@humg.edu.vn DOI: 10.46326/JM3ES.2023.64(4).01 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 Mở đầu Hiện nay, giới nghiên cứu mô hình 3D thành phố phục vụ cho cơng tác mơ hình hóa bề mặt xây dựng thành phố thơng minh trọng nghiên cứu phát triển Các mơ hình 3D thành phố xây dựng kết q trình tích hợp nhiều loại liệu khác như: DEM, ảnh vệ tinh, đồ địa hình, ảnh số, liệu đám mây điểm LIDAR,… (Bui nnk., 2020; 2021; Dương nnk., 2202; Lê, 2019; 2023) Q trình xây dựng mơ hình 3D thành phố đòi hỏi phải xử lý nhiều loại liệu, cơng tác xử lý phân loại liệu đám mây điểm có vai trị quan trọng việc tạo nguồn liệu đầu vào cho mơ hình 3D thành phố Nhiều cơng trình nghiên cứu đưa phương pháp thuật toán phân loại đám mây điểm để từ nhận dạng đối tượng cách phân lớp cho đám mây điểm thu nhận được, chủ yếu tập trung vào hướng: (1) Các thuật tốn dựa mơ hình máy học (Alexandre, 2020; Arief nnk., 2019; Chenglu nnk., 2019; Qiang nnk., 2020; Yongguang nnk., 2020); (2) Các thuật tốn phân loại dựa hình thái phổ (Heidar nnk., 2020; Markus and Jing, 2014; Ronggang nnk., 2018; Wuzhao nnk., 2020; Yi nnk., 2020; Yangbin nnk., 2018; Xudong nnk., 2019) Thực tế nay, công nghệ đo đạc thu thập liệu dịch chuyển dần từ thiết bị đo đạc truyền thống, đơn lẻ điểm sang thiết bị thu thập thông tin không gian cách tồn diện nhanh chóng máy qt laser mặt đất, máy quét laser di động (mobile mapping), thiết bị quét LiDAR máy bay hay UAV Định dạng liệu chung cho thiết bị liệu dạng đám mây điểm 3D mang thông tin xác tọa độ địa lý nhiều thơng tin khác màu sắc, cường độ phản xạ, xung phản hồi, Với xuất liệu đám mây điểm 3D, giới thực thể cách đầy đủ trực quan với tỷ lệ Hơn nữa, khối lượng liệu đám mây điểm 3D thu thập ngày 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 xây dựng đối tượng nội dung mơ hình 3D thành phố phục vụ ứ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 liệu lớn, việc phân loại liệu đám mây điểm hầu hết dựa công cụ phần mềm thương mại kèm hãng sản xuất thiết bị thu thập liệu mà chưa có nhiều nghiên cứu xây dựng chương trình phân loại liệu đám mây điểm Hơn nữa, việc sử dụng phần mềm thương mại đòi hỏi phí mua quyền lớn, tham số thuật tốn tính tốn mã hóa làm cho người dùng khơng thể can thiệp để cải thiện độ xác sản phẩm (Lê, 2023) Chính thế, việc thiết kế xây dựng chương trình máy tính phục vụ công tác phân loại liệu đám mây điểm có ý nghĩa khoa khoa học thực tiễn cao Thiết kế tổng thể chương trình phân loại liệu đám mây điểm 2.1 Phương pháp phân loại liệu đám mây điểm Dữ liệu đám mây điểm LiDar thu nhận với bốn dải màu: đỏ - xanh lục - xanh lam hồng ngoại gần Dựa đặc điểm đám mây điểm, nhóm nghiên cứu xây dựng quy trình chi tiết bước để phân loại tự động liệu đám mây điểm thành lớp liệu chứa đối tượng địa lý khác 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à lớp điểm đối tượng khác Đám mây điểm sau phân loại 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 trình xử lý với thuật toán lọc liệu đám mây điểm thành lớp đối tượng địa lý khác Việc phân loại liệu đám mây điểm dựa ngưỡng phân loại mơ tả Hình Mức ngưỡng phát triển dựa đặc điểm tự nhiên lớp đối tượng đám mây điểm cường độ phản xạ đối tượng địa lý khuyến cáo từ hãng sản xuất thiết bị thu nhận liệu (Bảng 1) Có bốn đặc điểm sử dụng để phát triển mức ngưỡng là: cường độ, số thực vật (NDVI), chiều cao hình học (Bui nnk., 2021; Lê, 2023) Bảng Phạm vi cường độ đám mây điểm CityMapper cho đối tượng khác TT Đối tượng Đường nhựa Bê tơng Mái ngói Mặt đất Khoảng cường độ 2100÷5400 9000÷12500 7300÷9700 7500÷13600 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 Bảng cho thấy đường nhựa lọc khỏi vật thể mặt đất khác theo giá trị cường độ Vì đất phẳng 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 liệu đám mây điểm cho xây dựng chương trình tự động phân loại liệu đám mây điểm 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 nnk., 2022) 2.2 Sơ đồ thiết kế hệ thống chương trình máy tính phân loại liệu đám mây điểm Chương trình phân loại liệu thiết kế để làm việc với liệu đám mây điểm liệu số hóa (điểm, đường, vùng) Các định dạng liệu hiển thị mơi trường 2D cửa số chương trình với cơng cụ hỗ trợ tương tác để người dùng thay đổi góc nhìn khác đối tượng, biên tập chỉnh sửa liệu trực tiếp chương trình xây dựng Chương trình thiết kế theo sơ Hình Quy trình phân loại đối tượng từ liệu đám mây điểm (Bui nnk., 2021; Lê, 2023) đồ thiết kế hệ thống với nhóm chức cơng cụ Hình 2, tập trung vào việc thiết kế nhóm chức phân loại liệu đám mây điểm thành lớp nội dung đề cập mục 2.1 Xây dựng chương trình phân loại liệu đám mây điểm 3.1 Thiết kế giao diện chương trình Chương trình thiết kế 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 nhóm: (1) Menu bao gồm mục chức chính: tệp, định dạng, vẽ, góc nhìn, cơng cụ trợ giúp; (2) Các công cụ chức năng: tạo mới, mở tệp, lưu, cơng cụ vẽ điểm, đường, hình trịn, ghi chú…, cơng cụ thay đổi góc nhìn, công cụ phân loại đám mây điểm, công cụ lọc, hiển thị phân loại lại; (3) Màn hình hiển thị: cho phép vẽ đối tượng đồ họa dạng điểm, đường, vùng hiển thị liệu Hình 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ý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 đám mây điểm giao diện chương trình; (4) Thanh trạng thái phía dưới, hiển thị thơng tin tọa độ trỏ (Hình 3) 3.2 Thiết kế chức chương trình phân loại liệu đám mây điểm Chương trình thiết kế với nhóm chức bao gồm: (1) Nhóm chức quản lý tệp; (2) Nhóm chức hiển thị cho phép tùy chỉnh định dạng hiển thị đối tượng số hóa phần mềm; (3) Nhóm chức số hóa; (4) Nhóm chức điều chỉnh góc nhìn; (5) Nhóm công cụ bổ trợ đ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 chương trình số thơng tin hướng dẫn, đồng thời lựa chọn chuyển đổi ngơn ngữ chương trình qua lại tiếng Việt tiếng Anh; (7) Nhóm chức phân loại liệu đám mây điểm bao gồm công cụ thực tính phân loại đám mây điểm thiết kế xây dựng theo logic bước đề xuất mục 2.1 bao gồm 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 liệu đám mây điểm 3.3.1 Khai báo cửa sổ hiển thị liệu Chương trình thiết kế để phân định rõ hệ tọa độ thực - r hệ tọa độ hình - V Hệ tọa độ thực lưu trữ thông tin tọa độ thực đối tượng hệ tọa độ hình lưu trữ giá trị tọa độ hiển thị đối tượng cửa sổ hiển thị liệu Do đó, với đối tượng có liệu đám mây điểm đầu vào, lưu trữ thông tin dạng hệ tọa độ Vì vậy, chương trình xây dựng hàm để chuyển đổi từ hệ tọa độ thực sang hệ tọa độ hình cho giá trị X,Y 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 Giao diện chương trình (Lê, 2023) 6 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 End Function 'Tu thuc sang man hinh Private Function vX(ByVal As Integer Return (vXo + m * (rX End Function Private Function vY(ByVal As Integer Return (vYo - m * (rY End Function Private Function vS(ByVal As Integer Return (m * rS) End Function Dim DS_Circles() CirclesCount As Integer rX As Double) - rXo)) rY As Double) - rYo)) rS As Double) Trong hàm trên, có rX, rY, rS, vS biến số, ứng với tọa độ thực tọa độ hình điểm; rXo, rYo số, mặc định ban đầu có giá trị 0; vXo, vYo, m số, xác định mở cửa sổ chương trình Mã nguồn lệnh mở cửa sổ chương trình xác định số vXo, vYo, m xác định sau: Private Sub FrmView_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load g = PicView.CreateGraphics m = vXo = PicView.Width / vYo = PicView.Height / End Sub 3.3.2 Khai báo khuôn dạng liệu Đối với lớp liệu đường, polyline, hình trịn ghi chương trình lưu trữ dạng 2D chương trình khơng thiết kế để hiển thị môi trường 3D Với dạng đối tượng, tiến hành khai báo mảng liệu 2D, bao gồm giá trị tọa độ vị trí dạng số thực, đồng thời với 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 khai báo thêm giá trị nội dung ghi 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 As Circle_2D, Đối với định dạng liệu polyline, tiến hành khai báo mảng polyline bao gồm mảng vertex số lượng vertex, với số lượng polyline Mỗi vertex chứa thông số tọa độ X, Y vertex Structure Polyline_2D Dim DS_Vertexs() As Point_3D, VertexsCount As Integer End Structure Dim DS_Polylines() As Polyline_2D, PolylinesCount As Integer Ngồi ra, để phục vụ cho thuật tố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) mảng tam giác (triangle) Mảng grid bên bao gồm mảng để lưu trữ điểm ô lưới với số lượng grid Mảng triangle lưu trữ dạng ba đỉnh tam giác 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 liệu đám mây điểm, liệu LiDAR ngồi thơng tin tọa độ X, Y, Z cịn bao gồm thơng tin cường độ tia quét, lớp phân loại, thông tin bốn dải màu: đỏ, lục, lam cận hồng ngoại, nên cấu trúc định dạng đám mây điểm khai báo theo mã nguồn lệnh khai báo định dạng liệu cho đám mây điểm 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 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 3.3.3 Khai báo đọc liệu Chương trình xây dựng để đọc liệu đám mây điểm Dữ liệu đám mây điểm cần lưu trữ dạng tệp văn bản, điểm tương ứng với dịng, bao gồm thơng tin 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 thông tin phân lớp Mỗi thông tin ngăn cách ký hiệu ngăn cách – delimeter thường dấu cách trống dấu phẩy Do đó, cần xây dựng hàm giúp nhận diện ký hiệu ngăn cách lưu thông tin điểm ký hiệu ngăn cách Đặt tên hàm 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 = Do i = i + Text = Trim(Text) n = InStr(Text, Delimeter) ReDim Preserve Words(i) If n > 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 sau: sử dụng lệnh lặp Do - Loop, với biến i chạy Đầu tiên thực cắt bỏ khoảng trống thừa hai đầu dòng với hàm Trim(Text) Tiếp đến xác định giá trị số lượng chữ - n gặp ký tự ngăn cách – delimeter hàm InStr Với điều kiện n > 0, hàm lưu giá trị ký tự ngăn cách vào mảng Word(i) hàm Mid(Text, 1, n-1) Như thông số X, Y, Z, cường độ, thông tin màu sắc lưu vào mảng Word(i) 3.3.4 Khai báo hiển thị liệu Dữ liệu hiển thị dạng 2D, theo góc nhìn thẳng đứng từ xuống Với đối tượng vẽ, có lệnh Graphic.draw để vẽ đối tượng với màu sắc mặc định trắng đen Với liệu đám mây điểm *.las, sau tải vào chương trình, liệu xử lý để tự động đưa tồn liệu hình hiển thị (Hình 4) Hình Giao diện hiển thị liệu đám mây điểm (Lê, 2023) 8 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 Kết thảo luận 4.1 Kết xây dựng chương trình phân loại liệu đám mây điểm Với modul công cụ chức sau xây dựng tiến hành chạy thử với liệu đám mây điểm có số lượng từ nhỏ đến lớn để kiểm tra, có phát sinh lỗi tiến hành kiểm tra lỗi thực chỉnh sửa cần thiết Mỗi modul công cụ hoàn thiện sau chạy thử liệu nhiều khu vực khác loại bỏ hết trường hợp phát sinh lỗi Các câu lệnh biên tập chức riêng bố trí cách gọn gàng nhất, giúp tăng cường tốc độ xử lý liệu, tránh bước chạy đường vịng, lãng phí thời gian tài ngun nhớ Kết xây dựng chương trình hiển thị xử lý phân loại liệu đám mây điểm để tách liệu thành lớp 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 đối tượng khác 4.2 Ứng dụng chương trình phân loại liệu đám mây điểm Trên 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 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 sử dụng công cụ lọc nhiễu để lọc bỏ điểm thấp, kết thu khu vực khơng có liệu đưa 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 thiết lập tham số cho thuật toán lọc mặt đất bao gồm kích thước lưới; khoảng cách góc lặp lần 1; độ biến thiên liệu; khoảng cách góc lặp lần (Hình 6) Khi đó, chương trình vào kích thước ô lưới lựa chọn để xác định điểm hạt giống điểm thấp ô lưới tiến hành tam giác hóa bề mặt để tạo mơ hình TIN Dựa bề mặt TIN chương trình tiến hành áp dụng điều kiện khoảng cách góc lặp để xác định điểm mặt đất, cụ thể điểm xét điểm nằm tam giác đồng thời thỏa mãn điều kiện nhỏ giá trị tham số khoảng cách góc lặp mà người dùng thiết lập Khi đó, điểm tính điểm mặt đất, chương trình xóa bỏ tam giác chứa sử dụng điểm để lập tam giác điểm cạnh tam giác ban đầu Sau vòng lặp kết thúc chương trình tiến hành tương tự cho vòng lặp thứ với tham số người dùng xác định với điểm khởi tính ban đầu điểm mặt đất vòng lặp thứ với giá trị góc lặp lớn khoảng cách lặp nhỏ lần để xác định điểm mặt đất khu vực địa hình có độ Hình Vị trí khu vực phường Thượng Lý, thành phố Hải Phòng Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 dốc lớn tránh cho bước nhảy lớn vào bề mặt đối tượng khác (Dương nnk., 2022) Kết cuối tách lớp điểm mặt đất khỏi liệu đám mây điểm gốc ban đầu (Hình 7) Sau phân loại xong điểm mặt đất, tiến hành phân loại lớp đường giao thông dựa liệu điểm mặt đất tách từ trình lọc mặt đất Chương trình dựa tham số giá trị cường độ mà người dùng nhập vào (Hình 8) để lọc điểm đường giao thơng Kết trình tách lớp mặt đất lớp đường giao thơng (Hình 9) Sau lọc đối tượng giao thông, tiến hành lọc đối tượng thực vật Thực vật lọc thành lớp (thấp, trung bình cao) dựa giá trị NDVI kết hợp với độ cao điểm so với bề mặt TIN tạo từ kết phân loại điểm mặt đất Kết trình thu lớp thực vật thấp, thực vật trung bình, thực vật cao đối tượng khác Cuối chương trình tiến hành triển khai thuật toán để phân loại lớp nhà sở liệu đối tượng khác vừa tách từ trình phân loại thực vật dựa vào đặc điểm liệu lúc điểm nằm mặt phẳng đảm bảo thỏa mãn góc dốc so với bề mặt đất giá trị xác định người dùng đưa lớp nhà Kết thu nhận lớp nhà (Hình 10) đối tượng địa lý lại đưa vào lớp đối tượng khác Hình Xác định tham số cho lọc đường giao thơng Hình Xác định tham số cho công cụ lọc điểm mặt đất Hình Kết phân loại lớp mặt đất (Dương nnk., 2022) Hình Lớp giao thông tách từ lớp điểm mặt đất dựa giá trị cường độ (Dương nkk., 2022) Hình 10 Kết phân loại lớp điểm mái nhà (Dương nkk., 2022) 10 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 Kết luận Bài báo tiến hành xây dựng thực hóa bước triển khai phân loại liệu đám mây điểm sở thuật toán ngưỡng phân loại đề xuất nhóm tác giả nghiên cứu (Bùi nnk., 2021; Lê, 2023) Kết xây dựng chương trình phân loại liệu đám mây điểm báo cho thấy hồn tồn chủ động cơng tác thiết kế xây dựng chương trình máy tính hỗ trợ cho phân loại liệu đám mây điểm độc lập mà không phụ thuộc vào phần mềm thương mại Chương trình phân loại liệu đám mây điểm xây dựng đảm bảo đọc liệu đám mây điểm có chứa thông tin kênh màu bao gồm đỏ, lục, lam cận hồng ngoại triển khai đầy đủ thuật toán phân loại liệu đám mây điểm theo quy trình bước đề xuất phân loại liệu đám mây điểm thành đố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à đố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 ngơn ngữ tiếng Việt tiếng Anh Đặc biệt, chương trình lựa chọn tham số cho đối tượng trình phân loại để phù hợp với nhóm đối tượng địa lý điều kiện địa lý khác giúp cho kết phân loại đảm bảo sát với thực tế Với chương trình máy tính xây dựng, người dùng đọc, hiển thị tiến hành phân loại đám mây điểm nhiều phân lớp khác cách tự động nhằm cung cấp liệu đầu vào cho xây dựng mô hình 3D thành phố Ngồi ra, chương trình cho phép số hóa đối tượng đồ họa dạng điểm, đường, vùng hỗ trợ công tác đánh dấu đối tượng cần thiết, kết hợp cần thiết mà phần mềm thương mại quan tâm xây dựng Đóng góp tác giả Bùi Ngọc Quý - lên ý tưởng thiết kế, viết phần phương pháp hoàn thiệ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á kết thực nghiệm biên tập thảo; Phạm Văn Hiệp - chạy thử nghiệm kiểm tra liệu sau phân loại; Vũ Sơn Tùng - lọc liệu, bắt lỗi chương trình; Trần Thị Thu Trang – thu thập liệu đám mây điểm thực nghiệm, biên tập rà soát 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 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 Journal of the Polish Mineral Engineering Society, 48(2), 103114 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 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ý phân loại 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), 112 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 Bùi Ngọc Quý nnk./Tạp chí Khoa học Kỹ thuật Mỏ - Địa chất 64 (4), - 11 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ý liệu thu nhận từ hệ thống bay chụp ảnh & quét Lidar Leica City Mapper thành lập mơ hình Cyber 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 tốn tự động phân loại 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 Sensing, 87, 7892 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.cag.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 Network for ALS Point Cloud Classification ISPRS Journal of Photogrammetry and Remote Sensing, 164, 2640 doi.org/10.1016/j.isprsjprs.2020.03.016 Xudong Lai, Yifei 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 Yongguang Yang, Feng Chen, Fei Wu, Deliang Zeng, Yi-mu Ji, Xiao-Yuan Jing (2020) MultiView Semantic Learning Network for Point Cloud-Based 3D Object Detection Neurocomputing, doi.org/10.1016/j.neucom.2019.10.116