質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • 機械学習

    601questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

tensorflow object detection API bounding box 座標について

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 623

kuzio

score 4

質問させていただきます.
現在私は,tensorflow の"object detection API" を利用しています.
利用しているのはgit上にある以下のプログラムです.

https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

そこで私は 物体認識をして画像上に表示される bouding box の座標をしりたいと思っています.
通常 opencv などで行った際には (boundingboxの左上のx座標,boundingboxの左上のy座標, 横の長さ,縦の長さ)のように値が保持してあります.
プログラミングコード上でおそらく関係があると思われる Detection の部分にある"boxes"などの中身を調べてみました.
以下がその近辺のコードです.


with detection_graph.as_default():
  with tf.Session(graph=detection_graph) as sess:
    # Definite input and output Tensors for detection_graph
    image_tensor = detection_graph.get_tensor_by_name('image_tensor:0')
    # Each box represents a part of the image where a particular object was detected.
    detection_boxes = detection_graph.get_tensor_by_name('detection_boxes:0')
    # Each score represent how level of confidence for each of the objects.
    # Score is shown on the result image, together with the class label.
    detection_scores = detection_graph.get_tensor_by_name('detection_scores:0')
    detection_classes = detection_graph.get_tensor_by_name('detection_classes:0')
    num_detections = detection_graph.get_tensor_by_name('num_detections:0')
    for image_path in TEST_IMAGE_PATHS:
      image = Image.open(image_path)
      # the array based representation of the image will be used later in order to prepare the
      # result image with boxes and labels on it.
      image_np = load_image_into_numpy_array(image)
      # Expand dimensions since the model expects images to have shape: [1, None, None, 3]
      image_np_expanded = np.expand_dims(image_np, axis=0)
      # Actual detection.
      (boxes, scores, classes, num) = sess.run(
          [detection_boxes, detection_scores, detection_classes, num_detections],
          feed_dict={image_tensor: image_np_expanded})
      # Visualization of the results of a detection.
      vis_util.visualize_boxes_and_labels_on_image_array(
          image_np,
          np.squeeze(boxes),
          np.squeeze(classes).astype(np.int32),
          np.squeeze(scores),
          category_index,
          use_normalized_coordinates=True,
          line_thickness=8)
      plt.figure(figsize=IMAGE_SIZE)
      plt.imshow(image_np)

以下が結果になります.
しかしながら,直接boudingbox の座標に関係があるのかが分かりませんでした.
他の変数の中身も見てみましたが,座標に関係のあるものが無いように思えました.

