基于Python的人脸识别系统设计与实现(论文+源码)_kaic

基于Python的人脸识别系统设计与实现
摘 要

随着人工智能的发展,人脸识别系统在我们的生活中越来越被广泛应用。人脸识别系统是指能够从数字图像或视频源中识别人的技术。人脸识别系统可以通过多种方法工作,但是,它们通常是通过将给定图像中的面部特征与数据库中的人脸进行比较来工作的。人脸识别技术以前是作为一种计算机应用程序而发展起来的,但现在它在不同的移动平台上得到了广泛的应用,如人脸识别系统是一种比较常用的安全机制,可以与指纹和眼睛识别技术等生物识别系统进行比较。通过这项技术,用户可以轻松地解锁他们的移动电话,而不必输入他们的密码。同时它也被广泛应用于各种技术,如机器人开发等等..  鉴于人工智能的主流发展,本设计主要对人脸识别系统进行开发和拓展。
本设计应用python语言编写程序, 主要用到开源的dlib图像处理库。读取图片/视频或打开摄像头后,首先调用正脸检测器检测出人脸, 再用已经训练好的人脸关键点检测器定位人脸特征点,接着用ResNet人脸识别模型获得人脸的128个向量特征,再与数据库文件下所有jpg图片比较人脸的特征向量值并打印出来结果,结果小于阈值则时,判定为同一个人并弹出提示框显示识别结果,否则显示无识别结果。
除了基本的人脸识别功能,本设计还拓展了三个功能:美颜功能,瘦脸功能和人脸计数。界面上设置三个复选框,选定后读取图片或打开摄像头,可实现各个功能。
美颜功能主要是对人脸进行磨皮去痘,实际上是进行模糊处理。瘦脸功能则改变人的脸型,主要对相应特征点进行分割和压缩。而人脸计数返回图像中的人数。相关的算法会在下文中详细研究。


关键词:人工智能,Python,人脸识别,人脸美化   
ABSTRACT
With the development of artificial intelligence, face recognition system is widely used in our life. Face recognition system refers to the technology that can recognize people from digital images or video sources. Face recognition systems can work in a variety of ways, but they usually work by comparing facial features in a given image to faces in a database. Face recognition technology used to be developed as a computer application, but now it has been widely used in different mobile platforms. For example, Facial recognition system is more commonly employed as a security mechanism and can be compared to biometric systems such as fingerprint and eye recognition technology. A more recent use of this technology is in the mobile world, where latest mobile phone models have a built-in face recognition application. Through this technology, users can easily unlock their mobile phones without having to enter their password. It is also widely used in various technologies, such as robot development, etc.. In view of the mainstream development of artificial intelligence, this design mainly develops the face recognition system and expands its functions.
This design uses the python language to write programs and mainly using the open source image processing library : dlib. After reading the picture/video or opening the camera, first call the face detector to detect the face, then use the trained face key point detector to locate the face feature points, and then use the ResNet face recognition model to obtain the 128 vector features of the face, after that, compare the feature vector values of the face with all the jpg images in the database file and print the results. If the result is less than the threshold, it is determined to be the same person . meanwhile a prompt box will be shown to display the recognition result.
In addition to the basic face recognition function, the design also expands three functions: face beautification, face-lifting function and face counting. Set three check boxes on the interface. After selecting the image or opening the camera, it can implement corresponding functions.
The beauty function is mainly to skin the face to remove acne, in fact, it is blurred. The face-lifting function is to change the face shape, mainly to segment and compress the corresponding feature points and the face count returns the number of people in the image. The relevant algorithms will be studied in detail below.

