การแก้ไข LiDAR point cloud เพื่อลบเสียง / ค่าผิดปกติที่อยู่ด้านล่างและบนพื้นดินหรือไม่


10

ฉันมีข้อมูล LiDAR "สกปรก" ที่มีการส่งคืนครั้งแรกและครั้งสุดท้ายและข้อผิดพลาดอย่างหลีกเลี่ยงไม่ได้ภายใต้และเหนือระดับพื้นผิว (ภาพ)

ป้อนคำอธิบายรูปภาพที่นี่

ฉันมี SAGA, QGIS, ESRI และ FME ในมือ แต่ไม่มีวิธีการจริง เวิร์กโฟลว์ที่ดีในการล้างข้อมูลนี้จะเป็นอย่างไร มีวิธีการแบบอัตโนมัติเต็มรูปแบบหรือฉันจะลบด้วยตนเองอย่างใด?


ข้อมูล cloud point ของคุณมีการจำแนกเสียงรบกวนต่ำ / สูง (คลาส 7 & 8 จาก las specs 1.4 R6) หรือไม่?
แอรอน

คุณลองทำอะไรกับผลิตภัณฑ์ซอฟต์แวร์เหล่านั้นและคุณติดอยู่กับที่ใด คุณดูเหมือนจะต้องการพูดคุยเกี่ยวกับตัวเลือกมากกว่าถามคำถามที่มุ่งเน้น ตัวเลือกการพูดคุยเป็นเรื่องปกติที่ต้องทำในห้องสนทนา GIS
PolyGeo

1
การลงคะแนนเพื่อเปิดใหม่อีกครั้งในขณะที่ผู้ดูแลข้อผิดพลาดคำถามที่ขอซอฟต์แวร์ที่มีคำถามที่ถามวิธีการ / วิธีการทำบางสิ่งบางอย่าง คำตอบที่แสดงเฉพาะซอฟต์แวร์ไม่ใช่คำตอบที่แท้จริงในบริบทนี้ ฉันอธิบายที่ดีกว่ามุมมองของฉันในgis.meta.stackexchange.com/questions/4380/...
Andre Silva

1
นอกจากนี้ก็ดูเหมือนว่า“กว้างเกินไป” ปิดข้างเดียวได้ถูกนำมาใช้มากเกินไป: gis.meta.stackexchange.com/questions/4816/... ฉันคิดว่ากรณีนี้ใช้ สิ่งที่ทำให้คำถามเอกพจน์คือการมีค่าผิดปกติทุกประเภทในเมฆจุด
Andre Silva

คำตอบ:


9

ดูเหมือนว่าคุณจะมีค่าผิดปกติ:

  • i) ใต้พื้นผิวดิน
  • ii) เหนือพื้นผิวดินและในแนวตั้งท่ามกลางคุณสมบัติอื่น ๆ ของพื้นดินจริง;
  • iii) เหนือพื้นดินที่มีความสูงมากกว่าวัตถุที่น่าสนใจทั้งหมดตัวอย่างเช่นสิ่งที่เกิดจากเมฆหรือนก (สิ่งนี้ไม่ได้แสดงในภาพ แต่ฉันสมมติว่ามันอาจเป็นเช่นนั้น)

สำหรับ 'i' ตัวเลือกคือใช้อัลกอริธึมกราวด์ตัวกรองที่สามารถพิจารณา 'ความผิดพลาดเชิงลบ' เพื่อรับ LiDAR จุดคลาวด์ที่สะอาด ดูอัลกอริทึมการจำแนกประเภทความโค้งเชิงเส้น (MCC) จาก Evans และ Hudak (2007) ได้มีการกล่าวในหน้า 4:

