uav4geo / OpenPointClass

Fast and memory efficient semantic segmentation of 3D point clouds. Runs on Windows, Mac and Linux.
GNU Affero General Public License v3.0
121 stars 17 forks source link

Segmentation fault during creation of second pass #24

Closed EstebanMendez closed 3 months ago

EstebanMendez commented 3 months ago

Hi,

I get a segfault for a .laz file that I am trying to classify using docker. It looks like it fails during the creation of the second pass.

./pcclassify /data/21A027_628_58_0000.laz ./classified.ply /data/model.bin

I am uncertain if it it is a bug, but rather an older LAS specification version or similar that is causing the issue. You have specified that version 1.4 is required for training - is it the same for pcclassify? If this is the case, do you have any recommendation for conversion. I did try to convert it without any success. The location of the laser data is in the southern part of Sweden.

Please let me know if I need to provide you with any additional information.

Output of lasinfo: Heading '21A027_628_58_0000.laz' with 11317852 points lasinfo (240220) report for '21A027_628_58_0000.laz' reporting all LAS header entries: file signature: 'LASF' file source ID: 0 global_encoding: 1 project ID GUID data 1-4: 00000000-0000-0000-0000-000000000000 version major.minor: 1.2 system identifier: '' generating software: 'LASzip DLL 2.4 r0 (150731)' file creation day/year: 336/2021 header size: 227 offset to point data: 227 number var. length records: 0 point data format: 1 point data record length: 28 number of point records: 11317852 number of points by return: 7718162 1749178 983754 571157 295601 scale factor x y z: 0.01 0.01 0.01 offset x y z: 535000 6715000 0 min x y z: 580000.00 6280000.00 -390.66 max x y z: 582499.99 6282499.99 341.04 LASzip compression (version 2.4r0 c2 50000): POINT10 2 GPSTIME11 2 reporting minimum and maximum for all LAS point record entries ... X 4500000 4749999 Y -43500000 -43250001 Z -39066 34104 intensity 382 65535 return_number 1 5 number_of_returns 1 5 edge_of_flight_line 0 0 scan_direction_flag 0 1 classification 1 18 scan_angle_rank -18 18 user_data 0 0 point_source_ID 13603 13605 gps_time 300525420.164837 300527088.064599 number of first returns: 7718162 number of intermediate returns: 1849949 number of last returns: 7719279 number of single returns: 5969538 overview over number of returns of given pulse: 5969538 1531136 1237623 1102336 1477219 0 0 histogram of classification of points: 4987784 unclassified (1) 6310052 ground (2) 8978 noise (7) 2528 water (9) 8420 bridge deck (17) 90 Reserved for ASPRS Definition (18)

pierotofy commented 3 months ago

Can you share the .laz file? I could try to take a look.

EstebanMendez commented 3 months ago

Sure, here you go: https://www.dropbox.com/scl/fi/x80gaacczqmfyhlj8574j/21A027_628_58_0000.zip?rlkey=kxi6noiaybo7hyd5h4qik1xri&dl=0

If you prefer another delivery method just let me know, I can't upload it as an attachment since the file limit is 25MB. I got the data from the Swedish government, as it is publicly available. The files they are serving are about 50MBs and I suppose it is the unmodified (no lastools etc) version that you want.

Thanks in advance.

pierotofy commented 3 months ago

Seems to be a crash due to the lack of colors in the input.

I've just added https://github.com/uav4geo/OpenPointClass/commit/0f23e58dc08ee6fdc9f6789bbdba9f97487255cd which sets a default color if there are no colors in the input point set. Note that you will likely need to train a new model on non-colored data for it to work.

Try to rebuild/retry? :pray:

EstebanMendez commented 3 months ago

Works like a charm! Thank you very, very much.

A final note on my end is if you have any recommendation with regards to "training a new model on non-colored data"? What I have found so-far are the examples provided in this repository: https://github.com/OpenDroneMap/ODMSemantic3D If the approach in the ODMSemantic3D is the recommended approach, then, how much data would be sufficient and how accurate would I need to be.

Again, thanks a bunch!

pierotofy commented 3 months ago

The consensus with these classifiers is that the more data, the better, although at some point you'll have diminishing returns. Glad it worked!