CV の世界における 3D ビジョンの究極の実現: コンピューターがこの 3 次元の世界を「見る」方法

CV の世界における 3D ビジョンの究極の実現: コンピューターがこの 3 次元の世界を「見る」方法

携帯電話を開くと顔がロック解除されます。VR と AR 技術は、このような仮想でありながら現実のシーンをもたらします... 3D ビジョンはほぼ万能であり、スマートホーム、スマート セキュリティ、自動車エレクトロニクス、産業計測、ニュー リテール、スマート ロジスティクスなどの分野で重要な役割を果たしています。産業革新を可能にする最大の原動力であると言えます。これらのテクノロジーには 3D ビジョン関連のコンテンツが含まれますが、コンピューターはどのようにしてこの 3 次元の世界を「見る」のでしょうか?

情報技術の急速な発展に伴い、コンピュータービジョン 3D 技術は多くの分野に応用され、仮想現実 (VR) や拡張現実 (AR) などの技術の継続的な進歩を促進しています。 3D ビジョンの問題は、2D よりも豊富な画像情報を提供するため、ますます重要になっています。

現在、3Dビジョン技術がもたらす利便性は、あらゆるところで見ることができます。産業用ロボット、ワークピースの識別と位置決め、3Dイメージング技術、製品の仮想設計、インテリジェント製造、自律運転、SLAM、ドローン、3D再構築、顔認識など、すべて3Dビジョン関連のコンテンツに関係しています。

3D ビジョン アプリケーションの例、出典: https://zhuanlan.zhihu.com/p/52049458

要約すると、3D ビジョンは、コンピュータ ビジョンとコンピュータ グラフィックスの交差度が高い重要な研究方向です。 3次元センシング技術の急速な発展と3次元幾何データの爆発的な増加により、3Dビジョン研究は従来の2次元画像空間を突破し、3次元空間の分析、理解、相互作用を実現しました。

私たちは三次元空間に住んでおり、外部環境をいかにインテリジェントに認識し探索するかは常に注目される話題となっています。 2Dビジョン技術は、強力なコンピュータービジョンとディープラーニングアルゴリズムの助けを借りて、人間の認知能力を超える成果を達成しましたが、3Dビジョンは、アルゴリズムモデリングや環境依存性などの問題により、研究の最前線に立っています。3次元情報は、物体と環境の状態を真に反映することができ、人間の知覚パターンに近いものです。

技術の継続的な進歩に伴い、3次元視覚の分野も急速に進歩しています。たとえば、3D+AI認識機能は、顔の3次元構造をスキャンして携帯電話のロックを解除できます。自動運転分野では、3D顔情報を分析することで、運転中のドライバーの感情状態を判断できます。SLAMは、周囲の環境を再構築することでマッピングと知覚を完了します。AR分野では、3次元再構築技術を使用してターゲットを再現します。では、このような実用的な技術はどのようにして実現されるのでしょうか?

詳しく説明する前に、まず 3D ビジョン テクノロジーの基本的な知識を理解しましょう。

3D画像の紹介

3D 画像を紹介する前に、まずは 2D 画像について簡単におさらいしておきましょう。私たちが日常生活で目にする画像は物理的な画像と言えます。このような画像はコンピュータで直接認識することができないため、デジタル形式、つまりデジタル画像に変換する必要があります。デジタル画像は、有限のデジタル値ピクセルを持つ 2 次元画像の表現です。配列または行列によって表される光の位置と強度は離散的です。保存方法には、ビットマップ保存とベクター保存の 2 種類があります。一般的な保存形式には、PNG、GIF、JPEG、BMP などがあります。

2D 画像は、バイナリ画像、カラー画像などに分けられます。バイナリ画像の各ピクセルは、0 (黒) から 255 (白) までの明るさの値で表すことができます。 0~255 は異なるグレーレベルを表します。カラー画像は、赤成分 (R)、緑成分 (G)、青成分 (B) の 3 つの異なる色のグレースケール画像で構成されます。

