接到一个紧急需求:去除镜头中的特定品牌logo
共 1447字,需浏览 3分钟
·
2021-03-29 14:19
01.程序讲解
自动化的对于这些logo进行打码的话,需要分为两步进行处理:
识别图像中的logo,并获取logo的坐标
对logo进行打码的处理
02.识别图像中的logo,并获取logo的坐标
首先,我们先来看一下如何识别图像中的品牌logo。这里的识别我们利用的是百度AI最近比较热门的一个图像识别应用——品牌logo识别。
可以看到,这个应用能够识别的logo超过了两万个商品,包含了我们常见的一些服装品牌的logo。对于图片logo的识别,其程序如下图所示:
程序中首先通过二进制的方式读入通图片,并进行base64的编码,然后将图片和access_token令牌信息向指定的网址进行提交,然后返回logo的信息,包括了logo的品牌名字以及logo在图片中的位置信息。如下图所示:
03.对logo进行打码的处理
有了logo的坐标信息后,接下来我们就是在图片中将logo进行打码,打码的程序如下图所示:
上图程序中,首先读入原始的图片并获取图片的长和宽,然后针对图片中的logo区域,按照logo区域的像素值都加上logo区域的左上角像素值,给logo区域进行打码处理,最后将打码后的图片保存到本地。
由于一张图片中可能有多个logo区域,因此需要通过for循环来对一张图片中的所有logo区域进行打码处理。
04.结果展示
最后,我们通过图片的展示来看一下最终的打码的结果吧,如下图所示。
可以看到,通过程序的运行可以很好的将logo进行一个打码的操作处理。但是在logo的识别过程中,受到光线,logo的形状变化和遮挡等情况的存在,也可能会出现logo的误检和识别不充分的情况。比如像下面这张图:
可以看到,左上角的logo处理效果非常好。但中间的logo因为有部分遮挡,再加上纯色块太大,打码效果就不是很理想。所以对于这种情况,也可以考虑增加颜色或图片遮罩来实现。
05.总结
以上就是如何通过简单的五十行程序的处理,实现自动对图像中的logo进行马赛克的处理。欢迎大家自己动手来试一试效果。如果文章对你有帮助,欢迎转发/点赞/收藏~
作者:菜鸟大叔
_往期文章推荐_