Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7613690B2 - 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program - Google Patents
[go: Go Back, main page]

JP7613690B2 - 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program - Google Patents

3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program Download PDF

Info

Publication number
JP7613690B2
JP7613690B2 JP2021094793A JP2021094793A JP7613690B2 JP 7613690 B2 JP7613690 B2 JP 7613690B2 JP 2021094793 A JP2021094793 A JP 2021094793A JP 2021094793 A JP2021094793 A JP 2021094793A JP 7613690 B2 JP7613690 B2 JP 7613690B2
Authority
JP
Japan
Prior art keywords
image
point cloud
pixel
pixel position
dimensional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021094793A
Other languages
Japanese (ja)
Other versions
JP2022186523A (en
Inventor
泰洋 八尾
慎吾 安藤
潤 島村
涼一 石川
岳史 大石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Tokyo NUC
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
University of Tokyo NUC
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, University of Tokyo NUC, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2021094793A priority Critical patent/JP7613690B2/en
Publication of JP2022186523A publication Critical patent/JP2022186523A/en
Application granted granted Critical
Publication of JP7613690B2 publication Critical patent/JP7613690B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Description

開示の技術は、3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムに関する。 The disclosed technology relates to a 3D point cloud processing device, a 3D point cloud processing method, and a 3D point cloud processing program.

非特許文献1には、LiDAR(Light Detection and Ranging)とステレオ画像により、LiDARによって疎な点群をステレオ画像の視差推定結果に基づいてアップサンプリングした深度画像を出力する技術が開示されている。 Non-Patent Document 1 discloses a technology that uses LiDAR (Light Detection and Ranging) and stereo images to output a depth image by upsampling a sparse point cloud obtained by LiDAR based on the disparity estimation results of the stereo images.

非特許文献2には、教師ありの深層学習によってLiDARとステレオ画像からLiDAR点群をアップサンプリングした深度画像を出力する技術が開示されている。 Non-Patent Document 2 discloses a technology that uses supervised deep learning to output a depth image by upsampling the LiDAR point cloud from LiDAR and stereo images.

非特許文献3には、半教師ありの深層学習によってLiDARとステレオ画像からLiDAR点群をアップサンプリングした深度画像を出力する技術が開示されている。非特許文献3に開示の技術では投影誤りがある場合でもその影響を除去して推論をすることが可能である。 Non-Patent Document 3 discloses a technology that uses semi-supervised deep learning to output a depth image by upsampling the LiDAR point cloud from LiDAR and stereo images. The technology disclosed in Non-Patent Document 3 makes it possible to remove the influence of projection errors and perform inference even if they exist.

Maddern, Will, and Paul Newman. "Real-time probabilistic fusion of sparse 3D LIDAR and dense stereo." 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2016.Maddern, Will, and Paul Newman. "Real-time probabilistic fusion of sparse 3D LIDAR and dense stereo." 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2016. Park, Kihong, Seungryong Kim, and Kwanghoon Sohn. "High-precision depth estimation with the 3d lidar and stereo fusion." 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2018.Park, Kihong, Seungryong Kim, and Kwanghoon Sohn. "High-precision depth estimation with the 3d lidar and stereo fusion." 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2018. Cheng, Xuelian, et al. "Noise-aware unsupervised deep lidar-stereo fusion." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.Cheng, Xuelian, et al. "Noise-aware unsupervised deep lidar-stereo fusion." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

非特許文献1の問題点は、投影されたLiDAR点を正しい奥行値とみなして処理をすることであり、投影誤りがある場合を考慮していないことである。 The problem with Non-Patent Document 1 is that the projected LiDAR points are processed assuming that they are the correct depth values, and do not take into account cases where projection errors may occur.

非特許文献2の問題点は、非特許文献1と同様、投影誤りがデータにあることを考慮していないこと、および学習のために高密度な深度画像を必要とするがそのようなデータを得ることが容易ではないことである。 The problem with Non-Patent Document 2, like Non-Patent Document 1, is that it does not take into account that projection errors exist in the data, and that high-density depth images are required for learning, but it is not easy to obtain such data.

非特許文献3の問題点は、学習時に正しくレジストレーションされたLiDAR計測とステレオ画像の組が多量に必要となることであり、そのようなデータを得ることは容易ではない。 The problem with Non-Patent Document 3 is that a large number of correctly registered pairs of LiDAR measurements and stereo images are required for learning, and obtaining such data is not easy.

上述したように、非特許文献1、2の問題は「LiDARデータの投影誤りを考慮していない」という点である。また、非特許文献3の問題は「多量の学習データを必要とする」という点である。 As mentioned above, the problem with Non-Patent Documents 1 and 2 is that they "do not take into account the projection error of LiDAR data." Also, the problem with Non-Patent Document 3 is that it "requires a large amount of training data."

さらに、非特許文献1~3はいずれも「視差推定をした結果によってアップサンプリングしたデータを作成する」という処理になっている。ステレオによる視差推定は長距離での距離計測精度が落ちる。これに対してLiDARは長距離でも距離計測精度が高いが、その特性を生かすことができていない。 Furthermore, all of Non-Patent Documents 1 to 3 use a process in which "upsampled data is created based on the results of disparity estimation." Disparity estimation using stereo reduces distance measurement accuracy over long distances. In contrast, LiDAR has high distance measurement accuracy even over long distances, but this characteristic is not utilized.

開示の技術は、上記の点に鑑みてなされたものであり、計測して得られた3次元点群を精度よくアップサンプリングすることができる3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムを提供することを目的とする。 The disclosed technology has been made in consideration of the above points, and aims to provide a 3D point cloud processing device, a 3D point cloud processing method, and a 3D point cloud processing program that can accurately upsample 3D point clouds obtained by measurement.

本開示の第1態様は、3次元点群処理装置であって、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する近傍選択部と、を含む。 A first aspect of the present disclosure is a three-dimensional point cloud processing device, which includes an input processing unit that receives a first image and a second image, the relationship of which at least is determined in advance, and a three-dimensional point cloud on the surface of an object, the relationship of which at least is determined in advance between the shooting position and the measurement position, and determines pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, and a neighborhood selection unit that selects, for each pixel position on the first image, based on the pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, from depth values of three-dimensional points corresponding to multiple neighboring pixel positions, so that the consistency between the first image and the second image is high.

本開示の第2態様は、3次元点群処理方法であって、入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、近傍選択部が、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する。 A second aspect of the present disclosure is a three-dimensional point cloud processing method, in which an input processing unit receives a first image and a second image for which at least the relationship between the shooting positions has been determined in advance, and a three-dimensional point cloud on the surface of an object for which at least the relationship between the shooting positions and the measurement positions has been determined in advance, and determines pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, and a neighborhood selection unit selects, for each pixel position on the first image, based on the pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, the depth value from the depth values of three-dimensional points corresponding to multiple neighboring pixel positions, so that the consistency between the first image and the second image is high.

本開示の第3態様は、3次元点群処理プログラムであって、コンピュータを、上記第1態様の3次元点群処理装置として機能させるためのプログラムである。 The third aspect of the present disclosure is a 3D point cloud processing program that causes a computer to function as the 3D point cloud processing device of the first aspect.

開示の技術によれば、計測して得られた3次元点群を精度よくアップサンプリングすることができる。 The disclosed technology makes it possible to upsample 3D point clouds obtained through measurement with high precision.

本実施形態の3次元点群処理装置として機能するコンピュータの一例の概略ブロック図である。FIG. 2 is a schematic block diagram of an example of a computer that functions as the three-dimensional point cloud processing device of the present embodiment. LiDARセンサによる計測点と、第1カメラ及び第2カメラの撮影シーンとの一例を示す図である。A figure showing an example of measurement points measured by a LiDAR sensor and scenes captured by a first camera and a second camera. 本実施形態の3次元点群処理装置の構成を示すブロック図である。1 is a block diagram showing a configuration of a three-dimensional point cloud processing apparatus according to an embodiment of the present invention; (A)第1画像の一例を示す図、(B)第2画像の一例を示す図、及び(C)第1画像に3次元点群を投影した結果の一例を示す図である。FIG. 1A is a diagram showing an example of a first image, FIG. 1B is a diagram showing an example of a second image, and FIG. 1C is a diagram showing an example of the result of projecting a three-dimensional point cloud onto the first image. 近傍集合を抽出する方法を説明するための図である。FIG. 13 is a diagram for explaining a method for extracting a neighborhood set. 本実施形態の3次元点群処理装置の3次元点群処理ルーチンを示すフローチャートである。4 is a flowchart showing a three-dimensional point cloud processing routine of the three-dimensional point cloud processing device of the present embodiment.

以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。 Below, an example of an embodiment of the disclosed technology will be described with reference to the drawings. Note that the same reference symbols are used for identical or equivalent components and parts in each drawing. Also, the dimensional ratios in the drawings have been exaggerated for the convenience of explanation and may differ from the actual ratios.

<本実施形態の概要>
本実施形態では、LiDARによる計測で得られた疎な3次元点群について、カメラにより撮影された第一画像と第二画像を手掛かりとしてアップサンプリングをする。
<Outline of this embodiment>
In this embodiment, a sparse 3D point cloud obtained by LiDAR measurement is upsampled using a first image and a second image captured by a camera as clues.

具体的には、LiDARの投影を正しいとせずに、画素の周囲に投影された3次元点から、コスト関数と平滑化項とからなるエネルギー関数に基づいて最適である奥行値を選択するという手法により、学習データを必要とせず、LiDARの投影情報に誤りがある場合でも、LiDARによって計測された3次元点群を正しくアップサンプリングするものである。 Specifically, the LiDAR projection is not assumed to be correct, and the optimal depth value is selected from the 3D points projected around the pixel based on an energy function consisting of a cost function and a smoothing term. This method does not require training data and correctly upsamples the 3D point cloud measured by LiDAR even if there is an error in the LiDAR projection information.

さらに、本実施形態は、LiDARで計測した3次元点群を画素に割り当てる形でアップサンプリングをするため、視差推定を実施する手法とは異なり、長距離において計測精度が維持されることを特徴としている。 Furthermore, this embodiment is characterized by upsampling by assigning the 3D point cloud measured by LiDAR to pixels, so that measurement accuracy is maintained over long distances, unlike methods that perform disparity estimation.

このように、本実施形態では、学習データを用いないこと、LiDARとカメラ間に、車両の移動やセンサ位置の違いから生じるオクルージョンによる投影誤りがある場合でも正しくアップサンプリングが可能なこと、画像の視差による距離推定をせずLiDARで計測された3次元点群をアップサンプリングするので長距離での精度低下が抑えられることを特徴とする。 As such, this embodiment is characterized by the fact that it does not use learning data, that it is possible to perform correct upsampling even when there is a projection error between the LiDAR and the camera due to occlusion caused by vehicle movement or differences in sensor position, and that it is possible to suppress loss of accuracy over long distances by upsampling the 3D point cloud measured by the LiDAR without estimating distance based on image parallax.

<本実施形態に係る3次元点群処理装置の構成>
図1は、本実施形態の3次元点群処理装置10のハードウェア構成を示すブロック図である。
<Configuration of the 3D point cloud processing device according to this embodiment>
FIG. 1 is a block diagram showing the hardware configuration of a three-dimensional point cloud processing apparatus 10 according to the present embodiment.

図1に示すように、3次元点群処理装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。 As shown in FIG. 1, the 3D point cloud processing device 10 has a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a storage 14, an input unit 15, a display unit 16, and a communication interface (I/F) 17. Each component is connected to each other via a bus 19 so as to be able to communicate with each other.

CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、3次元点群をアップサンプリングするための3次元点群処理プログラムが格納されている。3次元点群処理プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。 The CPU 11 is a central processing unit that executes various programs and controls each part. That is, the CPU 11 reads out a program from the ROM 12 or storage 14, and executes the program using the RAM 13 as a working area. The CPU 11 controls each of the above components and performs various calculation processes according to the program stored in the ROM 12 or storage 14. In this embodiment, the ROM 12 or storage 14 stores a three-dimensional point cloud processing program for upsampling a three-dimensional point cloud. The three-dimensional point cloud processing program may be one program, or may be a group of programs composed of multiple programs or modules.

ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。 The ROM 12 stores various programs and various data. The RAM 13 temporarily stores programs or data as a working area. The storage 14 is composed of a HDD (Hard Disk Drive) or SSD (Solid State Drive) and stores various programs including the operating system and various data.

入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群Pとを含む各種の入力を行うために使用される。例えば、入力部15には、図2に示すような、LiDARセンサ50によって計測された3次元点群Pと、第1カメラ52によって撮影された第1画像(図4(A)参照)と、第2カメラ54によって撮影された第2画像(図4(B)参照)と、が入力される。第1カメラ52と第2カメラ54との撮影位置の関係が予め求められており、第1カメラ52の撮影位置とLiDARセンサ50の計測位置との関係が予め求められている。 The input unit 15 includes a pointing device such as a mouse, and a keyboard, and is used to perform various inputs including a first image and a second image for which the relationship between at least the shooting positions is determined in advance, and a three-dimensional point cloud P on the surface of an object for which the relationship between at least the shooting positions and the measurement positions is determined in advance. For example, the three-dimensional point cloud P measured by the LiDAR sensor 50, the first image taken by the first camera 52 (see FIG. 4(A)), and the second image taken by the second camera 54 (see FIG. 4(B)) as shown in FIG. 2 are input to the input unit 15. The relationship between the shooting positions of the first camera 52 and the second camera 54 is determined in advance, and the relationship between the shooting position of the first camera 52 and the measurement position of the LiDAR sensor 50 is determined in advance.

第1画像は、歪み補正されたRGBもしくはグレースケールの画像であり、第2画像は、歪み補正されたRGBもしくはグレースケールの画像である。3次元点群Pは、LiDARセンサ50によって計測された3次元点の集合である。一つ一つの3次元点は、3次元のベクトルであり、3次元点群Pに、3次元点がN点含まれる場合には、3次元点群PはN個の要素を持つ3次元のベクトルの集合となる。 The first image is a distortion-corrected RGB or grayscale image, and the second image is a distortion-corrected RGB or grayscale image. The three-dimensional point cloud P is a collection of three-dimensional points measured by the LiDAR sensor 50. Each three-dimensional point is a three-dimensional vector, and when the three-dimensional point cloud P contains N three-dimensional points, the three-dimensional point cloud P becomes a collection of three-dimensional vectors with N elements.

また、入力部15には、第1カメラ52の内部パラメータK_1、第2カメラ54の内部パラメータK_2、第1カメラ52と第2カメラ54間の回転行列R_C、第1カメラ52と第2カメラ54間の並進ベクトルT_C、第1カメラ52とLiDARセンサ50間の投影行列R_L、及び第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lが入力される。 The input unit 15 also receives input of an internal parameter K_1 of the first camera 52, an internal parameter K_2 of the second camera 54, a rotation matrix R_C between the first camera 52 and the second camera 54, a translation vector T_C between the first camera 52 and the second camera 54, a projection matrix R_L between the first camera 52 and the LiDAR sensor 50, and a translation vector T_L between the first camera 52 and the LiDAR sensor 50.

第1カメラ52及び第2カメラ54の内部パラメータK_1、K_2は、3×3のカメラ内部パラメータ行列である。第1カメラ52と第2カメラ54間の回転行列R_Cは、3×3の回転行列である。第1カメラ52と第2カメラ54間の並進ベクトルT_Cは、3次元のベクトルである。第1カメラ52とLiDARセンサ50間の投影行列R_Lは、3×3の回転行列である。第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lは、3次元のベクトルである。 The internal parameters K_1 and K_2 of the first camera 52 and the second camera 54 are 3x3 camera internal parameter matrices. The rotation matrix R_C between the first camera 52 and the second camera 54 is a 3x3 rotation matrix. The translation vector T_C between the first camera 52 and the second camera 54 is a three-dimensional vector. The projection matrix R_L between the first camera 52 and the LiDAR sensor 50 is a 3x3 rotation matrix. The translation vector T_L between the first camera 52 and the LiDAR sensor 50 is a three-dimensional vector.

表示部16は、例えば、液晶ディスプレイであり、LiDARセンサ50によって計測された3次元点群Pに対してアップサンプリングした結果を含む各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。 The display unit 16 is, for example, a liquid crystal display, and displays various information including the results of upsampling the three-dimensional point cloud P measured by the LiDAR sensor 50. The display unit 16 may employ a touch panel system and function as the input unit 15.

通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。 The communication interface 17 is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark).

