Python 利用百度 API 进行图像识别

前言

人工智能的领域非常广,如指纹识别、人脸识别、图像场景识别、文字识别、视网膜识别、虹膜识别、自动规划、智能搜索、博弈、智能控制等。许多人对人工智能有着浓厚的兴趣,如果不是专业团队,想要开发出人工智能的项目不太容易,那么如何用简单快捷的方法获取这些功能呢?Python
拥有强大的人工智能库,本期我们来调用百度 API 进行图像识别。

下面我们开始行动吧~~~

一、百度智能云的使用

1.首先搜索百度智能云,注册并登录。

Python 利用百度 API 进行图像识别_第1张图片

2.在左侧栏的总览中找到 “人工智能”,点击 “图像识别” 进入图像识别管理中心。

Python 利用百度 API 进行图像识别_第2张图片

3.我们可以看到调用量限制点击创建应用,在创建应用的界面,输入应用名称和描述即可立即创建。

Python 利用百度 API 进行图像识别_第3张图片

4.创建完毕应用列表中会新增一条数据,将 AppID、API Key 和 Secret Key 复制下来,方便以后直接调用。点击左侧列表的 “SDK 下载”。

Python 利用百度 API 进行图像识别_第4张图片

二、SDK 参考和使用

1.进入 “SDK 资源” 百度大脑 AI 开放平台页面,找到 “Python SDK”,点击 “使用说明” 。

Python 利用百度 API 进行图像识别_第5张图片

2.在 “快速入门” 中根据相关说明,在 cmd 中执行 pip install baidu-aip 此命令安装 baidu-aip 库,然后创建新的 py (如:myapp.py ),将参考代码直接复制到 myapp.py 中,并把刚刚创建应用中的 AppID、API Key和 Secret Key 粘贴到相应位置完成 API 接口对接。

pip install baidu-aip 

3.点击 “接口说明”,参考相关代码并粘贴到 myapp.py 尾部,找一张 jpg 图片并命名为 example.jpg 放当前目录完成接口调用。

Python 利用百度 API 进行图像识别_第6张图片

三、运行代码

1.写好代码后直接运行代码,会发现输出框没有出现结果,将 “带参数调用通用物体识别” 的代码打印出来。这样,调用百度 API 进行图像识别就完成啦!是不是很简单呢?

""" 带参数调用通用物体识别 """
res = client.advancedGeneral(image, options)
print (res)

四、基本代码展示

from aip import AipBodyAnalysis, AipImageClassify
import re, os

# 调用人体识别 SDK
def maskdata(image):
    """是否佩戴口罩数据分析"""
	APP_ID = '你的 APPID '
	API_KEY = '你的 AK '
	SECRET_KEY = '你的 SK '
    client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)
    core(client,image)

# 调用图像识别 SDK
def picdata(image):
    """ 图像识别 """
	APP_ID = '你的 APPID '
	API_KEY = '你的 AK '
	SECRET_KEY = '你的 SK '
    client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)
    get_msg_by_image(client,image)

# 调用图像识别结果
def get_msg_by_image(client,image):
    options = {'baike_num': 5}
    options["baike_num"] = 5
    res = client.advancedGeneral(image, options=options)
    a = res['result']
    # print(a)
    print('\033[1;33m\n----------------------\n图像识别结果:\n----------------------')
    i = 0
    for b in a:
        try:
            i += 1
            print('\n第', str(i), '行', b['root'], b['baike_info']['description'])

        except Exception as e:
            i -= 1
            pass

    print('----------------------\n>>>共识别', str(i), '行数据<<<')

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
        
# 单个图片测试
# def mask():
#     url = input('\033[0;33m\n请输入图片名称 (回车退出) : ')
#     if url == "":
#         print('\n--------程序结束--------')
#     else:
#         try:
#             image = get_file_content(url + '.jpg')
#             maskdata(image)
#         except:
#             print('\n未找到该图片!')
#             mask()

# 传入人体识别参数
def mask(url):
    image = get_file_content(url)
    maskdata(image)

# 调用人体识别结果
def core(client,image):
    try:
        """ 带参数调用人体检测与属性识别 """
        a = str(client.bodyAttr(image))
        res = re.findall("[\u4e00-\u9fa5]+",a)
        data = '''是否带口罩:'''+res[4]
        print('\033[0;33m\n--------口罩识别--------\n')
        if data == '是否带口罩:戴口罩':
            print('\033[0;33m' + data)
        else:
            print('\033[0;31m' + data)
    except:
        print('\033[0;31m无法识别是否戴口罩!\033[0;33m')
    picdata(image)

# 启动主程序
if __name__ == '__main__':
	url = input("输入文件目录完整路径: ")
    g = os.walk(url)
    for path, d, filelist in g:
        for filename in filelist:
            if filename.endswith('jpg'):
                url = os.path.join(url,filename)
                print('\n\033[0;30m>>>正在识别', url, '图片<<<\033[0;33m')
                mask(url)

Python 利用百度 API 进行图像识别_第7张图片

学习 Tornado Web Server 搭建 python 服务器,
结合 myapp.py,就可以让你的网站实现图像识别小功能啦~~~快去试试吧!

你可能感兴趣的:(人工智能,python,api,人工智能)