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 JTable为空   java将json发送到php并插入mysql,但返回null   java Spring引导JNDI CommonJ资源   从不同PC创建和合并后的Java servlet问题   java如何在使用findelements时从xpath获取文本   java使用spring boot使用gmail smtp发送电子邮件   java在不使用pojo、bean或getter和setter的情况下获取Json标题的Json数组   Java中的OpenFile对话框将null作为响应   JavaBuilder模式。扩展接口   java中无需替换的数据结构选取   java如何评价Encog中的预测神经网络   java如何在安卓中使用实际的HttpURLConnection进行单元测试?   java使用XML配置禁用WebSocket中的CSRF保护   java如何通过hibernate从多表查询中获取数据?   mysql如何在java中获取更新的行Id   java AEM/CQ组件单一组件/有限组件   java FFmpeg Javacv延迟问题   显示整数数组的java不起作用