画像の色の表示方法、RGB画像の3つのコンポーネント、出典:https://blog.csdn.net/Hello_Chan/article/details/89094790

2 次元画像と同様に、3 次元画像には 2 次元カラー画像に基づく追加の次元、つまり深度 (D) があり、これは非常に直感的な式で表現できます。3 次元画像 = 通常の RGB 3 チャンネル カラー画像 + 深度マップ。

RGB-D

RGB-D は広く使用されている 3D 形式で、画像の各ピクセルには赤 (R)、緑 (G)、青 (B)、深度 (D) の 4 つの属性があります。

深度マップは 3 次元画像に特有のもので、各ピクセルを保存するために使用されるビット数を指します。また、画像の色解像度を測定するためにも使用されます。カラー画像の場合はピクセルあたりの可能な色の数、グレースケール画像の場合はピクセルあたりの可能なグレーレベルの数を決定します。カラー画像に表示できる色の最大数、またはグレースケール画像の最大グレーレベルを決定します。その値は規則的であり、既存の画像処理フレームワークで直接使用するのに適しています。

深度マップの説明に関して、例えば、カラー画像の各ピクセルは、R、G、B の 3 つの成分で表されます。各成分が 8 ビットの場合、ピクセルは 24 ビットで表されます。この場合、ピクセルの深度は 24 で、各ピクセルは 16777216 (224) 色のいずれかになります。したがって、ピクセル深度は深度画像距離値として理解できます。ピクセルを表すために使用されるビット数が多いほど、表現できる色の数が多くなり、深度も増します。

RGB-D 画像形式、出典: https://www.sohu.com/a/249567571_114877

一般的なピクセルベースの画像では、任意のピクセルを (x, y) 座標で特定し、それぞれ 3 つの色属性 (R、G、B) を取得できます。一方、RGB-D 画像では、各 (x, y) 座標は 4 つの属性 (深度 D、R、G、B) に対応します。

ポイントクラウド

3D ビジョンを行うときは、主に点の集合であるポイント クラウドを扱います。画像と比較すると、ポイント クラウドには、深さというかけがえのない利点があります。つまり、3 次元ポイント クラウドは 3 次元空間でデータを直接提供しますが、画像では透視幾何学を使用して 3 次元データを推測する必要があります。

ポイントクラウドとは何ですか?実際、ポイント クラウドは、特定の座標系内のポイントのデータ セットです。ポイントには、3 次元座標 X、Y、Z、色、分類値、強度値、時間などの豊富な情報が含まれています。ポイント クラウドは、その構成特性に基づいて、整列ポイント クラウドと無秩序ポイント クラウドの 2 つのタイプに分類されます。

ポイントクラウドの例、出典: https://www.jianshu.com/p/ffedad5e8e30

ポイントクラウドの取得: ポイントクラウドは、通常のカメラで写真を撮ることによって取得されるのではなく、双眼カメラ、3次元スキャナー、RGB-D カメラなどの 3 次元画像センサーを通じて取得されるのが一般的です。現在主流のRGB-Dカメラとしては、MicrosoftのKinectシリーズ、IntelのRealSenseシリーズ、構造センサー(iPadと連動して使用する必要がある)などがあります。カメラキャリブレーションを通じてカメラの固有パラメータを使用して現実世界のポイント (x、y) を計算することにより、スキャンされた RGB-D 画像とスキャンカメラの固有パラメータからポイントクラウドを作成できます。したがって、RGB-D 画像はグリッド配置された画像ですが、ポイント クラウドはよりスパースな構造です。さらに、点群を取得するためのより優れた方法としては、LiDAR レーザー検出と測定があり、これは主に衛星、航空機、地上の 3 つの方法で取得されます。