次に、3次元点群処理装置10の機能構成について説明する。図3は、3次元点群処理装置10の機能構成の例を示すブロック図である。 Next, the functional configuration of the 3D point cloud processing device 10 will be described. Figure 3 is a block diagram showing an example of the functional configuration of the 3D point cloud processing device 10.

3次元点群処理装置10は、機能的には、図3に示すように、入力処理部20、近傍抽出部22、近傍選択部24、及び平滑化部26を備えている。 As shown in FIG. 3, the 3D point cloud processing device 10 functionally comprises an input processing unit 20, a neighborhood extraction unit 22, a neighborhood selection unit 24, and a smoothing unit 26.

入力処理部20は、入力部15により受け付けた、第1画像及び第2画像と、3次元点群Pとに基づいて、3次元点群Pの各々の3次元点を第1画像上に投影し、各3次元点に対応する第1画像上の画素位置を求める(図4(C)参照)。図4(C)では、ドットで表される物体の表面上の3次元点の一つが、第1画像上の白い物体を表す領域内の画素位置に誤って投影されている例を示している。 The input processing unit 20 projects each of the three-dimensional points of the three-dimensional point group P onto the first image based on the first image, the second image, and the three-dimensional point group P received by the input unit 15, and determines the pixel position on the first image corresponding to each three-dimensional point (see FIG. 4(C)). FIG. 4(C) shows an example in which one of the three-dimensional points on the surface of an object represented by dots is erroneously projected onto a pixel position within an area representing a white object on the first image.

