Python调用华为云API实现图像标签识别详解
本文详细介绍如何利用Python调用华为云图像标签API。内容涵盖API功能介绍、应用场景、AK/SK获取步骤、在线调试方法以及完整的Python代码示例。通过解析返回的JSON结果,帮助开发者快速实现图像内容识别与标签提取功能。
1.华为云API介绍
1.1 华为云图像标签
该服务可识别上千种通用物体及数百种场景标签,支持单图多标签输出,语义信息丰富。通过更智能、准确地理解图像内容,可提升智能相册管理、照片检索分类以及基于场景或物体的广告推荐的精准度。

1.2 应用场景
1.场景分析
图像标签功能能精准识别视频与图像内容,提升检索效率与精度,从而使个性化推荐、内容检索及分发更加高效。

2.智能相册
基于图像识别的标签种类近万种,智能相册支持自定义分类(如“植物”、“美食”、“工作”等),便于用户管理相册,优化使用体验。

3.目标检测
在建筑施工现场,基于定制化图像识别的目标检测系统可实时监测人员是否佩戴安全帽,从而降低安全风险。

4. 图像搜索
基于图像标签的搜索技术,无论用户输入关键字还是上传图像,均可快速检索到目标图像。

1.3 调用华为云API实现图像标签
1.进入图像标签功能申请界面
首先使用账号登录华为云(也可另行注册)
(1)访问华为云官网huaweicloud.com,搜索“图像标签”
(2)点击“申请开通”(按照提示依次完成即可)

2.获取图像标签AK/SK
请确保账号登录华为云
访问华为云账号中我的凭证---------->再点击访问密钥获取AK/SK(按照提示下载对应的cv包)

3. 调试图像标签接口
(1)点击链接访问API 3.0 Explorer 在线接口调试页面apiexplorer.developer.huaweicloud.com
并在搜索框输入图像识别功能进入调试端口

4.API 3.0 Explorer 在线接口调试图
(2)如下图所示(可查看具体的调试要求)

2.实验过程
2.1实验代码
######准备工作:在cmd中进入你所使用的python所在环境,通过pip的方式安装华为云的Python SDK
pip install huaweicloudsdkimage
pip install huaweicloudsdkcore
pip install base64
#########实验代码:运行前面步骤生成的代码
# coding: utf-8
#### 导入指定的数据包
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkimage.v2.region.image_region import ImageRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkimage.v2 import *
import base64
#### base64编码格式
def image_to_base64(self):
with open(self, 'rb') as f:
base64_data = base64.b64encode(f.read()) # 将图像转换为 base64数据格式
return base64_data
if __name__ == "__main__":
ak = "yourself_ak_from_cv" #### 输入获得的access key
sk = "yourself_sk_from_cv" ###输入获得的secret key
credentials = BasicCredentials(ak, sk) \
client = ImageClient.new_builder() \
.with_credentials(credentials) \
.with_region(ImageRegion.value_of("cn-north-4")) \
.build()
#### channel = cn-north-4 自己项目所在的大区
try:
request = RunImageTaggingRequest()
request.body = ImageTaggingReq(
limit=5, ## 限制输出多少种类
threshold=60, ### 设置 confidence置信度 低于60的种类不输出
language="zh", ## 设置成中文显示
image= image_to_base64('D:/data/train/动物/5.png') ## 调用之前定义的 base64 编码 并且输入自己的图片路径
)
response = client.run_image_tagging(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
2.2运行结果
{"result": {"tags": [{"confidence": "98.94", "type": "动物", "tag": "猪", "i18n_tag": {"zh": "猪", "en": "Pig"}, "i18n_type": {"zh": "动物", "en": "Animal"}, "instances": [{"bounding_box": {"height": 333.29959458571216, "top_left_x": 4.955303632296049, "top_left_y": 5.086499214172363, "width": 395.2104104849008}, "confidence": "93.81"}]}, {"confidence": "85.00", "type": "人工场景", "tag": "农场", "i18n_tag": {"zh": "农场", "en": "Farm"}, "i18n_type": {"zh": "人工场景", "en": "Manual scenario"}, "instances": []}, {"confidence": "66.37", "type": "食物", "tag": "火腿", "i18n_tag": {"zh": "火腿", "en": "Ham"}, "i18n_type": {"zh": "食物", "en": "Food"}, "instances": []}]}}
2.3 问题注释
(1) 置信度输入范围必须在 0~100 超过此范围则报错
(2) 输入图像路径时一定要调用之前定义好的base64编码函数
以上就是详解Python调用华为API实现图像标签的详细内容,更多关于Python图像标签的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













