open_vins 安装(ubuntu18.04 opencv3.2.0)

news2024/11/15 15:44:12

openvins官网

Getting Started » Installation Guide (ROS1 and ROS2) | OpenVINS

Ubuntu 18.04 ROS 1 Melodic (uses OpenCV 3.2)

这里他指的是ros1 melodic,他们用的opencv3.2测试过。

open_vins 官方给的组合Ubuntu 18.04 ROS 1 Melodic (uses OpenCV 3.2)

Ubuntu 18.04   opencv 3.2.0   

我本机是3.4.8其实,别人的博客用的3.4.6,肯定是没限定,但是你得踩坑。

opencv默认没有aruco

SourceURL:file:///home/hqw/openvins.docx

openvins官网

Getting Started » Installation Guide (ROS1 and ROS2) | OpenVINS

Ubuntu 18.04 ROS 1 Melodic (uses OpenCV 3.2)

这里他指的是ros1 melodic,他们用的opencv3.2测试过。

open_vins 官方给的组合Ubuntu 18.04 ROS 1 Melodic (uses OpenCV 3.2)

Ubuntu 18.04   opencv 3.2.0   

我本机是3.4.8其实,别人的博客用的3.4.6,肯定是没限定,但是你得踩坑。

opencv默认没有aruco

opencv参考命令

git clone https://github.com/opencv/opencv/git clone https://github.com/opencv/opencv_contrib/mkdir opencv/build/cd opencv/build/cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..make -j8sudo make install

实际根据需求去git找的release,没用官方这个命令。

ubuntu18.04安装运行OpenVINS_openvins运行-CSDN博客

这个博客也是3.2

指定一个独立目录

$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D E

各种报错

可选错误——CUDA报错

CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else):

  A duplicate ELSE command was found inside an IF block.

Call Stack (most recent call first):

  CMakeLists.txt:495 (include)

这种问题很简单了,直接打开cmake/OpenCVCompilerOptions.cmake:21 ,找到21行,他就是多了一行多余的endif,直接删除掉就好了

# else() # message(STATUS "Looking for ccache - not found")

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

Please set them or make sure they are set and tested correctly in the CMake files:

CUDA_nppi_LIBRARY (ADVANCED)

因为本机安装过cuda

解决方法:

第一步:在  opencv-3.2.0/cmake  文件夹下找到  FindCUDA.cmake 文件,对其进行修改

cd /home/zqzy/software/opencv-3.2.0/cmake

/home/hqw/hqw_opt/opencv/cmake/FindCUDA.cmake

sudo gedit FindCUDA.cmake

1)找到行

find_cuda_helper_libs(nppi)

改为

  find_cuda_helper_libs(nppial)

  find_cuda_helper_libs(nppicc)

  find_cuda_helper_libs(nppicom)

  find_cuda_helper_libs(nppidei)

  find_cuda_helper_libs(nppif)

  find_cuda_helper_libs(nppig)

  find_cuda_helper_libs(nppim)

  find_cuda_helper_libs(nppist)

  find_cuda_helper_libs(nppisu)

  find_cuda_helper_libs(nppitc)

上边那一对就是,但是需要把下边这个替换了?(-- CUDA detected: 11.4

)其实这一步我的版本不必(下边是5.5),按需操作

2)找到行

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

改为

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

3)找到行

unset(CUDA_nppi_LIBRARY CACHE)

改为

unset(CUDA_nppial_LIBRARY CACHE)

unset(CUDA_nppicc_LIBRARY CACHE)

unset(CUDA_nppicom_LIBRARY CACHE)

unset(CUDA_nppidei_LIBRARY CACHE)

unset(CUDA_nppif_LIBRARY CACHE)

unset(CUDA_nppig_LIBRARY CACHE)

unset(CUDA_nppim_LIBRARY CACHE)

unset(CUDA_nppist_LIBRARY CACHE)

unset(CUDA_nppisu_LIBRARY CACHE)

unset(CUDA_nppitc_LIBRARY CACHE)

第二步:  在  opencv-3.2.0/cmake  文件夹下找到文件  OpenCVDetectCUDA.cmake,对其进行修改