点群の内容: レーザー測定原理に従って取得された点群には、3 次元座標 (XYZ) とレーザー反射強度 (強度) が含まれます。強度情報は、対象物の表面材質、粗さ、入射角方向、および機器の放射エネルギーとレーザー波長に関連しています。写真測量の原理に従って得られた点群には、3次元座標(XYZ)と色情報(RGB)が含まれます。ポイントクラウドは、3次元座標 (XYZ)、レーザー反射強度 (Intensity)、色情報 (RGB) など、レーザー測定と写真測量の原理を組み合わせて取得されます。

ポイント クラウドのプロパティ: 空間解像度、ポイント精度、表面法線ベクトルなど。

RGB-D カメラは広く使用されていますが、多くのハードウェア制限の影響を受けます。現在、深度カメラによって出力される深度マップには多くの問題があります。たとえば、滑らかな表面、透明なオブジェクト、半透明のオブジェクト、暗いオブジェクトなどの反射により、深度マップが失われる可能性があります。さらに、多くの深度カメラでは大きな深度値が欠落しており、後でさらに深度マップの完成操作が必要になります。

[[354295]]

画像出典: https://www.cnblogs.com/CV-life/p/10105480.html

上の写真は屋外の道路を点群画像で撮影したものです。よく見ると建物や木々の輪郭がはっきりと見えます。上の写真に関して、ポイント クラウドの利点は次のようにまとめることができます。まず、ポイント クラウドは、オブジェクトの空間的な輪郭と特定の位置を表現できます。道路や家の形が見え、カメラからオブジェクトまでの距離もわかります。次に、ポイント クラウド自体は視野角に依存せず、任意に回転できます。ポイント クラウドはさまざまな角度と方向から観察でき、同じ座標系にある限り、異なるポイント クラウドを直接融合できます。

次に、ポイント クラウドを拡大します。下の図に示すように、ポイント クラウドを拡大すると、最終的に表示されるのは個別のポイントです。つまり、空間内の何千もの点が点の集合を形成し、この点の集合が上にある道路や家屋などを構成します。

[[354296]]

拡大点群画像、出典: https://www.cnblogs.com/CV-life/p/10105480.html

拡大された点群画像から反映された点群の欠点は、次のようにまとめることができます。3 次元の点群には、画像よりも 1 つの次元、つまり深度があります。点群は不規則に分布しており、画像内の規則的なグリッドよりも処理が困難です。点群は画像内のテクスチャがなく、孤立した点であるため、多くの情報が失われます。さらに、ポイント クラウドは空間 (XYZ ポイント) に分散された非構造化データ (グリッドなし) であり、画像ではピクセル数はカメラによって決まる一定の値です。ただし、ポイント クラウドの数はさまざまなセンサーによって大きく異なる可能性があり、ポイント クラウドの解像度はカメラからの距離に関係します。近距離では観察できず、非常に遠い視点からのみ全体を観察できます。

ポイント クラウドの結果の比較を見てみましょう。元の RGB-D によって生成されたポイント クラウドの結果は次のとおりです。

画像出典: https://zhuanlan.zhihu.com/p/42084058

次のアニメーションは、深度マップの完了後に生成されたポイント クラウドを示しています。

画像出典: https://zhuanlan.zhihu.com/p/42084058

点群データの保存形式

ポイント クラウド ストレージ ファイル形式は多数あります。一部のファイル形式は標準化と普遍性を重視しており、現在では複数の関連ソフトウェアやソフトウェア ライブラリでサポートされており、業界のほとんどの人にも認識され使用されています。現在、ポイント クラウドの主な保存形式には、pts、LAS、PCD、.xyz、.pcap などがあります。適切なユニバーサル フォーマットを選択すると、他のツールや他の組織との接続が向上し、作業効率が向上します。以下に、ポイント クラウドのデータ保存形式を簡単に示します。

pts ポイント クラウド ファイル形式は、最もシンプルなポイント クラウド形式です。ポイント クラウド データを XYZ 順序で直接保存し、整数型または浮動小数点型にすることができます。次の図は、彫像の点群の一部を示しています。次に例を示します。

