IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ダッソー システムズの特許一覧

特開2022-27557画像におけるオブジェクトをセグメント化するための方法
<>
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図1A
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図1B
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図1C
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図1D
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図2
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図3
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図4
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図5
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図6
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図7A
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図7B
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図8
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図9
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図10
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図11
  • 特開-画像におけるオブジェクトをセグメント化するための方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022027557
(43)【公開日】2022-02-10
(54)【発明の名称】画像におけるオブジェクトをセグメント化するための方法
(51)【国際特許分類】
   G06T 7/12 20170101AFI20220203BHJP
【FI】
G06T7/12
【審査請求】未請求
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021121390
(22)【出願日】2021-07-26
(31)【優先権主張番号】20305874.8
(32)【優先日】2020-07-30
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ウィンドウズ
2.UNIX
3.Linux
4.ブルートゥース
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ニコラ ベルトラン
(72)【発明者】
【氏名】ムーラッド ブファルギーヌ
(72)【発明者】
【氏名】ヴィンセント グイテニー
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096CA02
5L096DA01
5L096EA43
5L096GA02
5L096HA11
(57)【要約】
【課題】本発明はカメラ(CAM)によって獲得された少なくとも1つの画像(IM)においてオブジェクト(OBJ)をセグメント化するためのコンピューター実装される方法に関する。
【解決手段】方法は、a)画像(IM)に基づいてエッジ確率画像(EPI)を計算するステップであって、エッジ確率画像(EPI)は画像(IM)の各ピクセルに対してピクセルがエッジである確率を含む、ステップと、b)画像(IM)に基づいてセグメンテーション確率画像(SPI)を計算するステップであって、セグメンテーション確率画像(SPI)は画像(IM)の各ピクセルに対してピクセルがオブジェクト(IM)に属する確率を含む、ステップと、c)エッジ確率画像(EPI)に基づいておよびセグメンテーション確率画像(SPI)に基づいてオブジェクト(OBJ)のバイナリマスク(MAS)を計算するステップと、を含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
カメラ(CAM)によって獲得された少なくとも1つの画像(IM)においてオブジェクト(OBJ)をセグメント化するためのコンピューター実装される方法であって、
a)前記画像(IM)に基づいてエッジ確率画像(EPI)を計算するステップであって、前記エッジ確率画像(EPI)は、前記画像(IM)の各ピクセルに対して前記ピクセルがエッジである確率を含む、ステップと、
b)前記画像(IM)に基づいてセグメンテーション確率画像(SPI)を計算するステップであって、前記セグメンテーション確率画像(SPI)は、前記画像(IM)の各ピクセルに対して前記ピクセルが前記オブジェクト(IM)に属する確率を含む、ステップと、
c)前記エッジ確率画像(EPI)に基づいて、および前記セグメンテーション確率画像(SPI)に基づいて、前記オブジェクト(OBJ)のバイナリマスク(MAS)を計算するステップと
を備えることを特徴とする方法。
【請求項2】
ステップc)は、次の
c1)n-リンクを介して1つをもう一方と連結した複数のノード(ni,j)を含むグラフ(GRA)をビルドするサブステップであって、各ノードは、前記カメラ(CAM)によって獲得された前記画像(IM)のピクセル(pi,j)を表し、前記グラフ(GRA)は、前記オブジェクト(OBJ)を表すソース(SRC)と、前記画像(IM)の背景を表すシンク(SNK)とをさらに含み、各ノードは、t-リンクを介して前記ソースとおよび前記シンクと連結される、サブステップと、
c2)
-各n-リンク対して、対応する隣接のピクセル間にエッジがない確率に等しいリンクコスト、
-各t-リンク対して、前記対応するピクセルが前記オブジェクトに属する確率に等しいソースコスト、および前記対応するピクセルが前記オブジェクトに属さない確率に等しいシンクコスト
を定義するサブステップと、
c3)前記ソース(SRC)と前記シンク(SNK)とを分離し、最小カットが切断する前記対応するn-リンクまたはt-リンクの前記リンクコスト、ソースコスト、およびシンクコストの合計を最小化する前記最小カットを計算するサブステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
ステップc)の後に、
d)前記画像IMに重ね合わされた、部分的に透明の前記バイナリマスク(MAS)を表示するステップと、
e)
-取り除かれるべき前記バイナリマスクの一部に第1の予め定義された色のストローク(STR1)、および/または前記バイナリマスクに加えられるべき前記オブジェクトの一部に第2の予め定義された色のストローク(STR2)を描くように前記ユーザーに指示することと、

