深度学习YOLOv4环境配置

news2024/11/18 13:56:04

软件安装

1、什么是CUDA

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题

CUDA下载地址为CUDA Toolkit Archive | NVIDIA Developer

版本号选择11.6与nvidia-smi.exe命令所显示对应

安装属性选择如下:

 点击运行cuda_11.6.1_511.65_windows.exe

运行后会先安装,后检查版本兼容性,无问题将会弹出许可协议。选择自定义安装,

 注意,在此之前应需安装Visual studio

 下一步:选择安装位置

 安装完成后会显示与vs的整合情况,之前安装过vs2022,显示如下:此时就能在vs2022中做GPU方面的开发了。

 此时组件安装成功。

检查安装是否成功

nvcc -V

将其设置成系统变量

2、什么是CUDNN

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

即GPU的加速库,使用nvidia-smi.exe命令查看自己计算机所支持的最高版本

 下载官网:cuDNN 历史版本 | NVIDIA 开发者

 注意下载的cudnn不能大于的CUDA的版本号,故要下载低于CUDA的版本,选择v11.0版本

 将cudnn解压,把这三个文件夹的文件分别拷贝到CUDA安装目录对应的(bin、include、lib)文件夹中即可。CUDA的lib目录有x64 、Win32、cmake三个文件夹,拷到其中的x64这个文件夹中

 在vs2022中创建CUDA项目,进行测试

 点击下一步,默认会创建一个数组相加的例子,直接运行,显示如下此时成功

 3、opencv安装

进入官网下载,版本为opencv3.4.14,运行安装

 配置环境变量

二、配置YOLOv4环境

 1、darknet 

Darknet是一个用C和CUDA编写的开源神经网络框架。它速度快,易于安装,并支持CPU和GPU计算。

下载路径:

GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )

解压后,文件结构如下:

\opencv\build\x64\vc15\bin的两个dll文件: opencv_ffmpeg3415_64.dll和opencv_ffmpeg3415_64.dll复制到D:\darknet\build\darknet\x64 
 

 2、vs2022项目配置

用vs2022打开E:\darknet\build\darknet下darknet.sln文件

 点击确定,使得重定向到vs2015

点击项目----->属性:

 3.修改包含目录和库目录

添加opencv3.4的包含目录和库目录(按照自己的opencv3.4的路径)
包含目录:

C:\Program Files (x86)\opencv\build\include
C:\Program Files (x86)\opencv\build\include\opencv 
C:\Program Files (x86)\opencv\build\include\opencv2

库目录:

C:\Program Files (x86)\opencv\build\x64\vc14\lib

 4.附加依赖项
添加附加依赖项(按照自己的opencv3.4的路径)

示范:

C:\Program Files (x86)\opencv\build\x64\vc14\lib\opencv_world3415d.lib

 需要添加的是opencv_world3415d.lib

 5、 修改darknet.vcxproj

 darknet\build\darknet下,右键,可以txt打开

ctrl+f搜索 11.1 全部改成 11.6(因为我们的CUDA版本是11.6)

6、拷贝CUDA文件

1.将NVIDIA CUDA的安装程序(.exe文件)数据解压到一个指定文件夹中(最好是新建一个文件夹CUDA,解压后会出现很多文件,这样方便查找)
2.将第一个路径下的文件直接拷贝到第二个路径下的文件夹中

7、生成darknet.exe文件

出现大量警告,并且不断提示getopt.c无法打开,尝试多种方法占时未解决。一直以为是外部资源未正常引入,查看darknet结构发现其文件下降getopt.h/c文件丢失!!!

解决办法:将配置环境统一改为vs2019,下载getopt.zip,解压后,直接将getopt.c  getopt.h添加到项目中即可!!!!

报错:
错误    LNK1104    无法打开文件“cudnn.lib”    darknet    F:\darknet-master\darknet-master\build\darknet\LINK    1    

查看项目属性依赖库地址,发现没有cudnn.lib这一项

将E:\cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive\cudnn-windows-86_64-8.4.0.27_cuda11.6-archive\lib复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64即可

 E:\cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive\cudnn-windows-86_64-8.4.0.27_cuda11.6-archive\lib:复制以下内容到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64即可

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64:

点击重新生成  成功!!!

