本期有福利哦!不要错过啦!

    前文简单实现了认知服务对图片的检测识别。检测识别是其他机器视觉实现的基础,除了我们示例代码涉及的初步“看懂”图片,认知服务其实可以按照要求返回不同的信息,例如:

  • Categories – categorizes image content according to a taxonomy defined in documentation.

  • Tags – tags the image with a detailed list of words related to the image content.

  • Description – describes the image content with a complete English sentence.

  • Faces – detects if faces are present. If present, generate coordinates, gender and age.

  • ImageType – detects if image is clipart or a line drawing.

  • Color – determines the accent color, dominant color, and whether an image is black&white.

  • Adult – detects if the image is pornographic in nature (depicts nudity or a sex act). Sexually suggestive content is also detected.

  • Celebrities – identifies celebrities if detected in the image.

  • Landmarks – identifies landmarks if detected in the image.

    有一项功能信息,Adult,我们可以把它理解为成人图像识别。互联网太强大,但很多时候,我们不希望在不合适的时候看到成人图像,例如不想让孩子看到成人内容。据说,有个职业叫做鉴黄师,以后是不是可以让AI来做这样的工作呢?于是,这个API的返回引起了我的兴趣……

image

    首先想试试机器视觉,于是找了Cortana的照片让它识别。还挺铁面无私的,尽管是自家的,Computer Vision API 还是告诉我,它觉得这张图有点轻度猥亵(0.342),但不算成人内容。

    那怎样算是成人内容呢?坦白说,我觉得目前准确度还不是很高吧,以科学的名义,我尝试了露点的人体艺术照片,甚至无码高清的AV截图……它一直告诉我是猥亵内容,却没说是成人内容…直到我突然想到,也许是目前人工智能训练的图片不多?换个知名些的图片呢?脑海里想到了“德艺双馨”的苍老师…行动起来!

image

    终于,成人内容评分上去了,机器视觉告诉我这是张×××了,泪目……

image

    还是挺强大的,不光知道是张×××,而且告诉我,图中是 Sola Aoi lying on a bed。苍老师躺在床上…… 你不信 Sola Aoi 就是苍老师?来,上Wiki~

image

    没错吧?机器视觉很准确的认出了苍老师,以及她在干啥,看来也是阅片无数,心中无码的老司机啊~

image

    不要以为我是哗众取宠哦,看看百度图片,已经开始在图片搜索中加入了机器视觉了,可以通过图片了解到对应的信息了。脸盲症的我有救了……

     福利聊完了,再看看别的。上期聊了机器视觉能够从图片中分辨86类事物,其实有些事物是我们特别注意的,比如著名的地方和人。在机器视觉API的接口中,就有针对这两种的特定领域识别。

    上期我对把天安门识别为:A large red building with tiananmen square in the background 耿耿于怀,所以我特意在使用celebrity和landmark之前试了试白宫的图片。很好~一视同仁,白宫也被识别为:A large white building with grass and trees with white house in the background 看来,是机器视觉的语言能力还不太好,哈哈。

temp1

    我们来指定机器视觉识别一个地理标志 Landmark。我找了一张西雅图的照片,表达我没能参加正在西雅图举办的2018第25届MVP全球峰会的遗憾。这张照片跟之前我去峰会时,在Kerry Park冻了四小时拍的那些照片角度很接近。

    代码和之前的类似,只是POST的URL不太一样。我尝试修改一下matplotlib里画图的参数,看看能不能把标记写到右上方。

image

    果然,太空针还是被识别出来了,给出了相似度评分:


{
  'result': {
   'landmarks':
    [{
     'name': 'Space Needle',
     'confidence': 0.985418438911438
    }]
   },
  'requestId': '28210182-6b2b-422b-b94d-daa482d20c92',
  'metadata': {
   'height': 428,
   'width': 665,
   'format': 'Jpeg'
  } }

Space needle

    把返回的Caption写到图片上。

DS-Landmarks

    挺简单吧。接下来看看人物识别的。为了考考人工智能,也为了有点戏剧效果,我找了张和宠物“撞脸”的照片给机器视觉。原本想找孙红雷和×××梗的,一时没找到,也怕机器视觉不认识。萨缪尔.杰克逊是为人熟知的演员,在漫威电影里他是S.H.I.E.L.D.神盾局的局长。那就用他了~

image     机器视觉很聪明,没有认错,哈哈哈。返回了简单明了的人名、相似度评分和脸部取样区域。

{
  'requestId': '22d4ff5a-be22-4714-819c-16cb0b4ec8a6',
  'metadata': {
   'width': 888,
   'format': 'Jpeg',
   'height': 525
  },
  'result': {
   'celebrities':
   [{
    'confidence': 0.9998701810836792,
    'name': 'SAMUEL L. JACKSON',
    'faceRectangle': {
     'width': 280,
     'height': 280,
     'top': 152,
     'left': 25
    }
   }]
  }
}

SAMUEL L. JACKSON

    前面苍老师做识别的时候,不是画了个框显示面部识别的区域吗?我们也来画一个,然后把识别出来的名字写在框上。干这个需要用到返回的脸部坐标,然后使用matplotlib来绘制。

DS-Celebrity

   这就是输出的结果了。一共也没几行代码,是不是很简单?