๐Ÿ’ป
Tutorial
  • INTRO
  • Part 0 (๊ฐœ์š”)
    • README
    • 3D ์˜์ƒ์ฒ˜๋ฆฌ
    • [๋ณ„์ฒจ] PCL & PCD๋ž€ (100%)
    • chapter02 : PCL ์„ค์น˜ (100%)
    • chapter03 : ROS ์‹ค์Šต ์ค€๋น„(100%)
  • Part 1 (์ดˆ๊ธ‰)
    • README
    • PCL ๊ธฐ๋ฐ˜ ๋กœ๋ด‡ ๋น„์ ผ
    • [๋ณ„์ฒจ] ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์ž…์ถœ๋ ฅ (70%)
      • PCL-Cpp (70%)
      • PCL-Python (70%)
      • Open3D-Python (70%)
      • ROS ์‹ค์Šต (90%)
    • Filter
    • [๋ณ„์ฒจ] ์ƒ˜ํ”Œ๋ง (70%)
      • ๋‹ค์šด์ƒ˜ํ”Œ๋ง-PCL-Cpp (70%)
      • ๋‹ค์šด์ƒ˜ํ”Œ๋ง-PCL-Python (50%)
      • ์—…์ƒ˜ํ”Œ๋ง-PCL-Cpp (70%)
      • ROS ์‹ค์Šต (90%)
    • [๋ณ„์ฒจ] ๊ด€์‹ฌ ์˜์—ญ ์„ค์ • (70%)
      • PCL-Cpp (70%)
      • PCL-Python (70%)
      • ROS ์‹ค์Šต (90%)
    • [๋ณ„์ฒจ] ๋…ธ์ด์ฆˆ ์ œ๊ฑฐ (70%)
      • PCL-Cpp (70%)
      • PCL-Python (50%)
      • ROS ์‹ค์Šต (90%)
  • Part 2 (์ค‘๊ธ‰)
    • README
    • Kd-Tree/Octree Search
    • Chapter03 : Sample Consensus
    • [๋ณ„์ฒจ] ๋ฐ”๋‹ฅ์ œ๊ฑฐ (RANSAC) (70%)
      • PCL-Cpp (70%)
      • PCL-Python (70%)
      • ROS ์‹ค์Šต (90%)
    • ๊ตฐ์ง‘ํ™” (70%)
      • Euclidean-PCL-Cpp (70%)
      • Euclidean-PCL-Python (0%)
      • Conditional-Euclidean-PCL-Cpp (50%)
      • DBSCAN-PCL-Python (0%)
      • Region-Growing-PCL-Cpp (50%)
      • Region-Growing-RGB-PCL-Cpp (50%)
      • Min-Cut-PCL-Cpp (50%)
      • Model-Outlier-Removal-PCL-Cpp (50%)
      • Progressive-Morphological-Filter-PCL-Cpp (50%)
    • ํฌ์ธํŠธ ํƒ์ƒ‰๊ณผ ๋ฐฐ๊ฒฝ์ œ๊ฑฐ (60%)
      • Search-Octree-PCL-Cpp (70%)
      • Search-Octree-PCL-Python (70%)
      • Search-Kdtree-PCL-Cpp (70%)
      • Search-Kdtree-PCL-Python (70%)
      • Compression-PCL-Cpp (70%)
      • DetectChanges-PCL-Cpp (50%)
      • DetectChanges-PCL-Python (50%)
    • ํŠน์ง• ์ฐพ๊ธฐ (50%)
      • PFH-PCL-Cpp
      • FPFH-PCL-Cpp
      • Normal-PCL-Cpp (70%)
      • Normal-PCL-Python (80%)
      • Tmp
    • ๋ถ„๋ฅ˜/์ธ์‹ (30%)
      • ์ธ์‹-GeometricConsistencyGrouping
      • SVM-RGBD-PCL-Python (70%)
      • SVM-LIDAR-PCL-Python (0%)
      • SVM-ROS (0%)
    • ์ •ํ•ฉ (70%)
      • ICP-PCL-Cpp (70%)
      • ICP-ROS ์‹ค์Šต (10%)
    • ์žฌ๊ตฌ์„ฑ (30%)
      • Smoothig-PCL-Cpp (70%)
      • Smoothig-PCL-Python (70%)
      • Triangulation-PCL-Cpp (70%)
  • Part 3 (๊ณ ๊ธ‰)
    • README
    • ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ํ•™์Šต ๋ฐ์ดํ„ฐ ์ƒ์„ฑ (0%)
      • PointGAN (90%)
      • AutoEncoder (0%)
    • ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ƒ˜ํ”Œ๋ง ๊ธฐ๋ฒ• (0%)
      • DenseLidarNet (50%)
      • Point Cloud Upsampling Network
      • Pseudo-LiDAR
    • ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ž์œจ์ฃผํ–‰ ํƒ์ง€ ๊ธฐ์ˆ  (0%)
    • ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ž์œจ์ฃผํ–‰ ๋ถ„๋ฅ˜ ๊ธฐ์ˆ  (0%)
      • Multi3D
      • PointNet
      • VoxelNet (50%)
      • YOLO3D
      • SqueezeSeg
      • butNet
  • Snippets
    • PCL-Snippets
    • PCL-Python-Helper (10%)
    • Lidar Data Augmentation
  • Appendix
    • ์‹œ๊ฐํ™”Code
    • ์‹œ๊ฐํ™”ํˆด
    • Annotationํˆด
    • Point Cloud Libraries (0%)
    • ๋ฐ์ดํ„ฐ์…‹
    • Cling_PCL
    • ์ฐธ๊ณ  ์ž๋ฃŒ
    • ์ž‘์„ฑ ๊ณ„ํš_Tips
    • ์šฉ์–ด์ง‘