cd /home/zqzy/software/opencv-3.2.0/cmake

sudo gedit OpenCVDetectCUDA.cmake

  修改以下几行

 ...

  set(__cuda_arch_ptx "")

  if(CUDA_GENERATION STREQUAL "Fermi")

    set(__cuda_arch_bin "2.0")

  elseif(CUDA_GENERATION STREQUAL "Kepler")

    set(__cuda_arch_bin "3.0 3.5 3.7")

  ...

改为

  ...

  set(__cuda_arch_ptx "")

  if(CUDA_GENERATION STREQUAL "Kepler")

    set(__cuda_arch_bin "3.0 3.5 3.7")

  elseif(CUDA_GENERATION STREQUAL "Maxwell")

    set(__cuda_arch_bin "5.0 5.2")

  ...

第三步: Cuda9或者Cuda10及以后的版本 中有一个单独的halffloat(cuda_fp16.h)头文件,也应该被包括在opencv的目录里

将头文件cuda_fp16.h添加至 opencv/modules/cudev/include/opencv2/cudev/common.hpp

cd /home/zqzy/software/opencv-3.2.0/modules/cudev/include/opencv2/cudev

sudo gedit common.hpp

即在common.hpp中添加

#include <cuda_fp16.h>

重新生成即可

最后都试了,不行,不知道本机环境什么情况,毕竟不是我新装的机器,docker、cuda、ros、opencv

不带cuda

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF   ..