LAS は LiDAR データであり、その保存形式は pts よりも複雑です。さまざまなハードウェアおよびソフトウェア プロバイダーが相互運用可能な統一形式を出力できるようにするオープン形式標準を提供することを目的としています。 LAS 形式のファイルは現在、LiDAR データの業界標準形式となっています。次に例を示します。

LAS 形式のポイント クラウドのスクリーンショット。C: クラス (クラス)、F: フライト (フライト番号)、T: 時間 (GPS 時間)、I: 強度 (エコー強度)、R: リターン (エコー数)、N: リターン数 (エコー数)、A: スキャン角度 (スキャン角度)、RGB: 赤緑青 (RGB カラー値)。画像出典: https://www.cnblogs.com/chenbokai/p/6010143.html

PCD 保存形式。既存のファイル構造は、その独自の構成により、n 次元ポイント型メカニズム処理プロセスで PCL ライブラリ (後で紹介) によって導入された一部の拡張機能をサポートしていませんが、PCD ファイル形式はこれをうまく補うことができます。 PCD 形式には、ポイント クラウドの全体的な情報を記述するファイル ヘッダーがあります。ポイント クラウドの数、サイズ、次元、データ タイプを定義する人間が判読できるヘッダーと、ASCII またはバイナリのデータ セグメントです。データ本体はポイントの直交座標で構成され、テキスト モードではスペースが区切り文字として使用されます。

PCD ストレージ形式は、PCL ライブラリによって指定された公式形式であり、通常はポイント クラウド向けにカスタマイズされた形式です。利点は、n 次元のポイント タイプ拡張メカニズムをサポートし、PCL ライブラリのポイント クラウド処理パフォーマンスをより効果的に発揮できることです。ファイル形式はテキストとバイナリです。次に例を示します。

画像出典: https://cloud.tencent.com/developer/article/1475778

.xyz はテキスト形式です。最初の 3 つの数字は点の座標を表し、最後の 3 つの数字は点の法線ベクトルを表します。数字はスペースで区切られます。次に例を示します。

.pcap はユニバーサル データ ストリーム形式であり、人気の Velodyne LiDAR のデフォルトのデータ取得ファイル形式です。バイナリファイルです。

データ構造は次のとおりです。

全体はグローバル ヘッダー (GlobalHeader) であり、これは複数のパケット (Packets) に分割され、各パケットにはヘッダー (Header) とデータ (Data) 部分が含まれます。

対応する基本アルゴリズムライブラリはさまざまな形式をサポートしています

ポイント クラウド データの量は膨大であり、表示と保存には専用のデータ リポジトリが必要です。たとえば、640 x 480 の深度マップは、約 30 万の空間ポイントのポイント クラウドに変換できます。大規模なポイント クラウドは、数百万、数千万に達することもあります。このとき、ポイント クラウドの読み取り、書き込み、処理、およびその他の操作専用のデータ リポジトリが非常に重要になります。

PCL (Point Cloud Library) ライブラリはクロスプラットフォーム ストレージをサポートしており、Windows、Linux、macOS、iOS、Android にデプロイできます。コンピューティング リソースやメモリが限られているアプリケーション シナリオに適用できます。これは、多数の一般的なポイント クラウド関連アルゴリズムと効率的なデータ構造を実装する大規模なクロスプラットフォーム オープン ソース C++ プログラミング ライブラリです。Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull などのサードパーティ ライブラリに基づいており、ポイント クラウド関連の取得、フィルタリング、セグメンテーション、登録、検索、特徴抽出、認識、追跡、表面再構築、視覚化などの操作を実装しており、モバイル開発に非常に便利です。

