(57)【特許請求の範囲】
【請求項１】
第１物体及び前記第１物体の周辺を撮像する画像処理装置であって、
前記画像処理装置に入力される画像データに基づいて前記第１物体の異常動作を検出する検出部と、
前記検出によって前記異常動作が検出されると、前記第１物体の状態、前記第１物体の周辺に係る状態、前記第１物体の周辺にある第２物体の状態若しくは種類又は前記第１物体の正常動作の種類のうち、いずれかを含む環境状況に基づいて、前記異常動作の通知又は前記第１物体の制御を行う処理部と、
前記画像データに基づいて特徴量を算出する特徴量算出部と、
前記環境状況として前記第１物体の周辺に係る状態又は前記正常動作の種類を取得する取得部とを含み、
前記検出部は、前記特徴量のうち、前記第１物体の動作が所定の正常動作である場合の特徴量によって生成される学習データに基づいて、前記正常動作を検出し、
前記第１物体が可動機械であって、
前記処理部は、前記正常動作の種類に基づいて、重み係数を算出し、前記重み係数に基づいて前記通知又は前記制御のいずれかを行うかを決定し、
前記環境状況に前記正常動作の種類が含まれ、
前記正常動作の種類が、前記可動機械が所定の動線上を繰り返し移動する動作であるか、前記可動機械が決定した動線上を動く動作であるかによって、前記処理部は、前記重み係数を算出する
画像処理装置。
【請求項２】
前記第１物体が可動機械であって、
前記環境状況に前記第１物体の状態が含まれ、
前記第１物体の状態が、前記可動機械の電源が切断されている状態、前記可動機械が停止するように制御されている状態又は前記可動機械が動作を開始する前の状態のいずれかであると、前記処理部は、前記通知を行う請求項１に記載の画像処理装置。
【請求項３】
前記第２物体が人であって、
前記環境状況に前記人の状態が含まれ、
前記人の姿勢、前記人の顔の向き又は前記人の視線に基づいて視線方向を検出する視線方向検出部を更に含み、
前記視線方向に基づく前記人が前記第１物体を見ているか否かの判定結果によって、前記処理部は、前記通知又は前記制御を行う請求項１又は２に記載の画像処理装置。
【請求項４】
前記第２物体が人であって、
前記第１物体と前記人との距離、前記第１物体と前記人との相対速度又は前記第１物体の速度のうち、いずれかの計測値を計測する計測部を更に含み、
前記計測値に基づいて、前記処理部は、前記通知又は前記制御のいずれかを行うかを決定する請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記第２物体の種類を判別する判別部を更に含み、
前記環境状況に前記第２物体の種類が含まれ、
前記種類に基づいて、前記処理部は、前記通知又は前記制御のいずれかを行うかを決定する請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記環境状況に前記第１物体の周辺に係る状態が含まれ、
前記可動機械が使用する部品の量、前記第１物体の周辺の明るさ又は時間帯によって、前記処理部は、前記重み係数を算出する請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記環境状況に前記第１物体の状態、前記第１物体の周辺に係る状態又は前記第２物体の状態が含まれ、
前記環境状況を示すデータ、前記画像データ、前記環境状況若しくは前記画像データに基づいて算出される算出値又はこれらを組み合わせたデータを生成する生成部を更に含む請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
第１物体及び前記第１物体の周辺を撮像して画像データを生成する画像処理装置と、前記画像データを処理する１以上の情報処理装置とを有する画像処理システムであって、
前記画像処理装置に入力される画像データに基づいて前記第１物体の異常動作を検出する検出部と、
前記検出によって前記異常動作が検出されると、前記第１物体の状態、前記第１物体の周辺に係る状態、前記第１物体の周辺にある第２物体の状態若しくは種類又は前記第１物体の正常動作の種類のうち、いずれかを含む環境状況に基づいて、前記異常動作の通知又は前記第１物体の制御を行う処理部と、
前記画像データに基づいて特徴量を算出する特徴量算出部と、
前記環境状況として前記第１物体の周辺に係る状態又は前記正常動作の種類を取得する取得部とを含み、
前記検出部は、前記特徴量のうち、前記第１物体の動作が所定の正常動作である場合の特徴量によって生成される学習データに基づいて、前記正常動作を検出し、
前記第１物体が可動機械であって、
前記処理部は、前記正常動作の種類に基づいて、重み係数を算出し、前記重み係数に基づいて前記通知又は前記制御のいずれかを行うかを決定し、
前記環境状況に前記正常動作の種類が含まれ、
前記正常動作の種類が、前記可動機械が所定の動線上を繰り返し移動する動作であるか、前記可動機械が決定した動線上を動く動作であるかによって、前記処理部は、前記重み係数を算出する
画像処理システム。
【請求項９】
第１物体及び前記第１物体の周辺を撮像する画像処理装置が行う画像処理方法であって、
前記画像処理装置が、前記画像処理装置に入力される画像データに基づいて前記第１物体の異常動作を検出する検出手順と、
前記画像処理装置が、前記検出によって前記異常動作が検出されると、前記第１物体の状態、前記第１物体の周辺に係る状態、前記第１物体の周辺にある第２物体の状態若しくは種類又は前記第１物体の正常動作の種類のうち、いずれかを含む環境状況に基づいて、前記異常動作の通知又は前記第１物体の制御を行う処理手順と、
前記画像処理装置が、前記画像データに基づいて特徴量を算出する特徴量算出手順と、
前記画像処理装置が、前記環境状況として前記第１物体の周辺に係る状態又は前記正常動作の種類を取得する取得手順とを含み、
前記検出手順では、前記特徴量のうち、前記第１物体の動作が所定の正常動作である場合の特徴量によって生成される学習データに基づいて、前記正常動作を検出し、
前記第１物体が可動機械であって、
前記処理手順では、前記正常動作の種類に基づいて、重み係数を算出し、前記重み係数に基づいて前記通知又は前記制御のいずれかを行うかを決定し、
前記環境状況に前記正常動作の種類が含まれ、
前記正常動作の種類が、前記可動機械が所定の動線上を繰り返し移動する動作であるか、前記可動機械が決定した動線上を動く動作であるかによって、前記処理手順では、前記重み係数を算出する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理システム及び画像処理方法に関する。
【背景技術】
【０００２】
従来、ロボット等の可動する装置と作業員等の人間とが同じ作業空間で同時に作業を行ういわゆる協調動作において、人間の安全を確保する方法が知られている。
【０００３】
具体的には、協調動作において、光電センサ又は光追尾センサ等によって、作業員が安全柵に設けられる窓を通過するのを検出して、ロボットを停止、減速又は回避させる方法が知られている（例えば、特許文献１等）。
【０００４】
また、用途別に複数のセンサを用いないで、作業員とロボットとが接近する状況となると、作業員が携帯する携帯装置からの人体通信によって、ロボットを停止又は減速させる方法が知られている（例えば、特許文献２等）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、様々なロボットに対する人の安全性を確保する方法が存在するが、人とロボットとの関係性も様々な場合があり、人に対する安全を高めることは常に求められている。
【０００６】
本発明では、人に対する安全を高めることができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様における、第１物体及び前記第１物体の周辺を撮像する画像処理装置は、前記画像処理装置に入力される画像データに基づいて前記第１物体の異常動作を検出する検出部と、前記検出によって前記異常動作が検出されると、前記第１物体の状態、前記第１物体の周辺に係る状態、前記第１物体の周辺にある第２物体の状態若しくは種類又は前記第１物体の正常動作の種類のうち、いずれかを含む環境状況に基づいて、前記異常動作の通知又は前記第１物体の制御を行う処理部と、前記画像データに基づいて特徴量を算出する特徴量算出部と、前記環境状況として前記第１物体の周辺に係る状態又は前記正常動作の種類を取得する取得部とを含み、前記検出部は、前記特徴量のうち、前記第１物体の動作が所定の正常動作である場合の特徴量によって生成される学習データに基づいて、前記正常動作を検出し、前記第１物体が可動機械であって、前記処理部は、前記正常動作の種類に基づいて、重み係数を算出し、前記重み係数に基づいて前記通知又は前記制御のいずれかを行うかを決定し、前記環境状況に前記正常動作の種類が含まれ、前記正常動作の種類が、前記可動機械が所定の動線上を繰り返し移動する動作であるか、前記可動機械が決定した動線上を動く動作であるかによって、前記処理部は、前記重み係数を算出する。
【発明の効果】
【０００８】
本発明の各実施形態によれば、人に対する安全を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る画像処理装置を用いる全体構成の一例を示す全体構成図である。
【図２】実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図３】実施形態に係る画像処理装置による学習処理の一例を示すフローチャートである。
【図４】実施形態に係る学習画像データに基づく特徴量の算出の一例を示す図である。
【図５】実施形態に係る画像処理装置による判定処理の一例を示すフローチャートである。
【図６】第１実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【図７】第１実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。
【図８】第２実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【図９】第２実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。
【図１０】第３実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【図１１】第４実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【図１２】第４実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。
【図１３】第５実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。また、本明細書及び図面において、ロボット又は産業機械等を可動機械等という。
【００１１】
［第１実施形態］
＜全体構成例＞
はじめに、本実施形態に係る画像処理装置を用いる全体構成の一例について説明する。
【００１２】
図１は、実施形態に係る画像処理装置を用いる全体構成の一例を示す全体構成図である。
【００１３】
画像処理装置の例であるカメラ１０は、第１物体の例であるロボットアーム２を撮像し、画像データを生成する。また、ロボットアーム２の周辺に、第２物体の例として人３又はロボットアーム２が使用する部品４等がある場合には、カメラ１０は、人３等を撮像する。
【００１４】
以下、図示するように、ロボットアーム２が工場等で部品４のピッキング等の動作を行う、いわゆるＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）の例で説明する。即ち、ロボットアーム２は、可動機械の例であり、アクチュエータ及びセンサ等を有するロボットの例である。したがって、ロボットアーム２は、複数の自由度を有し、部品４等を運んだり、部品４等を持つために、部品４等に向かって移動したりする。これに対して、カメラ１０は、ロボットアーム２及びロボットアーム２の周辺を定期的又は任意のタイミングで撮像する。
【００１５】
＜ハードウェア構成例＞
図２は、実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。図示するように、カメラ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４とを有する。さらに、カメラ１０は、入力装置１５と、表示装置１６と、外部Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）１７と、通信Ｉ／Ｆ１８と、撮像素子１９とを有する。カメラ１０が有する各ハードウェアは、バスＢで接続される。
【００１６】
ＣＰＵ１１は、ＲＯＭ１４及びＨＤＤ１２等の記憶装置からプログラム又はデータ等をＲＡＭ１３上に読み出し、カメラ１０が行う各種処理に係る演算及びデータの加工等を行う演算装置並びにカメラ１０が有する各ハードウェアを制御する制御装置である。
【００１７】
ＨＤＤ１２は、プログラム及びデータ等を記憶する補助記憶装置の例である。なお、記憶されるプログラム及びデータは、例えば、カメラ１０全体を制御する基本ソフトウェアであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及びＯＳ上において各種機能を実現するアプリケーションソフトウェア等である。なお、カメラ１０は、ＨＤＤ１２の代わり又はＨＤＤ１２と組み合わせてＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等を有してもよい。
【００１８】
ＲＡＭ１３は、プログラム及びデータを一時保持する、いわゆる揮発性のメモリであり、主記憶装置の例である。一方、ＲＯＭ１４は、電源を切ってもプログラム及びデータを保持することができる不揮発性のメモリ（記憶装置）である。
【００１９】
入力装置１５は、ユーザが各種操作をカメラ１０に入力するのに用いられる装置である。なお、入力装置１５は、例えば、各種操作ボタン、タッチパネル、キーボード又はマウス等である。また、表示装置１６は、カメラ１０による処理結果を表示する出力装置である。例えば、表示装置１６は、ディスプレイ等である。
【００２０】
外部Ｉ／Ｆ１７は、記録媒体１７ａ等の外部装置を接続させるコネクタ等のインタフェースである。例えば、記録媒体１７ａは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤ（登録商標）メモリカード、ＣＤ又はＤＶＤ等である。また、通信Ｉ／Ｆ１８は、ネットワーク等を介して情報処理装置等とデータ通信を行うコネクタ又はアンテナ等のインタフェースである。
【００２１】
撮像素子１９は、画像データを生成する光学系及び画像処理ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等である。具体的には、光学系は、光学センサ、レンズ及びフィルタ等である。なお、撮像素子１９は、複数の光学系等を有する、いわゆるステレオカメラ等でもよい。また、撮像素子１９は、超音波センサ又は赤外線センサ等と組み合わせて、被写体との距離又は被写体の速度等を計測できるシステムでもよい。
【００２２】
本実施形態に係るカメラ１０は、上記ハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００２３】
なお、実施形態は、画像データ等を生成するカメラと、カメラと接続されるＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置とを有する画像処理システムによって実現されてもよい。具体的には、カメラは、いわゆるネットワークカメラ等であり、画像処理システムでは、カメラ及びＰＣは、ネットワーク等を介して接続される。即ち、画像処理システムでは、カメラが画像データを生成し、生成される画像データに基づいて、ＰＣが各種処理を行ってもよい。なお、情報処理装置は、複数の装置で構成され、処理の一部又は全部が冗長、並列又は分散して行われる構成でもよい。
【００２４】
＜学習処理例及び判定処理例＞
学習処理及び判定処理は、例えば、特願２０１４−２４５１９４明細書等に記載された処理である。まず、カメラ１０（図１）は、学習処理を行い、学習処理によって、カメラ１０は、ロボットアーム２（図１）の動作を学習する。次に、学習処理後、カメラ１０は、図１に示すように、撮像を行う。また、ロボットアーム２がピッキング等を実現する所定の動作（以下「正常動作」という。）とは異なる動作（以下「異常動作」という。）を行う場合がある。これに対して、カメラ１０は、撮像によって生成される画像データに基づいて、判定処理を行い、判定処理によって、ロボットアーム２が行う動作のうち、異常動作を検出する。
【００２５】
学習処理及び判定処理は、ロボットアーム２全体に対して行われる。なお、ロボットアーム２が複数の部品によって構成される場合には、部品に対応して学習処理及び判定処理が行われてもよい。以下の説明では、部品に対応して学習処理及び判定処理がそれぞれ行われる例で説明する。
【００２６】
＜学習処理例＞
図３は、実施形態に係る画像処理装置による学習処理の一例を示すフローチャートである。具体的には、まず、カメラ１０（図１）が学習画像データを用いて学習処理を行う例を説明する。なお、学習画像データは、ロボットアーム２の正常動作をカメラ１０が撮像して得られる画像データである。即ち、以降で説明する学習処理は、半教師あり学習である。
【００２７】
ステップＳ０１において、カメラ１０は、学習画像データを入力する。例えば、カメラ１０は、ロボットアーム２の正常動作をカメラ１０が撮像して学習画像データを入力する。なお、カメラ１０は、学習画像データを、例えば、ＨＤＤ１２（図２）又は外部Ｉ／Ｆ１７（図２）によって記録媒体１７ａ（図２）等から入力してもよい。また、カメラ１０は、学習画像データを、例えば、ネットワーク等を介して情報処理装置等の外部装置から入力してもよい。
【００２８】
なお、ステップＳ０２乃至ステップＳ０３は、入力される学習画像データごとに繰り返し実行される。
【００２９】
ステップＳ０２において、カメラ１０は、ステップＳ０１で入力される学習画像データから部品ごとの学習画像データを生成する。カメラ１０によって撮像されるロボットアーム２等の被写体は、複数の部品等から構成される場合がある。ステップＳ０２は、被写体が複数の部品から構成される場合に行われる処理例である。つまり、複数の部品を含む被写体を撮像した画像データが、学習画像データとしてステップＳ０１で入力される。以下、ステップＳ０１で入力される学習画像データに基づいて、ステップＳ０２で生成される学習画像データ、即ち、それぞれの部品に係る学習画像データを「部品ごとの学習画像データ」という。
【００３０】
例えば、ロボットアーム２が部品Ａ、部品Ｂ及び部品Ｃから構成される場合には、具体的には、以下のようにして部品ごとの学習画像データが生成される。
（１）カメラ１０は、部品Ａを撮像して得られる部品Ａ画像データ、部品Ｂを撮像して得られる部品Ｂ画像データ及び部品Ｃを撮像して得られる部品Ｃ画像データをそれぞれ入力する。
（２）カメラ１０は、部品Ａ画像データをテンプレートとして、学習画像データに対して、テンプレートマッチングを行い、類似度を算出する。なお、類似度の算出は、例えばＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）又はＮＣＣ（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）等によって実現される。
（３）カメラ１０は、算出された類似度があらかじめ設定される閾値以上となる（又は最大となる）画像を部品Ａの学習画像データとする。これにより、部品Ａの学習画像データが生成される。
【００３１】
同様に、部品Ｂの学習画像データ及び部品Ｃの学習画像データは、それぞれの部品Ｂ画像データ及び部品Ｃ画像データに基づいて、上記（２）に示す方法によって、それぞれ生成される。
【００３２】
以上のようにして、学習画像データから、正常動作におけるロボットアーム２を構成する部品ごとの学習画像データがそれぞれ生成される。なお、同一の部品が複数含まれる場合、当該部品の学習画像データは、複数枚生成される。例えば、ロボットアーム２に部品Ａが２つ含まれる場合、２枚の部品Ａの学習画像データが生成される。
【００３３】
ステップＳ０３において、カメラ１０は、部品ごとの学習画像データからそれぞれの特徴量を算出する。例えば、ロボットアーム２が部品Ａ、部品Ｂ及び部品Ｃから構成されている場合には、具体的には、カメラ１０は、以下のようにしてそれぞれの特徴量を算出する。
（１）部品Ａの学習画像データについて、２ピクセルごとに、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）特徴量の算出手法を用いて、所定のスケールσでオリエンテーションを算出する。なお、ＳＵＲＦ特徴量の算出手法は、例えば、「Ｈ．Ｂａｙ，"Ｓｐｅｅｄｅｄ−Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ（ＳＵＲＦ）"，Ｃｏｍｐｕｔｎｇ  Ｖｉｓｉｏｎ  ａｎｄ  Ｉｍａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ，  Ｖｏｌ．１１０  （３）  Ｊｕｎｅ  ２００８，  ｐｐ.３４６−３５９．」等で開示されている手法等である。また、特徴量の算出手法は、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）特徴量又はＦｅｒｎｓ特徴量の算出手法等でもよい。
【００３４】
図４は、実施形態に係る学習画像データに基づく特徴量の算出の一例を示す図である。なお、図４では、部品Ａの学習画像データ１１００が、１００×１００ピクセル（ｐｉｘｅｌ）の画素を有する画像データであり、図４に示す１つのセルが、１つのピクセルを示すとする。図４に示すように、各ｎ，ｍ＝１，・・・，５０に対して、（ｘ，ｙ）＝（２ｎ−１，２ｍ−１）の座標のピクセルにおいて、所定のスケールσでオリエンテーションθｘｙが算出される。図４では、各矢印の向きは、それぞれのオリエンテーションθｘｙを示す。このように、キーポイントの検出を行わずに、所定のピクセルごと（又はすべてのピクセルに対して）に特徴量を算出する手法は、例えば、いわゆるＤｅｎｓｅ  ｓａｍｐｌｉｎｇ等である。
（２）カメラ１０は、上記（１）で得られる各３次元ベクトル（ｘ，ｙ，θｘｙ）を部品Ａの学習画像データの特徴量とする。
【００３５】
カメラ１０は、部品Ｂの学習画像データ及び部品Ｃの学習画像データに対して上記（１）及び（２）をそれぞれ行い、３次元ベクトル（ｘ，ｙ，θｘｙ）部品Ｂ及び（ｘ，ｙ，θｘｙ）部品Ｃをそれぞれの特徴量として算出する。
【００３６】
以上のようにして、部品ごとの学習画像データからそれぞれ特徴量が算出される。ここで算出された部品ごとの特徴量が、当該部品におけるポジティブデータである。なお、上記では、カメラ１０は、２ピクセルごとにオリエンテーションを算出したが、カメラ１０は、任意のピクセルごとにオリエンテーションを算出してもよい。また、所定のスケールσは、部品ごとの学習画像データのサイズに基づいて決定され、例えば、２０乃至３０ピクセルである。
【００３７】
図３に戻り、ステップＳ０４において、カメラ１０は、ステップＳ０３で算出される特徴量を用いて学習を行う。例えば、カメラ１０は、ロボットアーム２全体に対応する学習画像データから算出される特徴量を用いて、ロボットアーム２全体に係る学習を行う。なお、カメラ１０は、部品ごとに学習を行ってもよい。具体的には、例えば、部品Ａの学習画像データから算出される特徴量を用いて、カメラ１０は、部品Ａに係る学習を行う。同様に、部品Ｂの学習画像データから算出される特徴量を用いて、部品Ｂに係る学習を行う。このように、学習は、部品ごとに行われてもよい。この場合には、判定処理では、いずれかの部品で異常が検出されると、全体としても異常が検出される。
【００３８】
ここで、ｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いた学習は、例えば、次のようにして行われる。即ち、カメラ１０は、ステップＳ０３で算出される特徴量を３次元空間にプロットして、ポジティブデータを示すデータ集合（ポジティブモデル）を生成する。そして、カメラ１０は、このデータ集合と、３次元空間上の所定の点とを分ける所定の平面（又は曲面）を求める。このように、学習処理によってカメラ１０が学習すると、判定処理において、判定対象画像データが示す被写体が正常動作としているか異常動作をしているかを判定することができる。なお、生成されるデータ集合は、例えば、ＨＤＤ１２（図２）等に記憶される。
【００３９】
＜判定処理例＞
図５は、実施形態に係る画像処理装置による判定処理の一例を示すフローチャートである。なお、図５に示す処理は、カメラ１０が図３に示す学習処理を行った後に行われる処理の例である。判定対象画像データは、図１に示すように、ロボットアーム２及びロボットアーム２の周辺をカメラ１０が撮像した画像データである。
【００４０】
学習処理で入力される学習画像データは、ロボットアーム２が正常動作を行っている場合を撮像して生成される画像データである。一方、判定処理で入力される判定対象画像データは、ロボットアーム２が正常動作を行っているか異常動作を行っているかが不明な場合を撮像して生成される画像データである。したがって、カメラ１０は、判定処理によって、判定対象画像データに基づいて、ロボットアーム２が正常動作を行っているか異常動作を行っているかを判定する。
【００４１】
ステップＳ１１において、カメラ１０は、判定対象画像データを入力する。例えば、カメラ１０は、ロボットアーム２をカメラ１０が撮像して判定対象画像データを入力する。なお、カメラ１０は、判定対象画像データを、例えば、ＨＤＤ１２（図２）又は外部Ｉ／Ｆ１７（図２）によって記録媒体１７ａ（図２）等から入力してもよい。また、カメラ１０は、判定対象画像データを、例えば、ネットワーク等を介して情報処理装置等の外部装置から入力してもよい。
【００４２】
ステップＳ１２において、カメラ１０は、入力される判定対象画像データから部品ごとの判定対象画像データをそれぞれ生成する。例えば、ステップＳ１２は、図３に示すステップＳ０２と同様であるため、簡単に説明する。
【００４３】
例えば、ロボットアーム２が部品Ａ、部品Ｂ及び部品Ｃから構成されている場合には、以下のようにして部品ごとの判定対象画像データが生成される。
（１）カメラ１０は、部品Ａ画像データ、部品Ｂ画像データ及び部品Ｃ画像データをそれぞれ入力する。
（２）カメラ１０は、（１）で入力される部品Ａ画像データをテンプレートとして、ステップＳ１１で入力される判定対象画像データに対して、テンプレートマッチングを行い、類似度を算出する。
（３）カメラ１０は、算出される類似度があらかじめ設定される閾値以上となる（又は最大となる）画像を部品Ａの判定対象画像データとする。
【００４４】
部品Ｂの判定対象画像データ及び部品Ｃの判定対象画像データは、（２）において、それぞれ部品Ｂ画像データ及び部品Ｃ画像データを用いてテンプレートマッチングを行うことにより、部品Ａの判定対象画像データと同様にそれぞれ生成される。
【００４５】
以上のようにして、入力される判定対象画像データから、ロボットアーム２を構成する部品ごとの判定対象画像データが、それぞれ生成される。なお、ロボットアーム２を構成する部品として、同一の部品が複数含まれる場合には、当該部品の判定対象画像データは、複数枚生成される。
【００４６】
ステップＳ１３において、カメラ１０は、部品ごとの判定対象画像データからそれぞれの特徴量を算出する。例えば、ロボットアーム２が部品Ａ、部品Ｂ及び部品Ｃから構成されている場合には、具体的には、カメラ１０は、以下のようにして特徴量を算出する。
（１）カメラ１０は、部品Ａの判定対象画像データについて、キーポイントの検出を行う。キーポイントは、例えば、ヘッセ行列が用いられると、検出できる。以下、検出されるキーポイントをそれぞれ（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）とする。
（２）カメラ１０は、（１）で検出されるキーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）に対して、スケールσｊをそれぞれ算出する。ここで、ｊ＝１，・・・，ｋであるとする。
（３）カメラ１０は、キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）のうち、学習処理で用いた所定のスケールσとの関係で、｜σ−σｊ｜＞εとなる（ｘｊ，ｙｊ）を除外する。このようにして得られるキーポイントを（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）とする。ここで、ｋ≧Ｌである。また、上記のεは、あらかじめ設定される値である。これは、キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘｋ，ｙｋ）のうち、スケールσｊの値がσと近い値となるキーポイント以外を除外することを意味する。なお、このようにして得られるキーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）が、当該部品（部品Ａ）において異常な状態である場合を示す箇所の候補となる。
（４）カメラ１０は、各キーポイント（ｘ１，ｙ１），（ｘ２，ｙ２），・・・，（ｘＬ，ｙＬ）に対して、それぞれのキーポイントにおけるオリエンテーションθｊをそれぞれ算出する。そして、カメラ１０は、これにより得られる３次元ベクトル（ｘｊ，ｙｊ，θｊ）（ｊ＝１，・・・，Ｌ）を部品Ａの判定対象画像データの特徴量とする。
【００４７】
カメラ１０は、部品Ｂの判定対象画像データ及び部品Ｃの判定対象画像データについてもそれぞれ上記（１）乃至（４）を行い、それぞれの３次元ベクトル（ｘｊ，ｙｊ，θｊ）部品Ｂ及び（ｘｊ，ｙｊ，θｊ）部品Ｃを特徴量として算出する。
【００４８】
以上のようにして、それぞれの特徴量は、部品ごとの判定対象画像データから算出される。ここで算出される部品ごとの特徴量を用いて、部品ごとに正常であるか異常であるかが判定される。
【００４９】
ステップＳ１４において、カメラ１０は、ステップＳ１３で算出される特徴量を用いてロボットアーム２が正常動作を行っているか異常動作を行っているかを判定する。つまり、判定処理によってロボットアーム２が異常動作を行っていると判定することによって、カメラ１０は、異常動作を検出できる。
【００５０】
例えば、部品Ａの判定対象画像データから算出される特徴量に基づき、部品Ａに係る異常を検出する。具体的には、部品Ａの特徴量（ｘｊ，ｙｊ，θｊ）の各ｊについて、それぞれｏｎｅ―ｃｌａｓｓ  ＳＶＭを用いると、部品Ａに係る異常を示すネガティブデータであるか否かが識別できる。この場合では、ネガティブデータであると識別された特徴量（ｘｊ，ｙｊ，θｊ）に対応するキーポイント（ｘｊ，ｙｊ）は、判定対象画像データにおける特徴点とされる。そして、判定対象画像データに基づいて、カメラ１０は、特徴点の密度があらかじめ設定される閾値以上の範囲を部品Ａの異常がある範囲と判定する。これにより、部品Ａの異常が検出される。さらに、部品Ｂ及び部品Ｃについても、同様の方法で異常が検出される。これにより、判定対象画像データが示すロボットアーム２全体が正常動作であるか異常動作であるかが判定される。なお、異常の検出には、ＬＯＦ（Ｌｏｃａｌ  Ｏｕｔｌｉｅｒ  Ｆａｃｔｏｒ）等が用いられてもよい。
【００５１】
＜機能構成例＞
図６は、第１実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。具体的には、カメラ１０は、特徴量算出部１０Ｆ１と、検出部１０Ｆ２と、処理部１０Ｆ３と、認識部１０Ｆ４とを含む。カメラ１０には、学習画像データＤ１及び判定対象画像データＤ２等の画像データがそれぞれ入力される。
【００５２】
特徴量算出部１０Ｆ１は、入力される画像データの特徴量を学習処理及び判定処理において算出する。なお、特徴量算出部１０Ｆ１は、例えば、ＣＰＵ１１（図２）等によって実現される。
【００５３】
検出部１０Ｆ２は、まず、正常動作、即ち、ポジティブモデルを示す学習データに基づく学習処理を行う。この学習処理があらかじめ行われると、検出部１０Ｆ２は、学習処理後に行われる判定処理によって、ロボットアーム２の異常動作を検出することができる。なお、検出部１０Ｆ２は、例えば、ＣＰＵ１１、撮像素子１９（図２）及びＨＤＤ１２（図２）等によって実現される。
【００５４】
処理部１０Ｆ３は、ロボットアーム２の状態等の環境状況に基づいて、異常動作を人３に通知したり、ロボットアーム２の制御を行ったりする。なお、処理部１０Ｆ３は、例えば、ＣＰＵ１１及び通信Ｉ／Ｆ１８（図２）等によって実現される。
【００５５】
認識部１０Ｆ４は、ロボットアーム２の可動範囲に、人３がいるか否かを認識する。なお、認識部１０Ｆ４は、例えば、ＣＰＵ１１及び撮像素子１９等によって実現される。また、画像データが示す被写体のうち、被写体が人であるか否かを認識する方法は、例えば、"Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ  ｆｏｒ  Ｈｕｍａｎ  Ｄｅｔｅｃｔｉｏｎ，Ｎａｖｎｅｅｔ  Ｄａｌａｌ  ａｎｄ  Ｂｉｌｌ  Ｔｒｉｇｇｓ，Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，  ２００５．  ＣＶＰＲ  ２００５．  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｊｕｎｅ  ２５  ２００５．"等で説明される方法で実現される。なお、同様の方法で、ロボットアーム２が認識されてもよい。
【００５６】
図７は、第１実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。カメラ１０が図６に示す機能構成である場合には、カメラ１０が全体処理を行うと、全体処理による処理結果は、例えば、図７に示すような処理結果となる。
【００５７】
まず、カメラ１０は、あらかじめ特徴量算出部１０Ｆ１及び検出部１０Ｆ２によって図３に示す学習処理を行うため、図５に示す判定処理によって、ロボットアーム２の異常動作が検出できる。
【００５８】
次に、カメラ１０は、ロボットアーム２及びロボットアーム２の周辺を撮像して、撮像によって生成される判定対象画像データに対して判定処理を行い、ロボットアーム２の異常動作を検出する。
【００５９】
さらに、カメラ１０は、認識部１０Ｆ４によって、作業員等の人３を認識する。また、カメラ１０は、認識した人３がロボットアーム２の可動範囲ＲＭにいるか否かを認識する。
【００６０】
なお、可動範囲ＲＭは、例えば、ロボットアーム２の可動できる範囲、即ち、ロボットアーム２が行う作業等においてロボットアーム２の一部又は全部が移動するいわゆる作業領域である。具体的には、可動範囲ＲＭは、ロボットアーム２の先端部分等が届く範囲である。また、可動範囲ＲＭには、ロボットアーム２の大きさ等から、ロボットアーム２が動いた場合にロボットアーム２の一部又は全部が届く範囲等が含まれてもよい。具体的には、例えば、ロボットアーム２が転倒した場合等に、ロボットアーム２の先端部分が届く範囲等である。なお、可動範囲ＲＭは、あらかじめ決定される範囲でもよく、例えば、カメラ１０が撮像する範囲の中心から３／４程度の範囲といったように、あらかじめカメラ１０に設定される範囲等でもよい。
【００６１】
カメラ１０は、環境状況としてロボットアーム２の状態を取得する。具体的には、カメラ１０は、ロボットアーム２の電源が切断されている状態、ロボットアーム２が停止するように制御されている状態又はロボットアーム２が動作を開始する前の状態のいずれかであるかを判定できるデータを取得する。なお、ロボットアームの電源が切断されている状態は、例えば、ロボットアーム２の主電源がＯＦＦとなっている場合等である。また、ロボットアーム２が停止するように制御されている状態は、例えば、ロボットアーム２のスタートボタンがＯＮでない場合（主電源は、ＯＮ）又は緊急停止ボタンがＯＮとなっている場合等である。さらに、ロボットアーム２が動作を開始する前の状態は、例えば、ロボットアーム２のスタートボタンがＯＮとされる前の状態、いわゆるスタンバイ状態等である。
【００６２】
即ち、これらの状態では、人３は、ロボットアーム２が停止していると判断することが多い。このため、人３は、ロボットアーム２が動くと予測するのが難しい。これに対して、ロボットアーム２は、電源が切断されていても、例えば、ロボットアーム２の自重又は外部からの電波等によって、設定されていない動作を行ったり、傾いたり、転倒したりする異常動作を行う場合がある。この場合には、人３がロボットアーム２の異常動作を予測するのが難しいため、ロボットアーム２が人３に接触したり、ロボットアーム２が人３に向かって倒れたりして、事故が起こる場合がある。
【００６３】
これに対して、カメラ１０は、ロボットアーム２の異常動作を検出できる。さらに、人３がロボットアーム２の異常動作を予測するのが難しい状態（特に上述した、人３が、ロボットアーム２が停止していると判断することが多い状態）では、例えば、カメラ１０は、警報音若しくは危険を知らせるメッセージ音声等の音、危険を知らせるメッセージを示す文字の表示若しくは発光等の光又はこれらを組み合わせて人に通知を行う。即ち、カメラ１０は、異常動作を検出し、かつ、電源が切断されている場合等には、音又は光等を用いて人３に通知ＡＴを行う。なお、カメラ１０は、スピーカ又は光源等の警報装置を有し、通知を行う場合には、警報装置によって、通知を行う。また、警報装置は、カメラ１０に接続される外部装置でもよい。
【００６４】
さらに、カメラ１０は、異常動作を検出し、かつ、電源が切断されている場合等には、ロボットアーム２を制御してもよい。例えば、カメラ１０は、ロボットアーム２が行う動作を減速又は停止させるため、制御信号ＣＴＬをロボットアーム２に送信して制御を行う。
【００６５】
なお、カメラ１０は、通知及び制御を組み合わせて行ってもよい。例えば、カメラ１０は、音による通知ＡＴを行い、かつ、ロボットアーム２を停止させる制御信号ＣＴＬを送信して制御を行ってもよい。
【００６６】
また、人３がロボットアーム２の可動範囲ＲＭにいるのを認識して通知ＡＴ又は制御信号ＣＴＬによる制御を行ってもよい。人３が可動範囲ＲＭにいる場合には、特に、事故が起きる可能性が高いため、人３が可動範囲ＲＭにいるのを認識することによって、カメラ１０は、より事故が起きるのを少なくできる。
【００６７】
一方、人３は、ロボットアーム２が異常動作しているのをロボットアーム２が正常動作していると勘違いして、可動範囲ＲＭに入ろうとする場合がある。したがって、人３が可動範囲ＲＭの外側にいる場合であっても、カメラ１０は、通知及び制御を行うのが望ましい。これによって、カメラ１０は、人３にロボットアーム２が異常動作していることを知らせることができる。
【００６８】
人３がロボットアーム２の異常動作を予測するのが難しい場合には、カメラ１０は、異常動作を検出すると、カメラ１０は、処理部１０Ｆ３によって、通知又は制御を行う。通知が行われると、人３は、ロボットアーム２が異常動作を行っているのを知ることができるため、人３は、ロボットアーム２の可動範囲ＲＭから離れる等の回避を行うことができる。
【００６９】
また、制御が行われると、ロボットアーム２は、異常動作を停止したり、減速させたりする。これによって、人３に向かってロボットアーム２が動くのが抑制される又はロボットアーム２の動作が低速となる。そのため、人３は、ロボットアーム２との接触を回避するのが容易になる。そのため、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。
【００７０】
［第２実施形態］
第２実施形態では、第１実施形態と同様の図２に示すカメラ１０を用い、図３及び図５に示す処理を行う。したがって、ハードウェア構成、学習処理及び判定処理については、説明を省略する。また、第２実施形態について、第１実施形態と同様に、図１に示す構成である例で説明する。第２実施形態は、第１実施形態と比較して、機能構成が異なる。なお、説明では、同一の機能については、同一の符号を付し、説明を省略する。
【００７１】
＜機能構成例＞
図８は、第２実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。図示する機能構成は、第１実施形態の機能構成と比較すると、視線方向検出部１０Ｆ５が追加される点が異なる。また、第２実施形態では、カメラ１０は、計測部１０Ｆ６を更に含んでもよい。以下、異なる点を中心に説明する。
【００７２】
視線方向検出部１０Ｆ５は、人３の姿勢、人３の顔の向き又は人３の視線に基づいて視線方向ＤＳを検出する。視線方向ＤＳが検出されると、カメラ１０は、視線方向ＤＳがロボットアーム２に向いているか否かによって、人３がロボットアーム２を見ているか否かを判定することができる。なお、視線方向検出部１０Ｆ５は、例えば、ＣＰＵ１１（図２）及び撮像素子１９（図２）等によって実現される。また、人の顔の向き又は人の目を検出する方法は、例えば、"Ｍｕｌｔｉｍｏｄａｌ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ，  Ｈｅａｄ  Ｏｒｉｅｎｔａｔｉｏｎ  ａｎｄ  Ｅｙｅ  Ｇａｚｅ  Ｔｒａｃｋｉｎｇ，Ｆｒａｎｋ  Ｗａｌｌｈｏｆｆ，Ｍａｒｋｕｓ  Ａｂｌａｂｍｅｉｅｒ，Ｇｅｒｈａｒｄ  Ｒｉｇｏｌｌ，Ｍｕｌｔｉｓｅｎｓｏｒ  Ｆｕｓｉｏｎ  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ  ｆｏｒ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｓｙｓｔｅｍｓ，  ２００６  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｅｐ．２００６．"等で説明される方法で実現される。
【００７３】
計測部１０Ｆ６は、ロボットアーム２と人３との距離ＤＩ、ロボットアーム２の速度ＳＰ又はロボットアーム２と人３との相対速度ＲＳのうち、いずれかの計測値を計測する。計測部１０Ｆ６は、例えば、ＣＰＵ１１及び撮像素子１９等によって実現される。また、距離、速度又は相対速度の計測は、ステレオカメラ等によるいわゆる三角測量法又はオプティカルフロー法等の方法によって実現される。具体的には、計測部１０Ｆ６がステレオカメラ等によって実現される場合には、計測部１０Ｆ６は、画像データから、ロボットアーム２及び人３と認識されたそれぞれの箇所の３次元座標を求めることができる。次に、３次元座標の差によって、計測部１０Ｆ６は、距離ＤＩを計測できる。また、計測部１０Ｆ６は、カメラの撮像周期（例えば、３０ｆｐｓ（画面／秒）等）において、画面ごとのロボットアーム２及び人３のそれぞれの３次元座標の変化から速度ＳＰ又は相対速度ＲＳを計測できる。
【００７４】
図９は、第２実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。カメラ１０が図８に示す機能構成である場合には、カメラ１０が全体処理を行うと、全体処理による処理結果は、例えば、図９に示すような処理結果となる。
【００７５】
まず、カメラ１０は、第１実施形態と同様に、あらかじめ特徴量算出部１０Ｆ１（図８）及び検出部１０Ｆ２（図８）によって図３に示す学習処理を行うため、判定処理によって、ロボットアーム２の異常動作が検出できる。次に、カメラ１０は、ロボットアーム２及びロボットアーム２の周辺を撮像して、撮像によって生成される判定対象画像データに対して判定処理を行い、ロボットアーム２の異常動作を検出する。さらに、カメラ１０は、認識部１０Ｆ４（図８）によって、作業員等の人３を認識する。また、カメラ１０は、認識した人３が可動範囲ＲＭにいるか否かを認識する。また、ステレオカメラを用いる場合には、あらかじめ可動範囲ＲＭをデータとして記憶しておくと、カメラ１０は、人３が可動範囲ＲＭにいるか否かを認識できる。
【００７６】
カメラ１０は、視線方向検出部１０Ｆ５によって視線方向がロボットアーム２に向いているか否かを判定する。例えば、視線方向は、第１視線方向ＤＳ１のように、ロボットアーム２に向いていない方向と、第２視線方向ＤＳ２のように、ロボットアーム２に向いている方向とがある。これに対して、カメラ１０は、第１視線方向ＤＳ１等の場合では、異常動作を検出し、異常動作が検出されると、カメラ１０は、人３に通知ＡＴを行ったり、制御信号ＣＴＬをロボットアーム２に送信して制御を行ったりする。これは、第１視線方向ＤＳ１等の場合には、特に、人３が異常動作を知るのが遅れる場合が多い。したがって、第１視線方向ＤＳ１等の場合には、通知又は制御が行われると、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。
【００７７】
また、カメラ１０は、環境状況としてロボットアーム２の状態を取得して、ロボットアーム２の状態によって、通知及び制御を行ってもよい。
【００７８】
具体的には、例えば、ロボットアーム２の主電源がＯＦＦ又はスタートボタンがＯＦＦである場合には、異常動作が検出されると、カメラ１０は、通知及び制御を行う。特に、主電源がＯＦＦ又はスタートボタンがＯＦＦである場合であって、人３が可動範囲ＲＭにいる場合であり、かつ、第１視線方向ＤＳ１等の場合には、通知及び制御を行う。
【００７９】
一方、スタートボタンがＯＮである場合には、人３は、ロボットアーム２が動く可能性がある程度の予測が可能な場合が多いので、カメラ１０は、人３が可動範囲ＲＭにいるか否かを認識する処理等を行う。また、スタートボタンがＯＮである場合には、カメラ１０は、異常動作の検出に係るハードウェアの動作又は処理の実行を停止してもよい。これによって、カメラ１０は、動作させるハードウェア又は実行する処理を少なくできるため、消費電力を少なくすることができる。
【００８０】
視線方向が第１視線方向ＤＳ１等のように、ロボットアーム２を見る方向でない場合には、人３は、ロボットアーム２の異常動作を知るのが難しい。特に、主電源がＯＦＦとなっている場合には、人３は、ロボットアーム２の異常動作を予測するのが難しいため、異常動作があると、事故が起きやすい。これに対して、カメラ１０が異常動作を検出し、カメラ１０は、処理部１０Ｆ３（図８）によって、通知又は制御を行う。通知が行われると、人３は、ロボットアーム２を見ていなくとも、ロボットアーム２が異常動作を行っているのを知ることができるため、人３は、回避等を行うことができる。
【００８１】
なお、カメラ１０は、ロボットアーム２及び人３のそれぞれの部位を認識して距離ＤＩ等を計測してもよい。例えば、カメラ１０は、ロボットアーム２について、動作する部位の例である先端部分を認識し、一方、人３について、頭部を認識する。この例では、カメラ１０は、それぞれ認識した頭部と、先端部分との距離ＤＩ等を計測する。先端部分のように動作する部位は、より人３に接触する可能性が高いため、動作する部位を認識して計測を行うことで、カメラ１０は、より事故を少なくできる。また、頭部等といった部位は、ロボットアーム２と接触すると、より大きな事故になる場合が多い。したがって、カメラ１０は、より大きな事故が起こりやすい部位を認識することで、カメラ１０は、大きな事故を少なくできる。
【００８２】
また、カメラ１０は、計測部１０Ｆ６（図８）によって計測される距離ＤＩ、相対速度ＲＳ又は速度ＳＰ等の計測値を用いてもよい。例えば、ロボットアーム２と人３とが近い、即ち、距離ＤＩが短い場合には、異常動作があると、人３は、回避する時間が少ない状態であるため、事故がより起きやすい。また、ロボットアーム２又は人３のいずれかが速く動いている場合、即ち、相対速度ＲＳが高い値である場合には、異常動作があると、人３は、回避しにくい状態であるため、事故がより起きやすく、さらに、接触等があった場合には、大きな事故が起こりやすい。同様に、ロボットアーム２が速く動いている場合、即ち、速度ＳＰが高い値である場合には、異常動作があると、人３は、回避しにくい状態であるため、事故がより起きやすく、接触等があった場合には、大きな事故になりやすい。
【００８３】
そのため、計測値によって、カメラ１０は、行う通知及び制御を決定してもよい。具体的には、下記（表１）のように、カメラ１０は、通知及び制御を段階的に行ってもよい。
【００８４】
【表１】
0006544044.tif 000002
上記（表１）で示すように、距離ＤＩが近い場合、相対速度ＲＳが高い場合又は速度ＳＰが高い場合には、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。これに対して、計測値が低い値になるに伴って、カメラ１０は、ロボットアーム２を減速させる制御を行う。つまり、計測値が高い値であると、カメラ１０は、ロボットアーム２をより減速させ、計測値が低い値であると、カメラ１０は、ロボットアーム２を減速させる。一方、距離ＤＩが遠い場合、相対速度ＲＳが低い場合又は速度ＳＰが低い場合には、カメラ１０は、通知を行う。なお、上記（表１）で示す制御（停止）及び制御（減速）を行う場合では、カメラ１０は、通知を更に行ってもよい。
【００８５】
ロボットアーム２を停止又はより低速に減速させると、ロボットアーム２の動作は、遅くなるため、ロボットアーム２による作業は、遅くなり、ロボットアーム２による作業効率が低下する。つまり、ロボットアーム２は、なるべく停止又はより低速に減速させる制御が行われないのが望ましい。したがって、事故がより起きやすく、接触等があると大きな事故になりやすい計測値が高い場合には、カメラ１０は、停止又はより低速に減速させる制御を行う。一方、計測値が低い場合には、通知が行われると、ロボットアーム２との距離ＤＩが遠いので、人３は、回避できる場合が多く、事故が起きるのを少なくできる。
【００８６】
上記（表１）で示すように、段階的に、計測値に基づいて行う通知及び制御が決定されると、カメラ１０は、作業効率を維持でき、かつ、事故が起きるのを減らすことができる。ゆえに、視線方向の判定結果に基づいて、通知又は制御が行われると、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。なお、上記（表１）で示す段階的制御は、視線方向に基づく制御との組合わせでも良いし、独立していてもよい。
【００８７】
［第３実施形態］
第３実施形態では、第１実施形態と同様の図２に示すカメラ１０を用い、図３及び図５に示す処理を行う。したがって、ハードウェア構成、学習処理及び判定処理については、説明を省略する。また、第３実施形態について、第１実施形態と同様に、図１に示す構成である例で説明する。第３実施形態は、第１実施形態と比較して、機能構成が異なる。なお、説明では、同一の機能については、同一の符号を付し、説明を省略する。
【００８８】
＜機能構成例＞
図１０は、第３実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。図示する機能構成は、第１実施形態の機能構成と比較すると、判別部１０Ｆ７が追加される点が異なる。以下、異なる点を中心に説明する。
【００８９】
判別部１０Ｆ７は、第２物体の種類を判別する。即ち、判別部１０Ｆ７は、ロボットアーム２の周辺にある物体が人であるか否かを判別する。なお、判別部１０Ｆ７は、例えば、ＣＰＵ１１（図２）及び撮像素子１９（図２）等によって実現される。また、判別部１０Ｆ７は、例えば、認識部１０Ｆ４（図６）が行う人を認識する方法等によって実現される。
【００９０】
工場内等には、人３以外に、第２物体として鼠等の動物又は自走式車両等が存在する場合が多い。第２物体が人３以外である場合と比較すると、第２物体が人３である場合の方が第２物体とロボットアーム２とが接触した場合には、大きな事故になりやすい。したがって、カメラ１０は、第２物体の種類を判別し、種類に基づいて、ロボットアーム２の制御又は通知を行う。例えば、第２物体の種類が人と判別され、かつ、異常動作を検出した場合には、カメラ１０は、ロボットアーム２を停止させる制御を行う。また、第２物体の種類が人と判別され、かつ、異常動作を検出した場合には、カメラ１０は、ロボットアーム２を停止させ、かつ、通知を行ってもよい。さらに、カメラ１０は、上記（表１）に示すように、第２物体の種類に基づいて、段階的に制御又は通知を行ってもよい。第２物体の種類に基づいて、通知又は制御が行われると、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。
【００９１】
［第４実施形態］
第４実施形態では、第１実施形態と同様の図２に示すカメラ１０を用い、図３及び図５に示す処理を行う。したがって、ハードウェア構成、学習処理及び判定処理については、説明を省略する。また、第４実施形態について、第１実施形態と同様に、図１に示す構成である例で説明する。第４実施形態は、第１実施形態と比較して、機能構成が異なる。なお、説明では、同一の機能については、同一の符号を付し、説明を省略する。
【００９２】
＜機能構成例＞
図１１は、第４実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。図示する機能構成は、第１実施形態の機能構成と比較すると、取得部１０Ｆ８が追加される点が異なる。以下、異なる点を中心に説明する。
【００９３】
取得部１０Ｆ８は、ロボットアーム２の周辺に係る状態又はロボットアーム２の正常動作の種類を取得する。なお、取得部１０Ｆ８は、外部Ｉ／Ｆ１７（図２）又は通信Ｉ／Ｆ１８（図２）等によって実現される。
【００９４】
取得部１０Ｆ８は、例えば、ネットワーク等を介して、ロボットアーム２の正常動作の種類等を示すデータを取得する。なお、入力装置等を用いる管理者による操作又はコントローラ５によって正常動作の種類等を示すパラメータが入力され、取得部１０Ｆ８は、入力されるパラメータ等からロボットアーム２の正常動作の種類等を取得してもよい。
【００９５】
例えば、ロボットアーム２が部品４をピッキングする正常動作を行う場合を例に説明する。ロボットアーム２がピッキングを行う場合には、正常動作は、ロボットアーム２が所定の位置又はルートを往復する等のあらかじめ決められた動作（以下「第１ピッキング方式」という。）である場合がある。即ち、第１ピッキング方式であると、正常動作では、ロボットアーム２は、所定の動線上を動く場合が多い。
【００９６】
一方、正常動作は、ロボットアーム２があらかじめ設定される形状の部品を探してロボットアーム２が動く移動先又はルートを決定し、ロボットアーム２が部品４を取りに行く動作（以下「第２ピッキング方式」という。）である場合がある。即ち、第２ピッキング方式であると、ロボットアーム２は、正常動作では、ロボットアーム２が決定した動線上を動く場合が多い。
【００９７】
なお、第２ピッキング方式では、カメラ１０は、ステレオ法、位相シフト法又は光切断法等によって３次元計測が可能なカメラ、即ち、ステレオカメラ等を有し、ステレオカメラによって、ピッキングの対象となる部品４を探す。また、ステレオカメラによって、部品４の位置及び姿勢等が３次元データで計測される。次に、３次元データがコントローラ５に送信されると、ロボットアーム２は、制御され、部品４を取りに行く。これらの方法によって、第２ピッキング方式は、実現される。なお、カメラ１０は、コントローラ５を有する構成でもよい。即ち、カメラ１０は、ＣＰＵ１１（図２）によってコントローラ５を実現してもよく、又はコントローラ５を実現できる電子回路基板等を更に有する構成でもよい。
【００９８】
図１２は、第４実施形態に係る画像処理装置が行う全体処理による処理結果の一例を示す図である。以下、ロボットアーム２が、部品４をピッキングし、部品４を保管場所６に移動させる作業を行う例で説明する。
【００９９】
部品４の位置、形状、保管場所６の位置又はロボットアーム２が部品４を取りに行くルート（以下「第１ルート」という。）Ｒ１等が、あらかじめ決まっている場合がある。また、部品４を保管場所６に移動させるルート（以下「第２ルート」という。）Ｒ２又はピッキングが終了した場合に動くルート（以下「第３ルート」という。）Ｒ３等が、あらかじめ決まっている場合がある。これらの場合には、ロボットアーム２は、第１ピッキング方式でピッキングを行う場合が多い。
【０１００】
一方、部品４の位置等があらかじめ決まっていない場合等には、ロボットアーム２は、第２ピッキング方式でピッキングを行う場合が多い。
【０１０１】
第２ピッキング方式では、ロボットアーム２が部品４を探してルートを決定するため、人３は、第１ルートＲ１、第２ルートＲ２及び第３ルートＲ３を予測するのが、第１ピッキング方式と比較して難しい。例えば、第１ピッキング方式では、部品４の位置と保管場所６の位置との間を最短で移動できる、部品４の位置と保管場所６の位置を直線で結んだルート等が第２ルートＲ２となる場合が多く、人３は、第２ルートＲ２を予測しやすい。また、第１ピッキング方式では、ロボットアーム２は、同様のルートを繰り返し移動することが多い。そのため、第１ピッキング方式では、人３は、正常動作、異常動作及び可動範囲ＲＭを予測しやすい。
【０１０２】
一方、第２ピッキング方式では、ロボットアーム２がどの部品を探しているかが人３が分からない場合等があるため、人３は、第１ルートＲ１を予測するのが難しい。即ち、第２ピッキング方式では、人３は、正常動作、異常動作及び可動範囲ＲＭを予測するのが難しい。そのため、第２ピッキング方式の場合には、事故がより起きやすい。
【０１０３】
カメラ１０は、取得部１０Ｆ８（図１１）によって、環境状況として正常動作の種類を取得する。即ち、カメラ１０は、ロボットアーム２の正常動作が第１ピッキング方式であるか第２ピッキング方式であるかを示すデータ等を取得する。例えば、ロボットアーム２の正常動作が第２ピッキング方式であり、かつ、異常動作が検出される場合には、カメラ１０は、ロボットアーム２を停止させる制御を行う。また、ロボットアーム２の正常動作が第２ピッキング方式であり、かつ、異常動作を検出した場合には、カメラ１０は、ロボットアーム２を停止させ、かつ、通知を行ってもよい。
【０１０４】
さらに、カメラ１０は、正常動作の種類、ロボットアーム２が使用する部品４の量、ロボットアーム２の周辺の明るさ若しくは時間帯等の第１物体の周辺に係る状態又はこれらを組み合わせて、重み係数を算出し、段階的に制御又は通知を行ってもよい。具体的には、カメラ１０は、取得部１０Ｆ８によって取得される環境状況に基づいて重み係数を算出し、下記（表２）のように、重み係数に応じて行う制御及び通知を決定してもよい。
【０１０５】
【表２】
0006544044.tif 000003
例えば、環境状況として第２ピッキング方式を示す正常動作の種類が取得される場合には、重み係数は、高くなり、重み係数が高い場合には、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。上記（表２）に示すように、正常動作の種類以外に、ロボットアーム２が使用する部品４の量、ロボットアーム２の周辺の明るさ又は時間帯等から重み係数が算出されてもよい。
【０１０６】
具体的には、部品量が少ない場合には、重み係数は、高くなる。部品４がバラ積みされており、ピッキングが何度か行われると、部品量は、少なくなる。部品量が少なくなると、部品４の補充等を行うため、人３等が、ロボットアーム２が部品４を取る位置に近づく場合が多い。したがって、このような場合には、事故がより起きやすい。ゆえに、部品量が少ない場合には、重み係数に、高い値が算出される。この場合には、異常動作が検出されると、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。
【０１０７】
また、ロボットアーム２の周辺及び工場内等の明るさが暗い場合には、重み係数は、高くなる。暗い場所では、人３は、ロボットアーム２等を見つけにくいため、事故がより起きやすい。ゆえに、明るさが暗い場合には、重み係数に、高い値が算出される。この場合には、異常動作が検出されると、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。なお、例えば、明るさは、画像データが有する画素の輝度値等に基づいて計算される。また、カメラ１０は、輝度計等の明るさを計測できるセンサ等を有し、センサによって、明るさを計測してもよい。
【０１０８】
さらに、夜間又は人３が長時間勤務であると推測できる時間帯では、重み係数は、高くなる。夜間又は長時間勤務となると、人３の集中力が下がるため、事故がより起きやすい。ゆえに、夜間又は人３が長時間勤務であると推測できる時間帯では、重み係数には、高い値が算出される。この場合には、異常動作が検出されると、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。なお、時間帯は、例えば、カメラ１０がタイマ等を有し、あらかじめ定められる時間を経過した場合には、夜間又は人３が長時間勤務であると判定する。
【０１０９】
環境状況として第１物体の周辺に係る状態又は正常動作の種類が取得されると、カメラ１０は、事故が起きやすい第２ピッキング方式でロボットアーム２が動作している等を判定することができる。したがって、例えば、主電源がＯＮであり、かつ、スタートボタンがＯＦＦである場合であって、さらに、第２ピッキング方式でロボットアーム２が動作する場合で、異常動作が検出されると、カメラ１０は、ロボットアーム２を停止させる制御及び通知を行う。一方、第１ピッキング方式でロボットアーム２が動作する場合では、異常動作が検出されると、カメラ１０は、通知を行う。
【０１１０】
カメラ１０は、上記（表２）に示すように、事故がより起きやすいと推測できる場合には、重み係数が高くなるように算出する。算出される重み係数に基づいて、カメラ１０は、上記（表２）に示すように、通知及び制御を行うため、事故がより起きやすい重み係数が高い場合には、カメラ１０は、停止又はより低速に減速させる制御を行う。一方、重み係数が低い場合には、通知が行われると、人３は、回避できる場合が多く、事故が起きるのを少なくできる。
【０１１１】
上記（表２）で示すように、段階的に、重み係数に基づいて行う通知及び制御が決定されると、カメラ１０は、作業効率を維持でき、かつ、事故が起きるのを減らすことができる。ゆえに、重み係数に基づいて、通知又は制御が行われると、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。
【０１１２】
［第５実施形態］
第５実施形態では、第１実施形態と同様の図２に示すカメラ１０を用い、図３及び図５に示す処理を行う。したがって、ハードウェア構成、学習処理及び判定処理については、説明を省略する。また、第５実施形態について、第１実施形態と同様に、図１に示す構成である例で説明する。第５実施形態は、第１実施形態と比較して、機能構成が異なる。なお、説明では、同一の機能については、同一の符号を付し、説明を省略する。
【０１１３】
＜機能構成例＞
図１３は、第５実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。図示する機能構成は、第１実施形態の機能構成と比較すると、生成部１０Ｆ９が追加される点が異なる。以下、異なる点を中心に説明する。
【０１１４】
生成部１０Ｆ９は、環境状況としてロボットアーム２の状態、ロボットアーム２の周辺に係る状態又は人３の状態を入力して、環境状況を示すデータ、画像データ、環境状況若しくは画像データに基づいて算出される算出値又はこれらを組み合わせたデータを生成する。さらに、生成部１０Ｆ９は、生成したデータ等を外部装置等に送信してもよい。なお、生成部１０Ｆ９は、ＣＰＵ１１（図２）、外部Ｉ／Ｆ１７（図２）、通信Ｉ／Ｆ１８（図２）及び撮像素子１９（図２）等によって実現される。
【０１１５】
例えば、カメラ１０は、入力される環境状況から、下記（表３）に示す状態が起きた回数をカウントして算出値を算出する。
【０１１６】
【表３】
0006544044.tif 000004
「可動範囲に人が入った」状態は、図７で説明した方法等で判定される。また、「人がヘルメットを着けていない」状態は、例えば、カメラ１０が人３の頭部等を認識し、頭部と認識される箇所があらかじめ設定されるヘルメットの色でないと認識することで判定される。さらに、「ロボットアームの周辺に通常置いていない物体がある」状態は、ロボットアーム２の周辺について正常動作を学習するのと同様の学習処理が行われると、判定処理によって、カメラ１０は、通常置いていない物体があると判定できる。さらにまた、「可動範囲に物体が入った場合、物体の種類が人である」状態は、第３実施形態で説明した方法等で判定される。
【０１１７】
また、カメラ１０は、上記（表３）となった環境状況を示すデータ、画像データ又はこれらを組み合わせたデータを生成する。例えば、保険等に係る調査等では、生成されたデータが証拠となり、調査等に使用できる。なお、カメラ１０は、生成したデータを外部装置等で記憶するため、生成したデータを外部装置等に送信してもよい。
【０１１８】
さらに、カメラ１０は、外部装置に事故が起きたことを連絡するのに合わせて生成したデータを送信してもよい。なお、カメラ１０が連絡を行う場合には、連絡を行うタイミングを状態にあわせて変更してもよい。例えば、上記（表３）に示す「可動範囲に人が入った」状態、「人がヘルメットを着けていない」状態又は「可動範囲に物体が入った場合、物体の種類が人である」状態で接触事故が起きた場合には、カメラ１０は、直ちに連絡を行う。即ち、この場合には、カメラ１０は、事故が起きたことを直ちに管理者等に伝える処理を行う。一方、人に関する状態でない場合には、カメラ１０は、一定期間のデータをまとめて連絡を行う等でもよい。即ち、この場合には、カメラ１０は、いわゆるログを取る程度の処理を行う。なお、人に関する状態でない場合は、例えば、異常動作が検出され、かつ、可動範囲に入った物体が人でない場合等である。
【０１１９】
また、上記（表２）と同様に、上記（表３）に示す各状態にそれぞれ重みを設定し、カメラ１０は、第４実施形態のように、重み係数を算出してもよい。即ち、カメラ１０は、第４実施形態のように、重み係数に基づいて、段階的に、重み係数に基づいて通知及び制御を行ってもよい。重み係数に基づいて通知及び制御が行われると、カメラ１０は、作業効率を維持でき、かつ、事故が起きるのを減らすことができる。ゆえに、重み係数に基づいて、通知又は制御が行われると、カメラ１０は、事故が起きるのを減らし、可動機械等が使用される環境において、人に対する安全を高めることができる。
【０１２０】
なお、上述の説明では、ロボットアーム２の電源が切断されている状態等のロボットアーム２が動作しにくい状態の例で説明したが、実施形態は、これに限られない。例えば、カメラ１０は、ロボットアーム２に電力が供給されている場合に、判定処理等を行ってもよい。ロボットアーム２が正常動作をしている場合でも、人の不注意、動物の侵入又は自走式車両の誤動作等によって、異常動作が検出される場合がある。これらの事象が異常動作として検出されると、ロボットアーム２が損傷する等の事象が検出できるため、ロボットアーム２を保護することができる。
【０１２１】
＜まとめ＞
以上の説明から明らかなように、本実施形態に係るカメラでは、
・特徴量算出部及び検出部は、正常動作である場合の学習データによって学習処理を行い、画像データに基づく判定処理によって異常動作を検出できる構成とした。
・処理部は、音若しくは光等を使用して人に通知を行う又はロボットアーム等の第１物体を減速若しくは停止させる制御を行える構成とした。
・視線方向検出部は、人の視線を検出し、視線方向に基づいて人がロボットアームを見ているか否かを判定して判定結果に基づいて処理部が行う通知及び制御を決定できる構成とした。
・計測部は、第１物体と人との距離、相対速度又は第１物体の速度のうち、いずれかの計測値を計測し、計測値に基づいて上記（表１）のように、処理部が行う通知及び制御を決定できる構成とした。
・判別部は、第２物体の種類を判別し、判別された種類に基づいて処理部が行う通知及び制御を決定できる構成とした。
・取得部は、環境状況として第１物体の周辺に係る状態又は正常動作の種類を取得し、第１物体の状態又は正常動作の種類により算出される重み係数に基づいて上記（表２）のように、処理部が行う通知及び制御を決定できる構成とした。
・生成部は、環境状況として第１物体の状態、第１物体の周辺に係る状態又は第２物体の状態を入力して、環境状況を示すデータ、画像データ、環境状況若しくは画像データに基づいて算出される算出値又はこれらを組み合わせたデータを生成できる構成とした。
【０１２２】
このように、本実施形態では、特徴量算出部及び検出部は、正常動作である場合の学習データによって学習処理を行う。これによって、画像データに基づく判定処理によって異常動作が検出されるため、異常動作が検出されると、処理部は、通知及び制御を行うことが実現できる。したがって、本実施形態に係るカメラは、事故が起きるのを減らし、人に対する安全を高めることができる。
【０１２３】
なお、画像処理装置及び画像処理システムが用いられるのは、ＦＡに限られない。即ち、画像処理装置及び画像処理システムは、屋外等に用いられてもよい。例えば、画像処理装置及び画像処理システムは、屋外の工事現場等に用いられてもよい。また、第１物体は、ロボットアームに限られない。即ち、第１物体は、移動若しくは可動する産業機械、他のロボット又は自動車等でもよい。
【０１２４】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０１２５】
１０  カメラ
２  ロボットアーム
３  人
４  部品
【先行技術文献】
【特許文献】
【０１２６】
【特許文献１】特開２０１０−１８８５１５号公報
【特許文献２】特開２０１０−１８８４５８号公報
【図１】
0006544044.tif 000005
【図２】
0006544044.tif 000006
【図３】
0006544044.tif 000007
【図４】
0006544044.tif 000008
【図５】
0006544044.tif 000009
【図６】
0006544044.tif 000010
【図７】
0006544044.tif 000011
【図８】
0006544044.tif 000012
【図９】
0006544044.tif 000013
【図１０】
0006544044.tif 000014
【図１１】
0006544044.tif 000015
【図１２】
0006544044.tif 000016
【図１３】
0006544044.tif 000017