用于管理用于视觉广告检测数据集的工具
项目描述
AdMincer
AdMincer是一个命令行工具,用于丰富用于基于机器学习的广告检测的截图数据集。它可能可以与其他目标检测数据集一起使用,但广告检测是我们追求的主要用例。
安装
克隆此存储库,然后
$ cd admincer/
$ pip install .
用法
从命令行运行 $ admincer <command>
获取有关命令选项和用法的说明。当前可用的选项有 place
、extract
、slice
、find
和 convert
。
放置
此命令将片段图像放置在源图像的区域中。它需要一个包含带有标记区域的源图像的目录和多个区域类型到片段目录的映射
$ admincer place -f ad=ads/dir -f label=labels:other/labels -n 5 source target
这将从 source/
中获取带有标记区域的图像,将 ads/dir/
中的图像放置到类型为 ad
的区域,将 labels/
和 other/labels/
中的图像放置到 label
区域。它将生成 5 张图像并将它们存储在 target/
中。
放置顺序按照命令行上的区域类型顺序进行。在上面的例子中,首先放置所有 ad
区域,然后放置所有 label
区域。
区域标记
图像的各个区域可以通过以下格式的CSV文件定义(数字代表图像左上角的X和Y坐标,然后是右下角的坐标,第一行的标题是必需的):
image,xmin,ymin,xmax,ymax,label
image1.png,50,50,80,90,region_type1
image2.gif,10,10,20,20,region_type2
也可以通过与图像同名的TXT文件定义。这些TXT文件应采用与YOLO对象检测器常用的格式。数字如下:<object-class> <x> <y> <width> <height>
其中
<object-class>
是表示框标签的整数<x> <y>
是矩形中心的浮点坐标<width> <height>
是框的宽度/高度相对于整个图像大小的比率,范围是(0.0到1.0]。
例如:<height> = <box_height> / <image_height>
0 0.075 0.15 0.05 0.1
1 0.225 0.15 0.05 0.1
通过将扩展名为.names
的文件放入目录中,可以提供区域类型数字的名称。它只需简单地包含连续的行中的名称
region_type1
region_type2
当提供名称文件时,也可以混合CSV和TXT区域定义,但不能针对同一图像。
注意:超出图像边界的区域将被裁剪。
调整大小模式
当放入区域中的片段的大小与区域不同时,有几种可能的选项来调整它们。默认是将片段缩放到与区域大小匹配。另一种选项是剪掉不适合的部分,并将剩余的部分放入该片段应覆盖的区域。还有另一种方法是剪掉一些部分,并将剩余的图像填充到区域的大小。这些模式分别称为scale
、crop
和pad
,可以通过--resize-mode
命令行选项进行配置。示例
$ admincer place -f ad=ads/dir -f label=labels -r pad -r label=crop ...
在这里,第一个-r
设置默认调整大小模式,第二个覆盖label
区域类型的调整大小模式。
提取
此命令从源图像中提取标记区域的 内容。它需要一个包含源图像和标记区域的目录(见上文)以及多个区域类型到目标目录的映射
$ admincer extract --target-dir ad=ads/dir -t label=labels source
这将从source
加载图像和区域图,并将标记为ad
和label
的区域内容分别提取到ads/dir
和labels
目录。
切片
此命令从页面的长方形截图生成视口大小的正方形截图。它将原始图像的区域重新映射到产生的部分(只要区域的部分足够在内部)。
$ admincer slice --step=10 --min-part=50 source target
如果指定了额外的--no-empty
选项,则不会生成不包含任何区域的切片。
查找
此命令查找具有特定类型和大小的区域源图像。例如,以下命令将在source
目录中查找所有具有类型为ad
、宽度为100像素、高度为50像素的区域。
$ admincer find --region=ad:100x50 source
对于尺寸不匹配有一定的容差。通常为+25%和-20%。容差可以通过区域查询的额外参数进行配置
$ admincer find -r ad:100x50:100 source
在这里,高度和宽度可以增加最多100%,减少最多50%。一般来说,容差值X允许区域比指定的大X%,或者指定比区域大X%。
可以给出多个--region
/-r
选项。在这种情况下,将找到包含至少一个匹配每个查询的区域的图像(即,使用and
运算符组合多个查询)。
转换
此命令将CVAT格式的.xml文件中的注释转换为YOLO格式的.txt文件,并将.txt文件放置在其图像旁边
$ admincer convert source.xml
也可以提供多个.xml文件,可以是列表,也可以使用shell展开
$ admincer convert *.xml
可选地,可以指定一个--target-dir
。这将把.txt注释文件放入指定的目标目录,并包含一个指示<object-class>
顺序的class.names
文件。如果没有指定target-dir
,则class.names
将被写入图像目录。
$ admincer convert *.xml --target-dir path/to/target/
此外,可以提供-m
或-c
标志,分别用于将图像移动或复制到--target-dir
。
注意事项
- 每个图像的.xml文件中的
name
标签应包含图像的路径,相对于xml文件。 - 可以提供
.names
文件。如果多个图像文件夹合并到--target-dir
,则它们的.names
文件将合并并写入<target_dir>/class.names
。如果发现新标签,则.names
文件将被覆盖以包含所有标签。
问题
- 片段匹配策略(当前策略允许按80%到125%的比例缩放)。
- 如果没有有效候选片段进行放置,该怎么办?目前我们通过异常退出。
- 我们想要使用或不使用替换进行抽样吗?或者可能是某种确定性的选择?目前是使用替换。
项目详情
admincer-1.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b6be6715f49262499a9f8345b872bc81e50347ebb7e782d0ce5de7884a288e88 |
|
MD5 | ea8c783dcd5d30d59084a8cb1ab53885 |
|
BLAKE2b-256 | da3cb57dfbc35f240d4aad96235b826d2a618c84e62e00e349e7e4236927520a |