ความผิดพลาดเชิงลบเกิดขึ้นเป็นปกติในข้อมูล LiDAR ซึ่งอาจเกิดจากการกระเจิงของโฟตอนในเลเซอร์พัลส์ที่ส่งคืน การกระเจิงเป็นเวลานานสำหรับเลเซอร์พัลส์ที่ปล่อยออกมาเพื่อกลับไปยังเซ็นเซอร์ของเครื่องบินทำให้การคำนวณระยะทางไกลขึ้นซึ่งทำให้เกิดข้อผิดพลาดในการวัดซึ่งการบันทึกระดับความสูงของพื้นผิวนั้นผิดพลาด ควรสังเกตว่าวิธีการจำแนกความโค้งสามารถลบผลตอบแทนที่ถูกต้องโดยรอบความผิดพลาดเชิงลบซึ่งสามารถขยายสิ่งประดิษฐ์ขอบรอบ ๆ ความผิดพลาดเชิงลบเพื่อสร้างผลกระทบ "ปล่องระเบิด" ที่แตกต่างกัน ในการแก้ไขข้อผิดพลาดเชิงลบ Haugerud และ Harding แนะนำให้ตั้งค่าพารามิเตอร์ความอดทนต่อความโค้งเป็นสี่เท่าของขนาดของเซลล์ที่ถูกสอดแทรกและเลือกผลตอบแทนเกินขีด จำกัด ความโค้งเชิงลบนี้ อย่างไรก็ตามควรสังเกตว่าภายใต้สถานการณ์บางอย่างผลตอบแทนที่ดูเหมือนจะเป็นความผิดพลาดเชิงลบอาจเป็นผลตอบแทนที่ถูกต้อง (เช่น sinkholes) ดังนั้นคำแนะนำก่อนหน้านี้ในการลบข้อผิดพลาดเชิงลบที่อาจเกิดขึ้นสามารถนำไปใช้เป็นรูปแบบลูปสุดท้ายที่เป็นทางเลือกเพื่อใช้ตามดุลยพินิจของผู้ใช้หากจำเป็น

ด้านล่างมีโพสต์พร้อมตัวอย่างเกี่ยวกับการใช้ MCC-LIDAR:

เมื่อคุณมี LiDAR กราวด์พอยท์ที่ถูกต้องเพื่อสร้าง DEM ที่ถูกต้องคุณจะสามารถทำให้คลาวด์พ้อยท์เป็นปกติและแยกจุดที่อยู่ใต้ผิว DEM (อันที่มีค่าลบ) การใช้วิธีการเดียวกันนี้ยังเป็นไปได้ที่จะระบุที่อยู่จุดลบ 'iii' จุดที่อยู่เหนือขีด จำกัด ที่แน่นอน ดูตัวอย่าง:

จากนั้นมันทำให้เรามี 'ii' ซึ่งได้รับคำตอบlasnoiseจากคำตอบของ AlecZ ที่แนะนำจาก LAStools นอกจากนี้ยังจะจัดการ 'iii' และอาจเป็นส่วนหนึ่งของ 'i' ด้วย (LAStools ต้องการใบอนุญาต) เครื่องมืออื่น ๆ ที่สร้างขึ้นโดยเฉพาะสำหรับการตรวจสอบ / ลบค่าผิดถูกอ้างถึงที่นี่: filters.outlierเครื่องมือของ PDAL ในคำตอบของ Charlie Parrซึ่งมีคำอธิบายโดยละเอียดเกี่ยวกับวิธีการทำงานของเครื่องมือและประโยชน์จาก PDAL คือซอฟต์แวร์ฟรี

จากนั้นสิ่งที่เหลือจากกระบวนการอัตโนมัติ (หากมีค่าเกิน) สามารถลบออกได้ด้วยตนเอง ตัวอย่างเช่น:


อีแวนส์, เจฟฟรีย์เอส; Hudak, Andrew T. 2007 อัลกอริทึมความโค้งหลายระดับสำหรับการจำแนก LiDAR แบบแยกกลับในสภาพแวดล้อมแบบฟอเรสต์ ธุรกรรม IEEE เกี่ยวกับธรณีศาสตร์และการสำรวจระยะไกล 45 (4): 1029-1038


