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")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令