当前位置:   article > 正文

百度AI攻略:通用物体识别_图片识别分类代码python通用物品和场景识别

图片识别分类代码python通用物品和场景识别

1.功能描述:

基于深度学习及大规模图像训练,准确识别图片中的物体、场景信息。可以应用于:
相关内容及广告推荐:对用户浏览网页中图片进行分析,识别图片内容给出相关内容推荐或广告展示。
相册分类及智能美图:批量读图实现相册智能分类管理。

通用物体与场景识别进行了能力升级——模型升级,Top1准确率绝对值提升7%,业界领先!具体如下图所示:


2.平台接入

通用物体与场景识别接入网址:https://console.bce.baidu.com/ai/?fromai=1#/ai/imagerecognition/overview/index

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
http://ai.baidu.com/forum/topic/show/943327

3.调用攻略(Python3)及评测

3.1首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码如下:

  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. import urllib
  4. import base64
  5. import json
  6. #client_id 为官网获取的AK, client_secret 为官网获取的SK
  7. client_id =【百度云应用的AK】
  8. client_secret =【百度云应用的SK】
  9. #获取token
  10. def get_token():
  11. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
  12. request = urllib.request.Request(host)
  13. request.add_header('Content-Type', 'application/json; charset=UTF-8')
  14. response = urllib.request.urlopen(request)
  15. token_content = response.read()
  16. if token_content:
  17. token_info = json.loads(token_content)
  18. token_key = token_info['access_token']
  19. return token_key


3.2通用物体与场景识别分析接口调用:

详细说明请参考: https://ai.baidu.com/docs#/ImageClassify-API/

说明的比较清晰,这里就不重复了。

大家需要注意的是:
API访问URL:https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general
Base64编码字符串,以图片文件形式请求时必填。(支持图片格式:jpg,bmp,png,jpeg),图片大小不超过4M。最短边至少15px,最长边最大4096px。注意:图片需要base64编码、去掉编码头后再进行urlencode。

Python3调用代码如下:

  1. #通用物体与场景识别,返回可能性最大的通用物体与场景
  2. #filename:图片名(本地存储包括路径),plantnum展示的数量
  3. def general(filename,plantnum):
  4. request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"
  5. # 二进制方式打开图片文件
  6. f = open(filename, 'rb')
  7. img = base64.b64encode(f.read())
  8. params = dict()
  9. params['image'] = img
  10. params['baike_num'] = plantnum
  11. params = urllib.parse.urlencode(params).encode("utf-8")
  12. #params = json.dumps(params).encode('utf-8')
  13. access_token = get_token()
  14. request_url = request_url + "?access_token=" + access_token
  15. request = urllib.request.Request(url=request_url, data=params)
  16. request.add_header('Content-Type', 'application/x-www-form-urlencoded')
  17. response = urllib.request.urlopen(request)
  18. content = response.read()
  19. if content:
  20. #print(content)
  21. content=content.decode('utf-8')
  22. #print(content)
  23. data = json.loads(content)
  24. result=data['result']
  25. nums=min(plantnum,len(result))
  26. for i in range(0,nums):
  27. item=result[i]
  28. print ('名称:',item['keyword'])
  29. print ('可能性:',item['score'])
  30. baike_info=item['baike_info']
  31. print ('百科描述:',baike_info['description'])
  32. print ('百科链接:',baike_info['baike_url'])
  33. print ('百科图片:',baike_info['image_url'])
  34. general("../img/cbd1.jpg",1)

4.功能评测及建议:

选用不同的数据对效果进行测试,具体效果如下:


名称: 汗血马
可能性: 0.886632
百科描述: 汗血宝马,学名阿哈尔捷金马(拉丁学名:Akhal-teke horses),原产于土库曼斯坦。头细颈高,四肢修长,皮薄毛细,步伐轻盈,力量大、速度快、耐力强。德、俄、英等国的名马大都有阿哈尔捷金马的血统。汗血宝马是土库曼斯坦的国宝,并将其形象绘制在国徽和货币上。
百科链接: http://baike.baidu.com/item/%E6%B1%97%E8%A1%80%E5%AE%9D%E9%A9%AC/14310
百科图片: http://imgsrc.baidu.com/baike/pic/item/f31fbe096b63f6241b16dd1c8144ebf81a4ca362.jpg


名称: 电脑
可能性: 0.834694

名称: 都市夜景
可能性: 0.95057
百科描述: 内容简介本书集中收集了近年来国内外城市灯光设计的范例,并配以图片说明。书中将都市夜景分为城市鸟瞰、广场、街道、建筑、商店入口、橱窗、广告、标志、配景共7大类。本书对城市景观及灯光设计具有参考价值。
百科链接: http://baike.baidu.com/item/%E9%83%BD%E5%B8%82%E5%A4%9C%E6%99%AF/9838817
百科图片: http://imgsrc.baidu.com/baike/pic/item/d089b9863208d46867096ed3.jpg


测试下来,整体感觉处理的结果和速度都很好,对于不同物体与场景的识别都很准确。不过与百科内容结合还有提高的余地。
建议:是否能够扩展,提供每个物体的bounding box?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/315120
推荐阅读
相关标签
  

闽ICP备14008679号