3

ฉันจะแนะนำPDALจุดห้องสมุดข้อมูล abstratction ฉันประสบความสำเร็จในการใช้ PDAL สำหรับปัญหาการกรองที่คล้ายกัน ฉันชอบ PDAL เพราะเป็นโอเพ่นซอร์สให้การสนับสนุน Python และทำให้ฉันสามารถทำซ้ำการประมวลผลและติดตามพารามิเตอร์การกรองของฉันได้ง่าย ฉันชอบเพราะมันมี 'ท่อ' ที่คุณสามารถโยงหลายขั้นตอนเข้าด้วยกัน (เช่นครอบตัดแล้วกรองจากนั้นส่งออก) และดำเนินการในครั้งเดียว โปรดทราบว่าถ้าคุณมีจริง ๆ แล้ว cloud point ขนาดใหญ่จริง ๆ PDAL อาจไม่เร็วเท่ากับโซลูชันอื่น ๆ (LASTools, QTM ฯลฯ )

คุณสามารถแก้ไขปัญหาของจุดที่อยู่ห่างไกลด้วยไพพ์ไลน์ PDAL คล้ายกับต่อไปนี้:

{
"pipeline": [
    "input_utm.las",
    {
        "type":"filters.crop",
        "bounds":"([401900,415650],[7609100,7620200])"
    },
    {
        "type":"filters.outlier",
        "method":"statistical",
        "mean_k":12,
        "multiplier":2.0
    },
    {
        "type":"filters.range",
        "limits":"Classification![7:7]"
    },
    {
      "filename":"output.tif",
      "resolution":1.0,
      "output_type":"mean",
      "radius":3.0,
      "bounds":"([401900,415650],[7609100,7620200])",
      "type": "writers.gdal"
    }
    ]
}

ไปป์ไลน์นี้อ่านใน LAS แล้วครอบลงในขอบเขต UTM ที่ระบุจากนั้นทำการกรองซึ่งทำเครื่องหมายจุดที่อยู่ห่างไกลทั้งหมดจากนั้นทำการกรองที่สองซึ่งเก็บเฉพาะจุดที่ไม่อยู่ไกลออกไป (เช่นการจำแนกธง! = 7) จากนั้นส่งออกไปยัง GeoTIFF ความละเอียด 1 ม. ตัวกรองเชิงสถิติกำลังดำเนินการการคำนวณระยะทางเพื่อนบ้านที่ใกล้ที่สุดเพื่อทดสอบว่าจุดนั้นไกลเกินไปจากเพื่อนบ้านหรือไม่

จากเอกสารประกอบ :

ป้อนคำอธิบายรูปภาพที่นี่


1
@AndreSilva แก้ไขแล้ว! โดยพื้นฐานแล้วมันจะถามว่าอะไรคือ 'ระยะทาง' ปกติสำหรับจุดที่จะก่อตัวเป็นเพื่อนบ้าน (mean_k) และถ้าระยะทางสำหรับจุดไกลเกินไป (มากกว่า (ตัวคูณ) * ซิกมาเหนือระยะทางเฉลี่ย) จากนั้นมันจะถูกตั้งค่าสถานะเป็น ค่าผิดปกติ
Charlie Parr

1

เนื่องจาก OP ไม่ได้ จำกัด การแก้ปัญหาสำหรับโอเพ่นซอร์สฉันจึงแนะนำ Quick Terrain Modeler ( QT Modeler ) มันต้องมีใบอนุญาต โหลดคลาวด์พอยต์ใน QT และคุณเอียงมันเป็นหลักเพื่อรับมุมมองโปรไฟล์ที่คุณต้องการรวมแถบยางคลัสเตอร์ที่คุณต้องการลบแล้วกด hit delete


1