-前記対応するピクセルが前記第1の予め定義された色により描かれるならば前記ノードに空のソースコストを、および前記対応するピクセルが前記第2の予め定義された色により描かれるならば前記ノードに無限大のソースコストを割り当てることと、
-前記対応するピクセルが前記第1の予め定義された色により描かれるならば前記ノードに無限大のシンクコストを、および前記対応するピクセルが前記第2の予め定義された色により描かれるならば前記ノードに空のソースコストを割り当てることと
によって各ノードの前記シンクコストおよびソースコストを変更することと
によって前記バイナリマスク(MAS)を訂正するステップと
を備え、
バイナリマスクMASを計算するステップc)は、前記変更されたソースコストおよびシンクコストにより再び行われることを特徴とする請求項2に記載の方法。
【請求項4】
前記カメラをキャリブレーションし、前記オブジェクト(OBJ)を取り囲み8つの頂点と6つの面とを有する3Dバウンディングボックス(3DBB)を提供する準備ステップを備え、
セグメンテーション確率画像を計算するステップb)は、
-カメラ平面に前記8つの頂点を投影するサブステップと
-前記投影された8つの頂点を含む最小の長方形(REC)を生成するサブステップと、
-前記最小の長方形(REC)にセグメンテーションアルゴリズムを使用することによって前記セグメンテーション確率画像(SPI)を計算するサブステップと
を含むことを特徴とする請求項1ないし3のいずれか一項に記載の方法。
【請求項5】
前記セグメンテーションアルゴリズムは、深層学習アルゴリズムであることを特徴とする請求項4に記載の方法。
【請求項6】
-前記カメラ平面(PLN)において前記3Dバウンディングボックス(3DDBB)の前記6つの面(F1、F2、F3、F4、F5、F6)の各々を投影するサブステップと、
-第1の面に関して、前記バイナリマスク(MAS)が前記投影された面(F1、F2、F3、F4、F5、F6)の1つの内側に完全に収まるかどうかを決定するサブステップと、
-そうであれば、前記マスク(MAS)を取り囲む2D包括長方形(2DBR)を生成し、前記2D包括長方形(2DBR)の4つの角の点(CP1、CP2、CP3、CP4)を導出するサブステップと、
-それぞれの前記4つの角の点へ前記カメラ(CAM)から4つの光線(R1、R2、R3、R4)をキャストするサブステップと、
-第2の面(F2)に関して、前記第1の面(F1)の平面と、および前記第1の面の向かい側である面の平面と、前記4つの光線(R1、R2、R3、R4)の交わりを計算することによって、8つの交点(IP1、IP2、IP3、IP4、IP5、IP6、IP7、IP8)を取得するサブステップと、
-前記8つの交点(IP1、IP2、IP3、IP4、IP5、IP6、IP7、IP8)を含む最小の3Dバウンディングボックス(SBB)を生成するサブステップと、
-前記最小の3Dバウンディングボックス(SBB)と前記3Dバウンディングボックス(3DBB)の前記交わりであるリファインされた3Dバウンディングボックス(RBB)を計算するサブステップと
を含む前記3Dバウンディングボックス(3DBB)のリファインメントのステップf)をさらに備え、
ステップa)~c)は、次の反復ごとに前記リファインされた3Dバウンディングボックス(RBB)を使用することによって、異なった視点から獲得された異なった画像に対して複数回反復される
ことを特徴とする請求項4または5に記載の方法。
【請求項7】
前記バイナリマスク(MAS)が、前記投影された面(F1、F2、F3、F4、F5、F6)のいずれの内側にも完全に収まらないことが決定されるならば、
-ボクセルの格子に前記3Dバウンディングボックス(3DBB)を個別化するステップと、
-前記画像IMの各ピクセル(pi,j)に対して、前記カメラから光線(R11、R12)をキャストし、前記ピクセルが前記マスクに属さないならば、前記光線と交差する前記ボクセルをカービングすることによって、新しいカービングボクセル格子を取得するステップと、
-別の画像に対して、前記カメラから光線をキャストし、前記別の画像の各ピクセルに対して、前記ピクセルが、カービングされないボクセルと交差するかどうかを決定し、そうであれば、前記ピクセルに予め定義されたバイナリ値を割り当てるステップと、
-前記予め定義された値を有する前記ピクセルを使用することによって、前記別の画像に新しい2Dバウンディングボックスを生成するステップと
を備えることを特徴とする請求項6に記載の方法。
【請求項8】
セグメンテーション確率画像を計算するステップb)は、
-前記オブジェクトの輪郭を閉じる線を描くように前記ユーザーに指示することよってループ(LOP)を形成するサブステップと、
-前記ループ(LOP)の内側に位置されるピクセルに最大の確率値を、および前記ループ(LOP)の外側に位置されるピクセルに最小の確率値を割り当てるサブステップと、
-前記ループ(LOP)の周りに位置される前記ピクセルへの周りに前記確率値に勾配を割り当てるサブステップと
を含むことを特徴とする請求項1ないし3のいずれか一項に記載の方法。
【請求項9】
前記ループのあし(EL1、EL2)が予め定義されたしきい値未満の遠距離であるならば前記ループ(LOP)を自動的に完了するサブステップを含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記予め定義されたしきい値は、前記画像(IM)の対角線の5%に等しいことを特徴とする請求項9に記載の方法。
【請求項11】
複数のループ(LOP1、LOP2)が互いへと描かれるならば、最小の確率値と最大の確率値とを代替的に割り当てるサブステップを含むことを特徴とする請求項8または9に記載の方法。
【請求項12】
エッジ確率画像(EPI)を計算するステップa)は、深層学習アルゴリズムを使用することを特徴とする請求項1ないし11のいずれか一項に記載の方法。
【請求項13】
前記深層学習アルゴリズムは、ホリスティックにネストされたエッジ検出を使用することを特徴とする請求項12に記載の方法。
【請求項14】
カメラ(CAM)と結びつけられたコンピューターシステムに、請求項1ないし13のいずれか一項に記載の方法を実行させるコンピューター実行可能な命令を含むことを特徴とするコンピュータープログラム製品。
【請求項15】
カメラ(CAM)と結びつけられたコンピューターシステムに、請求項1ないし13のいずれか一項に記載の方法を実行させるコンピューター実行可能な命令を含むことを特徴とする非一時的なコンピューター読み取り可能なデータ記録媒体(M1、M2、M3、M4)。
【請求項16】
コンピューターシステムであって、メモリー(M1、M2、M3、M4)に接続されたプロセッサー(P)と、スクリーン(DY)と、カメラを備え、前記メモリーは、前記コンピューターシステムに請求項1ないし13のいずれか一項に記載の方法を実行させるコンピューター実行可能な命令を格納することを特徴とするコンピューターシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータービジョンおよび画像処理の分野に関し、より詳細には、オブジェクト追跡、オブジェクト検出、または3D再構成などのアプリケーションのためのコンピュータービジョンおよび画像処理の分野に関する。
【背景技術】
【0002】
画像セグメンテーションは、デジタル画像をピクセルの複数のグループに分割する処理である。今述べた技術は、オブジェクトについてとても粒状な理解を画像に与え、そして分析するのがより容易である。本発明にて、ピクセルの2つグループのみ、すなわち、関心の対象と背景とがある。結果のバイナリセグメンテーションは、マスクと呼ばれる。
【0003】
オブジェクトが、異なった視点から撮影されるとき、それから3Dモデルを作成するために(3Dスキャン)、すべてのキャプチャされている画像の後処理のうちの1つの種類は、画像の各々をセグメント化することにある。
【0004】
図1a~1Dは、オブジェクト(立像)の3Dスキャンと画像に重ね合わされた半透明の結果のマスクとについての再生のスクリーンショットを例示する。マスクは、Qiang et al.(「Fast Online Object Tracking and Segmentation: A Unifying Approach」、CVPR、2019年)に開示される方法のおかげで計算されている。本論文は、深層学習を使用するセグメンテーション方法を開示する。ユーザーは、2D画像において、セグメント化するオブジェクトの周りに包括長方形(bounding rectangle)を近似的に配置する必要があり、次に、ネットワークは、マスクを推論する。アルゴリズムは、画像のシーケンスにおいてオブジェクトを追跡するのに使用されることが可能であり、ゆえに、1つのマスクを各画像に提供する。マスクは、十分に正確ではなく、オブジェクトの境界を考慮しないことが判明する。マスクは、特に立像の頭の上に目立つ図1B、1C、および1Dに見られることが可能であるように、「たれる(drool)」傾向がある。それゆえ、セグメンテーションは、「たれる」効果を避けるために、できる限り正確である必要がある。
【0005】
他の既存のアプローチは、異なった視点からの同一オブジェクトのキャプチャについてのセグメンテーションという状況に必ずしも限定せずに、2D画像においてオブジェクトの2Dセグメンテーションを計算する問題と取り組む。
【0006】
Boykov et al.(「Graph Cuts and Efficient N-D Image Segmentation」、International Journal of Computer Vision、第70巻、109~131頁、2006年)は、領域項および境界項を組み合わせるコスト関数を使用して、エネルギーベースのオブジェクトセグメンテーションを導入した。基本的に、境界項は、近隣のピクセル間の画像勾配を反映するが、領域項は、ピクセルの強度が、オブジェクトおよび背景の既定の強度モデル(たとえば、ヒストグラム)にどれぐらい適合するかを反映する。引用されている論文の図8に例示されるように、画像のセグメンテーションは、2つのステップにて行われる。まず第1に、最初のセグメンテーションは、シーズ(seed)の既定のセット(簡単なテンプレートマッチングを使用して自動的に配置されることが可能であるきびしい制約)に対して行われ、シーズが、関心の対象の内側に、対応して関心の対象の外側に漠然と置かれる。第2に、ユーザーは、ユーザーが、エリアが誤ってセグメント化されていることに気づくことがある最初のセグメンテーションの結果を精査することによって、シーズを訂正する。それゆえ、彼は、誤ってセグメント化されている画像において追加のシーズを配置することによって、(オブジェクトに対して)赤色または(背景に対して)青色のマウス操作されるブラシを介してセグメンテーションを編集することが可能である。
【0007】
今述べた方法は、計算された画像勾配の不正確のために、および既定の強度モデルの不正確のために、まったく正確ではない。さらに、(オブジェクトの色および照明に従う)良い結果を生成することは、多くのユーザーストローク(user stroke)を必要とすることもある。加えて、素人は、適切なストロークを、すなわち、画像の正しい場所に描くことに困難を有するであろう。
【発明の概要】
【発明が解決しようとする課題】
【0008】
それゆえ、カメラによって獲得された少なくとも1つの画像においてオブジェクトをセグメント化するために、特に多重ビュー画像セグメンテーション(multiple view image segmentation)のために、ユーザー入力をほとんど必要とせず容易なユーザー入力のみ必要とするおよび従来技術よりもより良いセグメンテーション品質を提供する、コンピューター実装方法を提供する必要がある。
【課題を解決するための手段】
【0009】
本発明の目的は、カメラによって獲得された少なくとも1つの画像においてオブジェクトをセグメント化するためのコンピューター実装方法であり、次のステップを含む。
a)画像に基づいてエッジ確率画像(edge probabilities image)を計算し、前述のエッジ確率画像は、画像の各ピクセルに対して前述のピクセルがエッジである確率を含むこと、
b)画像に基づいてセグメンテーション確率画像(segmentation probabilities image)を計算し、前述のセグメンテーション確率画像は、画像の各ピクセルに対して前述のピクセルがオブジェクトに属する確率を含むこと、
c)エッジ確率画像に基づいておよびセグメンテーション確率画像に基づいてオブジェクトのバイナリマスクを計算すること。
【0010】
本発明の別の目的は、カメラと結びつけられたコンピューターシステムに予め定義された方法を実行させるコンピューター実行可能な命令を含む、コンピューター読み取り可能なデータ記録媒体に格納されたコンピュータープログラム製品である。
【0011】
本発明の別の目的は、カメラと結びつけられたコンピューターシステムに予め定義された方法を実行させるコンピューター実行可能な命令を含むコンピューター読み取り可能なデータ記録媒体である。
【0012】
本発明の別の目的は、メモリーに接続されたプロセッサーと、スクリーンと、カメラとを含むコンピューターシステムであり、メモリーは、コンピューターシステムに予め定義された方法を実行させるコンピューター実行可能な命令を格納する。
【0013】
本発明の追加の特徴および利点は、添付の図面と共に得られる、後続の説明から明らかになるだろう。
【図面の簡単な説明】
【0014】
図1A】すでに述べた最新のマルチビューセグメンテーションのスクリーンショットである。
図1B】すでに述べた最新のマルチビューセグメンテーションのスクリーンショットである。
図1C】すでに述べた最新のマルチビューセグメンテーションのスクリーンショットである。
図1D】すでに述べた最新のマルチビューセグメンテーションのスクリーンショットである。
図2】本発明に係る方法のフローチャートである。
図3】画像例に基づいてバイナリマスクについて計算することを例示する。
図4】バウンディングボックスがない(すなわち、カメラがキャリブレーションされない)ときに画像をセグメント化するためにオブジェクトのいくつかの輪郭についてスケッチすることを例示する。
図5】カメラがキャリブレーションされないときに提供される3Dバウンディングボックスを例示する。
図6】最大フロー/最小カットアルゴリズムに対して使用されるグラフを例示する。
図7A】バイナリマスクを訂正するためのユーザーストロークを例示する。
図7B】訂正の結果を例示する。
図8】第1の態様に係る3Dバウンディングボックスのリファインメントのステップを例示する。
図9】第2の態様に係る3Dバウンディングボックスのリファインメントのステップを例示する。
図10】マルチビューセグメンテーションに対する本発明に係る方法の結果を例示する。
図11】本発明の別々の態様に係る方法を実行するのに適したコンピューターシステムのブロック図である。
図12】本発明の別々の態様に係る方法を実行するのに適したコンピューターシステムのブロック図である。
【発明を実施するための形態】
【0015】
図2を参照して、セグメンテーションは、セグメンテーションが行わなければならないオブジェクトの第1の画像IMに関して開始する。画像IMは、予めカメラによって獲得されている。画像IMは、オブジェクトの周りの異なった視点から獲得されている画像の連続的なフロー(ビデオシーケンス)から抽出されることがある、または、異なったオブジェクトの視点から獲得されている画像についての個別のシーケンスの一部として考えられることがある。
【0016】
第1のステップa)にて、エッジ確率画像EPIが計算される。エッジの検出は、画像において明るさの不連続性を検出することによって作動する。エッジおよびオブジェクト境界の検出は、例えば、Sobel法、Canny法、Prewitt法、Roberts法、またはファジィ論理メソッドなど、異なったアルゴリズムを使用して行われることがある。望ましい態様にて、深層学習アルゴリズムが使用される。より格別に、深層学習アルゴリズムは、アルゴリズムがイメージツーイメージ(image-to-image)の流儀においてエッジをトレーニングし予測することに特に適合されるので、ホリスティックにネストされたエッジ検出(holistically-nested edge detection)を使用する。当業者は、論文「Holistically-Nested Edge Detection」 (Xie et al.、2015 IEEE International Conference on Computer Vision)を、さらに、https://github.com/s9xie/hedにおいてオンラインにより利用可能なソースコードと予めトレーニングされたモデルとを参照することがある。検出されているエッジに基づいて、画像IMの各ピクセルに対して、ピクセルがエッジであるかないかという確率が決定されることが可能である。
【0017】
ホリスティックにネストされたエッジ検出ネットワーク(holistically-nested edge detection network)によって取得されたエッジの画像は、ピクセルあたり8ビットの灰色の陰影にある。ゆえに、各ピクセルは、0から255までの間の強度を有し、確率として解釈される。ネットワークは、教師ありのやり方においてトレーニングされる(各トレーニング画像に対して、取得されるべきエッジを含むグランドトゥルース画像が提供される)。ネットワークは、今述べたグランドトゥルース画像のピクセルと予測されるピクセルとを比較する損失関数のおかげでトレーニングされる。
【0018】
ネットワークは、トレーニング画像に対して、各ピクセルをカテゴリ{edge, not edge}に関連付けることによってトレーニングされる。ネットワークは、各ピクセルが各カテゴリ(または、ここではもう一方のカテゴリを導出することが可能であるのでただ1つのカテゴリ)に属する確率を有する画像を予測する。それゆえ、真のエッジピクセルのために、エッジカテゴリに対して確率1、またはエッジでないならば0を目指す。確率値は、2値ではないので、当然のことながら、損失を最適化すべき、不確実なピクセルは、>0,1<の確率を有するだろう。
【0019】
ホリスティックにネストされたエッジ検出を使用して、さらに、ピクセルがエッジである確率が決定されることが可能である。エッジ確率画像EPIの例図は、与えられている図3である。
【0020】
次に、第2のステップb)にて、セグメンテーション確率画像SPIが計算される。さらに、セグメンテーション確率画像SPIは、発明されている方法に影響を与えることなく、ステップa)の前に、または同時に実装されることも可能である。セグメンテーション確率画像SPIは、画像IMの各ピクセルに対して、前述のピクセルがオブジェクトOBJに属する確率を含む。
【0021】
図3に例示されるように、画像がキャリブレーションされるか、されないかどうかが考えられなければならない。画像は、カメラの位置および向きがわかっているならばキャリブレーションされていると言われ、それは、カメラの本源的なおよび付帯的なパラメーターをキャリブレーションパターンのいくつかのビューから見つけることを意味する。さらに、最新の状況におけるカメラキャリブレーションの概念も参照される。
【0022】
画像がキャリブレーションされるならば、図5によって例示されるような、オブジェクトOBJを取り囲む3Dバウンディングボックス3DBBは、3D空間において提供される。3Dバウンディングボックス3DBBは、オブジェクトOBJに固着されており、3Dバウンディングボックス3DBBと相互に作用することによって、例えば、3Dバウンディングボックス3DBBのエッジまたは角をドラッグすることによって、ユーザーにより変更されることがある。3Dバウンディングボックス3DBBが、正確にオブジェクトOBJの最小体積を取り囲むことは必要ない。以下に説明されるように、次元3Dのバウンディングボックス3DBBは、1つの画像からその他の画像へリファインされ得る。
【0023】
3Dバウンディングボックス3DBBは、8つの頂点と6つの面とを有する平行四辺形である。各画像IMに対して、3Dバウンディングボックス3DBBの8つの頂点は、カメラ平面上に投影され、8つの投影されている頂点を含む最小の長方形RECが計算される。定義によって、最小の長方形RECは、セグメント化するオブジェクトを含む。各画像に対して、最小の長方形RECおよび元の画像を使用して、セグメンテーション確率画像SPIは、セグメンテーションアルゴリズムを使用することによって推論される。セグメンテーションアルゴリズムは、しきい値処理、ヒストグラムベース(histogram-based)バンドリング、領域成長、k平均法クラスタリング、ウォーターシェド(watershed)、動的輪郭(active contour)、グラフカット、条件付きマルコフランダムフィールド、およびスパースベース(sparsity-based)メソッドを含むグループにおいて選択されることがある。望ましい態様にて、深層学習アルゴリズムが使用されることがある。深層学習アルゴリズム、例えば、Deeplabv3は、画像のセグメンテーションに対して注目すべき結果を示した。
【0024】
画像がキャリブレーションされないならば、ユーザーは、3Dバウンディングボックスに頼ることは可能でない。それゆえ、画像IMから開始して、オブジェクトの輪郭をセグメントに近づけるために、コンピューターのマウスにより、またはタッチモードにおいて従属物(指またはスタイラス)により線を引いて、図3によって例示されるようなループLOPを形成する。ループLOPは、粗大であることが可能であるが、しかしながら、ループLOPにおいて別のオブジェクトを取り囲むことを避けるために、オブジェクトOBJにできる限り接近する必要がある。もしループLOPがぴったり接近していないならば、しきい値が適用されることがある。ループの2つのあし(EL1、EL2)が与えられ、ループLOPは、両方のあし(EL1、EL2)が予め定義されたしきい値未満の遠距離であるならば、自動的に閉じられ得る。しきい値は、ピクセルにおいて、またはメトリック距離において表されることがある。しきい値は、画像の対角線(ピクセルにおける距離)の5%に等しいことがある。それゆえ、ユーザーによって引かれる線は、オブジェクトの実際の輪郭に正確に合わせる必要がない。
【0025】
次に、ユーザーがループLOPを描き終えれば、おおよそのセグメンテーション確率画像が提供され、すべての外側のピクセルが最小の確率値(たとえば、8ビットスキームにおいて0)により満たされ、すべての内側のピクセルが極大の確率値(たとえば、灰色の陰影における画像を表するために8ビットスキームにおいて255)により満たされる。次に、勾配は、極大の確率値から最小の確率値へ適用される。勾配は、ループLOPのピクセルにどちらでも、後者が複数のピクセルの幅を有するならば適用されることがある、またはさらに、勾配は、ループLOPの予め定義された幅の、ループLOPの両側に位置されるピクセルに適用されることもある。それゆえ、セグメンテーション確率画像SPIは、極小値(0)から極大値(255)までの滑らかな縁を有する。
【0026】
図4によって例示される別の態様にて、もし複数のループがその他において含まれている1つであるならば、代替えとして、極小の確率値および極大の確率値は、対応するエリア領域へ割り当てられる。図4の例に戻ると、セグメント化するオブジェクトは、真ん中に穴があるドーナツである。それゆえ、ユーザーは、ドーナツの外側の輪郭に対して第1のループLOP1を、穴の輪郭に対して第2のループLOP2を描く。その場合に、第1のループLOP1の外側と第2のループLOP2の内側とのすべてのピクセルは、最小の確率値により満たされるが、第1のループLOP1と第2のループLOP2との間に位置されるすべてのピクセルは、極小の確率値により満たされる。もちろん、本態様は、2つのループに限定されず、2つ以上のループに拡張されることが可能である。本態様に従って、さらに、極小値から極大値まで滑らかな縁を有するために勾配を適用することも可能である。さらに、ループLOP1およびLOP2は、ユーザーによってなされていないならば、自動的に閉じられることもある。
【0027】
さらに、2Dバウンディングボックスは、ループLOPの最も小さい2Dバウンディングボックスを計算することによって、またはユーザーに指示して2Dバウンディングボックスの左上の点と右下の点(または右上の点と左下の点)とに対応する画像上の2点を配置させることによって、取得されることも可能である。
【0028】
エッジ確率画像EPIおよびセグメンテーション確率画像SPIが計算されれば、発明されている方法は、エッジ確率画像EPIに基づいて、およびセグメンテーション確率画像SPIに基づいて、オブジェクトOBJのバイナリマスクMASを計算するステップc)を含む。セグメンテーションとエッジ検出の組み合わせは、これまで最新の状況において開示されておらず、1つの画像からもう一方の画像への「たれる」効果を避けるために高精度のマスクを提供する。
【0029】
望ましい態様にて、オブジェクトの最善のマスクは、エネルギー最小化によって計算される。最小化するエネルギーは、次である。
E=Emask probs+λEedges probs
ただし、Eが、最小化する大域的なエネルギー関数であり、Emask probsが、セグメンテーション確率画像SPIのエネルギーコントリビューション(energy contribution)であり、Eedges probsが、エッジ確率画像EPIのエネルギーコントリビューションであり、λが、パラメーターである。
【0030】
第1のサブステップc1)にて、図6によって例示されるようなグラフGRAがビルドされる。グラフGRAは、複数のノードni,j(i=1・・・M,j=1・・・N、MおよびNが2次元における画像IMのピクセル数)を含み、各ノードは、カメラCAMによって獲得された画像IMのピクセルを表す。さらに、2つの特別に指定された終端ノード、それぞれ「OBJ」ラベルおよび「背景」ラベルを表すソースSRCおよびとシンクTがある。通常、近隣のピクセルは、規則的な格子のような(grid-like)流儀においてエッジによって相互に連結される。ピクセル間のエッジは、nが「近隣」を象徴する場合にn-リンクと呼ばれる。T-リンクと呼ばれる別のタイプのエッジは、ピクセルを終端ノードに連結するのに使用される。
【0031】
図6に、各エッジのコストは、エッジの厚さによって反映される。セグメンテーション確率画像SPIにおいてピクセルpi,jの値(0と255との間の確率)をmi,jと、エッジ確率画像EPIにおいてピクセルpi,jの値をei,jと呼ぼう。グラフGRAにおいて、各ノードは、ピクセルを表し、各リンクは、コスト(または容量)Cを有する。サブステップc2)にて、ここで、次の各リンクのCコストを定義する。
【0032】
【数1】
【0033】
【数2】
【0034】
【数3】
【0035】
ただし、
【0036】
【数4】
【0037】
は、対応する隣接のピクセル間にエッジがない確率に等しいリンクコストであり、ただし、ni,jおよびni2,j2が水平または垂直の近隣のノードである。
【0038】
【数5】
【0039】
は、対応するピクセルがオブジェクトに属する確率に等しいソースコストである。
【0040】
【数6】
【0041】
は、対応するピクセルがオブジェクトに属さない確率に等しいシンクコストである。
【0042】
<0,255>にある整数から<0,1>にある浮動小数点数まで、すべての確率値を率に応じて決めることが可能であるだろうということは、気づかれることが可能である。<0,255>にある全ての値を保有する関心は、通常32ビットまたは64ビットでエンコードされる浮動小数点数とは違って、8ビット/ピクセルだけの値でエンコードし続けることができることである。今述べたことは、エネルギー最小化の分解能の計算時間を節約する。
【0043】
次に、サブステップc3)にて、大域的なエネルギー関数Eは、最大フローアルゴリズムを解くことによって最小化される。次に、セグメンテーションを行うために、最小カットが実行される。それは、ソースSRCとシンクSNKとを分離し、カットが切断する対応するn-リンクまたはt-リンクのリンクコスト、ソースコスト、およびシンクコストの合計を最小化する。今述べたカットから、ソースにリンクされたノードのみがオブジェクトに属しているとみなされる。それゆえ、図3(「最終セグメンテーション」)によって例示されるような、高精度のバイナリマスクMASが取得される。さらに、図3は、高精度のバイナリマスクMASが重ねられる最初の画像IMも例示する。
【0044】
図2を参照して、発明されている方法は、マスクMASがステップc)にて計算されれば終了することがある。
【0045】
望ましい態様にて、さらに、ユーザーは、図7Aおよび図7Bによって例示されるような、セグメンテーションの品質を改良するために、マスクMASを訂正することもある。訂正は、図2に例示されるような、ステップd)およびe)にてなされることがある。
【0046】
方法は、画像IMに重ね合わされた、部分的に透明のバイナリマスクMASを表示するステップd)を含む。次に、テスト100が行われ、ユーザーがマスクを訂正しないと決めるならば、またはマスクが訂正される必要がないことが自動的に検出されるならば、方法は、さらに開発されるだろう、テスト200まで続く。例えば、マスクは、大域的なエネルギー関数が予め定義されたしきい値の下にあるならば正しいと考えられることがある。反対に、マスクMASは、図7Aの場合であるような、訂正される必要があることがわかることがある。確かに、マスクMASは、ノートブックとカップの取っ手の内側部分とを誤って含むが、取っ手自体は、マスクに属さない。
【0047】
次に、ステップe)にて、ユーザーは、取り除かれるべきバイナリマスクの一部に第1の予め定義された色のストロークSTR1、および/またはバイナリマスクに加えられるべきオブジェクトの一部に第2の予め定義された色のストロークSTR2を描くように指示される。それに対して、ユーザーは、色を選択するためにパレットまたはメニューを使用することがある。例えば、ユーザーは、取り除かれるべき部分に赤いストロークSTR1を、加えられるべき部分に黄色のストロークSTR2を描くことがある。もちろん、本発明は、これらの組み合わせに限定されない。次に、前述したコストは、次のように更新される。
【0048】
空のソースコスト
【0049】
【数7】
【0050】
は、対応するピクセルが第1の予め定義された色により塗られる場合にノードに割り当てられ、無限大のソースコストは、対応するピクセルが第2の予め定義された色により塗られる場合にノードに割り当てられる。
【0051】
【数8】
【0052】
ijは、ノードnijに対応する画像IMのピクセルである。
【0053】
無限大のシンクコスト
【0054】
【数9】
【0055】
は、対応するピクセルが第1の予め定義された色により描かれる場合にノードに割り当てられ、空のソースコストは、対応するピクセルが第2の予め定義された色により描かれる場合にノードに割り当てられる。
【0056】
【数10】
【0057】
リンクコストは、変わらないままである。
【0058】
【数11】
【0059】
次に、バイナリマスクMASを計算するステップc)は、変更されたソースコストおよびシンクコストにより再び行われる。必要ならば、マスクの訂正のステップは、別の時間に実装されることがある。今述べた態様により、オブジェクトの信頼できる高精度のバイナリセグメンテーションは、最小のおよび簡単なユーザー入力(簡単なストローク)により取得される。
【0060】
テスト200は、セグメント化する別の画像があるかどうかを決定する。「別の画像」によって、別の観点から、同じオブジェクトを有する別の画像が意味される。そうでないならば、方法は、取得されたマスクMASを有して終わる。反対に、画像がキャリブレーションされるか、されないかどうかが決定される(テスト300)。
【0061】
第一の仮説によれば、画像がキャリブレーションされ、オブジェクトOBJを取り囲む3Dバウンディングボックス3DDBBが提供されることを暗示すると考える。次のステップf)は、その他の画像に対してマスクの品質を高めるために、図8に例示されるような、ユーザーによって認可された画像に対して3Dバウンディングボックス3DDBBをリファインすることにある。3Dバウンディングボックス3DDBBは、6つの面(F1、F2、F3、F4、F5、F6)を有し、それらのすべてがカメラ平面PLNに別々に投影される。マスク全体が、第1の面F1と呼ばれる、投影された面のうちの1つの内側に完全に収まる(通常、画像がオブジェクトのカノニカルなビューである場合に付加する)ならば、マスクMASを取り囲む2D包括長方形2DBRが生成される。2D包括長方形の4つの角の点(CP1、CP2、CP3、CP4)が導出される。カメラがキャリブレーションされるので、さらに、4つの角の点(CP1、CP2、CP3、CP4)の3D座標も知られていることも有する。次に、4つの光線(R1、R2、R3、R4)は、カメラCAMから、それぞれの4つの角の点(CP1、CP2、CP3、CP4)にキャストされる。キャリブレーションされたカメラの中心を通り抜ける4つの(光線に対応する)3D直線の各々の式と、包括長方形の3Dの角の点とが計算される。今述べた4つの直線の、第1の面F1の平面との交わり、およびその反対側の面F2の平面との交わりは、8つの交点(IP1、IP2、IP3、IP4、IP5、IP6、IP7、IP8)を与える。次に、8つの交点(IP1、IP2、IP3、IP4、IP5、IP6、IP7、IP8)を含む最小の3DバウンディングボックスSBBが生成される。最後に、3Dバウンディングボックス3DBBの、最小の3DバウンディングボックスSBBとの交点が計算されて、リファインされた3DバウンディングボックスRBBを取得する。
【0062】
3Dバウンディングボックスがリファインされれば、マスクMASは、最初の3Dバウンディングボックス3DBBを使用する代わりに、リファインされた3DバウンディングボックスRBBによりステップa)~c)を反復することによって計算される。特に、セグメンテーション確率画像SPIは、リファインされた3DバウンディングボックスRBBに基づいて計算される。バウンディングボックスは、(エネルギー関数が予め定義されたしきい値の下にあるならば、ユーザーによって、ユーザーストロークによるセグメンテーションの訂正を通じて、または自動的に)セグメンテーションが認可された各画像に対してリファインされる。
【0063】
ステップf)にて、マスク全体が、投影された面のうちの1つの内側に完全に収まらないこと(画像がオブジェクトのカノニカルなビューでないならば起こることが可能である)が判明するならば、3Dバウンディングボックス3DBBは、ボクセルの格子(例えば、各方向において256個のボクセル)に個別化される。図9によって例示されるように、画像IMの各ピクセルpijに対して、光線(R11、R12)は、カメラからキャストされ、ピクセルがマスクMASに属さないならば、前述の光線と交差する3Dバウンディングボックス3DBBのボクセルは、カービングされる。反対に、ピクセルがマスクMASに属するならば、前述の光線に沿う3Dバウンディングボックス3DBBのカービングはない。すべての光線がキャストされれば、すべてのピクセルに対して、新しいカービングボクセル格子(carved voxel grid)が取得される。次に、新しいカービングボクセル格子は、マスクが認可されていない各々の新しい画像に投影される。光線がカメラから画像の各ピクセルに向かってキャストされ、画像の各ピクセルに対して、前述の光線が、カービングされないボクセルと交差するかどうかが決定され、もしそうであるならば、バイナリの予め定義された値(例えば、value=1)が前述のピクセルに割り当てられる。次に、新しい2Dバウンディングボックスは、バイナリの予め定義された値を有するすべてのピクセルを取り囲む最小の長方形を決定することによって、バイナリの予め定義された値を有するピクセルを使用することによって前述の別の画像上に生成される。
【0064】
それゆえ、(ユーザーの訂正後に)訂正されたマスクから取得される信頼できる情報は、その他の画像に伝播され、セグメンテーションの品質を高める。
【0065】
結論として、画像がキャリブレーションされる場合である、訂正されたマスクが他の画像に伝播されることが可能であるとき、別の視点からのオブジェクトのセグメンテーションは、リファインされた3Dバウンディングボックスによりなされることが可能である(ステップh)、図2)。次に、マスクが、前述したステップa)~c)により計算される。もしそうでなければ、セグメンテーション確率画像SPIが、ユーザーに指示してオブジェクトを取り囲むループを描かせることによって計算されるとき(図3参照)、マスクの伝播はない。それゆえ、他の画像に対して、ユーザーは、互いの画像に対してセグメンテーション確率画像SPIを取得するために、オブジェクトの輪郭を閉じる新しい線を描く必要がある(ステップg)、図2)。
【0066】
図10は、左側に、セグメント化するオブジェクトの元の画像を例示する。画像は、異なった視点から獲得されている。セグメンテーションは、発明された方法によりなされており、マスクが、ビューのすべての点に対してとても正確であることが見られることが可能である。
【0067】
本発明の方法は、もしかしたらコンピューターネットワークを含む、適切なプログラムを非一時的なかたちにおいて、例えば、ハードディスク、ソリッドステートディスク、またはCD-ROMなどのコンピューター読み取り可能な媒体に格納する、およびマイクロプロセッサー(複数可)とメモリーとを使用して前述のプログラムを実行する、適切にプログラムされた汎用のコンピューターまたはコンピューターシステムによって行われることが可能である。
【0068】
本発明の例示的な態様に係る方法を実行するのに適したコンピューターは、図11に関して説明される。図11にて、コンピューターは、上に説明された処理を行う中央処理装置CPUを含む。処理は、実行可能なプログラムとして、すなわち、例えば、RAM M1もしくはROM M2もしくはHDD(ハードディスクドライブ)もしくはSDD(ソリッドステートドライバ)M3、DVD/CDドライブ M4などのメモリーにおいてコンピューター読み取り可能な命令のセットとして格納されることが可能である、またはリモートに格納されることが可能である。さらにその上、1つまたは複数のデジタルボディモデルおよび/またはスケルトンを定義する1つまたは複数のコンピューターファイルは、メモリーデバイスM1~M4の1つまたは複数に、またはリモートに格納されることもある。
【0069】
主張される発明は、本発明の処理に関するコンピューター読み取り可能な命令、および/またはデジタルファイルが格納されるコンピューター読み取り可能な媒体のかたちによって限定されない。例えば、命令およびファイルは、CD、DVDに、フラッシュメモリー、RAM、ROM、PROM、EPROM、EEPROM、ハードディスク、またはコンピューターが通信するどんな他の情報処理デバイス、例えば、サーバーもしくは別のコンピューターなどにも格納されることが可能である。プログラムおよびファイルは、同一のメモリーデバイスに、または異なるメモリーデバイスに格納されることが可能である。
【0070】
さらに、本発明の方法を実行するのに適したコンピュータープログラムは、CPUと、例えば、マイクロソフト(登録商標)ウィンドウズ10、UNIX、ソラリス、LINUX、アップルMAC-OS、および当業者に知られている他のシステムなどと共に実行されるユーティリティアプリケーション、バックグラウンドデーモン、もしくはオペレーティングシステムのコンポーネント、またはそれらの組み合わせとして提供されることが可能である。
【0071】
中央処理装置CPUは、アメリカのインテル(登録商標)からのXenonプロセッサーまたはアメリカのAMD(登録商標)からのOpteronプロセッサーであることが可能であり、または他のプロセッサータイプ、例えば、フリースケールColdFire、IMX、またはアメリカのフリースケールコーポレーションからのARMプロセッサーなどであることが可能である。代替として、中央処理装置CPUは、例えば、アメリカのインテルコーポレーションからのCore2 Duoなどのプロセッサーであることが可能であり、または当業者が認めるような、FPGA、ASIC、PLD上に、もしくは個別の論理回路(discrete logic circuit)を使用して実装されることが可能である。さらに、中央処理装置CPUは、上に説明された本発明の処理のコンピューター読み取り可能な命令を実行するために、協働して働く複数のプロセッサーとして実装されることが可能である。
【0072】
図11のコンピューターは、ネットワーク、例えば、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、インターネットなどとのインターフェイス接続のために、ネットワークインターフェイスNI、例えば、アメリカのインテル(登録商標)コーポレーションからのインテルイーサネットPROネットワークインターフェイスカードなども含む。さらに、CAD(Computer Aided Design)ステーションは、ディスプレイDY、例えば、ヒューレット・パッカード(登録商標)のHPL2445w LCDモニターなどとのインターフェイス接続のために、ディスプレイコントローラーDC、例えば、アメリカのNVIDIA(登録商標)コーポレーションからのNVIDIA GeForce GTXグラフィックスアダプターなどを含む。汎用I/OインターフェイスIFは、キーボードKBおよびポインティングデバイスPD、例えば、ローラーボール、マウス、タッチパッドなどとのインターフェイス接続をする。ディスプレイ、キーボード、およびポインティングデバイスは、ディスプレイコントローラーおよびI/Oインターフェイスとともに、入力コマンドを供給するために、たとえば、バウンディングボックスが提供されない場合にセグメント化するオブジェクトの輪郭を描く、マスクを訂正するためにストロークを描くためにユーザーによって、およびマスクと重ね合わされた画像を表示するためにCADステーションによって使用されるグラフィカルユーザーインターフェイスを形成する。
【0073】
ディスクコントローラーDKCは、CADステーションのコンポーネントのすべてを相互に連結させるために、HDD M3およびDVD/CD M4を、ISA、EISA、VESA、PCIまたは同様のであることが可能であるコミュニケーションバスCBSに連結する。
【0074】
ディスプレイ、キーボード、ポインティングデバイスについての、ディスプレイコントローラー、ディスクコントローラー、ネットワークインターフェイスおよびI/Oインターフェイスも同様に、一般的な特徴および機能性の説明は、本明細書において簡潔さのために、これらの特徴が知られているとして省略される。
【0075】
図12は、本発明の異なった例示的な態様に係る方法を実行するのに適したコンピューターシステムのブロック図である。
【0076】
図12にて、実行可能プログラムEXPと、マスク(複数可)を定義するコンピューターファイル(複数可)とは、サーバーSCに連結されたメモリーデバイスに格納される。メモリーデバイスと、サーバーの全体的なアーキテクチャとは、ディスプレイコントローラー、ディスプレイ、キーボード、および/またはポインティングデバイスがサーバーにおいて欠くことがあるのを除き、図11に関して上に議論されたのと同じであることがある。次に、サーバーSCは、ネットワークNWを介して管理者システムADSおよびエンドユーザーコンピューターEUCに連結される。管理者システムのおよびエンドユーザーコンピューターの全体的なアーキテクチャは、管理者システムのおよびエンドユーザーコンピューターのメモリーデバイスが、実行可能プログラムEXPおよび/またはマスク(複数可)を定義するコンピューターファイル(複数可)を格納しないことを除き、図11に関して上に議論されたのと同じであることがある。しかしながら、エンドユーザーコンピューターは、以下に議論されるような、サーバーの実行可能プログラムと協働するために設計されたクライアントプログラムを格納する。
【0077】
理解されることが可能であるように、ネットワークNWは、公共ネットワーク、例えば、インターネット、または例えば、LANもしくはWANのネットワークなどのプライベートネットワーク、またはあらゆる組み合わせなどであることが可能であり、PSTNまたはISDNのサブネットワークを含むこともまた可能である。ネットワークNWは、有線、例えば、イーサネットネットワークなどであることもまた可能であり、または例えば、EDGE、3Gおよび4Gのワイヤレスセルラーシステムを含むセルラーネットワークなどの無線であることが可能である。ワイヤレスネットワークは、Wi-Fi、ブルートゥース、または知られている通信のどんな他のワイヤレスのかたちでもあることもまた可能である。したがって、ネットワークNWは、単に例示的であり、決して、本進歩の範囲を決して限定しない。
【0078】
クライアントプログラムは、エンドユーザーコンピューターのメモリーデバイスに格納され、後者のアクセスについてのCPUによって実行され、ネットワークNWを介して、データベースDBは、サーバーSCに格納され、マスク(複数可)を定義するファイルを含む。サーバーは、上に説明されたような処理を行い、再びネットワークNWを使用して、エンドユーザーコンピューターに、マスクが重ね合わされた画像に対応する画像ファイルを送信する。
【0079】
1つの管理者システムADSおよび1つのエンドユーザーシステムEUXだけが示されるが、システムは、限定なしに、管理者システムおよび/またはユーザーシステムの何個でもサポートすることが可能である。同様に、さらに、複数のサーバーは、本発明の範囲から逸脱することなくシステムにおいて実装されることも可能である。
【0080】
本明細書において説明されたどんな処理でも、モジュール、セグメント、または処理の特定の論理関数またはステップを実装する1つまたは複数の実行可能な命令を含むコードの部分を表すとして理解されるべきであり、および代替の実装は、本発明の例示的な態様の範囲内に含まれる。
図1A
図1B
図1C
図1D
図2
図3
図4
図5
図6
図7A
図7B
図8
図9
図10
図11
図12
【外国語明細書】