[[[  3.70766222e-02   2.32391059e-02   8.62020969e-01   3.18441600e-01]
  [  1.00141376e-01   3.91916126e-01   9.58822250e-01   9.73572135e-01]
  [  5.80091894e-01   4.02289629e-01   9.10106719e-01   6.81827903e-01]
  [  2.67864764e-03   5.37680089e-01   2.50190973e-01   6.97518170e-01]
  [  6.59326911e-02   3.71420026e-01   9.47743475e-01   9.82712150e-01]
  [  2.68082619e-02   7.62826264e-01   6.32788718e-01   9.91576493e-01]
  [  1.74010396e-02   3.69260252e-01   8.60050261e-01   6.47671759e-01]
  [  2.62468457e-02   2.15394646e-01   7.13022113e-01   6.44605398e-01]
  [  1.07638836e-01   5.58825672e-01   7.33044744e-01   7.30897963e-01]
  [  3.79294306e-02   1.11420602e-01   3.52208912e-01   3.05902272e-01]
  [  0.00000000e+00   4.11696434e-01   6.22777462e-01   6.51909351e-01]
  [  2.79582739e-02   6.83753192e-03   4.81684983e-01   3.11877012e-01]
  [  7.44389296e-02   2.71154195e-01   9.00867224e-01   9.64441538e-01]
  [  4.99033928e-03   2.87592858e-01   6.27175033e-01   5.26544154e-01]
  [  4.67826426e-03   3.77882779e-01   3.10840487e-01   6.87657654e-01]
  [  1.08135045e-02   2.45042488e-01   8.66623044e-01   4.76782322e-01]
  [  5.08013368e-02   0.00000000e+00   8.92649353e-01   5.29527903e-01]
  [  6.39598444e-03   6.85519636e-01   8.14009309e-02   7.63971627e-01]
  [  7.34354928e-03   7.00937867e-01   8.37567449e-02   7.99702287e-01]
  [  9.56903398e-03   7.89382577e-01   2.77421892e-01   9.53748822e-01]
  [  1.14383996e-02   2.46351182e-01   7.93706298e-01   4.77306306e-01]
  [  1.47813708e-02   2.62614429e-01   2.61748374e-01   7.37113655e-01]
  [  2.08409131e-03   5.27146995e-01   2.99976110e-01   7.69435227e-01]
  [  6.45412028e-01   5.97376883e-01   7.72994697e-01   7.08751142e-01]
  [  1.76023692e-01   8.01044524e-01   2.56199092e-01   8.36520731e-01]
  [  1.77701205e-01   8.30787718e-01   2.77940273e-01   8.98237050e-01]
  [  4.49800789e-01   4.20949638e-01   8.72183025e-01   6.59005344e-01]
  [  4.21552211e-02   7.85431147e-01   3.13383758e-01   9.55286980e-01]
  [  0.00000000e+00   5.06608784e-02   7.51202464e-01   5.64320087e-01]
  [  2.52031386e-02   1.14164032e-01   6.10430717e-01   3.33315998e-01]
  [  8.68688524e-03   9.93093550e-02   2.13545889e-01   3.07423383e-01]
  [  9.36175287e-02   7.85452187e-01   4.23507959e-01   9.72094476e-01]
  [  0.00000000e+00   5.60392439e-01   6.07045770e-01   7.04684317e-01]
  [  1.60332471e-02   3.91475856e-04   4.99358475e-01   1.80552453e-01]
  [  6.36043251e-02   3.12048316e-01   8.48924041e-01   5.44608653e-01]
  [  5.27268648e-03   6.59941792e-01   2.47535557e-01   7.97456503e-01]
  [  1.02197461e-01   7.63699412e-01   3.39428455e-01   9.21994090e-01]
  [  6.34029388e-01   4.12018538e-01   7.77234197e-01   7.11640954e-01]
  [  4.99218106e-02   5.12819707e-01   6.33476317e-01   7.85471737e-01]
  [  1.41868293e-02   9.28779602e-01   4.37340528e-01   9.98276949e-01]
  [  8.84260982e-04   5.37971973e-01   8.48287344e-02   7.90319443e-01]
  [  1.74092352e-02   3.24149430e-01   5.37369490e-01   6.78354681e-01]
  [  8.63035023e-03   6.22962892e-01   3.05343926e-01   8.98170769e-01]
  [  5.36475003e-01   3.25907648e-01   9.20678198e-01   7.30400264e-01]
  [  1.32080913e-03   7.76022434e-01   3.40186447e-01   9.96103764e-01]
  [  0.00000000e+00   6.62098348e-01   8.21765587e-02   9.03941929e-01]
  [  1.66808799e-01   7.63557017e-01   4.42327499e-01   9.08092916e-01]
  [  1.39167011e-02   9.07135189e-01   3.12922806e-01   1.00000000e+00]
  [  1.57200694e-02   8.35942447e-01   7.62703001e-01   9.97816980e-01]
  [  9.23319161e-03   4.49134111e-01   2.72807360e-01   8.67401481e-01]
  [  6.45412028e-01   5.97376883e-01   7.72994697e-01   7.08751142e-01]
  [  0.00000000e+00   6.07310951e-01   8.00046027e-02   8.40086758e-01]
  [  6.11052752e-01   6.06802702e-01   7.49152660e-01   7.06053734e-01]
  [  2.38389701e-01   0.00000000e+00   7.98261642e-01   7.60288477e-01]
  [  3.70766222e-02   2.32391059e-02   8.62020969e-01   3.18441600e-01]
  [  8.88931751e-03   0.00000000e+00   3.26228440e-01   3.33230644e-01]
  [  2.04673111e-02   4.26852524e-01   4.37012225e-01   6.71041191e-01]
  [  0.00000000e+00   4.76602226e-01   2.65630186e-01   6.75271511e-01]
  [  1.80710256e-02   2.36390218e-01   3.94988418e-01   7.23949134e-01]
  [  0.00000000e+00   3.33192140e-01   2.98385859e-01   5.26110590e-01]
  [  1.00441381e-01   6.81784824e-02   2.73970127e-01   3.16320151e-01]
  [  7.04130530e-03   0.00000000e+00   6.89402938e-01   4.04221177e-01]
  [  2.88287550e-01   0.00000000e+00   6.87736273e-01   5.00128388e-01]
  [  1.72952354e-01   7.29220152e-01   2.93541282e-01   9.44286823e-01]
  [  1.17731392e-02   3.24624926e-01   2.20594078e-01   5.77684522e-01]
  [  6.86677277e-01   4.09583986e-01   8.14984739e-01   7.10663617e-01]
  [  2.02762514e-01   6.69540823e-01   3.74175936e-01   9.30079639e-01]
  [  1.18174672e-01   0.00000000e+00   3.58328700e-01   3.40447336e-01]
  [  1.63917422e-01   8.00174356e-01   5.13882160e-01   9.61729050e-01]
  [  2.43298978e-01   2.45772272e-01   7.61221290e-01   1.00000000e+00]
  [  0.00000000e+00   3.50008696e-01   6.97703511e-02   6.64999008e-01]
  [  0.00000000e+00   6.56346321e-01   1.34895504e-01   7.82198906e-01]
  [  6.88554347e-03   2.51892745e-01   3.99504662e-01   4.55886722e-01]
  [  0.00000000e+00   6.88617468e-01   1.44334793e-01   8.23197842e-01]
  [  0.00000000e+00   3.20033640e-01   1.47724807e-01   5.30816138e-01]
  [  0.00000000e+00   6.29961789e-02   3.88361305e-01   3.91400486e-01]
  [  0.00000000e+00   8.28370631e-01   2.65981734e-01   9.88341630e-01]
  [  1.82754733e-03   3.41375083e-01   5.76723889e-02   4.78018731e-01]
  [  0.00000000e+00   3.58040571e-01   1.53169647e-01   6.13790154e-01]
  [  5.31935155e-01   3.84203613e-01   7.78207958e-01   7.21878469e-01]
  [  6.36111915e-01   3.22093010e-01   7.82574832e-01   5.45183182e-01]
  [ 58412367e-01   6.44178033e-01   7.31922507e-01   8.87382388e-01]
  [  5.28672636e-02   2.11526453e-03   7.16688514e-01   1.32305130e-01]
  [  1.46860301e-01   8.43356252e-01   5.86594760e-01   9.81495738e-01]
  [  6.22597337e-03   1.72302663e-01   5.41191220e-01   8.17064404e-01]
  [  9.56874192e-02   0.00000000e+00   7.61249065e-01   9.89065170e-01]
  [  6.58449531e-03   9.32844043e-01   1.69511288e-01   9.95045900e-01]
  [  1.99106708e-03   6.38102531e-01   6.89450651e-02   7.14508414e-01]
  [  0.00000000e+00   7.84308791e-01   7.88945258e-02   1.00000000e+00]
  [  1.57109201e-02   3.17976117e-01   4.13692623e-01   4.79996681e-01]
  [  7.31878519e-01   1.56241953e-02   9.86946940e-01   9.25869226e-01]
  [  2.26111412e-02   2.12461650e-01   9.71305549e-01   8.51539791e-01]
  [  4.04597819e-02   5.12805581e-02   8.00263524e-01   9.93615806e-01]
  [  3.79322648e-01   5.40679693e-01   8.81464958e-01   9.43988562e-01]
  [  1.76028907e-02   3.19518447e-01   4.30800200e-01   4.78415072e-01]
  [  0.00000000e+00   1.83706462e-01   2.29834288e-01   5.22784472e-01]
  [  1.68697685e-02   2.61039078e-01   4.68145788e-01   5.87137640e-01]
  [  6.86408281e-01   3.27755451e-01   8.19596648e-01   5.54131150e-01]
  [  2.23855555e-01   4.12261397e-01   6.54340148e-01   7.17972040e-01]
  [  0.00000000e+00   8.49669576e-01   1.65976733e-01   9.89492893e-01]]]


ちなみに物体認識をした画像についてはsample として使用されている以下の画像を利用しました.

イメージ説明

bouding box の座標の調べ方がわかる方がおりましたらよろしくお願いします.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

元のコードを見てみるとよいです。
tensorflow/models/blob/master/research/object_detection/utils/visualization_utils.py#L385

# Draw all boxes onto image.
for box, color in box_to_color_map.items():
    ymin, xmin, ymax, xmax = box

こうあるので、boxの中身の要素が何を意味するのかわかります。


ついでなので、実際に描画する部分も見てみましょう。
tensorflow/models/blob/master/research/object_detection/utils/visualization_utils.py#L124

(left, right, top, bottom) = (xmin * im_width, xmax * im_width,
                              ymin * im_height, ymax * im_height)

これを真似ればいいですね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/08 20:49

    ご丁寧な回答有難うございます.
    元のコードを調べるという基本的なことができていなかったようです,スミマセン.
    ご指摘いただいた部分を中心に自分でもよく見てみようと思います.

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • 機械学習

    601questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。