(第1の実施形態)
以下に、第1の実施形態について、図1乃至図11を参照して説明する。なお、本明細書においては基本的に、鉛直上方を上方向、鉛直下方を下方向と定義する。また、本明細書において、実施形態に係る構成要素及び当該要素の説明が、複数の表現で記載されることがある。構成要素及びその説明は、一例であり、本明細書の表現によって限定されない。構成要素は、本明細書におけるものとは異なる名称で特定され得る。また、構成要素は、本明細書の表現とは異なる表現によって説明され得る。
図1は、第1の実施形態に係る積層造形システム1を模式的に示す例示的な斜視図である。積層造形システム1は、積層造形監視システムとも称され得る。積層造形システム1は、いわゆるレーザーマテリアルデポジション方式の三次元プリンタを含むシステムである。なお、積層造形システム1はこの例に限らない。
各図面に示されるように、本明細書において、X軸、Y軸及びZ軸が定義される。X軸とY軸とZ軸とは、互いに直交する。Z軸は、例えば鉛直方向に延びる。X軸及びY軸は、例えば水平方向に延びる。なお、積層造形システム1は、Z軸が鉛直方向と斜めに交差するように配置されても良い。
図2は、第1の実施形態の積層造形システム1の一部及び造形物3を模式的に示す例示的な断面図である。積層造形システム1は、例えば、粉末状の材料Mを層状に積み重ねることにより、所定の形状の造形物3を積層造形(付加製造)する。造形物3は、積層造形される物体の一例である。
図1に示すように、積層造形システム1は、テーブル11と、造形部12と、撮像部13と、制御部14と、複数の信号線16とを有する。制御部14は、情報処理装置又はコンピュータとも称され得る。テーブル11、造形部12、撮像部13、及び制御部14は、例えば、積層造形システム1の筐体の内部、又は造形のための部屋の内部に設けられた、チャンバCに配置される。チャンバCは、例えば、密閉可能な空間である。
テーブル11は、支持面11aを有する。支持面11aは、略平坦に形成され、Z軸の正方向(Z軸の矢印が示す方向、上方向)に向く。支持面11aは、積層造形された造形物3や、造形物3の仕掛品や、材料Mを積層させるためのベースを支持する。以下の説明において、造形物3は、積層造形が完了した造形物3、造形物3の仕掛品、及びベースを含む。テーブル11は、当該テーブル11の少なくとも一部が回転することにより、支持面11aに支持された造形物3をZ軸に平行な回転中心まわりに回転させることが可能である。
テーブル11は、造形物3をX軸方向、Y軸方向、及びZ軸方向に移動させても良い。また、テーブル11は造形物3を、Y軸に平行な回転中心や、X軸に平行な回転中心まわりにさらに回転させても良い。
造形部12は、材料Mを供給し、支持面11a、又は支持面11aに支持されたベースの上に積み重ねる。材料Mは、例えば、粉末状のチタンである。なお、材料Mはこれに限られず、他の金属、合成樹脂、及びセラミックスのような他の材料であっても良い。積層造形システム1は、複数種類の材料Mにより、造形物3を積層造形しても良い。
造形部12は、ノズル21と、供給装置22と、移動装置23と、調整装置24とを有する。ノズル21は、テーブル11の支持面11a、又は支持面11aの上の造形物3に材料Mを吐出する。また、図2に示すように、エネルギー線Eが、ノズル21から、吐出された材料Mや支持面11aの上の造形物3に照射される。エネルギー線Eは、例えば、レーザ光である。
エネルギー線Eとしてのレーザ光が、材料Mの供給と並行してノズル21から照射される。ノズル21から、レーザ光に限らず、他のエネルギー線Eが照射されても良い。エネルギー線Eは、レーザ光のように材料Mを溶融又は焼結できるものであれば良く、例えば、電子ビームや、マイクロ波乃至紫外線領域の電磁波であっても良い。
造形部12は、ベースや吐出された材料Mをエネルギー線Eにより加熱し、溶融領域(ビード)3aを形成する。ノズル21は、溶融領域3aにおいて、材料Mにエネルギー線Eを照射して溶融又は焼結させ、材料Mを集合させる。このように、溶融領域3aは、供給された材料Mのみならず、エネルギー線Eを照射されたベースや造形物3の一部を含み得る。また、溶融領域3aは、完全に溶融した材料Mのみならず、部分的に溶融した材料M同士が結合したものであっても良い。
溶融領域3aが固化することで、ベースや造形物3の上に、層状又は薄膜状等の材料Mの集合としての層3bが形成される。なお、材料Mは、材料Mの集合への伝熱によって冷却されることにより、粒状で積層され、粒状の集合(層)となっても良い。
造形部12は、ノズル21から、材料Mの集合にエネルギー線Eを照射することで、アニール処理を行っても良い。材料Mの集合は、エネルギー線Eにより再溶融又は再焼結され、固化することにより層3bになる。
造形部12は、層3bを反復的に積み重ねることにより、造形物3を積層造形する。このように、造形部12のノズル21は、エネルギー線Eを照射して材料Mを溶融又は焼結させて層3bを造形し、層3bの造形を繰り返し行うことで、支持面11aに支持された造形物3を積層造形する。
ノズル21は、ノズルヘッド31を有する。ノズルヘッド31の先端31aは、間隔を介して造形物3に向く。ノズルヘッド31に、出射路32、吐出路33、及び供給路34が設けられる。出射路32、吐出路33、及び供給路34は、例えば、先端31aに開口する。
出射路32は、略円形の断面を有する孔である。エネルギー線Eが、出射路32を通り、ノズルヘッド31の外部に出射される。吐出路33は、略円環状の断面を有する孔であり、出射路32を囲むように設けられる。キャリアガス及び材料Mが、吐出路33を通り、ノズルヘッド31の外部に吐出される。供給路34は、略円環状の断面を有する孔であり、吐出路33を囲むように設けられる。シールドガスGが、供給路34を通り、ノズルヘッド31の外部に吐出される。シールドガスGは、例えば、窒素やアルゴンのような不活性ガスである。
図1に示すように、供給装置22は、光学装置41と、材料供給装置42と、ガス供給装置43とを有する。光学装置41は、例えば、光源及び光学系を有する。光源は、発振素子を有し、発振素子の発振によりエネルギー線Eとしてのレーザ光を出射する。光源は、出射されるエネルギー線Eの出力(パワー)を変更可能である。
光源は、出射されたエネルギー線Eを光学系に入射させる。エネルギー線Eは、光学系を経てノズル21に入る。光学系は、エネルギー線Eの焦点径を変更可能である。光学装置41は、ノズル21の出射路32にエネルギー線Eを供給し、出射路32からエネルギー線Eを出射させる。
ノズル21は、エネルギー線Eの照射によって、吐出された材料Mを加熱することにより、材料Mの層3bを形成するとともにアニール処理を行うことができる。また、ノズル21は、造形物3の不要な部位をエネルギー線Eの照射によって除去することができる。
材料供給装置42は、材料供給部42aと、タンク42bとを有する。タンク42bは、材料Mを収容する。材料供給装置42は、互いに異なる種類の材料Mを収容する複数のタンク42bを有しても良い。
材料供給部42aは、タンク42bの材料Mを、供給管21aを介してノズル21へ供給する。材料供給部42aは、例えば、キャリアガスにより材料Mをノズル21へ供給する。キャリアガスは、例えば、窒素やアルゴンのような不活性ガスである。
材料供給部42aは、供給管21aを介して、ノズルヘッド31の吐出路33にキャリアガスと材料Mとを供給する。これにより、ノズル21は、吐出路33からキャリアガス及び材料Mを吐出する。材料供給部42aは、単位時間あたりにノズル21から吐出される材料Mの量と、吐出される材料Mの速度と、を変更可能である。
材料供給部42aは、例えば、キャリアガスを収容するタンクと、当該タンクのキャリアガスを供給管21aへ流す圧縮機と、キャリアガスの流れにタンク42bの材料Mを供給する装置と、を有する。なお、材料供給部42aは、他の手段により材料Mをノズル21へ供給しても良い。
ガス供給装置43は、ガス供給部43aと、タンク43bとを有する。タンク43bは、シールドガスGを収容する。ガス供給部43aは、タンク43bのシールドガスGを、供給管21aを介してノズル21へ供給する。供給管21aは、キャリアガス及び材料Mが通る管、シールドガスGが通る管、及びエネルギー線Eが通るケーブルを包含している。ガス供給部43aは、単位時間あたりにノズル21から吐出されるシールドガスGの量と、吐出されるシールドガスGの速度と、を変更可能である。
移動装置23は、ノズル21を移動及び回動させる。例えば、移動装置23は、ノズル21を、X軸方向、Y軸方向、及びZ軸方向に平行移動させるとともに、X軸に平行な回転中心まわりに回転させることが可能である。
移動装置23は、ノズル21を支持面11aに対して相対的に移動させ、ノズル21の向きを変化させることが可能である。移動装置23は、支持面11aに対するノズル21の移動速度を変更可能である。なお、テーブル11が移動及び回動することで、ノズル21が支持面11aに対して相対的に移動し、支持面11aに対するノズル21の向きが変化しても良い。
調整装置24は、チャンバCの酸素濃度を調整する。例えば、調整装置24は、チャンバCの空気を排出したり、チャンバCに不活性ガスを供給したりすることで、ノズル21及び造形物3の周りの酸素濃度を調整する。
撮像部13は、撮像装置13aを有する。撮像装置13aは、例えば、動画を撮影可能であるとともに、当該動画を制御部14に転送可能なビデオカメラである。なお、撮像装置13aは、静止画を撮影可能なスチルカメラのような他の撮像装置であっても良い。撮像装置13aは、ノズル21及び造形物3を撮影する。撮像装置13aは、ノズル21に追従して移動可能であっても良い。
制御部14は、テーブル11、造形部12、及び撮像装置13aに、信号線16を介して電気的に接続される。制御部14は、例えば、造形部12と一体的に設けられた制御部であっても良いし、造形部12とは別に設けられたコンピュータであっても良い。
制御部14は、例えば、CPU(Central Processing Unit)14aのような制御装置と、ROM(Read Only Memorry)14bと、RAM(Random Access Memorry)14cと、外部記憶装置14dと、出力装置14eと、入力装置14fとを有し、通常のコンピュータを利用したハードウェア構成となっている。CPU14a、ROM14b、RAM14c、外部記憶装置14d、出力装置14e、及び入力装置14fは、バスにより、又はインターフェースを介して、互いに接続されている。
CPU14aがROM14b又は外部記憶装置14dに組み込まれたプログラムを実行することで、制御部14は、積層造形システム1の各部を制御する。例えば、制御部14は、テーブル11と、造形部12のノズル21、移動装置23、調整装置24、光学装置41、材料供給装置42、及びガス供給装置43とを制御する。
ROM14bは、プログラム及びプログラムの実行に必要なデータを格納している。RAM14cは、プログラムの実行時に作業領域として機能する。外部記憶装置14dは、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)のような、データを記憶、変更、削除可能な装置である。出力装置14eは、例えば、ディスプレイやスピーカである。入力装置14fは、例えば、キーボードやマウスである。
図3は、第1の実施形態の積層造形システム1の構成を機能的に示す例示的なブロック図である。制御部14は、例えば、CPU14aがROM14b又は外部記憶装置14dに格納されたプログラムを読み出し実行することで、図3に示す各部を実現する。図3に示すように、制御部14は、例えば、記憶部61と、造形制御部62と、画像処理部63と、学習部64と、推定部65と、出力制御部66とを備える。
例えば、CPU14aが、造形制御部62、画像処理部63、学習部64、推定部65、出力制御部66として機能する。また、RAM14cや外部記憶装置14dが、記憶部61として機能する。
記憶部61は、NCプログラム71と、複数のデータセット72と、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)73と、不正解リスト74とを含む、種々の情報を格納する。CNN73は、演算部又は学習結果とも称され得る。
NCプログラム71は、複数の層3bと、当該層3bを含む造形物3と、の造形のための情報である。NCプログラム71は、例えば、造形物3及び層3bの形状と、ノズル21の移動経路と、移動経路の各位置における、積層造形のパラメータの情報を含む。積層造形のパラメータは、例えば、ノズル21の移動速度、ノズル21の向き、吐出される材料Mの単位時間あたりの量、吐出される材料Mの速度、照射されるエネルギー線Eの出力、及び供給されるシールドガスGの流量を含む。NCプログラム71は、他の情報をさらに含んでも良い。
造形制御部62は、NCプログラム71に基づいて、移動装置23、調整装置24、光学装置41、材料供給装置42、及びガス供給装置43を含む造形部12を制御し、複数の層3b(造形物3)を積層造形する。また、造形制御部62は、造形部12による積層造形のパラメータを変更すること、及び造形部12を停止させることが可能である。
画像処理部63は、撮像装置13aが撮影した動画を取得し、当該動画を複数の静止画(画像)に変換する。例えば、撮像装置13aが30fpsの動画を撮影した場合、画像処理部63は、1秒当たりの当該動画から30枚の静止画を生成することができる。
画像処理部63が生成した画像には、ノズル21及び造形物3が映されている。画像処理部63が生成する画像は、第1の画像、第2の画像、又は入力情報とも称され得る。画像処理部63は、撮像装置13aとともに、画像を生成する撮像部13として機能する。なお、撮像部13はこの例に限られず、例えば、撮像装置13aが単体で画像を生成しても良い。
学習部64は、記憶部61に記憶されたデータセット72に基づき機械学習し、学習結果としてCNN73を生成する。推定部65は、撮像部13が生成した画像と、CNN73とに基づき、当該画像に火花が映っているか否かを推定する。
出力制御部66は、出力装置14eを制御する。例えば、出力制御部66は、出力装置14eに、学習部64による機械学習の結果や、推定部65による推定の結果を表示させる。
以下、学習部64による機械学習について詳しく説明する。学習部64による学習には、記憶部61に記憶された複数のデータセット72、CNN73、及び不正解リスト74が用いられる。例えば、記憶部61には、数百乃至数万のデータセット72が記憶されている。
データセット72はそれぞれ、画像Pと、ラベルLとを含む。画像Pは、第1の画像又は入力情報とも称され得る。ラベルLは、火花情報又は正解情報とも称され得る。すなわち、記憶部61は、複数の画像Pと、当該画像Pに対応する複数のラベルLとを記憶する。
図4は、第1の実施形態の画像Pの三つの例を示す図である。図4に示すように、画像Pには、ノズル21が映されている。なお、画像Pは、撮像部13が撮影したものでも良いし、他の装置が撮影したものでも良い。
複数の画像Pは、図4における左側の非造形画像P1と、中央の正常造形画像P2と、右側の異常造形画像P3とを含む。なお、これらの名称は便宜的なものであり、正常造形画像P2に映されるノズル21が正常な積層造形を行っているとは限らず、また、異常造形画像P3に映されるノズル21が異常な積層造形を行っているとは限らない。
非造形画像P1には、積層造形を行っていないノズル21が映されている。当該ノズル21は、材料Mの吐出及びエネルギー線Eの出射を停止している。正常造形画像P2及び異常造形画像P3には、積層造形を行っているノズル21が映されている。当該ノズル21は、材料Mを吐出し、エネルギー線Eを出射している。なお、正常造形画像P2及び異常造形画像P3に映されたノズル21が、エネルギー線Eを出射する一方で、材料Mの吐出を停止していても良い。
異常造形画像P3には、火花が映っている。例えば、材料Mであるチタンが酸化している場合、異常造形画像P3に映るように火花が発生する。材料Mが酸化すると、造形物3が脆弱化してしまう虞がある。一方、正常造形画像P2では、エネルギー線E及び溶融又は焼結している材料Mが発光しているが、大きな火花は発生していない。
ラベルLは、画像Pに対し、当該画像Pの状態(特徴)に応じて予め設定される。ラベルLは、[l0,l1,l2]と表現される行列(matrix)である。非造形画像P1、正常造形画像P2、及び異常造形画像P3にそれぞれ異なるラベルLが設定される。
例えば、非造形画像P1に対応するラベルLは、[1,0,0]と設定される。正常造形画像P2に対応するラベルLは、[0,1,0]と設定される。異常造形画像P3に対応するラベルLは、[0,0,1]と設定される。以上より、ラベルLのl2は、画像Pに火花が映っているか否かを示している。なお、ラベルLは、この例に限られない。
図5は、第1の実施形態のCNN73の構成の一例を概略的に示す例示的な図である。図5の例において、CNN73は、畳み込み層、活性化関数、プーリング、全結合、ソフトマックス関数の5種類の層を組み合わせた全11層で構成される。
図5の例において、CNN73は、2つの畳み込み層と、3つの全結合層とを含む。畳み込み層は行列[FW1,FB1],[FW2,FB2]を有する。全結合層は行列[W1,B1],[W2,B2],[W3,B3]を有する。以下、行列[FW1,FB1],[FW2,FB2],[W1,B1],[W2,B2],[W3,B3]をネットワークモデルと称する。
順伝搬は、入力から出力への演算である。入力は、例えば、画像Pである。出力はCNN73により演算された結果(出力値)Yである。順伝搬の出力値Yは、[y0,y1,y2]と表現される行列である。すなわち、CNN73は、順伝搬により、画像Pから出力値Yを算出する。出力値Yは、出力情報とも称され得る。
逆伝搬は、出力から入力への演算である。ソフトマックス関数を経て演算された出力値YとラベルLとの差は、勾配値となる。当該勾配値を出力から入力へ伝搬することで、CNN73の各層の勾配値が演算される。
以上のCNN73は一例であり、CNN73は他の構成を有しても良い。また、積層造形システム1は、CNN73と異なる他のニューラルネットワークや、他の深層学習(機械学習)の学習モデルを有しても良い。
図6は、第1の実施形態の学習部64の構成を機能的に示す例示的なブロック図である。図6に示すように、学習部64は、選択部81と、順伝搬部82と、逆伝搬部83と、更新部84と、第1の評価部85と、第2の評価部86と、評価出力部87とを備えている。順伝搬部82及び逆伝搬部83は、算出部とも称され得る。更新部84は、変更部とも称され得る。第1の評価部85は、第1の判定部とも称され得る。第2の評価部86は、第2の判定部又は判定部とも称され得る。評価出力部87は、出力部とも称され得る。
選択部81は、複数のデータセット72から、機械学習に用いる所定の数のデータセット72を選択する。順伝搬部82は、画像Pを入力とし、CNN73の順伝搬を行う。逆伝搬部83は、出力値Yを入力とし、CNN73の逆伝搬を行う。更新部84は、順伝搬部82及び逆伝搬部83の演算結果に基づき、CNN73を更新する。
第1の評価部85は、データセット72に含まれる評価用データ72aに基づき、CNN73を評価する。第2の評価部86は、データセット72に含まれる学習用データ72bに基づき、CNN73を評価する。評価出力部87は、第1の評価部85及び第2の評価部86の評価結果を出力する。
上記のように、複数のデータセット72は、複数の評価用データ72aと、複数の学習用データ72bとを含む。例えば、評価用データ72aは、複数のデータセット72のうち数十乃至数万のデータセット72であり、学習用データ72bは、残りのデータセット72である。
評価用データ72a及び学習用データ72bはそれぞれ、画像P及びラベルLを有する。評価用データ72aの画像Pは、評価用画像とも称され得る。学習用データ72bの画像Pは、学習用画像とも称され得る。学習用データ72bの画像P及び評価用データ72aの画像Pは、複数の画像Pに含まれており、互いに異なる。
図7は、第1の実施形態の機械学習方法の一例を示すフローチャートである。なお、図7を参照して以下に説明する機械学習方法はあくまで一例であり、学習部64は、他の方法により機械学習を行っても良い。
学習部64による機械学習では、まず、初期化が行われる(S11)。例えば、更新部84が、未更新のCNN73を生成する。なお、学習部64の他の部分が、未更新のCNN73を生成しても良い。
例えば、CNN73におけるネットワークモデル(行列)のサイズは、画像Pと隠れ層のノード数とから決定される。このため、行列のサイズは、プログラム上で指定される。行列における数値は、例えば、ランダムに生成される。
更新部84は、例えば、生成した未更新のCNN73を記憶部61に記憶させる。なお、初期化において、予め記憶部61に記憶された未更新のCNN73が、学習部64によって読み出されても良い。
次に、選択部81が、記憶部61に記憶された複数の学習用データ72bのうち一つの学習用データ72bを選択し、取得する(S12)。選択部81は、例えば、複数の学習用データ72bから無作為に一つの学習用データ72bを選択する。
次に、順伝搬部82が、選択された学習用データ72bの画像Pから、CNN73に順伝搬によって出力値Yを算出させる(S13)。次に、逆伝搬部83が、出力値YとラベルLとの差に基づき、勾配値を算出する(S14)。
次に、更新部84が、勾配値に基づき、勾配降下法により記憶部61に記憶されたCNN73を更新(変更)する(S15)。言い換えると、更新部84は、学習用データ72bの画像Pから順伝搬部82が算出した出力値Yに基づき、CNN73を変更する。なお、更新部84は、他の方法によってCNN73を変更しても良い。また、更新部84によるCNN73の更新は、更新部84による新たなCNN73の生成とも表現され得る。
以上のS12〜S15は、学習工程と称され得る。次に、更新部84は、所定の数の学習用データ72bを用いて学習工程を実行したか否かを判定する(S16)。学習した学習用データ72bの数が所定の数に達していない場合(S16:No)、S12に戻り、S12〜S16を繰り返す。
S16において、学習した学習用データ72bの数が所定の数に達している場合(S16:Yes)、第1の評価部85は、無作為に選択した評価用データ72aの画像Pから、CNN73の順伝搬により出力値Yを算出する(S17)。そして、第1の評価部85は、評価用データ72aの画像Pから算出された出力値Yと、当該出力値Yに対応する評価用データ72aのラベルLとに基づき、当該出力値Yが正解か不正解かを評価(判定)する(S18)。
出力値Yのy0,y1,y2は、ラベルLのl0,l1,l2に対応する。このため、異常造形画像P3から学習済みのCNN73が算出したy2は、0〜1のうち、1に近い値となる。一方、非造形画像P1又は正常造形画像P2から学習済みのCNN73が算出したy2は、0〜1のうち、0に近い値となる。すなわち、y2は、画像Pに火花が映っている確率に連動する。以下、y2を、火花確認強度と称する。火花確認強度y2は、例えば、上述のように0〜1で示されても良いし、0〜100%で示されても良い。CNN73は、順伝搬により、画像Pから火花確認強度y2を含む出力値Yを算出する。
第1の評価部85は、例えば、出力値YとラベルLとの最大インデックスを比較することで、出力値Yが正解か不正解かを判定する。例えば、ラベルL[1,0,0]は、l0=1、l1=0、l2=0であるため、最大インデックスは「0」(l0)である。同様に、出力値Y[0.1,0.1,0.8]の最大インデックスは、y0=0.1、y1=0.1、y2=0.8であるため、「2」(y2)である。ラベルLと出力値Yとの最大インデックスは「0」と「2」で異なるため、第1の評価部85は、出力値Yを不正答と判定する。
ラベルL[1,0,0]と出力値Y[0.8,0.1,0.1]とを比較した場合、ラベルLの最大インデックスは「0」(l0)、出力値Yの最大インデックスは「0」(y0)である。ラベルLと出力値Yとの最大インデックスが同じであるため、第1の評価部85は、出力値Yを正解と判定する。
なお、第1の評価部85は、他の方法によって出力値Yが正解か不正解かを判定しても良い。例えば、第1の評価部85は、ラベルLのl2が0である場合、火花確認強度y2が0.5以上であれば不正解と判定し、火花確認強度y2が0.5より下であれば正解と判定も良い。これらの正解又は不正解を判定するための閾値(例えば0.5)は、任意に設定され得る。
次に、第1の評価部85は、所定の数の評価用データ72aを用いてCNN73を評価したか否かを判定する(S19)。評価に用いた評価用データ72aの数が所定の数に達していない場合(S19:No)、S17に戻り、S17〜S19を繰り返す。
S19において、評価に用いた評価用データ72aの数が所定の数に達している場合(S19:Yes)、評価出力部87が第1の評価部85の評価結果を出力する(S20)。例えば、評価出力部87は、評価用データ72aからCNN73が算出した出力値Yの正答率を出力する。
次に、第2の評価部86は、無作為に選択した学習用データ72bの画像Pから、CNN73の順伝搬により出力値Yを算出する(S21)。そして、第2の評価部86は、学習用データ72bの画像Pから算出された出力値Yと、当該出力値Yに対応する学習用データ72bのラベルLとに基づき、当該出力値Yが正解か不正解かを評価(判定)する(S22)。第2の評価部86は、第1の評価部85と同じく、例えば、出力値YとラベルLとの最大インデックスを比較することで、出力値Yが正解か不正解かを判定する。
S22において、出力値Yが不正解と判定された場合(S22:No)、第2の評価部86は、不正解と判定された出力値Yに対応するデータセット72を、不正解リスト74に登録する(S23)。例えば、第2の評価部86は、不正解と判定された出力値Yに対応するデータセット72の番号(ID)を、不正解リスト74に登録する。
S22において出力値Yが正解と判定された場合(S22:Yes)、又はS23が完了すると、第2の評価部86は、所定の数の学習用データ72bを用いてCNN73を評価したか否かを判定する(S24)。評価に用いた学習用データ72bの数が所定の数に達していない場合(S24:No)、S21に戻り、S21〜S24を繰り返す。
S24において、評価に用いた学習用データ72bの数が所定の数に達している場合(S24:Yes)、評価出力部87が第2の評価部86の評価結果を出力する(S25)。例えば、評価出力部87は、学習用データ72bからCNN73が算出した出力値Yの正答率を出力する。
評価出力部87は、例えば、出力制御部66に、第1の評価部85の評価結果及び第2の評価部86の評価結果を出力する。出力制御部66は、例えば、第1の評価部85の評価結果及び第2の評価部86の評価結果に基づくグラフを、出力装置14eに出力させる。
次に、選択部81は、第1の評価部85の評価結果及び第2の評価部86の評価結果に異常があるか否かを判定する(S26)。評価結果に異常が無い場合(S26:No)、選択部81は、出力値Yの正答率が収束したか否かを判定する(S27)。
選択部81は、例えば、第1の評価部85の評価結果における正答率、及び第2の評価部86の評価結果における正答率、のうち少なくとも一方の変化が所定の回数に亘って所定の範囲内にある場合に、出力値Yの正答率が収束したと判定する。言い換えると、選択部81は、第1の評価部85及び第2の評価部86の評価結果が所定の回数に亘って向上しない場合に、出力値Yの正答率が収束したと判定する。この例に限らず、例えば、選択部81は、第1の評価部85及び第2の評価部86の評価結果における正答率が所定の回数に亘って閾値を上回っている場合に、出力値Yの正答率が収束したと判定しても良い。
出力値Yの正答率が収束していない場合(S27:No)、S12に戻り、S12〜S26が再び実行(反復)される。反復時のS12において、選択部81は、例えば、S12〜S15の学習工程で用いられる所定の数の学習用データ72bに所定の割合で不正解データ72bfが含まれるように、学習用データ72bを選択する。
不正解データ72bfは、第2の評価部86によって不正解と判定された出力値Yに対応し、不正解リスト74に登録された学習用データ72bである。学習工程で用いられる学習用データ72bには、不正解リスト74から選択された不正解データ72bfと、複数の学習用データ72bから不作為に選択された学習用データ72bと、が含まれる。
反復時のS13において、順伝搬部82は、CNN73に、不正解データ72bfの画像Pと、不作為に選択された学習用データ72bの画像Pと、のそれぞれから出力値Yを算出させる。すなわち、選択部81は、CNN73に入力される画像Pとして、不正解データ72bfの画像Pと、不作為に選択された学習用データ72bの画像Pと、を選択する。
不正解データ72bfの画像Pは、記憶部61に記憶された複数の画像Pに含まれるとともに、不正解と判断された出力値Yに対応している。不正解データ72bfの画像Pは、第1の入力情報とも称され得る。
不作為に選択された学習用データ72bの画像Pは、記憶部61に記憶された複数の画像Pに含まれるとともに、複数の画像Pから不作為に選択されている。不作為に選択された学習用データ72bの画像Pは、第2の入力情報とも称され得る。
図8は、第1の実施形態の第1の評価部85及び第2の評価部86の評価結果における出力値Yの正答率の一例を示すグラフである。図9は、比較例として、学習工程で用いられる所定の数の学習用データ72bが全て不作為に選択される場合の、第1の評価部85及び第2の評価部86の評価結果における出力値Yの正答率の一例を示すグラフである。
図8及び図9のようなグラフは、例えば、評価出力部87によって生成される。図8及び図9において、評価用データ72aを使用した第1の評価部85における出力値Yの正答率と、学習用データ72bを使用した第2の評価部86における出力値Yの正答率と、のグラフが示される。図8及び図9において、縦軸は出力値Yの正答率を示し、横軸はS12〜S27の反復回数を示す。
図8及び図9に示すように、学習工程で用いられる所定の数の学習用データ72bに所定の割合で不正解データ72bfが含まれることで、出力値Yの正答率が上昇しやすくなる。例えば、本実施形態では、比較例に比べ、第1の評価部85の評価結果における出力値Yの正答率が先に98%以上で収束する。なお、学習工程で用いられる所定の数の学習用データ72bに含まれる不正解データ72bfの割合又は数は、任意に設定され得る。
図7のS26において、評価結果に異常が生じている場合(S26:Yes)、選択部81は、S12〜S15の学習工程で用いられる所定の数の学習用データ72bに含まれる不正解データ72bfの割合を変更する(S28)。言い換えると、選択部81は、正解と判定された出力値Yの割合(正答率)に基づき、CNN73に入力される、不正解データ72bfの画像P及び不作為に選択される学習用データ72bの画像Pの割合を変更する。
例えば、不正解データ72bfの割合が多い場合、過学習が生じる。この場合、反復回数が多くなると正答率が低下してしまう。選択部81は、このような評価結果(正答率)の異常が生じている場合、不正解データ72bfの割合を減らす。
一方、不正解データ72bfの割合が少ない場合、反復回数が増えても正答率が収束し難い。選択部81は、このような評価結果(正答率)の異常が生じている場合、不正解データ72bfの割合を増やす。なお、増減される不正解データ72bfの割合又は数は、任意に設定され得る。
S28で選択部81が不正解データ72bfの割合を変更すると、S12に戻り、S12〜S28が繰り返される。S27において、出力値Yの正答率が収束していると(S27:Yes)、学習部64による機械学習が完了する。以上により、機械学習の学習結果として、CNN73が生成される。
なお、上述の機械学習において、第1の評価部85及び第2の評価部86は、出力値Yの正答率を評価した。しかし、第1の評価部85及び第2の評価部86は、この例に限らず、例えば平均損失を評価しても良い。損失は、出力値YとラベルLとに基づき、交差エントロピーを用いて算出可能である。
図10は、第1の実施形態の推定部65の構成を機能的に示す例示的なブロック図である。図10に示すように、推定部65は、強度算出部91と、判定部92とを備えている。
強度算出部91は、画像処理部63から画像を取得するとともに、記憶部61からCNN73を取得する。強度算出部91が取得したCNN73は、上述の学習部64による機械学習で生成された学習結果である。強度算出部91は、画像処理部63から取得した画像から、CNN73に順伝搬によって出力値Yを算出させる。
判定部92は、出力値Yに基づき、当該出力値Yに対応する画像に火花が映っているか否かを判定する。本実施形態では、判定部92は、画像から、積層造形が停止されているか、正常な積層造形が行われているか、積層造形に異常が生じているかを判定する。
図11は、第1の実施形態の積層造形監視方法の一例を示すフローチャートである。以下、積層造形システム1による積層造形の監視について詳しく説明する。なお、図11を参照して以下に説明する積層造形監視方法はあくまで一例であり、積層造形システム1は、他の方法により積層造形監視を行っても良い。
図11に示すように、まず、造形部12が、NCプログラム71に基づいて積層造形を開始する(S101)。なお、S101における積層造形の開始は、NCプログラム71の実行の開始である。このため、ノズル21が材料Mの吐出及びエネルギー線Eの出射を行っていなくても良い。
次に、強度算出部91が、画像処理部63からノズル21が映された画像を取得する(S102)。次に、強度算出部91は、当該画像から、CNN73の順伝搬により、出力値Yを算出する(S103)。言い換えると、強度算出部91は、画像から、CNN73により、火花確認強度y2を算出する。
次に、判定部92は、出力値Y[y0,y1,y2]のうち、y0が最大か否かを判定する(S104)。言い換えると、判定部92は、出力値Yに対応する画像が、非造形画像P1に類似するか否かを判定する。y0が最大である場合(S104:Yes)、判定部92は、ノズル21が積層造形を行っていないと判定する(S105)。
次に、判定部92は、積層造形が完了したか否かを判定する(S106)。積層造形が完了していない場合(S106:No)、S102に戻り、強度算出部91が次の画像を画像処理部63から取得する。
S104で、y0が最大ではない場合(S104:No)、判定部92は、出力値Y[y0,y1,y2]のうち、y1が最大か否かを判定する(S107)。言い換えると、判定部92は、出力値Yに対応する画像が、正常造形画像P2に類似するか否かを判定する。y1が最大である場合(S107:Yes)、判定部92は、ノズル21が正常な積層造形を行っていると判定し(S108)、S106に移行する。
S107で、y1が最大ではない場合(S107:No)、出力値Y[y0,y1,y2]のうち、火花確認強度y2が最大となる。このため、出力値Yに対応する画像が異常造形画像P3に類似しており、火花が発生している可能性が高い。
火花確認強度y2が最大である場合、判定部92は、積層造形に異常が生じていると判定する(S109)。この場合、造形制御部62が、積層造形のパラメータを変更し(S110)、S106に移行する。
例えば、造形制御部62は、火花確認強度y2に基づき、チャンバCに供給される不活性ガスの流量、ノズル21から吐出されるシールドガスGの流量、ノズル21から出射されるエネルギー線Eの出力、ノズル21の速度、及びノズル21から吐出される材料Mの量、のうち少なくとも一つを変更し、火花の発生及び材料Mの酸化を抑制する。造形制御部62によるパラメータの変更量は、一定であっても良いし、火花確認強度に連動しても良い。ノズル21の速度や吐出される材料Mの量が変更される場合、溶融領域3aの高さが略一定となるように、積層造形のパラメータが調整される。
S106において、積層造形が完了している場合(S106:Yes)、積層造形システム1による積層造形の監視も完了する。以上のように、積層造形システム1は、積層造形における火花の発生を監視する。積層造形において火花が発生した場合、造形制御部62が積層造形のパラメータを変更し、火花の発生を抑制する。
上述の積層造形監視では、S107でy1が最大ではない場合に、積層造形に異常が生じていると判定される。しかし、この例に限らず、例えば、所定の回数に亘って火花確認強度y2が最大となった場合や、所定回数に亘って積算された火花確認強度y2が閾値を上回った場合に、積層造形に異常が生じていると判定されても良い。
判定部92は、例えば、ノズル21の座標と関連付けて、判定結果を出力制御部66に出力しても良い。当該判定結果により、ノズル21の各座標における積層造形の状態の記録(ログ)を得ることができる。
以上説明された第1の実施形態に係る積層造形システム1において、学習部64は、造形物3の材料Mを吐出するとともに、当該材料Mにエネルギー線Eを照射して溶融又は焼結させる、ノズル21が映された複数の画像Pと、当該複数の画像Pに火花が映っているか否かを示すラベルLと、に基づき機械学習し、CNN73を生成する。推定部65は、撮像部13が撮影した画像と、CNN73と、に基づき、当該画像に火花が映っているか否かを推定する。チタンのような材料Mの溶融又は焼結において、火花が発生している場合、材料Mが酸化している虞がある。推定部65の推定結果に基づき火花の発生の監視を自動化することができるため、酸化した材料Mによる造形物3の脆弱化が抑制される。
例えば、CNN73のような機械学習により更新される演算部の代わりに、光量センサが火花の発生を監視する場合、正常な積層造形における発光が火花の発生と誤認識される虞がある。本実施形態では、CNN73のような機械学習により更新される演算部を用いることで、火花の発生の監視精度が向上する。
本実施形態における材料Mは、チタンを含む。上述のように、チタンのような材料Mの溶融又は焼結において、火花が発生している場合、材料Mが酸化している虞がある。従って、推定部65の推定結果に基づき火花の発生の監視を自動化することができるため、酸化したチタンによる造形物3の脆弱化が抑制される。
推定部65は、撮像部13が撮影した画像から、CNN73により、当該画像に火花が映っている確率に連動する火花確認強度y2を算出する。推定部65が数値(火花確認強度y2)を算出するため、当該数値に基づき種々の制御をすることができる。
造形制御部62は、火花確認強度y2に基づき、造形部12による積層造形のパラメータを変更する。例えば、造形制御部62は、火花確認強度y2に基づき、積層造形が行われるチャンバCに供給される不活性ガスの流量、ノズル21から吐出されるシールドガスGの流量、ノズル21から出射されるエネルギー線Eの出力、ノズル21の速度、及びノズル21から吐出される材料Mの量、のうち少なくとも一つを制御し、火花の発生及び材料Mの酸化を抑制する。これにより、酸化した材料Mによる造形物3の脆弱化が抑制される。
第1の評価部85は、評価用データ72aの画像Pから順伝搬部82が算出した出力値Yと、ラベルLと、に基づき出力値Yが正解か不正解かを判定する。第2の評価部86は、評価用データ72aの画像Pと異なる学習用データ72bの画像Pから順伝搬部82が算出した出力値Yと、ラベルLと、に基づき出力値Yが正解か不正解かを判定する。評価出力部87は、第1の評価部85の評価結果と、第2の評価部86の評価結果と、を出力する。これにより、第2の評価部86の判定結果に基づき、機械学習により生成されたCNN73の精度を評価することができる。さらに、第1の評価部85の判定結果に基づき、機械学習に用いられなかった評価用データ72aの画像Pを対象とするCNN73の精度を評価することができる。従って、火花の発生の監視精度が向上し、酸化した材料Mによる造形物3の脆弱化が抑制される。
CNN73が、複数の画像Pに含まれるとともに不正解と判定された出力値Yに対応する不正解データ72bfの画像Pと、複数の画像Pに含まれる画像Pと、のそれぞれから出力値Yを算出する。そして、CNN73は、出力値Yに基づき変更される。すなわち、CNN73は、少なくとも一度間違えた画像Pを用いて機械学習を行う。これにより、CNN73が算出する出力値Yの精度が向上しやすくなり、機械学習にかかる時間(反復回数)を短縮することができる。
複数の画像Pにおいて、非造形画像P1、正常造形画像P2、及び異常造形画像P3の割合が不均一なことがある。本実施形態では、CNN73が、少なくとも一度間違えた画像Pを用いて機械学習を行うことで、非造形画像P1、正常造形画像P2、及び異常造形画像P3の割合が不均一であっても、当該割合が均一である場合に近い学習効果を挙げることができる。
CNN73は、適正な割合の不正解データ72bfの画像Pと、複数の画像Pから不作為に選択された画像Pと、のそれぞれから出力値Yを算出する。これにより、CNN73に入力される画像Pの偏りが低減される。従って、CNN73が算出する出力値Yの精度が向上しやすくなり、機械学習にかかる時間(反復回数)を短縮することができる。
正解と判定された出力値Yの割合に基づき、CNN73に入力される不正解データ72bfの画像Pの割合が変更される。例えば、過学習が生じている場合に不正解データ72bfの画像Pの割合が減らされ、正解と判定された出力値Yの割合の収束が遅い場合に不正解データ72bfの画像Pの割合が増やされる。これにより、CNN73が算出する出力値Yの精度が向上しやすくなり、機械学習にかかる時間(反復回数)を短縮することができる。
本実施形態の制御部14で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の制御部14で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の制御部14で実行されるプログラムをインターネット等のネットワーク経由で提供又は配布するように構成しても良い。
また、本実施形態のプログラムを、ROM等に予め組み込んで提供するように構成しても良い。
本実施形態の制御部14で実行されるプログラムは、上述した各部(造形制御部62、画像処理部63、学習部64、推定部65、及び出力制御部66)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、造形制御部62、画像処理部63、学習部64、推定部65、及び出力制御部66が主記憶装置上に生成されるようになっている。
(第2の実施形態)
以下に、第2の実施形態について、図12を参照して説明する。なお、以下の実施形態の説明において、既に説明された構成要素と同様の機能を持つ構成要素は、当該既述の構成要素と同じ符号が付され、さらに説明が省略される場合がある。また、同じ符号が付された複数の構成要素は、全ての機能及び性質が共通するとは限らず、各実施形態に応じた異なる機能及び性質を有していても良い。
図12は、第2の実施形態に係る積層造形監視方法の一例を示すフローチャートである。図12に示すように、第2の実施形態では、S109が実行されると、積層造形のパラメータが変更される代わりに、造形制御部62が積層造形を停止させ(S201)、積層造形システム1による積層造形の監視も完了する。すなわち、造形制御部62は、火花確認強度y2に基づき、造形部12を停止させる。
以上説明された第2の実施形態の積層造形システム1において、造形制御部62は、火花確認強度y2に基づき、造形部12を停止させることが可能である。すなわち、材料Mに酸化の虞がある場合、造形制御部62が積層造形を停止させることができ、酸化した材料Mによる造形物3の脆弱化が抑制される。
判定部92が判定結果を出力制御部66に出力することで、判定結果の記録(ログ)から、材料Mに酸化が生じた虞がある箇所を容易に特定することができる。従って、材料Mに酸化が生じた虞がある箇所を除去し、積層造形を再開することが可能である。
以上説明された少なくとも複数の実施形態において、制御部14が、記憶部61、学習部64、及び推定部65を備える。しかし、例えば、記憶部61、学習部64、及び推定部65の少なくとも一つが、積層造形システム1と異なる装置又はシステムに備えられても良い。
また、以上説明された複数の実施形態において、学習部64による機械学習方法は、画像Pに火花が映っているか否かを推定するための画像認識技術に適用された。しかし、上述の学習部64による機械学習方法は、他の画像認識技術、音声認識技術、自然言語処理技術のような他の技術に適用されても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。