undefined reference to `cblas_sgemm

缺库

sudo apt-get install libopenblas-dev

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas   ..

make -j8

sudo make install

$ ls /usr/local/opencv320/

bin  include  lib  share

Release 3.2.0 · opencv/opencv_contrib · GitHub

忘了带contrib和aruco,删除/usr/local/opencv320,重装

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0   ..

opencv编译不过

fatal error: linux/videodev.h: No such file or directory

sudo apt-get install libv4l-dev sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

fatal error: sys/videoio.h: No such file or directory

其实是/modules/没写进去

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules/   ..

-- Configuring done

-- Generating done

-- Build files have been written to: /home/hqw/hqw_opt/opencv-3.2.0/build

配置成功

编译失败

 fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: No such file or directory #include “LAPACKE_H_PATH-NOTFOUND/lapacke.h”

sudo apt-get install liblapacke-dev checkinstall

修改出现问题的文件,例如我的文件是opencv-3.2.0/build/opencv_lapack.h



将第二行中的#include"LAPACKE_H_PATH-NOTFOUND/lapacke.h" 修改为#include"lapacke.h"即可

报错

fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory

首先确保Eigen已经安装了,然后找到Eigen所在的路径。我的在/usr/include/eigen3这里

然后将报错的文件中的下面句子

include <unsupported/Eigen/MatrixFunctions>

改成

include </usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

// #include <unsupported/Eigen/MatrixFunctions>

#include </usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

编译成功

安装

看到openvins引用新编译的opencv库,新的是3.2.0,默认是3.4.8,虽然我没替换3.4.8,制定了/usr/local/opencv320/,但是执行了make install。。。。

被install以后被自动找到直接就编译成功了,如果找不到就改一下cmakelists.txt

opencv参考命令

git clone https://github.com/opencv/opencv/git clone https://github.com/opencv/opencv_contrib/mkdir opencv/build/cd opencv/build/cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..make -j8sudo make install

实际根据需求去git找的release,没用官方这个命令。

ubuntu18.04安装运行OpenVINS_openvins运行-CSDN博客

这个博客也是3.2

指定一个独立目录

$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D E

各种报错

CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else):

  A duplicate ELSE command was found inside an IF block.

Call Stack (most recent call first):

  CMakeLists.txt:495 (include)

这种问题很简单了,直接打开cmake/OpenCVCompilerOptions.cmake:21 ,找到21行,他就是多了一行多余的endif,直接删除掉就好了

# else() # message(STATUS "Looking for ccache - not found")

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

Please set them or make sure they are set and tested correctly in the CMake files:

CUDA_nppi_LIBRARY (ADVANCED)

因为本机安装过cuda

解决方法:

第一步:在  opencv-3.2.0/cmake  文件夹下找到  FindCUDA.cmake 文件,对其进行修改

cd /home/zqzy/software/opencv-3.2.0/cmake

/home/hqw/hqw_opt/opencv/cmake/FindCUDA.cmake

sudo gedit FindCUDA.cmake

1)找到行

find_cuda_helper_libs(nppi)

改为

  find_cuda_helper_libs(nppial)

  find_cuda_helper_libs(nppicc)

  find_cuda_helper_libs(nppicom)

  find_cuda_helper_libs(nppidei)

  find_cuda_helper_libs(nppif)

  find_cuda_helper_libs(nppig)

  find_cuda_helper_libs(nppim)

  find_cuda_helper_libs(nppist)

  find_cuda_helper_libs(nppisu)

  find_cuda_helper_libs(nppitc)

上边那一对就是,但是需要把下边这个替换了?(-- CUDA detected: 11.4

)其实这一步我的版本不必(下边是5.5),按需操作

2)找到行

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

改为

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

3)找到行

unset(CUDA_nppi_LIBRARY CACHE)

改为

unset(CUDA_nppial_LIBRARY CACHE)

unset(CUDA_nppicc_LIBRARY CACHE)

unset(CUDA_nppicom_LIBRARY CACHE)

unset(CUDA_nppidei_LIBRARY CACHE)

unset(CUDA_nppif_LIBRARY CACHE)

unset(CUDA_nppig_LIBRARY CACHE)

unset(CUDA_nppim_LIBRARY CACHE)

unset(CUDA_nppist_LIBRARY CACHE)

unset(CUDA_nppisu_LIBRARY CACHE)

unset(CUDA_nppitc_LIBRARY CACHE)

第二步:  在  opencv-3.2.0/cmake  文件夹下找到文件  OpenCVDetectCUDA.cmake,对其进行修改

cd /home/zqzy/software/opencv-3.2.0/cmake

sudo gedit OpenCVDetectCUDA.cmake

  修改以下几行

 ...

  set(__cuda_arch_ptx "")

  if(CUDA_GENERATION STREQUAL "Fermi")

    set(__cuda_arch_bin "2.0")

  elseif(CUDA_GENERATION STREQUAL "Kepler")

    set(__cuda_arch_bin "3.0 3.5 3.7")

  ...

改为

  ...

  set(__cuda_arch_ptx "")

  if(CUDA_GENERATION STREQUAL "Kepler")

    set(__cuda_arch_bin "3.0 3.5 3.7")

  elseif(CUDA_GENERATION STREQUAL "Maxwell")

    set(__cuda_arch_bin "5.0 5.2")

  ...

第三步: Cuda9或者Cuda10及以后的版本 中有一个单独的halffloat(cuda_fp16.h)头文件,也应该被包括在opencv的目录里

将头文件cuda_fp16.h添加至 opencv/modules/cudev/include/opencv2/cudev/common.hpp

cd /home/zqzy/software/opencv-3.2.0/modules/cudev/include/opencv2/cudev

sudo gedit common.hpp

即在common.hpp中添加

#include <cuda_fp16.h>

重新生成即可

最后都试了,不行,不知道本机环境什么情况,毕竟不是我新装的机器,docker、cuda、ros、opencv

不带cuda

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF   ..

undefined reference to `cblas_sgemm

缺库

sudo apt-get install libopenblas-dev

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas   ..

make -j8

sudo make install

$ ls /usr/local/opencv320/

bin  include  lib  share

Release 3.2.0 · opencv/opencv_contrib · GitHub

忘了带contrib和aruco,删除/usr/local/opencv320,重装

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0   ..

opencv编译不过

fatal error: linux/videodev.h: No such file or directory

sudo apt-get install libv4l-dev sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

fatal error: sys/videoio.h: No such file or directory

其实是/modules/没写进去

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320  -DWITH_CUDA=OFF  -DCMAKE_EXE_LINKER_FLAGS=-lcblas -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules/   ..

-- Configuring done

-- Generating done

-- Build files have been written to: /home/hqw/hqw_opt/opencv-3.2.0/build

配置成功