Keywords:  Artificial Intelligence, Python, Face recognition, Face beautification
目录
1  绪论
1.1本设计的目的和意义
1.2系统开发背景
1.3存在的问题
1.4.需达到的技术要求
1.5指导思想
2  软件及关键技术简介
2.1 Python
2.2 Anaconda
2.3 conda
2.4 dlib库
2.5 OpenCV-Python
3  基本概念和理论基础
3.1 HOG(HISTOGRAM OF ORIENTED GRADIENT)特征描述子
3.2 深度残差网络(ResNet)
3.3 双线性插值法
3.4 双边滤波
3.4.1 概述
3.4.2 实现方法
3.5 高斯滤波
3.5.1 概述
3.5.2 高斯分布
3.5.3 高斯核
3.5.4 高斯滤波步骤
3.6 图片线性混合
4  软件功能设计
4.1 人脸识别模块
4.1.1功能概述
4.1.2 人脸检测和特征点检测阶段
4.1.3 识别阶段
4.1.4具体实现方法
4.1.5 具体实现代码
4.2 人脸美颜模块
4.2.1 功能概述
4.2.2 具体实现方法
4.2.3 具体实现代码
4.3 人脸计数模块
4.3.1 概述和实现方法
4.3.2 具体实现代码
4.4 瘦脸功能模块
4.4.1功能概述
4.4.2 具体实现方法
4.4.3 具体实现代码
4.5 UI界面设计模块
4.5.1 界面概述
4.5.2 具体实现代码
5  软件测试
5.1 测试环境
5.2 人脸识别功能模块测试
5.2.1 单人识别
5.2.2 多人识别
5.2.3 前置摄像头识别
5.3 美颜功能模块测试
5.3.1 图像人脸美颜测试
5.3.2 前置摄像头美颜测试
5.4 人脸计数功能模块测试
5.4.1图片人脸计数
5.4.2 前置摄像头人脸计数
5.5 瘦脸功能模块测试
5.5.1 图片瘦脸功能
5.5.2 前置摄像头瘦脸功能模块测试
6  总结与展望
6.1 总结
6.2 展望
参考文献
致谢
附录

1 绪论
1.1本设计的目的和意义

面孔是我们在社会生活中首要关注的焦点,在传递身份和情感方面起着重要的作用。在我们的一生中,我们可以识别出许多面孔,并且即使在多年的分离之后,我们也能一眼识别出面孔。即使由于不断变化的条件,包括年龄和外界干扰干扰,如胡须,眼镜或发型使视觉刺激存在较大差异,这项功能仍然是十分强大的。
随着科技的发展,人类社会对人工智能的渴望程度越来越大。人工智能的发展可以提供我们极大的便利。特别是可检测和识别人脸的计算机可以应用于各种任务,包括刑事识别、安全系统、图像和胶片处理、身份核实和人机交互。不幸的是,建立人脸检测和识别的计算模型相当困难,因为人脸是复杂的、多维的和有意义的视觉刺激。现在很多地方都在使用人脸检测,特别是像 picassa、photobucket 和 facebook 这样的图片网站。自动标记功能为图片共享创造了一个新的维度,让其他人了解到在图片中的人是谁。作为图像分析和理解最成功的应用之一,人脸识别受到了人们的重视,尤其是在过去的几年里。造成这一趋势的原因至少有两个:第一是商业和执法应用范围广泛,第二是经过 30 年的研究后可行技术的可获得性。此外,人脸的机器识别问题继续吸引图像处理、模式识别、神经网络、计算机视觉、计算机图形学和心理学等学科的研究人员。对于用户友好型系统的强烈需求是显而易见的,这种系统能够保护我们的资产,保护我们的隐私,而不会因为一个数字失去我们的身份。比如,一个人需要一个 PIN 从 ATM 机获取现金,一个计算机的密码来访问互联网,等等。而且对于那些视网膜、虹膜扫描或者指纹识别,它强烈需要识别人的配合,比如睁开双眼进行扫描、录入指纹等等,即使这些特征十分适合于识别人类这种生物。相比而言,人脸识别系统通常能在识别人不知情的情况下进行,那么就不需要进行强迫也能实现识别功能,因此可更广泛的应用于各个领域。如:
1.法律监督和执法:带有人脸识别功能的监控,预防盗窃和非法行为的发生、发生盗窃事件或其他非法行为后进行分析推理、识别到犯法人后在各个路口和海关进行人脸捕获,以此抓捕到犯罪嫌疑人。
2.信息安全:智能手机解锁屏幕、手机支付(包括Apple pay、支付宝、微信支付等)、各种社交软件的注册和登录、数据库登录、互联网登录、医疗和交易记录等等。
3.智能卡:代替国家身份证、护照、社保卡、手机卡、银行卡、驾驶证等等。 
4.娱乐:视频游戏、虚拟现实、VR真人游戏、室内人工智能。
于此同时,随着人脸识别技术慢慢成熟和数字图像处理技术不断的发展,人脸自动美化技术也逐渐受到人们的青睐。

