以下の写真のように膝とお尻の検出ができました。この2点間を利用してOK,NG判定はできるのでしょうか?
例えば、お尻の検出範囲が膝の検出範囲より下がっているときにOKを出して、それ以外の状態をNG判定にする
という判定は可能でしょうか。
「いいね!」 8
ご質問ありがとうございます。
複数タスクの結果を使っての判定は、スクリプト検査タスクで実現可能です。
スクリプト検査タスクの使い方は以下をご覧ください。
スクリプト検査機能
また、錠剤の位置関係をスクリプトで判別する例を紹介します。
錠剤の位置関係を判別
-
茶錠剤用の領域検出を追加
-
茶錠剤領域のアノテーション及び学習
ここでは結果だけ表示します。
-
白錠剤用の領域検出を追加
-
茶錠剤領域のアノテーション及び学習
ここでは結果だけ表示します。
-
ランタイム評価画面を開きます
-
スクリプト検査設定タブを選択
-
スクリプトを記述してスクリプト検査をチェック
例 : 茶錠剤の重心と白錠剤の重心のY座標を比較して茶錠剤が下にあればOK
// 検査をしない場合はnull 条件に一致する場合はtrue 条件に一致しない場合はfalse
bool? result = null;
// 茶錠剤領域検出で得られた検査を通過したブロブリスト
var brownBlobs = GetInspectedBlobs("茶錠剤領域検出");
// 白錠剤領域検出で得られた検査を通過したブロブリスト
var whiteBlobs = GetInspectedBlobs("白錠剤領域検出");
// ブロブが存在する場合
if (brownBlobs?.Any() == true && whiteBlobs?.Any() == true)
{
var brownBlob = brownBlobs.First();
var whiteBlob = whiteBlobs.First();
// 重心座標
var brownPoint = brownBlob.Centroid;
var whitePoint = whiteBlob.Centroid;
// 茶錠剤が白錠剤より下にあればtrue,そうでなければfalse
result = brownPoint.Y > whiteBlob.Y;
}
// resultは必ず最後の行に記述してください
result
検査設定を以下のように設定すると
茶錠剤が上にあるときはNG
茶錠剤が下にあるときはOK
という結果が得られます。
各錠剤の部分を膝とお尻に置き換えて頂ければと思います。
「いいね!」 5