以下、本発明をその実施形態を示す図面に基づいて詳述する。
(実施形態1)
実施形態1は、パーツ画像内のオブジェクトを認識し、認識したオブジェクトから所定のオフセット位置にて領域画像を抽出し、抽出した領域画像に対応するパーツ固有情報を出力する形態に関する。パーツは、自動車、パソコン、家電、スマートフォンまたは工作機械等の製品全体を構成するための部品(部分品またはコンポーネント)である。例えば製品が自動車である場合、パーツはドアパネル、ミラーまたはタイヤ等である。オブジェクトは、パーツ上での特徴点であり、例えばプレスの抜き加工形状やドリル穴、エッジ形状、塗料、シール、強制打痕穴、レーザー捺印、立体文字等である。
パーツ固有情報は、パーツの物体指紋、製造情報、材料情報または取付け情報等を含む。物体指紋は、パーツ(物体)表面の微細な紋様(例えば、凹凸または模様等)である。物体指紋は製造段階で自然に生じ、後から傷等が付いても物体指紋そのものが変容することがないため、物体指紋認識技術(画像認識技術)を用いてそれぞれのパーツを判別することができる。
図1は、トレーサビリティシステムの概要を示す説明図である。本実施形態のシステムは、情報処理装置1、撮影装置2、情報処理装置3、データベース装置4及び情報処理装置5を含み、各装置はインターネット等のネットワークNを介して情報の送受信を行う。
情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、エッジコンピュータ、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において、情報処理装置1はサーバ装置であるものとし、以下では簡潔のため画像処理サーバ1と読み替える。
撮影装置2は、オブジェクトを含むパーツを撮影して画像を生成する。本実施形態の撮影装置2は、無線通信部を含む。無線通信部は、通信に関する処理を行うための無線通信モジュールであり、ネットワークNを介して、画像処理サーバ1等と撮影画像の送受信を行う。なお、撮影装置2の代わりに、撮影可能な情報処理端末であっても良い。情報処理端末は、例えばスマートフォン、携帯電話、タブレット、パーソナルコンピュータ端末等の情報処理機器である。
情報処理装置3は、パーツの登録、認証等を行う情報処理装置である。情報処理装置3は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC等である。本実施形態において、情報処理装置3はサーバ装置であるものとし、以下では簡潔のためパーツサーバ3と読み替える。
データベース(DB:database)装置4は、パーツ固有情報、及びパーツを使用した製品に関する情報を格納する記憶装置である。本実施形態において、以下では簡潔のため、データベース装置4はDBサーバ4と読み替える。
情報処理装置5は、工場等で製品ごとの各パーツの製造情報及び材料情報等を管理する情報処理装置である。情報処理装置5は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC等である。本実施形態において、情報処理装置5はサーバ装置であるものとし、以下では簡潔のため工場サーバ5と読み替える。
なお、本実施形態においては、1台の情報処理装置1及び1台の撮影装置2を含む例を説明したが、これに限らず、複数台の情報処理装置1及び複数台の撮影装置2を含んでも良い。例えば、1台の情報処理装置1(登録用)と1台の撮影装置2(登録用)との組み合わせ、並びに、1台の情報処理装置1(認証用)と1台の撮影装置2(認証用)との組み合わせを用いる場合、情報処理装置1(登録用)は、撮影装置2(登録用)が撮影したパーツ画像をパーツサーバ3に登録する処理を行う。情報処理装置1(認証用)は、パーツサーバ3に登録済みのパーツ画像と照合し、撮影装置2(認証用)が撮影したパーツ画像を認証する処理を行う。
本実施形態に係る画像処理サーバ1は、特徴点となるオブジェクトを含むパーツ画像を撮影装置2から取得し、取得したパーツ画像内のオブジェクトを認識する。画像処理サーバ1は、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出し、抽出した領域画像に対応するパーツ固有情報を取得する。画像処理サーバ1は、取得したパーツ固有情報に対してパーツIDを割り振り、割り振ったパーツIDとパーツ固有情報とをパーツサーバ3及びDBサーバ4に出力する。
図2は、画像処理サーバ1の構成例を示すブロック図である。画像処理サーバ1は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16及び大容量記憶部17を含む。各構成はバスBで接続されている。
制御部11はCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を含み、記憶部12に記憶された制御プログラム1Pを読み出して実行することにより、画像処理サーバ1に係る種々の情報処理、制御処理等を行う。なお、図2では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部13は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、撮影装置2、パーツサーバ3、DBサーバ4及び工場サーバ5との間で情報の送受信を行う。
入力部14は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
読取部16は、CD(Compact Disc)-ROM又はDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部17に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部17に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
大容量記憶部17は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部17は、オブジェクト認識モデル171を含む。オブジェクト認識モデル171は、パーツ画像に基づいてパーツ画像内のオブジェクトを認識する認識器であり、機械学習により生成された学習済みモデルである。
なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17は画像処理サーバ1に接続された外部記憶装置であっても良い。
なお、本実施形態では、画像処理サーバ1は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
図3は、パーツサーバ3の構成例を示すブロック図である。パーツサーバ3は、制御部31、記憶部32、通信部33、入力部34、表示部35、読取部36及び大容量記憶部37を含む。各構成はバスBで接続されている。
制御部31はCPU、MPU、GPU等の演算処理装置を含み、記憶部32に記憶された制御プログラム3Pを読み出して実行することにより、パーツサーバ3に係る種々の情報処理、制御処理等を行う。なお、図3では制御部31を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部32はRAM、ROM等のメモリ素子を含み、制御部31が処理を実行するために必要な制御プログラム3P又はデータ等を記憶している。また、記憶部32は、制御部31が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部33は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、画像処理サーバ1との間で情報の送受信を行う。
入力部34は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部31へ出力する。表示部35は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部31の指示に従い各種情報を表示する。
読取部36は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体3aを読み取る。制御部31が読取部36を介して、制御プログラム3Pを可搬型記憶媒体3aより読み取り、大容量記憶部37に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部31が制御プログラム3Pをダウンロードし、大容量記憶部37に記憶しても良い。さらにまた、半導体メモリ3bから、制御部31が制御プログラム3Pを読み込んでも良い。
大容量記憶部37は、例えばHDD、SSD等の記録媒体を備える。大容量記憶部37は、パーツ固有情報DB371を含む。パーツ固有情報DB371は、パーツIDに対応付けてパーツ固有情報を記憶している。
なお、本実施形態において記憶部32及び大容量記憶部37は一体の記憶装置として構成されていても良い。また、大容量記憶部37は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部37はパーツサーバ3に接続された外部記憶装置であっても良い。
なお、本実施形態では、パーツサーバ3は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
図4は、パーツ固有情報DB371のレコードレイアウトの一例を示す説明図である。パーツ固有情報DB371は、パーツID列、パーツ画像列及び登録日時列を含む。パーツID列は、各パーツを識別するために、一意に特定されるパーツのIDを記憶している。パーツ画像列は、パーツ画像の全体または一部分の領域画像を記憶している。登録日時列は、パーツを登録した日時情報を記憶している。なお、パーツ固有情報に属するパーツの製造情報、材料情報または取付け情報等がパーツ固有情報DB371に記憶されても良い。
図5は、DBサーバ4の構成例を示すブロック図である。DBサーバ4は、制御部41、記憶部42、通信部43、読取部44及び大容量記憶部45を含む。各構成はバスBで接続されている。
制御部41はCPU、MPU、GPU等の演算処理装置を含み、記憶部42に記憶された制御プログラム4Pを読み出して実行することにより、データ読取、データ格納等を行う。なお、図5では制御部41を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部42はRAM、ROM等のメモリ素子を含み、制御部41が処理を実行するために必要な制御プログラム4P又はデータ等を記憶している。また、記憶部42は、制御部41が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部43は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、画像処理サーバ1との間で情報の送受信を行う。
読取部44は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体4aを読み取る。制御部41が読取部44を介して、制御プログラム4Pを可搬型記憶媒体4aより読み取り、大容量記憶部45に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部41が制御プログラム4Pをダウンロードし、大容量記憶部45に記憶しても良い。さらにまた、半導体メモリ4bから、制御部41が制御プログラム4Pを読み込んでも良い。
大容量記憶部45は、例えばHDD、SSD等の記録媒体を備える。大容量記憶部45は、製品管理DB451及びパーツ詳細DB452を含む。製品管理DB451は、製品IDと該製品を組み立てたパーツIDとの対応関係等の情報を記憶している。パーツ詳細DB452は、パーツIDに対応付けてパーツの詳細情報を記憶している。
なお、本実施形態において記憶部42及び大容量記憶部45は一体の記憶装置として構成されていても良い。また、大容量記憶部45は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部45はDBサーバ4に接続された外部記憶装置であっても良い。
なお、本実施形態では、DBサーバ4は一台のデータベース装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
図6は、製品管理DB451のレコードレイアウトの一例を示す説明図である。製品管理DB451は、製品ID列、種別列、製品名列及びパーツID列を含む。製品ID列は、各製品を識別するために、一意に特定される製品のIDを記憶している。種別列は、製品の種別情報を記憶している。製品名列は、製品の名称を記憶している。パーツID列は、該製品を組み立てたパーツを特定するパーツIDを記憶している。
図7は、パーツ詳細DB452のレコードレイアウトの一例を示す説明図である。パーツ詳細DB452は、パーツID列、製造情報列、素材情報列及び取付け情報列を含む。パーツID列は、各パーツを識別するために、一意に特定されるパーツのIDを記憶している。
製造情報列は、加工機ID列、加工機メーカ名列、ロケーション番地列及び加工日時列を含む。加工機ID列は、各加工機を識別するために、一意に特定される加工機のIDを記憶している。加工機メーカ名列は、加工機のメーカ名称を記憶している。ロケーション番地列は、パーツが加工された住所番地または生産ラインの名称を記憶している。加工日時列は、パーツが加工された日時情報を記憶している。
素材情報列は、素材ID列、素材メーカID列、ロット番号列及び納品日時列を含む。素材ID列は、各素材を識別するために、一意に特定される素材のIDを記憶している。素材メーカID列は、各素材メーカを識別するために、一意に特定される素材メーカのIDを記憶している。ロット番号列は、素材の製造時の生産単位ごとにつけられた素材ロット番号を記憶している。納品日時列は、素材が納品された日時情報を記憶している。
取付け情報列は、取付けロボットID列、取付けメーカ名列及びロケーション番地列を含む。取付けロボットID列は、各取付けロボットを識別するために、一意に特定される取付けロボットのIDを記憶している。取付けメーカ名列は、パーツを製品に取り付けた際に利用した取付けロボットのメーカ名を記憶している。ロケーション番地列は、パーツが取り付けられた住所番地または生産ラインの名称を記憶している。
図8は、工場サーバ5の構成例を示すブロック図である。工場サーバ5は、制御部51、記憶部52、通信部53、入力部54、表示部55、読取部56及び大容量記憶部57を含む。各構成はバスBで接続されている。
制御部51はCPU、MPU、GPU等の演算処理装置を含み、記憶部52に記憶された制御プログラム5Pを読み出して実行することにより、工場サーバ5に係る種々の情報処理、制御処理等を行う。なお、図8では制御部51を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部52はRAM、ROM等のメモリ素子を含み、制御部51が処理を実行するために必要な制御プログラム5P又はデータ等を記憶している。また、記憶部52は、制御部51が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部53は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、画像処理サーバ1との間で情報の送受信を行う。
入力部54は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部51へ出力する。表示部55は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部51の指示に従い各種情報を表示する。
読取部56は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体5aを読み取る。制御部51が読取部56を介して、制御プログラム5Pを可搬型記憶媒体5aより読み取り、大容量記憶部57に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部51が制御プログラム5Pをダウンロードし、大容量記憶部57に記憶しても良い。さらにまた、半導体メモリ5bから、制御部51が制御プログラム5Pを読み込んでも良い。
大容量記憶部57は、例えばHDD、SSD等の記録媒体を備える。大容量記憶部57は、製品DB571を含む。製品DB571は、製品に関する情報、及び該製品を組み立てたパーツに関する情報を記憶している。
なお、本実施形態において記憶部52及び大容量記憶部57は一体の記憶装置として構成されていても良い。また、大容量記憶部57は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部57は工場サーバ5に接続された外部記憶装置であっても良い。
なお、本実施形態では、工場サーバ5は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
図9は、製品DB571のレコードレイアウトの一例を示す説明図である。製品DB571は、製品ID列、製品種別列、パーツ種別列、パーツ特徴列、製造情報列、素材情報列及び取付け情報列を含む。
製品ID列は、各製品を識別するために、一意に特定される製品のIDを記憶している。製品種別列は、ID列及び名称列を含む。ID列は、製品種別のIDを記憶している。名称列は、製品種別の名称を記憶している。パーツ種別列は、ID2列及び名称2列を含む。ID2列は、パーツ種別のIDを記憶している。名称2列は、パーツ種別の名称を記憶している。なお、上述した製品種別列またはパーツ種別列のレイアウトに限るものではない。製品種別列またはパーツ種別列は、ID及び名称に加えて他の情報を記憶しても良い。
パーツ特徴列は、オフセット位置列、領域画像サイズ列及び領域画像列を含む。オフセット位置列は、オブジェクトより離れた距離情報を記憶している。領域画像サイズ列は、パーツ固有情報を取得するための領域画像のサイズを記憶している。領域画像列は、パーツの指紋(特徴)を示す画像(パーツ画像の一部分)を記憶している。
製造情報列、素材情報列及び取付け情報列に関しては、パーツ詳細DB452の製造情報列、素材情報列及び取付け情報列と同様であるため、説明を省略する。
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
図10は、パーツ固有情報を出力する動作を説明する説明図である。画像処理サーバ1の制御部11は、通信部13を介して、特徴点となるオブジェクトを含むパーツ画像を撮影装置2から取得する。なお、本実施形態では、パーツ画像が撮影装置2から送信された例を説明したが、これに限るものではない。例えば、撮影装置2が撮影したパーツ画像をメモリーカード経由で画像処理サーバ1に転送しても良い。
制御部11は、取得したパーツ画像を入力した場合に該パーツ画像内のオブジェクトを認識した認識結果を出力する学習済みのオブジェクト認識モデル171に、取得したパーツ画像を入力し、該パーツ画像内のオブジェクトを認識した認識結果を出力する。なお、オブジェクトの認識処理に関しては後述する。
制御部11は、認識結果に基づいてオブジェクトを認識した場合、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する。オフセット位置は、オブジェクトより離れた距離であり、例えばオブジェクトの右から20ピクセルである。所定サイズは、ピクセル(画素)単位でパーツ画像から抽出される領域画像のサイズであり、例えば120×120ピクセルである。オブジェクトの種類ごとに所定のオフセット位置及び所定サイズが予め記憶部12または大容量記憶部17に記憶されている。
制御部11は、抽出した領域画像に対応するパーツ固有情報を工場サーバ5から取得する。具体的には、制御部11は、通信部13を介して、パーツ種別ID及びオブジェクトによるオフセット位置を、抽出した領域画像と共に工場サーバ5に送信する。工場サーバ5の制御部51は、通信部53を介して、画像処理サーバ1から送信されたパーツ種別ID、オフセット位置、領域画像を受信する。制御部51は、受信したパーツ種別ID、オフセット位置、領域画像に基づき、大容量記憶部57の製品DB571から該当するパーツ固有情報を取得する。パーツ固有情報は、パーツの製造情報、素材情報及び製品への取付け情報を含む。
具体的には、制御部51は、受信した領域画像から該領域画像のサイズを取得する。制御部51は、取得した領域画像のサイズと、受信したパーツ種別ID及びオフセット位置とに基づき、製品DB571の領域画像列に記憶された領域画像を抽出する。制御部51は、受信した領域画像と、製品DB571から抽出した領域画像とをマッチング処理を行う。制御部51は、マッチ度が所定閾値以上であると判定した場合、製品DB571から該当するパーツ固有情報を取得する。なお、制御部51は、直接に撮影された領域画像と、製品DB571に記憶された領域画像とを比較しても良い。
制御部51は、取得したパーツの製造情報、素材情報及び製品への取付け情報を含むパーツ固有情報を通信部53により画像処理サーバ1に送信する。画像処理サーバ1の制御部11は、工場サーバ5から送信されたパーツ固有情報を通信部13により受信し、受信したパーツ固有情報に対してパーツIDを割り振る。なお、本実施形態では、制御部11はパーツIDを割り振った例を説明したが、これに限るものではない。例えば、制御部11は工場サーバ5で管理用のパーツIDを取得して利用しても良い。
制御部11は、割り振ったパーツIDに対応するパーツをパーツサーバ3に登録する。具体的には、制御部11は通信部13を介して、割り振ったパーツIDに対応付けて、抽出した領域画像をパーツサーバ3に送信(出力)する。パーツサーバ3の制御部31は、通信部33を介して、画像処理サーバ1から送信されたパーツID及び領域画像を受信する。制御部31は、受信したパーツIDに対応付けて領域画像を大容量記憶部37のパーツ固有情報DB371に記憶する。具体的には、制御部31は、パーツID、領域画像及び登録日時を一つのレコードとしてパーツ固有情報DB371に記憶する。
制御部11は、割り振ったパーツIDに対応するパーツ固有情報(パーツ詳細情報)をDBサーバ4に出力する。具体的には、制御部11は通信部13を介して、割り振ったパーツIDに対応付けて、受信したパーツ固有情報をDBサーバ4に送信(出力)する。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID及びパーツ固有情報を通信部43により受信する。制御部41は、受信したパーツIDに対応付けて、パーツ固有情報を大容量記憶部45のパーツ詳細DB452に記憶する。具体的には、制御部41は、パーツID、製造情報(加工機ID、加工機メーカ名、ロケーション番地、加工日時)、素材情報(素材ID、素材メーカID、ロット番号、納品日時)、及び取付け情報(取付けロボットID、取付けメーカ名、ロケーション番地)を一つのレコードとしてパーツ詳細DB452に記憶する。
続いて、オブジェクト認識モデル171を用いるオブジェクトの認識処理を説明する。図11は、オブジェクト認識モデル171を説明する説明図である。オブジェクト認識モデル171は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。オブジェクト認識モデル171は、パーツ画像を入力とし、該パーツ画像内のオブジェクトの位置及び種類を含む認識結果を出力とするニューラルネットワークを構築済みの認識器である。
本実施の形態のオブジェクト認識モデル171は、一例としてRCNN(Regions with Convolutional Neural Network)を用いて推定を行う。オブジェクト認識モデル171は、領域候補抽出部71aと、分類部71bとを含む。分類部71bは、図示を省略するニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。
画像処理サーバ1の制御部11は、パーツ画像と、該パーツ画像内のオブジェクトの位置(オブジェクト領域の座標範囲)及び種類(例えば、三角型の塗料マーク、星型のシール等)とが対応付けられた教師データの組み合わせを用いて学習を行う。教師データは、パーツ画像に対し、該パーツ画像内のオブジェクトがラベル付けされたデータである。
学習済みのオブジェクト認識モデル171に、パーツ画像が入力される。領域候補抽出部71aは、パーツ画像から、様々なサイズの領域候補を抽出する。分類部71bは、抽出された領域候補の特徴量を算出する。分類部71bは、算出した特徴量に基づいて領域候補に映っている被写体がオブジェクトであるか否か、及び被写体がオブジェクトである場合のオブジェクトの種類を分類する。オブジェクト認識モデル171は、領域候補の抽出と分類とを繰り返す。
オブジェクト認識モデル171は、所定の閾値(例えば、85%)よりも高い確率でオブジェクトが写っていると分類された領域候補について、オブジェクトが写っている確率、オブジェクトの位置(領域の座標範囲)及び種類を出力する。図11に示す例では、90%の確率でオブジェクトが写っている領域(オブジェクト位置)と、オブジェクト種類とが検出されている。
なお、図11では、パーツ画像内の単一のオブジェクトを認識した例を説明したが、これに限るものではない。パーツ画像内のオブジェクトが複数である場合、制御部11はオブジェクト認識モデル171を用いて、複数のオブジェクトを認識することができる。
この場合、分類部71bは、領域候補抽出部71aが抽出した領域候補の特徴量を算出し、算出した特徴量に基づいて領域候補に映っているそれぞれの被写体がオブジェクトであるか否か、及びそれぞれの被写体がオブジェクトである場合の該オブジェクトの種類を分類する。オブジェクト認識モデル171は、領域候補の抽出と分類とを繰り返し、それぞれのオブジェクトの位置及び種類を含む認識結果を出力する。
なお、RCNNの代わりに、CNN(Convolution Neural Network)、Fast RCNN、Faster RCNN、Mask RCNN、SSD(Single Shot Multibook Detector)、YOLO(You Only Look Once)、SVM(Support Vector Machine)、ベイジアンネットワーク、または回帰木等の任意の物体検出アルゴリズムを使用しても良い。
なお、本実施形態では、オブジェクト認識モデル171が画像処理サーバ1により構築されても良く、または外部の情報処理装置により構築されても良い。オブジェクト認識モデル171が外部の情報処理装置により構築された場合、画像処理サーバ1は、外部の情報処理装置から学習済みのオブジェクト認識モデル171をダウンロードしてインストールしても良い。
なお、オブジェクトの認識処理は、上述した機械学習により認識処理に限るものではない。例えば、A-KAZE(Accelerated KAZE)、SIFT(Scale Invariant Feature Transform)、SURF(Speeded-Up Robust Features)、ORB(Oriented FAST and Rotated BRIEF)、HOG(Histograms of Oriented Gradients)等の局所特徴量抽出方法を用いてパーツ画像内のオブジェクトを認識しても良い。
図12及び図13は、パーツ固有情報を出力する際の処理手順を示すフローチャートである。画像処理サーバ1の制御部11は、通信部13を介して、パーツ画像を撮影装置2から取得する(ステップS101)。制御部11は、取得したパーツ画像を入力した場合に該パーツ画像内のオブジェクトを認識した認識結果を出力する学習済みのオブジェクト認識モデル171に、取得したパーツ画像を入力し、該パーツ画像内のオブジェクトを認識した認識結果を出力する(ステップS102)。
制御部11は、認識した認識結果に基づき、オブジェクトを認識したか否かを判定する(ステップS103)。制御部11は、オブジェクトを認識していないと判定した場合(ステップS103でNO)、ステップS101に戻る。制御部11は、オブジェクトを認識したと判定した場合(ステップS103でYES)、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する(ステップS104)。
具体的には、制御部11は認識した認識結果に基づき、オブジェクトの種類(例えば、星シール、丸型の強制打痕穴等)を特定する。制御部11は、特定したオブジェクトの種類に対応するオフセット位置及び領域画像のサイズを記憶部12または大容量記憶部17から読み出す。例えば、認識したオブジェクトに対応するオフセット位置は、水平方向にオブジェクトのバウンディングボックス(Bounding Box)の中心から右への20ピクセルである。制御部11は、認識したオブジェクトのバウンディングボックスの中心から読み出したオフセット位置にて、読み出した領域画像のサイズ(例えば、120×120ピクセル)の領域画像を抽出する。なお、領域画像の抽出処理は、上述したオブジェクトのバウンディングボックスの中心に限るものではない。例えば、制御部11はオブジェクトの特定のコーナーの座標を起点としたオフセット位置にて領域画像を抽出しても良い。
制御部11は、通信部13を介して、パーツ種別ID、オブジェクトよるオフセット位置、及び抽出した領域画像と共に工場サーバ5に送信する(ステップS105)。工場サーバ5の制御部51は、通信部53を介して、画像処理サーバ1から送信されたパーツ種別ID、オフセット位置及び領域画像を受信する(ステップS501)。
制御部51は、受信したパーツ種別ID、オフセット位置及び領域画像に基づき、大容量記憶部57の製品DB571から、パーツの製造情報、素材情報及び製品への取付け情報を含むパーツ固有情報を取得する(ステップS502)。制御部51は、取得したパーツ固有情報を通信部53により画像処理サーバ1に送信する(ステップS503)。画像処理サーバ1の制御部11は、工場サーバ5から送信されたパーツ固有情報を通信部13により受信し(ステップS106)、受信したパーツ固有情報に対してパーツIDを割り振る(ステップS107)。
制御部11は、割り振ったパーツIDに対応付けて、抽出した領域画像をパーツサーバ3に通信部13により送信する(ステップS108)。パーツサーバ3の制御部31は、通信部33を介して、画像処理サーバ1から送信されたパーツID及び領域画像を受信する(ステップS301)。制御部31は、受信したパーツIDに対応付けて領域画像を大容量記憶部37のパーツ固有情報DB371に記憶する(ステップS302)。
制御部11は、割り振ったパーツIDに対応付けて、受信したパーツ固有情報をDBサーバ4に通信部13により送信する(ステップS109)。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID及びパーツ固有情報を通信部43により受信する(ステップS401)。制御部41は、受信したパーツIDに対応付けて、パーツ固有情報を大容量記憶部45のパーツ詳細DB452に記憶する(ステップS402)。
本実施形態によると、パーツ画像内のオブジェクトから所定のオフセット位置にて抽出された領域画像に対応するパーツ固有情報を取得することが可能となる。
本実施形態によると、パーツ画像に基づき、オブジェクト認識モデル171を用いて該パーツ画像内のオブジェクトを認識することが可能となる。
本実施形態によると、オブジェクトの位置と合わせることにより、レーザー等を用いる位置補正システムを利用せずに、高精度の位置合わせを実現することが可能となる。
(実施形態2)
実施形態2は、パーツのパーツIDに対応付けて、該パーツを使用した製品の製品IDをDBサーバ4に出力する形態に関する。なお、実施形態1と重複する内容については説明を省略する。
図14は、製品IDをパーツIDに対応付けて出力する動作を説明する説明図である。画像処理サーバ1の制御部11は、通信部13を介して、パーツ画像を撮影装置2から取得する。制御部11は、取得したパーツ画像をオブジェクト認識モデル171に入力し、該パーツ画像内のオブジェクトを認識した認識結果を出力する。制御部11は、認識結果に基づいてオブジェクトを認識した場合、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する。
続いて、パーツサーバ3からパーツIDを取得する処理を説明する。制御部11は、抽出した領域画像を通信部13によりパーツサーバ3に送信する。パーツサーバ3の制御部31は、画像処理サーバ1から送信された領域画像を通信部33により受信し、受信した領域画像の特徴量を抽出する。制御部31は、抽出した画像領域の特徴量と、大容量記憶部37のパーツ固有情報DB371に記憶されたパーツ画像の特徴量とを比較する。
制御部31は両者の特徴量が一致すると判定した場合、該当するパーツIDをパーツ固有情報DB371から取得する。なお、特徴量の比較処理に関しては、完全一致に限らず、例えばマッチ度が所定閾値以上であれば、両者の特徴量が一致すると判定した結果を出力しても良い。また、機械学習により生成された学習済みの画像認識モデルを用いて特徴量の比較処理を行っても良い。制御部31は、取得したパーツIDを通信部33により画像処理サーバ1に送信する。画像処理サーバ1の制御部11は、パーツサーバ3から送信されたパーツIDを通信部13により受信する。
続いて、工場サーバ5から製品IDを取得する処理を説明する。制御部11は、通信部13を介して、パーツ種別ID及びオブジェクトよるオフセット位置を、抽出した領域画像と共に工場サーバ5に送信する。工場サーバ5の制御部51は、通信部53を介して、画像処理サーバ1から送信されたパーツ種別ID、オフセット位置及び領域画像を受信する。
制御部51は、受信したパーツ種別ID、オフセット位置及び領域画像に基づき、大容量記憶部57の製品DB571から該当する製品IDを取得する。制御部51は、取得した製品IDを通信部53により画像処理サーバ1に送信する。画像処理サーバ1の制御部11は、通信部13を介して、工場サーバ5から送信された製品IDを受信し、受信した製品IDをパーツIDに対応付けてDBサーバ4に送信(出力)する。
DBサーバ4の制御部41は、通信部43を介して、画像処理サーバ1から送信された製品ID及びパーツIDを受信する。制御部41は、受信した製品IDをパーツIDに対応付けて、大容量記憶部45の製品管理DB451に記憶する。具体的には、制御部41は、製品ID、製品の種別、製品名及びパーツIDを一つのレコードとして製品管理DB451に記憶する。
図15及び図16は、製品IDをパーツIDに対応付けて出力する際の処理手順を示すフローチャートである。なお、図12及び図13と重複する内容については同一の符号を付して説明を省略する。画像処理サーバ1の制御部11は、ステップS101~S104を実行する。制御部11は、抽出した領域画像を通信部13によりパーツサーバ3に送信する(ステップS121)。
パーツサーバ3の制御部31は、画像処理サーバ1から送信された領域画像を通信部33により受信する(ステップS321)。制御部31は、受信した領域画像に基づいて、大容量記憶部37のパーツ固有情報DB371から該当するパーツIDを取得する(ステップS322)。制御部31は、取得したパーツIDを通信部33により画像処理サーバ1に送信する(ステップS323)。画像処理サーバ1の制御部11は、パーツサーバ3から送信されたパーツIDを通信部13により受信する(ステップS122)。
制御部11は、ステップS105を実行する。工場サーバ5の制御部51は、ステップS501を実行する。制御部51は、受信したパーツ種別ID、オブジェクトよるオフセット位置及び領域画像に基づき、大容量記憶部57の製品DB571から該当する製品IDを取得する(ステップS521)。制御部51は、取得した製品IDを通信部53により画像処理サーバ1に送信する(ステップS522)。
画像処理サーバ1の制御部11は、通信部13を介して、工場サーバ5から送信された製品IDを受信し(ステップS123)、受信した製品IDをパーツIDに対応付けてDBサーバ4に送信する(ステップS124)。DBサーバ4の制御部41は、通信部43を介して、画像処理サーバ1から送信された製品ID及びパーツIDを受信する(ステップS421)。制御部41は、受信した製品IDをパーツIDに対応付けて、大容量記憶部45の製品管理DB451に記憶する(ステップS422)。
本実施形態によると、パーツと、該パーツを使用した製品とが対応付けられた情報を記憶して管理することにより、出荷後の工程でトレーサビリティを確保することが可能となる。
(実施形態3)
実施形態3は、登録済みのパーツを削除する形態に関する。なお、実施形態1~2と重複する内容については説明を省略する。製品の生産計画に基づき、登録済みの第1パーツに関連付けた第2パーツの登録期間が所定期間を過ぎた場合、登録済みの第1パーツを削除するアラートまたは指令を出力することができる。
図17は、実施形態3のトレーサビリティシステムの概要を示す説明図である。なお、図1と重複する内容については同一の符号を付して説明を省略する。本実施形態のシステムは、情報処理装置6を含む。
情報処理装置6は、期限切れのパーツの検出、該期限切れのパーツに関連付けた登録済みのパーツを削除する指示の送信等を行う情報処理装置である。情報処理装置6は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC等である。本実施形態において、情報処理装置6はサーバ装置であるものとし、以下では簡潔のため削除サーバ6と読み替える。
図18は、削除サーバ6の構成例を示すブロック図である。削除サーバ6は、制御部61、記憶部62、通信部63、入力部64、表示部65、読取部66、大容量記憶部67及び時計部68を含む。各構成はバスBで接続されている。
制御部61はCPU、MPU、GPU等の演算処理装置を含み、記憶部62に記憶された制御プログラム6Pを読み出して実行することにより、削除サーバ6に係る種々の情報処理、制御処理等を行う。なお、図18では制御部61を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
記憶部62はRAM、ROM等のメモリ素子を含み、制御部61が処理を実行するために必要な制御プログラム6P又はデータ等を記憶している。また、記憶部62は、制御部61が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部63は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、パーツサーバ3及びDBサーバ4等との間で情報の送受信を行う。
入力部64は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部61へ出力する。表示部65は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部61の指示に従い各種情報を表示する。
読取部66は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体6aを読み取る。制御部61が読取部66を介して、制御プログラム6Pを可搬型記憶媒体6aより読み取り、大容量記憶部67に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部61が制御プログラム6Pをダウンロードし、大容量記憶部67に記憶しても良い。さらにまた、半導体メモリ6bから、制御部61が制御プログラム6Pを読み込んでも良い。
大容量記憶部67は、例えばHDD、SSD等の記録媒体を備える。大容量記憶部67は、パーツ管理DB671及び生産計画DB672を含む。パーツ管理DB671は、製品の生産計画に基づき、パーツの登録期限等を管理するための管理情報を記憶している。生産計画DB672は、製品の生産計画を記憶している。生産計画は、製品に関する情報、製品を組み立てるパーツ、及びパーツの数量、登録(納品)日時等の生産計画に関する情報である。
なお、本実施形態において記憶部62及び大容量記憶部67は一体の記憶装置として構成されていても良い。また、大容量記憶部67は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部67は削除サーバ6に接続された外部記憶装置であっても良い。
なお、本実施形態では、削除サーバ6は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。さらにまた、削除サーバ6は工場サーバ5または他のサーバと一体化されていても良い。
図19は、パーツ管理DB671のレコードレイアウトの一例を示す説明図である。パーツ管理DB671は、管理ID列、生産計画ID列、パーツID列、登録状態列及び登録日時列を含む。管理ID列は、各管理データを識別するために、一意に特定される管理データのIDを記憶している。生産計画ID列は、生産計画を特定する生産計画IDを記憶している。パーツID列は、パーツを特定するパーツIDを記憶している。登録状態列は、パーツサーバ3でパーツの登録状態を記憶している。登録状態列には、例えば「登録済み」、「未登録」等が記憶されても良い。登録日時列は、パーツサーバ3にパーツを登録した日時情報を記憶している。
図20は、生産計画DB672のレコードレイアウトの一例を示す説明図である。生産計画DB672は、生産計画ID列、製品ID列、パーツ数列、パーツID列及び登録期限列を含む。生産計画ID列は、各生産計画を識別するために、一意に特定される生産計画のIDを記憶している。製品ID列は、製品を特定する製品IDを記憶している。パーツ数列は、製品を組み立てるパーツの数量を記憶している。パーツID列は、パーツを特定するパーツIDを記憶している。登録期限列は、パーツサーバ3にパーツを登録する期限情報を記憶している。
削除サーバ6の制御部61は、登録状態が「未登録」であるパーツID(複数可)、及び該パーツIDに対応する生産計画IDを大容量記憶部67のパーツ管理DB671から抽出する。制御部61は、抽出したパーツID及び生産計画IDに基づき、大容量記憶部67の生産計画DB672から該パーツIDに対応するパーツの登録期限を取得する。
制御部61は、現在日時を時計部68により取得し、取得した現在日時とパーツの登録期限とを比較する。制御部61はパーツの登録期限が過ぎたと判定した場合、パーツIDに対応付けて、該パーツを削除するアラートをパーツサーバ3またはDBサーバ4に送信(出力)する。アラートは、例えばパーツの登録期限を切れた旨を含むメッセージであっても良い。また、制御部61は、期限切れのパーツに対してレポートを作成し、作成したレポートを出力しても良い。
さらにまた、制御部61は、期限切れのパーツIDに対応付けて、パーツを削除する指令をパーツサーバ3またはDBサーバ4に送信(出力)することができる。パーツサーバ3またはDBサーバ4は、削除サーバ6から期限切れのパーツを削除する指令を受信した場合、記憶された該当する登録済みのパーツを削除する。
図21は、登録済みのパーツを削除する際の処理手順を示すフローチャートである。削除サーバ6の制御部61は、登録状態が「未登録」であるパーツID、及び該パーツIDに対応する生産計画IDを大容量記憶部67のパーツ管理DB671から抽出する(ステップS631)。なお、抽出されたパーツIDは、単一のパーツIDであっても良く、または複数のパーツIDであっても良い。以下では、複数のパーツIDの例を説明する。
制御部61は、抽出したそれぞれのパーツID及び該パーツIDに対応する生産計画IDに基づき、大容量記憶部67の生産計画DB672からそれぞれのパーツIDに対応する登録期限を取得する(ステップS632)。制御部61は、現在日時を時計部68により取得し、取得した現在日時とパーツの登録期限とを比較し、期限切れのパーツIDを抽出する(ステップS633)。
制御部61は抽出したパーツIDに基づいて、期限切れのパーツのレポートを生成する(ステップS634)。レポートは、例えばパーツID及びパーツの登録期限等を含む。制御部61は、通信部63を介して、生成したレポートと、期限切れのパーツを削除する削除指示とをパーツサーバ3及びDBサーバ4に送信する(ステップS635)。なお、期限切れのパーツを削除する旨を含むアラートが送信されても良い。
パーツサーバ3の制御部31は、通信部33を介して、削除サーバ6から送信されたレポート及び削除指示を受信する(ステップS331)。制御部31は、受信したレポートからパーツIDを読み出し、大容量記憶部37のパーツ固有情報DB371から該当するパーツを削除する(ステップS332)。
DBサーバ4の制御部41は、通信部43を介して、削除サーバ6から送信されたレポート及び削除指示を受信する(ステップS431)。制御部41は、受信したレポートからパーツIDを読み出し、大容量記憶部45のパーツ詳細DB452から該当するパーツを削除する(ステップS432)。
なお、上述した処理に限るものではない。例えば削除サーバ6は、生成したレポートのみをパーツサーバ3またはDBサーバ4に送信しても良い。この場合、パーツサーバ3またはDBサーバ4は、削除サーバ6から送信されたレポートを受信して表示する。担当者がレポートの内容を確認した上で、削除対象のパーツに対する削除指示をパーツサーバ3またはDBサーバ4に入力しても良い。
本実施形態によると、パーツを登録(認証)する際の障害が発生する場合、該パーツに関連付けられた登録済みのパーツを削除するアラートまたは削除指示を出力するため、工程及び品質改善に役立てることが可能となる。
(実施形態4)
実施形態4は、オブジェクトの認識を向上させる形態に関する。なお、実施形態1~3と重複する内容については説明を省略する。
パーツ画像内のオブジェクトの認識を向上させるため、仮想カメラレンズ中心線または照明装置を利用することができる。なお、仮想カメラレンズ中心線は後述する。照明装置を利用する場合、オブジェクトを照明する照明がオンされた後に、撮影装置2はパーツ画像を撮影する。画像処理サーバ1の制御部11は、撮影装置2から撮影されたパーツ画像を取得する。その後に、実施形態1の処理と同様に、制御部11はパーツ画像内のオブジェクトの認識処理、領域画像の抽出処理、及び領域画像に対応するパーツ固有情報の取得処理等を行う。
照明装置は、対象の照明に用いる照明光を発する光源を備える装置であり、光源からの配光制御、光色調整等の光学的機能を備える。光源装置は、LED(light emitting diode)またはプロジェクタを用いることができる。なお、他の光源装置、例えば無電極光源を用いても良い。なお、本実施形態では、照明装置は、撮影装置2から分離しているが、これに限るものではない。例えば、照明装置が撮影装置2に内蔵された一体型であっても良い。
図22は、オブジェクトの認識向上に関する説明図である。図22Aは、照明なしのパーツ画像を示すイメージ図である。10aは、特徴点となるオブジェクトである。10bは、オブジェクトから所定のオフセット位置にて、パーツ画像から所定サイズで抽出された領域画像である。
図22Bは、仮想カメラレンズ中心線を用いて撮影したパーツ画像を示すイメージ図である。10cは、カメラレンズ中心線を想定した仮想カメラレンズ中心線である。仮想カメラレンズの中心線は、カメラレンズの中心を通り、レンズの面に水平な想定の直線である。例えば、プロジェクタの投影により仮想カメラレンズの中心線を設定しても良い。オブジェクト認識がカメラの中心付近(仮想カメラレンズ中心線)でシャッタータイミングである場合、カメラはこの付近で複数枚の撮影を行う。画像処理サーバ1は、ピント状況等の画質状況を判定して物体指紋認証に状態の良い画像を選び、物体指紋登録または認証を行う。
図22Cは、縞模様照明を用いて撮影したパーツ画像を示すイメージ図である。10dは、縞模様照明を用いて照明したパーツ画像の領域画像である。縞模様は、2色以上の異なる色または同色の濃淡を用いて複数の平行もしくは交差する線で構成された文様である。照明装置を用いて、オブジェクトを含むパーツ表面に縞模様を映して撮影することにより、パーツ表面に生じる輝度変化によりオブジェクトを認識しやすくなる。なお、縞模様照明に限らず、例えばカラーLED照明(赤、黄、緑または青色等)を用いても良い。
図22Dは、ピンポイント照明を用いて撮影したパーツ画像を示すイメージ図である。10eは、ピンポイント照明を用いて照明したパーツ画像の領域画像である。ピンポイント照明は、1点集中で照らすタイプの照明である。オブジェクトだけをピンポイント照明で照らすことにより、オブジェクトを認識しやすくなる。
なお、上述した処理では各種の照明を用いてオブジェクトを認識する例を説明したが、これに限るものではない。パーツ表面(領域画像)の物体指紋にも同様に適用される。例えば、金属など光沢の強い表面の微細な凹凸を有するパーツ表面に縞模様を映して撮影し、パーツ表面に生じる輝度変化により特徴量を抽出し、抽出した特徴量に基づいてパーツ表面の物体指紋を認識する。
本実施形態によると、仮想カメラレンズ中心線、縞模様またはピンポイント照明を用いてパーツ画像を撮影することが可能となる。
本実施形態によると、仮想カメラレンズ中心線、縞模様またはピンポイント照明を用いて撮影したパーツ画像を利用することにより、該パーツ画像内のオブジェクトを認識しやすくなる。
(実施形態5)
実施形態5は、二つの撮影装置によりパーツ画像を取得する形態に関する。なお、実施形態1~4と重複する内容については説明を省略する。本実施形態のシステムは、撮影装置2の代わりに、撮影装置2a及び撮影装置2bを含む。
撮影装置2aは、パーツ全体を撮影する撮影装置である。例えば撮影対象範囲が車のフロントドアである場合、撮影装置2aはフロントドアを撮影して画像を生成する。撮影装置2aには、例えば被写界深度が深い広角レンズが配置されても良い。
撮影装置2bは、撮影装置2aよりも拡大率が高い撮影装置であり、撮影装置2aが撮影したパーツ画像内の一部分を拡大して撮影する。撮影装置2bには、例えば近距離にある被写体を大きく写すための望遠レンズが配置されても良い。撮影装置2bは、撮影装置2aが対象となるパーツ画像を認識した場合にオブジェクトを含むパーツの拡大画像を撮影できる位置に設置されている。
本実施形態の撮影装置2aまたは撮影装置2bは、無線通信部を含む。無線通信部は、通信に関する処理を行うための無線通信モジュールであり、ネットワークNを介して、画像処理サーバ1等と撮影画像の送受信を行う。なお、撮影装置2aまたは撮影装置2bの代わりに、撮影可能な情報処理端末(例えばスマートフォン、携帯電話、タブレット、パーソナルコンピュータ端末等)であっても良い。
図23は、二つの撮影装置によりパーツ画像を撮影する説明図である。11aは、特徴点となるオブジェクトである。11bは、オブジェクトから所定のオフセット位置にて所定サイズで抽出された領域画像である。画像処理サーバ1の制御部11は、通信部13を介して、撮影装置2aが撮影した搬送中のパーツの第1撮影画像を取得する。
制御部11は、取得した第1撮影画像の特徴量を抽出し、抽出した特徴量に基づき、第1撮影画像中にパーツ画像が存在するか否かを判定する。例えば、撮影対象範囲がフロントドアである場合、制御部11は取得した第1撮影画像の特徴量と、予め記憶されたフロントドアの特徴量とを比較して判断しても良い。特徴量の抽出処理に関しては、例えばA-KAZE、SIFT等の局所特徴量抽出方法を用いて特徴量を抽出しても良い。なお、パーツ画像の判定処理に関しては、機械学習によって構築したモデルを用いて自動判定しても良い。
制御部11は、第1撮影画像中にパーツ画像が存在すると判定した場合、撮影装置2bが撮影した第2撮影画像(オブジェクトを含むパーツの拡大画像)を通信部13により取得する。制御部11は、取得した第2撮影画像をオブジェクト認識モデル171に入力し、該第2撮影画像内のオブジェクトを認識した認識結果を出力する。なお、オブジェクトの認識処理は、実施形態1と同様であるため、説明を省略する。
制御部11は、第1撮影画像中にパーツ画像が存在していないと判定した場合、撮影角度等の調整指示を撮影装置2aに送信する。撮影装置2aは、画像処理サーバ1から送信された調整指示に応じて、撮影制御のパラメータを調整する。
図24は、パーツ画像を取得する際の処理手順を示すフローチャートである。なお、パーツ画像内のパーツは予めパーツサーバ3に登録済みであるものとして説明する。撮影装置2aは、搬送されているパーツの第1撮影画像を撮影し、撮影した第1撮影画像を画像処理サーバ1に送信する(ステップS241)。画像処理サーバ1の制御部11は、通信部13を介して、撮影装置2aが撮影した第1撮影画像を取得する(ステップS641)。制御部11は、取得した第1撮影画像の特徴量を抽出する(ステップS642)。制御部11は、抽出した特徴量に基づき、第1撮影画像中にパーツ画像が存在するか否かを判定する(ステップS643)。
制御部11は、第1撮影画像中にパーツ画像が存在すると判定した場合(S643でYES)、第2撮影画像の撮影指示を通信部13により撮影装置2bに送信する(ステップS644)。撮影装置2bは、画像処理サーバ1から送信された第2撮影画像の撮影指示に応じて、第2撮影画像を撮影する(ステップS245)。撮影装置2bは、撮影した第2撮影画像を画像処理サーバ1に送信する(ステップS246)。画像処理サーバ1の制御部11は、撮影装置2bから送信された第2撮影画像を通信部13により受信する(ステップS645)。制御部11は、受信した第2撮影画像をオブジェクト認識モデル171に入力し、該第2撮影画像内のオブジェクトを認識した認識結果を出力する(ステップS646)。
制御部11は、第1撮影画像中にパーツ画像が存在していないと判定した場合(ステップS643でNO)、撮影角度等の調整指示を通信部13により撮影装置2aに送信するする(ステップS647)。撮影装置2aは、画像処理サーバ1から送信された調整指示を受信する(ステップS242)。撮影装置2aは、受信した調整指示に応じて、撮影制御のパラメータ(例えば、角度等)を調整する(ステップS243)。撮影装置2aは、第1撮影画像を再撮影し(ステップS244)、ステップS241に戻る。なお、撮影装置2aの調整を行わない場合、ステップS643でNOの処理の後に、ステップS641に戻り、次のパーツが搬送されるまで待機する。
撮影装置2aはパーツ全体を撮影するため、上述したオブジェクト認識処理のほか、パーツ画像からパーツの傷・汚れ・割れ・しわ・変形等の損傷を検出することができる。画像処理サーバ1は、例えば機械学習により生成された学習済みの損傷認識モデルに、撮影装置2aが撮影したパーツの第1撮影画像を入力し、パーツの損傷を認識した認識結果を出力しても良い。また、画像処理サーバ1は例えばA-KAZE等の局所特徴量抽出方法を用いて、第1撮影画像の特徴量を抽出し、抽出した特徴量に基づいてパーツの損傷を検出しても良い。なお、パーツの損傷を検出する処理に関しては、実施形態7で後述する。
本実施形態によると、二つの撮影装置を備えてパーツを撮影することにより、オブジェクトの認識率を向上させることが可能となる。
(実施形態6)
実施形態6は、パーツ画像内の歪みまたは傾きを検出した場合、歪みまたは傾きに応じてオフセット位置またはパーツ画像を補正する形態に関する。なお、実施形態1~5と重複する内容については説明を省略する。
撮影されたパーツ画像内の歪みまたは傾きを検出した場合、オフセット位置またはパーツ画像を補正する必要がある。図25は、オフセット位置の補正を説明する説明図である。図25Aは、歪みまたは傾きなしのパーツ画像を説明する説明図である。12aは、パーツ画像内のオブジェクトである。12bは、オブジェクトから所定のオフセット位置にて所定サイズで抽出された領域画像である。
図25Bは、左右歪み(変形)が生じたパーツ画像を説明する説明図である。パーツ画像内のオブジェクトの縦幅が基準(正常)縦幅と同等であり、横幅が基準横幅より短くなる左右歪みが生じた例である。この場合、オブジェクトから所定のオフセット位置にて領域画像を抽出した場合、抽出するべき領域画像に対して位置ずれが生じるため、オフセット位置を補正する必要がある。
具体的には、画像処理サーバ1の制御部11は、変形後の縦横比を算出する。制御部11は、算出した縦横比と基準縦横比とに基づいて、オフセット位置を補正する。例えば、元のオフセット位置から更に右に20ピクセルを移動する。また、直接にオフセット位置を補正するほか、パーツ画像全体の補正によりオフセット位置の補正を実現しても良い。具体的には、制御部11は基準縦横比に基づいて、基準パーツ画像に近付けるように縦横比の補正処理を行い、補正後のパーツ画像から所定のオフセット位置にて領域画像を抽出する。
図25Cは、上下歪みが生じたパーツ画像を説明する説明図である。パーツ画像内のオブジェクトの横幅が基準横幅と同等であり、縦幅が基準縦幅より短くなる上下歪みが生じた例である。オフセット位置の補正処理に関しては、図25Bでの補正処理と同様であるため、説明を省略する。
図25Dは、面積縮小歪みが生じたパーツ画像を説明する説明図である。各領域画像の遠近により該領域画像の面積に相違が生じる。撮影装置2が撮影対象パーツから遠い距離に設置された場合、撮影されたパーツ画像が小さく見える。この場合、パーツ画像に対して面積(大きさ)補正を行うことにより、オフセット位置の補正を実現することができる。具体的には、制御部11は、基準パーツ画像の面積に基づき、該パーツ画像の領域画像を構成する画素数(ピクセル数)を増やすことにより、該領域画像に対する拡大処理を行う。
図25Eは、面積拡大歪みが生じたパーツ画像を説明する説明図である。撮影装置2が撮影対象パーツから近い距離に設置された場合、撮影されたパーツ画像が大きく見える。この場合、パーツ画像に対して面積補正を行うことにより、オフセット位置の補正を実現することができる。具体的には、制御部11は、基準パーツ画像の面積に基づき、該パーツ画像の領域画像を構成する画素数を減らすことにより、該領域画像に対する縮小処理を行う。
画像の拡縮処理に関しては、例えば、最近傍補間法(ニアレストネイバー法、nearest neighbor interpolation)を利用しても良い。最近傍補間法は、拡大または縮小後の画素を拡縮率で除算し、その値を四捨五入して得られた座標の画素をそのまま使う線形補間法である。また、画像の拡縮処理の技術であるバイリニア補間法、バイキュービック補間法、及びLanczos(ランツォシュ)補間法等が利用されても良い。
図25Fは、傾きパーツ画像を説明する説明図である。撮影角度のずれがあった場合、撮影されたパーツ画像に対して傾き補正する必要がある。具体的には、制御部11は、基準パーツ画像に基づき、傾きパーツ画像の傾き角度を算出する。制御部11は算出した傾き角度に応じて、回転処理を行い傾きパーツ画像を補正する。
なお、上述した画像処理に関しては、パーツ画像の全体を補正しても良く、またはパーツ画像からオブジェクト及びオフセット位置の領域画像を抽出し、抽出した領域画像を補正しても良い。
図26は、面積歪みが生じたパーツ画像を補正する際の処理手順を示すフローチャートである。以下では、一例として面積縮小歪みまたは面積拡大歪みが生じた際の例を示す。画像処理サーバ1の制御部11は、通信部13を介して、撮影装置2から送信されたパーツ画像を取得する(ステップS151)。制御部11は、取得したパーツ画像に対して面積歪みが生じたか否かを判定する(ステップS152)。制御部11は、面積歪みが生じていないと判定した場合(ステップS152でNO)、処理を終了する。制御部11は、面積歪みが生じたと判定した場合(ステップS152でYES)、面積縮小であるか否かを判定する(ステップS153)。
制御部11は、面積縮小であると判定した場合(ステップS153でYES)、基準パーツ画像の面積に基づき、該パーツ画像の領域画像を構成する画素数を増やすことにより、該領域画像に対する拡大処理を行う(ステップS154)。なお、基準パーツ画像が予め記憶部12または大容量記憶部17に記憶されている。制御部11は、面積縮小でない(面積拡大)と判定した場合(ステップS153でNO)、基準パーツ画像の面積に基づき、該パーツ画像の領域画像を構成する画素数を減らすことにより、該領域画像に対する縮小処理を行う(ステップS155)。
本実施形態によると、歪みまたは傾きが生じたパーツ画像に対してオフセット位置の補正処理を行うことにより、精度が高い領域画像を抽出することが可能となる。
(実施形態7)
実施形態7は、パーツ固有情報(物体指紋等)とパーツの損傷に関する情報との両方を出力する形態に関する。なお、実施形態1~6と重複する内容については説明を省略する。パーツの損傷は、パーツの傷、汚れ、割れ、しわ、変形等を含む。
図27は、実施形態7の画像処理サーバ1の構成例を示すブロック図である。なお、図2と重複する内容については同一の符号を付して説明を省略する。大容量記憶部17には、損傷認識モデル172が記憶されている。損傷認識モデル172は、パーツ画像に基づいてパーツ画像内のパーツの損傷を認識する認識器であり、機械学習により生成された学習済みモデルである。
図28は、実施形態7のDBサーバ4の構成例を示すブロック図である。なお、図5と重複する内容については同一の符号を付して説明を省略する。大容量記憶部45には、パーツ損傷情報DB453が記憶されている。パーツ損傷情報DB453は、パーツ画像に基づいて検出されたパーツの損傷に関する情報を記憶している。パーツの損傷に関する情報は、損傷の位置及び種類等を含む。
図29は、パーツ損傷情報DB453のレコードレイアウトの一例を示す説明図である。パーツ損傷情報DB453は、パーツID列、損傷種類列、位置列及び検出日時列を含む。パーツID列は、パーツを特定するパーツIDを記憶している。損傷種類列は、パーツの損傷の種類を記憶している。位置列は、損傷の位置(例えば、座標等)を記憶している。検出日時列は、パーツの損傷が検出された日時情報を記憶している。
画像処理サーバ1は、撮影装置2にて、撮影した同一のパーツ画像から、パーツ固有情報とパーツの損傷に関する情報との両方を取得して出力することができる。なお、パーツ固有情報の取得処理に関しては、実施形態1でのパーツ固有情報の取得処理と同様であるため、説明を省略する。以下では、パーツの損傷に関する情報の取得処理を詳しく説明する。
画像処理サーバ1の制御部11は、通信部13を介して、撮影装置2からパーツ画像を取得する。制御部11は、取得したパーツ画像を入力した場合に該パーツ画像内のパーツの損傷を認識した認識結果を出力する学習済みの損傷認識モデル172に、取得したパーツ画像を入力し、該パーツ画像内の損傷を認識した認識結果を出力する。
損傷認識モデル172は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。損傷認識モデル172は、パーツ画像を入力とし、該パーツ画像内のパーツの損傷の位置及び種類を含む認識結果を出力とするニューラルネットワークを構築済みの認識器である。
本実施の形態の損傷認識モデル172は、一例としてRCNNを用いて推定を行う。損傷認識モデル172は、領域候補抽出部と分類部とを含む。分類部は、ニューラルネットワークを含む。
画像処理サーバ1の制御部11は、パーツ画像と、該パーツ画像内の損傷の種類(例えば、傷、汚れ、割れ、しわ、変形等)とが対応付けられた教師データの組み合わせを用いて学習を行う。教師データは、パーツ画像に対し、該パーツ画像内の損傷がラベル付けされたデータである。
学習済みの損傷認識モデル172に、パーツ画像が入力されると、領域候補抽出部は、パーツ画像から、様々なサイズの領域候補を抽出する。分類部は、抽出された領域候補の特徴量を算出する。分類部は、算出した特徴量に基づいて領域候補に映っている被写体がパーツの損傷であるか否か、及び被写体が損傷である場合の損傷の種類を分類する。損傷認識モデル172は、領域候補の抽出と分類とを繰り返す。
損傷認識モデル172は、所定の閾値(例えば、85%)よりも高い確率で損傷が写っていると分類された領域候補について、パーツの損傷が写っている確率、損傷の位置(領域の座標範囲)及び種類を出力する。
なお、上述した処理に限らず、例えばパーツの損傷の種類ごとに学習済みの専用認識モデルを利用しても良い。例えば制御部11は、パーツ画像と、該パーツ画像内の傷とが対応付けられた教師データの組み合わせを用いて学習を行い、傷認識モデルを構築する。制御部11は、構築した傷認識モデルを用いて、パーツ画像を入力してパーツ画像内の傷を認識した認識結果を出力する。
なお、RCNNの代わりに、CNN、Fast RCNN、Faster RCNN、Mask RCNN、SSD、YOLO、SVM、ベイジアンネットワーク、または回帰木等の任意の物体検出アルゴリズムを使用しても良い。
なお、パーツの損傷の認識処理は、上述した機械学習により認識処理に限るものではない。例えば、A-KAZE、SIFT等の局所特徴量抽出方法を用いてパーツ画像内の損傷を認識しても良い。
制御部11は、取得したパーツ固有情報及びパーツの損傷に関する情報に対してパーツIDを割り振る。制御部11は、割り振ったパーツIDに対応付けて、パーツ固有情報とパーツの損傷に関する情報(認識結果)とを通信部13によりDBサーバ4に送信する。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID、パーツ固有情報及びパーツの損傷に関する情報を通信部43により受信する。制御部41は、受信したパーツID、パーツ固有情報及びパーツの損傷に関する情報を大容量記憶部45のパーツ詳細DB452及びパーツ損傷情報DB453に記憶する。
具体的には、制御部41は、パーツIDに対応付けて、パーツの損傷種類、位置及び検出日時を一つのレコードとしてパーツ損傷情報DB453に記憶する。なお、パーツ固有情報の記憶処理に関しては、実施形態1でのパーツ固有情報の記憶処理と同様であるため、説明を省略する。
図30は、パーツ固有情報とパーツの損傷に関する情報との両方を出力する際の処理手順を示すフローチャートである。画像処理サーバ1の制御部11は、通信部13を介して、撮影装置2からパーツ画像を取得する(ステップS161)。制御部11は、取得したパーツ画像に基づき、パーツ固有情報を取得する(ステップS162)。制御部11は、学習済みの損傷認識モデル172に、取得したパーツ画像を入力し、該パーツ画像内のパーツの損傷に関する情報(損傷の認識結果)を取得する(ステップS163)。
制御部11は、取得したパーツ固有情報及びパーツの損傷に関する情報に対してパーツIDを割り振る(ステップS164)。制御部11は、割り振ったパーツIDに対応付けて、パーツ固有情報及びパーツの損傷に関する情報を通信部13によりDBサーバ4に送信する(ステップS165)。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID、パーツ固有情報及びパーツの損傷に関する情報を通信部43により受信する(ステップS461)。制御部41は、受信したパーツID、パーツ固有情報及びパーツの損傷に関する情報を大容量記憶部45のパーツ詳細DB452及びパーツ損傷情報DB453に記憶する(ステップS462)。
本実施形態によると、パーツ固有情報とパーツの損傷に関する情報との両方を出力することにより、パーツ固有情報(物体指紋等)によるトレーサビリティ機能と外観検査機能とを同時に実現することが可能となる。
(実施形態8)
実施形態8は、保管場所に一定期間以上滞留されている登録済みのパーツを検出する形態に関する。なお、実施形態1~7と重複する内容については説明を省略する。
図31は、実施形態8のパーツ固有情報DB371のレコードレイアウトの一例を示す説明図である。パーツ固有情報DB371はパーツサーバ3の大容量記憶部37に記憶されている。なお、図4と重複する内容については説明を省略する。パーツ固有情報DB371は、保管情報列を含む。保管情報列は、保管場所列、場所詳細列、保管開始日時列及び保管期間列を含む。保管場所列は、パーツが製品に取り付けられるまでの保管場所を記憶している。場所詳細列は、保管場所の緯度、経度または棚番号等の位置情報を記憶している。保管開始日時列は、パーツの保管を開始した日時情報を記憶している。保管期間列は、パーツが製品に取り付けられるまでの保管期間(例えば、半年、10ヶ月または1年等)を記憶している。
図32は、実施形態8のパーツ詳細DB452のレコードレイアウトの一例を示す説明図である。パーツ詳細DB452はDBサーバ4の大容量記憶部45に記憶されている。なお、図7と重複する内容については説明を省略する。パーツ詳細DB452は、保管情報列及び取付け情報列を含む。なお、保管情報列に関しては、パーツ固有情報DB371の保管情報列と同様であるため、説明を省略する。取付け情報列は、取付けロボットID列、取付けメーカ名列、ロケーション番地列及び取付け日時列を含む。取付けロボットID列、取付けメーカ名列及びロケーション番地列に関しては、図7と同様であるため、説明を省略する。取付け日時列は、パーツを製品に取り付けた日時情報を記憶している。
先ず、パーツの保管情報が予めパーツサーバ3に登録される。保管情報は、パーツが製品に取り付けられるまでの保管場所(例えば、場所名称、経度、緯度または棚情報等)、保管開始日時及び保管期間を含む。具体的には、パーツサーバ3はパーツの保管情報を取得する。例えばパーツサーバ3は、パーツ生産工場の担当者から入力されたパーツの保管情報を入力部34により受け付けても良い。パーツサーバ3はパーツIDに対応付けて、取得したパーツの保管情報に含まれているパーツの保管場所、場所の詳細情報(経度、緯度または棚番号等)、保管開始日時及び保管期間をパーツ固有情報DB371に記憶する。
続いて、パーツの保管情報をパーツIDに対応付けてDBサーバ4に出力する処理を説明する。画像処理サーバ1は、特徴点となるオブジェクトを含むパーツ画像を撮影装置2から取得する。実施形態1と同様に、画像処理サーバ1は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のオブジェクトを認識する。画像処理サーバ1は、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する。画像処理サーバ1は、抽出した領域画像をパーツサーバ3に送信する。
パーツサーバ3は、画像処理サーバ1から送信された領域画像を受信し、受信した領域画像の特徴量を抽出する。パーツサーバ3は、抽出した領域画像の特徴量と、パーツ固有情報DB371に記憶されたパーツ画像の特徴量とを比較する。なお、特徴量の比較処理に関しては、実施形態1と同様であるため、説明を省略する。パーツサーバ3は両者の特徴量が一致すると判定した場合、該当するパーツID、及び該パーツIDに対応するパーツの保管情報をパーツ固有情報DB371から取得する。
パーツサーバ3は、取得したパーツID及びパーツの保管情報を画像処理サーバ1に送信する。画像処理サーバ1は、パーツサーバ3から送信されたパーツID及びパーツの保管情報を受信し、受信したパーツID及びパーツの保管情報をDBサーバ4に送信する。DBサーバ4は、画像処理サーバ1から送信されたパーツID及びパーツの保管情報を受信する。DBサーバ4は、受信したパーツIDに対応付けて、パーツの保管場所、場所の詳細情報(経度、緯度または棚番号等)、保管開始日時及び保管期間をパーツ詳細DB452に記憶する。
続いて、保管場所に一定期間以上滞留されている登録済みのパーツを検出する処理を説明する。画像処理サーバ1は、例えばバッチ処理にて所定の期間ごとに、登録済みのパーツが保管場所に一定期間以上滞留されているか否かを判定する。具体的には、画像処理サーバ1は、パーツサーバ3から登録済みのパーツID、及び該パーツIDに対応するパーツの保管情報を取得する。画像処理サーバ1は、取得したパーツの保管情報に含まれている保管開始日時及び保管期間に基づいて、該パーツが一定期間(例えば、半年)以上滞留されているか否かを判定する。画像処理サーバ1は、該パーツが一定期間以上滞留されていると判定した場合、該パーツのパーツIDを取得する。
画像処理サーバ1は、取得したパーツIDに基づいて、該パーツが製品に取り付けられたか否かを判定する。具体的には、画像処理サーバ1は、パーツIDに基づいて該パーツの取付け情報がDBサーバ4のパーツ詳細DB452に存在しているか否かを判定する。パーツの取付け情報は、取付けロボットのID、パーツを製品に取り付けた際に利用した取付けロボットのメーカ名、パーツが取り付けられた住所番地若しくは生産ラインの名称、またはパーツを製品に取り付けた日時を含む。
画像処理サーバ1は、該パーツの取付け情報がパーツ詳細DB452に存在していると判定した場合、該パーツが既に製品に取り付けられたため、滞留パーツではないと判定する。画像処理サーバ1は、該パーツの取付け情報がパーツ詳細DB452に存在していないと判定した場合、該パーツを滞留対象として特定する。
図33は、パーツの保管情報をパーツIDに対応付けて出力する際の処理手順を示すフローチャートである。画像処理サーバ1の制御部11は、通信部13を介して、オブジェクトを含むパーツ画像を撮影装置2から取得する(ステップS171)。制御部11は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のオブジェクトを認識し(ステップS172)する。制御部11は、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する(ステップS173)。制御部11は、抽出した領域画像を通信部13によりパーツサーバ3に送信する(ステップS174)。
パーツサーバ3の制御部31は、画像処理サーバ1から送信された領域画像を通信部33により受信し(ステップS371)、受信した領域画像の特徴量を抽出する(ステップS372)。制御部31は、抽出した領域画像の特徴量に基づいて、該当するパーツID、及び該パーツIDに対応するパーツの保管情報をパーツ固有情報DB371から取得する(ステップS373)。制御部31は、取得したパーツID及びパーツの保管情報を通信部33により画像処理サーバ1に送信する(ステップS374)。
画像処理サーバ1の制御部11は、通信部13を介して、パーツサーバ3から送信されたパーツID及びパーツの保管情報を受信し(ステップS175)、受信したパーツID及びパーツの保管情報をDBサーバ4に送信する(ステップS176)。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID及びパーツの保管情報を通信部43により受信する(ステップS471)。制御部41は、受信したパーツIDに対応付けて、パーツの保管場所、場所の詳細情報(経度、緯度または棚番号等)、保管開始日時及び保管期間を大容量記憶部45のパーツ詳細DB452に記憶し(ステップS472)、処理を終了する。
図34は、滞留されているパーツを検出する際の処理手順を示すフローチャートである。画像処理サーバ1の制御部11は、通信部13を介して、登録済みの複数のパーツID、及び各パーツIDに対応するパーツの保管情報をパーツサーバ3のパーツ固有情報DB371から取得する(ステップS181)。制御部11は、取得した複数のパーツIDの中から一つのパーツIDを取得する(ステップS182)。制御部11は、取得した該パーツIDに対応するパーツの保管情報に含まれている保管開始日時に基づいて、保管期間(例えば、6ヶ月等)を過ぎたか否かを判定する(ステップS183)。
制御部11は、該パーツの保管期間を過ぎていないと判定した場合(ステップS183でNO)、ステップS182の処理に戻り、次のパーツIDを取得する。制御部11は、該パーツの保管期間を過ぎたと判定した場合(ステップS183でYES)、該パーツが製品に取り付けられたか否かを判定する(ステップS184)。具体的には、制御部11は通信部13を介して、パーツIDをDBサーバ4に送信して該パーツの取付け情報が既にパーツ詳細DB452に存在しているか否かを問い合わせる。取付け情報は、取付けロボットのID、取付けロボットのメーカ名、ロケーション番地または取付け日時等を含む。該パーツの取付け情報がパーツ詳細DB452に存在している場合、制御部11は、該パーツが既に製品に取り付けられたと判定する。該パーツの取付け情報がパーツ詳細DB452に存在していない場合、制御部11は、該パーツが製品に取り付けられていないと判定する。
制御部11は、該パーツが既に製品に取り付けられたと判定した場合(ステップS184でYES)、ステップS182の処理に戻り、次のパーツIDを取得する。制御部11は、該パーツが製品に取り付けられていないと判定した場合(ステップS184でNO)、該パーツを滞留対象として特定する(ステップS185)。制御部11は、複数のパーツIDの中に該パーツIDが最後のパーツIDであるか否かを判定する(ステップS186)。
制御部11は最後のパーツIDではないと判定した場合(ステップS186でNO)、ステップS182の処理に戻り、次のパーツIDを取得する。制御部11は最後のパーツIDであると判定した場合(ステップS186でYES)、滞留対象となるパーツに対してレポートを生成し(ステップS187)、処理を終了する。レポートは、例えば滞留対象となるパーツIDを記述したPDF(Portable Document Format)ファイルであっても良い。
なお、上述した処理に限るものではない。例えばパーツサーバ3は、所定の期間ごとに、保管場所に一定期間以上滞留されているパーツをパーツ固有情報DB371から抽出して画像処理サーバ1に送信する。画像処理サーバ1は、パーツサーバ3から送信されたパーツが製品に取り付けられていないと判定した場合、該パーツを滞留対象として特定しても良い。
本実施形態によると、パーツが製品に取り付けられるまでの保管場所及び保管期間をパーツIDに対応付けてDBサーバ4に出力することが可能となる。
本実施形態によると、保管場所に一定期間以上滞留されている登録済みのパーツを検出することにより、パーツの管理を強化することが可能となる。
(実施形態9)
実施形態9は、照合対象となるパーツと登録済みのパーツとを照合することにより、パーツの交換有無またはパーツ状態を判定する形態に関する。なお、実施形態1~8と重複する内容については説明を省略する。
パーツ状態は、パーツの使用に伴って該パーツを消耗(劣化)した消耗具合を指す。なお、本実施形態では、パーツの消耗具合に応じて三つの消耗レベルに分類される例を説明するが、他の分類法にも同様に適用される。例えば消耗レベル1は、パーツの消耗がない正常状態である。消耗レベル2は、パーツの消耗があまり進行しておらず、該パーツを継続して使用できるレベルである。消耗レベル3は、パーツの消耗が進行しており、メンテナンスまたは交換が推奨されるレベルである。
図35は、実施形態9の画像処理サーバ1の構成例を示すブロック図である。なお、図2と重複する内容については同一の符号を付して説明を省略する。大容量記憶部17には、消耗識別モデル173が記憶されている。消耗識別モデル173は、パーツ画像に基づいてパーツの消耗レベルを識別する識別器であり、機械学習により生成された学習済みモデルである。
図36は、実施形態9のDBサーバ4の構成例を示すブロック図である。なお、図5と重複する内容については同一の符号を付して説明を省略する。大容量記憶部45には、照合結果DB454が記憶されている。照合結果DB454は、照合対象となるパーツと登録済みのパーツとを照合した照合結果を記憶している。
図37は、照合結果DB454のレコードレイアウトの一例を示す説明図である。照合結果DB454は、パーツID列、パーツ画像列、交換有無列、消耗レベル列及び照合日時列を含む。パーツID列は、パーツを特定するためのパーツIDを記憶している。パーツ画像列は、パーツ画像の全体または一部分の領域画像を記憶している。交換有無列は、パーツが交換されたか否かの情報を記憶している。消耗レベル列は、パーツの消耗レベルを記憶している。照合日時列は、照合対象となるパーツと登録済みのパーツとを照合した日時情報を記憶している。
先ず、画像処理サーバ1は、照合対象となるパーツと登録済みのパーツとを照合する。具体的には、画像処理サーバ1は、照合対象となるパーツのパーツ画像を撮影装置2から取得する。実施形態1と同様に、画像処理サーバ1は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のオブジェクトを認識する。画像処理サーバ1は、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する。
画像処理サーバ1は、抽出した領域画像を工場サーバ5に送信する。工場サーバ5は、画像処理サーバ1から送信された領域画像を受信する。工場サーバ5は、受信した領域画像と、製品DB571に記憶された領域画像とのマッチング処理を行う。工場サーバ5は、マッチ度を含むマッチング結果を画像処理サーバ1に送信する。画像処理サーバ1は、工場サーバ5から送信されたマッチング結果を受信する。
画像処理サーバ1は、受信したマッチング結果に基づいて、該パーツのパーツ固有情報が製品DB571に存在しているか否かを判定する。例えば画像処理サーバ1は、マッチ度が所定閾値(例えば、95%)以上である場合、パーツ固有情報が製品DB571に存在していると判定する。画像処理サーバ1は、マッチ度が所定閾値未満である場合、パーツ固有情報が製品DB571に存在していないと判定する。
画像処理サーバ1は、パーツ固有情報が製品DB571に存在していないと判定した場合、該パーツが他社のパーツまたは別の型番のパーツに交換されたと判定する。画像処理サーバ1は、パーツ固有情報が製品DB571に存在していると判定した場合、該パーツに対してパーツの消耗レベルを判定する。具体的には、画像処理サーバ1は、パーツ画像を入力した場合に該パーツ画像に対応する消耗レベルを識別した識別結果を出力する学習済みの消耗識別モデル173に、パーツ画像を入力して該パーツ画像に対応する消耗レベルを識別した識別結果を出力する。なお、消耗レベルの識別処理に関しては後述する。
画像処理サーバ1は、照合対象となるパーツと登録済みのパーツとを照合した照合結果をDBサーバ4に送信する。照合結果は、照合対象となるパーツのパーツID、パーツ画像、交換有無情報、パーツの消耗レベルまたは照合日時等を含む。DBサーバ4は、画像処理サーバ1から送信された照合結果を照合結果DB454に記憶する。具体的には、DBサーバ4はパーツIDに対応付けて、パーツ画像、交換有無情報、消耗レベル及び照合日時を一つのレコードとして照合結果DB454に記憶する。なお、消耗レベルを判定していない場合、消耗レベル列には空欄または「-」が記憶されても良い。
続いて、消耗識別モデル173を用いるパーツの消耗レベルの識別処理を説明する。図38は、消耗識別モデル173を説明する説明図である。消耗識別モデル173は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。消耗識別モデル173は、パーツ画像の全体または一部分の領域画像を入力とし、該入力画像に対応する消耗レベルを識別した結果を出力とするニューラルネットワークを構築済みの識別器である。
画像処理サーバ1は、消耗識別モデル173として、パーツ画像の全体または一部分の領域画像内における消耗箇所の特徴量を学習するディープラーニングを行うことで消耗識別モデル173を構築(生成)する。例えば、消耗識別モデル173はCNNであり、パーツ画像の入力を受け付ける入力層と、該パーツ画像に対応する消耗レベルを識別した結果を出力する出力層と、バックプロパゲーションにより学習済の中間層とを有する。
入力層は、パーツ画像に含まれる各画素の画素値の入力を受け付ける複数のニューロンを有し、入力された画素値を中間層に受け渡す。中間層は、パーツ画像の特徴量を抽出する複数のニューロンを有し、抽出した画像特徴量を出力層に受け渡す。中間層は、入力層から入力された各画素の画素値を畳み込むコンボリューション層と、コンボリューション層で畳み込んだ画素値をマッピングするプーリング層とが交互に連結された構成により、パーツ画像の画素情報を圧縮しながら最終的に画像の特徴量を抽出する。その後中間層は、バックプロパゲーションによりパラメータが学習された全結合層により、パーツ画像に対応する消耗レベルを識別(予測)する。識別結果は、複数のニューロンを有する出力層に出力される。
画像処理サーバ1は、パーツ画像と、該パーツ画像に対応する消耗レベルとが対応付けられた訓練データの組み合わせを複数取得する。訓練データは、パーツ画像に対し、該パーツ画像に対応する消耗レベルがラベル付けされたデータである。画像処理サーバ1は、取得した訓練データ用いて学習を行う。
画像処理サーバ1は、訓練データであるパーツ画像を入力層に入力し、中間層での演算処理を経て、出力層から該パーツ画像に対応する消耗レベルを識別した識別結果を取得する。図示のように、出力層から出力される識別結果は消耗レベルを示す連続的な確率値(例えば「0」から「1」までの範囲の値)である。
画像処理サーバ1は、出力層から出力された識別結果を、訓練データにおいてパーツ画像に対しラベル付けされた情報、すなわち正解値と比較し、出力層からの出力値が正解値に近づくように、中間層での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み(結合係数)、各ニューロンで用いられる活性化関数の係数等である。パラメータの最適化の方法は特に限定されないが、例えば、画像処理サーバ1は誤差逆伝播法を用いて各種パラメータの最適化を行う。
画像処理サーバ1は、訓練データに含まれる各パーツ画像について上記の処理を行い、消耗識別モデル173を生成する。これにより、例えば画像処理サーバ1は当該訓練データを用いて消耗識別モデル173の学習を行うことで、パーツ画像に対応する消耗レベルを識別可能なモデルを構築することができる。
画像処理サーバ1はパーツ画像を取得した場合、取得したパーツ画像を消耗識別モデル173に入力する。画像処理サーバ1は、消耗識別モデル173の中間層にてパーツ画像の特徴量を抽出する演算処理を行う。画像処理サーバ1は、抽出した特徴量を消耗識別モデル173の出力層に入力して、パーツ画像に対応する消耗レベルを識別した識別結果を出力として取得する。
図示のように、パーツ画像に対し、「消耗レベル1(消耗なし)」、「消耗レベル2」、「消耗レベル3」それぞれの確率値が、「0.10」、「0.84」、「0.06」である識別結果が出力される。また、所定閾値を利用して識別結果を出力しても良い。例えば画像処理サーバ1は、「消耗レベル2」の確率値(0.84)が所定閾値(例えば、0.80)以上であると判定した場合、パーツ画像に対応する消耗レベルが「消耗レベル2」である識別結果を出力する。なお、上述した閾値を利用せず、消耗識別モデル173が識別した各消耗レベルの確率値から、最も高い確率値に対応する消耗レベルを識別結果として出力しても良い。
なお、消耗レベルの識別処理は、上述した機械学習により識別処理に限るものではない。例えば、A-KAZE、SIFT、SURF、ORB、HOG等の局所特徴量抽出方法を用いて消耗レベルを識別しても良い。
図39は、パーツを照合する際の処理手順を示すフローチャートである。画像処理サーバ1の制御部11は、通信部13を介して、照合対象となるパーツのパーツ画像を撮影装置2から取得する(ステップS191)。制御部11は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のオブジェクトを認識し(ステップS192)する。制御部11は、認識したオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する(ステップS193)。
制御部11は通信部13を介して、抽出した領域画像を工場サーバ5に送信する(ステップS194)。工場サーバ5の制御部51は、画像処理サーバ1から送信された領域画像を通信部53により受信する(ステップS591)。制御部51は、受信した領域画像と、大容量記憶部57の製品DB571に記憶された領域画像とのマッチング処理を行う(ステップS592)。制御部51は、マッチ度を含むマッチング結果を通信部53により画像処理サーバ1に送信する(ステップS593)。
画像処理サーバ1の制御部11は、工場サーバ5から送信されたマッチング結果を通信部13により受信する(ステップS195)。制御部11は、受信したマッチング結果に基づいて、該パーツのパーツ固有情報が製品DB571に存在しているか否かを判定する(ステップS196)。例えば制御部11は、マッチング結果に含まれているマッチ度が所定閾値(例えば、95%)以上である場合、パーツ固有情報が製品DB571に存在していると判定する。
制御部11は、パーツ固有情報が製品DB571に存在していないと判定した場合(ステップS196でNO)、後述するステップS198の処理に遷移する。制御部11は、パーツ固有情報が製品DB571に存在していると判定した場合(ステップS196でYES)、学習済みの消耗識別モデル173を用いてパーツの消耗レベルを判定する(ステップS197)。具体的には、制御部11は、パーツ画像を入力した場合に該パーツ画像に対応する消耗レベルを識別した識別結果を出力する学習済みの消耗識別モデル173に、パーツ画像を入力して該パーツ画像に対応する消耗レベルを識別した識別結果を出力する。
制御部11は、パーツID、パーツ画像、交換有無情報、消耗レベルまたは照合日時等を含む照合結果を通信部13によりDBサーバ4に送信する(ステップS198)。DBサーバ4の制御部41は、画像処理サーバ1から送信された照合結果を通信部43により受信する(ステップS491)。制御部41は、パーツIDに対応付けて照合結果を照合結果DB454に記憶し(ステップS492)、処理を終了する。
本実施形態によると、照合対象となるパーツと登録済みのパーツとを照合することにより、パーツの交換有無またはパーツ状態を判定することが可能となる。
本実施形態によると、パーツ状態を判定することにより、パーツ交換またはメンテナンス時期等の予測データとして活用することが可能となる。
(実施形態10)
実施形態10は、複数のオブジェクトが分散して配されているパーツの登録または照合処理を行う形態に関する。なお、実施形態1~9と重複する内容については説明を省略する。
先ず、複数のオブジェクトが分散して配されているパーツの登録処理を説明する。図40は、パーツの登録処理を行う際の処理手順を示すフローチャートである。図40でのパーツには複数のオブジェクトが分散して配されている。
画像処理サーバ1の制御部11は、通信部13を介して、複数のオブジェクトのうち少なくとも二つ以上のオブジェクトを含むパーツ画像を撮影装置2から取得する(ステップS01)。制御部11は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のそれぞれのオブジェクトを認識する(ステップS02)。なお、オブジェクトの認識処理に関しては、実施形態1と同様であるため、説明を省略する。
制御部11は、認識したそれぞれのオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する(ステップS03)。制御部11は通信部13を介して、抽出した複数の領域画像のいずれかに対応するパーツ固有情報を工場サーバ5の製品DB571から取得する(ステップS04)。制御部11は、取得したパーツ固有情報に対してパーツIDを割り振る(ステップS05)。制御部11は、割り振ったパーツID及び複数の領域画像を通信部13によりパーツサーバ3に送信する(ステップS06)。制御部11は、割り振ったパーツID及びパーツ固有情報を通信部13によりDBサーバ4に送信する(ステップS07)。
パーツサーバ3の制御部31は、画像処理サーバ1から送信されたパーツID及び複数の領域画像を通信部33により受信する(ステップS08)。制御部31は、受信したパーツIDに対応付けて複数の領域画像を大容量記憶部37のパーツ固有情報DB371に記憶し(ステップS09)、処理を終了する。DBサーバ4の制御部41は、画像処理サーバ1から送信されたパーツID及びパーツ固有情報を通信部43により受信する(ステップS10)。制御部41は、受信したパーツIDに対応付けてパーツ固有情報を大容量記憶部45のパーツ詳細DB452に記憶し(ステップS11)、処理を終了する。
次に、複数のオブジェクトが分散して配されているパーツの照合処理を説明する。図41は、パーツの照合処理を行う際の処理手順を示すフローチャートである。図41でのパーツには複数のオブジェクトが分散して配されている。
画像処理サーバ1の制御部11は、通信部13を介して、一つまたは複数のオブジェクトを含むパーツ画像を撮影装置2から取得する(ステップS15)。制御部11は、学習済みのオブジェクト認識モデル171を用いて、取得したパーツ画像内のそれぞれのオブジェクトを認識する(ステップS16)。制御部11は、認識したそれぞれのオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する(ステップS17)。
制御部11は通信部13を介して、抽出した複数の領域画像に基づいてパーツ固有情報を工場サーバ5の製品DB571から取得可能であるか否かを判定する(ステップS18)。具体的には、制御部11は、複数の領域画像のいずれかに対応するパーツ固有情報を取得した場合、パーツ固有情報を取得可能であると判定する。制御部11は、すべての領域画像に対応するパーツ固有情報を取得できないと判定した場合、パーツ固有情報を取得できないと判定する。
制御部11は、パーツ固有情報を取得できないと判定した場合(ステップS18でNO)、該パーツの認証に失敗したと判定し(ステップS22)、処理を終了する。制御部11は、パーツ固有情報を取得可能であると判定した場合(ステップS18でYES)、パーツ固有情報の照合処理を行う(ステップS19)。
具体的には、制御部11は各領域画像において、それぞれの領域画像に対応するパーツ固有情報を比較する。例えば、制御部11は領域画像A、領域画像B及び領域画像Cをパーツ画像から抽出した場合、取得した領域画像A、領域画像B及び領域画像Cに対応するパーツ固有情報を製品DB571から取得する。制御部11は、領域画像Aに対応するパーツ固有情報と、領域画像Bに対応するパーツ固有情報とを比較する。制御部11は、領域画像Aに対応するパーツ固有情報と、領域画像Cに対応するパーツ固有情報とを比較する。制御部11は、領域画像Bに対応するパーツ固有情報と、領域画像Cに対応するパーツ固有情報とを比較する。
制御部11は、一致した数が所定閾値(例えば、2個)以上であるか否かを判定する(ステップS20)。制御部11は、一致した数が所定閾値以上であると判定した場合(ステップS20でYES)、該パーツの認証に成功したと判定し(ステップS21)、処理を終了する。制御部11は、一致した数が所定閾値未満であると判定した場合(ステップS20でNO)、ステップS22の処理に遷移する。
本実施形態によると、複数のオブジェクトが分散して配されているパーツの登録または照合処理を行うことが可能となる。
本実施形態によると、複数の領域画像を登録することにより、パーツの認証精度を高めることが可能となる。
<変形例1>
筒状物であるパーツの登録または照合処理を説明する。図42は、筒端面に複数のオブジェクトが分散して配されている筒状物の一例を示す説明図である。
図42Aは、筒状物の登録に対する筒端面の撮影画像の一例を示す説明図である。図示のように、筒端面には120度ごとに13a、13b及び13cを含む三つのオブジェクトが配されている。画像処理サーバ1は、13a、13b及び13cオブジェクトを含む筒端面の撮影画像を撮影装置2から取得する。画像処理サーバ1は、取得した筒端面の撮影画像内の13a、13b及び13cオブジェクトをそれぞれ認識する。
画像処理サーバ1は、上述した処理と同様に、それぞれのオブジェクトから所定のオフセット位置にて所定サイズの領域画像を抽出する。画像処理サーバ1は、抽出した複数の領域画像のいずれかに対応するパーツ固有情報を工場サーバ5の製品DB571から取得する。画像処理サーバ1は、取得したパーツ固有情報に対してパーツIDを割り振る。画像処理サーバ1は、割り振ったパーツIDに対応付けて該パーツをパーツサーバ3及びDBサーバ4に登録する。なお、登録処理に関しては、上述した処理と同様であるため、説明を省略する。
図42Bは、筒状物の照合に対する筒端面の撮影画像の一例を示す説明図である。撮影位置またはパーツの形状により、毎回同じ箇所を撮影することができない場合がある。例えば筒状物である場合、筒状物の回転が入ると、位置の特定ができず毎回同じ箇所を撮影することができない恐れがある。また、筒状物の筒端面が全体撮影されると、有効な縁の部分の面積が小さくなる。更にまた、縁の部分が大きく撮影されると、一部分を隠れているエリアがある。
図示のように、筒端面の縁の部分が大きく撮影された場合、撮影された筒端面の撮影画像には13a及び13bオブジェクトが含まれているが、13cオブジェクトが含まれていない。画像処理サーバ1は、13a及び13bオブジェクトを含む筒端面の撮影画像を撮影装置2から取得する。画像処理サーバ1は、取得した筒端面の撮影画像内の13a及び13bオブジェクトをそれぞれ認識する。画像処理サーバ1は、上述した処理と同様に、認識した13a及び13bオブジェクトに基づいて抽出された領域画像に対応するパーツ固有情報を工場サーバ5の製品DB571から取得可能であるか否かを判定する。
画像処理サーバ1は、13aオブジェクトに基づいて抽出された領域画像に対応するパーツ固有情報(第1パーツ固有情報)と、13bオブジェクトに基づいて抽出された領域画像に対応するパーツ固有情報(第2パーツ固有情報)との両方を取得できないと判定した場合、該パーツが製品DB571に存在していないため、該パーツの認証に失敗したと判定する。また、画像処理サーバ1は、第1パーツ固有情報と第2パーツ固有情報とのいずれか一方のみを取得した場合、該パーツの認証に失敗したと判定する。
画像処理サーバ1は、第1パーツ固有情報と第2パーツ固有情報との両方を取得した場合、第1パーツ固有情報と第2パーツ固有情報とを比較する。画像処理サーバ1は、第1パーツ固有情報と第2パーツ固有情報とが一致したと判定した場合、該パーツの認証に成功したと判定する。
本変形例によると、毎回同じ箇所を撮影することが難しい筒状物に対し、複数のオブジェクトに基づいて照合することにより、認証精度を高めることが可能となる。
(実施形態11)
実施形態11は、リファレンス画像が撮影された際の撮影条件のパラメータに基づいてパーツを撮影する形態に関する。なお、実施形態1~10と重複する内容については説明を省略する。
特徴点となるオブジェクトを含むリファレンス画像は、例えば撮影装置2により撮影される。なお、リファレンス画像を撮影する撮影装置は、撮影装置2に限定せず、例えば外部の撮影装置であっても良い。リファレンス画像が撮影された撮影条件のパラメータに応じて設定された所定許容範囲が、予め画像処理サーバ1の記憶部12に記憶される。撮影条件のパラメータは、類似度スコア、周波数成分分布スコア、ばらつき具合スコア、輝度スコアまたは色相スコア等を含む。許容範囲は、各パラメータの値を調整可能な範囲である。
類似度スコアは、リファレンス画像と撮影対象画像とがどの程度類似しているかを表す数値である。類似度スコアが高いほど、リファレンス画像と撮影対象画像との間の類似度が高い。周波数成分分布スコアは、画像データを例えば高速フーリエ変換(FFT:Fast Fourier Transform)等により変換した周波数成分を表す数値である。周波数成分分布は、低域成分、中域成分及び高域成分の分布(割合)を含む。ばらつき具合スコアは、ばらつきの大きさを示す標準偏差である。周波数成分分布スコア及びばらつき具合スコアを利用することにより、画像のピント具合を確認することができる。輝度スコアは、色成分R(red)、G(green)、B(blue)ごとの明るさを示す数値であり、MAX輝度、MIN輝度または平均輝度スコアを含む。色相スコアは、色合いを表す数値である。
画像処理サーバ1は、パラメータの所定許容範囲を記憶部12から取得する。撮影装置2は、登録または照合対象となるパーツを撮影する場合、撮影中のパーツ画像を画像処理サーバ1に送信する。画像処理サーバ1は、撮影装置2から送信されたパーツ画像を受信し、受信したパーツ画像のパラメータが所定許容範囲内であるか否かを判定する。画像処理サーバ1は、該パラメータが所定許容範囲内であると判定した場合、パーツの撮影指示を撮影装置2に送信する。
撮影装置2は、画像処理サーバ1から送信された撮影指示を受信し、受信した撮影指示に従ってパーツを撮影する。撮影装置2は、撮影したパーツ画像を画像処理サーバ1に送信する。その後に、画像処理サーバ1は実施形態1~10と同様に、撮影装置2から送信されたパーツ画像を利用してパーツの登録または照合処理を行う。
なお、本実施形態では、パーツ画像のパラメータが所定許容範囲内であるか否かを判定する処理が画像処理サーバ1側で行われた例を説明したが、これに限らず、撮影装置2側で行われても良い。具体的には、撮影装置2は、撮影条件のパラメータに応じて設定された所定許容範囲を記憶部または画像処理サーバ1から取得する。撮影装置2は、撮影中のパーツ画像のパラメータが所定許容範囲内であると判定した場合、該パーツを撮影する。撮影装置2は、撮影したパーツ画像を画像処理サーバ1に送信する。
本実施形態によると、リファレンス画像が撮影された際の撮影条件のパラメータに基づいてパーツを撮影することにより、最適なパーツ画像を取得することが可能となる。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。