Python使用华为API为图像设置多个锚点标签


Posted in Python onApril 12, 2022

1.华为云API介绍

1.1 华为云图像标签

可识别上千种通用物体以及数百种场景标签,一个图像可包含多个标签内容,语义内容非常丰富。更智能、准确的理解图像内容,让智能相册管理、照片检索和分类、基于场景内容或者物体的广告推荐等功能更加准确。

Python使用华为API为图像设置多个锚点标签

1.2 应用场景

1.场景分析

图像标签功能可准确识别视频、图像内容,提高检索效率和精度,从而使得个性化推荐、内容检索和分发更为有效。

Python使用华为API为图像设置多个锚点标签

2.智能相册

基于图像识别的标签可达近万种,智能相册可以自定义分类,比如“植物”、“美食”、“工作”等类别。方便用户管理相册,带来良好体验。

Python使用华为API为图像设置多个锚点标签

3.目标检测

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

Python使用华为API为图像设置多个锚点标签

4. 图像搜索

基于图像标签的图像搜索技术,不管用户输入关键字,还是输入一张图像,都可以快速搜索到想要的图像。

Python使用华为API为图像设置多个锚点标签

1.3 调用华为云API实现图像标签

1.进入图像标签功能申请界面

首先使用账号登录华为云(也可另行注册)

(1)访问华为云官网huaweicloud.com,搜索“图像标签”

(2)点击“申请开通”(按照提示依次完成即可)

Python使用华为API为图像设置多个锚点标签

2.获取图像标签AK/SK

请确保账号登录华为云

访问华为云账号中我的凭证---------->再点击访问密钥获取AK/SK(按照提示下载对应的cv包)

Python使用华为API为图像设置多个锚点标签

3. 调试图像标签接口

(1)点击链接访问API 3.0 Explorer 在线接口调试页面apiexplorer.developer.huaweicloud.com

并在搜索框输入图像识别功能进入调试端口

Python使用华为API为图像设置多个锚点标签

4.API 3.0 Explorer 在线接口调试图

(2)如下图所示(可查看具体的调试要求)

Python使用华为API为图像设置多个锚点标签

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 相关文章推荐
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Python 打印中文字符的三种方法
Aug 14 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
python和c语言的主要区别总结
Jul 07 Python
Django 大文件下载实现过程解析
Aug 01 Python
python logging日志模块原理及操作解析
Oct 12 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Python 代码调试技巧示例代码
Aug 11 Python
如何利用Python写个坦克大战
Nov 18 Python
Python函数调用追踪实现代码
Nov 27 Python
python实现手机推送 代码也就10行左右
Apr 12 #Python
Python内置包对JSON文件数据进行编码和解码
详细介绍python操作RabbitMq
Python selenium绕过webdriver监测执行javascript
Apr 12 #Python
Pillow图像处理库安装及使用
Apr 12 #Python
Python各协议下socket黏包问题原理
Apr 12 #Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 #Python
You might like
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
学习python (1)
2006/10/31 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
优秀中职教师事迹材料
2014/08/26 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
介绍信如何写
2015/01/31 职场文书
小学元宵节活动总结
2015/02/06 职场文书
小学教师岗位职责
2015/04/02 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
Minikube搭建Kubernetes集群
2022/03/31 Servers