HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > 開発システム事例 > パソコンソフト開発「ソフテックの取り組んできた色々な画像処理システム」

開発システム事例

パソコンソフト開発「ソフテックの取り組んできた色々な画像処理システム」

1. はじめに

当社ではソフテックとして創業する以前の1976年からさまざまな画像処理システムに取り組んで来ました。
具体的には以下のような種々の画像処理システムを開発して参りました。
緑文字で表示した1.〜6.はソフテック創業以前の開発です。
その後の開発はソフテックとしての開発案件になります。
その内の3つのシステムについて、簡単に紹介し、開発時に起こったことや感じたことなどをご紹介したいと思います。

1. 高速画像処理システム (1976年 9月 〜 1977年 3月)  
2. ビン内液量計測制御システム (1977年 6月 〜 1978年 7月)  
3. ケーシング幅測定制御システム (1977年12月 〜 1978年 3月)  
4. 文字読取りシステム (1978年 3月 〜 1978年 8月)  
5. ビン内液量計測制御システム (1978年10月 〜 1979年 3月)  
6. ビンラベル検査システム (1983年 8月 〜 1985年 3月)  
7. TAB用のハンドラ (1990年 4月 〜 1990年11月)  
8. 表面実装部品外観検査装置 (1991年 1月 〜 1992年10月)  
9. 表面実装部品用ハンドラ (1991年 7月 〜 1992年12月)  
10. ロムライティングハンドラ (1992年 3月 〜 1993年 4月)  
11. LF検査装置開発 (1999年10月 〜 2000年 3月)  
12. DVD検査装置 (1999年11月 〜 2000年 2月)  
13. 液晶表示器検査装置 (2000年 1月 〜 2000年 6月)  
14. 液晶検査装置  (2000年 6月 〜 2000年 7月)  
15. 液晶検査装置 (2000年 7月 〜 2000年 8月)  
16. 液晶検査装置 (2000年 8月 〜 2000年 9月)  
17. 液晶検査装置  (2000年 9月 〜 2001年 3月)  
18. フォトスペーサー検査装置 (2001年 2月 〜 2001年 5月)  
19. 半導体外観検査装置 (2001年 8月 〜 2002年 5月)  
20. FPD検査装置 (2004年 8月 〜 2004年12月)  
21. 画像処理検長アプリケーション (2007年 7月 〜 2007年12月) HALCON使用
22. 外観検査システム (2008年 4月 〜 2008年 8月) HALCON使用
23. 画像処理システム開発 (2009年 4月 〜 2009年 8月) HALCON使用
24. 不良品検知装置改造 (2009年 7月 〜 2009年 8月) HALCON使用
25. 外観検査システム (2009年 9月 〜 2010年 3月) HALCON使用

2. ビン内液量計測制御システム

ビンの中に入っている水を主成分とする液体の液面の位置を測定することでビンの中の液量が少なすぎるのか、多すぎるのかを判定し、不適切な液量のビンを抜き出す画像処理システムです。
白黒CCDカメラが市場に登場したのは1979年のことですが、それ以前の1977年にセンサーを線状に配置した128ビットの一次元CCDを使ってシステムの開発を始めました。
1978年10月から再開発を行いましたが、その際には512ビットの一次元CCDを用いています。

図1. 測定方法のイメージ
図1. 測定方法のイメージ

光源はハロゲンランプを使用し、センサー上に結像させるために市販の一眼レフ用の交換レンズ(50mmの単焦点レンズ)を使用しました。
ビンを透過した光をセンサー上に結像させて測定する透過方式を採用しました。
開発段階においてサンプルとしての測定対象のビンを出来るだけ多く準備しました、記憶では400〜500本は有ったと思います。
それらのビンを参考にして開発を行い、サンプルのビンを対象にする限り100%の検査精度を出すことが出来ました。
しかし、実際の運用に入ると思ったように判定の精度がでません。実運用で判定精度が出ないことは予測したことですが、予想外のこともいくつかありました。
その内の2つを以下にご紹介します。

2-1. 想定よりもビンの色の濃度差が大きい。

