【class8】人工智能初步(图像识别-----卷积神经网络)

上节回顾

上节课,我们简单了解了图像识别和深度学习的相关知识。
快速回顾一下吧~

A图像识别是以图像的主要特征为基础的。
B. 图像分辨率决定图像的质量。

C. 像素是图像中的最小单位
D. 在图像识别的原理上,计算机和人类在本质上没有区别

E.人工智能的核心驱动力是机器学习, 而深度学习是机器学习的一个特定分支。

这节课,我们将更深入地了解:在图像识别领域,应用最为广泛的深度学习算法--卷积神经网络。并为实现“电脑图像的智能识别和自动分类”做一些前期准备。

深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。在上面提到的典型算法中,卷积神经网络CNN就是受到人类视觉神经系统的启发,最擅长进行图像处理的一种算法。

输入层、输出层比较容易理解。在图像识别中,输入层输入的是图像,输出层输出的是识别结果。

那什么是隐含层呢?隐含层主要由卷积层、池化层和全连接层3类常见的结构组成。连接顺序通常为:卷积层-池化层-全连接层

                                      

比如,对这样⼀张 1000×1000 分辨率的图像,需要处理的参数就高达上百万个。这么⼤量的数据处理起来⾮常消耗资源,⽽且这还只是⼀张不算太⼤的图⽚。

池化层将复杂问题简单化,把大量参数降维成少量参数,再做处理。因为在大部分场景下,降维并不会影响结果比如,将这样一张图像从1000像素缩⼩到200像素,并不会影响我们识别男孩还是女孩,机器也是如此。

  1. 卷积层能够提取图像中的局部特征
  2. 池化层能够⼤幅降低参数量级
  3. 大部分情况下,降维并不会影响识别结果

D当图像的位置或者角度发⽣了变化,CNN也能有效的识别出来是类似的图像。

这些不同的层次,有什么作用 🤔
我们可以将卷积层和池化层看成图像自动提取特征的过程。在提取完成之后,仍然需要使用全连接层来完成分类任务。
深度学习需要输入的图像信息非常庞大。
只有经过卷积层和池化层降维过的数据,全连接层才能”跑得动”

卷积神经网络是一个多层结构

卷积神经网络的结构由输入层、隐含层和输出层组成

隐含层的结构由卷积层、池化层,全连接层组成

卷积神经网络最常用于图像处理

卷积神经网络的应用

卷积神经网络在图像领域的应用处处可见,比如:

1. 图像分类、检索

一项基础应用,能节省大量的人工成本,将图像进行有效的分类。

典型场景:图像搜索

橙色软件搜索同款用到的图像搜索

2. 目标定位检测

在图像中定位目标,并确定目标的位置及大小。

典型场景:自动驾驶、安防、医疗

开车外出用到的行车记录仪

3. 目标分割

简单理解就是一个像素级的分类

典型场景:视频后期加工、图像生成

P图用到的美图秀秀

4. 人脸识别

基于人的脸部特征信息进行身份识别的一种生物识别技术。

典型场景:安防、金融、生活

进出小区用到的人脸识别

5. 骨骼识别

识别身体的关键骨骼,以及追踪骨骼的动作。

典型场景:安防、电影、游戏、图像视频生成

互动游戏中实时评估人体姿态和动作轨迹的操作

面临的困难

既然卷积神经网络的应用如此广泛,我们能通过不停地加深网络,自己训练一款对图像处理表现更好的模型吗?现实往往没有这样简单。

我们以制造桌子为例:
木材就是数据,提供基础的素材;
制造桌子的流水线就是一套模型,其中包括了网络层数的设计,解决把木头变成桌子的问题;
工厂里的机器就是计算能力,机器越厉害,制造桌子的效率就越高,速度就越快。

模型设计

深度学习的“深”不仅代表着神经网络的层数之多,更进一步代表着模型参数之多。
但是网络的设计并不是简单的层数上的纵向堆叠,每一层的参数都需要不断反复的调试,投入大量的人力、物力和时间。
因此,绝大多数人只能使用现成的模型,而现成的模型往往又不能通用

数据

一个“见多识广”的模型,对实际问题的处理和表现才会更加准确。
这个过程可以分3步理解:
只有足够的数据作为深度学习的输入;
计算机才能学会以往只有人类才能理解的知识;
然后才能将这些知识应用到之前从来没有看见过的新数据上。

计算能力

大量的数据和参数需要大量的计算资源支持,因此越深越复杂的网络对计算资源的需求也越大。
即使一个简单的深度学习模型,跑一次数据的时间也短则数小时,长则数天,普通的电脑很难满足要求。

前面我们通过「情感倾向分析」这个接口,体验了在实际应用中,调用API的绝对优势。API的扩展性和灵活性是软件设计最美妙的艺术之一。在这里,我们同样采用这样的方式。

有了之前的基础,在这里,我们「接入百度智能云图像识别服务」只需3步:

a. 创建应用

b. 获取AppID、API Key和Secret Key

c. 导入和新建AipImageClassify

接下来,我们会完成这3步,做好实战准备。

在【创建应用】页面:

1. 为你的应用设定名称;

2. 领取接口的免费额度;

3. 对应用进行简短的描述;

