![](https://img-blog.csdnimg.cn/direct/b757d3eabc904dfc8576deaf71ba77f6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
人工智能
文章平均质量分 73
神经网络及pytorch学习,总结在训练过程中的报错,神经网络主要为yolo和Siamese,使用软件为pycharm。
水花花花花花
sxu大二在读
展开
-
在python中嵌入C++程序的方法及opencv中的算术操作
在其最基本的形式中,该运算符将两个相同大小的图像作为输入,并输出与前两个相同大小的第三个图像,每个像素值是两个输入图像中每个图像中对应像素值的总和. 更高级的版本允许在一次操作中组合多个图像。AND 运算符(以及类似方式的 NAND 运算符)通常将两个二进制或整数灰度级图像作为输入,并生成第三个图像,其像素值只是第一个图像的像素值与来自第二个图像的相应像素相乘。图像算法对于分析输入图像的属性是必要的,可以将操作后的图像用作增强的输入图像,并且可以对图像应用更多操作,以进行阈值化、膨胀等。原创 2024-05-20 07:35:50 · 1346 阅读 · 1 评论 -
机器学习中的GPU和显存
nvidia-smi是Nvidia显卡命令行管理套件,基于NVML库,旨在管理和监控Nvidia GPU设备。nvidia-smi的输出这是nvidia-smi命令的输出,其中最重要的两个指标:显存占用GPU利用率显存占用和GPU利用率是两个不一样的东西,显卡是由GPU计算单元和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。gpustat,直接即可安装,gpustat基于nvidia-smi,可以提供更美观简洁的展示,结合watch命令,可以动态实时监控GPU的使用情况。原创 2024-05-16 18:10:54 · 832 阅读 · 2 评论 -
数字图像的几种处理算法
上面的代码同样是遍历每一个像素将前一个像素和后一个像素相加,然后将获得的值右移一位,这样就能实现除以2的效果,之所以做位运算,是因为位运算的速度比除法运算要快很多。在上述代码中,通过遍历每一个像素,然后计算该像素的三个分量的加权平均值,将三个分量设置成同一个值,这样就实现了对图像的灰度化处理。其实所谓的模糊化,就是将各个像素的相邻的像素的各个分量的值相加,然后除以2就可以实现对图像的模糊处理。将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。原创 2024-05-16 17:56:31 · 882 阅读 · 0 评论 -
少样本学习方法
少样本学习是一种强大的技术,它使模型能够从少数例子中学习。它在各个领域都有大量的应用,并有可能彻底改变机器学习。随着不断的研究和开发,少样本学习可以为更高效和有效的机器学习系统铺平道路。原创 2024-05-11 09:12:35 · 1080 阅读 · 2 评论 -
目标检测正负样本区分和平衡
rpn和rcnn的正负样本定义都是基于MaxIoUAssigner,只不过定义阈值不一样而已。MaxIoUAssigner的操作包括4个步骤:首先初始化时候假设每个anchor的mask都是-1,表示都是忽略anchor将每个anchor和所有gt的iou的最大Iou小于neg_iou_thr的anchor的mask设置为0,表示是负样本(背景样本)原创 2024-05-05 22:50:35 · 1088 阅读 · 5 评论 -
理解Docker容器和镜像的区别
容器=镜像+读写层容器最上边那一层是可读可写的。镜像可以看作是面向对象编程中的类。原创 2024-04-19 20:15:08 · 1243 阅读 · 2 评论 -
神经网络训练中的Batch Size参数
大批量,即使调整了学习率,在我们的实验中表现稍差,但需要更多的数据来确定更大的批量是否总体上表现更差。这表明,只要您为批量大小找到合适的学习率,您就可以专注于可能对性能产生更大影响的其他方面的训练。选择合适的学习率时,较大的批量尺寸可以更快地训练,特别是在并行化时。对于大批量,我们不受 SGD 更新的顺序性质的限制,因为我们不会遇到与将许多小批量顺序加载到内存中相关的开销。然而,当学习率没有针对较大的批量大小向上调整时,大批量训练可能比小批量训练花费的时间更长,因为它需要更多的训练时期来收敛。原创 2024-04-20 21:35:06 · 1721 阅读 · 7 评论 -
使用Python比较两张人脸图像并获得准确度
使用 Python、OpenCV 和人脸识别模块比较两张图像并获得这些图像之间的准确度水平。原创 2024-04-21 21:11:30 · 788 阅读 · 11 评论 -
图像处理:乘法滤波器(Multiplying Filter)和逆FFT位移
乘法滤波器是一种以像素值为权重的滤波器,它通过将滤波器的权重与图像的像素值相乘,来获得滤波后的像素值。而20*np.log(np.abs(x))将数据按20倍缩放,并对数据的绝对值取对数,这可以更容易地看到不同频率之间较小的幅度差异。在可视化傅里叶频谱时,使用np.log(1+np.abs(x))和20*np.log(np.abs(x))之间的选择是个人喜好的问题,可以取决于具体的应用程序。这个乘法过程对于去除不需要的频率和增强所需的频率是必不可少的,从而产生更清晰和更清晰的图像。原创 2024-04-28 23:02:37 · 1437 阅读 · 9 评论 -
IPython Debugger (ipdb) 详解,python debug调试模块
(IPython debugger), 与类似, 是一款集成了 IPython 的 Python 代码命令行调试工具,支持等。原创 2024-04-17 23:03:15 · 1329 阅读 · 6 评论 -
基于Yolov5的检测系统实战
Yolov5官方模型改进,主要选择yolov5x,效果较好AttentionModule.py—注意力机制模块(在 YOLOv5 中添加注意力机制可以帮助模型更好地学习到关键特征,提高目标检测的性能和精度。1. 提高关注度:注意力机制可以使模型更加关注重要的特征,减少不必要的背景干扰,从而提高目标检测的准确性。2. 增强特征表征:通过引入注意力机制,模型可以学习到更具有代表性的特征表示,有助于更好地区分火灾目标与其他物体。原创 2024-04-10 22:53:14 · 1558 阅读 · 5 评论 -
Pytorch实践学习笔记一(附可运行详细代码实例)
ndarrays 是不可以的,且只能存储在cpu中,但是Tensor可以,Tensor其实就是用来进行各种计算的数据结构,存储数据,且有各种各样的操作,增删改查之类的。pytorch其实就是一个功能接口,我们都需要从最基本的类开始设计,pytorch的每一个数据类型其实就是一个类,这个类会定义他的一些基本的数据,定义他的一些函数操作,比如乘法、加法、减法、乘法、梯度更新。2、torch.rand(),返回的是均匀分布,区间为(0,1),而randn是标准正态分布(均值为0,方差为1,即高斯白噪声)。原创 2024-03-17 12:31:58 · 2088 阅读 · 2 评论 -
安装yamL文件报错:Could not find a version that satisfies the requirement yaml (from versions: )
YAML(YAML Ain't Markup Language的缩写)是一种人类可读的完整的数据序列化语言。yaml是Python的第三方库。YAML is a human friendly data serialization standard for all programming languages(YAML是一个对所有编程语言都很友好的数据序列化标准)。但为了强调该语言以数据为中心,而不是以标记语言为重点,而用返璞词重新命名。原创 2024-03-15 23:16:02 · 1906 阅读 · 0 评论 -
统计XML文件内标签的种类和其数量及将xml格式转换为yolov5所需的txt格式
对于自己标注的数据集,需在标注完成后需要对标注好的XML文件校验,下面是代码,只需将SrcDir换成需要统计的xml的文件夹即可。②imges文件夹中的train目录下的每一张图片都要有相应的xml文件,若无,则手动删除该jpg文件。解决办法:最简单就是查看你文件夹下的XML文件的大小是否为0kb,若为0kb,直接删除。①此处的xml—txt.py文件是放在datasets文件夹下的。我的标注标签有四个,分别对应下面这四个数字。接下来又是漫长且易秃的环境配置之路了。这是因为我的数据集中有XML文件为空。原创 2024-03-30 23:31:20 · 957 阅读 · 2 评论 -
运行YOLOV5时numpy版本报错调试
这个方法可以解决此问题,但是其他模块比如pandas可能要求numpy的版本要大于1.22.4,然后再更改numpy的版本,改成1.22.4也有np.int。报错原因:我安装的是numpy最新版本1.26.0,没有np.int。不建议更改源码,因为可能会有更多的报错。解决方法:安装较低版本的numpy。原创 2024-03-25 23:29:00 · 947 阅读 · 0 评论 -
YOLOV5训练自己的数据集教程(万字整理,实现0-1)
YOLOv5是一种单阶段目标检测算法,该算法在的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。YOLOv5是Glenn Jocher等人研发,它是Ultralytics公司的开源项目。YOLOv5根据参数量分为了n、s、m、l、x五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020年6月发布至2022年11月已经更新了7个大版本,在v7版本中还添加了语义分割的功能。原创 2024-03-31 20:24:33 · 5929 阅读 · 23 评论 -
Pycharm运行yolov5报错Error: Failed to initialize: Bad git executable.错误的解决方案
之前是在github上直接通过下载得到的相关代码文件,而不是经过git clone命令得到的文件。所以导致git出错。正确的方法是在github上得到git链接(.git形式)然后在自己本机的特定目录下运行。将GIT_PYTHON_GIT_EXECUTABLE设置为自己本机中git.exe所在的路径,如路径为C:\program\git\bin\git.exe。1、第一种是直接在train.py文件夹的import os后面加。2、第二种是更改git链接。原创 2024-03-23 22:47:00 · 1528 阅读 · 0 评论 -
Siamese Network(孪生神经网络)详解
孪生神经网络的主干特征提取网络的功能是进行特征提取,各种神经网络都可以适用,eg:VGG16 ,下图能反映VGG16结构特征:1、一张原始图片被resize到指定大小,本文使用105x105。2、conv1包括两次[3,3]卷积网络,一次2X2最大池化,输出的特征层为64通道。3、conv2包括两次[3,3]卷积网络,一次2X2最大池化,输出的特征层为128通道。4、conv3包括三次[3,3]卷积网络,一次2X2最大池化,输出的特征层为256通道。原创 2024-03-14 22:41:11 · 2598 阅读 · 3 评论 -
YOLOv5训练过程中的各种报错
在运行train.py时,需要预训练的权重文件。首先这个报错的大概意思是protobuf这个包的版本不对,只支持3.9.2版本。protobuf==3.9.2支持的python版本最高为3.8,这里需要从新建pytorch环境开始,降低python版本。而神经网络用到多进程的地方在数据集加载上,所以将DataLoader中的参数num_workers设置为0即可。①不止在运行一个项目,另一个项目的python程序也在运行,关掉就可以了。在提示报错的torch_utils.py文件58行,将原来的。原创 2024-03-29 22:57:30 · 1290 阅读 · 1 评论 -
conda常用指令汇总
conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这个区别也导致了安装的时候conda算依赖项的时间比pip多很多,而且重新安装的包也会更多(会选择更新旧包的版本)。conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。意味着你能用conda安装python解释器,pip不行。原创 2024-03-08 08:13:33 · 750 阅读 · 1 评论 -
opencv人脸识别实战1:初始化及录入人脸(PyCharm实现)
注意在运行时可能会出现AttributeError: module ‘cv2‘ has no attribute ‘face‘的报错,需要用。开始前先导入必要的库,在conda中用 pip install package 指令安装。安装一个 opencv-python的包,如果此时还是无法运行,需要重新安装这两个包。加载检测器Haar和识别方法LBPH,接下来打开摄像头,并读取照片。创建一个函数,用于从数据集文件夹中获取训练图片并获取id。接下来用字典对存储关系键值对,再记录录入共计的人脸。原创 2024-03-09 23:45:00 · 760 阅读 · 0 评论 -
Python从指定网页上下载所有图片到本地存储路径(PyCharm实现)
在函数中遍历找到的每个图像标签,并提取包含图像 URL 的 src 属性。运行前需要准备必要的包,`requests` 用于发起 HTTP 请求,`BeautifulSoup` 来自 bs4 用于解析 HTML,`urljoin` 来自 urllib.parse 用于拼接 URL,以及 `urlretrieve` 来自 urllib.request 用于下载文件。最后用实际要从中提取图像的网页的 URL 和要保存图像的目录路径替换占位符 `"https://"` 和 `"D:\"`。原创 2024-03-02 23:34:04 · 1049 阅读 · 2 评论 -
opencv人脸识别实战2:刷脸功能(PyCharm实现)
最后,根据平均识别结果决定是否认定为合法用户。如果有大部分扫描结果是可行的,则返回相应的标签;否则返回0表示无法识别。如果置信度低于一定阈值(confidence),即可识别已训练的对象,则输出姓名和置信度信息。对于每张检测到的人脸,通过分类器的预测函数获取标签和置信度。在每次扫描中,使用摄像头读取图像,并将其转换为灰度图像。根据不同的置信度范围,确定是否可以识别该人脸。对每个模型,执行多次扫描以提高准确性。函数首先循环遍历已训练好的人脸模型。使用人脸识别器检测图像中的人脸。原创 2024-03-10 23:31:53 · 654 阅读 · 1 评论 -
opencv人脸识别实战3:多线程和GUI界面设计(PyCharm实现)
如果成功,将捕获到的图像 `img` 转换成 RGBA 格式,并创建一个 `ImageTk` 对象 `imgtk` 用于在 `panel` 中显示。设置了三个按钮 `Button`,分别用于开始人脸识别 (`f_scan_face`)、录入人脸 (`f_rec_face`) 和退出程序 (`f_exit`)。将按钮放置在窗口的特定位置,并通过 `command` 参数将按钮与对应的功能函数绑定。创建了一个空白的 `Label` 控件 `panel`,可能会用于显示摄像头捕获的图像。函数来进行人脸识别操作。原创 2024-03-11 00:01:02 · 1585 阅读 · 5 评论 -
Python获取某一进程的CPU利用率的计算(PyCharm及Linux (Ubuntu)运行)
无论在哪种操作系统下,通常情况下都可以通过任务管理器、活动监视器或命令行来查看运行的进程及其对应的进程ID。根据你使用的操作系统和喜好选择适合你的方法即可轻松查看进程ID。有些Linux发行版提供了系统监控工具,如`System Monitor`,通过这类图形界面工具也可以查看进程及其PID。在不同的操作系统中,查看进程ID的方法可能会有所不同。在“详细信息”选项卡中,可以查看各个进程的PID(Process ID)。在“CPU”或“进程”选项卡中,你可以看到各个进程的PID。原创 2024-02-26 22:31:23 · 672 阅读 · 1 评论 -
pycharm在setting中搜索不到安装包
是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。所有版本的Anaconda, Miniconda和 Anaconda存储库均包含conda软件包和环境管理器。conda相当于创建一个工具箱,根据实际项目的复杂程度,根据需要去创建环境,测试模型很方便。这里我认为是conda环境配置与pip命令冲突的问题,pip安装包的路径与anaconda3存在两个独立的路径,没有联系。原创 2024-02-25 16:29:02 · 1996 阅读 · 3 评论