具体的には、3次元点群Pの各々の3次元点を、第1画像上に投影し、第1画像の領域外に投影された3次元点を3次元点群Pから除去する。除去後の3次元点群Pの各々の3次元点に対応する第1画像上の画素位置及び奥行値の組み合わせである要素からなる集合Q_1を求める。集合Q_1の各要素が示す点を、第2画像上に投影し、第2画像の領域外に投影された点を示す要素を集合Q_1から除去し、除去後の集合Q_1に更新する。 Specifically, each 3D point of the 3D point group P is projected onto the first image, and the 3D points projected outside the area of the first image are removed from the 3D point group P. A set Q_1 is obtained that is made up of elements that are combinations of pixel positions and depth values on the first image that correspond to each 3D point of the 3D point group P after the removal. The points indicated by each element of set Q_1 are projected onto the second image, and the elements indicating points projected outside the area of the second image are removed from set Q_1, updating it to set Q_1 after removal.

例えば、3次元点群Pに含まれる3次元点それぞれについて、以下の式に従って投影行列R_L、並進ベクトルT_Lを適用して3次元点群P_1を求める。3次元点群P_1はN個の3次元ベクトルの集合である。 For example, for each of the 3D points included in the 3D point group P, the projection matrix R_L and translation vector T_L are applied according to the following formula to obtain the 3D point group P_1. The 3D point group P_1 is a collection of N 3D vectors.

P_1=R_L P+T_L P_1=R_L P+T_L

3次元点群P_1を内部パラメータK_1により第1カメラ52の第1画像上に投影し、第1画像の領域外に投影されたものを除去し、(第1画像中のx座標、第1画像中のy座標、3次元点の奥行値)からなる要素の集合Q_1を得る。例えば、3次元点p(∈P_1)の各々について以下の式に従って計算される(x,y,d)を集合Q_1の要素とする。
(X,Y,d)=K_1 p
x=X/d
y=Y/d
第1画像の領域内に投影された点の数をM_1と表記する。なお、集合Q_1の各要素と変換前の3次元点群Pの各3次元点との対応付けは保持されている。
The three-dimensional point group P_1 is projected onto the first image of the first camera 52 using the internal parameter K_1, and those projected outside the region of the first image are removed to obtain a set Q_1 of elements consisting of (x coordinate in the first image, y coordinate in the first image, depth value of the three-dimensional point). For example, (x, y, d) calculated according to the following formula for each three-dimensional point p (∈P_1) is set as an element of the set Q_1.
(X, Y, d) = K_1 p
x=X/d
y = Y/d
The number of points projected within the region of the first image is denoted as M_1. Note that the correspondence between each element of the set Q_1 and each 3D point of the 3D point group P before the transformation is maintained.