4. 填写完毕后,选择【立即创建】完成操作。

b. 获取AppID、API Key和Secret Key

创建完成后,点击「查看应用详情」就可以看到AppID、API Key和Secret Key
这是系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证。
我们需要使用这三个ID来调用对应的API。

c. 导入和新建AipImageClassify

在上一个项目中,我们已经安装好了 Python SDK。
现在直接导入和新建AipImageClassify即可创建图像识别客户端。

创建图像识别客户端

代码的作用

AipImageClassify是图像识别的Python SDK客户端,为使用图像识别的开发人员提供了一系列的交互方法。
AipNlp一样,在使用之前,我们需要创建图像识别客户端。

代码:

# 从aip中导入AipImageClassify

from aip import AipImageClassify

# 存储访问密钥信息,包括客户端ID、API接口验证序号和API接口密钥

APP_ID = "10252021"

API_KEY = "ZHe7788sh11GEjIAdEKeY"

SECRET_KEY = "JMMzHe7788BUSH1ZhEnM1YUEhh"

# 新建一个AipImageClassify,并赋值给变量client

client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)

# 输出client

print(client)

分析代码:

导入AipImageClassify

创建图像识别客户端,首先要导入AipImageClassify。
这里,通过from...import...,从
aip中导入AipImageClassify,为我们提供图像识别的接口支持。

存储认证信息

导入后,我们需要使用获取的AppID、API Key和Secret Key来创建图像识别客户端AipImageClassify。
这里,为了方便使用,先将AppID、API Key和Secret Key以字符串的形式,依次赋值给变量APP_ID、API_KEY和SECRET_KEY。

新建AipImageClassify对象

只需把APP_ID、API_KEY和SECRET_KEY,依次传入AipImageClassify()函数中,即可新建一个AipImageClassify,也就是图像识别客户端。


这里,将返回的AipImageClassify对象赋值给变量client并输出。到这里,我们就完成了解决问题的第一步:接入百度智能云图像识别服务。磨刀不误砍柴工,这两节课,我们学习了很多图像识别和深度学习的知识。后面两节课,我们将进入实战部分,一起实现“电脑图像的智能识别和自动分类”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/702018.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VNA校准补充知识点

双端口校准中,SLOT已知直通校准;SLOR未知直通校准;后者精度更高 其余校准方式补充 1.增强型频响校准(比SOLT简单),适用于器件的单向测量(S11,S21) 2.SOLR(未知直通校准&…

Java聚合项目打包运行笔记

聚合项目创建 略 聚合项目打包配置 父工程 pom文件添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>…

一本书打通SLAM在智能汽车/自动驾驶领域应用

自动驾驶技术已成为当今数字化时代汽车行业的热点话题之一。随着技术的不断成熟&#xff0c;越来越多的车辆采用激光SLAM&#xff08;即时定位与地图构建&#xff09;和视觉SLAM技术&#xff0c;实现更高层次的智能网联汽车。SLAM技术在智能网联汽车中的应用是非常重要的&#…

深入解析Linux逻辑卷管理器(LVM)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 2、什么是逻辑卷管理器&…

Kubernetes学习-深入Pod篇(二) 探针技术详解与应用

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Kubernetes渐进式学习-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 探针是什么 3. 探针的分类 3.1. StartupProbe(启动…

Spring WebFlux 初探-响应式编程-021

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

连接虚拟机的 redis

用Windows 的 Redis Insight 连接虚拟机的 安装redis发现连不上 我的redis是新安装&#xff0c;没有用户名密码&#xff0c;发现是ip问题 127 开头的被我注释了&#xff0c;换成了ifconfig查到的ip

C语言如何删除表中指定位置的结点?

一、问题 如何删除链表中指定位置的结点&#xff1f; 二、解答 删除链表中指定的结点&#xff0c;就像是排好队的⼩朋友⼿牵着⼿&#xff0c;将其中⼀个⼩朋友从队伍中分出来&#xff0c;只需将这个⼩朋友的双⼿从两边松开。 删除结点有两种情况&#xff1a; &#xff08;1&am…

【微信小程序开发(从零到一)【婚礼邀请函】制作】——任务分析和效果实现的前期准备(1)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

【现代C++】三路比较运算符

C20引入了三路比较运算符&#xff08;也称为太空船运算符&#xff0c;<>&#xff09;&#xff0c;它允许同时比较两个值&#xff0c;并返回它们的相对顺序。这个运算符简化了需要定义多个比较运算符&#xff08;如、!、<、<、>、>&#xff09;的类的代码&…

SCP收容物171~180

注 &#xff1a;此文接SCP收容物161~170,本文只供开玩笑 ,与steve_gqq_MC合作 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-171 scp-172 scp-173 scp-174 scp-175 …

利用阿里国际站和eBay平台销售数据提升产品销售额的有效方法。

作为全球知名的跨境电商平台&#xff0c;阿里国际站和eBay汇聚了众多跨境电商商家。为了提升业务效率和优化经营策略&#xff0c;商家们需要时刻关注自家店铺中产品的销售情况。通过深入了解销售数据&#xff0c;商家们能够准确把握店铺的经营状态&#xff0c;及时识别潜在问题…