Powered by GitBook
On this page
  • 1. Normal Estimation
  • 2.

Was this helpful?

  1. Part 2 (์ค‘๊ธ‰)
  2. ํŠน์ง• ์ฐพ๊ธฐ (50%)

Tmp

PreviousNormal-PCL-Python (80%)Next๋ถ„๋ฅ˜/์ธ์‹ (30%)

Last updated 4 years ago

Was this helpful?

ํŠน์ง•์ด๋ž€ ๊ฐ ํฌ์ธํŠธ๋“ค์ด ๊ฐ€์ง„ ๊ณ ์œ  ์„ฑ์งˆ๋กœ ๊ฐ ํฌ์ธํŠธ๋“ค์„ ๊ตฌ๋ถ„ ํ• ๋•Œ ์‚ฌ์šฉ ๋ฉ๋‹ˆ๋‹ค.

2D ์ด๋ฏธ์ง€ ๋ถ„์„์„ ๋‹ค๋ฃจ์–ด ๋ณด์‹  ๋ถ„์ด๋ผ๋ฉด ํŠน์ง•์ (Keypoint/Feature)์™€ ํŠน์ง• ๊ธฐ์ˆ ์ž(Feature descriptor)๋ผ๋Š” ์šฉ์–ด์— ๋Œ€ํ•˜์—ฌ ์•„์‹ค๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠน์ง•์ ์ด๋ž€ ๊ทธ๋ฆผ์˜ ํŠน์ง•์„ ์ž˜ ๋‚˜ํƒ€๋‚ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์˜๋ฏธ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‹ค๊ฐํ˜•์˜ ๊ผญ์ง€์ (corner)'์ด๋‚˜ '์„ ๋ถ„์˜ ๋์ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ง•์ ์€ ๋ฌผ์ฒด ํƒ์ง€, ๋ฌผ์ฒด ์ถ”์ , ๋ฌผ์ฒด ๋งค์นญ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠน์ง•์  ์ถ”์ถœ์„ ์œ„ํ•ด์„œ Harris, SIFT, FAST ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง• ๊ธฐ์ˆ ์ž๋Š” ํŠน์ง•์ ์˜ ์ง€์—ญ์  ํŠน์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ง•์ ๊ฐ„ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•ด ์ง‘๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํŠน์ง• ๊ธฐ์ˆ ์ž๋Š” SIFT, HOG ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

