人工智能全栈学习路线(Python实战)
图像识别实战
第一步:百度智能云平台
链接: link.
点击右侧控制台选项
在服务总览里,点击图像识别
如果我们是第一次使用平台,那么肯定是没有创建过应用的,这时候我们需要先点击创建应用
在一下信息栏中,输入要创建的应用的描述
当创建好一个应用时,会自动生成关于应用的信息,其中AppID,API Key和Secret Key需要我们记录下来,后面的流程需要使用。
点击左侧的技术文档选项,在弹出的界面选择SDK文档,这里我们使用Python语言来开发应用,所以选择PythonSDK文档。
第二步:知识介绍
什么是SDK?
SDK的外语全称:Software Development Kit
中文为:软件开发工具包,一般都是一些软件工程师为特定的软件包,软件框架,硬件平台等建立应用软件时的开发工具的集合。
通俗一点的理解:
是由第三方服务商提供的实现软件产品某项功能的工具包。
什么是API?
API的全称为: Application Programming Interface,中文叫应用程序编程接口,是指一些预先定义的函数。
目的是提供应用程序与开发人员基于某软件或某硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
示例:
第三步:使用Python SDK开发图像识别代码
1,函数
概念:函数是组织好的,可重复使用的,用于实现某一功能的代码块
特点:实现特定功能,代码复用
目的:使代码更为简洁,提高代码的可读性。
Python提供了许多内建函数,例如print()和input()。
2,函数库
Python中的库就是函数的集合。它们完成一定的功能,可供用户调用。
我们可以把各种各样的函数库理解为生活中各种各样的工具,我们可以从工具箱(函数库)中拿出工具来进行使用。
3,函数库的引用
要想使用库中的函数,必须在程序里先引用这个库。
使用import保留字引入函数库。
引入方法:
方法一:import 函数库名称
方法二:from 函数库名称 import *
4,函数库中函数的使用
在“calendar”函数库中,有名为“month”的函数,可以输出制定月份的日历。
使用不同的引用方法,函数有以下两种函数引用方式:
#方法一
import calendar
print(calendar.month(2020, 4))
#方法二
from calendar import month
print(month(2020, 4))
第三步:实战
回到之前创建的应用页面,打开SDK文档的快速入门部分,根据提示进行操作。
一,安装图像识别 Python SDK
安装使用Python SDK有如下方式:
如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。
二,新建AipImageClassify
AipImageClassify是图像识别的Python SDK客户端,为使用图像识别的开发人员提供了一系列的交互方法。
参考如下代码新建一个AipImageClassify:
from aip import AipImageClassify
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)
点击接口说明,调用读取图片函数
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('example.jpg')
""" 调用通用物体识别 """
print(client.advancedGeneral(image));
注意:example.jpg是预先存放在与文件同一路径的图片,文件名和后缀需与代码写的保持一致。
这是本次代码运行时放置的example.jpg
当我们编译代码时,会发现输出一长串的字符:
{'log_id': 3808207036268278833, 'result_num': 5, 'result':
[{'score': 0.960499, 'root': '植物-其它', 'keyword': '西兰花'},
{'score': 0.676091, 'root': '商品-食材', 'keyword': '白菜花'},
{'score': 0.430735, 'root': '商品-蔬菜', 'keyword': '花菜'},
{'score': 0.214549, 'root': '植物-十字花科', 'keyword': '花椰菜'},
{'score': 0.071146, 'root': '商品-玩具', 'keyword': '玩具'}]}
它们的具体释义是:
结果的个数(resule_num)有5个,有0.96的概率(score)是西兰花,有0.67的概率是白菜花,下面的结果同理。
下面是完整代码
from aip import AipImageClassify
""" 你的 APPID AK SK """
APP_ID = '19475656'
API_KEY = 'RsQm6HGZlk8lHFjyGwAEigR0'
SECRET_KEY = '4cWkqxb7AG6nHql5cvRuST3zcx9kMRgk'
client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('example.jpg')
""" 调用通用物体识别 """
print(client.advancedGeneral(image));
-----------------------------------------------
{'log_id': 3808207036268278833, 'result_num': 5, 'result':
[{'score': 0.960499, 'root': '植物-其它', 'keyword': '西兰花'},
{'score': 0.676091, 'root': '商品-食材', 'keyword': '白菜花'},
{'score': 0.430735, 'root': '商品-蔬菜', 'keyword': '花菜'},
{'score': 0.214549, 'root': '植物-十字花科', 'keyword': '花椰菜'},
{'score': 0.071146, 'root': '商品-玩具', 'keyword': '玩具'}]}
上一篇: Java 排序算法 — 冒泡排序
下一篇: 递推之母牛的故事