使用在MS COCO数据集上预训练的Mask R-CNN自动“阻止”图像中人物的脚本(如黑镜剧集白色圣诞节)。无需 GPU!
但是您不仅可以阻挡人:可以阻挡多达80 种不同类型的物体,包括长颈鹿和公共汽车!
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
该项目依赖于一些依赖项,使用以下命令安装您的依赖项:
pip3 install -r requirements.txt
注意:根据您的环境,您可能需要使用sudo
. 您可能还想使用 virtualenv。
从命令行使用 Person Blocker:
python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'
-i/--image
: 指定图像文件。-m/--model
:预训练的 COCO 模型权重的路径(默认值:当前目录):如果未指定,如果不存在,它将自动下载到当前目录(注意:权重为 258 MB!)-c/--color
: 掩码的颜色,采用引号包裹的十六进制或 3 元素 RGB 元组格式。(默认值:白色)-o/--object
:要阻止的对象类型列表(或特定对象的对象 ID)。您可以查看允许的对象选择以阻止classes.py
或使用-names
标志。(默认:人)-l/--labeled
:保存带有检测到的对象及其对象 ID 注释的标记图像。-n/--names
: 打印对象的类选项,然后退出。该脚本输出两个图像:一个静态(双关语意)图像person_blocked.png
和一个动画图像person_blocked.gif
,如本自述文件开头的图像。
python3 person_blocker.py -i images/img1.jpg
python3 person_blocker.py -i images/img2.jpg -c '#c0392b' -o 'giraffe'
python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'
阻止特定对象需要 2 个步骤:在推理模式下运行以获取每个对象的对象 ID,然后阻止这些对象 ID。
python3 person_blocker.py -i images/img4.jpg -l

python3 person_blocker.py -i images/img4.jpg -o 1
与 Mask R-CNN 相同的要求:
加上 matplotlib 和 imageio
[/hidecontent]