2017-10-01 4 views
0

object detection notebookは、テスト画像内のオブジェクトを検出するためにどのようにプリトレインテンソルフローモデルを使用できるかを示しています。このnotetookでテンソルフローオブジェクト検出で特定のカテゴリのボックスのみを取得する方法

、ボックスが検出されたオブジェクトの周囲に描かれている機能

from utils import visualization_utils as vis_util 
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) 

出力テスト画像、。

この機能を使用して、category_indexのすべてのカテゴリのボックスではなく、特定のカテゴリのボックスのみを描画するにはどうすればよいですか?つまり、モデルが確実であると確信するオブジェクトの周りにボックスを描画するにはどうすればよいのですか?車?

答えて

0

この回答は遅すぎる可能性があります。これが他人に役立つことを願っています。あなたのobject_detectionフォルダ内

は、フォルダ名を持つutilsのその内部はPythonのファイル名visualization_utils.pyこのファイルにvisualize_boxes_and_labels_on_image_arrayという名前の関数を編集する必要がを持っています。この関数では、これを追加する前にdraw_bounding_box_on_image_arrayという名前の関数を呼び出します。 display_str_list = box_to_display_str_map [ボックス]そしてオブジェクトクラスを探している場合の条件を追加します。このif条件の中でdraw_bounding_box_on_image_arrayを呼び出します(以下の例のコードでオブジェクト検出ラベル名を変更できます)。

display_str_list = box_to_display_str_map[box] 
if (("bottle" in display_str_list[0]) or ("person") in display_str_list[0]): 
    draw_bounding_box_on_image_array(
    image, 
    ymin, 
    xmin, 
    ymax, 
    xmax, 
    color= color, 
    thickness= line_thickness, 
    display_str_list=box_to_display_str_map[box], 
    use_normalized_coordinates=use_normalized_coordinates) 
    if keypoints is not None: 
    draw_keypoints_on_image_array(
     image, 
     box_to_keypoints_map[box], 
     color= color, 
     radius= line_thickness /.2, 
     use_normalized_coordinates= use_normalized_coordinates) 
関連する問題