「カラーパターン認識DLL」の使用方法

色付きの部品やラベルなどの画像認識が得意なDLLソフトです。Excelからでも利用できます。

画像処理・画像認識・カラー検査ソフトへ


●特徴
・USBカメラとノートがあれば使用できます。
 Excelのサンプルソフトを付属していますのでお試しください。

・認識時間
 150×150の認識エリア、60×60のモデルで50回Excelより精度2で認識テストした結果、0.278秒/1回 でした。 
 (認識時間は使用するパソコン、認識エリア、モデルサイズ、認識精度等により異なります)

・周囲の環境
 一般のモノクロでの認識とは異なり、色相で検出しますので、明るさ変動の影響は受けにくいです。
 しかし、変動の大きさや認識対象や用途等により異なりますので、事前にテストを十分に行ってください。

・検査領域を設定できるので、無駄な部分をサーチしない為、時間短縮できます。

・認識精度、判定基準を指定できます。

・検出可能な画像サイズはMAX640×480ピクセルです。

・ビデオの画像入力形式はRGB24にしてください。
 RGB24に設定可能なカメラでないと使用できません。

●はじめに
・USBカメラ・キャプチャーボード等の入力は機器や環境によっては動作できない可能性もあります。
 ご自分の環境でご確認ください。
 (まず機器の付属のドライバソフト等をインストールし動作可能な状態にしてください。
 付属ソフトでカメラが動作しているかチェックしてください)
・検出可能な画像サイズは最高640×480ピクセルです。
・ビデオの画像入力形式はRGB24にしてください。
 RGB24に設定可能なカメラでないと使用できません。
・認識精度や動作は対象物、使用するカメラ、パソコンの環境などによって異なりますので十分にテストを行ってください。 
・検査モデルが白黒に近いものは、認識が難しくなります。
・明るさが一定な方がいいですが、認識対象や用途等により異なりますので、事前にテストを十分に行ってください。
・使用するカメラやパソコンのUSB環境によっては使用できない場合があります。
 使用される環境で十分にテストを行ってください。 
・下記のカメラで動作確認しました。
  1)ELECOM UCAM-P1C30MNSV(USB2.0、30万画素)
  2)Novac社製 CATCH EYE(USB1.1、30万画素))
・OSはWindows98、WindowsXPで動作確認を行いました。

【インストール】
ダウンロードされたファイルは圧縮されています。
1)「スタート」-「ファイル名を指定して実行」でダウンロードファイルを選択し、「OK」ボタンをクリックしてください。
2)「解凍先の指定」が出ますのでそのままでよければ「OK」ボタンをクリックしてください。 これで解凍できます。
3)「patcolor.dll」をWindowsのSystem32フォルダにコピーするか、DLLの宣言時パス指定をしてください。
 ・System32フォルダにコピーした場合のExcel VBA宣言例
  Public Declare Function patmatch_open Lib "patcolor.dll" (ByVal sdir As String) As Long
 ・c:\パターン認識 フォルダで使用する場合のExcel VBA宣言例
  Public Declare Function patmatch_open Lib "c:\パターン認識\patcolor.dll" (ByVal sdir As String) As Long

【アンインストール】
インストール先のフォルダごと削除してください。
もしSystem32フォルダにコピーされている場合は、「patcolor.dll」を削除してください。
レジストリは使用していません。

【お読みください.txt】
最新情報、使用条件等は添付の「お読みください.txt」を御覧ください。

●実行順序
開始時、認識ウィンドウオープン(patmatch_open)を行い、終了時には必ず終了処理(patmatch_close)を行ってください。

1)開始処理 認識ウィンドウをオープンします。
 patmatch_open

2)モデルの登録 一度設定すると、変更がなければ2回目以降は必要ありません。
 モデルは周囲と色が異なる、特徴がある範囲を設定すると認識率は高くなります。
 patmatch_model

3)認識エリアの登録 一度設定すると、変更がなければ2回目以降は必要ありません。
 エリアが小さいほど、認識速度が早くなります。 
 patmatch_area