そして、3次元点群P_1に含まれる3次元点それぞれについて、以下の式に従って投影行列R_C、並進ベクトルT_Cを適用して3次元点群P_2を求める。3次元点群P_2はN個の3次元ベクトルの集合である。 Then, for each of the 3D points included in the 3D point group P_1, the projection matrix R_C and translation vector T_C are applied according to the following formula to obtain the 3D point group P_2. The 3D point group P_2 is a collection of N 3D vectors.

P_2=R_C P_1+T_C P_2=R_C P_1+T_C

3次元点群P_2を内部パラメータK_2により第2カメラ54の第2画像上に投影し、3次元点群P_2から第2画像の領域外に投影されたものを除去し、(第2画像中のx座標、第2画像中のy座標、3次元点の奥行値)からなる要素の集合Q_2を得る。第2画像の領域内に投影された点の数をM_2と表記する。なお、集合Q_2の各要素と変換前の3次元点群Pの各要素との対応付けは保持されている。 The three-dimensional point cloud P_2 is projected onto the second image of the second camera 54 using the internal parameter K_2, and those projected outside the area of the second image are removed from the three-dimensional point cloud P_2 to obtain a set of elements Q_2 consisting of (x coordinate in the second image, y coordinate in the second image, depth value of the three-dimensional point). The number of points projected within the area of the second image is denoted as M_2. Note that the correspondence between each element of the set Q_2 and each element of the three-dimensional point cloud P before transformation is maintained.

集合Q_1のうち、集合Q_2にも含まれている要素を、3次元点群Pとの対応付けを利用して抽出し、集合Q_1及び集合Q_2の両方に含まれている要素からなる集合となるように、集合Q_1を更新する。 Elements of set Q_1 that are also included in set Q_2 are extracted using the correspondence with the 3D point group P, and set Q_1 is updated so that it becomes a set consisting of elements that are included in both set Q_1 and set Q_2.

近傍抽出部22は、3次元点群Pの各々の3次元点に対応する第1画像上の画素位置に基づいて、第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値を抽出する。 The neighborhood extraction unit 22 extracts depth values of three-dimensional points corresponding to multiple neighboring pixel positions for each pixel position on the first image based on the pixel position on the first image corresponding to each three-dimensional point of the three-dimensional point group P.

具体的には、第1画像の画素について、集合Q_1に含まれる要素のうち、近傍の画素位置を持つ要素を抽出する。これにより、各画素位置(x,y)について近傍集合Q_1_xyが抽出される。各画素位置(x,y)の近傍集合Q_1_xyは、集合Q_1の部分集合である。また、近傍の画素位置を持つ要素が抽出されなかった画素位置(x,y)については、近傍集合Q_1_xyは空集合とする。 Specifically, for each pixel in the first image, elements that are included in set Q_1 and have a nearby pixel position are extracted. As a result, a neighborhood set Q_1_xy is extracted for each pixel position (x, y). The neighborhood set Q_1_xy for each pixel position (x, y) is a subset of set Q_1. Furthermore, for pixel positions (x, y) for which no elements with nearby pixel positions were extracted, the neighborhood set Q_1_xy is set as an empty set.

なお、近傍の定義は任意であるが、例えば、画素位置からある半径以内に存在すること(図5)、又は画素位置からK近傍であることを、近傍としてもよい。図5では、注目点である画素位置から探索半径以内に存在する画素位置を有する要素を、近傍集合Q_1_xyとして抽出する例を示している。 Note that the definition of neighborhood is arbitrary, but for example, neighborhood may be within a certain radius from the pixel position (Figure 5), or K neighborhoods from the pixel position. Figure 5 shows an example in which elements having pixel positions that exist within a search radius from the pixel position of interest are extracted as neighborhood set Q_1_xy.

後述する信念伝播部32において、画素位置(x,y)には近傍集合Q_1_xyに含まれる何れかの要素の奥行値が割り当てられる。 In the belief propagation unit 32 described later, the pixel position (x, y) is assigned the depth value of one of the elements in the neighborhood set Q_1_xy.

近傍選択部24は、第1画像上の画素位置(x,y)の各々について、近傍集合Q_1_xyの要素の奥行値から、第1画像と第2画像との間の整合性が高く、かつ当該画素位置(x,y)と当該要素の画素位置との距離が近くなるように、奥行値を選択する。 For each pixel position (x, y) in the first image, the neighborhood selection unit 24 selects a depth value from the depth values of the elements of the neighborhood set Q_1_xy such that there is high consistency between the first image and the second image and the distance between the pixel position (x, y) and the pixel position of the element is short.

具体的には、近傍選択部24は、コスト計算部30及び信念伝播部32を備えている。 Specifically, the neighborhood selection unit 24 includes a cost calculation unit 30 and a belief propagation unit 32.

コスト計算部30は、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる要素の各々について、当該画素位置(x,y)及び当該要素の奥行値を用いて表される点を、第2画像上に投影し、第1画像上の当該画素位置(x,y)の画素値と、第2画像上に点が投影された画素位置の画素値との距離を求める。コスト計算部30は、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる要素の各々について、第1画像上の画素位置(x,y)と当該要素の画素位置との距離、及び上記で求められた第1画像上の当該画素位置(x,y)の画素値と、第2画像上に点が投影された画素位置の画素値との距離を用いて表されるコスト関数を計算する。 For each pixel position (x, y) on the first image, the cost calculation unit 30 projects a point represented by using the pixel position (x, y) and the depth value of the element for each element included in the neighborhood set Q_1_xy onto the second image, and calculates the distance between the pixel value of the pixel position (x, y) on the first image and the pixel value of the pixel position where the point is projected on the second image. For each pixel position (x, y) on the first image, the cost calculation unit 30 calculates a cost function represented by using the distance between the pixel position (x, y) on the first image and the pixel position of the element, and the distance between the pixel value of the pixel position (x, y) on the first image calculated above and the pixel value of the pixel position where the point is projected on the second image for each element included in the neighborhood set Q_1_xy.

具体的には、コスト計算部30は、近傍集合Q_1_xyに含まれる各要素q=(q_x,q_y,d)について、コスト関数を計算する。コスト関数は、画素位置(x,y)が要素qの奥行値dを取る尤もらしさを評価する。 Specifically, the cost calculation unit 30 calculates a cost function for each element q = (q_x, q_y, d) included in the neighborhood set Q_1_xy. The cost function evaluates the likelihood that the pixel position (x, y) has the depth value d of element q.