编译失败

 fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: No such file or directory #include “LAPACKE_H_PATH-NOTFOUND/lapacke.h”

sudo apt-get install liblapacke-dev checkinstall

修改出现问题的文件,例如我的文件是opencv-3.2.0/build/opencv_lapack.h



将第二行中的#include"LAPACKE_H_PATH-NOTFOUND/lapacke.h" 修改为#include"lapacke.h"即可

报错

fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory

首先确保Eigen已经安装了,然后找到Eigen所在的路径。我的在/usr/include/eigen3这里

然后将报错的文件中的下面句子

include <unsupported/Eigen/MatrixFunctions>

改成

include </usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

// #include <unsupported/Eigen/MatrixFunctions>

#include </usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

安装

openvins引用新编译的opencv库

被install以后被自动找到,如果找不到就改一下cmakelists.txt

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

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

相关文章

k8s二进制部署2

部署 Worker Node 组件 //在所有 node 节点上操作 #创建kubernetes工作目录 mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs} #上传 node.zip 到 /opt 目录中&#xff0c;解压 node.zip 压缩包&#xff0c;获得kubelet.sh、proxy.sh cd /opt/ unzip node.zip chmod x kubelet.…

视觉学习笔记13——既是模型,又是模型中转站的onnx

系列文章目录 入门级深度学习环境搭建 文章目录 系列文章目录前言一、ONNX是什么&#xff1f;二、环境安装1、在 Anaconda 环境中安装 onnx2、在 Anaconda 环境中卸载 onnx3、anaconda 安装onnxruntime 未完待续。。。 前言 假设一个场景&#xff1a;现在某组织因为主要开发用…

Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷

Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷 一&#xff1a;fdisk磁盘分区并挂载1.查看磁盘分区信息2.分区3.强制系统重新读取分区(避免重启系统)4.格式化分区5.创建挂载目录6.设置开机自动挂载&#xff1a;7.验证并自动挂载(执行了该命令不需要重启系统)8.查看挂载007.异常情况处…

Feature Prediction Diffusion Model for Video Anomaly Detection 论文阅读

Feature Prediction Diffusion Model for Video Anomaly Detection论文阅读 Abstract1. Introduction2. Related work3. Method3.1. Problem Formulation3.2. Feature prediction diffusion module 3.3. Feature refinement diffusion module4. Experiments and discussions4.1…

Flink1.17实战教程(第六篇:容错机制)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…

如何在无公网IP环境使用Windows远程桌面Ubuntu

文章目录 一、 同个局域网内远程桌面Ubuntu二、使用Windows远程桌面连接三、公网环境系统远程桌面Ubuntu1. 注册cpolar账号并安装2. 创建隧道&#xff0c;映射3389端口3. Windows远程桌面Ubuntu 四、 配置固定公网地址远程Ubuntu1. 保留固定TCP地址2. 配置固定的TCP地址3. 使用…

使用Visual Studio 2022 winform项目打包成安装程序.exe

winform项目打包 1.安装扩展插件 Microsoft Visual Studio Installer Projects 20222.在解决方案上新建一个setup project 项目3.新建成功如下图&#xff0c;之后添加你的winform程序生成之后的debug下的文件4.在Application Folder上点击右键->Add->项目输出->主输出…

从实际业务问题出发去分析Eureka-Server端源码

文章目录 前言1.EnableEurekaServer2.初始化缓存3.jersey应用程序构建3.1注册jeseryFilter3.2构建JerseyApplication 4.处理注册请求5.registry&#xff08;&#xff09; 前言 前段时间遇到了一个业务问题就是k8s滚动发布Eureka微服务的过程中接口会有很多告警&#xff0c;当时…

黄向墨创立的玉湖冷链参加首届中欧班列(成渝)全球合作伙伴大会签订