ฉันมีโชคแค่ใช้ความแปรปรวนของจุดโฟกัสบนแรสเตอร์แบบสอดแทรก จากนั้นคุณกำหนดค่าความแปรปรวนให้กับคะแนนของคุณและใช้เกณฑ์เพื่อลบความแปรปรวนระดับสูงในพื้นที่ซึ่งเป็นตัวแทนการออกจำนวนมากจากการประมาณเคอร์เนลท้องถิ่น

คุณต้องตรวจสอบให้แน่ใจว่าความละเอียดของพื้นผิวที่ถูกสอดแทรกนั้นเป็นเกรนที่เล็กพอที่จะจับการแปรผันของท้องถิ่นที่ระดับจุด ขนาดของเคอร์เนลจะมีผลเช่นกัน แต่สำหรับค่าผิดปกติเดียวหน้าต่าง 3x3 ควรเพียงพอ คุณอาจสูญเสียจุดเพิ่มเติมเล็กน้อยได้ยินและมี แต่ด้วย LIDAR คุณมีข้อมูลเพียงพอที่จะสำรอง


1

Lastools มอบสิ่งที่คุณต้องการอย่างแท้จริง - สคริปต์อัตโนมัติที่จะลบจุดเหล่านี้ให้คุณ มีค่าลิขสิทธิ์สำหรับสิ่งนั้น แต่ถ้านี่เป็นกระบวนการที่คุณต้องการทำอย่างรวดเร็วเป็นงานปกติการใช้สคริปต์ lasnoiseจากชุดเครื่องมือของพวกเขาเป็นตัวเลือกที่สมบูรณ์แบบ

ดังที่ @Andre Silva ตั้งข้อสังเกต ArcGIS มีชุดเครื่องมือ las ซึ่งคุณสามารถใช้หลังจากเรียกใช้เครื่องมือประมวลผลการสร้างชุดข้อมูล LAS LASAS จากตรงนั้นคุณสามารถเข้าไปด้วยตนเองเพื่อจัดประเภทใหม่หรือลบจุดรบกวนเหล่านี้ ข้อเสียเปรียบก็คือมันไม่ได้เป็นกระบวนการที่ใช้งานง่ายหรือมีประสิทธิภาพในฐานะ QT Modeler (แนะนำโดย @auslander) อาจเป็นโปรแกรมที่ดีที่สุดสำหรับการแสดง / วิเคราะห์ / จัดการไฟล์เลเซอร์ด้วยตนเองและด้วยต้นทุนใบอนุญาตเช่นกัน ArcMap จะ จำกัด จำนวนของจุดที่มองเห็นได้เมื่อทำการแก้ไขจุดคลาวด์ของคุณซึ่งหมายความว่าคุณอาจต้องซูมเข้าไปในพื้นที่ที่มีเสียงดังลบหรือจัดประเภทใหม่จากนั้นย้ายไปเป็นส่วนหนึ่งของกระบวนการล้างด้วยมือ แต่นี่จะทำให้งานเสร็จ


1

ตามที่Andre Silva ได้กล่าวไว้ MCC-LIDAR เป็นตัวเลือกที่ดีในการแยกประเด็นที่สำคัญ แต่จากประสบการณ์ของฉันมันจะต้องดิ้นรนหากคุณมีจุดที่ใหญ่มาก (500 ล้านคะแนนหรือน้อยกว่า) กล่าวอีกนัยหนึ่งมันจะส่งคืนข้อผิดพลาดและจะไม่เรียกใช้อัลกอริทึมแม้ว่าคุณจะเปลี่ยนการตั้งค่า (พารามิเตอร์สเกลและความโค้ง) นอกจากนี้จากประสบการณ์ของฉันมันเก็บ "ความผิดพลาดเชิงลบ" ไว้ในข้อมูล

ทางเลือกของฉันคือการเปลี่ยนจุดกลับ (จุดด้านล่างของพื้นดินจะสูงขึ้นและพื้นดินด้านบนจะลงไป) ในการรับสิ่งนี้ฉันโหลดข้อมูลลงใน R และกลับด้านความสูงจากนั้นเรียกใช้ MCC-LIDAR และกลับข้อมูลอีกครั้ง คุณอาจทำสิ่งนี้ใน QGIS หรือ ArcGIS แต่ขึ้นอยู่กับขนาดของชุดข้อมูลของคุณอาจใช้เวลาสักครู่ในการทำ