まず、第1画像の画素位置(x,y)がdの奥行値を持っていたときに第2画像上のどこに投影されるかを導出する。これは、第1画像の画素位置(x,y)と奥行値dとを用いて表される点(x,y,d)を内部パラメータK_1の逆行列によって逆投影し、投影行列R_Cと並進ベクトルT_Cを適用して第2カメラ54の第2画像の座標系に座標変換をしたのちに、内部パラメータK_2によって第2画像平面に投影することによって得ることができる。これによって得た第2画像上での画素位置を(x’,y’)とする。例えば、以下の式に従って、画素位置(x,y)を、奥行値dを用いて第2画像に投影した座標(x’,y’)を計算する。
(X’,Y’,d’)=K_2(R_C K_1-1(d×x,d×y,d)+T_C)
x’=X’/d’
y’=Y’/d’
これによって、画素位置(x,y)がqの奥行値を取った際のコスト関数c_xyqは以下のように求められる。
First, it is derived where on the second image a pixel position (x, y) of the first image is projected when it has a depth value of d. This can be obtained by inversely projecting a point (x, y, d) expressed using the pixel position (x, y) of the first image and the depth value d by the inverse matrix of the internal parameter K_1, applying the projection matrix R_C and the translation vector T_C to perform coordinate transformation into the coordinate system of the second image of the second camera 54, and then projecting onto the second image plane by the internal parameter K_2. The pixel position on the second image obtained in this way is assumed to be (x', y'). For example, the coordinates (x', y') of the pixel position (x, y) projected onto the second image using the depth value d are calculated according to the following formula.
(X', Y', d') = K_2 (R_C K_1 -1 (d×x, d×y, d) + T_C)
x'=X'/d'
y'=Y'/d'
As a result, the cost function c_xyq when the pixel position (x, y) has a depth value of q can be calculated as follows.

c_xyq=w_S Stereo(I_1,I_2,x,y,x’,y’)+w_D Distance(x,y,q_x,q_y) c_xyq=w_S Stereo (I_1, I_2, x, y, x', y') + w_D Distance (x, y, q_x, q_y)

Stereoは、第1画像の画素位置(x,y)と第2画像の画素位置(x’,y’)における画素値の違いを評価する関数であり、画素値の差異、センサス変換をした画像間のハミング距離、画素値の勾配の差異を取る方法などがあり(非特許文献3参照)、その重みづけやウィンドウサイズは任意である。 Stereo is a function that evaluates the difference in pixel values at pixel position (x, y) in the first image and pixel position (x', y') in the second image. There are methods that take the difference in pixel values, the Hamming distance between images that have been census transformed, and the difference in the gradient of pixel values (see Non-Patent Document 3), and the weighting and window size are arbitrary.

Distanceは、第1画像の画素位置(x,y)と要素の画素位置(q_x,q_y)の距離であり、l1距離、l2距離、もしくはHuber距離などであり、距離をトランケーションした値を用いてもよい。 Distance is the distance between the pixel position (x, y) of the first image and the pixel position (q_x, q_y) of the element, and can be the l1 distance, l2 distance, or Huber distance, or a truncated value of the distance can be used.

w_S,w_Dはそれぞれの重みである。c_xyqの意味するところは、画素位置(x,y)に奥行値dを割り当てた際に第1画像と第2画像の整合性が高く、かつ当該画素位置(x,y)の近くに投影された3次元点の奥行値が割り当てやすくなるということを意味する。 w_S and w_D are the respective weights. c_xyq means that when a depth value d is assigned to a pixel position (x, y), the first image and the second image are highly consistent, and it is easy to assign the depth value of a 3D point projected near the pixel position (x, y).

信念伝播部32は、第1画像上の画素位置(x,y)毎に、コスト関数及び隣接する画素において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、3次元点の奥行値を選択する。 For each pixel position (x, y) on the first image, the belief propagation unit 32 selects a depth value for a three-dimensional point based on a cost function and an energy function expressed using the difference from the depth value selected for an adjacent pixel.

具体的には、信念伝播部32は、前述のコスト関数に加えて、平滑化項を考慮したエネルギー関数を定義し、そのエネルギー関数を最小化する奥行値d(x,y)を、第1画像の各画素位置(x,y)のそれぞれについて、信念伝播によって選択する。エネルギー関数Eは以下の式で定義される。 Specifically, the belief propagation unit 32 defines an energy function that takes into account a smoothing term in addition to the cost function described above, and selects the depth value d(x, y) that minimizes the energy function for each pixel position (x, y) of the first image by belief propagation. The energy function E is defined by the following formula.

norm(∇d(x,y))は隣接する奥行値d(x,y)の差分のノルム(l1距離、l2距離、もしくはHuber距離など)を意味し、ノルムをトランケーションした値を用いてもよい。norm(∇d(x,y))は隣接する画素間での奥行値の差分が小さいほど値が小さくなる。
例えば、norm(∇d(x,y))は、注目画素位置から右と下に隣接する画素位置に対して計算する、選択した奥行値の差分のノルム(l1距離、l2距離、もしくはHuber距離など)の和である。右に隣接する画素位置との差分をどのように計算するかを具体的に示す。下に隣接する画素位置との差分の計算も同様である。
第1画像での注目画素位置(x,y)において、奥行値dをQ_1_xyから選択しており、隣接する画素位置(x+1,y)において奥行値d’をQ_1_x+1_yから選択しているとすると、それらの差分(d-d’)を導出し、そのノルムを求める。
norm(∇d(x,y)) means the norm of the difference between adjacent depth values d(x,y) (such as l1 distance, l2 distance, or Huber distance), and a truncated value of the norm may be used. The smaller the difference in depth values between adjacent pixels, the smaller the value of norm(∇d(x,y)).
For example, norm(∇d(x, y)) is the sum of the norms (such as l1 distance, l2 distance, or Huber distance) of the selected depth value differences calculated for the pixel positions adjacent to the right and below the pixel position of interest. A specific example of how to calculate the difference with the pixel position adjacent to the right is shown below. The calculation of the difference with the pixel position adjacent below is similar.
At a pixel position (x, y) of interest in the first image, a depth value d is selected from Q_1_xy, and at an adjacent pixel position (x+1, y), a depth value d' is selected from Q_1_x+1_y. Then, the difference between them (d-d') is derived and its norm is calculated.

エネルギー関数Eを最小化することにより、ステレオ誤差、投影位置の近さ、各画素位置の奥行値の滑らかさを考慮した上で最適な奥行値d(x,y)を各画素位置(x,y)について定めることができる。 By minimizing the energy function E, it is possible to determine the optimal depth value d(x, y) for each pixel position (x, y), taking into account the stereo error, the proximity of the projection position, and the smoothness of the depth value at each pixel position.

エネルギー関数Eの最小化は、信念伝播(Belief Propagation)という手法、より具体的にはループありの信念伝播(Loopy Belief Propagation)によって行うことができる。 The energy function E can be minimized by a technique called belief propagation, more specifically, loopy belief propagation.

以上のように、信念伝播部32により、以下の式に従って、エネルギー関数Eの最小化によって、全ての画素位置(x,y)の各々について近傍集合Q_1_xyから選択される奥行値d(x,y)の組み合わせが求められる。 As described above, the belief propagation unit 32 determines a combination of depth values d(x, y) selected from the neighborhood set Q_1_xy for each of all pixel positions (x, y) by minimizing the energy function E according to the following formula:

d(x,y)=argmin E d(x,y)=argminE

