HALCON8.0からの新機能として、四角形の形状情報から3次元位置姿勢を取得できるようになりました。この新機能を有効に活用していただくことにより、複雑な処理も極めて容易に実行することが可能となります。今回はバーコード読み取りにこの新機能を有効に組み込んだ事例をご紹介したいと思います。
読み取りの対象となるのはチーズに貼付されたラベルのバーコードとなります。この事例における課題として、対象となるチーズは不規則に積み上げられており、ラベルは一定の位置姿勢を持たず通常の方法では認識が難しいということが挙げられます。このような案件に対して認識率を飛躍的に高める手法として、以下のような手法を用いることで確実なデコードが可能となります。
まず、2値化処理を用いまして大まかなラベルの領域を抽出します。
モフォロジー処理、形状特徴量解析を用いましてラベルの領域のみを抽出します。
ラベル領域の境界1ピクセル分の領域のみを取得し、その領域に対して膨張処理を行います。
得られた領域に対して、解析範囲を絞り込みます。こうすることで、次の処理が容易になるばかりでなく、高速化の目的も同時に達成すことが可能です。
絞り込んだ領域からエッジをサブピクセル精度で取得します。
取得したエッジを以下の手順により矩形に近似します。
① 輪郭エッジを分割し、直線成分のみを抽出します。
② 得られた直線同士の交点を求めます。
③ 得られた交点同士をつなぐように矩形を生成します。
得られた矩形のXLDデータを用いまして、3次元位置姿勢を取得します。これはカメラ内部パラメータと矩形のXLDデータ、矩形の世界単位での大きさの3つの情報を用意していただければ、1つのオペレータを呼び出すだけで取得することが可能です。得られた位置姿勢を用いまして、ラベルを任意の位置から見た画像に変換することが可能となります。他の多くのアプリケーションの場合と同様に、今回も真上から見た画像に変換します。
ラベル中でバーコードがどこに印刷されるかは既知の情報ですので、バーコードが存在する領域に解析範囲を絞り込みます。
最後に通常の手法と同様にバーコードを読み取っていただくだけで、非常に高い認識率でのバーコード読取が可能となります。
以上のように、HALCONではオペレータの組み合わせ次第で精度、速度の両方の面で格段に向上が図れます。