玉湖集团是总部设于香港的有二十多年历史的跨国实业投资集团,由祖籍广东的香港企业家、著名爱国侨领黄向墨先生创立。黄向墨先生现任中国和平统一促进会常务理事、中华海外联谊会常务理事、香港选委会委员及香港全国人大代表选举会议成员。 12月7日,玉湖冷链参加首届中欧班列(…

鸿蒙Harmony(八)ArkUI--状态管理器之@State

状态管理 在声明式UI中&#xff0c;是以状态驱动视图更新 状态&#xff1a;指驱动视图更新的数据&#xff08;被装饰器标记的变量&#xff09; StateProp 和 LinkProvide和 Consume State State装饰器标记的变量必须初始化&#xff0c;不能为空值State支持Object 、class、…

Linux操作系统(Crontab计划任务+NTP时间同步服务器)

如何修改linux系统时间 与时间相关的命令&#xff0c;查看当前的时间 运行 date 即可 cal 查看当前月份的日历 运行 timedatectl 查看时间详细参数 &#xff08; NTP&#xff1a; network time protocol 网络时间协议 &#xff09; &#xff08; local time : 本地时间 &#x…

WeNet语音识别分词制作词云图

在线体验 ,点击识别语音需要等待一会&#xff0c;文件太大缓存会报错 — 介绍 本篇博客将介绍如何使用 Streamlit、jieba、wenet 和其他 Python 库&#xff0c;结合语音识别&#xff08;WeNet&#xff09;和词云生成&#xff0c;构建一个功能丰富的应用程序。我们将深入了解代…

电路设计(8)——计时器的multism仿真

1.功能设计 这是一个计时电路&#xff0c;在秒脉冲的驱动下&#xff0c;计时器开始累加&#xff0c;6个数码管分别显示计时的 时&#xff1a;分&#xff1a;秒。 仿真图如下所示&#xff1a; 左边的运放构成了振荡电路&#xff0c;可以产生脉冲波。这个脉冲波给计时电路提供基准…

scikit-learn文档中的数据生成器

目录 1. make_classification: 2. make_regression: 3. make_blobs: 4. make_moons: 5.make_circles 6. make_sparse_coded_signal: 1. make_classification: 这是一个用于生成复杂二维数据的函数&#xff0c;通常用于可视化分类器的学习过程或者测试机器学习算法的性能…

<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制

目录 TCP的通信机制的核心特性 五、流量控制 1&#xff09;什么是“流量控制”&#xff1f; 2&#xff09;如何做到“流量控制”&#xff1f; 3&#xff09;“流量控制”的作用 六、拥塞控制 1&#xff09;什么是“拥塞控制”&#xff1f; 2&#xff09;如何做到“拥塞…

http——https实现指南

第一部分&#xff1a;HTTPS安全证书简介 什么是HTTPS安全证书&#xff1f; 在网络通信中&#xff0c;HTTPS安全证书是一种由可信任的证书颁发机构&#xff08;CA&#xff09;签发的数字证书&#xff0c;用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码&#xff0c;只是根据网上的一些文章总结一下&#xff0c;目前不需要细究&#xff0c;只需要知道大概就好&#xff0c;除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM&#xff08;Finite State Machine&#xff09;有限状态机2、FSA&#xff08;F…

【智慧门店】东胜物联蓝牙网关助力解决方案商,推动汽车后市场企业智能化升级

截至2023年9月底&#xff0c;我国汽车保有量达3.3亿辆&#xff0c;后市场前景广阔。 随着人工智能、5G、物联网等新技术的普及&#xff0c;汽车后市场企业希望向智能化迈进&#xff0c;借助新兴科技的力量提升汽车维修、车辆保养等服务质量&#xff0c;满足消费者日益增长的需…

python使用openpyxl操作excel

文章目录 前题读取已有excel创建一个excel工作簿对象创建excel工作簿中的工作表获取工作表第一种&#xff1a;.active 方法第二种&#xff1a;通过工作表名获取指定工作表​​​​​​第三种&#xff1a;.get_sheet_name() 修改工作表的名称数据操作写入数据按单元格写入通过指…

在人工智能和机器学习的影响下,代理服务器正在不断演变

代理服务器是充当客户端&#xff08;例如用户的智能手机&#xff09;和目标服务器&#xff08;例如网站或应用程序&#xff09;之间的网关的中介。在互联网的早期&#xff0c;代理服务器主要用于缓存网络内容。然而&#xff0c;随着互联网的扩展&#xff0c;他们的角色也随之扩…