平滑化部26は、第1画像上の画素位置(x,y)の各々について選択された奥行値d(x,y)を平滑化する。 The smoothing unit 26 smoothes the selected depth value d(x, y) for each pixel position (x, y) on the first image.

ここで、奥行値d(x,y)は、信念伝播部32により近傍の画素位置に投影される3次元点の奥行値の割り当てによって導出されるので、不連続なマップとなっている。そこで、本実施形態に係る平滑化部26は、連続関数の平滑化法であるVariational法によって平滑化をし、平滑化後の奥行値d_v(x,y)を生成し、深度画像として表示部16により出力する。 Here, the depth value d(x, y) is derived by assigning depth values of three-dimensional points projected to nearby pixel positions by the belief propagation unit 32, and is therefore a discontinuous map. Therefore, the smoothing unit 26 according to this embodiment smooths using the Variational method, which is a smoothing method for continuous functions, generates the smoothed depth value d_v(x, y), and outputs it as a depth image on the display unit 16.

具体的には、Variational法により、以下のエネルギー関数E_Vを最小化する。 Specifically, the following energy function E_V is minimized using the Variational method.

norm1,norm2はl1距離、l2距離、もしくはHuber距離などの距離である。また、Gは非特許文献4記載のADT(Anisotropic Diffusion Tensor)もしくはB-ADT(Binary Anisotropic Diffusion Tensor)であり、画像の位置ごとに平滑化項norm2(∇d_V(x,y))を重みづけするものである。 norm1 and norm2 are distances such as the l1 distance, l2 distance, or Huber distance. G is the ADT (Anisotropic Diffusion Tensor) or B-ADT (Binary Anisotropic Diffusion Tensor) described in Non-Patent Document 4, which weights the smoothing term norm2 (∇d_V(x, y)) for each position in the image.

エネルギー関数E_Vの最小化は非特許文献4に記載のようにfirst order primal dual algorithmによって実施できる。これにより、以下の式に従って、平滑化後の、全ての画素位置(x,y)の各々についての奥行値d_V(x,y)の組み合わせが求められる。 The minimization of the energy function E_V can be performed by the first order primal dual algorithm as described in Non-Patent Document 4. This allows the combination of depth values d_V(x,y) for all pixel positions (x,y) after smoothing to be found according to the following formula:

d_V(x,y)=argmin E_V d_V(x,y)=argmin E_V

[非特許文献4]Yao, Yasuhiro, et al. "Discontinuous and Smooth Depth Completion with Binary Anisotropic Diffusion Tensor." IEEE Robotics and Automation Letters 5.4 (2020): 5128-5135. [Non-Patent Document 4] Yao, Yasuhiro, et al. "Discontinuous and Smooth Depth Completion with Binary Anisotropic Diffusion Tensor." IEEE Robotics and Automation Letters 5.4 (2020): 5128-5135.

<本実施形態に係る3次元点群処理装置の作用>
次に、3次元点群処理装置10の作用について説明する。
<Action of the 3D point cloud processing device according to this embodiment>
Next, the operation of the three-dimensional point cloud processing device 10 will be described.

図6は、3次元点群処理装置10による3次元点群処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から3次元点群処理プログラムを読み出して、RAM13に展開して実行することにより、3次元点群処理が行なわれる。また、3次元点群処理装置10に、LiDARセンサ50によって計測された3次元点群Pと、第1カメラ52によって撮影された第1画像と、第2カメラ54によって撮影された第2画像と、が入力される。また、3次元点群処理装置10に、第1カメラ52の内部パラメータK_1、第2カメラ54の内部パラメータK_2、第1カメラ52と第2カメラ54間の回転行列R_C、第1カメラ52と第2カメラ54間の並進ベクトルT_C、第1カメラ52とLiDARセンサ50間の投影行列R_L、及び第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lが入力されているものとする。 Figure 6 is a flowchart showing the flow of 3D point cloud processing by the 3D point cloud processing device 10. The CPU 11 reads out a 3D point cloud processing program from the ROM 12 or storage 14, expands it in the RAM 13, and executes it to perform 3D point cloud processing. In addition, the 3D point cloud P measured by the LiDAR sensor 50, the first image taken by the first camera 52, and the second image taken by the second camera 54 are input to the 3D point cloud processing device 10. In addition, the internal parameters K_1 of the first camera 52, the internal parameters K_2 of the second camera 54, the rotation matrix R_C between the first camera 52 and the second camera 54, the translation vector T_C between the first camera 52 and the second camera 54, the projection matrix R_L between the first camera 52 and the LiDAR sensor 50, and the translation vector T_L between the first camera 52 and the LiDAR sensor 50 are input to the 3D point cloud processing device 10.

ステップS100で、CPU11は、入力処理部20として、入力部15により受け付けた、第1画像及び第2画像と、3次元点群とを取得する。 In step S100, the CPU 11, as the input processing unit 20, acquires the first image, the second image, and the three-dimensional point cloud received by the input unit 15.

ステップS102で、CPU11は、入力処理部20として、第1画像及び第2画像と、3次元点群とに基づいて、集合Q_1、Q_2を計算する。 In step S102, the CPU 11, as the input processing unit 20, calculates sets Q_1 and Q_2 based on the first and second images and the three-dimensional point cloud.

ステップS104では、CPU11は、近傍抽出部22として、3次元点群Pの各々の3次元点に対応する第1画像上の画素位置に基づいて、第1画像上の各画素位置(x,y)について、近傍集合Q_1_xyを抽出する。 In step S104, the CPU 11, as the neighborhood extraction unit 22, extracts a neighborhood set Q_1_xy for each pixel position (x, y) on the first image based on the pixel positions on the first image corresponding to each 3D point of the 3D point group P.

ステップS106では、CPU11は、コスト計算部30として、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる各要素q=(q_x,q_y,d)について、コスト関数を計算する。 In step S106, the CPU 11, as the cost calculation unit 30, calculates a cost function for each element q = (q_x, q_y, d) included in the neighborhood set Q_1_xy for each pixel position (x, y) on the first image.

ステップS108では、CPU11は、信念伝播部32として、第1画像上の画素位置(x,y)毎に、コスト関数及び隣接する画素において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、近傍集合Q_1_xyに含まれる各要素の奥行値の何れかを選択する。 In step S108, the CPU 11, as the belief propagation unit 32, selects, for each pixel position (x, y) on the first image, one of the depth values of each element included in the neighborhood set Q_1_xy based on a cost function and an energy function expressed using the difference with the depth value selected for the adjacent pixel.

ステップS110では、CPU11は、平滑化部26として、第1画像上の画素位置の各々について選択された奥行値を平滑化し、平滑化された奥行値を深度画像として表示部16により表示して、3次元点群処理ルーチンを終了する。 In step S110, the CPU 11, as the smoothing unit 26, smoothes the selected depth values for each pixel position on the first image, displays the smoothed depth values as a depth image on the display unit 16, and ends the 3D point cloud processing routine.