中の液体が泡立つ、ビンに傷がある、ビンの色の濃さが異なる、などが測定の障害になるであろうことは想定していました。
いずれもサンプルでは余裕を持ってクリアしましたが、運用に入ってからビンの色の濃さが異なるという点で想定を超える事態が発生しました。
人間の目で見るとあまり違っているようには見えないのですが、オシロスコープなどで映像信号を見ると想定よりもビンの色が濃いものが多数見つかりました。
色が薄い場合は問題有りませんが、色が濃すぎる場合は映像が暗くなり必要な映像信号を得られなくなります。
さいわいにも映像信号増幅回路の調整でクリアできましたが、調整の許容範囲が狭くなり、調整の難易度が若干高くなってしまいました。
CCDは近赤外線なども検出するなど人間の目とは特性が異なるので要注意です。

2-2. 通過したビンの数が入り口と出口で一致しない。

起こることは希でしたが症状としてはこの装置に流れ込むビンの数よりもこの装置から出ていくビンの数が多いというものでした。
結果的に測定したビンと異なるビンを抜き出してしまい、判定精度を損なう状況が発生しました。
初めはソフトウエア上の問題やノイズを疑いましたが、原因がわからず、再現する場面を確認しようと流れるビンを長いあいだ見続けました。
ようやくその瞬間を目撃し原因がわかったのですが、予想を超えた現象でした。
このシステムの上流から測定の対象となるビンがコンベアに運ばれて流れてきます。
通常は整然と並んで流れてきます。
ただし、上流工程の処理の具合でビンがびっしりと並んでくることもあり、隙間だらけで流れてくることもあります。
この装置の終わりのところに不適切な液量のビンを抜き出す機構がついていてそこを通過するためには多少の力が必要です。
測定する位置は不適切な液量のビンを抜き出す機構よりも数十センチ上手にあります。
目を凝らしてみていると、前のビンに倒れ掛かったビンがコンベアを流れてきました。
よく不安定な状態のままで保たれて流れてくるものだと感心して見ていました。
完全に倒れているわけではなく、前後のビンに支えられながら前のビンに寄り掛かっている状態です。

図2. 倒れ掛かったビン
図2. 倒れ掛かったビン

そのまま測定部を通過しましたが、高さが足りず、ビンが通過したことを検出できなかったために測定は出来ませんでした。
そのまま流れていくのだろうと思いながら見ていました。
ところが、不適切な液量のビンを抜き出す機構に差し掛かると通過するために力が必要なためにコンベア上を進む前のビンはそこで止まってしまいました。
さらに倒れ掛かったビンと後ろのビンはコンベアに押されて前のビンを押す状態となりました。
すると、倒れ掛かっていたビンが立ちあがり始め、最後にはまっすぐに立ち正常な状態となり、何事もなかったかのように流れ始めました。
こうして測定部では検出されなかったビンがこの装置の最後では検出されることになってしまいました。
結果として、この装置に入ったビンの数と出たビンの数が違うという現象を生じたのです。
原因がわかり対策しましたが、目の前で見るまでは想像もしない現象でした。

3.表面実装部品外観検査装置(NVIS)

この装置はプリント基板上に実装された表面実装部品の装着状態を検査し、その結果を知らせる装置です。
この装置にはNVISという名称が付けられました。

図3. NVISの外観
図3. NVISの外観

部品の未装着、半田付けの不良、極性間違いなどを画像認識によって検査します。
基板の量産ラインにおいて半田付けの後、あるいはチップマウンタで表面実装部品を装着した後でこの装置によって検査を行います。
光学系は図4のようになっています。

図4. NVISの光学系
図4. NVISの光学系

光源に蛍光灯を採用。
レンズは焦点距離100mm、明るさF4の一眼レフ用のレンズを選択。
カメラは単板式のカラーカメラを使用しました。その仕様は以下の通り。

  • 有効絵素数 768(H)×493(V)
  • NTSC方式
  • 水平解像度 330TV本

撮影した画像はパーソナルコンピュータに装着したRGB画像処理ボードに取り込んで、ソフトウエアによって処理し検査を行うという方式です。
コンピュータで処理する1画面の画像データは以下のような構成で768Kバイトの容量があります。
512(H)×512(V)×8ビット×3(RGB)
この画像データを分析して検査を行います。
本装置の開発過程で印象に残っているのは以下のようなことです。

3-1. 当時の光源の選定は難しかった

この装置を開発する上でどのような光源が良いのか調査し、検討しました。
当時、一部で光源として発光ダイオード(以降ではLEDと記載いたします)を利用する装置が現れてきていました。
構造設計の自由度や発熱が少ないことを考えると光源としてのLEDに魅力を感じました。
しかし、調査の過程で光量が十分ではない、温度によって光量が変化しやすいなどの情報が有りました。
また、市場での評価が不十分という印象もぬぐえませんでした。
そうしたことから採用を断念しています。
私が1991年当時に調べた結果は表1のとおりでした。