1.2系统开发背景
在这个世纪的大部分时间,甚至上个世纪的部分时间(达尔文,1872年),对人脸识别的兴趣在各个科学学科中都发挥着重要的作用,认知心理学家对人脸识别这一现象很感兴趣,因为有证据表明,人们对人脸的感知与其他有图案的物体不同,因此,人脸可能代表了一类“特殊”的刺激。神经科学家对此也特别感兴趣,因为有证据表明,这种能力是由离散的神经回路辅助的,因此,它代表了一种特殊的大脑功能。人类成长心理学家也认为人脸识别这一能力十分重要,因为人脸在婴儿和看护者之间提供了一个早期的沟通渠道(在语言出现之前)。此外,进化心理学家和动物行为学家对人脸识别也抱有十分大的期待,因为它似乎是一种“特殊”的能力,是通过进化压力来选择的,并在物种间保持不变。
人脸识别作为图像分析与理解中最成功的应用之一,近年来受到了广泛的关注。至少有两个原因可以解释这一趋势:第一个是广泛的商业和执法应用,第二个是经过30年的研究,可行技术的可用性。根据早期科学家对人脸识别的研究,人脸识别其实就是检测和提取人脸特征点,根据特征点进行识别。人脸识别技术在我国也被广泛的应用。人脸识别不仅在互联网、交通、安全等领域占据发展主流,同时还在建筑设计、金融、医疗保险、海外旅游移民等方面也得到广泛的应用和认可。
虽然目前的机器识别系统已经达到了一定的成熟程度,但是它们的成功受到许多实际应用所施加的条件的限制。例如,在光照和/或姿态发生变化的户外环境中获得的人脸图像的识别在很大程度上仍然是一个未解决的问题。换句话说,目前的系统距离人类感知系统的能力还很远。
因为国家的昌盛,我们的生活水平在不断的提高,我们不再满足于物资生活,精神需求也越来越广泛,比如我们更追求外表的美观。以至于现在市面上出现各种类型的PS软件。人们可以借助此类软件来处理自己的皮肤,或者身材,实际上就是使用了相应的图像处理技术来美化人脸或者身材,能展现更美丽的自己,这受众多女性朋友的青睐。于此同时,随着数码相机的发展,用相机拍下的照片的像素,或者说分辨率也越来越高,以至于能够清晰的展示出人脸的各个细节,当然包括了痘痘、雀斑、皱纹等等,这就暴露了一些人们不想暴露的点。因为爱美是人的本性,所以在得到这些照片后,大部分女性朋友都会在PS软件上重新进行美化处理,但是PS过程是相当繁琐和枯燥的,如果需要PS多张人脸,则需要重复一样的步骤,这真的十分浪费时间。事实上为了迎合大众的需求,一部分数码相机,比如柯达相机中,就将这两个步骤结合在一起了。也就是在数码相机上加入自动人脸美化或者瘦脸的功能,人们只要拍照,拍摄完后相机会自动的处理图片中的人脸。怎么处理呢?其实就是利用数字图像处理的一些算法,去除人脸上的痘痘、雀斑、皱纹等等,达到磨皮的作用,同时又不会去除掉人脸的特征。除此之外还能够实现自动瘦脸等等功能。

1.3存在的问题
虽然目前的机器识别系统已经达到了一定的成熟程度,但是它们的成功受到许多实际应用所施加的条件的限制。在变化的户外环境中获得的人脸图像的识别在很大程度上仍然是一个未解决的问题。换句话说,目前的系统距离人类感知系统的能力还很远。
例如影响人脸识别的诸多因素:
(1)复杂场景
 
图1.1复杂场景下的人脸识别
(2)表情变化
 
图1.2 表情变化下人脸发生变化
(3)光照变化:
 
图1.3 光照方向不同时人脸产生的不同视觉效果

(4)年龄变化:
 
图1.4 随着年龄变化人脸的改变

(5)姿态变化:
 
图1.5 各种姿态变化

