2017-11-04 10 views
1

Googleのオブジェクト検出APIの推論スクリプトを使用して、生成されたバウンディングボックスの座標を取得するにはどうすればよいですか?私はprinting boxes [0] [i]が画像内のi番目の検出の予測を返すことを知っていますが、返される数値の意味は正確です。私はxmin、ymin、xmax、ymaxを得ることができる方法はありますか?前もって感謝します。バウンディングボックスのリターン座標Googleのオブジェクト検出API

答えて

1

あなたが言及しているボックス配列にはこの情報が含まれており、各行の形式は次のとおりです。[N、4]配列 [ymin、xmin、ymax、xmax]入力画像。

4

Google Object Detection APIは、[ymin、xmin、ymax、xmax]の形式で、正規化された形式(完全な説明here)のバウンディングボックスを返します。 (x、y)のピクセル座標を見つけるには、結果に画像の幅と高さを掛ける必要があります。最初に画像の幅と高さを取得する:、そして

width, height = image.size 

をYMIN、XMIN、YMAX、boxesオブジェクトからXMAXを抽出し、(x、y)を得るために乗算する座標:

ymin = boxes[0][i][0]*height 
xmin = boxes[0][i][1]*width 
ymax = boxes[0][i][2]*height 
xmax = boxes[0][i][3]*width 

最後に、ボックスコーナーの座標を印刷します。

print 'Top left' 
print (xmin,ymin,) 
print 'Bottom right' 
print (xmax,ymax) 
+0

これがなぜ行われたかについての説明はありますか?あなたのリンクは死んでいます。入力画像が標準サイズにリサイズされるためですか?正規化された座標は、任意のサイズの入力を処理するのに便利ですか? – CMCDragonkai

+0

は、「画像」の数が少ない配列ですか?もし 'image.size'が配列中の要素の数を与えるならば、' image.shape'はイメージの次元を与えます。しかし、私はそれが行列の数、次に行列の列の数、つまり 'height、width = image.shape'を与えると考えました。 – KolaB

関連する問題