種類 長所 短所
蛍光灯
  • 安価
  • 入手が容易
  • 比較的に寿命が安定して長い(2000時間)
  • ランプ周りが大きくなる
  • 照明を絞る構造が必要(必要な光以外が外乱光となるため)
ハロゲンランプ
  • 光量が大きい
  • 発熱量が大きい
  • 寿命が比較的に短い(25〜2,000時間程度)
  • 衝撃に弱い
  • 放熱のためにランプ周りが大きくなる
ファイバー
(ハロゲンランプ)
  • 光量が大きい
  • 光源の位置を自由に調整できる
  • 光成分を調整できるものがある
  • 発熱量が大きい
  • 高価・寿命が比較的に短い(25〜2,000時間程度)
レーザー光
  • 立体的な認識が可能となる
  • 高価
  • 現状の開発方針に合わず、根本的に考え直す必要を生じる
LED
  • 寿命が長い
  • 照明周りの設計自由度が高い
  • 光量が少ない
  • 温度によって光量が変化する

表1. 光源の比較

蛍光灯、ハロゲンランプ、ファイバー、レーザー光、LED、どれを取ってみても欠点があり、選択に迷った記憶があります。
これ以前のシステムでは主にハロゲンランプを使用していましたが、発熱量が多く閉じられた空間で使用するときは放熱を考慮したり、耐熱性のある部材を使ったりする必要がありました。
また、使用する電力量も多く経済的ではありませんでした。
ファイバーも魅力がありましたが価格面を考えて選択しませんでした。
レーザーも立体的な認識が可能となるので魅力がありましたが、それまでに積み上げてきた経験とは方向性が異なるため、新たにゼロから取り組む必要があり、開発コストが掛かると判断して断念しています。
結果として、メンテナンス性も考慮して市販の丸形蛍光灯を選択し、商用電源の影響を受けないように蛍光灯の電源に30KHzの高周波電源を使用しました。
今では技術革新が進み、LEDは進化しました。
現状ならば迷わずLEDを選択したと考えられます。

3-2. 検査精度の考え方

この装置の検査精度をどのように表すか、初めにこういう表示で当然であろうと思っていた内容が実は不適切であるということが検討の過程でわかりました。
当初、以下のように考えていました。

検査精度=(検査した基板の数−正しく検査できなかった基板の数)/検査した基板の数

この考えで何の問題もないと考えていました。
後日、目標とする検査精度を具体的に決めようと数値を検討し始めました。
そのときに初めて問題があることに気が付きました。
「正しく検査できなかった基板の数」は以下の2つの合計です。

①不良基板を誤って見逃してしまった数
②正常基板を誤って不良と判定してしまった数

ここで言う、不良基板とは部品が正常に実装されていない基板のことです。また、正常基板とは部品が正常に実装されていて不良と判定すべきではない基板です。
これから検査しようとする100枚の基板の中に不良基板が1枚も無いとしたら、どうなるでしょうか?
仮に装置の検査機能部分が故障していて搬送部分しか動かず、全て良品として素通しする検査精度0%の状態だったとします。
その場合、もともと不良基板がないのですから不良基板を誤って見逃してしまう数はゼロになります。また、正常基板を誤って不良と判定することもありません。
結果的に検査精度は100%になってしまいます。
もうお気づきになったと思いますが、検査対象の不良率が検査精度に影響してしまうのです。
そのことに気が付いて、私は考えを変えました。
検査した不良基板の数に対する「不良基板を誤って見逃してしまった数」の比率を見逃し率、検査した正常基板に対する「正常基板を誤って不良と判定してしまった数」の比率を虚報率と呼ぶことにして、この2つの数値で装置の検査精度を表すことに致しました。

4. 画像処理検長アプリケーション

金属部品の長さを測定するアプリケーションです。
このシステムでは画像処理ツール「HALCON」を使っていることが特徴です。ライブラリ関数を使うことでソフトウエア開発コストを抑えることが出来ています。

図5. 検長アプリケーションの光学系
図5. 検長アプリケーションの光学系