ここでの「共通」とは、XYZ、XYZC、XYZN、XYZG などの多くの種類のポイント クラウドを含むポイント クラウド データの種類を指します。低レベルのポイントクラウド処理には、主にフィルター、キーポイント、エッジ検出が含まれることがわかります。ポイントクラウドの中間レベルの処理は、特徴の記述、セグメンテーション、分類です。高レベルの処理には登録と認識が含まれます。

PCL ライブラリに加えて、VCG ライブラリ (視覚化およびコンピュータ グラフィックス ライブラリ) は、三角形メッシュの処理用に特別に設計されています。このライブラリは大規模で、多くの高度なメッシュ処理機能と比較的少数のポイント クラウド処理機能を提供します。

CGAL (Computational Geometry Algorithms Library) は、C++ ライブラリの形式で便利で効率的かつ信頼性の高いジオメトリ アルゴリズムを提供するように設計された計算ジオメトリ アルゴリズム ライブラリです。多数のポイント クラウドおよびメッシュ処理アルゴリズムを実装しています。

Open3D は、3D データ処理ソフトウェアの迅速な開発をサポートするオープン ソース ライブラリです。 3Dデータを処理するソフトウェアの迅速な開発をサポートします。 Open3D フロントエンドは、C++ と Python で慎重に選択されたデータ構造とアルゴリズムのセットを公開します。バックエンドは高度に最適化されており、並列化のために設定されています。 Open3D は、依存関係をほとんど考慮せずに、ゼロから開発されました。さまざまなプラットフォームでセットアップでき、ソース コードからのコンパイルは最小限で済みます。コードはクリーンで、スタイルが一貫しており、明確なコードレビューメカニズムを通じて維持されています。ポイント クラウド、メッシュ、RGBD データがサポートされています。

この記事は3Dビジョンの概要であり、いくつかの重要な知識ポイントを紹介しています。この記事が皆さんの3Dビジョンへの理解をある程度深めるのに役立つことを願っています。次回の記事では、3D ビジョン分野におけるアルゴリズムの実装について引き続き紹介していきます。

<<:  2020 年の最もクールな機械学習スタートアップ 12 社

>>:  AIビジョンを取り入れることで、ガソリンスタンドは非常に「スマート」になることができます

ブログ    
ブログ    

推薦する

不確実な環境での自動運転の軌道計画を改善するにはどうすればよいでしょうか?

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

エッジ AI はどのようにして将来の AI および IoT トレンドのロードマップとなるのでしょうか?

エッジデバイスとコンピューティングにおける AI アプリケーションが未来である理由は何でしょうか?変...

ディープラーニングモデルの知的財産権をどのように保護するか? IJCAI 2021ワークショップの内容をご覧ください

先日終了したIJCAI 2021カンファレンスでは、「ディープラーニングモデルの知的財産保護に関する...

...

ワイツマンとNVIDIAは、自然言語を使って写真を編集できるText2LIVEを共同でリリースした。

Photoshop のようなソフトウェアを使用することは、創造的な作業とみなされますか、それとも反...

2019年のディープラーニングツールの概要

ディープラーニングツールディープラーニングの進歩は、ソフトウェア インフラストラクチャの進歩にも大き...

MITとIBMが共同で「コンピュータービジョンの黄金時代に備える」ための新しいデータセットを発表

人工知能の分野における画像分類問題に関して言えば、トレーニングとテストに最もよく使用されるデータセッ...

...

人工知能は何度も「危機的状況」に陥っているが、「成長痛」をどう解決するのか?

専門家や業界関係者は、人工知能がさまざまな業界や分野に広く浸透するにつれ、現場の応用に重点を置き基礎...

2022年、ビッグモデルはどこまで行けるでしょうか?

[[442868]]著者: ユン・チャオこの記事は、2021年の業界レビュー、2021年のビッグモ...

...

...

テクノロジーは未来を変えます。将来、配達員も失業するでしょう。配達員のいない郵便局だけが残るでしょう。

信じますか?近い将来に配達員が失業するなどとは信じられない人もいるかもしれないが、これは紛れもない事...

...