变化是绝对的,不变是相对的。模式识别(图像识别)的基本任务就是从变化中寻找不变的本质。图像处理不是科学,是门艺术。同时,虽然美化瘦脸功能的技术已有产品上市,但是美化的同时会使图像有事产生过度模糊、或者人脸变形的现象,因此总的来说这类技术还是不够成熟,需要我们更深入的研究。
1.4.需达到的技术要求
本设计主要要求使用python语言实现人脸识别功能,因为本设计的研究方向不是人脸识别的底层算法,所以使用已经训练好的模型进行人脸识别。其中使用了dlib库中的人脸检测方法,它的算法可以是HOG(HISTOGRAM OF ORIENTED GRADIENT)特征算法或者卷积神经网方法、于此同时利用近期设计的深度残差网络(ResNet)人脸识别方法。它的识别速度不仅快,可以达到10帧每秒,而且识别精度也相对较高,因此在开发中此方法深受人工智能爱好者的青睐[2]。
除此了基础的人脸识别功能,本设计还要实现的功能有:人脸美化、人脸计数及瘦脸功能。详细的算法和实现会在下文中提到。
1.5指导思想
人脸识别的商业和执法应用范围从静态、控制格式的照片到不受控的视频图像,构成了广泛的技术挑战,需要同样广泛的技术,从图像处理、分析、理解和模式识别。人脸识别问题的一般表述为:使用现有的、存储人脸的数据库,对给定的图像或者视频中的人脸进行检测,识别场景中的一个或多个人并返回结果,做出响应。可用诸如人种、年龄、性别、面部表情或语言等附带信息可用于缩小搜索范围(增强识别)。该问题的解决方案涉及从杂乱场景中分割人脸(人脸检测)、从人脸区域中提取特征、识别或验证(图 1)。在识别问题中,系统的输入是一个未知的面孔,系统从已知个体的数据库中验证和确定的身份。
 
图1.6 人脸识别的框架
 
图1.7人脸识别的框架

此外,图像处理不是科学,是门艺术。我们需要深刻领悟图像对象的特点,根据对象的本质特征选用针对性的图像处理方案。

2 软件及关键技术简介
2.1 Python
Python是一种高级编程语言,同时它与java、C++语言一样也是面向对象的,但与另外的面向对象的编程语言区别却很大,使用过这几种语言的程序员都不得不赞赏python语言的精简和方便[10]。不仅如此,python可以同时在各个不同的操作系统中搭建环境和使用,而且用python语言编写的代码不需要做改变,所以它给程序员提供的功能是毫无质疑的。此外,Python另外的强大之处在于,它的应用领域范围十分广,遍及人工智能、科学计算、Web开发、系统运维、大数据及云计算、金融、游戏开发等。为什么python能实现这么强大的功能呢?主要是因为它具有庞大的库(包括标准库和第三方库),并且它大部分的库都是开源的,开源的库经过不断的使用和完善是使python持续发展的主要原因。通过引用库来实现不同领域的各种功能。然而,于此同时,正是由于库的数量庞大,对于管理这些库以及对库作及时的维护成为既重要但复杂度又高的事情。

2.2 Anaconda
Anaconda中文是森蚺,一种非常肥大的蟒蛇。简单来说你可以把Anaconda当作是Python的懒人包,支持Linux,Mac,Windows系统,包含了Python常用的资料分析、机器学习、视觉化的套件。并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。 可以在Anaconda下随意切换python的版本,并且可以在Anaconda prompt下方便的安装第三方包,其实在下载时就已经自动为我们装上除了标准库外其他常用的库了。比较特别一点的是,Anaconda是利用conda命令来管理包和环境,使用起来十分方便[6]。

2.3 conda 
conda是用来管理包和环境的管理工具。它适用的语言有:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。conda为Python项目而创造,但可适用于上述的多种语言。适用平台:Windows, macOS, Linux。它的作用有:①快速安装、运行和升级包及其依赖项。②在计算机中便捷地创建、保存、加载和切换环境。

2.4 dlib库
Dlib是一个C++包,它拥有各种机器学习、深度学习相关的库,而且它可以在不同环境下使用,特别是在图像处理领域运用十分广泛。同时dlib所有的设计都是高度模块化的,执行速度快,并且通过一个干净的、现代的C++ API简单地使用。特别的是,因为Dlib是开源的,我们可以免费的使用它,只需要直接在环境下安装即可,十分方便。并且Dlib不依赖第三方库,无须安装和配置,可用在window、Mac OS、Linux系统上。
为什么用Dlib来做人脸识别呢? 因为我们需要3个重要的模型,分别是:人脸检测器,人脸关键点检测器、人脸识别模型,而这3个模型Dlib库中都有,并且后两者还是已经训练好的,比如此设计我使用的是训练好的ResNet人脸识别模型,我们只需直接调用就行,是相当方便的了。ResNet即深度残差网络,为什么用这个模型呢? 如果我们让网络对残差进行学习,得到的人脸识别结果在深度和精度上都比 CNN 更加强大。因为它的强大使他的发明者何凯明在2015年获得ImageNet的冠军,因此目前此算法在人脸识别领域占据领先位置。
Dlib的拥有许多解析文档和开源、高级的图像处理算法。Dlib有debug模式,在debug模式下可以调试代码,查看变量和对象随着程序运行的变化,快速定位错误点。同时Dlib也有说明文档,每个类和函数都在文档中有做详细的说明。除此之外,Dlib还提供了大量的实例,作为程序员重要的参考资料。

