当前位置: 首页 > news >正文

【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并输出。到这里,我们就完成了解决问题的第一步:接入百度智能云图像识别服务。磨刀不误砍柴工,这两节课,我们学习了很多图像识别和深度学习的知识。后面两节课,我们将进入实战部分,一起实现“电脑图像的智能识别和自动分类”。

相关文章:

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

上节回顾 上节课,我们简单了解了图像识别和深度学习的相关知识。 快速回顾一下吧~ A图像识别是以图像的主要特征为基础的。B. 图像分辨率决定图像的质量。 C. 像素是图像中的最小单位D. 在图像识别的原理上,计算机和人类在本质…...

Node.js安装及环境配置(超详细!保姆级!!)

目录 一、进入官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 一、进入官网地址下载安装包 Node.js — Download Node.js (nodejs.org) 选择对应你系统的 node.js 版本,我选择的是Windows系统,64位 点击图中选项&#…...

利用反射如何动态生成sql

一.自定义注解 UpdateWhere Target({ElementType.FIELD}) //作用于类 Retention(RetentionPolicy.RUNTIME) //运行时有效 Documented //可以出现在文档里 Inherited public interface UpdateWhere {}二.创建实体类接受 pu…...

SpringBoot项目中使用Redis,Mybatis和JWT

在Spring Boot项目中,结合Redis,MyBatis和JWT的使用可以提供以下功能: Redis的作用: 1.缓存:Redis可以用作缓存存储,提高应用程序的性能和响应速度。特别是对于频繁读取但不经常更新的数据,如配…...

CSS2(一):CSS选择器

文章目录 1、CSS基础1.1 CSS简介1.2 CSS编写位置1.2.1 行内样式1.2.2 内部样式1.2.3 外部样式1.2.4 样式优先级 1.2.5 CSS代码风格 2、CSS选择器2.1、基本选择器2.1.1 通配选择器2.1.2 元素选择器2.1.3 类选择器2.1.4 ID选择器2.1.5 总结 2.2、CSS复合选择器2.2.1 交集选择器2.…...

LeetCode题练习与总结:不同的二叉搜索树--96

一、题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出&…...

第八十一章 将 Web 应用程序与远程 Web 服务器结合使用 - 如果从 Web 服务器提供静态文件

文章目录 第八十一章 将 Web 应用程序与远程 Web 服务器结合使用 - 如果从 Web 服务器提供静态文件如果从 Web 服务器提供静态文件配置 Web 服务器路径将虚拟目录添加到 IIS将别名添加到 Apache 配置 第八十一章 将 Web 应用程序与远程 Web 服务器结合使用 - 如果从 Web 服务器…...

AVL树、红黑树

数据结构、算法总述:数据结构/算法 C/C-CSDN博客 AVL树 定义 空二叉树是一个 AVL 树如果 T 是一棵 AVL 树,那么其左右子树也是 AVL 树,并且 ,h 是其左右子树的高度树高为 平衡因子:右子树高度 - 左子树高度 创建节点…...

Vscode编辑器 js 输入log自动补全

最近换了新电脑,新下载了Vscode,记录一下设置项。 Vscode 版本 想要的效果 js文件中输入log(点击tab键),自动补全为 console.log() Vscode 文件》首选项》设置 搜索:snippets Emmet: Show Suggestions…...

structured concurrency

1. 基于 c executions的异步实现 - 从理论到实践 - 知乎 (zhihu.com)...

【免费】在线识别通用验证码接口

模块优势价格5元1000次&#xff0c;每天免费100次api文档支持 使用量小的完全够用了 <?phpfunction Post_base64($base64_str){$url http://api.95man.com:8888/api/Http/Recog?Taken41******QK&imgtype1&len0 ; $fields array( ImgBase64>$base64_str); $ch…...

如何通过汽车制造供应商协同平台,提高供应链的效率与稳定性?

汽车制造供应商协同是指在汽车制造过程中&#xff0c;整车制造商与其零部件供应商之间建立的一种紧密合作的关系。这种协同关系旨在优化整个供应链的效率&#xff0c;降低成本&#xff0c;提高产品质量&#xff0c;加快创新速度&#xff0c;并最终提升整个汽车产业的竞争力。以…...

使用LangChain创建简易聊天机器人

LangChain 是什么 就是一个框架或者说是一个工具&#xff0c;用来写 AI 应用。对&#xff0c;没有错&#xff01;AI小白也可以&#xff0c;有手就行&#xff01; LangChain有几个核心模块&#xff1a;Models、Prompts、Chains、Indexes、Memory、Agents。 这篇主要介绍Models、…...

研究生学习---找工作

规划 研一~研二上学期完成小论文&#xff0c;实习&#xff0c;秋招 竞赛&#xff1a;kaggle&#xff1f; 面试题一般简单且为原题&#xff0c;笔试题目很难&#xff0c;不会出原题 项目 找工作软件...

偶然发现了Python的一个BUG。。。

一般情况下&#xff0c;dict(id1, **{id: 1})这句代码应该报TypeError。但如果在捕获了其他异常的情况下&#xff0c;再来执行这句代码&#xff0c;却是会报KeyError&#xff0c;如下图&#xff1a; Python3.10和Python3.9也能复现该情况&#xff0c;正当我摩拳踩掌&#xff0c…...

36. 有效的数独 - 力扣(LeetCode)

基础知识要求&#xff1a; Java&#xff1a;方法、for循环、if判断、数组 Python&#xff1a; 方法、for循环、if判断、列表、集合 题目&#xff1a; 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一…...

开源收银系统在服装连锁店中发挥的重要作用

在当今竞争激烈的零售市场中&#xff0c;服装连锁店面临着日益复杂的经营环境和多样化的消费需求。在这样的背景下&#xff0c;开源收银系统成为了服装连锁店管理的关键利器。该系统不仅提供了高效的收银功能&#xff0c;还涵盖了进销存管理、会员管理、门店补货等多方面功能&a…...

代码随想录三刷day51

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣200. 岛屿数量二、力扣695. 岛屿的最大面积三、力扣1020. 飞地的数量四、力扣130. 被围绕的区域 前言 依然是从地图周边出发&#xff0c;将周边空格相邻…...

基于python+Django的二维码生成算法设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

pytorch 2.0 多线程并行,导致GPU利用100%,卡住

背景&#xff1a; 程序中有pytorch模型两个&#xff0c;yolov5&#xff0c;crnn。 之前无论是pth格式&#xff0c;还是TRT格式&#xff0c;并行的都没有问题。 最近发现&#xff0c;多线程ThreadPoolExecutor(max_workers2)调用的时候&#xff0c;即单个进程内处理一张图像&a…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...