(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-07-04
(45)【発行日】2024-07-12
(54)【発明の名称】組立支援装置および組立支援方法
(51)【国際特許分類】
G06Q 50/04 20120101AFI20240705BHJP
【FI】
G06Q50/04
(21)【出願番号】P 2024055726
(22)【出願日】2024-03-29
【審査請求日】2024-03-29
【早期審査対象出願】
(73)【特許権者】
【識別番号】397036309
【氏名又は名称】株式会社インターネットイニシアティブ
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100195408
【氏名又は名称】武藤 陽子
(72)【発明者】
【氏名】柿島 純
【審査官】田川 泰宏
(56)【参考文献】
【文献】特開2010-123105(JP,A)
【文献】特開2023-168877(JP,A)
【文献】米国特許出願公開第2017/0097236(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q10/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数の部品を組み立てて形成する構造体の組立てを支援する組立支援装置であって、
組み立てられる前の前記複数の部品を任意の配置および撮影角度で撮影した支援対象画像を取得するように構成された第1取得部と、
サイクルGAN(Generative Adversarial Networks)を用いて構築された、第1ドメインの複数の部品の画像から第2ドメインの構造体の画像を生成する学習済み生成器を備え、前記学習済み生成器に、前記支援対象画像を与えて前記構造体の画像を生成させるように構成された生成部と、
生成された前記構造体の画像を含む組立支援情報を提示するように構成された提示部と
を備える組立支援装置。
【請求項2】
請求項1に記載の組立支援装置において、
さらに、前記サイクルGANを用いて、前記第1ドメインの前記複数の部品の画像から前記第2ドメインの前記構造体の画像を生成する生成器を学習するように構成された学習部を備え、
前記学習部は、前記複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を前記第1ドメインの前記複数の部品の画像の訓練データとして用いる
ことを特徴とする組立支援装置。
【請求項3】
請求項1または2に記載の組立支援装置において、
さらに、前記生成部によって生成された前記構造体の画像に含まれる、前記構造体を識別する識別情報を特定するように構成された特定部と、
特定された前記識別情報に基づいて、識別情報と組立て手順とが関連付けて記憶された記憶部から、前記構造体の組立て手順を取得するように構成された第2取得部と、
を備え、
前記提示部は、取得された前記構造体の前記組立て手順と、前記構造体の画像とを含む前記組立支援情報を提示する
ことを特徴とする組立支援装置。
【請求項4】
複数の部品を組み立てて形成する構造体の組立てを支援する組立支援方法であって、
組み立てられる前の前記複数の部品を任意の配置および撮影角度で撮影した支援対象画像を取得する第1取得ステップと、
サイクルGAN(Generative Adversarial Networks)を用いて構築された、第1ドメインの複数の部品の画像から
、第2ドメインの
、複数の部品が組み立てられた後の状態の構造体の画像を生成する学習済み生成器に、前記支援対象画像を与えて前記構造体の画像を生成させる生成ステップと、
生成された前記構造体の画像を含む組立支援情報を提示する提示ステップと
を備える組立支援方法。
【請求項5】
請求項4に記載の組立支援方法において、
さらに、前記サイクルGANを用いて、前記第1ドメインの前記複数の部品の画像から前記第2ドメインの前記構造体の画像を生成する生成器を学習する学習ステップを備え、
前記学習ステップは、前記複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を前記第1ドメインの前記複数の部品の画像の訓練データとして用いる
ことを特徴とする組立支援方法。
【請求項6】
請求項4または5に記載の組立支援方法において、
さらに、前記生成ステップで生成された前記構造体の画像に含まれる、前記構造体を識別する識別情報を特定する特定ステップと、
特定された前記識別情報に基づいて、識別情報と組立て手順とが関連付けて記憶された記憶部から、前記構造体の組立て手順を取得する第2取得ステップと、
を備え、
前記提示ステップは、取得された前記構造体の前記組立て手順と、前記構造体の画像とを含む前記組立支援情報を提示する
ことを特徴とする組立支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組立支援装置および組立支援方法に関する。
【背景技術】
【0002】
ECサイトから商品を購入することが一般的となっている。ECサイトで販売される商品のなかには、パーツと組立て説明書とが梱包されて購入者であるユーザに届けられ、ユーザが自ら組立て説明書にしたがってパーツを組み立てることで完成品が提供されるものがある。例えば、テーブルやベッドなどの家具や自転車などは組立品として提供されることがある。組立品を購入するユーザにとって、組立て作業に要する時間や労力は多大となる場合がある。そこで、特許文献1は、組立式家具を構成する部材の種類を少なくし、組立て作業に要する時間や労力を軽減することができる組立式家具を開示している。
【0003】
家具や自転車などの組立品のなかには長期にわたって使用されるものも多くあり、その間にユーザの生活環境の変化が生じ、引っ越しや自宅のリフォームを行う際などにはこれらの組立品をパーツに分解する必要がある場合がある。ユーザが再度組立て作業を行う際には、すでに組立て説明書を紛失している場合や、組立品の型が古くなっているため購入元のECサイトやメーカのサイトにおいて、組立て説明書の電子データや完成品の画像が入手可能でない場合がある。そのため、いったん分解したパーツを完成品として再度組み立てる労力が多大となる場合があった。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】Jun-Yan Zhu,Taesung Park,Phillip Isola,Alexei A.Efros,“Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”,ICCV,pages 2223-2232,2017.
【発明の概要】
【発明が解決しようとする課題】
【0006】
このように従来の技術では、特に、組立品の情報がユーザに入手可能でなくなった場合には、組立て作業の労力が多大であった。
【0007】
本発明は、上述した課題を解決するためになされたものであり、組立品の情報がユーザに入手可能でない場合にも、ユーザの組立て作業を支援することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決するために、本発明に係る組立支援装置は、複数の部品を組み立てて形成する構造体の組立てを支援する組立支援装置であって、組み立てられる前の前記複数の部品を任意の配置および撮影角度で撮影した支援対象画像を取得するように構成された第1取得部と、サイクルGAN(Generative Adversarial Networks)を用いて構築された、第1ドメインの複数の部品の画像から第2ドメインの構造体の画像を生成する学習済み生成器を備え、前記学習済み生成器に、前記支援対象画像を与えて前記構造体の画像を生成させるように構成された生成部と、生成された前記構造体の画像を含む組立支援情報を提示するように構成された提示部とを備える。
【0009】
また、本発明に係る組立支援装置において、さらに、前記サイクルGANを用いて、前記第1ドメインの前記複数の部品の画像から前記第2ドメインの前記構造体の画像を生成する生成器を学習するように構成された学習部を備え、前記学習部は、前記複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を前記第1ドメインの前記複数の部品の画像の訓練データとして用いてもよい。
【0010】
また、本発明に係る組立支援装置において、さらに、前記生成部によって生成された前記構造体の画像に含まれる、前記構造体を識別する識別情報を特定するように構成された特定部と、特定された前記識別情報に基づいて、識別情報と組立て手順とが関連付けて記憶された記憶部から、前記構造体の組立て手順を取得するように構成された第2取得部と、を備え、前記提示部は、取得された前記構造体の前記組立て手順と、前記構造体の画像とを含む前記組立支援情報を提示してもよい。
【0011】
上述した課題を解決するために、本発明に係る組立支援方法は、複数の部品を組み立てて形成する構造体の組立てを支援する組立支援方法であって、組み立てられる前の前記複数の部品を任意の配置および撮影角度で撮影した支援対象画像を取得する第1取得ステップと、サイクルGAN(Generative Adversarial Networks)を用いて構築された、第1ドメインの複数の部品の画像から第2ドメインの構造体の画像を生成する学習済み生成器に、前記支援対象画像を与えて前記構造体の画像を生成させる生成ステップと、生成された前記構造体の画像を含む組立支援情報を提示する提示ステップとを備える。
【0012】
また、本発明に係る組立支援方法において、さらに、前記サイクルGANを用いて、前記第1ドメインの前記複数の部品の画像から前記第2ドメインの前記構造体の画像を生成する生成器を学習する学習ステップを備え、前記学習ステップは、前記複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を前記第1ドメインの前記複数の部品の画像の訓練データとして用いてもよい。
【0013】
また、本発明に係る組立支援方法において、さらに、前記生成ステップで生成された前記構造体の画像に含まれる、前記構造体を識別する識別情報を特定する特定ステップと、特定された前記識別情報に基づいて、識別情報と組立て手順とが関連付けて記憶された記憶部から、前記構造体の組立て手順を取得する第2取得ステップと、を備え、前記提示ステップは、取得された前記構造体の前記組立て手順と、前記構造体の画像とを含む前記組立支援情報を提示してもよい。
【発明の効果】
【0014】
本発明によれば、サイクルGANを用いて構築された、第1ドメインの複数の部品の画像から第2ドメインの構造体の画像を生成する学習済み生成器に、支援対象画像を与えて構造体の画像を生成させる。そのため、組立品の情報がユーザに入手可能でない場合にも、ユーザの組立て作業を支援することができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、本発明の実施の形態に係る組立支援装置を含む組立支援システムの構成を示すブロック図である。
【
図2】
図2は、本実施の形態に係る組立支援装置が備える学習部の構成を示すブロック図である。
【
図3】
図3は、本実施の形態に係る組立支援装置が備える学習部の構成を説明するための図である。
【
図4】
図4は、本実施の形態に係る組立支援装置が備える学習部の構成を説明するための図である。
【
図5】
図5は、本実施の形態に係る組立支援装置のハードウェア構成を示すブロック図である。
【
図6】
図6は、本実施の形態に係る組立支援システムの動作の概要を示すシーケンス図である。
【
図7】
図7は、本実施の形態に係る組立支援装置による学習処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の好適な実施の形態について、
図1から
図7を参照して詳細に説明する。
【0017】
[組立支援システムの構成]
まず、本発明の実施の形態に係る組立支援装置1を備える組立支援システムの概要について説明する。以下において、構造体とは、複数の部品が組み立てられて完成品となった状態の組立品をいう。また、以下においては、完成品である構造体の画像がユーザに入手可能でないものとする。
【0018】
図1は、本発明の実施の形態に係る組立支援装置1を備える組立支援システムの構成を示すブロック図である。本実施の形態に係る組立支援システムは、組立支援装置1、ユーザ端末2、およびサーバ3を備える。組立支援装置1と、サーバ3およびユーザ端末2とは、LANやWANなどのネットワークNWを介して互いに通信可能に接続されている。組立支援システムは、複数の部品を組み立てて形成する構造体の組立てを支援する。
【0019】
[ユーザ端末の構成]
ユーザ端末2は、プロセッサ20、主記憶装置21、通信インターフェース22、補助記憶装置23を備えるコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。また、ユーザ端末2は、表示装置24およびカメラ25を備える。ユーザ端末2は、さらに、図示されないスピーカを備えることができる。
【0020】
ユーザ端末2は、スマートホンなどの携帯通信端末、タブレット型コンピュータ、ラップトップ型コンピュータなどとして実現されることができる。組立支援を要求するユーザは、ユーザ端末2のカメラ25を用いて、複数の部品を任意の配置および撮影角度で撮影した部品の画像I1を支援対象画像として撮影する。部品の画像I1は、組立て前の組立品に含まれる全ての部品がユーザによって任意に配置され、かつ、任意の撮影角度で撮影された画像である。
図1に示す部品の画像I1の例では、テーブルを構成する天板と、複数の脚とがばらばらに配置され、ユーザ端末2のカメラ25によりハイアングルで撮影されている。
【0021】
表示装置24は、液晶や有機ELディスプレイを有する。また、表示装置24は、ユーザの入力操作を受け付けるタッチパネルとして機能することができる。表示装置24は、ユーザがカメラ25で撮影した部品の画像I1を表示し、また、組立支援装置1から受信した、複数の部品が組み立てられた構造体の画像I2を表示する。
【0022】
カメラ25は、デジタルカメラで構成され、組立支援対象の部品の画像I1の各画素の色をRGBで表すカラー画像として撮影することができる。カメラ25は、例えば、1000万画素など一定の画素数および解像度を有する。本実施の形態では、カメラ25で撮影された部品の画像I1は、プロセッサ20によって部品以外の画像が存在しない画像とするように、例えば、背景を削除あるいは白とする画像処理が行われる。
【0023】
[サーバの構成]
サーバ3は、第3記憶部30を備える。第3記憶部30は、事前に収集された、組立支援の対象となっている組立品の品番や型番など、組立品の種類を特定する識別情報と、組立て説明書のデータとを関連付けて記憶する。また、第3記憶部30は、組立て説明書のデータに加え、組立て説明書に含まれる組立て手順を音声に変換した音声ガイダンスを記憶することができる。サーバ3は、組立支援装置1からの要求に応じて、組立支援の対象となっている品番や型番に係る組立品の組立て説明書のデータを組立支援装置1に送出する。
【0024】
[組立支援装置の機能ブロック]
図1に示すように、組立支援装置1は、第1取得部10、学習部11、生成部12、第1記憶部13、特定部14、第2記憶部15、第2取得部16、および提示部17を備える。組立支援装置1は、サイクルGANによって事前に構築された学習済み生成器G1’によって、ユーザ端末2から送信された部品の画像I1から部品が組み立てられた構造体の画像I2を生成し、構造体の画像I2を含む組立支援情報を提示する。
【0025】
第1取得部10は、組み立てられる前の複数の部品を任意の配置および撮影角度で撮影した部品の画像I1を支援対象画像として取得する。第1取得部10は、ユーザ端末2から送信された部品の画像I1を、ネットワークNWを介して取得する。第1取得部10は、取得した部品の画像I1に対してノイズの除去や、サイズや解像度の変換などの前処理を行う。
【0026】
学習部11は、
図2に示すように、2つの生成器G1、G2、および2つの識別器D1、D2を有するサイクルGANの学習を行う。サイクルGANは、GAN(Generative Adversarrial Network:敵対的生成ネットワーク)の一種であり、異なるドメイン間で画像変換を行うことができる生成モデルである(非特許文献1参照)。
【0027】
GANが1つの生成器と1つの識別器とを備えるモデルであるのに対し、サイクルGANは、2つの生成器G1、G2、および2つの識別器D1、D2で構成され、1つのドメインに対して1つの生成器と1つの識別器とで構成される。すなわち、第1ドメインに対して、生成器G1と識別器D2とが設けられ、第2ドメインに対しては、生成器G2と識別器D1とが設けられる。
【0028】
学習部11は、サイクルGANを用いて、第1ドメインの部品の画像I1から第2ドメインの構造体の画像I2を生成する生成器G1を学習する。ドメインとは、ある特定の特徴を有するデータの集合をいう。構造体が分解された状態の部品の画像I1と、完成品の状態の構造体の画像I2とは異なる特徴を有し、画素ごとの対応関係がない異なるドメインの画像である。
【0029】
サイクルGANは、第1ドメインの部品の画像I1から第2ドメインの構造体の画像I2への変換を行う生成器G1と、生成器G1によって変換された構造体の画像I2の真偽を判定する識別器D1との組、および第2ドメインの構造体の画像I2を第1ドメインの部品の画像I1に逆変換する生成器G2と、逆変換された部品の画像I1の真偽を判定する識別器D2との組を備える。このように、サイクルGANは、第1ドメインと第2ドメインとの関係を学習するために2組の生成器G1、G2と識別器D1、D2とを使った変換と逆変換の循環構造を有する。
【0030】
図3および
図4は、学習部11が用いるサイクルGANの生成器G1、G2および識別器D1、D2のニューラルネットワーク構成を模式的に表した図である。生成器G1、G2は、入力層、隠れ層、および出力層を有するニューラルネットワークで構成される。生成器G1、G2を構成するニューラルネットワークとしてCNNやResNetを用いることができる。
【0031】
図3は、生成器G1のニューラルネットワーク構成を模式的に表した図である。
図3に示すように、生成器G1の入力ノードには、第1ドメインの部品の画像I1を構成する各画素の値が入力される。生成器G1の入力ノードには、部品の画像I1を構成する各画素の値(x
1~x
n)が入力される。生成器G1は、入力と重みパラメータの積和演算および活性化関数によるしきい値処理を経て出力データG1(x
1)~G1(x
n)を出力する。生成器G1からの出力データは、第1ドメインの部品の画像I1から変換された第2ドメインの構造体の画像I2である。生成器G2についても同様に、第2ドメインの構造体の画像I2を構成する各画素の値が入力され、入力と重みパラメータの積和演算および活性化関数によるしきい値処理を経て第1ドメインの出力データが得られる。
【0032】
一方、識別器D1、D2についても同様に、入力層、隠れ層、および出力層を有するニューラルネットワークで構成される。識別器D1、D2を構成するニューラルネットワークとしてCNNを用いることができる。
図4は、識別器D1のニューラルネットワーク構成を模式的に表した図である。識別器D1の入力ノードには、構造体の画像I2を構成する各画素の値が与えられる。
図4の例では、生成器G1からの出力データG1(x
1)~G1(x
n)が識別器D1の入力ノードに与えられている。出力データG1(x
1)~G1(x
n)は、生成器G1で生成された構造体の画像I2を構成する各画素の値である。
【0033】
識別器D1は、入力と重みパラメータの積和演算および活性化関数によるしきい値処理を経て、1または0の二値出力を出す。出力値1は、構造体の画像I2が本物画像であるとの判別結果を示し、出力値0は、入力された構造体の画像I2が疑似画像であるとの判別結果を示す。
【0034】
第1ドメインの識別器D2についても同様に、第1ドメインの部品の画像I1を構成する各画素の値が入力ノードに入力され、ニューラルネットワークの演算結果として1または0を出力する。出力値1は、入力された部品の画像I1が本物画像であるとの判別結果を示し、出力値0は、入力された部品の画像I1が疑似画像であるとの判別結果を示す。
【0035】
ここで、学習部11は、サイクルGANを用いて第1ドメインと第2ドメインとの関係を学習するために、敵対的損失とサイクル一貫性損失とを組み合わせた目的関数を導入する。第1ドメインから第2ドメインへの画像の変換、および第2ドメインから第1ドメインへの画像の逆変換の学習においては、通常のGANと同様に敵対的損失が用いられる。この敵対的損失に加え、学習部11は、第1ドメインから第2ドメインへの画像変換を行う生成器G1と、第2ドメインから第1ドメインへの逆変換を行う生成器G2とが、変換と逆変換を繰り返す循環で一貫性を保つ関係を学習するためのサイクル一貫性損失を目的関数に反映させる。
【0036】
以下、学習部11が用いる敵対的損失について、第2ドメインから第1ドメインへの画像変換を行う生成器G2および変換画像の真偽を判定する識別器D2で構成されるネットワークを例に挙げて説明する。まずここでは、第1ドメインの部品の画像I1の本物画像のデータをx、識別器D2による出力である予測値はyと表し、正解ラベルをtと表す。正解ラベルtは、第1ドメインの部品の画像I1の本物画像に対して1、生成器G2で生成された部品の画像I1の疑似画像に対して0と設定される。このとき、識別器D2は、二値分類問題として次式(1)の交差エントロピーECEで表すことができる。
【0037】
【0038】
上式(1)のブレース内の第1項が表すtnlnynにおいて、識別器D2の予測値ynが、部品の画像I1の本物画像の正解ラベルtn=1の値に近づくことが望ましい。一方、ブレース内の第2項が表す(1-tn)ln(1-yn)においては、識別器D2の予測値ynが、疑似画像と識別する正解ラベルの値(1-tn)=0に近づくことが望ましい。このように交差エントロピーECEは、予測値が正解ラベルの値に一致している場合に最大値となる。
【0039】
ここで、サイクルGANを構成する生成器G1、G2(以下、これらを総称して「生成器G」という。)は、パラメータw
G,θ
Gを有し、関数G(w
G,θ
G)と表す。また、識別器D1、D2(以下、これらを総称して「識別器D」という。)は、パラメータw
D,θ
Dを有し、関数D(w
D,θ
D)と表す。上式(1)の交差エントロピーE
CEに基づいた生成器Gと識別器Dとを備えるモデルの敵対的損失L
GANは、次式(2)で表すことができる。
【数2】
【0040】
上式(2)の第1項が表すED(x)=1lnD(wD,θD)は、識別器Dが本物画像を本物であると識別する期待値である。上式(2)の第2項が表すED(x)=0ln(1-D(G(wG,θG),wD,θD))は、生成器Gにより生成された疑似画像を識別器Dが疑似画像であると識別する期待値である。サイクルGANの敵対的学習では、生成器Gと識別器Dとの各組の敵対的損失LGANのmin-max最適化により、生成器Gと識別器Dとを敵対的に学習する。したがって、識別器Dをだますような疑似画像を生成できるように生成器Gを学習し、生成器Gが生成した疑似画像を疑似画像であると識別するように識別器Dを学習する。
【0041】
識別器Dの敵対的学習では、本物画像が与えられた場合に、識別器Dがy=1に近い出力を出すことで、上式(2)の敵対的損失LGANの第1項を最大化する。一方、疑似画像が与えられた場合に、識別器Dがy=0に近い出力を出すことで敵対的損失LGANの第2項を最大化するように学習が行われる。
【0042】
生成器Gの敵対的学習では、上式(2)のD(G(wG,θG),wD,θD)が1に近くなるようなG(wG,θG)を出力することで、敵対的損失LGANを最小化する。学習部11は、生成器Gのパラメータと識別器Dのパラメータとを交互に更新する学習手順を用いる。
【0043】
ここで、
図2に示すように、生成器G1(w
G1,θ
G1)に部品の画像I1の本物画像xが入力され、変換された出力をG1(x)、生成器G2(w
G2,θ
G2)に構造体の画像I2の本物画像yが入力され、変換された出力をG2(y)と表す。また、識別器D1(w
D1,θ
D1)に構造体の画像I2の本物画像yが入力された場合の真偽判定の出力をD1(y)と表す。
【0044】
さらに、識別器D1(wD1,θD1)に、生成器G1(wG1,θG1)で生成された構造体の画像I2の疑似画像である出力G1(x)が入力された場合の真偽判定の出力をD1(G1(x))と表す。また、識別器D2(wD2,θD2)に部品の画像I1の本物画像xが入力された場合の真偽判定の出力をD2(x)、識別器D2(wD2,θD2)に、生成器G2(wG2,θG2)で生成された部品の画像I1の疑似画像である出力G2(y)が入力された場合の真偽判定の出力をD2(G2(y))と表す。
【0045】
これらの定義から、上式(2)の敵対的損失LGANは、次式(3)の敵対的損失LGAN1、および次式(4)の敵対的損失LGAN2で表される。
【0046】
【0047】
上式(3)により、第1ドメインの部品の画像I1を生成器G1で第2ドメインの構造体の画像I2に変換し、識別器D1で変換された構造体の画像I2の真偽を判定するネットワークの敵対的損失LGAN1が算出される。また、上式(4)により、第2ドメインの構造体の画像I2を生成器G2で第1ドメインの部品の画像I1に変換し、識別器D2で変換された部品の画像I1の真偽を判定するネットワークの敵対的損失LGAN2が算出される。
【0048】
学習部11は、生成器G1と識別器D1とに係るネットワークの上式(3)の敵対的損失LGAN1、および生成器G2と識別器D2とに係るネットワークの上式(4)の敵対的損失LGAN2をそれぞれ最適化する。
【0049】
学習部11は、さらに、次式(5)で表されるサイクル一貫性損失Lcycを用いて、入力画像を生成器Gで変換し、さらに変換された画像を他方の生成器Gで逆変換して元の画像を再構成し、変換前の入力画像と一致するように学習する。
【0050】
【0051】
上式(5)のサイクル一貫性損失Lcycは、ノルムL1を用いた期待値の形で表され、生成器Gで変換された画像を他方の生成器Gで逆変換して復元した画像と、元の入力画像とを画素ごとに比較することで損失を算出する。上式(5)の第1項は、部品の画像I1の本物画像xを入力画像として生成器G1、G2の順に変換をかけて部品の画像I1に戻ってくるかどうかを、変換後の出力G2(G1(x))とxの絶対値とを基準として評価する。この第1項の損失をサイクル一貫性損失Lcyc1という。第2項は、構造体の画像I2の本物画像yを入力画像として生成器G2、G1の順に変換をかけて、構造体の画像I2に戻ってくるかどうかを変換後の出力G1(G2(y))とyの絶対値とを基準として評価する。第2項の損失をサイクル一貫性損失Lcyc2という。
【0052】
学習部11は、上式(3)(4)の敵対的損失L
GAN1、L
GAN2と、上式(5)のサイクル一貫性損失L
cycとを組み合わせることで、次式(6)で表されるサイクルGANの最終的な目的関数Lを設定する。
【数5】
上式(6)の目的関数Lのmin-max最適化により、生成器G1、G2、および識別器D1、D2を学習する。学習部11による学習処理により、第1ドメインの部品の画像I1から第2ドメインの構造体の画像I2に変換する学習済み生成器G1’が構築される。
【0053】
図1に戻り、生成部12は、サイクルGANを用いて構築された、第1ドメインの複数の部品の画像I1から、第2ドメインの構造体の画像I2を生成する学習済み生成器G1’を備え、学習済み生成器G1’に、支援対象画像である部品の画像I1を与えて構造体の画像I2を生成させる。
【0054】
第1記憶部13は、学習済み生成器G1’を記憶する。また、第1記憶部13は、サイクルGANを構成する学習前の生成器G1、G2、および識別器D1、D2を記憶することができる。
【0055】
特定部14は、生成部12によって生成された構造体の画像I2に含まれる構造体を識別する識別情報を特定する。より具体的には、特定部14は、第1取得部10が取得した、部品の画像I1あるいは構造体の画像I2に含まれる組立品の型番などの文字列を抽出し、文字データに変換することができる。さらに特定部14は、文字データに基づいて、第2記憶部15に記憶されている型番の情報を参照して、部品および構造体に係る組立品の型番や品番、製造元などの識別情報を特定することができる。
【0056】
あるいは、特定部14は、生成部12によって生成された構造体の画像I2に基づいて、画像分類または物体検出により、組立品の型番を含む識別情報を分別することができる。この場合、特定部14は、学習部11が訓練データとして用いた構造体の画像I2と、組立品の型番を含む識別情報を正解ラベルとした教師データを用いて、事前に機械学習モデルを学習することができる。特定部14は、学習済みの機械学習モデルにより構造体の画像I2から識別情報を特定することができる。
【0057】
第2記憶部15は、組立品の型番や製造元など、部品および構造体に対応する組立品の識別情報を記憶する。
【0058】
第2取得部16は、特定部14によって特定された構造体の識別情報に基づいて、識別情報と組立て手順とが関連付けられて記憶された第3記憶部30(記憶部)から、構造体の組立て手順を取得する。より具体的には、第2取得部16は、構造体に係る組立品の型番を含む識別情報に基づいて、構造体の組立て説明書のデータを、ネットワークNWを介して外部のサーバ3から取得する。第2取得部16が取得する組立て手順に係る情報は、テキスト情報や音声などが含まれる。
【0059】
提示部17は、生成部12によって生成された構造体の画像I2を含む組立支援情報を提示する。さらに、提示部17は、第2取得部16によって取得された構造体の組立て手順と、構造体の画像I2とを含む組立支援情報を提示することができる。提示部17は、ネットワークNWを介して、組立支援情報をユーザ端末2に送信する。
【0060】
[組立支援装置のハードウェア構成]
次に、上述した機能を有する組立支援装置1を実現するハードウェア構成の一例について、
図5を用いて説明する。
【0061】
図5に示すように、組立支援装置1は、例えば、バス101を介して接続されるプロセッサ102、主記憶装置103、通信インターフェース104、補助記憶装置105、入出力I/O106を備えるコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。また、組立支援装置1は、バス101を介して接続される表示装置107を備えることができる。
【0062】
主記憶装置103には、プロセッサ102が各種制御や演算を行うためのプログラムが予め格納されている。プロセッサ102と主記憶装置103とによって、
図1に示した第1取得部10、学習部11、生成部12、特定部14、第2取得部16、提示部17など組立支援装置1の各機能が実現される。
【0063】
通信インターフェース104は、組立支援装置1と各種外部電子機器との間をネットワーク接続するためのインターフェース回路である。
【0064】
補助記憶装置105は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータなどの各種情報を読み書きするための駆動装置とで構成されている。補助記憶装置105には、記憶媒体としてハードディスクやフラッシュメモリなどの半導体メモリを使用することができる。
【0065】
補助記憶装置105は、組立支援装置1が実行するサイクルGANの学習プログラムおよび組立支援プログラムを格納するプログラム格納領域を有する。補助記憶装置105によって、
図1で説明した第1記憶部13、および第2記憶部15が実現される。さらには、例えば、上述したデータやプログラムなどをバックアップするためのバックアップ領域などを有していてもよい。
【0066】
入出力I/O106は、外部機器からの信号を入力したり、外部機器へ信号を出力したりする入出力装置である。
【0067】
表示装置107は、有機ELディスプレイや液晶ディスプレイなどによって構成される。表示装置107によって、提示部17を実現することも可能である。
【0068】
[組立支援装置の動作]
次に、上述した構成を有する組立支援装置1の動作を、
図6のシーケンス図および
図7のフローチャートを参照して説明する。
【0069】
図6は、組立支援装置1を備える組立支援システムの動作の概要を示す動作シーケンスである。まず、組立支援装置1の学習部11は、サイクルGANを用いて、第1ドメインの複数の部品の画像I1から第2ドメインの構造体の画像I2を生成する生成器G1を学習する(ステップS1)。ステップS1での学習処理の詳細は後述する。
【0070】
その後、組立支援を要求するユーザは、ユーザ端末2のカメラ25を用いて、組立品が分解された状態の複数の部品を任意の配置および撮影角度で撮影する(ステップS2)。ユーザ端末2は、撮影された部品の画像I1を支援対象画像として、ネットワークNWを介して組立支援装置1に送信する。
【0071】
ユーザ端末2はステップS2において、部品の画像I1とともに、組立支援を要求する組立品に関する情報を送信することができる。例えば、ユーザ端末2は、組立品の製造メーカや購入年などの情報の入力操作を受け付けて、これらの情報を部品の画像I1とともに組立支援装置1に送信することができる。その他にも、ユーザ端末2は、支援対象の組立品の属性を、部品の画像I1とともに送信することができる。組立品の属性とは、家具や自転車などのカテゴリーや、家具のうち棚、テーブルなどのさらに詳細なカテゴリーである。組立品に関する情報は、後述のステップS5において用いられる。
【0072】
次に、組立支援装置1の第1取得部10は、ユーザ端末2から部品の画像I1を取得する(ステップS3)。第1取得部10は、ステップS3において、取得した部品の画像I1に対するノイズの除去や、サイズや解像度の変換などの前処理を行う。
【0073】
次に、組立支援装置1の生成部12は、ステップS1の学習処理で事前に構築された学習済み生成器G1’に、支援対象画像である部品の画像I1を与えて構造体の画像I2を生成させる(ステップS4)。
【0074】
次に、特定部14は、ステップS3で生成された構造体の画像I2に含まれる構造体を識別する識別情報を特定する(ステップS5)。特定部14は、ステップS3で取得された部品の画像I1あるいは構造体の画像I2に含まれる組立品の型番などの文字列を抽出し、文字データに変換し、第2記憶部15に記憶されている型番の情報を参照して、部品および構造体に係る組立品の型番や製造元などの識別情報を特定することができる。また、特定部14は、ステップS2で送信された組立品に関する情報を利用して、識別情報を特定することができる。
【0075】
次に、第2取得部16は、ステップS5で特定された構造体の識別情報に基づいて、識別情報と組立て手順とが関連付けられて記憶された第3記憶部30を備えるサーバ3から、構造体の組立て手順を取得する(ステップS6)。ステップS6で取得される組立て手順に係る情報は、テキスト情報や音声などが含まれる。
【0076】
続いて提示部17は、ステップS6で取得された構造体の組立て手順と、ステップS4で生成された構造体の画像I2とを含む組立支援情報をユーザ端末2に提示する(ステップS7)。その後、組立支援情報を受信したユーザ端末2は、表示装置24に構造体の画像I2および組立て手順を表示させる(ステップS8)。組立支援を要求したユーザは、ユーザ端末2に画面表示された構造体の画像I2および組立て手順を参照し、部品から完成品である構造体を組み立てることができる。
【0077】
次に、
図7のフローチャートおよび
図2の学習部11のブロック図を参照して、組立支援装置1による学習処理を説明する。
【0078】
まず、学習部11は、訓練データを用意する(ステップS100)。部品の画像I1の本物画像x
real、および構造体の画像I2の本物画像y
realが訓練データとして用いられる。本実施の形態では、複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を訓練データとして用いる。また、構造体が異なる撮影角度で撮影された複数の画像を訓練データとして用いる。これらの訓練データは、
図2の「入力x」および「入力y」にそれぞれ設定される。
【0079】
次に、学習部11は、サイクルGANを構成する2つの識別器D1、D2にそれぞれ訓練データを入力して本物画像を学習させ、識別器D1のパラメータwD1,θD1、および識別器D2のパラメータwD2,θD2をそれぞれ更新する(ステップS101)。ステップS101において、異なる角度で撮影された構造体の複数の本物画像yrealを識別器D1に入力し、上式(1)の公差エントロピー誤差が最小となるよう誤差逆伝搬法などを用いてパラメータwD1,θD1を更新する。識別器D2についても同様に、異なる配置および撮影角度で撮影された複数の部品についての複数の本物画像xrealを入力として与え、上式(1)の公差エントロピー誤差が最小となるよう誤差逆伝搬法などを用いてパラメータwD2,θD2を更新する。
【0080】
次に、学習部11は、生成器G1と識別器D1との組のネットワークの敵対的学習、および生成器G2と識別器D2との組のネットワークの敵対的学習を以下のステップで行う。
【0081】
まず、学習部11は、上式(3)の敵対的損失L
GAN1を用いて識別器D1の学習を行う(ステップS102)。より詳細には、学習部11は、
図2に示すように、識別器D1に構造体の画像I2の本物画像y
realを入力として与え、上式(3)の敵対的損失L
GAN1の勾配dL
GAN1/dw
D1,dL
GAN1/dθ
D1を算出し、誤差逆伝搬法などにより敵対的損失L
GAN1が最大となるようにパラメータw
D1,θ
D1を更新する。さらに、学習部11は、識別器D1に、生成器G1によって生成された構造体の画像I2の疑似画像y
fakeを入力として与え、同様に敵対的損失L
GAN1が最大となるようにパラメータw
D1,θ
D1を更新する。なお、識別器D1の学習は、生成器G1のパラメータw
G1,θ
G1を固定して行われる。
【0082】
次に、学習部11は、上式(3)の敵対的損失L
GAN1を用いて生成器G1の学習を行う(ステップS103)。より詳細には、学習部11は、
図2に示すように、生成器G1に部品の画像I1の本物画像x
realを入力として与え、上式(3)の敵対的損失L
GAN1の勾配-dL
GAN1/dw
G1,-dL
GAN1/dθ
G1を算出し、誤差逆伝搬法などにより敵対的損失L
GAN1が最小となるようにパラメータw
G1,θ
G1を更新する。なお、生成器G1の学習は、識別器D1のパラメータw
D1,θ
D1を固定して行われる。
【0083】
次に、学習部11は、上式(4)の敵対的損失L
GAN2を用いて識別器D2の学習を行う(ステップS104)。より詳細には、
図2に示すように、学習部11は、識別器D2に部品の画像I1の本物画像x
realを入力として与え、上式(4)の敵対的損失L
GAN2の勾配dL
GAN2/dw
D2,dL
GAN2/dθ
D2を算出し、誤差逆伝搬法などにより敵対的損失L
GAN2が最大となるようにパラメータw
D2,θ
D2を更新する。さらに、学習部11は、識別器D2に、生成器G2によって生成された部品の画像I1の疑似画像y
fakeを入力として与え、同様に敵対的損失L
GAN2が最大となるようにパラメータw
D2,θ
D2を更新する。なお、識別器D2の学習は、生成器G2のパラメータw
G2,θ
G2を固定して行われる。
【0084】
次に、学習部11は、上式(4)の敵対的損失L
GAN2を用いて生成器G2の学習を行う(ステップS105)。より詳細には、学習部11は、
図2に示すように、生成器G2に構造体の画像I2の本物画像y
realを入力として与え、上式(4)の敵対的損失L
GAN2の勾配-dL
GAN2/dw
G2,-dL
GAN2/dθ
G2を算出し、誤差逆伝搬法などにより敵対的損失L
GAN2が最小となるようにパラメータw
G2,θ
G2を更新する。なお、生成器G2の学習は、識別器D2のパラメータw
D2,θ
D2を固定して行われる。学習部11は、ステップS104およびステップS105の学習を行って敵対的損失L
GAN2を求める。
【0085】
次に、学習部11は、上式(5)のサイクル一貫性損失Lcycを以下のステップで求める。まず、学習部11は、部品の画像I1の本物画像xrealと、再構成された部品の画像I1の疑似画像G2(G1(x))とのサイクル一貫性損失Lcyc1を算出し、生成器G1、G2を学習する(ステップS106)。
【0086】
より詳細には、学習部11は、
図2に示すように、部品の画像I1の本物画像x
realを生成器G1に与え、生成された構造体の画像I2の疑似画像G1(x)をさらに生成器G2に入力として与える。生成器G2によってさらに再構成された部品の画像I1の疑似画像G2(G1(x))と、部品の画像I1の本物画像x
realとのサイクル一貫性損失L
cyc1を上式(5)により算出する。学習部11は、元の画像である本物画像x
realと再構成された疑似画像G2(G1(x))との画素毎の比較を行い、互いの距離L
1を最小とすることで、サイクル一貫性損失L
cyc1を最小化する。
【0087】
次に、学習部11は、構造体の画像I2の本物画像y
realと、再構成された構造体の画像I2の疑似画像G1(G2(y))とのサイクル一貫性損失L
cyc2を算出し、生成器G1、G2を学習する(ステップS107)。より詳細には、学習部11は、
図2に示すように、構造体の画像I2の本物画像y
realを生成器G2に与え、生成された部品の画像I1の疑似画像G2(y)をさらに生成器G1に入力として与える。生成器G1によってさらに再構成された構造体の画像I2の疑似画像G1(G2(y))と、構造体の画像I2の本物画像y
realとのサイクル一貫性損失L
cyc2を上式(5)により算出する。学習部11は、元の画像である本物画像y
realと再構成された疑似画像G1(G2(y))との画素毎の比較を行い、互いの距離L
1を最小とすることで、サイクル一貫性損失L
cyc2を最小化する。
【0088】
次に、学習部11は、ステップS102からステップS107で求められた敵対的損失LGAN1、LGAN2、およびサイクル一貫性損失Lcycから、上式(6)の目的関数Lを設定し、目的関数Lが収束するまでステップS102からステップS107までの処理を繰り返す(ステップS108:NO)。学習部11は、目的関数Lが収束した際の生成器G1を学習済み生成器G1’として第1記憶部13に記憶する(ステップS109)。以上の学習処理によって、第1ドメインの部品の画像I1を第2ドメインの構造体の画像I2に変換する学習済み生成器G1’が構築される。
【0089】
以上説明したように、本実施の形態に係る組立支援装置1によれば、サイクルGANを用いて第1ドメインの部品の画像I1を第2ドメインの構造体の画像I2に変換する生成器G1を構築するので、組立品の情報、特に構造体の画像I2がユーザに入手可能でない場合であっても、ユーザの組立て作業を支援することができる。
【0090】
また、本実施の形態に係る組立支援装置1によれば、学習済み生成器G1’で生成された構造体の画像I2に加え、構造体に係る組立品の組立て手順の情報を組立支援情報としてユーザに提示する。そのため、ユーザは、完成された状態の構造体の画像I2および組立て手順を参照して組立作業を行うことができ、ユーザの組立て作業にともなう労力を低減することができる。
【0091】
また、本実施の形態に係る組立支援装置1によれば、複数の部品が異なる配置および異なる撮影角度で撮影された複数の画像を第1ドメインの複数の部品の画像I1の訓練データとして用いるため、ユーザが複数の部品を任意に配置し、任意の撮影角度で撮影した部品の画像I1から構造体の画像I2を生成することができる。
【0092】
なお、上述した実施の形態では、学習部11は、敵対的損失LGAN、およびサイクル一貫性損失Lcycを組み合わせた目的関数Lを設定する場合について説明した。しかし、学習部11は、敵対的損失LGAN、およびサイクル一貫性損失Lcycに加え、同一性損失を有する目的関数Lを設定してもよい。同一性損失とは、例えば、生成器Gへの入力画像と、生成器Gで生成された疑似画像とが一致するように画素毎の損失を計算するものである。同一性損失をさらに導入することで、入力される部品の画像I1において必要な箇所のみを変換するように生成器G1が学習されることになる。
【0093】
また、上述した実施の形態では、組立支援装置1は、ユーザ端末2からネットワークNWを介して直接的に部品の画像I1を取得する場合について説明した。しかし、組立支援装置1は、外部の装置から支援対象画像の部品の画像I1を取得する構成としてもよい。この場合、ユーザ端末2は、外部の装置に組立支援要求を部品の画像I1と共に送信する。例えば、サーバ3がユーザ端末2からの組立支援要求を受け付ける構成としてもよい。
【0094】
また、上述した実施の形態では、組立支援装置1は、ユーザ端末2に対して、ネットワークNWを介して直接的に組立支援情報を提示する場合について説明した。しかし、組立支援装置1は、外部の装置を介してユーザ端末2に組立支援情報を提示する構成としてもよい。例えば、サーバ3を介して組立支援情報をユーザ端末2に送信する構成としてもよい。
【0095】
また、上述した実施の形態では、組立支援装置1とサーバ3とは互いに独立した構成として説明した。しかし、組立支援装置1は、サーバ3が備える第3記憶部30を備える構成を採用してもよい。
【0096】
また、上述した実施の形態では、組立支援装置1が組立支援の対象とする組立品の数については、説明の容易のため1つである場合について説明した。しかし、組立品の数は複数の場合が含まれる。したがって、学習部11は、組立品ごとにサイクルGANを学習して学習済み生成器G1’を構築することができる。この場合、生成部12は、ユーザ端末2から送信された支援対象画像である部品の画像I1を複数の生成器G1’に与えて生成された画像のうち、正確に生成された構造体の画像I2を採用する構成とすることができる。
【0097】
以上、本発明の組立支援装置および組立支援方法における実施の形態について説明したが、本発明は説明した実施の形態に限定されるものではなく、請求項に記載した発明の範囲において当業者が想定し得る各種の変形を行うことが可能である。
【符号の説明】
【0098】
1…組立支援装置、10…第1取得部、11…学習部、12…生成部、13…第1記憶部、14…特定部、15…第2記憶部、16…第2取得部、17…提示部、2…ユーザ端末、25…カメラ、3…サーバ、30…第3記憶部、101…バス、20、102…プロセッサ、21、103…主記憶装置、22、104…通信インターフェース、23、105…補助記憶装置、106…入出力I/O、24、107…表示装置、G、G1、G2…生成器、D、D1、D2…識別器、G1’…学習済み生成器、NW…ネットワーク。
【要約】
【課題】組立品の情報がユーザに入手可能でない場合にも、ユーザの組立て作業を支援することを目的とする。
【解決手段】
組立支援装置1は、組み立てられる前の複数の部品を任意の配置および撮影角度で撮影した支援対象画像の部品の画像I1を取得する第1取得部10と、サイクルGAN(Generative Adversarial Networks)を用いて構築された、第1ドメインの複数の部品の画像I1から第2ドメインの構造体の画像I2を生成する学習済み生成器G1’を備え、学習済み生成器G1’に、支援対象画像の部品の画像I1を与えて構造体の画像I2を生成させる生成部12と、生成された構造体の画像I2を含む組立支援情報を提示する提示部17とを備える。
【選択図】
図1