以上説明したように、本実施形態に係る3次元点群処理装置は、LiDARセンサにより計測された3次元点群の3次元点の各々が投影される第1画像上の画素位置に基づいて、第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、第1画像及び第2画像の間の整合性が高く、かつ近傍の画素位置との距離が近くなるように、奥行値を選択する。これにより、計測して得られた3次元点群を精度よくアップサンプリングすることができる。 As described above, the 3D point cloud processing device according to this embodiment selects a depth value for each pixel position on the first image based on the pixel position on the first image onto which each of the 3D points of the 3D point cloud measured by the LiDAR sensor is projected, from the depth values of the 3D points corresponding to multiple nearby pixel positions, so that there is high consistency between the first image and the second image and the distance to the nearby pixel positions is short. This allows the 3D point cloud obtained by measurement to be upsampled with high precision.

<変形例>
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
<Modification>
The present invention is not limited to the above-described embodiment, and various modifications and applications are possible without departing from the spirit and scope of the present invention.

例えば、LiDARセンサによる計測で、3次元点群を取得する場合を例に説明したが、これに限定されるものではない。LiDARセンサ以外のセンサを用いて、3次元点群を計測するようにしてもよい。 For example, the example described above uses a LiDAR sensor to measure and obtain a three-dimensional point cloud, but the present invention is not limited to this. A sensor other than a LiDAR sensor may be used to measure a three-dimensional point cloud.

また、第1画像と第2画像とが異なるカメラによって撮影された場合を例に説明したが、これに限定されるものではない。撮影位置の関係が予め求められていれば、第1画像と第2画像とが同じカメラによって撮影されたものでもよい。 Although the first image and the second image are taken by different cameras, the present invention is not limited to this example. As long as the relationship between the photographing positions is determined in advance, the first image and the second image may be taken by the same camera.

また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、3次元点群処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。 In addition, various processes that the CPU reads and executes in each of the above embodiments by reading the software (programs) may be executed by various processors other than the CPU. Examples of processors in this case include a dedicated electrical circuit that is a processor having a circuit configuration designed specifically to execute a specific process, such as a GPU (Graphics Processing Unit), a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacture, such as an FPGA (Field-Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit). In addition, the three-dimensional point cloud processing may be executed by one of these various processors, or may be executed by a combination of two or more processors of the same or different types (for example, multiple FPGAs, a combination of a CPU and an FPGA, etc.). More specifically, the hardware structure of these various processors is an electrical circuit that combines circuit elements such as semiconductor devices.

また、上記各実施形態では、3次元点群処理プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。 In addition, in each of the above embodiments, the 3D point cloud processing program is described as being pre-stored (installed) in the storage 14, but this is not limiting. The program may be provided in a form stored in a non-transitory storage medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), or a USB (Universal Serial Bus) memory. The program may also be downloaded from an external device via a network.

以上の実施形態に関し、更に以下の付記を開示する。 The following notes are further provided with respect to the above embodiment.

(付記項1)
3次元点群処理装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
ように構成される3次元点群処理装置。
(Additional Note 1)
A three-dimensional point cloud processing device,
Memory,
at least one processor coupled to the memory;
Including,
The processor,
receiving a first image and a second image, the relationship between at least the shooting positions of which is previously determined, and a three-dimensional point cloud on a surface of an object, the relationship between at least the shooting positions and measurement positions of which is previously determined, and determining pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud;
a 3D point cloud processing device configured to select, for each pixel position on the first image, a depth value from depth values of 3D points corresponding to a plurality of neighboring pixel positions based on a pixel position on the first image corresponding to each of the 3D points of the 3D point cloud, such that consistency between the first image and the second image is high.

(付記項2)
3次元点群処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記3次元点群処理は、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
非一時的記憶媒体。
(Additional Note 2)
A non-transitory storage medium storing a program executable by a computer to perform three-dimensional point cloud processing,
The three-dimensional point cloud processing includes:
receiving a first image and a second image, the relationship between at least the shooting positions of which is previously determined, and a three-dimensional point cloud on a surface of an object, the relationship between at least the shooting positions and measurement positions of which is previously determined, and determining pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud;
A non-transitory storage medium that selects, for each pixel position on the first image based on a pixel position on the first image corresponding to each three-dimensional point of the three-dimensional point cloud, the depth value from depth values of three-dimensional points corresponding to multiple neighboring pixel positions so as to increase consistency between the first image and the second image.

10 3次元点群処理装置
14 ストレージ
15 入力部
16 表示部
20 入力処理部
22 近傍抽出部
24 近傍選択部
26 平滑化部
30 コスト計算部
32 信念伝播部
50 LiDARセンサ
52 第1カメラ
54 第2カメラ
Reference Signs List 10 3D point cloud processing device 14 Storage 15 Input unit 16 Display unit 20 Input processing unit 22 Neighborhood extraction unit 24 Neighborhood selection unit 26 Smoothing unit 30 Cost calculation unit 32 Belief propagation unit 50 LiDAR sensor 52 First camera 54 Second camera

Claims (8)