3D ํฌ์ธํŠธ ํด๋ผ์šฐ๋“œ ๋ถ„์„์‹œ์—๋„ ์ด๋Ÿฌํ•œ ํŠน์ง•(Feature)์ •๋ณด๋“ค์„ ํ™œ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฑ•ํ„ฐ์—์„œ ๋‹ค๋ฃฐ ๋ถ„๋ฅ˜๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ๋Š” ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

image

1. Normal Estimation

์ ๊ตฐ์—์„œ ๊ตฌํ• ์ˆ˜ ์žˆ๋Š” Feature์ค‘์— ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ Surface Normal์— ๋Œ€ํ•˜์—ฌ ์‚ดํŽด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € Normal์€ ์‚ผ์ฐจ์› ๊ณต๊ฐ„์—์„œ๋Š” ๊ณต๊ฐ„์— ์žˆ๋Š” ํ‰๋ฉด ์œ„์˜ ํ•œ ์ ์„ ์ง€๋‚˜๋ฉด์„œ ๊ทธ ํ‰๋ฉด์— ์ˆ˜์ง์ธ ์ง์„ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Normal์€ ํฌ๊ฒŒ ๊ผญ์ง€์  ๋ฒ•(Vertex Normals)๊ณผ ํ‰๋ฉด ๋ฒ•์„ (Face/surface Normals)๋กœ ๋‚˜๋ˆ„์–ด ์ง‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ‰๋ฉด ๋ฒ•์„ ๋งŒ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฉฐ, ์ค„์—ฌ์„œ Normal์ด๋ผ๊ณ  ํ‘œ๊ธฐ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Normal ์ข…๋ฅ˜

3D Surface Normal

์ •์˜ : The normal of a plane is an unit vector that is perpendicular to it

Normal Estimation์€ ์ƒ˜ํ”Œ๋ง ๋œ ๊ฐ’๋“ค๋กœ๋ถ€ํ„ฐ ๋ฐฉํ–ฅ ์ •๋ณด๋ฅผ ๋ณต์›ํ•ด ๋‚ด๋Š” ์ž‘์—…์„ ์˜๋ฏธ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ƒ˜ํ”Œ๋ง๋œ ๊ฐ’๋“ค์ž…๋‹ˆ๋‹ค. ํ•œ์ ์˜ ๋ณด๋งŒ์œผ๋กœ๋Š” ๋ฒ•์„  ๋ฒกํ„ฐ๋ฅผ ๊ตฌํ• ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋Œ€์ƒ ์ ์˜ ์ด์›ƒํ•œ ์ ๋“ค์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ด์šฉํ•˜๋ฉด ์ƒ˜ํ”Œ๋งํ•˜๊ธฐ ์ „์— ๊ทธ ์ ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋˜ ๋ฉด์˜ ๋ฒ•์„  ๋ฒกํ„ฐ๋ฅผ ๊ทผ์‚ฌ์ ์œผ๋กœ ์ถ”์ • ํ• ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋Œ€์ƒ์ ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ๊ตญ์†Œ์ ์ธ ์ •๋ณด๋กœ ๋ถ€ํ„ฐ ๊ตฌํ•ด ๋‚ธ ๋ฒ•์„  ๋ฒกํ„ฐ๋ฅผ ์ถ”์ • ๋ฒ•์„  ๋ฒกํ„ฐ(estimated normal)๋ผ ํ•ฉ๋‹ˆ๋‹ค. PCL์—์„œ๋Š” ์ƒ˜ํ”Œ๋ง ๋ฐฉ๋ฒ•์œผ๋กœ ์ด์ „์žฅ์—์„œ ์‚ดํŽด๋ณธ Octree Search๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Integral images๋„ normal estimation๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ RGB-D์„ผ์„œ๋“ฑ์—์„œ ์–ป์€ organized clouds๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ  ์žˆ์–ด ์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์— ์ž˜ ๊ธฐ์ˆ  ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

image

[์ด๊ณณ]
https://laonple.blog.me/221195959435
Overview and Comparison of Features
3D object recognition (descriptors)
Keypoints and Features