第2回目の実例紹介になります。
あと何回続けられるか早くも不安になってきました
さて、今回は釘の長さを測ってみようと思います。
まずは画像加工と形状抽出で検出していきたいと思います。
画像加工と形状抽出で2番目に長い釘を検出
-
ノイズ除去用の画像加工を追加
-
画像加工の設定
釘の部分だけ抽出したいので二値化します。
ノイズが入り込んでしまったのでオープニングでノイズを除去します。
ノイズは消えたのですが釘の部分が断裂してしまったので、
クロージングという処理で繋ぎます。
クロージング処理とは白い領域を一度膨張させてから収縮させる処理でして、
離れた領域同士が膨張で繋がると収縮した後も繋がったままになります。
そのため少し途切れてしまった部分の結合などに使う処理となります。 -
2番目に長い釘を検出する形状抽出を追加
-
2番目に長い釘を検出する形状抽出の設定
画像加工でノイズ除去したおかげで綺麗に釘の輪郭が取れています。
釘の長さを測るために直線長ブロックを追加します。
すると釘の頭からお尻にかけて緑色の線が引かれました。
これは輪郭(赤)に対して直線フィッテイングを行っています。
そして左側の領域一覧には検出した直線の長さが出ていますので、
この長さを見ながら最小長と最大長を設定します。
今回は最小長を380、最大長を450としました。
これで目的の2番目に長い釘のみを検出することが出来ました。
次は領域検出と形状抽出を組み合わせて検出していきたいと思います。
画像加工でのノイズ除去が難しい場合はこちらの組み合わせの方が良いと思います。
領域検出と形状抽出で2番目に短い釘を検出
-
釘検出用の領域検出を追加
-
釘検出のアノテーション及び学習
ここでは結果だけ表示します。
-
2番目に短い釘を検出する形状抽出を追加
-
2番目に短い釘を検出する形状抽出の設定
領域検出の結果に対して輪郭を検出したいと思います。
そのため入力輪郭タイプをスコアマップに変更する必要があります。
無事釘の輪郭が得られました。
次に長さを測るために直線長ブロックを追加します。
無事に直線が得られましたので、2番目に短い釘のみが検出できるように、
最小長を150、最大長を200にします。
これで目的の2番目に短い釘のみを検出することが出来ました。
動画版もあります。
釘の例は以上となります。