เครื่องมือ PDAL พื้นดินยังเป็นตัวเลือกที่ดีที่จะทำงานได้ดีกับชุดข้อมูลขนาดใหญ่ แต่อีกครั้งบางจุดที่ร้องพื้นดินจะยังคงถูกเก็บไว้ การแปลงชุดข้อมูลเป็นอีกครั้งจะช่วยแก้ปัญหานี้ได้

สำหรับจุดที่อยู่เหนือพื้นดินแนวทางที่ดีที่สุดของฉันคือการทำความสะอาดด้วยตนเองและเครื่องมือโอเพนซอร์สที่ดีที่สุดที่ฉันเคยทำอยู่ใน CloudCompare คุณจะเลือกSegmentในเมนูบาร์ด้านบนและคุณสามารถลบคะแนนที่เลือกหรืออื่น ๆ ทั้งหมด ฉันเคยใช้ LAStools มาก่อน ( lasviewเครื่องมือ) สำหรับเรื่องนี้ แต่วิธีการทำงานของส่วนต่อประสาน 3D นั้นไม่เป็นมิตรต่อผู้ใช้


วิธีการที่น่าสนใจทำให้เมฆจุดเปลี่ยนเพื่อลบความผิดพลาดเชิงลบ มันง่ายที่จะโหลด 500 ล้านคะแนน pointcloud ใน R หรือไม่?
Andre Silva

อาจใช้เวลาสองสามนาที ฉันมักจะอัปโหลดจากไฟล์ ASCII โดยใช้ fread จากแพ็คเกจการพัฒนา data.table ซึ่งฉันสามารถเล่นกับจำนวนเธรดที่จะใช้
Andre

1

ฉันได้รับการสนับสนุนทางเทคนิคจาก GreenValley International เครื่องมือกำจัดค่าผิดพลาดในซอฟต์แวร์เรือธงของเราLiDAR360สามารถใช้เพื่อลบข้อผิดพลาดเหล่านี้ให้มากที่สุดและปรับปรุงคุณภาพข้อมูล

อัลกอริทึมจะค้นหาจุดที่อยู่ใกล้เคียงของจุดแต่ละจุดภายในพื้นที่ใกล้เคียงที่ผู้ใช้กำหนดและคำนวณระยะทางเฉลี่ยจากจุดไปยังจุดที่อยู่ใกล้เคียง จากนั้นค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของระยะทางเฉลี่ยเหล่านี้สำหรับทุกจุดจะถูกคำนวณ หากระยะทางเฉลี่ยของจุดหนึ่งไปยังเพื่อนบ้านมีขนาดใหญ่กว่าระยะทางสูงสุด (ระยะทางสูงสุด = หมายถึง + n * ค่าเบี่ยงเบนมาตรฐานโดยที่ n คือจำนวนที่ผู้ใช้กำหนดจำนวนมาก) มันจะถูกพิจารณาว่าเป็นค่าผิดปกติและถูกลบออกจากต้นฉบับ จุดเมฆ

ป้อนคำอธิบายรูปภาพที่นี่


-1

ในฐานะที่เป็นตัวเลือกโอเพนซอร์ส3D Forestมีเครื่องมือที่ดีในการกรองโดยอัตโนมัติรวมถึงเครื่องมือด้วยตนเองเพื่อล้างจุดเมฆ คุณอาจต้องลองใช้พารามิเตอร์ตัวกรองที่แตกต่างกันเพื่อให้ได้ผลลัพธ์ตามที่คุณต้องการ ถึงแม้ว่ามันจะมุ่งเน้นไปที่เมฆจุดป่าเครื่องมือจำนวนมากมีประโยชน์ในเมฆจุดใด ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.