3.7.6.3. renom.utility.load.load_for_detection package

検出のためにxmlファイルをロード

class CocoJson ( jsonpath )

COCO jsonファイルのロードに使用 load_for_detectionのためのクラス

パラメータ: jsonpath ( str ) – 読み込まれるjsonファイルのファイルパス
Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson('../../../test/test_dataset/test_load_for_detection_data/test_data_json.json')
>>> X_list, Y_list, class_list = data.get_class_list(), data.get_X_list(), data.get_Y_list()
>>> X_list
[u'COCO_val2014_000000200365.jpg']
>>> Y_list
[[{'bndbox': [234.22, 317.11, 149.39, 38.55], 'name': u'hot dog'},
  {'bndbox': [239.48, 347.87, 160.0, 57.81], 'name': u'hot dog'},
  {'bndbox': [296.65, 388.33, 1.03, 0.0], 'name': u'hot dog'},
  {'bndbox': [251.87, 333.42, 125.94, 22.71], 'name': u'hot dog'}]]
>>> class_list
[u'airplane', u'apple', u'backpack', ...]
get_imgid_list ( )

ロードしたjsonファイルからソートされた画像IDを取得に使用

Return list:

[画像id1, 画像id2, ...]

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> imgids = data.get_imgid_list()
>>> imgids
[200365]
get_class_list ( )

ロードされたjsonファイルからソートされたクラスの取得に使用

Return list:

[クラス名1, クラス名2, ...]

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> class_list = data.get_class_list()
>>> class_list
[u'airplane', u'apple', u'backpack', ...]
get_id_to_class ( )

キーと値がカテゴリーIDとクラス名の辞書の取得に使用

Return dictionary:

{カテゴリーID1: 名前1, ...}

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> id_to_class = data.get_id_to_class()
>>> id_to_class
{1: u'person', 2: u'bicycle', 3: u'car', ...}
get_id_to_imgname ( )

キーとバリューが画像IDと画像名(画像パス)の辞書の取得に使用

Return dictionary:

{画像ID1: 画像名1, ...}

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> id_to_imgname = data.get_id_to_imgname()
>>> id_to_imgname
{200365: u'COCO_val2014_000000200365.jpg'}
get_X_list ( )

読み込まれたjsonファイル名のリストの取得に使用

Return list:

[画像名1, 画像名2, ...]

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> X_list = data.get_X_list()
>>> X_list
[u'COCO_val2014_000000200365.jpg']
get_Y_list ( )

オブジェクト名とバウンディングボックスの辞書のリスト取得に使用

Return list:

[[{‘名前’: オブジェクト名1, ‘バウンディングボックス’: [X, Y, W, H]}, {...}], [....]]

Example:
>>> from load_for_detection import CocoJson
>>> data = CocoJson(jsonpath)
>>> Y_list = data.get_Y_list()
>>> Y_list
[[{'bndbox': [234.22, 317.11, 149.39, 38.55], 'name': u'hot dog'},
  {'bndbox': [239.48, 347.87, 160.0, 57.81], 'name': u'hot dog'},
  {'bndbox': [296.65, 388.33, 1.03, 0.0], 'name': u'hot dog'},
  {'bndbox': [251.87, 333.42, 125.94, 22.71], 'name': u'hot dog'}]]
imshow_with_bndboxes_from_distributor ( x , y , class_list )
imshow_with_bndboxes_from_xml ( xmlpath , save_name=None )

xmlファイルの対応するバウンディングボックスとオブジェクトを使用して画像を表示するために使用

パラメータ:
  • xmlpath ( str ) – xmlファイルのパス
  • save_name ( str ) – 作成された画像を保存する名前
Return None:
Example:
>>> imshow_with_bndboxes_from_xml(xmlpath)
(an image with the corresponding bounding boxes to be showed)
load_from_xml ( xmlname )

一つの.xmlファイルから情報をロードするために使用。これはload_for_detectionのサブ機能です

パラメータ: xmlname ( str ) – xmlファイルのパス
Return dictionary:

{ ‘ファイルパス’: xmlファイルに対応する画像ファイルのパス ‘データ’:[{‘名前’: オブジェクト名, ‘バウンディングボックス’: [xmin, ymin, xmax, ymax]}, ...] }”

Example:
>>> from load_for_detection import load_from_xml
>>> data = load_from_xml('2007_000027.xml')
>>> data
{'filepath': 'VOC2012/2007_000027.jpg',
 'data': [{'name': 'person',
           'bndbox': [174, 101, 349, 351]}]}
load_from_json ( jsonpath )

COCO jsonファイルから情報をロードするために使用。これはload_for_detectionのサブ機能です

パラメータ: jsonpath ( str ) – .jsonファイルのパス
Return tuple(list, list, list):
要素1: ロードされたjsonファイルのリスト
要素2: オブジェクト名とバウンディングボックスの辞書のリスト
要素3: jsonファイルからロードした、ソート済みのクラス
Example:
>>> from load_for_detection import load_from_json
>>> X_list, Y_list, class_list = load_from_json(jsonpath)
>>> X_list
[u'COCO_val2014_000000200365.jpg']
>>> Y_list
[[{'bndbox': [234.22, 317.11, 149.39, 38.55], 'name': u'hot dog'},
  {'bndbox': [239.48, 347.87, 160.0, 57.81], 'name': u'hot dog'},
  {'bndbox': [296.65, 388.33, 1.03, 0.0], 'name': u'hot dog'},
  {'bndbox': [251.87, 333.42, 125.94, 22.71], 'name': u'hot dog'}]]
>>> class_list
[u'airplane', u'apple', u'backpack', ...]
load_for_detection ( xml_directory=None , json_filepath=None )

‘xml_directory/Annotations’か.jsonファイルから情報をロードするために使用

パラメータ:
  • xml_directory ( str ) – 全ての.xmlファイルが存在するディレクトリ
  • json_filepath ( str ) – .jsonファイルのファイルパス
Return tuple(list, list, list):
要素1: 全ての画像のリスト
要素2: [[{‘名前’: ワンホットベクトル, ‘バウンディングボックス’: [X, Y, W, H]}, ...], ...]
要素3: クラスのリスト
Example:
>>> from load_for_detection import load_for_detection
>>> X_list, Y_list, class_list = load_for_detection(xml_directory=hoge)
Example:
>>> from load_for_detection import load_for_detection
>>> X_list, Y_list, class_list = load_for_detection(json_filepath=hoge)