@ml2021 ml2021
ml2021
@ml2021 ml2021 / keisan.py Created at Wed Jul 21 16:00:14 JST 2021
バウンディングボックスの表示
import turicreate as tc
import os
import inspect

IMAGES_DIR = 'Images'
# data = 'test.json'

json_sf = tc.SFrame.read_json('test2.json')

sf_images = tc.image_analysis.load_images(IMAGES_DIR, recursive=True, random_order=False)
@ml2021 ml2021 / turiAnnotation.py Created at Thu Jul 08 15:46:12 JST 2021
画像データと対応するcsvファイルからSFrame形式のデータ (test.sframe)を作成。最後に表示
import turicreate as tc
import os
import inspect

IMAGES_DIR = 'Images' # Change if applicable
csv_path = 'Images'  # assumes CSV column format is image,id,name,xMin,xMax,yMin,yMax

csv_sf = tc.SFrame.read_csv(csv_path)

def row_to_bbox_coordinates(row):
@ml2021 ml2021 / test.py Created at Thu Jul 08 15:09:30 JST 2021
物体検出用に作成されているSFrameを読み込んで、学習用の画像とアノテーションの枠を重ねて表示させるプログラム
import turicreate as tc
import os

sf1 = tc.load_sframe('test.sframe')
sf1['image_with_ground_truth'] = \
tc.object_detector.util.draw_bounding_boxes(sf1['image'], sf1['annotations'])

sf1.explore()
input('Press Enter to exit ...')
@ml2021 ml2021 / csv2json.py Created at Sun Jul 04 11:36:57 JST 2021
csvファイルからJSONへ変換。リポジトリにもあるけど、こちらにも置いておきます
import csv
import sys

def csv2json(row):
output = f'''{{"image": "{row[0]}",
"annotations": [{{"label": "{row[2]}",
"coordinates": {{"x": {float(row[3]) + (float(row[4]) - float(row[3]))/2}, "y": {float(row[5]) + (float(row[6]) - float(row[5]))/2}, "width": {float(row[4]) - float(row[3])}, "height": {float(row[6]) - float(row[5])}}}
}}]}},'''
print(output)