2.5 OpenCV-Python
是OpenCV的Python API,结合了OpenCV C++ API和Python语言的最佳特性。OpenCV-Python是一个Python绑定库,旨在解决计算机视觉问题。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想,而不会降低可读性。与C / C++等语言相比,Python速度较慢。也就是说,Python可以使用C / C++轻松扩展,这使我们可以在C / C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C++代码一样快(因为它是在后台工作的实际C++代码),其次,在Python中编写代码比使用C / C++更容易。OpenCV-Python是原始OpenCV C++实现的Python包装器。OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组。这也使得使用类似于Numpy的各种其他的库(如SciPy和Matplotlib)集成更容易。

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

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

相关文章

202012青少年软件编程(Python)等级考试试卷(一级)

第 1 题 【单选题】 运行下方代码段,输出是6,则输入的可能是( )。 a eval(input())print(a)A :8%2 B :8/2 C :3*2 D :3**2 正确答案:C 试题解析: 第 2 题 【单选题】 关于Python变量,下列叙述正确的是&#x…

Spring Cloud——LoadBalancer

Spring Cloud——LoadBalancer 一、负载均衡(LoadBalance)1.LoadBalancer本地负载均衡客户端 VS Nginx服务端负载均衡区别 二、LoadBalancer1.Spring RestTemplate as a LoadBalancer Client2.编码使用DiscoveryClient动态获取所有上线的服务列表3.从默认…

《自动机理论、语言和计算导论》阅读笔记:p215-p351

《自动机理论、语言和计算导论》学习第 11 天,p215-p351总结,总计 37 页。 一、技术总结 1.constrained problem 2.Fermat’s lats theorem Fermat’s Last Theorem states that no three positive integers a, b and c satisfy the equation a^n b…

过渡与动画

单元素/组件过渡 Vue在插入、更新或者移除 DOM 时,提供多种不同方式的过渡效果(一个淡入淡出的效果) 在条件渲染(使用v-if)、条件展示(使用v-show)、动态组件、组件根节点等情形中,可…

python算法题

需求 代码 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:if max(nums) >target:for i in range(len(nums)-1):if nums[i1] > target and nums[i] <target:return i1if max(nums) <target:return len(nums)if min(nums) > …

操作系统(2)——进程线程