少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する近傍選択部と、
を含む3次元点群処理装置。
an input processing unit that receives a first image and a second image, the relationship between at least the shooting positions of which is determined in advance, and a three-dimensional point cloud on a surface of an object, the relationship between at least the shooting positions and measurement positions of which is determined in advance, and determines pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud;
a neighborhood selection unit that selects, for each pixel position on the first image, a depth value from depth values of three-dimensional points corresponding to a plurality of neighboring pixel positions based on a pixel position on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, such that consistency between the first image and the second image is high;
A three-dimensional point cloud processing device comprising:
前記近傍選択部は、
前記第1画像上の画素位置の各々について、
前記近傍の複数の画素位置に対応する3次元点の各々に対し、前記第1画像上の画素位置及び前記3次元点の奥行値からなる点を、前記第2画像上に投影し、前記第1画像上の画素位置の画素値と、前記第2画像上に投影した点の画素位置の画素値との距離を求め、
前記近傍の複数の画素位置に対応する3次元点の各々に対し求められた、前記第1画像上の画素位置の画素値と、前記第2画像上に投影した点の画素位置の画素値との距離を用いて表されるコスト関数に基づいて、前記近傍の複数の画素位置に対応する3次元点の奥行値を選択する請求項1記載の3次元点群処理装置。
The neighborhood selection unit is
For each pixel location on the first image,
For each of the three-dimensional points corresponding to the plurality of neighboring pixel positions, a point consisting of the pixel position on the first image and a depth value of the three-dimensional point is projected onto the second image, and a distance between a pixel value of the pixel position on the first image and a pixel value of the pixel position of the point projected onto the second image is calculated;
2. The three-dimensional point cloud processing device according to claim 1, further comprising: a cost function expressed using a distance between a pixel value of a pixel position on the first image and a pixel value of a pixel position of a point projected onto the second image, the cost function being expressed using a distance between a pixel value of a pixel position on the first image and a pixel value of a pixel position of a point projected onto the second image, the cost function being expressed using a cost function ...
前記近傍選択部は、
前記第1画像上の画素位置の各々について、
前記コスト関数及び前記第1画像上の注目画素位置において選択される奥行値と隣接する画素位置において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、前記奥行値を選択する請求項2記載の3次元点群処理装置。
The neighborhood selection unit is
For each pixel location on the first image,
3. The three-dimensional point cloud processing device according to claim 2, wherein the depth value is selected based on the cost function and an energy function expressed using a difference between a depth value selected at a pixel position of interest on the first image and a depth value selected at an adjacent pixel position.
前記第1画像上の画素位置の各々について選択された前記奥行値を平滑化する平滑化部を更に含む請求項1~請求項3の何れか1項記載の3次元点群処理装置。 The 3D point cloud processing device according to any one of claims 1 to 3, further comprising a smoothing unit that smoothes the depth value selected for each pixel position on the first image. 前記近傍選択部は、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高く、かつ前記近傍の画素位置との距離が近くなるように、前記奥行値を選択する請求項1~請求項4の何れか1項記載の3次元点群処理装置。 The 3D point cloud processing device according to any one of claims 1 to 4, wherein the neighborhood selection unit selects, for each pixel position on the first image based on the pixel positions on the first image corresponding to each of the 3D points of the 3D point cloud, the depth value from the depth values of 3D points corresponding to multiple neighboring pixel positions, such that the consistency between the first image and the second image is high and the distance to the neighboring pixel positions is short. 前記入力処理部は、
前記3次元点群の各々の3次元点を、前記第1画像上に投影し、前記第1画像の領域外に投影された3次元点を除去し、除去後の前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置及び奥行値の組み合わせである要素からなる集合を求め、
前記集合の各要素の点を、前記第2画像上に投影し、前記第2画像の領域外に投影された要素を除去し、除去後の前記集合に更新し、
前記近傍選択部は、
前記集合の要素の前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置を持つ、前記集合の要素の奥行値から、前記第1画像及び前記第2画像の間の整合性が高く、かつ前記近傍の画素位置との距離が近くなるように、前記集合の要素の奥行値を選択する
請求項1~請求項5の何れか1項記載の3次元点群処理装置。
The input processing unit:
projecting each of the three-dimensional points of the three-dimensional point cloud onto the first image, removing three-dimensional points projected outside the area of the first image, and obtaining a set of elements that are combinations of pixel positions and depth values on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud after the removal;
projecting the points of each element of the set onto the second image, removing elements projected outside the region of the second image, and updating the set to the removed elements;
The neighborhood selection unit is
A 3D point cloud processing device as described in any one of claims 1 to 5, wherein, based on the pixel positions of the elements of the set on the first image, for each pixel position on the first image, a depth value of the elements of the set having a plurality of neighboring pixel positions is selected from the depth values of the elements of the set so that there is high consistency between the first image and the second image and the distance to the neighboring pixel positions is short.
入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
近傍選択部が、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
3次元点群処理方法。
an input processing unit receives a first image and a second image, the relationship between at least the shooting positions of which is determined in advance, and a three-dimensional point cloud on a surface of an object, the relationship between at least the shooting positions and measurement positions of which is determined in advance, and determines pixel positions on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud;
A three-dimensional point cloud processing method, in which a neighborhood selection unit selects, for each pixel position on the first image, based on a pixel position on the first image corresponding to each of the three-dimensional points of the three-dimensional point cloud, the depth value from depth values of three-dimensional points corresponding to a plurality of neighboring pixel positions, so as to increase consistency between the first image and the second image.
コンピュータを、請求項1~請求項6の何れか1項に記載の3次元点群処理装置として機能させるための3次元点群処理プログラム。 A three-dimensional point cloud processing program for causing a computer to function as a three-dimensional point cloud processing device according to any one of claims 1 to 6.
JP2021094793A 2021-06-04 2021-06-04 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program Active JP7613690B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021094793A JP7613690B2 (en) 2021-06-04 2021-06-04 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021094793A JP7613690B2 (en) 2021-06-04 2021-06-04 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program

Publications (2)

Publication Number Publication Date
JP2022186523A JP2022186523A (en) 2022-12-15
JP7613690B2 true JP7613690B2 (en) 2025-01-15

Family

ID=84442011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021094793A Active JP7613690B2 (en) 2021-06-04 2021-06-04 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program

Country Status (1)

Country Link
JP (1) JP7613690B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076096A (en) 2008-11-27 2009-04-09 Mitsubishi Electric Corp Target identification device
JP2015143679A (en) 2013-12-26 2015-08-06 株式会社リコー Parallax calculation system, information processing device, information processing method and program
JP2019128350A (en) 2018-01-23 2019-08-01 株式会社リコー Image processing method, image processing device, on-vehicle device, moving body and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076096A (en) 2008-11-27 2009-04-09 Mitsubishi Electric Corp Target identification device
JP2015143679A (en) 2013-12-26 2015-08-06 株式会社リコー Parallax calculation system, information processing device, information processing method and program
JP2019128350A (en) 2018-01-23 2019-08-01 株式会社リコー Image processing method, image processing device, on-vehicle device, moving body and system

Also Published As

Publication number Publication date
JP2022186523A (en) 2022-12-15

Similar Documents

Publication Publication Date Title
CN110135455B (en) Image matching method, device and computer readable storage medium
US10699476B2 (en) Generating a merged, fused three-dimensional point cloud based on captured images of a scene
US8755630B2 (en) Object pose recognition apparatus and object pose recognition method using the same
US20200007855A1 (en) Stereo Correspondence and Depth Sensors
US9135710B2 (en) Depth map stereo correspondence techniques
CN103235949B (en) Image point of interest detection method and device
CN101996399A (en) Device and method for estimating parallax between left image and right image
CN114766039B (en) Object detection method, object detection device, terminal device, and medium
JP7219561B2 (en) In-vehicle environment recognition device
JP7298687B2 (en) Object recognition device and object recognition method
CN112750139A (en) Image processing method and device, computing equipment and storage medium
CN114519681A (en) Automatic calibration method and device, computer readable storage medium and terminal
JP2024521816A (en) Unrestricted image stabilization
JP6655869B2 (en) Image processing apparatus, image processing method, and program
CN104254868A (en) Method and apparatus for increasing frame rate of an image stream using at least one higher frame rate image stream
CN110363235A (en) A high-resolution image matching method and system
CN112785651B (en) Method and apparatus for determining relative pose parameters
CN113920267B (en) Three-dimensional scene model construction method, device, equipment and storage medium
JP6080424B2 (en) Corresponding point search device, program thereof, and camera parameter estimation device
JP7613690B2 (en) 3D point cloud processing device, 3D point cloud processing method, and 3D point cloud processing program
CN120705537A (en) Method and device for determining motion information of quadruped robot and quadruped robot
JP6991700B2 (en) Information processing equipment, information processing method, program
CN116188349A (en) Image processing method, device, electronic device and storage medium
JP2018059767A (en) Image processing device, image processing method and program
Haque et al. Robust feature-preserving denoising of 3D point clouds

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241218

R150 Certificate of patent or registration of utility model

Ref document number: 7613690

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350