光源はLEDリング照明、レンズはCマウントレンズ、カメラは33万画素プログレッシブスキャンモノクロカメラを使いました。
カメラの仕様は以下の通りです。

  • 有効画素数 659(H)×494(V)
  • プログレッシブスキャン方式
  • 水平解像度 500TV本
  • 大きさ 29(H)×29(W)×30(D)

画像処理ボードはPCI Expressバス対応のものを使用しました。
本システムの光学系は前述したNVISの光学系と見た目は似ておりますが、大きさが大分異なります。
照明部の幅を表示しておきましたがNVISの光学系の方が高さ、幅、奥行きともに3倍くらい大きな構造物になっています。
容積で考えると実に27倍の違いです。
モノクロカメラとカラーカメラの違いがあるのでそれを考慮する必要はありますが、それでも16年間の技術の差が如実に出ています。

4-1. HALCONを利用することで開発効率向上

ソフテックでは2007年以降の画像処理システムでは軒並みHALCONを使用しています。
それ以前は、そのつど専用の画像処理ソフトを開発していました。
昔に比べてHALCONのような画像処理ソフトウエアの利用は容易になり、それによって開発効率向上が期待できるようになりました。

背景にはコンピュータや画像処理ボードの処理能力の向上が有ります。
リンクス社の発表している処理速度例によればHALCONの高速しきい値処理によって640×480×8ビットの画像を2値化するために掛かる処理時間はIntel Core2 3GHz前提でわずかに0.1mSECとのこと。
前述した表面実装部品外観検査装置(NVIS)は1991年に開発を着手しましたが、使われているコンピュータの心臓部に搭載されているCPUは80386(20MHz)でした。検査速度を算出した当時の資料に基づいて当時使用したRGB画像処理ボードを前提に640×480×8ビットを読んでしきい値と比較するまでの処理時間を計算してみました。2値化したデータを書き込む処理時間は含まれていません。

結果は1.38秒、2値化データを書き込む時間を含めると2秒を超えるかもしれません。
昔のコンピュータや画像処理ボードを前提にすると画面全体の2値化処理、フィルタリング、パターンマッチング、高速フーリェ変換などをコンピュータ上のソフトで処理するのは処理時間が掛かりすぎて現実的ではありませんでした。

しかし、コンピュータや周辺のハードウエアの処理能力向上によってそれが問題なく使えるようになりました。
そうなると、いろいろな画像処理をライブラリ化して保有し、それを組み合わせて精度の高い検査ソフトを効率的に開発することが可能になります。

リンクス社はHALCONにおいて色々な画像処理をライブラリ化して関数として提供することを実現しています。
画像のフィルタリングやパターンモデル生成、3次元位置計測などの複雑な処理を数行の関数呼び出しで実現できます。
現時点でその関数は1500種ほど有り、継続して追加・改良が行われています。
これらを有効活用することで昔に比べて効率的な開発が可能です。

4-2. 通信速度を自力で改善

ソケット通信による画像送受信処理において、HALCON標準の通信関数を使用したところ、通信環境のスペックよりかなり低い通信速度でしか動作しないということがありました。
通信関数は関数化して商品として提供されているソフトウエアですので処理内容を解析し、改造して使用するということは許されません。
しかし、画像のポインタをHALCON管理領域から取得できるように公開されています。
それを応用して、自前のソケット関数で送信することを行ってみました。
その結果、改善することが出来て通信速度の問題は解消しました。
また、作成した画像処理アルゴリズムをVC#、VC++、VBなどのコードに自動変換できるので、標準GUIを使用したアプリケーション開発が容易に行えるなどHALCONの自由度の高さは魅力です。

5. まとめ

紹介させて頂いたのは、わずかに3つのシステムですが、冒頭にご紹介したように他にも多くの画像処理システムを開発して参りました。
その中には以下のようなシステムもありました。

  • 光源としてハロゲンランプを5本、データ取込に4096ビットの一次元CCDを20本使用したシステムの画像処理ソフト開発。
  • 光源にレーザーを使い、TDIカメラで画像取得して検査するシステム。
  • 液晶表示器にテスト用の映像を表示させそれをカラーCCDカメラで画像取得して欠陥検出するシステム。

また、前述いたしましたHALCONはドイツMVTec Software GmbH社が開発元ですが、その日本総代理店であるリンクス社とソフテックはパートナー契約を結んでおります。
今後もソフテックは画像処理システムに積極的に取り組んで参ります。

(K.S.)


関連ページへのリンク

関連するソフテックだより