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

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

▶ 株式会社Preferred Networksの特許一覧

特開2023-58160アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム
<>
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図1
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図2
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図3
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図4
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図5
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図6
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図7
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図8
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図9
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図10
  • 特開-アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023058160
(43)【公開日】2023-04-25
(54)【発明の名称】アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラム
(51)【国際特許分類】
   G06T 7/174 20170101AFI20230418BHJP
   G06T 7/00 20170101ALI20230418BHJP
【FI】
G06T7/174
G06T7/00 350B
G06T7/00 610
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021167966
(22)【出願日】2021-10-13
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】海野 裕也
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096AA09
5L096FA18
5L096GA08
5L096GA10
5L096GA51
(57)【要約】
【課題】アノテーションの精度を向上させる。
【解決手段】本開示の一実施形態である方法は、少なくとも1台のコンピュータが実行する方法であって、第1時点における対象物の深度と第2時点における前記対象物の深度との差分に関するデータに基づいて、前記第1時点と前記第2時点との少なくとも一方において撮像された前記対象物の画像にアノテーションを行う。
【選択図】図7
【特許請求の範囲】
【請求項1】
少なくとも1台のコンピュータが実行する方法であって、
第1時点における対象物の深度と第2時点における前記対象物の深度との差分に関するデータに基づいて、前記第1時点と前記第2時点との少なくとも一方において撮像された前記対象物の画像にアノテーションを行う、アノテーション方法。
【請求項2】
前記対象物は、パレット上に積載され、当該パレットから荷下ろしされる複数の荷物である、請求項1に記載のアノテーション方法。
【請求項3】
前記第1時点および前記第2時点は、それぞれ、前記パレット上に積載された荷物の一部が荷下ろしされる前および後の時点であり、
前記アノテーションが行われる画像は、前記第1時点において撮像された画像である、請求項2に記載のアノテーション方法。
【請求項4】
前記アノテーションは、前記第1時点と前記第2時点との少なくとも一方において撮像された前記画像中の一部分の領域を特定する情報を、当該画像に付与する、請求項1に記載のアノテーション方法。
【請求項5】
前記対象物の深度および画像のそれぞれを、前記対象物の上方に設けられた1以上の装置を用いて取得する、請求項1に記載のアノテーション方法。
【請求項6】
前記アノテーションは、前記第1時点における前記対象物の深度と前記第1時点より後の前記第2時点における前記対象物の深度との差分に関するデータ、および、前記第2時点における前記対象物の深度と前記第2時点より後の第3時点における前記対象物の深度との差分に関するデータ、に基づいて、前記第1時点において撮像された前記対象物の画像に、前記第1時点にはあるが前記第2時点にはない前記対象物の一部、および、前記第2時点にはあるが前記第3時点にはない前記対象物の一部を示す領域の情報を付与する、請求項1に記載のアノテーション方法。
【請求項7】
前記アノテーションは、前記第1時点では有ったが前記第2時点では無くなった対象物の画像上での領域をマスク領域とすることである、請求項1に記載のアノテーション方法。
【請求項8】
前記第1時点における深度が有効であり、かつ、前記第2時点における深度が有効である場合、前記第1時点における深度と前記第2時点における深度との差分が閾値よりも大きい領域をマスク領域とする、請求項7に記載のアノテーション方法。
【請求項9】
前記閾値は、前記画像の各ピクセルにおける深度と前記各ピクセルの周囲のピクセルにおける深度との差分の最大値に基づいて決定される、請求項8に記載のアノテーション方法。
【請求項10】
前記第1時点における深度が有効であり、かつ、前記第2時点における深度が無効である領域をマスク領域とする、請求項7から9のいずれか一項に記載のアノテーション方法。
【請求項11】
前記第1時点における深度が有効であり、かつ、前記第2時点における深度が有効である場合、前記第1時点における深度と前記第2時点における深度との差分が閾値よりも大きい領域をマスク領域とし、
前記第1時点における深度が無効であり、かつ、前記第2時点における深度が無効である領域をマスク領域とせず、
前記第1時点における深度が無効であり、かつ、前記第2時点における深度が有効である領域をマスク領域とせず、
前記第1時点における深度が有効であり、かつ、前記第2時点における深度が無効である領域をマスク領域とする、請求項7に記載のアノテーション方法。
【請求項12】
請求項1から11のいずれか一項に記載のアノテーション方法によってアノテーションが行われた画像を、機械学習のモデルを生成するための教師データとして生成する、教師データの生成方法。
【請求項13】
第1時点における対象物の深度と第2時点における前記対象物の深度との差分に関するデータに基づいて、前記第1時点と前記第2時点との少なくとも一方において撮像された前記対象物の画像にアノテーションを行うアノテーション部、を備えたアノテーション装置。
【請求項14】
コンピュータを
第1時点における対象物の深度と第2時点における前記対象物の深度との差分に関するデータに基づいて、前記第1時点と前記第2時点との少なくとも一方において撮像された前記対象物の画像にアノテーションを行うアノテーション部、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アノテーション方法、教師データの生成方法、アノテーション装置、およびプログラムに関する。
【背景技術】
【0002】
従来、画像等のデータに対して情報を付与する(アノテーションとも呼ばれる)ための手法が開示されている(特許文献1)。例えば、画像に対するアノテーションとして、画像内の物体を検出したうえで該物体の画像上での領域をマスク領域とすることが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-126414号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の手法では、画像内の物体を正確に検出することが難しく、アノテーションを正確に行うことができなかった。本開示では、アノテーションの精度を向上させることを目的とする。
【課題を解決するための手段】
【0005】
本開示の一実施形態である方法は、少なくとも1台のコンピュータが実行する方法であって、第1時点における対象物の深度と第2時点における前記対象物の深度との差分に関するデータに基づいて、前記第1時点と前記第2時点との少なくとも一方において撮像された前記対象物の画像にアノテーションを行う。
【図面の簡単な説明】
【0006】
図1】カメラが撮像した対象物の画像の差分に基づくアノテーションについて説明するための図である。
図2】カメラが撮像した対象物の画像の差分に基づくアノテーションについて説明するための図である。
図3】深度センサーが計測した対象物の深度の差分に基づくアノテーションについて説明するための図である。
図4】深度センサーが計測した対象物の深度の差分に基づくアノテーションについて説明するための図である。
図5】本開示の一実施形態に係る全体の構成を示す図である。
図6】本開示の一実施形態に係るアノテーション装置の機能ブロック図である。
図7】本開示の一実施形態に係るアノテーション処理のフローチャートである。
図8】本開示の一実施形態に係る差分の閾値について説明するための図である。
図9】本開示の一実施形態に係る複数枚の画像を用いたアノテーションについて説明するための図である。
図10】本開示の一実施形態に係る各時点の対象物の状態に対する統合マスク領域のアノテーションを説明するための図である。
図11】本開示の一実施形態に係るアノテーション装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0007】
以下、図面に基づいて本開示の実施の形態を説明する。
【0008】
<用語の説明>
・本明細書において、「対象物」とは、任意の物体のことをいう。対象物は、任意の形状、色であってよい。例えば、対象物は、物流現場等においてロボット等が荷下ろし等の作業をする段ボール箱等、段ボール箱等が積まれている棚等、である。
・本明細書において、「深度」とは、深度を計測する装置(例えば、深度センサー)が計測する、対象物と深度を計測する装置との間の相対的な位置関係を表すデータのことをいう。深度は、例えば、対象物と装置との3次元的な(いわゆるXYZ方向)の相対距離や、装置から見た対象物の奥行き方向(いわゆるZ方向)の相対距離である。
・本明細書において、「アノテーション」とは、画像等のデータに対して付与された情報をいう。また、「アノテーションを行う」とは、画像等のデータに対して情報を付与することをいう。例えば、アノテーションは、画像中の一部分の領域を特定する情報であり、そのような情報を画像に付与することを「画像にアノテーションを行う」という。画像にアノテーションを行う一例は、先の時点では有ったが後の時点では無くなった対象物の画像上での領域をマスク領域とすること(マスキング)である。このマスク領域が、アノテーションによって画像に付与される情報である。アノテーションが行われた画像は、機械学習のモデルを生成するための教師データとして用いられうる。
【0009】
<概要>
まず、図1および図2を参照しながら、カメラ(例えばRGBカメラ)が撮像した対象物の画像(例えばRGB画像)の差分に基づくアノテーションについて説明し、図3および図4を参照しながら、深度センサーが計測した対象物の深度の差分に基づくアノテーションについて説明する。
【0010】
図1および図2は、カメラが撮像した対象物の画像の差分に基づくアノテーションについて説明するための図である。先の時点((A')とする)では有ったが後の時点((B')とする)では無くなった対象物を検出して、先の時点あるいは後の時点に撮像された画像上での該対象物(つまり、先の時点では有ったが後の時点では無くなった対象物)の領域をマスク領域とする場合を説明する。
【0011】
図1に示される対象物は、不図示の1つのパレット上に積載されており、このパレットから人あるいはロボットによって荷下ろし(デパレタイズ)される複数の荷物である。図1の左側の(A')の時点において、カメラが対象物(図1の例では、パレット上の8個の段ボール箱とする)を撮像したとする。次に、図1の右側の(B')の時点において、カメラが対象物(図1の例では、パレット上の7個の段ボール箱とする(1個の段ボール箱がパレットから荷下ろしされたとする))を撮像したとする。なお、荷物としての複数の段ボール箱は、サイズが異なるものが含まれてもよい。
【0012】
図2は、(A')の時点においてカメラが撮像した画像と(B')の時点においてカメラが撮像した画像との差分を説明するための図である。先の時点(A')には有るが後の時点(B')には無い対象物の後方に対象物(例えば、段ボール箱)が存在した場合、2つの画像に大きな差分(例えば、RGB値等の画素値の差分)が生じないことがある。
【0013】
このように、2つの異なる時点((A')と(B'))においてカメラが撮像した画像の差分(例えば、RGB値等の画素値の差分)に基づいてアノテーションを行おうとすると、先の時点(A')には有るが後の時点(B')には無い対象物の後方に同種の対象物が存在した場合、2つの画像に大きな差分(例えば、RGB値等の画素値の差分)が生じず(図2参照)、先の時点(A')には有るが後の時点(B')には無い対象物(図1および図2の例であれば、荷下ろしされた1個の段ボール箱)を正確に検出することができない。また、対象物が移動していなくとも影や映り込みによって画像の差分が発生することがある。その結果、先の時点(A')あるいは後の時点(B')に撮像された画像上での該対象物(つまり、先の時点では有ったが後の時点では無くなった対象物)の領域を正確にマスク領域とすることができない。
【0014】
そこで、本開示では、図3および図4で説明するように、深度センサーが計測した対象物の深度に関するデータの差分に基づいてアノテーションを行う。
【0015】
図3および図4は、深度センサーが計測した対象物の深度に関するデータの差分に基づくアノテーションについて説明するための図である。図1および図2と同様に、先の時点((A)とする)では有ったが後の時点((B)とする)では無くなった対象物を検出して、先の時点あるいは後の時点に撮像された画像上での該対象物(つまり、先の時点では有ったが後の時点では無くなった対象物)の領域をマスク領域とする場合を説明する。
【0016】
図3に示される対象物は、不図示のパレット上に積載されており、このパレットから人あるいはロボットによって荷下ろし(デパレタイズ)される。図3の左側の(A)の時点において、深度センサーが対象物(図3の例では、パレット上の8個の段ボール箱とする)の深度(つまり、対象物と深度センサーとの距離)を計測したとする。次に、図3の右側の(B)の時点において、深度センサーが対象物(図3の例では、パレット上の7個の段ボール箱とする(1個の段ボール箱がパレットから荷下ろしされたとする))の深度(つまり、対象物と深度センサーとの距離)を計測したとする。
【0017】
図4は、(A)の時点において深度センサーが計測した深度と(B)の時点において深度センサーが計測した深度との差分を説明するための図である。先の時点(A)には有るが後の時点(B)には無い対象物の後方に対象物が存在したとしても、2つの時点での深度に大きな差分が生じる(図4の塗りつぶし部分)。
【0018】
本開示では、2つの異なる時点((A)と(B))において深度センサーが計測した深度の差分に基づいてアノテーションを行う。そのため、先の時点(A)には有るが後の時点(B)には無い対象物の後方に対象物が存在したとしても、2つの時点での深度に大きな差分が生じるので(図4の塗りつぶし部分参照)、先の時点(A)には有るが後の時点(B)には無い対象物(図3および図4の例であれば、荷下ろしされた1個の段ボール箱)を正確に検出することできる。その結果、先の時点(A)あるいは後の時点(B)に撮像された画像上での該対象物(つまり、先の時点では有ったが後の時点では無くなった対象物)の領域を正確にマスク領域とすることができる。
【0019】
<全体構成>
図5は、本開示の一実施形態に係る全体の構成を示す図である。なお、図5では、深度計測装置20と撮像装置30とを別々の装置として説明するが、深度計測装置20と撮像装置30とを1つの装置で実装してもよい。以下、それぞれについて説明する。
【0020】
<<アノテーション装置>>
アノテーション装置10は、第1時点における対象物の深度と第2時点における対象物の深度との差分に基づいて、第1時点と第2時点との少なくとも一方において撮像された画像であってアノテーションの対象を含む画像にアノテーションを行う装置である。なお、第1時点と第2時点は、異なる時点である。アノテーション装置10は、1つまたは複数のコンピュータから構成される。
【0021】
アノテーション装置10は、深度計測装置20が計測した深度、および、撮像装置30が撮像した画像を、任意のネットワークまたは記憶媒体を介して取得する。具体的には、アノテーション装置10は、撮像装置30が撮像した画像の各ピクセル(画素)ごとに、深度計測装置20が計測した深度(つまり、対象物と深度計測装置20との間の距離)のデータを得ることができる。
<<深度計測装置>>
深度計測装置20は、対象物の深度(つまり、対象物と深度計測装置20との間の距離)を計測する装置である。深度計測装置20は、例えば荷下ろしされる対象物が積載されたパレットの上方に設けられ、パレット上の対象物の深度を計測する。
【0022】
<<撮像装置>>
撮像装置30は、対象物を撮像する装置である。撮像装置30は、例えば荷下ろしされる対象物が積載されたパレットの上方に設けられ、パレット上の対象物を撮像する。
【0023】
<機能ブロック>
図6は、本開示の一実施形態に係るアノテーション装置10の機能ブロック図である。アノテーション装置10は、深度取得部101と、画像取得部102と、アノテーション部103と、を備える。また、アノテーション装置10の有する1または複数のプロセッサは、プログラムを実行することによって、深度取得部101、画像取得部102、アノテーション部103、として機能する。以下、それぞれについて説明する。
【0024】
深度取得部101は、対象物の深度(つまり、対象物と深度計測装置20との間の距離)を取得する。具体的には、深度取得部101は、第1時点における対象物の深度、および、第2時点における対象物の深度を取得する。例えば第2時点は、パレット上に積載された対象物について、第1時点ではパレット上に積載されていた一部の対象物が荷下ろしされた後の時点である。
【0025】
画像取得部102は、対象物が撮像された画像を取得する。具体的には、画像取得部102は、第1時点において対象物が撮像された画像、および、第2時点において対象物が撮像された画像を取得する。
【0026】
アノテーション部103は、第1時点における対象物の深度と第2時点における対象物の深度との差分に関するデータに基づいて、第1時点において撮像された画像と第2時点において撮像された画像との少なくとも一方の画像(例えば、第1時点において撮像された、第2時点では無くなった対象物が写されている画像)にアノテーションを行う。
【0027】
具体的には、アノテーション部103は、第1時点における対象物の深度と第2時点における対象物の深度との差分から、深度の変化を判定する。また、アノテーション部103は、深度の変化の判定結果をもとに、画像にアノテーションを行う。例えば、アノテーション部103は、第1時点の画像上の領域であって、第1時点では有ったが第2時点では無くなった対象物の領域をマスク領域とする。また別の例において、アノテーション部103は、第2時点の画像上の領域であって、第1時点では無かったが第2時点では有る対象物の領域をマスク領域とする。以下、深度の変化の判定について詳細に説明する。
【0028】
アノテーション部103は、画像の各ピクセル(画素)ごとの深度のデータを用いて、各ピクセル(画素)ごとに、下記の(1)(2)(3)(4)の判定を行う(例えば、第1時点の画像上の領域であって、第1時点では有ったが第2時点では無くなった対象物の領域をマスク領域とする場合)。
【0029】
[第1時点:有効(finite),第2時点:有効(finite)]
(1)アノテーション部103は、第1時点における対象物の深度が有効であり(つまり、対象物が検出された)、かつ、第2時点における対象物の深度が有効である(つまり、対象物が検出された)場合、第1時点における対象物の深度と第2時点における対象物の深度との差分が閾値よりも大きい領域をマスク領域とする。閾値は、画像の各ピクセルにおける深度と該各ピクセルの周囲のピクセルにおける深度との差分の最大値に基づいて決定される(後段で、図8を参照しながら詳細に説明する)。
【0030】
[第1時点:無効(NaN),第2時点:無効(NaN)]
(2)アノテーション部103は、第1時点における対象物の深度が無効であり(つまり、対象物が検出されなかった)、かつ、第2時点における対象物の深度が無効である(つまり、対象物が検出されなかった)領域をマスク領域としない。
【0031】
[第1時点:無効(NaN),第2時点:有効(finite)]
(3)アノテーション部103は、第1時点における対象物の深度が無効であり(つまり、対象物が検出されなかった)、かつ、第2時点における対象物の深度が有効である(つまり、対象物が検出された)領域をマスク領域としない。
【0032】
[第1時点:有効(finite),第2時点:無効(NaN)]
(4)アノテーション部103は、第1時点における対象物の深度が有効であり(つまり、対象物が検出された)、かつ、第2時点における対象物の深度が無効である(つまり、対象物が検出されなかった)領域をマスク領域とする。
【0033】
このように、(1)では、検出される対象物が変わったことから、第1時点では有った対象物が第2時点では無くなったと判定される。また、(4)では、対象物が検出されなくなったことから、第1時点では有った対象物が第2時点では無くなったと判定される。先の時点では有った対象物が後の時点では無くなると、無くなった対象物の後方の対象物と深度計測装置20との距離が遠くなりすぎてしまい、後方の対象物が検出されなくなる。そのため、(4)のように、第1時点における対象物の深度が有効であり、かつ、第2時点における対象物の深度が無効である領域をマスク領域とする。
【0034】
なお、例えば、第2時点の画像上の領域であって、第1時点では無かったが第2時点では有る対象物の領域をマスク領域とする場合には、上記の(3)の領域(つまり、[第1時点:無効(NaN),第2時点:有効(finite)])をマスク領域とし、上記の(4)の領域(つまり、[第1時点:有効(finite),第2時点:無効(NaN)])をマスク領域としない。上記の(1)と(2)については、第1時点の画像上の領域であって、第1時点では有ったが第2時点では無くなった対象物の領域をマスク領域とする場合と同様である。
【0035】
アノテーション部103は、深度の変化(上記の(1)(2)(3)(4))からマスク領域であると判定された領域が最大となる領域を、第1時点では有ったが第2時点では無くなった対象物の画像上での領域(つまり、マスキングを行う領域)とする。つまり、アノテーション部103は、上記の(1)でマスク領域であると判定されたピクセルと、上記の(4)でマスク領域であると判定されたピクセルと、を含む輪郭内の領域を、マスキングを行う領域とする。輪郭の形状は例えば多角形であり、段ボール箱のような上面の形状が矩形である直方体形状の対象物に対して矩形を用いてよい。領域は、(1)および(4)でマスク領域であると判定されたピクセル群に対して矩形フィッティングを行うことで決定してもよいし、他の方法で決定してもよい。
【0036】
<処理方法>
図7は、本開示の一実施形態に係るアノテーション処理のフローチャートである。
【0037】
ステップ1(S1)において、アノテーション装置10は、第1時点の深度に関するデータおよび画像に関するデータを取得する。具体的には、深度取得部101は、第1時点における対象物の深度(つまり、対象物と深度計測装置20との間の距離)を取得する。また、画像取得部102は、第1時点において対象物が撮像された画像を取得する。例えば、深度取得部101および画像取得部102は、対象物の深度を計測し、かつ、対象物を撮像すべきタイミングを第1時点として検出し、この検出されたタイミングにおいて対象物の深度および画像を取得する。検出されるタイミングは、後述するように、対象物の深度および画像の取得に、対象物を移動する人およびロボットが影響しないタイミングでよい。
【0038】
ステップ2(S2)において、アノテーション装置10は、第2時点の深度に関するデータおよび画像に関するデータを取得する。具体的には、深度取得部101は、第2時点における対象物の深度(つまり、対象物と深度計測装置20との間の距離)を取得する。また、画像取得部102は、第2時点において対象物が撮像された画像を取得する。なお、第2時点では、第1時点では有った対象物のうちの一部の対象物が無くなったものとする。例えば、深度取得部101および画像取得部102は、一部の対象物が人あるいはロボットで移動され(例えばパレット上から荷下ろしされ)、対象物の深度を計測し、かつ、対象物を撮像すべきタイミングを第2時点として検出し、この検出されたタイミングにおいて対象物の深度および画像を取得する。検出されるタイミングは、第1時点同様、対象物の深度および画像の取得に、対象物を移動する人およびロボットが影響しないタイミングでよい。
【0039】
ステップ3(S3)において、アノテーション装置10は、深度の変化を判定する。具体的には、アノテーション部103は、S1で取得された第1時点における対象物の深度とS2で取得された第2時点における対象物の深度との差分から、深度の変化を判定する。
【0040】
ステップ4(S4)において、アノテーション装置10は、アノテーションを行う。具体的には、アノテーション部103は、S3の深度の変化の判定結果をもとに、S1およびS2で取得された画像の少なくとも一方の画像にアノテーションを行う(例えば、第1時点では有ったが第2時点では無くなった対象物の画像上での領域をマスク領域として特定(生成)する)。
【0041】
<<差分の閾値>>
図8は、本開示の一実施形態に係る差分の閾値について説明するための図である。上述したように、アノテーション装置10は、第1時点における対象物の深度が有効であり、かつ、第2時点における対象物の深度が有効である場合、第1時点における対象物の深度と第2時点における対象物の深度との差分が閾値よりも大きい領域をマスク領域とする。アノテーション装置10は、閾値を、画像の各ピクセルにおける深度と該各ピクセルの周囲のピクセルにおける深度との差分の最大値に基づいて決定することができる。つまり、閾値は、各ピクセルごとに決定される。
【0042】
図8を参照しながら説明すると、ピクセル(図8のx0の場合を説明する)における深度と、該ピクセルの周囲のピクセル(図8のx1、x2、x3、x4、x5、x6、x7、x8の8ピクセル)における深度と、の差分(図8のx0の深度とx1の深度との差分、x0の深度とx2の深度との差分、・・・、x0の深度とx8の深度との差分)の最大値に基づいて、閾値が決定される。つまり、各ピクセルに対して、uが計算される。
u = maxi \in {1,・・・,8} |xi - x0| ・・・式(1)
そして、u(あるいはuに安全係数を乗じた値)がそのピクセルの閾値として決定される。
【0043】
このように閾値を決定することによって、対象物と深度計測装置20との間の距離によって生じる深度の誤差、第1時点と第2時点でピクセルがずれることによって生じる深度の誤差、から発生する影響を軽減することができる。
【0044】
<<3以上の時点における対象物の状態を用いたアノテーション>>
上記では2つの時点における対象物の状態(例えば深度のデータ)を用いて少なくとも一方の画像にアノテーションを行う例を説明したが、本開示の一実施形態では、アノテーション装置10は、3つ以上の時点における対象物の状態(例えば深度のデータ)を用いて、それら3つ以上の時点の先頭の時点における対象物の画像にアノテーションを行うことができる。
【0045】
例えば、対象物(例えば、段ボール箱)がN個あったとする。なお、1個または複数個の対象物が1段または複数段に重なっていてよい。
【0046】
i個の対象物が無くなった(例えば、i個の段ボール箱がパレット上から荷下ろしされた)時点の対象物の状態をIとすると、I,I,・・・,IのN+1個の状態それぞれに対応するデータ(例えば画像および深度のデータ)を取得することができる(なお、Iは、最初の状態である)。ここで、(I, I),(I, I),・・・,(IN-1, I)のN個のペアから合計N個のマスク領域を得ることができる。つまり、k番目に無くなった(例えば、荷下ろしされた)対象物のマスク領域Mは、(Ik-1, I)のペアから作ることができる。すなわち、画像Iにはj+1,j+2,・・・,N番目の対象物が残っているので、N,N-1,・・・,j+1のマスク領域を順番に重ね合わせることで、この画像全体のアノテーションを行うことができる。そのため、アノテーション部103は、k番目の対象物が無くなる直前の時点の対象物の画像全体に対する統合マスク領域M'を、マスク画像M、MN-1、・・・、Mk+1、Mを順に統合する(例えば上書きで重ね合わせる)ことで生成する。そしてアノテーション部103は、この生成された統合マスク領域M'を、k番目の対象物が無くなる直前の時点の対象物の画像に付与することで、k番目の対象物が無くなる直前の時点の対象物の画像にアノテーションを行うようにしてよい。以上の通り、アノテーションが行われた画像は、全ての対象物(N個の対象物)のマスク領域が示された画像であってもよいし、あるいは、いずれかの対象物(1つまたは複数の対象物)のマスク領域が示された画像であってもよい。
【0047】
図9は、本開示の一実施形態に係る複数枚の画像を用いたアノテーションについて説明するための図である。図9のように、最初の状態で、8個の対象物があったとする。対象物が1個ずつ無くなった各時点(図9の(A)の時点、(B)の時点、(C)の時点、(D)の時点、(E)の時点、(F)の時点、(G)の時点、(H)の時点、(I)の時点。なお、対象物が無くなる順序は、図9の例に限られない)において、深度取得部101および画像取得部102は、対象物の状態に関するデータ(例えば対象物の深度および対象物の画像のデータ)を取得する。そして、アノテーション部103は、(A)の時点と(B)の時点の深度の差分に基づいて対象物Aのマスク領域Mを特定し、(B)の時点と(C)の時点の深度の差分に基づいて対象物Bのマスク領域Mを特定し、(C)の時点と(D)の時点の深度の差分に基づいて対象物Cのマスク領域Mを特定し、(D)の時点と(E)の時点の深度の差分に基づいて対象物Dのマスク領域Mを特定し、(E)の時点と(F)の時点の深度の差分に基づいて対象物Eのマスク領域Mを特定し、(F)の時点と(G)の時点の深度の差分に基づいて対象物Fのマスク領域Mを特定し、(G)の時点と(H)の時点の深度の差分に基づいて対象物Gのマスク領域Mを特定し、(H)の時点と(I)の時点の深度の差分に基づいて対象物Hのマスク領域Mを特定(生成)する。そしてアノテーション部103は、(A)の時点の画像に、マスク領域M、M、M、M、M、M、M、M、を順に統合した統合マスク領域M'を付与するアノテーション、あるいは、何れか1つのマスク領域(例えばマスク領域M)を付与するアノテーションを行う。
【0048】
図10は、図9に示される時間経過((A)~(I))のうち、(E)~(I)の各時点の対象物の状態(例えば画像)に対する統合マスク領域のアノテーションを説明するための図である。(E)~(I)の各時点の対象物の状態をI~I、各状態の差分に基づいて得られるマスク領域をM~M、これらマスク領域を順に統合して得られる各状態に対する統合マスク領域をM'~M'、とする。上述の通り、深度取得部101および画像取得部102は、各時点における対象物の状態Iに関するデータとして対象物の深度および画像のデータを取得する。アノテーション部103は、隣接する2つの時点の状態の差分(例えば深度の差分)を計算し、その差分に関するデータに基づいてマスク領域M(順に無くなった対象物E、F、G、Hがそれぞれ存在していた領域)を特定(生成)する。そしてアノテーション部103は、各時点における統合マスク領域M'を生成するため、当該時点および当該時点以降の時点の状態のデータに基づいて得られた各対象物のマスク領域Mについて、対象物が無くなった順と逆順に、無くなった対象物に対応するマスク領域Mを、例えば上書きで重ねるようにして統合する。具体的には、アノテーション部103は、マスク領域Mを、マスク領域を含まない領域に上書きで重ねる統合処理を行うことで、(H)時点の対象物の状態に対する統合マスク領域M'を生成する。次に、アノテーション部103は、マスク領域Mを統合マスク領域M'に上書きで重ねる統合処理を行うことで、(G)時点の対象物の状態に対する統合マスク領域M'を生成する。次に、アノテーション部103は、マスク領域Mを統合マスク領域M'に上書きで重ねる統合処理を行うことで、(F)時点の対象物の状態に対する統合マスク領域M'を生成する。次に、アノテーション部103は、マスク領域Mを統合マスク領域M'に上書きで重ねる統合処理を行うことで、(E)時点の対象物の状態に対する統合マスク領域M'を生成する。そしてアノテーション部103は、このように生成した各統合マスク領域M'を対応する時点の対象物の状態Iに付与するアノテーションを行う。
【0049】
なお、図10に示される統合マスク領域の生成で特徴的な方法の1つは、アノテーション部103が、対象物が1個ずつ無くなる3以上の複数時点における対象物の状態に関するデータから特定(生成)される2以上のマスク領域Mを、新しい時点から古い時点へ向かう順で統合し、その統合によって得られたマスク領域を、3つ以上の複数時点のうち最も古い時点における対象物の状態(例えば画像)に対する統合マスク領域M'とすることである。すなわち、アノテーション部103は、統合マスク領域に統合される複数のマスク領域Mを、1個ずつ無くなる対象物ごとに特定(生成)すればよく、マスク領域Mの特定(生成)を、2つの時点における対象物の深度の差分に関するデータから特定(生成)してもよいし、2つの時点における対象物の画像の差分に関するデータから特定(生成)してもよい。また、上記では図9、10を用いて、時間経過とともに対象物が1個ずつ無くなる場合を例にして、統合マスク領域を生成する処理を説明したが、時間経過とともに対象物が1個ずつ増える場合においても同様の処理によって各時点の統合マスク領域を生成することができる。すなわち、アノテーション部103は、連続する2つの時点における対象物の状態の差分から1個1個の対象物のマスク領域を生成し、各マスク領域を第1時点から第N時点へ向かう順で統合することで、第N時点における対象物の状態の統合アノテーションマスク領域を生成できる。
【0050】
このように、本開示では、人の手を介さずにアノテーションを行うことができる。例えば、物流現場等において人やロボット等が段ボール箱等の荷下ろし等の作業をしながら取得した深度および画像を用いて、画像に対する人手でのアノテーションなしに機械学習のモデルを生成するための教師データを作成することができる。例えば、上述の第1時点および第2時点のそれぞれは、物流現場において人あるいはロボットが対象物の荷下ろしを行っている最中の時点であり、対象物の深度および画像の取得に人およびロボットが影響しないタイミングである。このタイミングは、対象物と深度計測装置20との間、および、対象物と撮像装置30との間に人およびロボットが位置しないタイミングでも、人およびロボットが深度計測装置20および撮像装置30に計測および撮像されないタイミングでもよい。
【0051】
また、本開示の一実施形態では、深度の計測で起こる事象に対処することができる。例えば、計測される深度の誤差に対しては、差分の閾値を設けることによって対処する。また、深度のノイズに対しては、マスク領域であると判定された領域が最大となる領域を、マスキングを行う領域とすることで対処する。また、深度の検出漏れに対しては、深度の無効(NaN)を用いて深度の変化を判定することで対処する。また、上述の一実施形態では、アノテーション装置10(アノテーション部103)は、深度の差分に基づいてアノテーションを行っていたが、深度のデータに所定の処理を行ってその処理後のデータの差分に基づいてアノテーションを行ってもよいし、深度の差分に所定の処理を行ってその処理後のデータに基づいてアノテーションを行ってもよい。すなわち、アノテーション装置10(アノテーション部103)は、第1時点の深度に関するデータと第2時点の深度に関するデータとに基づいてアノテーションを行うとも言えるし、2つの時点の深度の差分に関するデータに基づいてアノテーションを行うとも言える。
【0052】
<ハードウェア構成>
前述した実施形態における各装置(アノテーション装置10)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、CD-ROM(Compact Disc-Read Only Memory)、USB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアの処理の全部又は一部がASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の回路に実装されることにより、当該ソフトウェアによる情報処理がハードウェアにより実行されてもよい。
【0053】
ソフトウェアを収納する記憶媒体は、光ディスク等の着脱可能なものでもよいし、ハードディスク、メモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし(主記憶装置、補助記憶装置等)、コンピュータ外部に備えられてもよい。
【0054】
図11は、前述した実施形態における各装置(アノテーション装置10)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0055】
図11のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図11では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(アノテーション装置10)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0056】
前述した実施形態における各装置(アノテーション装置10)の各種演算は、1又は複数のプロセッサを用いて、又はネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0057】
プロセッサ71は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ71は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置のいずれであってもよい。また、プロセッサ71は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0058】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0059】
前述した実施形態における各装置(アノテーション装置10)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0060】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶してもよく、主記憶装置72に記憶された情報がプロセッサ71により読み出されてもよい。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。前述した実施形態における各装置(アノテーション装置10)において各種データ等を保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。
【0061】
前述した実施形態における各装置(アノテーション装置10)が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサで構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサが接続されてもよい。また、プロセッサ1つに対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサのうち少なくとも1つのプロセッサが、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0062】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか又はそれらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0063】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0064】
外部装置9Aはコンピュータ7とネットワークを介して接続されている装置である。外部装置9Bはコンピュータ7と直接接続されている装置である。
【0065】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0066】
また、外部装置9A又は外部装置Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0067】
また、外部装置9Aまた外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aはネットワークストレージ等であってもよく、外部装置9BはHDD等のストレージであってもよい。
【0068】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(アノテーション装置10)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bに処理結果の一部又は全部を送信してもよいし、外部装置9A又は外部装置9Bから処理結果の一部又は全部を受信してもよい。
【0069】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0070】
本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りがない場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、各種データの中間表現等)を出力として用いる場合を含む。
【0071】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0072】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ、専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。
【0073】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」、「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0074】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」、「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0075】
本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0076】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現(同様な表現を含む)が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、電子回路を含む装置等を含んでよい。
【0077】
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。
【0078】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え、部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も例示的なものであり、本開示の範囲を限定するものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11