詳解 3 次元点群処理 Python による基礎アルゴリズムの実装

ショウカイ サンジゲンテングンショリ パイソンニヨルキソアルゴリズムノジッソウ

詳解 3 次元点群処理 Python による基礎アルゴリズムの実装の表紙
プログラミング
著者:
金崎 朝子 / 秋月 秀一 / 千葉 直也(カネザキ アサコ / アキヅキ シュウイチ / チバ ナオヤ)
出版社:
講談社
出版日:
2022年10月05日頃
ISBN:
9784065293430
シリーズ:
KS 理工学専門書
在庫:
在庫あり
4(2 件 / 楽天ブックス)
中級者向け
Python深層学習3DCGアルゴリズム点群処理Open3DICPPointNet物体認識RGBD

なぜ注目されているか

総合713位 ↑ 3 ランクアップ 言及 4 件・うち記事 2 件を掲載
言及数
822位

書籍紹介

基礎的な点群処理から、ICP アルゴリズム、物体認識、PointNet までを Python で学ぼう!★章末問題付き★

・Open3D を使用し、Python プログミングとともに平易に解説。
・サンプルコードをサポートページから提供したので、すぐに実践できる!

・最終章では、RGBD 画像、ボクセルデータ、メッシュデータ、多視点画像の 3 次元データ処理も解説。

【主な内容】
第 1 章 はじめに

第 2 章 点群処理の基礎

第 3 章 特徴点・特徴量の抽出

第 4 章 点群レジストレーション (位置合わせ)

第 5 章 点群からの物体認識

第 6 章 深層学習による 3 次元点群処理

第 7 章 点群以外の 3 次元データ処理

目次

第 1 章 はじめに
1.1 3 次元世界について

1.2 本書について

1.3 3 次元計測原理

1.4 3 次元センサの紹介

章末問題

第 2 章 点群処理の基礎
2.1 ファイル入出力

2.2 描画

2.3 回転・並進・スケール変換

2.4 サンプリング

2.5 法線推定

章末問題

第 3 章 特徴点・特徴量の抽出
3.1 特徴点 (キーポイント)

3.2 大域特徴量

3.3 局所特徴量

章末問題

第 4 章 点群レジストレーション (位置合わせ)
4.1 最近傍点の探索 (単純な方法)

4.2 最近傍点の探索 (kd-tree による方法)

4.3 ICP アルゴリズム

4.4 ICP アルゴリズムの実装 (Point-to-Point)

4.5 ICP アルゴリズムの実装 (Point-to-Plane)

章末問題

第 5 章 点群からの物体認識
5.1 特定物体認識と一般物体認識

5.2 特定物体の姿勢推定

5.3 一般物体の姿勢推定

5.4 プリミティブ検出

5.5 セグメンテーション

章末問題

第 6 章 深層学習による 3 次元点群処理
6.1 深層学習の基礎

6.2 PyTorch Geometric による 3 次元点群の扱い

6.3 PointNet

6.4 点群の畳み込み

6.5 最新研究動向

章末問題

第 7 章 点群以外の 3 次元データ処理
7.1 RGBD 画像処理

7.2 ボクセルデータ処理

7.3 メッシュデータ処理

7.4 多視点画像処理

7.5 Implicit Function を用いた 3 次元形状表現

章末問題

技書の森解説

LiDAR や深度カメラが返す 3 次元点群を、ライブラリの関数として呼ぶだけでなく、中で何が計算されているかまで追いながら扱えるようになりたい人のための本です。『詳解 3 次元点群処理』は金崎朝子、秋月秀一、千葉直也 著で、講談社から 2022 年 10 月 3 日に発行されました。副題は「Python による基礎アルゴリズムの実装」で、版元は基礎的な点群処理から ICP アルゴリズム、PointNet までを Python で学ぶ本と紹介し、点群ライブラリには Open3D を使います。サンプルコードはサポートページから入手できます。

計測原理から点群以外の 3 次元データまで、全 7 章の構成

目次は第 1 章「はじめに」から第 7 章「点群以外の 3 次元データ処理」までの 7 章で、すべての章の末尾に章末問題が付きます。第 1 章で 3 次元計測の原理とセンサーを紹介したあと、第 2 章「点群処理の基礎」はファイル入出力、描画、回転 / 並進 / スケール変換、サンプリング、法線推定を扱います。第 3 章は特徴点と大域特徴量、局所特徴量、第 4 章は単純な方法と kd-tree による方法の 2 通りの近傍点の探索と ICP アルゴリズムの Point-to-Point と Point-to-Plane の 2 通りの実装、第 5 章は特定物体と一般物体の姿勢推定、プリミティブ検出、セグメンテーションです。第 6 章で PyTorch Geometric による点群の扱いと PointNet、点群の畳み込みへ進み、第 7 章では RGBD 画像、ボクセル、メッシュ、多視点画像と、Implicit Function を用いた形状表現まで扱います。

位置合わせと点群の学習が難しい理由

点群処理の中心にある難しさは、点が順序も格子も持たない集合だという点にあります。画像であれば隣の画素はすぐに分かりますが、点群では「近くの点」を探すこと自体が計算になります。素朴に全点と比べれば点の数に比例した時間がかかるため、空間を分割した 木構造 で探索範囲を絞り込む工夫が欠かせません。2 つの点群を重ね合わせる ICP は、対応する最も近い点を探しては剛体変換を解き直す処理を繰り返すため、この探索の速さが全体の速さを決めます。また ICP は初期位置が大きくずれていると誤った位置で収束するため、特徴量による大まかな対応付けと組み合わせて使われるのが一般的です。

学習の面でも、点の並び順を入れ替えても同じ形は同じ形として扱う必要があります。PointNet は、各点に同じ ニューラルネットワーク を適用したあと、並び順に左右されない最大値の集約で全体の特徴をまとめることで、この条件を満たした代表的な手法です。本書は第 4 章で ICP を 2 通り実装し、第 6 章で PointNet を扱うので、古典的な幾何処理と学習による処理の両方を同じ Python の環境で比べられます。

Open3D と Python で手を動かしたい人に向く一冊

版元の紹介どおり、本書は点群処理の基礎を Python の実装で一通り確かめていく構成です。測距センサーのデータを扱い始めた技術者や、ロボットの把持や位置推定の研究に入る学生が、Open3D の関数が内部で行う処理を自分で書いて確かめる用途に合います。一方で、ネットワークの学習そのものを体系的に学びたい場合は ディープラーニング本の選び方 で紹介しているような専門の本と組み合わせると理解が進みます。PCL などの C++ ライブラリを使った開発手順を求める人にも、Python と Open3D で書かれた本書は直接の答えにはなりません。

点群を「表示できる」段階から、位置合わせや認識の結果がなぜそうなるのかを説明できる段階へ進みたい人にとって、計測原理から PointNet、点群以外の 3 次元データまでを 1 冊の実装で通せる本書は、手元のデータで試す前の土台として役に立ちます。

言及した記事 (2 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: