python api来处理visual wake words数据集。
pyvww的Python项目详细描述
视觉唤醒词数据集
使用python库来处理Visual Wake Words Dataset, 与coco数据集的pycococools相当。
pyvww.utils.VisualWakeWords
继承自pycocotools.coco.COCO
,可以以类似的方式使用。
pyvww.pytorch.VisualWakeWordsClassification
是一个pytorchDataset
,可以像任何
图像分类数据集。
安装
该代码在Python3.7中实现,可以使用pip安装:
pip install pyvww
使用量
VisualWakeWords数据集派生自公共可用的COCO数据集。
要下载coco数据集,请使用脚本download_coco.sh
bash scripts/download_mscoco.sh path-to-COCO-dataset
VisualWakeWords数据集评估minival image ids上的准确性, 对于培训,使用CoCo培训/验证数据集的剩余115k张图像。
要创建将83k/41k拆分转换为115k/8k拆分的coco注释文件,请使用:
scripts/create_coco_train_minival_split.py
TRAIN_ANNOTATIONS_FILE="path-to-mscoco-dataset/annotations/instances_train2014.json"VAL_ANNOTATIONS_FILE="path-to-mscoco-dataset/annotations/instances_val2014.json"DIR="path-to-mscoco-dataset/annotations/" python scripts/create_coco_train_minival_split.py \ --train_annotations_file="${TRAIN_ANNOTATIONS_FILE}"\ --val_annotations_file="${VAL_ANNOTATIONS_FILE}"\ --output_dir="${DIR}"
从coco数据集创建visual wake words数据集的过程如下。 为每个图像分配一个标签1或0。 只要标签1至少有一个对应的边界框,它就被指定为 对感兴趣的对象(例如人)来说,框区域大于某个阈值 (例如图像区域的0.5%)。
要生成新注释,请使用脚本scripts/create_visualwakewords_annotations.py
。
MAXITRAIN_ANNOTATIONS_FILE="path-to-mscoco-dataset/annotations/instances_maxitrain.json"MINIVAL_ANNOTATIONS_FILE="path-to-mscoco-dataset/annotations/instances_minival.json"VWW_OUTPUT_DIR="new-path-to-visualwakewords-dataset/annotations/" python scripts/create_visualwakewords_annotations.py \ --train_annotations_file="${MAXITRAIN_ANNOTATIONS_FILE}"\ --val_annotations_file="${MINIVAL_ANNOTATIONS_FILE}"\ --output_dir="${VWW_OUTPUT_DIR}"\ --threshold=0.005 \ --foreground_class='person'
生成的注释遵循COCO Data format。
{
"info" : info,
"images" : [image],
"annotations" : [annotation],
"licenses" : [license],
}
info{
"year" : int,
"version" : str,
"description" : str,
"url" : str,
}
image{
"id" : int,
"width" : int,
"height" : int,
"file_name" : str,
"license" : int,
"flickr_url" : str,
"coco_url" : str,
"date_captured" : datetime,
}
license{
"id" : int,
"name" : str,
"url" : str,
}
annotation{
"id" : int,
"image_id" : int,
"category_id" : int,
"area" : float,
"bbox" : [x,y,width,height],
"iscrowd" : 0 or 1,
}
pytorch数据集
pyvww.pytorch.VisualWakeWordsClassification
可以像任何其他pytorch图像分类一样用于pytorch。
数据集,如mnist或imagenet。
注意:如果使用脚本create_coco_train_minival_split.py
为115k/8k拆分创建注释,
您需要将train2014和val2014目录移动或复制到共享目录。例如:
cd path-to-mscoco-dataset/
mkdir all
cp -a train2014/. all/
cp -a val2014/. all/
importtorchimportpyvwwtrain_dataset=pyvww.pytorch.VisualWakeWordsClassification(root="path-to-mscoco-dataset/all",annFile=".../visualwakewords/annotations/instances_train.json")