将会在 F:\darknet-master\darknet-master\build\darknet\x64文件夹下生成darknet.exe,至此yolov4环境搭建成功

 三、测试安装

将权重文件赋值到F:\darknet-master\darknet-master\build\darknet\x64

 运行如下命令:(在F:\darknet-master\darknet-master\build\darknet\x64目录下)

darknet.exe detector test cfg\coco.data cfg\yolov4.cfg yolov4.weights

显示:无法找到 zlibwapi.dll. Please make sure it is in your library path!

zlibwapi.lib文件放到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\lib

zlibwapi.dll文件放到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin

 路径文件已经解决:但仍出现错误,显示如下:

无法打开 yolov4.weights文件

 缺少如下两个文件:

将其复制到 F:\darknet-master\darknet-master\build\darknet\x64目录下:

 再次运行尝试:

 测试照片成功!!!

测试视频:

darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights 
driving.mp4

 无法访问媒体摄像头,显示无法打开文件

cap_ffmpeg_impl.hpp打开,定位到966代码如下:

当err值小于0时,输出error opening file与文件名,并返回goto语句,err值由avformat_open_input与av_open_input_file函数决定

判断为opencv无法正常打开mp4文件引起。

<-------------------------------------------------------------------------------------------------------------------------->

单独测试opencv,在vs2019中以相同的方法配置一个项目,在此一定要注意:配置的环境为Debug x64!!!!!!!!!!!!!!而不是x86,否则将会出现以下错误:

再次运行出现以下错误:

LNK2019   
错误    LNK2019    无法解析的外部符号 "void __cdecl cv::imshow(class cv::String const &,class cv::debug_build_guard::_InputArray const &)" (

 将debug x64的属性表复制到release x64,再次运行,又可以运行了???

有点懵。。。

<--------------------------------------------------------------------------------------------------------------------------> 

视频问题的解决:我只能说是人傻了,在浏览F:\darknet-master\darknet-master\build\darknet\x64文件夹时候,突然记起来driving.mp4并没有指定文件路径。。。。。。(未对项目的结构和流程做分析的后果。。。)

将driving.mp4单独放一个文件夹下,使用下述命令:(不要包含中文路径,防止报错)

darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights "E:\yolov4_mp4\driving.mp4"

 result:ok

或将driving.mp4直接放在F:\darknet-master\darknet-master\build\darknet\x64下,使用下述命令:

darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights driving.mp4

但是不建议这样做,还是分开好

至此视频问题解决。(在网上东找办法西找办法,就是自己没有想办法。。。。解决一切的根源还得从自己入手。。。。)

四、标定数据集

这段写的有些乱,工具包一直下载不下来,一直在尝试

labelimg 是一个可视化的图像标定工具。它是用Python编写的,并将Qt用于其图形界面。批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。此外,它还支持YOLO格式。Faster R-CNN,YOLO,SSD等目标检测网络所需要的数据集,均需要借此工具标定图像中的目标。

1、安装labelimg与pyqt5  pyqt-tools

1、安装labelimg法一:

使用pip安装,开始菜单选择anaconda3-anaconda prompt进入命令行。

输入pip --version检查pip是否安装成功

在命令行窗口中依次输入下列代码,安装labelimg依赖的第三方库。

pip install PyQt5

pip install pyqt5-tools

pip install lxml

输入pip install PyQt5显示如下:pyQt5已经安装版本为12.11

目录为f:\anaconda3\lib\site-packages (from PyQt5)

 输入pip install pyqt5-tools

pip下载报错,应该是网站访问超时的原因,更换镜像

pip install xxxx -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com


阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

更换阿里云镜像还是不行。或使用如下命令(没有尝试):

pip install lightgbm -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

2、安装labelimg法二:

 直接在GitHub上下载labelimg:GitHub - HumanSignal/labelImg: LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source data labeling tool for images, text, hypertext, audio, video and time-series data.

 下载将zip解压,用Anaconda安装,以管理员身份运行Anaconda Prompt并到labelImg-master所解压目录下执行命令

命令如下:

conda install pyqt=5
pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py

 在运行时pyrcc5 -o libs/resources.py resources.qrc还出现了错误,仍要安装pip install pyqt5-tools

 两种安装labelimg的方法都需要pyqt5   pyqt5-tools

尝试了好多方法安装pip install pyqt5-tools的问题依旧没有解决。应该是python(11.1)与pip版本太高的原因。(在pyqt5-tools的安装(深度学习))中将此问题解决。

继续使用法二进行安装labelimg(因为我已解压labelimg原文件),在pyqt5与pyqt5-tools安装好后,以管理员身份运行Anaconda Prompt并到labelImg-master目录下执行命令pyrcc5 -o libs/resources.py resources.qrc与python labelImg.py,执行结果如下:

注意(此时已经完全安装了pyqt5与pyqt5-tools)!!

将会打开labelimg.py:

此时labelimg标注工具安装成功。

2、添加自定义类别

修改文件labelImg-master\data\predefined_classes.txt

原文件默认类别名如下:

修改为

ball
messi
trophy

此时将labelimg重启,否则类别文件有错误,即在 以管理员身份运行Anaconda Prompt并到labelImg-master目录下执行命令python labelImg.py即可

 3、使用labelImg进行图像标注

labelimg的标注模式分为VOC和YOLO两种,两种模式下生成的标注文件分别为.xml文件和.txt文件,因此在进行标注前需要优先选择好标注的模式。

标注教程【教程】标注工具Labelimg的安装与使用 - 知乎 (zhihu.com)

标注效果如下:

使用VOC标注模式将其保存为xml格式

xml文件内容如下:

对其xml中参数解释如下:其中hight,width为图片的最大高、宽,而Xmin,Ymin,Xmax,Ymax分别是所标定类别图形的坐标。

使用YOLO模式将其保存为.txt,内容如下:

2 0.478125 0.503704 0.214583 0.992593

 class_id为2,因为在其classes.txt文件下:trophy在第2行(count从0开始)

 与VOC的转换关系如下:

 也可以使用python对其两者进行转换

size为照片最大尺寸,box为标注框尺寸

box[0]:xmin box[1]: xmax box[2]: ymin box[3]: ymax

def convert(size, box) :
    dw = 1./size[0]
    dh = 1./size[1]
    x = (box[o] + box[1])/2.0
    y = (box[2] + box[3])/2.0
    w = box[1] - box[0]
    h = box[3] - box[2]
    X = x*dw
    w = w*dw
    y = y*dh
    h = h*dh
    return (x,y,w,h)

 4、组织自己的数据集

1、下载项目文件

(项目文件已提前下载好)从百度网盘下载到F:\darknet-master\darknet-master\build\darknet\x64目录下并解压

2、解压建立或自行建立数据集

使用PASCAL VOC数据集(还有 ImageNet 、 COCO后期介绍)的目录结构:

建立文件夹层次为 D:\darknet\build\darknet\x64\VOCdevkit\ VOC2007 VOC2007下面建立两个文件夹:

 VOC2007下面建立两个文件夹:Annotations和JPEGImages

JPEGImages放所有的训练和测试图片;

Annotations放所有的xml标记文件

 3、生成测试集与训练集文件

F:\darknet-master\darknet-master\build\darknet\x64执行python genfiles.py

python genfiles.py 

在VOCdevkit \ VOC2007目录下可以看到生成了文件夹labels ,同时在darknet下生成了两个文件 2007_train.txt和2007_test.txt。

在执行后(未抛出异常)并没有在VOCdevkit \ VOC2007文件夹下生成labels文件夹,打开genfiles.py查看,第87、88行如果没有指定目录,则在当前目录下生成VOCdevkit\\VOC2007\\labels,94行probo值为一个1到100的随机整数,并且将其打印显示。该变量不受其他变量控制,而在控制台既没有抛出异常,也没有打印显示,此时可判断为python执行环境有误。直接执行python,发现并没有显示出信息,断定python环境变量有误。

 环境变量添加如下:

F:\anaconda3\Scripts下有python依赖包的.exe文件, F:\anaconda3\下具有python.exe。

重新运行python genfiles.py :正常输出、文件夹产生

打开..\\darknet-master\build\darknet\x64下,2007_train.txt和2007_test.txt分别给出了训练图片文件和测试图片文件的列表,含有每个图片的路径 和文件名。

 即将源数据集分为两组,一组为测试集,一组为训练集。

另外,在VOCdevkit \ VOC2007\ImageSets\Main目录下生产了两个文件test.txt和train.txt,分别给出 了训练图片文件和测试图片文件的列表,但只含有每个图片的文件名(不含路径和扩展名)。

 labels下的文件是images文件夹下每一个图像的yolo格式的标注文件,这是由annotations的xml标注文 件转换来的。即通过 执行genfiles.py 文件将annotations的xml标注文 件转成为labels文件夹下的yolo格式标注文件。

最终训练只需要:2007_train.txt,2007_test.txt,labels下的标注文件和 VOCdevkit \VOC2007\JPEGImages下的图像文件。

即只需要训练集、测试集的路径与其yolo标注格式文件和原图像。

五、修改配置文件

1、新建data\voc.names文件

可以复制data\voc.names再根据自己情况的修改;可以重新命名如:data\voc-ball.names

 解释如下:

voc.names文件用来存放标签的名字

2、新建 data\voc.data文件 

可以复制data\voc.data再根据自己情况的修改;可以重新命名如:data\voc-ball.data

voc.data路径为F:\darknet-master\darknet-master\build\darknet\x64\data\voc.data

解释如下:

classes= 20 # 类别总数

train = /home/xxx/darknet/scripts/train.txt # 训练集样本txt文件

valid = /home/xxx/darknet/scripts/2007_test.txt # 验证集样本txt文件

names = data/voc.names # 类别名称

backup = backup # 权重保存路径

重要的三个配置文件:voc-ball.names(类别名称文件位于data/下)、voc-ball.data(位于x64/下)、cfg\yolov4-voc.cfg(..//x64/cfg)

3、新建cfg\yolov4-voc.cfg

可以复制cfg\yolov4-custom.cfg再根据自己情况的修改;可以重新命名cfg\yolov4-ball.cfg:

batch=16 subdivisions=8 (如果显存溢出改为16) max_batches = 4000 steps=3200, 3600

 

在cfg\yolov4-ball.cfg文件中,三个yolo层和各自前面的convolutional层的参数需要修改:

三个yolo层都要改:yolo层中的classes为类别数,每一个yolo层前的convolutional层中的filters =(类 别+5)* 3

例如:

yolo层 classes=1, convolutional层 filters=18

yolo层 classes=2, convolutional层 filters=21

yolo层 classes=4,convolutional层 filters=27 

 

 要注意是[yolo]层,而不是[net]层!!!!注意是三个yolo层!!!!!三个yolo层和各自前面的convolutional层的参数需要修改!!!!共查找到line 967、1055、1143为[yolo]层

总结:

六、训练模型(单目标 足球)

1、下载预训练权重文件

将预训练权重文件yolov4.conv.137放置在F:\darknet-master\darknet-master\build\darknet\x64目录下

出现的问题:

路径问题,老生常谈了,改好了,路径问题主要集中在voc-ball.data文件中

报错cuDNN hasn't found FWD algo for convolution: No error:

 subdivisions大小和batch大小需要的内存关系:

 将batch设置为32、subdivisions设置为32、width=416、height=416时,正常运行了一下。

改来改去都没有改好......... 

偶然!!!当我试着把width、height改为3xx时候,忘记其值必须为32的倍数,将原值352将其改为320,此时开始训练:训练时间27个小时左右,因为不知其训练时间由何参数决定,时间也许很长,但总比无法训练好。。。。

 

 修改cfg\yolov4-ball.cfg参数:训练时间将至6小时

batch=32、subdivisions=64减小了内存压力

width=320、height=320

max_batches = 6000最大迭代次数

 avg loss值为0.09左右,迭代次数2000左右时停止了训练(avg loss波动较小)map图如下:

大约训练了4个小时 

终端输出如下:

2、训练网络 

darknet.exe detector train data\voc-ball.data cfg\yolov4-ball.cfg 
yolov4.conv.137 -map

如需要显示训练过程的map变化,在命令末尾加-map

3、训练建议

 七、测试训练模型

在测试前将yolov4-ball.cfg中batch=32、subdivisions=64的值均改为1

测试训练模型:测试照片与视频均放在x64/testfiles/,每迭代1000次会保存一次权重文件,权重文件路径为x64/backup/,我们使用最终的权重文件测试即yolov4-ball_last.weights

 

单目标:

darknet.exe detector test data\voc-ball.data cfg\yolov4-ball-test.cfg backup\yolov4-ball_last.weights testfiles\ball-1.jpg

 多目标:

darknet.exe detector test data\voc-ball.data cfg\yolov4-ball-test.cfg backup\yolov4-ball_last.weights testfiles\ball-1.jpg

 测试视频:不知道为什么昨晚测试时平均帧率在89,而今天只有12

darknet.exe detector demo data\voc-ball.data cfg\yolov4-ball-test.cfg backup\yolov4-ball_last.weights testfiles\ball-test.mp4

八、性能统计 

统计map

统计 mAP@IoU=0.50:

darknet.exe detector map data\voc-ball.data cfg\yolov4-ball-test.cfg backup\yolov4-ball_last.weights

统计 mAP@IoU=0.75:

darknet.exe detector map data\voc-ball.data cfg\yolov4-ball-test.cfg backup\yolov4-ball_last.weights -iou_thresh 0.75

 

 性能统计后续再学习

Conclusion:

yolov4的环境配置、模型训练至此结束,下来先对其训练过程中对文件的操作流程进行学习,后学习cfg文件的参数含义、性能统计指标、后续再训练多目标,用爬虫采数据集,最后再从底层逻辑学起。

 时间越来越紧了,逐渐要和计算机渐行渐远,花了3晚上,搞出来个这,因缺乏基本的概念与认识,思维混乱,中间不断错,不断改,可谓举步维艰,最终也算是搞出来了。这次写完,下次学习就不知何时了。

秋风是清新的,但总夹杂着忧伤,一切都静悄悄的,转眼我也已大三,寄蜉蝣于天地,渺沧海之一粟,又试问:百川东到海,何时复西归?

                                                                                                                                ----2023/10/17

 

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

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

相关文章

Python数据挖掘项目实战——自动售货机销售数据可视化分析及销售额预测

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

凉鞋的 Unity 笔记 202. 变量概述与简介

202. 变量概述与简介 想要用好变量不是一件简单的事情&#xff0c;因为变量需要命名。 我们可以从两个角度看待一个变量&#xff0c;第一个角度是变量的功能&#xff0c;第二个是变量的可读性。 变量的功能其实非常简单&#xff0c;变量可以存储一个值&#xff0c;这个值是特…

Leetcode—137.只出现一次的数字II【中等】

2023每日刷题&#xff08;二&#xff09; Leetcode—137.只出现一次的数字II 没有满足空间复杂度的Map题解 class Solution { public:int singleNumber(vector<int>& nums) {unordered_map<int, int>count;for(int iter: nums) {count[iter];}int ans 0;for(…

混凝土板材及砌块生产线数字孪生可视化管理系统,实现智慧工厂车间智能化数字化管理

混凝土板材及砌块生产线数字孪生可视化管理系统&#xff0c;实现智慧工厂车间智能化数字化管理。随着国家智能制造的高质量快速发展&#xff0c;生产线数字孪生可视化管理系统已成为企业管理中不可或缺的一部分。巨蟹数科利用数字孪生平台开发建模和VR虚拟仿真技术&#xff0c;…

C4D 2024插件Arnold mac(C4D S2024阿诺德渲染器) 中文版介绍

Arnold for Cinema 4D mac是一款先进的蒙特卡洛光线追踪渲染器&#xff0c;专为动画长度和视觉效果的需求而打造。C4DtoA 4.6.6.1 使用Arnold 7.2.4.1&#xff0c;是一个错误修复版本。带来了对 Cinema 4D 2024 中 OCIO 颜色管理的支持、对 OSL 元数据支持的改进和一些错误修复…

CSS记录

1.标准的CSS的盒子模型&#xff1f;与低版本IE的盒子模型有什么不同的&#xff1f; 标准盒子模型box-sizing: border-box; 宽度内容的宽度&#xff08;content&#xff09; border padding margin 低版本IE盒子模型&#xff1a;宽度内容宽度&#xff08;contentborderpaddin…

pip install AE 报错 Preparing metadata (setup.py) ... error

环境配置&#xff1a; ubuntu 18. python 3.7 1. 问题描述&#xff1a; 运行图像编码算法时 GAACNN时&#xff0c;提示AE模块不存在。尝试安装时&#xff0c;报错如下&#xff1a; Pip install 时报错&#xff1a; 2. 解决办法 &#xff08;1&#xff09;文件修改 进入GA…

开源游戏引擎和模拟器的项目合集 | 开源专题 No.38

yuzu-emu/yuzu Stars: 26.2k License: GPL-3.0 yuzu是一款全球最受欢迎的开源Nintendo Switch模拟器&#xff0c;由Citra创建者编写。它采用C语言编写&#xff0c;并具有可移植性&#xff0c;在Windows和Linux上进行积极维护。该模拟器能够全速运行大多数商业游戏&#xff0c…

接口测试面试题整理​​​​​​​

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

【PXIE301-211】基于PXIE总线的16路并行LVDS数据采集、4路低速、2路隔离RS422数据处理平台

板卡概述 PXIE301-211A是一款基于PXIE总线架构的16路高速LVDS、4路低速LVDS采集、2路隔离RS422数据处理平台&#xff0c;该平台板卡采用Xilinx的高性能Kintex 7系列FPGA XC7K325T作为实时处理器&#xff0c;实现各个接口之间的互联。板载1组64位的DDR3 SDRAM用作数据缓存。板卡…

Datawhale-新能源时间序列赛事学习笔记(1)

1.赛题描述 在电动汽车充电站运营管理中&#xff0c;准确预测充电站的电量需求对于提高充电站运营服务水平和优化区域电网供给能力非常关键。本次赛题旨在建立站点充电量预测模型&#xff0c;根据充电站的相关信息和历史电量数据&#xff0c;准确预测未来某段时间内充电站的充电…

COCO数据集解析

介绍 官网&#xff1a;https://cocodataset.org/ 下载地址&#xff1a;https://cocodataset.org/#download COCO的全称是Common Objects in COntext&#xff0c;起源于微软于2014年出资标注党的Microsoft COCO数据&#xff0c;与ImageNet竞赛一样&#xff0c;是计算机视觉领域…

通讯协议学习之路:RS422协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 一、…

京东店铺公司名爬虫

内容仅供学习参考&#xff0c;如有侵权联系删除 先通过京东非自营的店铺名拿到的公司名&#xff0c;再通过公司名称去其他平台拿到联系方式&#xff08;代码省略&#xff09; from aioscrapy.spiders import Spider from aioscrapy.http import Request, FormRequest import dd…

【LeetCode75】第七十四题 每日温度

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个数组&#xff0c;表示每天的温度&#xff0c;要我们返回一个同样长度的数组&#xff0c;答案里装着当前气温的下一个更高气…

Linux用户管理与远程管理

一、用户管理 1、回顾用户组管理 groupadd &#xff1a;组添加 groupmod&#xff1a;组修改 groupdel&#xff1a;组删除 与用户组相关的文件/etc/group&#xff0c;一共拥有4列 itheima:x:1000: 1-组名称 2-组密码 3-组编号 4-组内用户信息&#xff08;这个组必须是这个…

阿里云优惠口令(2023更新)

2023年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

微信公众号粉丝迁移步骤?

公众号迁移有什么作用&#xff1f;只能变更主体吗&#xff1f;公众号迁移是将原公众号的粉丝、违规记录、文章和素材库&#xff08;可选&#xff09;迁移至一个新的公众号。整体流程较为复杂&#xff0c;需花费7-10天。通过公众号迁移功能可以将A账号的粉丝、文章素材&#xff…

ROS工具RViz可视化3D空间的一些错误的解决方案

1、引言 RViz是ROS的一个可视化3D空间的工具&#xff0c;它用于帮助用户在ROS系统中导航、查看和交互。RViz可以显示来自各种ROS节点的信息&#xff0c;例如传感器数据、机器人的状态和路径等。通过RViz&#xff0c;用户可以以图形方式查看和交互各种ROS数据&#xff0c;非常直…

连锁药店的自有品牌之争:老百姓大药房能否突围?

文丨新熔财经 作者丨楷楷 近年来&#xff0c;随着医保谈判药品的“双通道”&#xff08;即消费者可在有资质的药店买到新进医保的创新药&#xff09;&#xff0c;以及“门诊统筹”将药店纳入医保报销等医改政策出台&#xff0c;药企开始重新重视起零售药店渠道&#xff0c;很…