JP2016038820A - 画像処理装置および制御プログラム - Google Patents
画像処理装置および制御プログラム Download PDFInfo
- Publication number
- JP2016038820A JP2016038820A JP2014163193A JP2014163193A JP2016038820A JP 2016038820 A JP2016038820 A JP 2016038820A JP 2014163193 A JP2014163193 A JP 2014163193A JP 2014163193 A JP2014163193 A JP 2014163193A JP 2016038820 A JP2016038820 A JP 2016038820A
- Authority
- JP
- Japan
- Prior art keywords
- image
- unit
- divided
- stage
- 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.)
- Pending
Links
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】3次元スキャンを行ったその場で、実物を用いた直感的な操作を行うことができる画像処理装置を提供する。【解決手段】ステージ204に載置された物体1601の三次元形状を計測し、計測した三次元形状を色などに基づいて分割し、分割結果を、プロジェクタ207を用いて物体1601の表面に投影する。また、指先1604による物体1601へのタッチを検出し、タッチが分割されたどの部分にされたかを判定し、ユーザーの指示が、分割されたデータのどの部分になされたのかを視覚的に示す。【選択図】図18
Description
本発明は、平面物および立体物のデータ化を行い、保存する際の編集を容易にする画像処理装置および制御プログラムに関する。
近年、3D(3次元(「three dimensions」)の俗称、以下同じ)スキャナや3Dプリンタといった3次元データを扱う技術の研究が盛んである。3Dスキャナは、三角測量の原理等を用いて物体の3次元形状を取得し、データ化する。3Dプリンタは、例えば樹脂材料を積層するなどして3次元データを実体化する。近年の3Dプリンタでは、一部分だけ色や材質を変更することが可能になっている。
従来、3Dスキャナや3Dプリンタで扱うデータを部分的に編集するには、CAD(computer aided design)データ等をPC(パーソナルコンピュータの略、以下同じ)で編集する必要があった。また、CADデータを用いて部分的な編集を行う箇所を指定する必要があり、CADに関する専門知識が必要であった。このような問題を解決すべく、特許文献1には、3Dエディタ上で輪郭を用いて3次元データを編集する技術が開示されている。この技術では、3Dエディタを用いて輪郭情報から所望の部分を切り出し、拡大縮小などの編集を可能としている。
従来、3Dスキャナや3Dプリンタで扱うデータを部分的に編集するには、CAD(computer aided design)データ等をPC(パーソナルコンピュータの略、以下同じ)で編集する必要があった。また、CADデータを用いて部分的な編集を行う箇所を指定する必要があり、CADに関する専門知識が必要であった。このような問題を解決すべく、特許文献1には、3Dエディタ上で輪郭を用いて3次元データを編集する技術が開示されている。この技術では、3Dエディタを用いて輪郭情報から所望の部分を切り出し、拡大縮小などの編集を可能としている。
特許文献1に開示された技術では、3Dスキャナにより3次元データを取り込んだその場で部分的な編集をすることはできない。
本発明の主たる課題は、例えば物体形状を表す3次元データを取り込んだその場で、物体の実物を用いて部分的な編集の指示を行うことを可能とする画像処理装置を提供することにある。
本発明の主たる課題は、例えば物体形状を表す3次元データを取り込んだその場で、物体の実物を用いて部分的な編集の指示を行うことを可能とする画像処理装置を提供することにある。
本発明の画像処理装置は、物体を載置するためのステージと、画像を投影するためのプロジェクタと、前記ステージに載置された物体の3次元形状およびその姿態を計測する計測手段と、計測された3次元形状を所定規則にしたがって分割し、分割された分割画像の集合である物体画像を生成するとともに、生成した物体画像を前記プロジェクタに供給し、該プロジェクタから前記物体の姿態に応じた角度で前記物体の表面または当該物体の近傍の前記ステージへ投影させる制御手段とを備えて成る装置である。
本発明によれば、物体の3次元形状を分割した上で、その分割画像の集合である物体画像を、プロジェクタを用いて物体の姿勢に応じた角度で物体の表面またはステージに投影される。そのため、物体がステージに載置された状態で、現物を用いた直感的な操作が可能となり、操作性を大きく向上させることができる。
以下、本発明の実施の形態例を説明する。
[第1実施形態]
図1は、本発明の第1実施形態の画像処理装置の全体構成図である。画像処理装置1は、3Dスキャナ101、ホストコンピュータ102およびプリンタ103をイーサネット等のネットワーク104に接続して構成される。3Dスキャナ101は、ホストコンピュータ102の指示により画像を読み取り、スキャンデータを出力する。このような機能をスキャン機能と呼ぶ。プリンタ103は、スキャンデータをプリントアウトする。このような機能をプリント機能と呼ぶ。なお、ホストコンピュータ102を介さず、3Dスキャナ101を直接操作して、スキャン機能、プリント機能を行うことも可能である。
[第1実施形態]
図1は、本発明の第1実施形態の画像処理装置の全体構成図である。画像処理装置1は、3Dスキャナ101、ホストコンピュータ102およびプリンタ103をイーサネット等のネットワーク104に接続して構成される。3Dスキャナ101は、ホストコンピュータ102の指示により画像を読み取り、スキャンデータを出力する。このような機能をスキャン機能と呼ぶ。プリンタ103は、スキャンデータをプリントアウトする。このような機能をプリント機能と呼ぶ。なお、ホストコンピュータ102を介さず、3Dスキャナ101を直接操作して、スキャン機能、プリント機能を行うことも可能である。
<3Dスキャナの構成>
図2は、3Dスキャナ101の構成および座標系の説明図である。3Dスキャナ101は、図2(a)に示すように、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離センサ部208を有する。コントローラ部201、カメラ部202、短焦点プロジェクタ207および距離センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
図2は、3Dスキャナ101の構成および座標系の説明図である。3Dスキャナ101は、図2(a)に示すように、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離センサ部208を有する。コントローラ部201、カメラ部202、短焦点プロジェクタ207および距離センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
図2(a)には、3Dスキャナ101が設置されているステージ204が示されている。ステージ204は物体を載置するためのものであり、書類の原稿を載置する用途では特に「書画台」と呼ばれる。カメラ部202のレンズおよび距離センサ部208のセンサは、ステージ204に向けられている。3Dスキャナ101は、破線で囲まれた読み取り領域205内の画像を読み取ることができる。図示の例では、原稿206が読み取り領域205内に置かれている。そのため、3Dスキャナ101は、この原稿206を読み取ることができる。ステージ204はターンテーブル209上に設けられる。ターンテーブル209は、コントローラ部201からの指示により回転する。そのため、ステージ204に載置された物体に対するカメラ部202の角度を変えることができる。
カメラ部202は、単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像とを選択できるものとすることが好ましい。なお、図2には示されていないが、3Dスキャナ101は、LCD(Liquid Crystal Display)タッチパネル330およびスピーカ340をさらに含むこともできる。
図2(b)は、3Dスキャナ101における座標系の説明図である。3Dスキャナ101では、カメラ部202などのようなハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。
これらの座標系では、カメラ部202および距離センサ部207のRGBカメラ部503が撮像する画像平面、あるいは、プロジェクタ207が投射する画像平面をXY平面とする。また、画像平面に直交した方向をZ方向とする。そのため、カメラ座標系は、Xc,Yc,Zcで定義される。距離画像座標系は、Xs,Ys,Zsで定義される。プロジェクタ座標系は、Xp,Yp,Zpで定義される。これらの座標系は独立している。この独立した座標系の3次元データを統一的に扱えるようにするため、本実施形態では、ステージ204を含む平面をXY平面とする。また、このXY平面から上方に垂直な向きをZ軸とする直交座標系を定義する。
これらの座標系では、カメラ部202および距離センサ部207のRGBカメラ部503が撮像する画像平面、あるいは、プロジェクタ207が投射する画像平面をXY平面とする。また、画像平面に直交した方向をZ方向とする。そのため、カメラ座標系は、Xc,Yc,Zcで定義される。距離画像座標系は、Xs,Ys,Zsで定義される。プロジェクタ座標系は、Xp,Yp,Zpで定義される。これらの座標系は独立している。この独立した座標系の3次元データを統一的に扱えるようにするため、本実施形態では、ステージ204を含む平面をXY平面とする。また、このXY平面から上方に垂直な向きをZ軸とする直交座標系を定義する。
図2(c)は、直交座標系と、カメラ部202を中心としたカメラ座標系を用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す説明図である。直交座標系における3次元点P[X,Y,Z]は、以下の(1)式により、カメラ座標系における3次元点Pc[Xc,Yc,Zc]に変換される。
(1)式のRcおよびtcは、直交座標系に対するカメラの姿勢(回転)と位置(並進)などの外部パラメータにより定まる。Rcは3×3の回転行列、tcを並進ベクトルである。逆に、カメラ座標系で定義された3次元点は、以下の(2)式によって直交座標系に変換される。
カメラ部202で撮影される2次元のカメラ画像平面は、カメラ部202によって3次元空間中の3次元情報が2次元情報に変換されたものである。すなわち、カメラ座標系上での3次元点Pc[Xc,Yc,Zc]を、以下の(3)式によってカメラ画像平面での2次元座標pc[xp,yp]に透視投影変換することで算出することができる。
Aは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される3×3の行列である。
上記(1)式および(3)式を用いることで、直交座標系で表された3次元点群を、カメラ座標系での3次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢(外部パラメータ)は、公知のキャリブレーション手法によりあらかじめキャリブレートされているものとする。以後、特に断りがなく「3次元点群」と表記した場合は、直交座標系における3次元データを表すものとする。
<コントローラの構成>
図3は、コントローラ部201のハードウェア構成例を示す図である。コントローラ部201は、CPU302、RAM303、ROM304、HDD305をシステムバス301に接続して構成される。システムバス301には、ネットワークI/F(I/Fはインタフェースの略、以下同じ)306、画像処理プロセッサ307、カメラI/F308、ディスプレイコントローラ309も接続されている。さらに、シリアルI/F310、オーディオコントローラ311およびUSB(Universal Serial Bus)コントローラ312も接続されている。
図3は、コントローラ部201のハードウェア構成例を示す図である。コントローラ部201は、CPU302、RAM303、ROM304、HDD305をシステムバス301に接続して構成される。システムバス301には、ネットワークI/F(I/Fはインタフェースの略、以下同じ)306、画像処理プロセッサ307、カメラI/F308、ディスプレイコントローラ309も接続されている。さらに、シリアルI/F310、オーディオコントローラ311およびUSB(Universal Serial Bus)コントローラ312も接続されている。
CPU(Central Processing Unit)302は、起動用プログラムおよび制御用プログラムを読み込んで実行することにより、コントローラ部201全体の動作を制御する。RAM(Random Access Memory)303は揮発性メモリであり、CPU302のワークエリアとして使用される。ROM(Read Only Memory)304は不揮発性メモリであり、起動用プログラムや各種パラメータが格納されている。HDD(Hard Disk Drive)305は大容量ストレージとなるハードディスクドライブである。HDD305には3Dスキャナ101の制御用プログラム、この制御用プログラムの動作に必要な各種設定情報、後述する画像分割のための規則、カメラ入力によって生成した画像データなどが格納される。格納された制御用プログラム、設定情報、規則、画像データなどは、CPU302によって読み書きされる。
CPU302は、電源ONなどを契機に起動用プログラムを読み込み、実行する。起動用プログラムは、HDD305に格納されている制御用プログラムを読み出し、RAM303上に展開するためのものである。CPU302は、起動用プログラムを実行すると、次いでRAM303上に展開された制御用プログラムを実行し、後述する各種の制御を行う。CPU302は、また、制御用プログラムによる動作用データやパラメータをRAM303に格納して読み書きを行う。CPU302は、ネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
画像処理プロセッサ307は、RAM303に格納された画像データを読み出して所要の画像処理を行い、RAM303へ書き戻す。画像処理は、回転、変倍、色変換等である。カメラI/F308は、カメラ部202および距離センサ部208と接続されており、CPU302からの指示に応じてカメラ部202から画像データを、距離センサ部208から距離画像データを取得してRAM303へ書き込む。また、CPU302からの制御コマンドをカメラ部202および距離センサ部208へ送信し、カメラ部202および距離センサ部208の設定を行う。
コントローラ部201は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312のうち少なくとも1つをさらに含むことができる。ディスプレイコントローラ309は、CPU302の指示に応じてディスプレイへの画像データの表示を制御する。ディスプレイコントローラ309は、短焦点プロジェクタ207およびLCDタッチパネル330に接続されている。
シリアルI/F310は、シリアル信号の入出力を行う。シリアルI/F310はターンテーブル209に接続されており、CPU302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310はLCDタッチパネル330に接続されており、CPU302がLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
シリアルI/F310は、シリアル信号の入出力を行う。シリアルI/F310はターンテーブル209に接続されており、CPU302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310はLCDタッチパネル330に接続されており、CPU302がLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
オーディオコントローラ311はスピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。USBコントローラ312はCPU302の指示に応じて外付けのUSBデバイスの制御を行う。ここでは、USBコントローラ312はUSBメモリやSDカードなどの外部メモリ350に接続され、外部メモリ350へのデータの読み書きを行う。
<画像処理装置の機能構成>
CPU302は、制御用プログラムを実行することにより、3Dスキャナ101に複数のソフトウエアモジュールを形成する。図4は、ソフトウエアモジュールの機能構成図であり、図5は機能間の関係説明図である。以下、図4および図5を参照して画像処理装置において実現される機能について説明する。
メイン制御部402は、ソフトウエアモジュール401の各モジュール間の動作を統括的に制御する制御手段として機能する。メイン制御部402の具体的な制御内容については後述する。
CPU302は、制御用プログラムを実行することにより、3Dスキャナ101に複数のソフトウエアモジュールを形成する。図4は、ソフトウエアモジュールの機能構成図であり、図5は機能間の関係説明図である。以下、図4および図5を参照して画像処理装置において実現される機能について説明する。
メイン制御部402は、ソフトウエアモジュール401の各モジュール間の動作を統括的に制御する制御手段として機能する。メイン制御部402の具体的な制御内容については後述する。
画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。カメラ画像取得部407はカメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。距離画像取得部408はカメラI/F308を介して距離センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細については後述する。
認識処理部417は、カメラ画像取得部407、距離画像取得部408と協働で、物体に対するユーザの接触部位を認識する認識手段として機能する。そのために、認識処理部417は、ジェスチャー認識部409、物体検知部410を有する。ジェスチャー認識部409は、画像取得部416からステージ204上の画像を取得し続け、ユーザーによる物体への接触態様、例えばタッチなどのジェスチャーを検知すると、タッチされた物体上の部位などをメイン制御部402へ通知する。物体検知部410は、メイン制御部402から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると、画像取得部416からステージ204を撮像した画像を取得する。そして、ステージ204上に物体が置かれて静止するタイミングあるいは物体が取り除かれるタイミングを検知する処理を行う。ジェスチャー認識部409、物体検知部410の処理の詳細については後述する。
スキャン処理部418は、画像取得部416と協働で、ステージ204に載置された物体の3次元形状およびその姿態を計測する計測手段として機能する。そのために、スキャン処理部418は、平面原稿画像撮影部411、書籍画像撮影部412、立体形状測定部413を有する。平面原稿画像撮影部411は平面原稿、書籍画像撮影部412は書籍、立体形状測定部413は物体に、それぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。これらのモジュールの処理の詳細については後述する。
ユーザーインターフェイス部403は、GUI部品生成表示部414と投射領域検出部415を有する。GUI部品生成表示部414は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成する。そして、表示部406へ生成したGUI部品の表示を要求する。なお、ステージ204上のGUI部品の表示場所は、投射領域検出部415により検出される。表示部406はディスプレイコントローラ309を介して、短焦点プロジェクタ207もしくはLCDタッチパネル330へ要求されたGUI部品の表示を行う。プロジェクタ207は、投射元がステージ204に向けて設置されているため、ステージ204上にGUI部品の画像を投射することができる。また、ユーザーインターフェイス部403は、ジェスチャー認識部409が認識したユーザーの接触態様(ジェスチャーの内容)、あるいはシリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらに入力された部位の座標などを受信する。そして、ユーザーインターフェイス部403は描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける(受付手段)。
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器とTCP/IPによる通信を行う。データ管理部405は、制御用プログラムの実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部411、書籍画像撮影部412、立体形状測定部413が生成したスキャンデータなどである。
<距離センサ部および距離画像取得部>
距離センサ部208および距離画像取得部408は、距離の計測手段として機能する。図6(a)は距離センサ部208の配置図、同(b),(c)はパターン投射方式による距離画像の計測原理の説明図である。また、図7は、距離画像取得部408の処理手順説明図である。
図6(a)を参照し、距離センサ部208は、赤外線パターン投射部361、赤外線カメラ362およびRGBカメラ363を含んで構成される。赤外線パターン投射部361は、計測対象となる物体521に対し、人の目には不可視である赤外線によって3次元形状測定パターン522を投射する。3次元形状測定パターン522は、格子またはドットをマトリクスに配したドットマトリクスのようなものである。赤外線カメラ362は物体521に投射した3次元形状測定パターンを撮像する。RGBカメラ363は、物体521を人の目に見える可視光でRGB信号として撮像する。図6(b)はRGBカメラ画像523および赤外線カメラ画像524を示す。赤外線カメラ362とRGBカメラ363とは設置位置が異なる。そのため、図6(c)に示すように、RGBカメラ画像523および赤外線カメラ画像524の撮影領域が異なる。
距離センサ部208および距離画像取得部408は、距離の計測手段として機能する。図6(a)は距離センサ部208の配置図、同(b),(c)はパターン投射方式による距離画像の計測原理の説明図である。また、図7は、距離画像取得部408の処理手順説明図である。
図6(a)を参照し、距離センサ部208は、赤外線パターン投射部361、赤外線カメラ362およびRGBカメラ363を含んで構成される。赤外線パターン投射部361は、計測対象となる物体521に対し、人の目には不可視である赤外線によって3次元形状測定パターン522を投射する。3次元形状測定パターン522は、格子またはドットをマトリクスに配したドットマトリクスのようなものである。赤外線カメラ362は物体521に投射した3次元形状測定パターンを撮像する。RGBカメラ363は、物体521を人の目に見える可視光でRGB信号として撮像する。図6(b)はRGBカメラ画像523および赤外線カメラ画像524を示す。赤外線カメラ362とRGBカメラ363とは設置位置が異なる。そのため、図6(c)に示すように、RGBカメラ画像523および赤外線カメラ画像524の撮影領域が異なる。
図7を参照し、距離画像取得部408は、図6(a)に示すように赤外線パターン投射部361を用いて赤外線による3次元形状測定パターン522を物体521に投射する(S501)。また、RGBカメラ363によりRGBカメラ画像523を得、赤外線カメラ362により赤外線カメラ画像524を得る(S502)。距離画像取得部408は、赤外線カメラ362の座標系からRGBカメラ363の座標系への座標系変換を行い、赤外線カメラ画像524をRGBカメラ画像523の座標系に合わせる(S503)。赤外線カメラ362とRGBカメラ363の相対位置や、それぞれの内部パラメータは、事前のキャリブレーション処理により既知であるものとする。
その後、図6(c)に示されるように、3次元形状測定パターン522とS503で座標変換された赤外線カメラ画像524との間の対応点を抽出する(S504)。例えば、赤外線カメラ画像524上の1点を3次元形状測定パターン522上から探索し、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像524の画素の周辺のパターンを3次元形状測定パターン522上から探索し、一番類似度が高い部分と対応付けてもよい。
赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を、図6(a)に示される基線525として三角測量の原理を用いて計算し、赤外線カメラ362からの距離を算出する(S505)。S504で対応付けができた画素については、赤外線カメラ362からの距離を算出して画素値として保存する。対応付けができなかった画素については、距離計測ができなかった部分として無効値を保存する。これをS503で座標変換を行った赤外線カメラ画像524の全画素に対して行う。このようにして、画素毎に距離値が関連付けられた距離画像を生成する。
距離画像の各画素にRGBカメラ画像523のRGB値を関連付けることにより、1画素につきR(赤)、G(緑)、B(青)、距離の4つの値を持つ距離画像を生成する(S506)。ここで取得した距離画像は、距離センサ部208のRGBカメラ363で定義された距離センサ部座標系が基準となっている。そこで上述したように、距離センサ部座標系として得られた距離データを直交座標系における3次元点群に変換する(S507)。以後、特に指定がなく3次元点群と表記した場合は、直交座標系における3次元点群を示すものとする。
なお、本実施形態では、上述したように距離センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離センサ部を用いることも可能である。例えば、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式を用いても構わない。
<ジェスチャー認識部>
ジェスチャー認識部409の処理手順例を、図8を参照して説明する。図8を参照すると、ジェスチャー認識部409は、初期化処理を行う(S601)。初期化処理により、ジェスチャー認識部409は、距離画像取得部408から上記の距離画像を1フレーム取得する。ジェスチャー認識部409の開始時は、ステージ204上に物体が置かれていない状態である。そのため、初期状態として、ステージ204の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル(以降、ステージ204の平面パラメータと呼ぶ)とを算出し、RAM303に保存する。
ジェスチャー認識部409の処理手順例を、図8を参照して説明する。図8を参照すると、ジェスチャー認識部409は、初期化処理を行う(S601)。初期化処理により、ジェスチャー認識部409は、距離画像取得部408から上記の距離画像を1フレーム取得する。ジェスチャー認識部409の開始時は、ステージ204上に物体が置かれていない状態である。そのため、初期状態として、ステージ204の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル(以降、ステージ204の平面パラメータと呼ぶ)とを算出し、RAM303に保存する。
ステージ204上に物体が載置されると、ジェスチャー認識部409は、その物体の3次元点群を取得する(S602)。その際、距離画像取得部408から距離画像と3次元点群を1フレーム取得する(S621)。また、ステージ204の平面パラメータを用いて、取得した3次元点群からステージ204を含む平面にある点群を除去する(S622)。ジェスチャー認識部409は、また、取得した3次元点群からユーザーの手の形状および指先を検出する(S603)。その詳細をS631〜S634に示す。
ジェスチャー認識部409による手の形状および指先の検出要領を図9(a)〜(d)を参照して説明する。ジェスチャー認識部409は、S602で取得した3次元点群から、ステージ204を含む平面から所定の高さ以上にある、肌色の3次元点群を抽出することで、手の3次元点群を得る(S631)。そして、抽出した手の3次元点群を、ステージ204の平面に射影した2次元画像を生成し、その手の外形を検出する(S632)。図9(a)は、肌色の3次元点群701とステージ204の平面に投射した3次元点群702を表している。投射は、点群の各座標をステージ204の平面パラメータを用いて行う。また、図9(b)に示すように、投影した3次元点群から、xy座標の値だけを取り出せば、z軸方向から見た2次元画像703として扱うことができる。このとき、手の3次元点群の各点が、ステージ204の平面に投影した2次元画像の各座標のどれに対応するかを、記憶しておくものとする。ジェスチャー認識部409は、その後、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する(S633)。
図9(c)は、外形の曲率から指先を検出する要領を表す。点704は、ステージ204の平面に投影された2次元画像703の外形を表す点の一部を表している。ここで、点704のような、外形を表す点のうち、隣り合う5個の点を含むように円を描くことを考える。円705,707が、その例である。この円705,707を、全ての外形の点に対して順に描き、その直径(例えば706,708)が所定の値より小さい(曲率が小さい)部分を指先と判別する。この例では、隣り合う5個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。その後、検出した指先の個数および各指先の座標を算出する(S634)。前述したように、ステージ204に投影した2次元画像の各点と、手の3次元点群の各点の対応関係を記憶しているため、各指先の3次元座標を得ることができる。
なお、図9では3次元点群から2次元画像に投影した画像から指先を検出する例を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、RGBカメラ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法(外形の曲率計算等)で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標は、RGBカメラ画像や距離画像のような2次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の3次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
図8に戻り、ジェスチャー認識部409は、検出した手の形状および指先からのジェスチャー判定処理を行う(S604)。その詳細をS641〜S646に示す。
ジェスチャー認識部409は、まず、S603で検出した指先が1つかどうかを判定する(S641)。指先が1つでなければ(S641:NO)ジェスチャー無しと判定する(S646)。S641において検出した指先が1つであれば(S641:YES)、ジェスチャー認識部409は、検出した指先とステージ204を含む平面との距離を算出する(S642)。ジェスチャー判定に際しては、ステージ204上に物体点群が存在するかどうかを確かめる(S651)。物体点群は、手領域の3次元点群と同じく、直交座標系の座標情報を持った点群データである。物体点群の意味は、ステージ204上におかれた物体の3次元点群データのことをいうものとする。図9(d)の例でいえば、点709の集まりが物体点群を表現している。物体点群の取得処理については後述する。
ジェスチャー認識部409は、まず、S603で検出した指先が1つかどうかを判定する(S641)。指先が1つでなければ(S641:NO)ジェスチャー無しと判定する(S646)。S641において検出した指先が1つであれば(S641:YES)、ジェスチャー認識部409は、検出した指先とステージ204を含む平面との距離を算出する(S642)。ジェスチャー判定に際しては、ステージ204上に物体点群が存在するかどうかを確かめる(S651)。物体点群は、手領域の3次元点群と同じく、直交座標系の座標情報を持った点群データである。物体点群の意味は、ステージ204上におかれた物体の3次元点群データのことをいうものとする。図9(d)の例でいえば、点709の集まりが物体点群を表現している。物体点群の取得処理については後述する。
S651において物体点群が存在すると判定した場合(S651:YES)、ジェスチャー認識部409は、検出した指先と物体点群の距離を算出する(S652)。算出手法は図9(d)に示した通り、指先点708から点709を含む物体点群のすべての点の座標までの距離を算出し、最も距離が短かったものを物体点群との距離とする。S651において物体点群が存在しないと判定した場合(S651:NO)はS643へ進む。
ジェスチャー認識部409は、S652で算出された距離が微小な所定値以下であるかどうかを判定する(S653)。所定値以下であれば(S653:YES)、物体タッチジェスチャーありと判定する(S654)。所定値を超える場合(S653:NO)S643へ進む。
ジェスチャー認識部409は、S652で算出された距離が微小な所定値以下であるかどうかを判定する(S653)。所定値以下であれば(S653:YES)、物体タッチジェスチャーありと判定する(S654)。所定値を超える場合(S653:NO)S643へ進む。
ジェスチャー認識部409は、S643において、S642で算出した距離が微小な所定値以下であるかどうかを判定する(S643)。微小な所定値以下であれば(S643:YES)、指先がステージ204へタッチした、平面タッチジェスチャーと判定する(S644)。S643においてS642で算出した距離が所定値以下で無ければ(S643:NO)、指先移動ジェスチャー(タッチはしていないが指先がステージ204上に存在するジェスチャー)と判定する(S645)。
その後、ジェスチャー認識部409は、判定したジェスチャーをメイン制御部402へ通知し、S602へ戻ってジェスチャー認識処理を繰り返す(S605)。
その後、ジェスチャー認識部409は、判定したジェスチャーをメイン制御部402へ通知し、S602へ戻ってジェスチャー認識処理を繰り返す(S605)。
<物体検知部の処理>
図10(a)を参照して物体検知部410の処理手順を説明する。物体検知部410は、まず、初期化処理を行う(S801)。すなわち、カメラ画像取得部407からカメラ画像を、距離画像取得部408から距離画像をそれぞれ1フレーム取得する(S811)。そして、取得したカメラ画像を前フレームカメラ画像として保存する(S812)。取得したカメラ画像および距離画像をステージ背景カメラ画像およびステージ背景距離画像としてそれぞれ保存する(S813)。なお、「ステージ背景カメラ画像」および「ステージ背景距離画像」と記載した場合は、ここで取得したカメラ画像および距離画像のことを指す。
初期化処理後、物体検知部410は、物体がステージ204上に置かれたことの検知(物体載置検知処理)を行う(S802)。処理の詳細は後述する。その後、S802で載置を検知したステージ204上の物体が除去されることの検知(物体除去検知処理)を行う(S803)。処理の詳細は後述する。
図10(a)を参照して物体検知部410の処理手順を説明する。物体検知部410は、まず、初期化処理を行う(S801)。すなわち、カメラ画像取得部407からカメラ画像を、距離画像取得部408から距離画像をそれぞれ1フレーム取得する(S811)。そして、取得したカメラ画像を前フレームカメラ画像として保存する(S812)。取得したカメラ画像および距離画像をステージ背景カメラ画像およびステージ背景距離画像としてそれぞれ保存する(S813)。なお、「ステージ背景カメラ画像」および「ステージ背景距離画像」と記載した場合は、ここで取得したカメラ画像および距離画像のことを指す。
初期化処理後、物体検知部410は、物体がステージ204上に置かれたことの検知(物体載置検知処理)を行う(S802)。処理の詳細は後述する。その後、S802で載置を検知したステージ204上の物体が除去されることの検知(物体除去検知処理)を行う(S803)。処理の詳細は後述する。
図10(b)はS802の物体載置検知処理の手順説明図である。物体検知部410は、物体載置検知処理を開始すると、カメラ画像取得部407からカメラ画像を1フレーム取得する(S821)。そして、取得したカメラ画像と前フレームカメラ画像との差分を計算してその絶対値を合計した差分値を算出する(S822)。物体検知部410は、算出した差分値があらかじめ決めておいた所定値以上かどうかを判定する(S823)。所定値未満であればステージ204上には物体が無いと判断し、S828へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存する(S828)。その後、S821へ戻る。
S823において差分値が所定値以上の場合(S823:YES)、物体検知部410は、S821で取得したカメラ画像と前フレームカメラ画像との差分値を、S822と同様に算出する(S824)。そして、算出した差分値があらかじめ決めておいた所定値以下であるかどうかを判定する(S825)。所定値よりも大きければ(S825:YES)ステージ204上の物体が動いていると判断し、現フレームのカメラ画像を前フレームカメラ画像として保存する(S828)。その後、S821へ戻る。
S825において算出した差分値が所定値以下の場合(S825:NO)、物体検知部410は、S825が連続してYESとなった回数から、差分値が所定値以下かどうかを判定する。すなわち、ステージ204上の物体が静止した状態があらかじめ決めておいたフレーム数続いたかどうかを判定する(S826)。続いていないと判定した場合(S826:NO)、現フレームのカメラ画像を前フレームカメラ画像として保存する(S828)。その後、S821へ戻る。S826においてステージ204上の物体が静止した状態があらかじめ決めておいたフレーム数続いたと判定した場合(S826:YES)、物体検知部410は、物体が置かれたことをメイン制御部402へ通知し(S827)、物体載置検知処理を終える。
S825において算出した差分値が所定値以下の場合(S825:NO)、物体検知部410は、S825が連続してYESとなった回数から、差分値が所定値以下かどうかを判定する。すなわち、ステージ204上の物体が静止した状態があらかじめ決めておいたフレーム数続いたかどうかを判定する(S826)。続いていないと判定した場合(S826:NO)、現フレームのカメラ画像を前フレームカメラ画像として保存する(S828)。その後、S821へ戻る。S826においてステージ204上の物体が静止した状態があらかじめ決めておいたフレーム数続いたと判定した場合(S826:YES)、物体検知部410は、物体が置かれたことをメイン制御部402へ通知し(S827)、物体載置検知処理を終える。
図10(c)はS803の物体除去検知処理の手順説明図である。物体除去検知処理を開始すると、物体検知部410は、カメラ画像取得部407からカメラ画像を1フレーム取得する(S831)。取得したカメラ画像とステージ背景カメラ画像との差分値を算出する(S832)。さらに算出した差分値が予め決めておいた所定値以下かどうかを判定する(S833)。S833で算出した差分値が予め決めておいた所定値よりも大きければステージ204上にまだ物体が存在するため、物体検知部410は、S831へ戻って処理を続ける。S833において算出した差分値が予め決めておいた所定値以下であればステージ204上の物体が無くなったため、物体検知部410は、物体除去をメイン制御部402へ通知し、物体除去検知処理を終了する。
<平面原稿画像撮影部>
図11は、平面原稿画像撮影部411が実行する処理の手順説明図である。また、図12は、平面原稿画像撮影部411の処理を説明するための模式図である。平面原稿画像撮影部411は、カメラ画像取得部407を介してカメラ部202からの画像を1フレーム取得する(S901)。カメラ部202の座標系は、図2(b)で示したようにステージ204に正対していない。そのため、このときの撮影画像は、図12(a)に示すように、物体1001、ステージ204ともに歪んでいる。
そのため、平面原稿画像撮影部411は、ステージ背景カメラ画像とS901で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分の無い画素が白となるように二値化する(S901)。ここで生成した差分画像は、図12(b)の差分領域1002のように、物体1001の領域が黒色である(差分がある)画像となる。
図11は、平面原稿画像撮影部411が実行する処理の手順説明図である。また、図12は、平面原稿画像撮影部411の処理を説明するための模式図である。平面原稿画像撮影部411は、カメラ画像取得部407を介してカメラ部202からの画像を1フレーム取得する(S901)。カメラ部202の座標系は、図2(b)で示したようにステージ204に正対していない。そのため、このときの撮影画像は、図12(a)に示すように、物体1001、ステージ204ともに歪んでいる。
そのため、平面原稿画像撮影部411は、ステージ背景カメラ画像とS901で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分の無い画素が白となるように二値化する(S901)。ここで生成した差分画像は、図12(b)の差分領域1002のように、物体1001の領域が黒色である(差分がある)画像となる。
平面原稿画像撮影部411は、差分領域1002を用いて、図12(c)のように物体1001のみの画像を抽出する(S903)。また、抽出した原稿領域画像に対して階調補正を行う(S904)。抽出した原稿領域画像に対してカメラ座標系からステージ204への射影変換を行い、図12(d)のようにステージ204の真上から見た画像1003に変換する(S905)。ここで用いる射影変換パラメータは、ジェスチャー認識部409の処理において、前述したS612で算出した平面パラメータとカメラ座標系から求めることができる。なお、図12(d)に示したように、ステージ204上への原稿の置き方により、ここで得られる画像1003は傾いていることがある。そこで、平面原稿画像撮影部411は、画像1003を矩形近似してからその矩形が水平になるように回転し、図12(e)で示した画像1004のように傾きの無い画像を得る(S906)。
平面原稿画像撮影部411は、図12(f)に示すように、基準ラインに対しての矩形の傾きθ1およびθ2を算出し、傾きが小さい方(ここではθ1)を画像1003の回転角度として決定する。あるいは、図12(g)および図12(h)に示すように、画像1003中に含まれる文字列に対してOCR処理を行い、文字列の傾きから画像1003の回転角度の算出および天地判定処理をしてもよい。
平面原稿画像撮影部411は、また、抽出した画像1004に対して、あらかじめ決めておいた画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮およびファイルフォーマット変換を行う(S907)。そして、データ管理部405を介してHDD305の所定の領域へファイルとして保存し、平面原稿画像撮影部411の処理を終了する。
<書籍画像撮影部の処理>
次に、図13(a),(b)および図14を参照して、書籍画像撮影部412が実行する処理について説明する。図14は、書籍画像撮影部412が行う処理の内容の模式図である。
図13(a)を参照すると、書籍画像撮影部412は、カメラ画像取得部407、距離画像取得部408を用いて、カメラ部202からカメラ画像を、距離センサ部208から距離画像を、それぞれ1フレームずつ取得する(S1101)。ここで得られるカメラ画像の例を図14(a)に示す。図14(a)では、ステージ204と撮影対象書籍1211を含むカメラ画像1201が得られている。図14(b)はここで得られた距離画像の例である。図14(b)では、距離センサ部208に近い方が濃い色であらわされており、距離センサ部208から物体1212上の各画素への距離が含まれる距離画像1202が得られている。また、図14(b)において、距離センサ部208からの距離がステージ204よりも遠い画素については白で表されている。物体1212のステージ204に接している部分(物体1212では右側のページ)も同じく白色となる。
次に、図13(a),(b)および図14を参照して、書籍画像撮影部412が実行する処理について説明する。図14は、書籍画像撮影部412が行う処理の内容の模式図である。
図13(a)を参照すると、書籍画像撮影部412は、カメラ画像取得部407、距離画像取得部408を用いて、カメラ部202からカメラ画像を、距離センサ部208から距離画像を、それぞれ1フレームずつ取得する(S1101)。ここで得られるカメラ画像の例を図14(a)に示す。図14(a)では、ステージ204と撮影対象書籍1211を含むカメラ画像1201が得られている。図14(b)はここで得られた距離画像の例である。図14(b)では、距離センサ部208に近い方が濃い色であらわされており、距離センサ部208から物体1212上の各画素への距離が含まれる距離画像1202が得られている。また、図14(b)において、距離センサ部208からの距離がステージ204よりも遠い画素については白で表されている。物体1212のステージ204に接している部分(物体1212では右側のページ)も同じく白色となる。
書籍画像撮影部412は、取得したカメラ画像と距離画像からステージ204上に載置された書籍物体の3次元点群を算出する処理を行う(S1102)。すなわち、カメラ画像1201とステージ背景カメラ画像との画素毎の差分を算出して二値化を行い、図14(c)のように物体領域1213が黒で示されるカメラ差分画像1203を生成する(S1111)。書籍画像撮影部412は、また、カメラ差分画像1203を、カメラ座標系から距離センサ部座標系への変換を行い、図14(d)のように距離センサ部208からみた物体領域1214を含むカメラ差分画像1204を生成する(S1112)。また、距離画像とステージ背景距離画像との画素毎の差分を算出して二値化を行い、図14(e)のように物体領域1215が黒で示される距離差分画像1205を生成する(S1113)。
ここで、物体1211のステージ204と同じ色で有る部分については、画素値の差が小さくなるためカメラ差分画像1203中の物体領域1213に含まれなくなる場合がある。また、物体1212のステージ204と高さが変わらない部分については距離センサ部208からの距離値がステージ204と差が小さいため、距離差分画像1205中の物体領域1215には含まれない場合がある。そこで、書籍画像撮影部412は、カメラ差分画像1203と距離差分画像1205の和をとって図14(f)に示す物体領域画像1206を生成し、物体領域1216を得る(S1114)。
物体領域1216は、ステージ204と比べて色が異なるかまたは高さが異なる領域となる。そのため、カメラ差分画像1203中の物体領域1213か距離差分画像1205中の物体領域1215のいずれか片方のみを使った場合よりも、より正確に物体領域を表している。物体領域画像1206は距離センサ部座標系である。そのため、書籍画像撮影部412は、距離画像1202から物体領域画像1206中の物体領域1216のみを抽出する(S1115)。書籍画像撮影部412は、S1115で抽出した距離画像を直交座標系に変換することにより図12(f)に示した3次元点群1217を生成する(S1116)。この3次元点群1217が書籍物体の3次元点群である。
書籍画像撮影部412は、取得したカメラ画像と、算出した3次元点群から、書籍画像のゆがみ補正処理を行い(S1103)、2次元の書籍画像を生成する。S1103の処理は、図13(b)に示す通りである。すなわち、物体領域画像1206を距離センサ部画像座標系からカメラ座標系に変換する(S1121)。カメラ画像1201から物体領域画像1206中の物体領域1216をカメラ座標系に変換したものを用いて物体領域を抽出する(S1122)。抽出した物体領域画像をステージ平面へ射影変換する(S1123)。射影変換した物体領域画像を矩形近似し、その矩形が水平になるように回転することによって、図14(g)の書籍画像1208を生成する(S1124)。書籍画像1208は近似矩形の片方の編がX軸に平行となっているため、以降書籍画像1208に対してX軸方向へのゆがみ補正処理を行う。
書籍画像1208の最も左端の点をPとする(図14(g)の点P)(S1125)。書籍物体の3次元点群1217から点Pの高さ(図14(g)のh1)を取得する(S1126)。書籍画像1208の点Pに対してX軸方向に所定の距離(図14(g)のx1)離れた点をQとする(図14(g)の点Q)(S1127)。3次元点群1217から点Qの高さ(図14(g)のh2)を取得する(S1128)。点Pと点Qの書籍物体上での距離(図14(g)のl1)を直線近似で算出する(S1219)。
算出した距離l1でPQ間の距離を補正し(S1130)、図14(g)における画像1219上の点P’と点Q’ の位置に画素をコピーする。処理を行った点Qを点Pとし、S1128に戻って同じ処理を行うことによって図12(g)の点Qと点Rの間の補正を実行する(S1131)。これにより、画像1219上の点Q’と点R’の画素とする。この処理を全画素について繰り返すことにより、画像1219はゆがみ補正後の画像となる。ゆがみ補正処理を全ての点について終えたかどうかを判断し(S1132)、終えていれば書籍物体のゆがみ補正処理を終了する。以上のようにして、S1102、S1103の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
ゆがみ補正を行った書籍画像の生成後、生成した書籍画像に階調補正を行う(S1104)。生成した書籍画像に対して、あらかじめ決めておいた画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮およびファイルフォーマット変換を行う(S1105)。生成した画像データを、データ管理部405を介してHDD305の所定の領域へファイルとして保存し(S1106)、書籍画像撮影部412の処理を終了する。
<立体形状測定部>
次に、図15を参照して、立体形状測定部413が実行する処理手順について説明する。図16は立体形状測定部413の処理を説明するための模式図である。
立体形状測定部413は、シリアルI/F310を介してターンテーブル209へ回転指示を行い、ターンテーブル209を所定の角度ずつ回転させる(S1301)。ここでの回転角度は小さければ小さいほど最終的な測定精度は高くなるが、その分測定回数が多くなり時間がかかるため、装置として適切な回転角度を予め決めておけばよい。
次に、図15を参照して、立体形状測定部413が実行する処理手順について説明する。図16は立体形状測定部413の処理を説明するための模式図である。
立体形状測定部413は、シリアルI/F310を介してターンテーブル209へ回転指示を行い、ターンテーブル209を所定の角度ずつ回転させる(S1301)。ここでの回転角度は小さければ小さいほど最終的な測定精度は高くなるが、その分測定回数が多くなり時間がかかるため、装置として適切な回転角度を予め決めておけばよい。
立体形状測定部413は、次に、ステージ204内に設けられたターンテーブル209上の物体に対して、カメラ部202とプロジェクタ207を用いて3次元点群測定処理を行う(S1302)。図15(b)はS1302で実行する3次元点群測定処理の手順説明図である。
図15(b)を参照すると、立体形状測定部413は、図16(a)に示したターンテーブル209上の物体1401に対して、プロジェクタ207から3次元形状測定パターン1402を投射する(S1311)。また、カメラ画像取得部407を介してカメラ部202からカメラ画像を1フレーム取得する(S1312)。その後、3次元形状測定パターン1402と取得したカメラ画像間での対応点を図5のS504と同様にして抽出する(S1313)。そして、カメラ部202およびプロジェクタ207の位置関係から、カメラ画像上の各画素における距離を算出し、距離画像を生成する(S1314)。ここでの測定方法は、距離画像取得部408の処理において、S505で説明した測定方法と同じである。
図15(b)を参照すると、立体形状測定部413は、図16(a)に示したターンテーブル209上の物体1401に対して、プロジェクタ207から3次元形状測定パターン1402を投射する(S1311)。また、カメラ画像取得部407を介してカメラ部202からカメラ画像を1フレーム取得する(S1312)。その後、3次元形状測定パターン1402と取得したカメラ画像間での対応点を図5のS504と同様にして抽出する(S1313)。そして、カメラ部202およびプロジェクタ207の位置関係から、カメラ画像上の各画素における距離を算出し、距離画像を生成する(S1314)。ここでの測定方法は、距離画像取得部408の処理において、S505で説明した測定方法と同じである。
立体形状測定部413は、距離画像の各画素について直交座標系への座標変換を行い、3次元点群を算出する(S1315)。算出した3次元点群からステージ204の平面パラメータを用いてステージ平面に含まれる3次元点群を除去する(S1316)。残った3次元点群の中から位置が大きく外れている点をノイズとして除去し、物体1401の3次元点群1403を生成する(S1317)。立体形状測定部413は、また、プロジェクタ207から投射している3次元形状測定パターン1402を消灯する(S1318)。さらに、カメラ画像取得部407を介してカメラ部202からカメラ画像を取得し、その角度から見たときのテクスチャ画像として保存する(S1319)。その後、3次元点群測定処理を終了する。
2回目以降にS1302の3次元点群測定処理を実行した際は、S1301でターンテーブル209を回転させて計測を行っている。つまり、図16(c)に示すようにターンテーブル209上の物体1401、プロジェクタ207およびカメラ部202の角度が変わっている。そのため、図16(d)に示すように、S1302で得られた3次元点群1402とは異なる視点から見た3次元点群1403が得られる。この3次元点群1402では、カメラ部202およびプロジェクタ207から死角となって算出できなかった部分の3次元点群が、3次元点群1403では含まれることになる。そこで、立体形状測定部413は、異なる視点から見た2つの3次元点群1402と1403を重ね合わせる処理を行う。
具体的には、立体形状測定部413は、S1302で測定した3次元点群1403を、ターンテーブルが初期位置から回転した角度分逆回転することにより、3次元点群1403との位置を大まかに合わせた3次元点群1404を算出する(S1303)。立体形状測定部413は、S1303で算出された3次元点群と、既に合成された3次元点群との合成処理を行う(S1304)。3次元点群の合成処理は特徴点を用いたICP(IterativeClosestPoint)アルゴリズムを用いる。ICPアルゴリズムでは合成対象の2つの3次元点群1402と1404から、それぞれコーナーとなる3次元特徴点を抽出する。その後、3次元点群1402の特徴点と3次元点群1404の特徴点の対応をとって、すべての対応点同士の距離を算出して加算し、3次元点群1404の位置を動かしながら対応点同士の距離の和が最小となる位置を繰り返し算出する。繰り返し回数が上限に達した場合や、対応点同士の距離の和が最小となる位置が算出された場合、立体形状測定部413は、3次元点群1404を移動させる。その後に3次元点群1403と重ね合わせることにより、2つの3次元点群1403と1404を合成する。このようにして合成後の3次元点群1405を生成し、3次元点群合成処理を終了する。
S1304の3次元点群合成処理が終了すると、立体形状測定部413は、ターンテーブル209が1周回転したかどうかを判断する(S1305)。まだターンテーブル209が1周回転していなければ、S1301へ戻り、ターンテーブル209をさらに回転してからS1302を実行し、別の角度の3次元点群を測定する。そしてS1303〜S1304において既に合成した3次元点群1405と新たに測定した3次元点群との合成処理を行う。このようにS1301からS1305の処理をターンテーブル209が1周するまで繰り返すことにより、物体1401の全周3次元点群を生成することができる。
S1305でターンテーブル209が1周したと判断した場合、立体形状測定部413は、生成した3次元点群から3次元モデルを生成する処理を行う(S1306)。3次元モデル生成処理を開始すると、3次元点群からノイズ除去および平滑化を行う(S1331)。立体形状測定部413は、3次元点群から三角パッチを生成することで、メッシュ化を行う(S1332)。メッシュ化によって得られた平面へS1319で保存したテクスチャをマッピングする(S1333)。このようにして、テクスチャマッピングされた3次元形状の物体画像を生成する。以下、このような3次元形状を「3次元モデル」、この物体画像を「3次元モデルデータ」という。
立体形状測定部413は、3次元モデルデータをVRMLやSTL等の標準的な3次元モデルデータフォーマットへ変換し、データ管理部405を介してHDD305上の所定の領域に格納する(S1307)。これにより、立体形状測定部413の処理を終了する。
立体形状測定部413は、3次元モデルデータをVRMLやSTL等の標準的な3次元モデルデータフォーマットへ変換し、データ管理部405を介してHDD305上の所定の領域に格納する(S1307)。これにより、立体形状測定部413の処理を終了する。
<メイン制御部>
次に、メイン制御部402による個別的な制御動作の一例を説明する。まず、図17を参照してメイン制御部402が実行するスキャンアプリケーションの処理手順について説明する。ここでは、3Dスキャナ101で物体を3次元スキャンした後、スキャンデータに対してその場で編集を施し、3次元プリントジョブを生成する場合の例を挙げる。
図18は、物体を3次元スキャンした際の、編集操作の一例を模式的に表した図である。図18(a)には、カメラ型の物体1601がステージ204に載置されている例が示されている。図18(b)は、ステージ204上で3次元スキャンを実行した後の、物体1601を状態を示す。図18(b)では、物体1601の部分1602と1603毎に、異なる色の光が、プロジェクタ207から、それぞれの部分の表面上に投影されている様子が示されている。このように投影することで、ユーザーは、物体1601が、3Dスキャナ101によってどのように認識され、どの部分を編集したらよいかを容易に把握することができる。次に、図18(c)に示すように、ユーザーは編集したい部分1603に対して、手1604でタッチする。この物体へのタッチを認識することによって、ユーザーは、編集箇所を3Dスキャナ101に知らせることができる。これらの処理の具体的な手順を、以下に説明する。
次に、メイン制御部402による個別的な制御動作の一例を説明する。まず、図17を参照してメイン制御部402が実行するスキャンアプリケーションの処理手順について説明する。ここでは、3Dスキャナ101で物体を3次元スキャンした後、スキャンデータに対してその場で編集を施し、3次元プリントジョブを生成する場合の例を挙げる。
図18は、物体を3次元スキャンした際の、編集操作の一例を模式的に表した図である。図18(a)には、カメラ型の物体1601がステージ204に載置されている例が示されている。図18(b)は、ステージ204上で3次元スキャンを実行した後の、物体1601を状態を示す。図18(b)では、物体1601の部分1602と1603毎に、異なる色の光が、プロジェクタ207から、それぞれの部分の表面上に投影されている様子が示されている。このように投影することで、ユーザーは、物体1601が、3Dスキャナ101によってどのように認識され、どの部分を編集したらよいかを容易に把握することができる。次に、図18(c)に示すように、ユーザーは編集したい部分1603に対して、手1604でタッチする。この物体へのタッチを認識することによって、ユーザーは、編集箇所を3Dスキャナ101に知らせることができる。これらの処理の具体的な手順を、以下に説明する。
メイン制御部402が処理を開始すると、ステージ204にスキャンの物体が載置されるのを待つ(S1501)。物体載置待ち処理を開始すると、ユーザーインターフェイス部403のGUI部品生成表示部414を介して、ステージ204にプロジェクタ207によって初期画面を投影する(S1511)。例えば、図20(a)に示すようなステージ204上に物体を置くことをユーザーに促すメッセージ1721のGUI部品の画像を生成し、投影する。その後、メイン制御部402は、物体検知部410を起動させる。物体検知部410は、図10に示した処理手順を実行する(S1512)。メイン制御部402は、物体検知部410からの物体載置通知を待つ(S1513)。物体検知部410が図10のS827の処理を実行して物体載置を通知すると、メイン制御部402は、物体載置通知ありと判断し(S1513)、物体載置待ち処理を終了する。
S1501の物体載置待ち処理を終了すると、メイン制御部402は、続いてスキャン実行処理を行う(S1503)。スキャン実行処理開始時には、図20(b)に示したスキャン開始画面が、GUI部品生成表示部414を介してステージ204に投射されている。図20(b)では、物体1601が、ステージ204上に置かれている状態を表している。つまり、図20(b)における物体1601は、真上から見た状態を表している。2Dスキャンボタン1722は平面原稿の撮影指示を受け付けるボタン、書籍スキャンボタン1723は書籍原稿の撮影指示を受け付けるボタン、3次元スキャンボタン1724は立体形状の測定指示を受け付けるボタンである。
ユーザーインターフェイス部403は、前述したようにジェスチャー認識部409から通知されるタッチジェスチャーの座標とこれらのボタンを表示している座標から、いずれかのボタンがユーザーによって押下されたことを検知する。(以降、ユーザーインターフェイス部による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。)
ユーザーインターフェイス部403は、前述したようにジェスチャー認識部409から通知されるタッチジェスチャーの座標とこれらのボタンを表示している座標から、いずれかのボタンがユーザーによって押下されたことを検知する。(以降、ユーザーインターフェイス部による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。)
また、ユーザーインターフェイス部403は、2Dスキャンボタン1722、書籍スキャンボタン1723、3次元スキャンボタン1724へのタッチを検知すると、選択したスキャン実行を行う。あるいは、選択したスキャンの実行開始指示を受け付けるスキャン開始ボタンを別途配置し、2Dスキャンボタン1722、書籍スキャンボタン1723、3次元スキャンボタン1724のそれぞれを排他的に選択できるようにしてもよい。その際には、ユーザーのいずれかのボタンへのタッチを検知すると、タッチされたボタンを選択状態とし、他のボタンの選択を解除する。
メイン制御部402は、スキャン開始ボタン1722〜1724のタッチを検知するまで待つ(S1531)。タッチされたスキャン開始ボタンが2Dスキャンボタン1722の場合にはS1532へ進み平面原稿画像撮影部411の処理を実行する。書籍スキャンボタン1723の場合にはS1533へ進み、書籍画像撮影部412の処理を実行する。また、3次元スキャンボタン1724の場合にS1534へ進み、立体形状測定部413の処理を実行する。そしてS1532〜S1534のいずれかによる処理が終了すると、スキャン実行処理を終了する(S1503)。スキャン実行処理が終了すると、メイン制御部402は、分割投影処理を実行する(S1506)。
図19を参照して、分割投影処理について説明する。メイン制御部402は、直前のS1503で実行した処理が、立体形状測定部413による処理、つまり3次元スキャンであったかどうかを確かめる(S1701)。3次元スキャンだった場合はS1702へ移行し、違った場合は分割投影処理を終了する。
メイン制御部402は、距離画像取得部408により取得された3次元点群から、ステージ204の平面を除去して保存する(S1702)。平面を除去する方法は前述した通りである。これにより、現在の物体1601の3次元点群を保存することができる。
メイン制御部402は、距離画像取得部408により取得された3次元点群から、ステージ204の平面を除去して保存する(S1702)。平面を除去する方法は前述した通りである。これにより、現在の物体1601の3次元点群を保存することができる。
その後、メイン制御部402は、立体形状測定部413で取得した3次元モデルデータのうち、3次元形状の部分を所定規則にしたがって分割(セグメンテーション)し、分割画像(セグメント)を得る(S1703)。3次元モデルデータの分割の仕方については、例えば特開2011−48791号公報に開示されている公知技術を用いることができる。所定規則は、本実施形態では、形状を単位として分割するなどである。この規則は、HDD305に格納されている。メイン制御部402は、また、分割画像の集合である物体画像(セグメンテーション後の3次元モデルデータ)を生成する。
また、メイン制御部402は、直前のステップで保存した、物体1601の3次元点群のそれぞれが、物体画像におけるどの分割画像に相当するかを判定する。つまり、セグメンテーション結果を判定する。そのために、メイン制御部402は、3次元形状の計測の際に複数回測定した物体の最後の姿態の状態に、直交座標系内で、物体画像を回転させる。次に、メイン制御部402は、物体1601の3次元点群のそれぞれが、物体画像のうち、どの分割画像に属しているかを判定する。そのため、分類したい物体1601の3次元点群の一点と、各分割画像の集合体である物体画像を構成する全点との距離を計測する。そこで最短距離となった物体画像を構成する点が属する分割画像が、分類したい物体1601の3次元点群の一点が属する分割画像となる。この処理を、物体1601の3次元点群の点すべてにおいて実行すれば、各点がどちらの分割画像に属するかを認識することができる。
メイン制御部402は、直前のS1703で分割した分割画像ごとに異なる色の光を割り当て、ユーザーからの各種指示を受け付けるための各種メニューとリンクするデータと共に、プロジェクタ207に供給する。そして、物体画像については、プロジェクタ207から、計測した物体1601の姿態に応じた角度で物体1601の表面または当該物体1601の近傍のステージ204へ投影させる。つまり、分割結果を表示する(S1704)。投影には、公知のプロジェクションマッピングの技術を用いることができる。すなわち、直前のS1703でそれぞれの分割画像に分類した物体1601の3次元点群を用い、この座標系を直交座標系からプロジェクタ207の座標系に変換する。メイン制御部402は、この(Xp,Yp)平面で見た画像を投影する。分割画像毎に異なる光を投影することで、ユーザーは、物体1601がどのように分割されたかを視認することができる。
この状態を真上から見た様子を模式的に表したのが、図20(a)である。図20(b)では、物体1601の部分1726と部分1727に、それぞれ異なる光が投影されている。同時に、スキャンされた物体1601の3次元プレビュー画像1725が右上に表示されている。
プロジェクタ207からは、ユーザーによる各種指示を受け付けるためのメニューボタン1728〜1734も投影される。ボタン1728は編集の指示、すなわち部分編集のモードに入るための指示を受け付けるボタンである。図20(c)の状態では、網掛けがされて選択状態になっている様子を示している。
ボタン1729は、分割形態(セグメンテーション方法)を立体形状のままで行うかどうかの選択を受け付けるボタンである。本実施形態では、立体形状を用いた分割を行ったので、デフォルトでこれが選択されている。ボタン1730は、色で分割する際に用いる。これは第2実施形態で詳しく説明する。
プロジェクタ207からは、ユーザーによる各種指示を受け付けるためのメニューボタン1728〜1734も投影される。ボタン1728は編集の指示、すなわち部分編集のモードに入るための指示を受け付けるボタンである。図20(c)の状態では、網掛けがされて選択状態になっている様子を示している。
ボタン1729は、分割形態(セグメンテーション方法)を立体形状のままで行うかどうかの選択を受け付けるボタンである。本実施形態では、立体形状を用いた分割を行ったので、デフォルトでこれが選択されている。ボタン1730は、色で分割する際に用いる。これは第2実施形態で詳しく説明する。
ボタン1731は、物品画像における一部または全部の分割画像の削除(消去)の指示を受け付けるボタンである。ボタン1732は、分割画像の一部または全部の色変更の指示を受け付けるボタンである。ボタン1733は、物品画像を3次元プリントジョブに変換して、3次元プリンタに送信する指示を受け付けるボタンである。なお、3次元プリンタは図示を省略したが、図1の104のネットワークを介して、3Dスキャナ101と接続されているものとする。ボタン1734は、現在の3次元スキャン処理の終了指示を受け付けるボタンである。
メイン制御部402は、また、ジェスチャー認識部409から、物体1601に対するユーザーの接触態様が検知されたかどうか、つまり、物体タッチ検出の通知があったかどうかを確認する(S1705)。検出がなかった場合は、S1707へ移行する。検出があった場合は接触部位(タッチされた点)が、どの分割画像に属するかを判定する(S1706)。物体タッチの検出には、S1703でセグメントに割り振った物体1601の3次元点群を用いているので、物体画像のどの部位(分割画像)にタッチされたかを容易に判定することができる。このとき、タッチされた分割画像への投影光を点滅させたり、光量を変化させたりして、認識された接触部位が他の部位と異なる表示態様となるように物体画像を生成してもよい。つまり、ユーザーのタッチ動作が認識されたことをユーザーにフィードバックしてもよい。
メイン制御部402は、ユーザーによるメニューボタン1728〜1734の押下が行われたかどうかを判定する(S1707)。メニューボタン1728〜1734の押下が行われた場合は、それぞれ押されたメニューボタンの種類によって、S1708〜S1710の何れかに移行する。メニューボタン1728〜1734が押下されなかった場合は、S1705へ戻り、再び物体タッチが検出されたかどうかを確認する。
メイン制御部402は、編集メニューのボタン1731、1732が押下された場合は、S1708へ移行する。3次元プリント実行ボタン1733が押下された場合は、S1709へ移行する。処理終了ボタン1734が押下された場合は、S1710へ移行する。
メイン制御部402は、物体画像(セグメンテーション後の3次元モデルデータ)に対して、各種編集処理を施し、保存する(S1708)。例えば、S1706で物体1601の部分1727にタッチされたと特定したうえで、削除ボタン1731が押下された場合は、3次元モデルの該当部分の削除、すなわち分割画像を消去する処理を行う。このとき、物体1601表面上への投影画像は、図20(d)の1735の部分のように、タッチされた分割画像に該当する箇所だけ投影が消される。同時に、プレビュー画像1736でも、該当部分のデータが削除されて表示される。また、実際の物体画像(投影元の物体画像)のデータでは、該当部分が削除されたデータが新たに作成されて保存される。色変更の場合も同様の処理が実行され、投影画像の色はユーザーにより選択された色に変更され、プレビュー画像の色も選択された色に変更される。
メイン制御部402は、物体画像(セグメンテーション後の3次元モデルデータ)に対して、各種編集処理を施し、保存する(S1708)。例えば、S1706で物体1601の部分1727にタッチされたと特定したうえで、削除ボタン1731が押下された場合は、3次元モデルの該当部分の削除、すなわち分割画像を消去する処理を行う。このとき、物体1601表面上への投影画像は、図20(d)の1735の部分のように、タッチされた分割画像に該当する箇所だけ投影が消される。同時に、プレビュー画像1736でも、該当部分のデータが削除されて表示される。また、実際の物体画像(投影元の物体画像)のデータでは、該当部分が削除されたデータが新たに作成されて保存される。色変更の場合も同様の処理が実行され、投影画像の色はユーザーにより選択された色に変更され、プレビュー画像の色も選択された色に変更される。
3次元プリント実行ボタン1733が押下された場合、メイン制御部402は、3次元プリントジョブを発行する(S1709)。部分編集が何もなされていない場合は、物体1601の物体画像そのものを用いて、接続されている3次元プリンタにより定まるデータフォーマットに変換される。部分編集が実行されている場合は、部分編集が施された 物体画像に対して、データフォーマットの変換を行う。変換されたデータは、3次元プリントジョブとして生成され、ネットワーク104経由で、不図示の3次元プリンタへ送出される。その後、メイン制御部402は、保存されていないデータを破棄して(S1710)、S1506の分割投影処理を終了する。
以上の処理を繰り返すことで、3Dスキャンや3Dプリントなどを実行する際、ユーザーは、その場で物体1601の実物を用いた直感的な操作を行うことが可能になる。
以上の処理を繰り返すことで、3Dスキャンや3Dプリントなどを実行する際、ユーザーは、その場で物体1601の実物を用いた直感的な操作を行うことが可能になる。
[第2実施形態]
第1実施形態では、物体画像(セグメンテーション後の3次元モデルデータ)をその場で部分的に編集するために、物体を形状で分割し、その結果をプロジェクタ207で投影し、物体への接触態様に応じて編集箇所などの指定を行う場合の例を説明した。しかし、ユーザーが部分的な編集を行う際、形状で分けられた部分的な編集のみではなく、色で分けられた部分を編集したいことも考えられる。第2実施形態では、形状での分割だけでなく、色での分割も行う場合の例を説明する。第2実施形態では、図21の処理手順説明図と、図22(a)〜(c)の模式図とを用いて説明する。
第1実施形態では、物体画像(セグメンテーション後の3次元モデルデータ)をその場で部分的に編集するために、物体を形状で分割し、その結果をプロジェクタ207で投影し、物体への接触態様に応じて編集箇所などの指定を行う場合の例を説明した。しかし、ユーザーが部分的な編集を行う際、形状で分けられた部分的な編集のみではなく、色で分けられた部分を編集したいことも考えられる。第2実施形態では、形状での分割だけでなく、色での分割も行う場合の例を説明する。第2実施形態では、図21の処理手順説明図と、図22(a)〜(c)の模式図とを用いて説明する。
図22(a)に示す物体1821は、部分1828と部分1829とで色分けされている。第2実施形態では、この物体1821の3次元形状を計測する。この時のメイン制御部402の処理の内容は、図17に示した処理とほぼ同様であり、S1506の分割投影処理の手順が第1実施形態と異なる。そこで、この部分を中心に説明する。
メイン制御部402による分割投影処理の手順は、図21に示す通りである。図19と同様のS17xxで示した処理ステップは、図19の処理ステップと同様の処理なので、詳しい説明は省略する。
メイン制御部402による分割投影処理の手順は、図21に示す通りである。図19と同様のS17xxで示した処理ステップは、図19の処理ステップと同様の処理なので、詳しい説明は省略する。
メイン制御部402は、立体形状測定部413で計測し、生成された物体画像が、複数色の部材で構成されるものかどうかを確かめる(S1801)。この処理は、物体画像を構成する各点の色の値を、所定の色空間に分布させることで確認できる。複数色の部材が存在する場合、メイン制御部402は、物体1821の3次元モデルを形状と色の両方で分割し、物体1821の現在の3次元点群が属する分割画像を決定する(S1802)。形状に関してこれを行う処理は、第1実施形態において説明したS1703の処理と同様である。色に関しては、S1801で利用した3次元モデルを構成するデータの、所定の色空間への分布を用いる。この色空間の中で、分布させたデータを、K−means法などの公知のクラスタリング手法を用いて分割すればよい。こうして色で分割された分割画像に対して物体1821の3次元点群を割り振るためには、S1703で形状に対して行った方法と同様にして割り振ることができる。または、3次元点群も所定の色空間に分布させ、クラスタリング手法を用いて分割してもよい。
S1801において、複数色の部材が存在しなかった場合、メイン制御部402は、形状のみに対して、物体1821の3次元モデルを分割し、物体1821の現在の3次元点群がどの分割画像に属するかを決定する(S1803)。この方法は、S1703のそれと同じであるので、説明は省略する。
その後、メイン制御部402は、形状での分割結果を、プロジェクタ207を用いてプロジェクションする。すなわち、物体1821の表面またはその近傍のステージ204へ投影する(S1804)。この方法は、S1704のそれと同様の処理である。ここで、色で分割されていても、デフォルトで形状での分割結果を投影するようにしているが、色での分割結果を投影するようにしてもよい。このときの様子は図18(c)に示されている。
その後、メイン制御部402は、形状での分割結果を、プロジェクタ207を用いてプロジェクションする。すなわち、物体1821の表面またはその近傍のステージ204へ投影する(S1804)。この方法は、S1704のそれと同様の処理である。ここで、色で分割されていても、デフォルトで形状での分割結果を投影するようにしているが、色での分割結果を投影するようにしてもよい。このときの様子は図18(c)に示されている。
物体タッチが検出された場合、メイン制御部402は、現在投影されている分割形態が、形状か色のどちらかを判断する(S1805)。形状であった場合はS1806へ移行し、色であった場合はS1807へ移行する。この分岐により、後で説明するS1808で分割形態を切り替えた際も、タッチがどの分割形態で分割されたどの分割画像に対して行われたかを判断することができる。
メイン制御部402は、その後、形状での分割の情報を用いて、どの分割画像にタッチされたかを判定する(S1806)。この処理は、S1706の処理と同様の処理である。また、メイン制御部402は、色での分割したことの情報を用いて、どの分割画像にタッチされたかを判定する(S1807)。この処理はS1706の処理を、色で分割された分割画像に対して行うと考えればよい。
メイン制御部402は、S1707で押下されたボタンが、分割形態切替の指示を受け付けるボタン1830もしくは1831であった場合、S1808へ移行する。例えば、図22(b)の状態でボタン1831が押下された場合は、図22(c)の状態へ移行する。図22(b)でボタン1830が選択状態で網掛け表示されているのに対し、図22(c)では、ボタン1830の網掛け表示はなくなり、ボタン1831が選択状態として網掛け表示されている。
メイン制御部402は、S1707で押下されたボタンが、分割形態切替の指示を受け付けるボタン1830もしくは1831であった場合、S1808へ移行する。例えば、図22(b)の状態でボタン1831が押下された場合は、図22(c)の状態へ移行する。図22(b)でボタン1830が選択状態で網掛け表示されているのに対し、図22(c)では、ボタン1830の網掛け表示はなくなり、ボタン1831が選択状態として網掛け表示されている。
メイン制御部402は、物体への投影画像を色で分割した画像に変更して投影する(S1808)。投影の仕方は形状での場合と同じである。図22(c)では、部分1825と部分1826とが同じ色で投影され、部分1827がもう一つの色で投影されている。この状態で、S1708で説明したような各種編集処理を施すことが可能である。
以上の処理を繰り返すことで、物体1821を形状だけではなく色でも分割し、その場で編集することが可能となる。つまり、分割形態が切替可能であり、これに応じて編集形態も変更可能となる。
なお、第2実施形態では分割形態を形状と色で切り替えられるようにする場合の例を説明したが、両方で分割した結果を表示するモードを設けてもよい。また、分割結果を投影する際に、投影面を異なる色の光で色分けする例について説明したが、境界線だけを投影するようにしてもよい。例えば、形状で分割した結果を異なる色の光を用いた投影で表し、色で分割した結果を、境界線の投影で示すようにしてもよい。これにより、どちらの分割形態で分割されたのかをユーザーに明示することができる。
なお、第2実施形態では分割形態を形状と色で切り替えられるようにする場合の例を説明したが、両方で分割した結果を表示するモードを設けてもよい。また、分割結果を投影する際に、投影面を異なる色の光で色分けする例について説明したが、境界線だけを投影するようにしてもよい。例えば、形状で分割した結果を異なる色の光を用いた投影で表し、色で分割した結果を、境界線の投影で示すようにしてもよい。これにより、どちらの分割形態で分割されたのかをユーザーに明示することができる。
[第3実施形態]
第1および第2実施形態では、物体の物体画像(3次元モデルデータ)をその場で部分的に編集するために、物体を形状や色で分割し、その結果をプロジェクションマッピングにより投影し、物体タッチによって編集箇所の指定を行う例を説明した。しかし、分割が常に成功するとは限らない。第3実施形態では、分割に失敗した場合の処理について説明する。
第1および第2実施形態では、物体の物体画像(3次元モデルデータ)をその場で部分的に編集するために、物体を形状や色で分割し、その結果をプロジェクションマッピングにより投影し、物体タッチによって編集箇所の指定を行う例を説明した。しかし、分割が常に成功するとは限らない。第3実施形態では、分割に失敗した場合の処理について説明する。
図23は、第3実施形態においてメイン制御部402が実行する分割投影処理の手順説明図である。図24(a)〜(c)は、その処理の内容を示す模式図である。メイン制御部402の処理の殆どは、第1、第2実施形態と同じく、図19の処理手順説明図で示される。但し、S1530の分割投影処理は、図23に示されるものとなる。
第3実施形態では、図22(a)に示した物体1821をステージ204に置いた場合の例を説明する。図23の、S17xxやS18xxは、図19や図21のそれと同じ処理であるため、詳しい説明は省略する。
第3実施形態では、図22(a)に示した物体1821をステージ204に置いた場合の例を説明する。図23の、S17xxやS18xxは、図19や図21のそれと同じ処理であるため、詳しい説明は省略する。
メイン制御部402は、S1802で3次元モデルを形状および色で分割する処理を実行した後、形状による分割が成功したかどうかを判定する(S1901)。その判定基準は、例えば、形状による分割の結果、分割画像の数が所定の数より大きくなった場合は複雑すぎるため、エラー情報を出力する。
メイン制御部402は、分割画像の幅が最も小さくなる部分を調べる。そして、その幅が、距離画像取得部408で取得した距離画像の解像度より小さい場合はエラーとする。形状による分割が成功した場合はS1902へ移行し、失敗した場合はステップ1904へ移行する。
メイン制御部402は、分割画像の幅が最も小さくなる部分を調べる。そして、その幅が、距離画像取得部408で取得した距離画像の解像度より小さい場合はエラーとする。形状による分割が成功した場合はS1902へ移行し、失敗した場合はステップ1904へ移行する。
メイン制御部402は、色による分割が成功したかどうかを判定する(S1902)。例えば、色空間におけるクラスタリングの結果、所定のクラス以上のクラスの数に分割された場合は、分割に成功せず、エラーとする。もしくは、色空間上は複数の色にまたがって広く分布しているにもかかわらず、クラスタリング手法により分割点が見つけられなかった場合にエラーとしてもよい。色による分割が成功した場合はS1804へ移行し、失敗した場合はS1903へ移行する。
形状での分割に成功し、色での分割が失敗した場合、メイン制御部402は、図24(a)に示す色での分割に失敗した旨のメッセージ1921を所定時間プロジェクションする。つまり、プロジェクタ207で投影する(S1903)。その際、形状での分割数を合わせて投影してもよい。その後、メイン制御部402は、S1902と同様、色での分割に成功したかどうかの判定を行う(S1904)。成功していた場合はS1905へ移行し、失敗していた場合はS1907へ移行する。
形状での分割に失敗し、色での分割に成功した場合、メイン制御部402は、図24(b)に示す形状での分割に失敗した旨のメッセージ1922を所定時間プロジェクションする(S1905)。このとき、色により分割された分割画像の数を表示してもよい。メイン制御部402は、色で分割された分割画像を明示するため、物体1821の表面上にプロジェクションマッピングする(S1906)。この方法は、S1804で説明した、形状での分割結果をプロジェクションする方法と同様の方法である。
形状でも色でも分割に失敗した場合、メイン制御部402は、図24(c)のように分割に失敗した旨のメッセージを、所定時間プロジェクションする(S1907)。S1907の処理を終えると、S1707へと移行する。
メイン制御部402は、形状のみで分割を実施した後に、形状での分割が成功したかどうかを判定する(S1908)。この処理は、S1901の処理と同じ処理である。成功した場合はS1804へ移行し、失敗した場合は、S1909へ移行する。
メイン制御部402は、形状のみで分割を実施した後に、形状での分割が成功したかどうかを判定する(S1908)。この処理は、S1901の処理と同じ処理である。成功した場合はS1804へ移行し、失敗した場合は、S1909へ移行する。
メイン制御部402は、図24(c)に示す分割に失敗した旨のメッセージ1923を、所定時間プロジェクションする(S1909)。その後、図21に示した、分割形態の切り替えボタン1830または1831が押下されたかどうかを判定する(S1707)。押下された場合、メイン制御部402は、分割形態の切り替え処理を行う。
メイン制御部402は、S1901、S1902、S1904、S1908でエラー情報が出力される(エラー有りと判定された)場合は、その旨をユーザーに知らせる。すなわち、分割形態の切り替えが行われてもエラーがあるため切り替えができない旨をプロジェクションで所定時間表示する(S1910)。そして、切り替え処理を行う前の設定に戻す。
なお、本実施形態では、エラーがあっても切り替えボタンを押下できる状態であるようにしているが、エラーが発生した時点で、エラーが発生した方の分割への切り替えボタンを押下できないように自動的に設定してもよい。
以上の処理を繰り返すことで、分割にエラーがある場合でも、その旨をユーザーに通知することが可能となる。
メイン制御部402は、S1901、S1902、S1904、S1908でエラー情報が出力される(エラー有りと判定された)場合は、その旨をユーザーに知らせる。すなわち、分割形態の切り替えが行われてもエラーがあるため切り替えができない旨をプロジェクションで所定時間表示する(S1910)。そして、切り替え処理を行う前の設定に戻す。
なお、本実施形態では、エラーがあっても切り替えボタンを押下できる状態であるようにしているが、エラーが発生した時点で、エラーが発生した方の分割への切り替えボタンを押下できないように自動的に設定してもよい。
以上の処理を繰り返すことで、分割にエラーがある場合でも、その旨をユーザーに通知することが可能となる。
[第4実施形態]
ここまでの実施形態では、物体の3次元モデルデータをその場で部分的に編集するために、物体を形状や色で分割し、その結果をプロジェクションマッピングによって表示し、物体タッチによって編集箇所の指定を行う方法を説明した。物体に対してプロジェクションマッピングを行う場合、物体のプロジェクタ207に対する角度によっては、ある部分が別の部分のプロジェクタから見た死角をつくり、想定通りにプロジェクションできない可能性がある。また、距離センサ部208からみた死角ができる可能性もあり、ユーザーが所望の箇所にタッチできなくなるおそれがある。第4実施形態では、このような状態を回避するための例を説明する。
ここまでの実施形態では、物体の3次元モデルデータをその場で部分的に編集するために、物体を形状や色で分割し、その結果をプロジェクションマッピングによって表示し、物体タッチによって編集箇所の指定を行う方法を説明した。物体に対してプロジェクションマッピングを行う場合、物体のプロジェクタ207に対する角度によっては、ある部分が別の部分のプロジェクタから見た死角をつくり、想定通りにプロジェクションできない可能性がある。また、距離センサ部208からみた死角ができる可能性もあり、ユーザーが所望の箇所にタッチできなくなるおそれがある。第4実施形態では、このような状態を回避するための例を説明する。
図25は、第4実施形態においてメイン制御部402が実行する分割投影処理の手順説明図である。図26(a)〜(c)は、図25の処理の模式図である。図26(a)には、ステージ204に載置された物体1601に対して分割結果をプロジェクションする際、死角が発生してプロジェクションがうまくできていない様子が示されている。形状で分割した結果、部分2021と部分2022にプロジェクションするはずが、死角による影2023ができ、部分2022のほとんどにプロジェクションできていない。
図26(c)は、死角ができる様子を横から見た図である。プロジェクタ207の視線部分2027が部分2031に邪魔される。そのため、部分2032への投影結果では、範囲2029で死角となり、投影ができない。距離センサ部でも同じことがいえる。そこで、メイン制御部402は、図25のような処理を行う。図25のうち、S17xxの処理ステップは、図19のそれと同様の処理であるので詳しい説明を省略する。
メイン制御部402は、物体1601の3次元モデルを分割した後(S1703)、死角を回避する処理を実行する(S2001)。この処理は、図25(b)の処理手順説明図で示される。すなわち、メイン制御部402は、物体1601の表面上に、死角が発生するためにプロジェクションやタッチができない部分がないかどうかを確認する(S2002)。そのために、まず、分割された直行座標系における3次元モデルのデータを、プロジェクタ207の座標系に変換する。そして、プロジェクタ207から見た2次元画像を作成し、各分割画像の実際に見えている面積を求める。これとは別に、分割画像毎のデータ(分割された3次元モデルデータ)についても同様の処理を施し、死角がなければ見えるはずの面積を計算する。分割画像毎に、実際に見えている面積が、死角がなければ見えるはずの面積の何割かを算出する。この割合が、所定の値より小さい場合は、死角ありと判断する。
メイン制御部402は、物体1601の3次元モデルを分割した後(S1703)、死角を回避する処理を実行する(S2001)。この処理は、図25(b)の処理手順説明図で示される。すなわち、メイン制御部402は、物体1601の表面上に、死角が発生するためにプロジェクションやタッチができない部分がないかどうかを確認する(S2002)。そのために、まず、分割された直行座標系における3次元モデルのデータを、プロジェクタ207の座標系に変換する。そして、プロジェクタ207から見た2次元画像を作成し、各分割画像の実際に見えている面積を求める。これとは別に、分割画像毎のデータ(分割された3次元モデルデータ)についても同様の処理を施し、死角がなければ見えるはずの面積を計算する。分割画像毎に、実際に見えている面積が、死角がなければ見えるはずの面積の何割かを算出する。この割合が、所定の値より小さい場合は、死角ありと判断する。
メイン制御部402は、次に、死角が最も小さくなる角度を計算する(S2003)。そのために、各分割画像の実際に見えている面積の差の絶対値を計算する。3つ以上の分割画像がある場合は、全ての2つの分割画像の面積の差の絶対値を計算した上で、それらの差の絶対値を足し合わせる。この差の絶対値を保存したうえで、ステージ204上で、直交座標系のz軸周りに仮想的に所定角度だけ回転させた物体画像を作成し、上記同様に、プロジェクタ207から見た2次元画像を作成する。この2次元画像を用いて、実際に見えている分割画像の差を計算して保存する。仮想的な回転、差の計算を繰り返し、横軸に回転角、縦軸に差の値をとってプロットする。このとき、極小値が現れるまで回転を続ける。極小値となったときの回転角の値を死角が最も小さくなる角度として決定する。その後、メイン制御部402は、S2003で求めた角度だけ、物体1601を変位させる。具体的には、ターンテーブル209を回転するように、コントローラ部201に指示を出す(S2004)。コントローラ部201は、ターンテーブル209を指示された角度だけ回転させる。
上記説明は、プロジェクタ207から見た死角が最小になる角度を算出し、その分だけ回転する場合の例であるが、距離センサ部から見た死角も併せて検出し、両方の死角が最小になる回転角度を求めるようにしてもよい。
本実施形態では、また、ターンテーブル209を回転する構成をとっているが、ターンテーブル209を回さずとも、ユーザーが自分の手で物体を回すようにしてもよい。この場合、図26(b)のように、死角が発生するため回転する旨のメッセージ2030と、回転の方向と量を表す矢印を表示すればよい。
以上の処理を繰り返すことで、物体がプロジェクタ207や距離センサ部に対していかなる角度で置かれていようとも、死角を回避してプロジェクションやタッチの検出ができるようになる。
本実施形態では、また、ターンテーブル209を回転する構成をとっているが、ターンテーブル209を回さずとも、ユーザーが自分の手で物体を回すようにしてもよい。この場合、図26(b)のように、死角が発生するため回転する旨のメッセージ2030と、回転の方向と量を表す矢印を表示すればよい。
以上の処理を繰り返すことで、物体がプロジェクタ207や距離センサ部に対していかなる角度で置かれていようとも、死角を回避してプロジェクションやタッチの検出ができるようになる。
[第5実施形態]
ここまでの実施形態では、物体を形状や色で分割して、その結果をプロジェクションマッピングによって表示したり、タッチ検出したりする例を説明した。また、この技術を、ユーザーインターフェイスへ応用する例として説明した。第5実施形態では、上記技術の他の応用例として、書籍物体の画像をブロック分割して所望の部分だけ保存する例について説明する。図27は、第5実施形態においてメイン制御部402が実行する分割投影処理の手順説明図。図28(a)〜(c)は図27の処理の模式図である。
ここまでの実施形態では、物体を形状や色で分割して、その結果をプロジェクションマッピングによって表示したり、タッチ検出したりする例を説明した。また、この技術を、ユーザーインターフェイスへ応用する例として説明した。第5実施形態では、上記技術の他の応用例として、書籍物体の画像をブロック分割して所望の部分だけ保存する例について説明する。図27は、第5実施形態においてメイン制御部402が実行する分割投影処理の手順説明図。図28(a)〜(c)は図27の処理の模式図である。
図28(a)のように、ステージ204上に書籍物体2121を載置することを考える。書籍物体2121内には、テキストや画像など、様々なコンテンツが記載されている。図28(b)は、書籍物体2121が置かれたステージ204を真上、つまり直行座標系のz軸の正の方向から見た画像である。
本実施形態におけるメイン制御部402の処理は、これまでに述べた実施形態と同様に、図19に示した処理手順とほぼ同様となる。S1506の分割投影処理は、図27の処理手順で表される。図27中のS17xxは、図19におけるそれと同じ処理ステップであるので、詳しい説明を省略する。
本実施形態におけるメイン制御部402の処理は、これまでに述べた実施形態と同様に、図19に示した処理手順とほぼ同様となる。S1506の分割投影処理は、図27の処理手順で表される。図27中のS17xxは、図19におけるそれと同じ処理ステップであるので、詳しい説明を省略する。
メイン制御部402は、S1503のスキャン実行処理で、書籍画像撮影部412による、書籍物体2121のスキャンが実行されたかどうかを確認する(S2101)。書籍物体2121のスキャンが実行された場合、メイン制御部402は、書籍物体2121へのタッチを検出するための3次元点群を保存する(S2102)。この処理内容は、S1702の処理と同様の処理である。書籍物体のスキャンが実行されない場合はS2109へ移行する。
メイン制御部402は、S1106で保存した書籍物体2121の物体画像に対して像域分離処理を行う(S2103)。像域分離の処理は、テキストが書かれているブロック、写真のブロック等、ブロック単位での分離を施す処理である。これは公知の技術を用いることができる。メイン制御部402は、この分離結果を、プロジェクタ207を用いて書籍物体2121に対してプロジェクションする(S2104)。その際、書籍画像撮影部412の処理で行った書籍画像の引き伸ばし処理の逆の処理を施すことで、分離したブロックの領域を示す投影画像を作成することができる。このようにして作成した投影画像をプロジェクションした様子が、図28(c)の模式図に表されており、点線2122が分離された各ブロックの投影結果を表している。
メイン制御部402は、ユーザーの接触態様、すなわち物体タッチが検出されたかどうかを確認する(S2105)。この処理は、S1705の処理と同様の処理である。メイン制御部402は、その後、タッチされたブロックがどれかを特定する(S2106)。このために、現在の書籍物体2121の3次元点群を、真上つまり、直交座標系のz軸の正の方向からみた画像に変換し、書籍画像撮影部412と同様の引き伸ばし処理を施す。その上で書籍物体の領域のみを切り出す。そして、S1106で保存し、像域分離された書籍物体の画像の領域に重なるように変換する。ここで分離されたブロック内にある点群の点を、対応するブロックの点として決定する。この処理の後、タッチされた点が、どのブロックに属するか確認すればよい。
メイン制御部402は、タッチされたブロックの画像を切り出し、所定のフォーマットに変換して保存する(S2107)。平面タッチにより終了ボタンが押下されたかどうかを確認する(S2108)。終了ボタンが押下された場合はS2109へ移行し、押下されなかった場合はS2105へ戻って物体タッチの通知がないか確認する。S2109では、保存していない画像を破棄するなどの終了処理を行い、分割投影処理を終了する。
以上の処理を繰り返すことで、書籍物体の内容をその場でブロック分割して保存することが可能となる。
以上の処理を繰り返すことで、書籍物体の内容をその場でブロック分割して保存することが可能となる。
このように、第1ないし第5実施形態によれば、形状と色による物体の分割を行った上で、その分割結果を、プロジェクタ207を用いて、物体表面上に投影する。これにより、ユーザーは物体のどの部分が編集可能かどうかをその場で視認することができる。また、分割画像に対してユーザーが指示を行う際、ユーザーの指によるタッチがどの分割画像に対して行われたのかを検出し、ユーザーからの編集箇所の指示を受け付けることができる。そのため、3Dスキャンしたデータに対してその場で現物を用いた直感的な操作が可能となり、操作性を大きく向上させることができる。
上記各実施形態では、コンピュータが制御プログラムを実行することにより所要の機能を実現する例を説明したが、本発明の実施の形態は、このような例に限定されない。例えば、制御プログラムの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットと協働で処理を実行し、それによって前述した各実施形態の機能が実現される場合も含まれる。また、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。また、上記制御プログラムなどを記録した記憶媒体もまた、本発明の実施の一態様である。このような記憶媒体としては、例えば、フレキシブルディスク、外部ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
Claims (17)
- 物体を載置するためのステージと、
画像を投影するためのプロジェクタと、
前記ステージに載置された物体の3次元形状およびその姿態を計測する計測手段と、
計測された3次元形状を所定規則にしたがって分割し、分割された分割画像の集合である物体画像を生成するとともに、生成した物体画像を前記プロジェクタに供給し、該プロジェクタから前記物体の姿態に応じた角度で前記物体の表面または当該物体の近傍の前記ステージへ投影させる制御手段と、
を備えて成る、画像処理装置。 - 前記物体に対するユーザの接触部位を認識する認識手段を備えており、
前記制御手段は、認識された前記接触部位が他の部位と異なる表示態様となるように前記物体画像を生成する、
請求項1記載の画像処理装置。 - 前記物体画像の前記認識された接触部位に対する編集の指示を受け付ける受付手段を備えており、
前記制御手段は、受け付けた指示に従って当該物体画像を編集し、編集された前記物体画像を前記プロジェクタから前記物体の表面または当該物体の近傍の前記ステージへ投影させる、
請求項2記載の画像処理装置。 - 前記制御手段は、前記指示が前記分割画像の削除である場合に、前記物体画像から当該分割画像を消去する、
請求項3記載の画像処理装置。 - 前記制御手段は、前記指示が前記分割画像の色変更である場合に、色変更が指示された分割画像の色を変更する、
請求項3記載の画像処理装置。 - 前記物体が複数色の部材で構成されており、
前記制御手段は、前記3次元形状を形状と色の両方で分割することにより前記分割画像を決定する、
請求項3ないし5のいずれか1項記載の画像処理装置。 - 前記3次元形状の編集の形態が変更可能である、
請求項6記載の画像処理装置。 - 前記制御手段は、前記3次元形状の編集の形態に応じて、前記認識された接触部位の表示態様を変更させる、
請求項7記載の画像処理装置。 - 前記制御手段は、前記3次元形状の分割ができなかったときにエラー情報を出力する、
請求項1ないし8のいずれか1項記載の画像処理装置。 - 前記3次元形状の分割は複数の分割形態に切替可能であり、
前記制御手段は、いずれかの分割形態を他の分割形態に切り替える際に前記エラー情報を出力する場合は、分割形態の切り替えを行わない、
請求項9記載の画像処理装置。 - 前記制御手段は、前記3次元形状の分割ができなかった場合は、前記切り替えができないようにする、
請求項10記載の画像処理装置。 - 前記制御手段は、前記物体の死角になる部分が当該物体に存在するときは、前記死角が少なくなる位置まで、当該物体を変位させる、
請求項1ないし11のいずれか1項記載の画像処理装置。 - 前記ステージを回転させるターンテーブルを有し、
前記制御手段は、前記死角が少なくなる位置まで、前記ターンテーブルを回転させる、請求項12記載の画像処理装置。 - 前記物体が書籍であり、
前記制御手段は、前記書籍に対応する前記物体画像に対してブロック単位での分離を施す像域分離処理を行い、この像域分離処理により分離された各ブロックの画像を前記プロジェクタにより前記書籍原稿へ投影する、
請求項1ないし13のいずれか1項記載の画像処理装置。 - 前記制御手段は、前記物体画像へのユーザーによる接触態様を検出し、前記物体画像のどの部分に接触されたかを特定するとともに、接触された部位の画像を保存する、
請求項14記載の画像処理装置。 - 前記制御手段は、前記物体画像に対応する3次元形状の物体をプリントするプリンタ装置へ送出するためのプリントジョブを生成する、
請求項1ないし15のいずれか1項記載の画像処理装置。 - 物体を載置するためのステージと、画像を投影するためのプロジェクタとを有するコンピュータを、
前記ステージに載置された物体の3次元形状およびその姿態を計測する計測手段、
計測された3次元形状を所定規則にしたがって分割し、分割された分割画像の集合である物体画像を生成するとともに、生成した物体画像を前記プロジェクタに供給し、該プロジェクタから前記物体の姿態に応じた角度で前記物体の表面または当該物体の近傍の前記ステージへ投影させる制御手段として動作させる、
制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014163193A JP2016038820A (ja) | 2014-08-08 | 2014-08-08 | 画像処理装置および制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014163193A JP2016038820A (ja) | 2014-08-08 | 2014-08-08 | 画像処理装置および制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016038820A true JP2016038820A (ja) | 2016-03-22 |
Family
ID=55529809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014163193A Pending JP2016038820A (ja) | 2014-08-08 | 2014-08-08 | 画像処理装置および制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016038820A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018034454A (ja) * | 2016-08-31 | 2018-03-08 | 株式会社ミマキエンジニアリング | 立体造形カラー調整方法、立体物造形方法および立体造形カラー調整装置 |
CN109272997A (zh) * | 2018-08-31 | 2019-01-25 | 广东小天才科技有限公司 | 一种智能设备及其投影交互方法 |
KR102058421B1 (ko) * | 2019-01-31 | 2020-01-22 | 주식회사 팀엘리시움 | 대상물의 표면 메시를 획득하는 방법 및 이를 이용한 장치 |
CN112184501A (zh) * | 2019-07-02 | 2021-01-05 | 广东小天才科技有限公司 | 远程辅导方法及装置、终端设备、计算机可读存储介质 |
JP2022535617A (ja) * | 2019-07-16 | 2022-08-09 | ボディデータ インコーポレイテッド | レーダースキャンの適用範囲および効率を改善するためのシステムおよび方法 |
US11437002B2 (en) | 2018-08-31 | 2022-09-06 | Sekisui House, Ltd. | Simulation system |
-
2014
- 2014-08-08 JP JP2014163193A patent/JP2016038820A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018034454A (ja) * | 2016-08-31 | 2018-03-08 | 株式会社ミマキエンジニアリング | 立体造形カラー調整方法、立体物造形方法および立体造形カラー調整装置 |
CN109272997A (zh) * | 2018-08-31 | 2019-01-25 | 广东小天才科技有限公司 | 一种智能设备及其投影交互方法 |
US11437002B2 (en) | 2018-08-31 | 2022-09-06 | Sekisui House, Ltd. | Simulation system |
KR102058421B1 (ko) * | 2019-01-31 | 2020-01-22 | 주식회사 팀엘리시움 | 대상물의 표면 메시를 획득하는 방법 및 이를 이용한 장치 |
CN112184501A (zh) * | 2019-07-02 | 2021-01-05 | 广东小天才科技有限公司 | 远程辅导方法及装置、终端设备、计算机可读存储介质 |
JP2022535617A (ja) * | 2019-07-16 | 2022-08-09 | ボディデータ インコーポレイテッド | レーダースキャンの適用範囲および効率を改善するためのシステムおよび方法 |
JP7170365B2 (ja) | 2019-07-16 | 2022-11-14 | ボディデータ インコーポレイテッド | レーダースキャンの適用範囲および効率を改善するためのシステムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6327931B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
US10964108B2 (en) | Augmentation of captured 3D scenes with contextual information | |
JP2016038820A (ja) | 画像処理装置および制御プログラム | |
CN107026973B (zh) | 图像处理装置、图像处理方法与摄影辅助器材 | |
KR101841668B1 (ko) | 입체 모델 생성 장치 및 방법 | |
CN106934777B (zh) | 扫描图像获取方法及装置 | |
JP6289254B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
KR101703013B1 (ko) | 3차원 스캐너 및 스캐닝 방법 | |
JP6376887B2 (ja) | 3dスキャナ、3dスキャン方法、コンピュータプログラム、記録媒体 | |
JP2012105145A (ja) | 画像処理装置、画像処理方法、及び、プログラム | |
JP2015170907A (ja) | スキャナシステム、スキャナシステムのデータ処理方法、及びプログラム | |
JP2015212892A (ja) | 画像処理装置、情報処理方法及びプログラム | |
JP7058585B2 (ja) | 画像処理装置およびその制御方法 | |
JP2015198406A (ja) | 画像読取装置、方法およびプログラム | |
JP2018107642A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
WO2017155005A1 (en) | Image processing method, display device, and inspection system | |
KR20140129631A (ko) | 휴대 단말기에서 이미지 데이터를 생성하는 장치 및 방법 | |
JP2013219421A (ja) | 画像処理装置および画像処理方法 | |
JP2020096254A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP2022089879A (ja) | 画像処理装置およびその制御方法 | |
JP2017041668A (ja) | 画像入力装置、画像入力システム、画像入力装置の制御方法、及びプログラム | |
JP6478641B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
JP6263024B2 (ja) | 画像処理装置、画像処理方法および、プログラム、並びに画像再生装置 | |
JP3862603B2 (ja) | パラメータ処理装置及びパラメータ処理方法及び全方位画像撮像装置及び全方位画像撮像装置の制御方法及びプログラム及び記憶媒体 | |
JP6624861B2 (ja) | 画像処理装置、制御方法およびプログラム |