4)認識の実行
 patmatch_start

5)終了処理 認識ウィンドを閉じます
 patmatch_close

●関数
patmatch_open
開始時に実行し、認識ウィンドウをオープンします。

・Excel VBA宣言例
 Public Declare Function patmatch_open Lib "patcolor.dll" (ByVal sdir As String) As Long

・パラメータ
 sdir: 条件保存用ファイル、モデルファイル等の保存先フォルダを指定します。

・Excel VBA使用例
 Dim ret As Long
 Ret = patmatch_open(ActiveWorkbook.Application.Path)

・戻り値
-1: 認識ウィンドウがオープンされていないか、処理を実行中
0: OK
1: 認識エリア設定時のビデオ形式と違います。認識エリアを再設定してください。
2: モデルファイル(model.bmp)を開くことができませんでした。モデルを再設定してください。
3: モデルファイル(model.bmp)が見つかりません。モデルを再設定してください。
4: ビデオサイズは 横:640、縦480 ピクセル以下に設定してください。
5: ビデオ設定の形式をRGB24に設定してください。RGB24に設定できないカメラは使用できません。
6: USBカメラ等の画像入力が見つかりませんでした。カメラ等を接続後、再度実行してください。
7: avicap32.dll が見つからない為、実行できません
8: DLLオープンエラー

※.5,6のエラーが発生した場合、一度 patmatch_close で閉じ、カメラ接続等の対策後、再度実行してください。

[オープン状態]
1.四角枠は登録されている、認識エリアを表示しています。
2.十字はセンター位置を表示しています。
3.成功した認識位置をクロス表示します。
認識座標

patmatch_model
認識モデルを設定します。
モデルは周囲と色相が異なる、特徴がある範囲を設定すると認識率は高くなります。
逆の場合、誤認や認識できない可能性が高くなります。

・Excel VBA宣言例
 Public Declare Function patmatch_model Lib "patcolor.dll" () As Long

・Excel VBA使用例
 Dim ret As Long
 ret = patmatch_model()

・戻り値
 patmatch_open の戻り値と同じです。

[モデル設定中の画面]
1.枠内をドラッグすると移動できます。
  枠の中央をドラッグすると枠サイズを変更できます。
2.モデルの位置とサイズを表示します。
3.モデルの色を設定します。(赤・緑・青・マゼンタ・黄・シアン)
  モニタやカメラにより、画面の見た目と入力値が若干異なる場合があります。
  例えば、見た目「緑」ですが、「シアン」にした方がきれいに色を取り出せる場合があります。
  登録後、モデルビュー画面で確認しながらテストし、決めてください。
認識対象物

上のモデル枠で、設定した場合のモデル画像です。
下のように、設定した色のみ画像から抜き取ります。

・色を[黄]にした場合
 中央のボリューム部分と基板が白くなっています。
2値化画像

・色を[青]にした場合
 ボリュームの青色外周部分が白くなっています。
2値化 反転画像

patmatch_modelview
登録されている認識モデルを表示します。

・Excel VBA宣言例
 Public Declare Function patmatch_modelview Lib "patcolor.dll" () As Long

・Excel VBA使用例
 Dim ret As Long
 ret = patmatch_model()

・戻り値
 patmatch_open の戻り値と同じです。

[モデル表示画面]
赤色LEDを認識色「赤」で設定したモデル画像です。
LED エルイーディー

patmatch_area
認識エリアを設定します。

・Excel VBA宣言例
 Public Declare Function patmatch_area Lib "patcolor.dll" () As Long

・Excel VBA使用例
 Dim ret As Long
 ret = patmatch_area()

・戻り値
 patmatch_open の戻り値と同じです。

[認識エリア設定中の画面]
1.枠内をドラッグすると移動できます。
  枠の中央をドラッグすると枠サイズを変更できます。
2.エリアのサイズと位置を表示します。
3.表示されている認識枠を登録します。
認識範囲