目录 小程一言专栏链接: [link](http://t.csdnimg.cn/8MJA9)基础概念线程详解进程详解进程间通信调度常用调度算法 重要问题哲学家进餐问题问题的描述策略 读者-写者问题问题的描述两种情况策略 总结进程线程一句话 小程一言 本操作系统专栏&#xff0c;是小程在学操作系统的过…

【tcl脚本实践Demo 1】文本生成、匹配、修改、读写

引言 在芯片设计的流程中,各种EDA工具在设计、综合、布局布线、验证、时序分析等等环节都会产出大量的文件信息。这些信息是海量的,如果单纯靠程序员自己查看信息效率很低并且很容易纰漏。所以脚本语言可以很好的解决这个问题,可以利用脚本语言匹配到敏感的信息,完成对信息…

240 基于matlab的飞行轨迹仿真程序

基于matlab的飞行轨迹仿真程序&#xff0c;多种不同的飞行轨迹&#xff0c;输出经度、纬度、高度三维轨迹&#xff0c;三个方向的飞行速度。程序已调通&#xff0c;可直接运行。 240 飞行轨迹仿真 三维轨迹 飞行速度 - 小红书 (xiaohongshu.com)

Golang图片验证码的使用

一、背景 最近在使用到Golang进行原生开发&#xff0c;注册和登录页面都涉及到图片验证码的功能。找了下第三方库的一些实现&#xff0c;发现了这个库用得还是蛮多的。并且支持很多类型的验证方式&#xff0c;例如支持数字类型、字母类型、音频验证码、中文验证码等等。 项目地…

动态规划-回文子串问题

文章目录 1. 回文子串&#xff08;647&#xff09;2. 最长回文子串&#xff08;5&#xff09;3. 分割回文串 IV&#xff08;1745&#xff09;4. 分割回文串 II&#xff08;132&#xff09;5. 最长回文子序列&#xff08;516&#xff09;6. 让字符串成为回文串的最少插入次数&am…

Vue入门篇:样式冲突scoped,data函数,组件通信,prop data单向数据流,打包发布

这里写目录标题 1.组件的样式冲突scoped2.data函数3.组件通信1.两种组件关系分类和对应的组件通信方案2.父子通信方案的核心流程 4.prop & data、单向数据流5.打包发布6.打包优化:路由懒加载 1.组件的样式冲突scoped 默认情况:写在组件中的样式会全局生效→因此很容易造成多…

【Python从入门到进阶】53、Scrapy日志信息及日志级别

接上篇《52、CrawlSpider链接提取器的使用》 上一篇我们学习了基于规则进行跟踪和自动爬取网页数据的“特殊爬虫”CrawlSpider。本篇我们来学习Scrapy的日志信息及日志级别。 一、引言 1、日志在Scrapy中的重要性 在Scrapy框架中&#xff0c;日志扮演着至关重要的角色。日志…

十三、大模型项目部署与交付

1 硬件选型 CUDA 核心和 Tensor 核心 CUDA 核心&#xff1a;是NVIDIA开发的并行计算平台和编程模型&#xff0c;用于GPU上的能用计算&#xff0c;可做很多的工作。应用在游戏、图形渲染、天气预测和电影特效Tensor 核心&#xff1a;张量核心&#xff0c;专门设计用于深度学习…

前端开发框架Vue

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Vue概述 Vue.js&#xff08;简称Vue&#xff09;是由尤雨溪&#xff08;Evan You&#xff09;创建并维护的一款开源前端开发框架。Vue以其轻量级、易上手和高度灵活的特点&…

IoTDB 入门教程③——基于Linux系统快速安装启动和上手

文章目录 一、前文二、下载三、解压四、上传五、启动六、执行七、停止八、参考 一、前文 IoTDB入门教程——导读 二、下载 下载二进制可运行程序&#xff1a;https://dlcdn.apache.org/iotdb/1.3.1/apache-iotdb-1.3.1-all-bin.zip 历史版本下载&#xff1a;https://archive.…

C——双向链表

一.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。什么意思呢&#xff1f;意思就是链表在物理结构上不一定是连续的&#xff0c;但在逻辑结构上一定是连续的。链表是由一个一个的节点连…

24五一杯ABC题完整思路+可执行代码+可视化图表(1)

2024五一赛A题保姆级建模思路20页1-3问可执行代码后续成品论文各类可视化图表&#xff08;完整版资料在文章最后&#xff09; 处理第一问的代码 其余各题的代码如下&#xff1a; A题保姆级建模思路20页&#xff1a;&#xff08;手把手教你如何建模&#xff09; 高清图片如下&am…

第12章 软件测试基础(第一部分)概念、质量保证、测试用例、测试执行过程

一、软件测试 &#xff08;一&#xff09;定义 动态验证计算机程序对有限的测试用例集是否可产生期望的结果的过程。测试计划是描述了要进行的测试活动的范围、方法、资源和进度的文档。编写测试计划目的&#xff1a;使测试工作顺利进行、使项目参与人员沟通更舒畅、使测试工…

面试常见 | 项目上没有亮点,如何包装?

很多技术人在公司用的老技术&#xff0c;而且很多都是搬业务代码且做枯燥乏味的CRUD&#xff0c;在面试提交简历或做自我介绍的时候并不突出&#xff0c;这种情况&#xff0c;如何破局&#xff1f; 首先不管你做的啥项目&#xff0c;全世界不可能只有你自己在做&#xff0c;比…

Tensorflow2.0笔记 - ResNet实践

本笔记记录使用ResNet18网络结构&#xff0c;进行CIFAR100数据集的训练和验证。由于参数较多&#xff0c;训练时间会比较长&#xff0c;因此只跑了10个epoch&#xff0c;准确率还没有提升上去。 import os import time import tensorflow as tf from tensorflow import keras …