patmatch_start
認識を実行します。

Excel VBA宣言例
 Public Declare Function patmatch_start Lib "patcolor.dll" _
  (ByVal acc As Long, ByVal score As Single, ByRef retscore As Single, ByRef nx As Long, ByRef ny As Long) As Long

・パラメータ
 acc: 認識精度
 score: 認識OKスコア
 retscore: スコア(戻り値)
 nx: X位置(戻り値)
 ny: Y位置(戻り値)

・Excel VBA使用例
 Dim ret As Long
 ret = patmatch_start(acc, fn, fs, x, y)
 'X位置
 Range("G20") = x
 'Y位置
 Range("H20") = y
 'スコア
 Range("F20") = fs
 DoEvents

・戻り値
 認識に失敗すると、XYが-1になります。 
 patmatch_open の戻り値と同じです。

[認識できた画面]
1.認識位置に十字が表示されます。
2.認識スコア、X座標、Y座標が表示されます。
クロスマーク

patmatch_format
ビデオ形式を設定します。

・Excel VBA宣言例
 Public Declare Function patmatch_format Lib "patcolor.dll" () As Long

・Excel VBA使用例
 patmatch_format

・戻り値
 0が返ります。

patmatch_video
ビデオ入力を設定します。 カメラの切り替えはここでできます。

・Excel VBA宣言例
 Public Declare Function patmatch_video Lib "patcolor.dll" () As Long

・Excel VBA使用例
 patmatch_video

・戻り値
 0が返ります。

patmatch_compression
ビデオ圧縮を設定します。

・Excel VBA宣言例
 Public Declare Function patmatch_compression Lib "patcolor.dll" () As Long

・Excel VBA使用例
 patmatch_compression

・戻り値
 0が返ります。

patmatch_close
認識ウィンドウを閉じます。

・Excel VBA宣言例
 Public Declare Function patmatch_close Lib "patcolor.dll" () As Long

・Excel VBA使用例
 Dim ret As Long
 Ret = patmatch_close()

・戻り値
 patmatch_open の戻り値と同じです。

●Excelサンプルソフト
基本的に下記の順で行います。

(1) 認識ウィンドウを開きます。
(2) 認識モデルを設定します。「ビュー」ボタンでモデルを表示できます。
(3) 認識エリアを設定します。
(4) 認識を実行します。
   事前に、「認識精度」と「認識OKスコア」を設定します。
   「認識精度」: 1〜5の範囲で、1が精度が高く、5が低くなります。認識時間は精度が高くなるほど掛かります。
   「認識OKスコア」: 0〜100%の範囲で設定します。高くすると、認識が難しくなります。 
(5) 認識ウィンドウを閉じます。
   必ずこの処理を実行し、終了してください。

・「ビデオ形式」ボタン: ビデオ形式を設定します。
・「ビデオ入力」ボタン: ビデオ入力を設定します。 カメラの切り替えはここでできます。
・「ビデオ圧縮」ボタン: ビデオ圧縮を設定します。
Excelで画像認識(パターン認識)

●XYステージ等の位置決めで使用する方法
カメラを固定し、基板等の認識対象がステージ上にあることとします。

[キャリブレーション(Calibration)]
(1)XYステージの中央付近に、認識率が高いモデルをおきます。
(2)認識し、XY位置を記憶します。
(3)XYステージを定量移動後、認識し、XY位置を記憶します。
   これを数箇所行います。
(4)数箇所の平均をとり、モーターが1パルス移動すると、画面では何画素移動するかを計算します。
  これをキャリブレーション値とします。

[位置決めの実行]
(1)基板等の認識対象がステージの適当な位置にセットされます。
(2)認識を実行し、センター値より何画素離れているかを計算します。
(3)これを、キャリブレーション値で割りパルス数を計算します。
(4)算出したパルス数分、ステージを移動すると、認識モデルが中心に移動します。


Soft-Soft!

Copyright(C) FeedSoft All Right Reserved