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

香橙派 AIpro综合体验及AI样例运行

香橙派 AIpro综合体验及AI样例运行

环境:
香橙派版本: AIpro(8TOPS@INT8)
OS : Ubuntu 22.04.3 LTS(GNU/Linux 5.10.0+ aarch64) (2024-03-18)
远程服务端1:OpenSSH 8.9p1 
远程服务端2:TightVNC Server 1.3.10
远程客户端:MobaXterm 24.1
CANN:7.0.0
默认账号:HwHiAiUser
默认密码:Mind@123

文章目录

  • 香橙派 AIpro综合体验及AI样例运行
    • 1. 开发板简介
      • 1.1 简介
      • 1.2 主要参数
    • 2. 系统烧录
      • 2.1 下载官方镜像和烧录工具
      • 2.2 烧录
    • 3. 硬件接线和启动系统
      • 3.1 硬件接线
      • 3.2 启动开关配置
    • 4. 局域网远程连接
      • 4.1 有线网络连接并获取用于远程连接的IP地址
        • 4.1.1 有线网口连接
        • 4.1.2 串口登录查询IP地址(适应无显示器,无法登录路由器)
        • 4.1.3 HDMI0接口连接显示器查询IP地址
        • 4.1.4 路由器查询IP地址
      • 4.2 通过MobaXterm的VNC远程连接(图形化界面,操作方便)
      • 4.3 通过MobaXterm的SSH远程连接(文字界面,上传下载方便)
    • 5. 广域网远程连接
      • 5.1 zerotier【推荐】
      • 5.2 花生壳
    • 6. NPU AI体验
      • 6.1 查看NPU信息
      • 6.2 运行图片分类(ResNet50)推理程序
      • 6.3 从零转换模型、编译和运行图片分类(ResNet50)推理程序
      • 6.4 使用jupyter lab在web中运行AI应用
      • 6.5 昇腾AI在线资料
    • 7. 总结

1. 开发板简介

1.1 简介

香橙派 AIpro开发板采用昇腾AI处理器(4核64位ARM处理器+AI处理器),提供8TOPS@INT8 AI算力,内存提供8GB/16GB。

香橙派 AIpro提供了丰富的接口,包括双4K HDMI输出、Type-C电源接口、GPIO接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等,预留电池接口。

香橙派 AIpro支持Ubuntu、OpenEuler操作系统,可以实现图像、视频等多种数据分析与推理计算。

1.2 主要参数

名称参数
CPU4核64位Arm处理器
NPU华为昇腾310B4处理器
AI算力8TOPS@INT8, 4TFLOPS@FP16
内存8GB 或 16GB
存储TF卡, eMMC, SSD
以太网10/100/1000Mbps
Wi-Fi+蓝牙2.4G和5G双频WIFI,蓝牙4.2
操作系统Ubuntu 22.04 和 OpenEuler 22.03
待机功耗9w

2. 系统烧录

2.1 下载官方镜像和烧录工具

OrangePi AIpro官方资料地址:

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

ubuntu官方镜像:opiaipro_ubuntu22.04_desktop_aarch64_20240318.img.xz
注意:desktop镜像预装Linux桌面、CANN、AI 示例代码等,minimal镜像不包括上述内容。

烧录工具:balenaEtcher

用户手册:OrangePi_AI_Pro_昇腾_用户手册_v0.3.1.pdf
在这里插入图片描述

2.2 烧录

香橙派 AIpro支持TF卡、eMMC 和 SSD 启动。

其中,TF卡方式操作简单,烧录方式详见手册用户手册中的《2.4 烧写 Linux 镜像到 TF 卡中的方法》。

3. 硬件接线和启动系统

3.1 硬件接线

电源TYPE-C:位于板正面左下角位置,板上刻有PWR IN)
HDMI输出:位于板正面下方中间位置,板上刻有HDMI0,目前只有HDMI0支持输出(HDMI1后续系统升级后会支持)

在这里插入图片描述
在这里插入图片描述

3.2 启动开关配置

开发板支持从TF卡、eMMC 和 SSD启动。
具体的启动方式由开发板背面的BOOT1 和 BOOT2拨码开关来控制(板背面刻有拔码规则)。

BOOT1BOOT2启动方式
TF卡
eMMC
SSD
预留

在这里插入图片描述

4. 局域网远程连接

4.1 有线网络连接并获取用于远程连接的IP地址

4.1.1 有线网口连接

开发板的网口位于正面右下角的位置,通过有线连接到路由器的LAN口,路由器会自动分配IP给香橙派。

4.1.2 串口登录查询IP地址(适应无显示器,无法登录路由器)

开发板正面电源附近标有UART的串口,通过Micro USB接口的数据线连接UART口和电脑的USB口。

通过MobaXterm的Serial进行串口连接

【Session】-【Serial】-【Serial port: USB-Enhanced-SERIAL CH343 (COMxx)】-【Speed: 115200】-【输入账号:HwHiAiUser】-【输入密码:Mind@123】

在这里插入图片描述
在这里插入图片描述

注意:
如果Serial port选项中没有USB-Enhanced-SERIAL CH343 (COMxx),需要先安装串口驱动。
开发板使用的CH343芯片,驱动下载地址:https://www.wch.cn/downloads/CH343SER_EXE.html

4.1.3 HDMI0接口连接显示器查询IP地址

HDMI0接口连接显示器,通过键盘在终端中输入ifconfig命令查询ip地址,其中eth0表示有线网口。

$ ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.15  netmask 255.255.255.0  broadcast 192.168.2.255
4.1.4 路由器查询IP地址

登录路由器管理页面查询香橙派的IP地址,如192.168.2.15
在这里插入图片描述

4.2 通过MobaXterm的VNC远程连接(图形化界面,操作方便)

官方系统的VNC Server是默认安装和开机自启动的,端口为5901。

可以直接使用MobaXterm的VNC远程连接

【Session】-【VNC】-【IP: 192.168.2.15】-【Port:5901】-【输入密码:Mind@123】

官方默认的VNCServer配置使用的是root用户,可以通过以下操作更换为HwHiAiUser用户。

  • 切换到HwHiAiUser用户
su HwHiAiUser
  • 停止vncserver
$ vncserver -kill :1
  • 编辑vncserver服务配置
$ sudo vim /etc/systemd/system/vncserver@.service

将User由root修改为HwHiAiUser

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target[Service]
Type=forking
User=HwHiAiUser
PAMName=login
PIDFile=/home/%u/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
ExecStop=/usr/bin/vncserver -kill :%i[Install]
WantedBy=multi-user.target

设置vnc密码

$ vncserver :1

注意:这里启动vncserver一方面是为了设置密码(单纯设置密码可以执行vncpasswd),一方面是为了生成xstartup文件

修改vnc启动文件xstartup设置xface启动。

$ vim ~/.vnc/xstartup
#!/bin/shstartxfce4 &

注意:如果不修改xstartup启动startxfce4桌面,会出现灰屏问题

启动vncserver服务 或 重启系统

$ sudo systemctl daemon-reload
$ sudo systemctl start vncserver@1

$ sudo reboot

在这里插入图片描述

4.3 通过MobaXterm的SSH远程连接(文字界面,上传下载方便)

官方系统的sshd是默认安装和开机自启动的,端口为22。

可以直接使用MobaXterm的SSH远程连接

【Session】-【SSH】-【Remote host: 192.168.2.15】-【Specify username: HwHiAiUser 】-【Port:22】-【输入密码:Mind@123】

SSH中启动xfce桌面

$ xfce4-session

在这里插入图片描述

5. 广域网远程连接

如果有公网IP,可以直接使用公网访问。
没有公网IP的话,可以使用内网穿透工具进行异地访问,访问方式可以为SSH VNC等。
内网穿透工具可以使用zerotier、花生壳等。

5.1 zerotier【推荐】

安装

$ sudo snap install zerotier
$ sudo zerotier status
$ sudo zerotier join <nwid>

其中,需要加入的网络id,可以在https://my.zerotier.com中新建并使用。
在这里插入图片描述
查看香橙派zerotier网络,出现IP地址表示成功。
出现ACCESS_DENIED,可能是加入的网络没有权限。

$ sudo zerotier listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks xxx xxx xx:xx:xx:xx:xx:xx OK PRIVATE ztkxxx 192.168.192.15/24

5.2 花生壳

花生壳的方式有端口和流量限制,这里不再详述具体过程。

wget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb
$ sudo dpkg --install phddns_5.1.0_rapi_aarch64.deb

6. NPU AI体验

香橙派 AIpro AI特性是重中之重的部分,开发板的NPU是华为昇腾310B4,NUP算力为8TOPS@INT8,可以用于AI算法验证、数据分析和推理等。

6.1 查看NPU信息

$ npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.0                                   Version: 23.0.0                                       |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310B4                 | Alarm           | 0.0          59                15    / 15            |
| 0       0                     | NA              | 0            2371 / 7545                             |
+===============================+=================+======================================================+

每隔1秒刷新NPU信息

watch -n 1 npu-smi info

6.2 运行图片分类(ResNet50)推理程序

  • 程序说明

基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片Top5置信度的分类ID、分类名称。

  • 源码编译【可忽略】

官方包中本程序已完成编译、模型转换和数据集等操作,可以直接运行。

$ su root
# cd /opt/opi_test/ResnetPicture/scripts
# bash sample_build.sh

注意:这里切换到root是因为/opt目录需要root权限。

  • 运行程序
$ su root
# cd /opt/opi_test/ResnetPicture/scripts
# bash sample_run.sh
  • 运行结果
# bash sample_run.sh
[INFO] The sample starts to run
[INFO] InitACLResource success.
[INFO] Init dvpp resource success.
[INFO] Load model ../model/resnet50.om success
[INFO] top 1: index[162] value[0.905956] class[beagle]
[INFO] top 2: index[161] value[0.092549] class[bassetbasset hound]
[INFO] top 3: index[166] value[0.000758] class[Walker houndWalker foxhound]
[INFO] top 4: index[167] value[0.000559] class[English foxhound]
[INFO] top 5: index[163] value[0.000076] class[bloodhound sleuthhound]
[INFO] Unload model ../model/resnet50.om success

可以看到置信度0.905956beagle
在这里插入图片描述

6.3 从零转换模型、编译和运行图片分类(ResNet50)推理程序

ResnetPicture图片分类推理程序的源码在EdgeAndRobotics项目中,git地址如下:

$ git clone https://gitee.com/ascend/EdgeAndRobotics.git

ResnetPicture图片分类推理程序位于Samples/ResnetPicture

$ cd EdgeAndRobotics/Samples/ResnetPicture

下面开始转换模型、编译和运行图片分类(ResNet50)推理程序:

  • ResNet50模型(.onnx)转换为昇腾AI模型(.om)

配置参数减少atc模型转换使用的进程数,减小内存占用。可防止出现进程被杀问题 /usr/local/Ascend/ascend-toolkit/latest/bin/atc: line 17: 30884 Killed

export TE_PARALLEL_COMPILER=1
export MAX_COMPILE_CORE_NUMBER=1

转换om模型

cd ResnetPicture/model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50_DVPP/aipp.cfg
atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224"  --soc_version=Ascend310B4 --insert_op_conf=aipp.cfg

模型转换CPU占用26%,内存3.2GB(完成后降到1.2GB),耗时约3分钟。

atc命令中参数含义如下,详细参数见 《ATC模型转换指南》。

--model:ResNet-50网络的模型文件的路径
--framework:原始框架类型。5表示ONNX
--output:resnet50.om模型文件的路径
--input_shape:模型输入数据的shape
--soc_version:昇腾AI处理器的版本
  • 下载测试图片

默认图片是狗的图片,这里我们换成猫的图片(为了不修改代码,我们下载时候还是使用代码中图片名称dog1_1024_683.jpg)。

cd ResnetPicture/data
wget https://cat-world.com/wp-content/uploads/2017/06/brown-tabby-cat-scaled-e1617688562612.jpg -O dog1_1024_683.jpg
  • 源码编译
cd ResnetPicture/scripts 
bash sample_build.sh
  • 运行
cd ResnetPicture/scripts 
bash sample_run.sh
  • 结果
$ bash sample_run.sh
[INFO] The sample starts to run
[INFO] InitACLResource success.
[INFO] Init dvpp resource success.
[INFO] Load model ../model/resnet50.om success
[INFO] top 1: index[281] value[0.797077] class[tabbytabby cat]
[INFO] top 2: index[282] value[0.105374] class[tiger cat]
[INFO] top 3: index[285] value[0.085334] class[Egyptian cat]
[INFO] top 4: index[292] value[0.002015] class[tigerPanthera tigris]
[INFO] top 5: index[287] value[0.001632] class[lynxcatamount]
[INFO] Unload model ../model/resnet50.om success
[INFO] The program runs successfully

可以看到置信度0.797077tabbytabby cat
在这里插入图片描述

6.4 使用jupyter lab在web中运行AI应用

启用jupyter lab

$ cd ~/samples/notebooks
$ $ ./start_notebook.sh 0.0.0.0

输出的日志中可以看到一个网址,在浏览器中打开该网址

http://orangepiaipro:8888/lab?token=xxx

在官方镜像中有9个AI应用,我们以01-yolov5作为演示说明,其他都是类似操作。

运行01-yolov5 目标检测

  • jupyter lab左侧界面双击“01-yolov5”,进入目录
  • 双击打开 main.ipynb,右侧界面会显示 main.ipynb 文件中的内容
  • 单击**>>**按钮,在弹出的对话框中单击“Restart”开始运行
  • 经过一段时间,可以看到模型对视频的每一帧进行推理,并标注推理结果
    在这里插入图片描述
    在这里插入图片描述

6.5 昇腾AI在线资料

在线课程
https://www.hiascend.com/edu/courses

在线文档
https://www.hiascend.com/document

7. 总结

香橙派 AIpro开发板从支持8G或16GB大内存,支持TF,eMMC,SSD等多种存储方式,支持多种外设接口,可以满足Linux硬件开发,Linux软件开发等需求。
香橙派 AIpro开发板的AI性能也是十分惊艳,对于AI算法验证、数据分析和推理等开发者多提供了一个选项,这也是国产AI开发板迈出的一大步。
香橙派 AIpro开发板打通了自外设(Iot数据采集),到Linux应用(Iot数据处理),再到AI推理(Iot数据分析及推理)的环节,实现了AIoT的闭环,实现了真正意义上的万物互联。

相关文章:

香橙派 AIpro综合体验及AI样例运行

香橙派 AIpro综合体验及AI样例运行 环境&#xff1a; 香橙派版本&#xff1a; AIpro(8TOPSINT8) OS : Ubuntu 22.04.3 LTS(GNU/Linux 5.10.0 aarch64) (2024-03-18) 远程服务端1&#xff1a;OpenSSH 8.9p1 远程服务端2&#xff1a;TightVNC Server 1.3.10 远程客户端&#xf…...

通过域名接口申请免费的ssl多域名证书

来此加密已顺利接入阿里云的域名接口&#xff0c;用户只需一键调用&#xff0c;便可轻松完成域名验证&#xff0c;从而更高效地申请证书。接下来&#xff0c;让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书&#xff0c;泛域名证书。 首先&a…...

【JAVA WEB实用与优化技巧】如何自己封装一个自定义UI的Swagger组件,包含Swagger如何处理JWT无状态鉴权自动TOKEN获取

目录 一、Swagger 简介1. 什么是 Swagger&#xff1f;2. 如何使用 Swagger3. Springboot 中swagger的使用示例1. maven 引入安装2. java配置 二、Swagger UI存在的缺点1.不够方便直观2.请求的参数没有缓存3.不够美观4.如果是JWT 无状态登录&#xff0c;Swagger使用起来就没有那…...

理解大语言模型(二)——从零开始实现GPT-2

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch11_llm/char_gpt.ipynb1 本文将讨论如何利用PyTorch从零开始搭建G…...

SSH远程登录时常见问题解决

SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 问题解决——SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 翻译过来就是 警告&#xff1a;远程主机标识已更改&#xff01; 此报错是由于远程的…...

工业级3D开发引擎HOOPS:创新与效率的融合!

在当今这个技术日新月异的时代&#xff0c;3D技术已成为推动各行各业发展的重要力量。从工程设计到游戏开发&#xff0c;从虚拟现实到增强现实&#xff0c;3D技术的应用无处不在&#xff0c;它极大地丰富了我们的生活和工作。而在这样的背景下&#xff0c;HOOPS作为一个强大的3…...

IDEA创建Spring Boot项目

1 打开新建项目界面 如图1&#xff0c;打开IDEA&#xff0c;点击菜单栏的File->New->Project&#xff0c;打开新建项目界面。 图1 新建项目 2 填写项目信息 在新建项目界面点击左侧工具栏的Spring Initializr选项&#xff0c;进行Spring Boot项目信息的填写&#xff…...

mysql实战——xtrabackup全量备份/增量备份及恢复

一、测试前准备 mysql数据库 端口3306数据文件目录 /data/mysql/3306/data 安装目录/usr/lcoal/mysql配置文件/etc/my.cnf 创建数据库 testXtra 创建备份目录 备份目录/data/backup/备份恢复数据文件目录/data/mysql/3307/data备份恢复配置文件/etc/my_3307.cnf 二、开始…...

探索演进:了解IPv4和IPv6之间的区别

探索演进&#xff1a;了解IPv4和IPv6之间的区别 在广阔的互联网领域中&#xff0c;设备之间的通信依赖于一组独特的协议来促进连接。前景协议中&#xff0c;IPv4&#xff08;Internet 协议版本 4&#xff09;和 IPv6&#xff08;Internet 协议版本 6&#xff09;是数字基础设施…...

Python 实现Word (DOC或DOCX)与TXT文本格式互转

目录 引言 安装Python库 使用Python将Word转换为TXT文本格式 使用Python将TXT文本格式转换为Word 引言 Word文档和TXT文本文件是日常工作和生活中两种常见的文件格式&#xff0c;各有其特点和优势。Word文档能够保留丰富的格式设置&#xff0c;如字体、段落、表格、图片等…...

anaconda install on CentOS 7

参考&#xff1a; CentOS 7安装conda并配置环境 CentOS 7安装conda并配置环境_centos conda-CSDN博客...

git管理Codeup云效平台

HTTPS方式实现Git命令 1.进入项目路径&#xff0c;如 cd demo&#xff0c;与此同时&#xff0c;在Codeup平台创建一个空仓库repo&#xff0c;获取空仓库的https协议地址&#xff0c;例如 https://codeup.aliyun.com/xxxx/xxxx/xxx.git。 2.在demo项目下执行 git init命令初始化…...

Pycharm最新安装教程(最新更新时间2024年5月27日)

ps&#xff1a;本教程Pycharm安装&#xff0c;最新更新时间&#xff1a;2024年5月27日&#xff0c;公众号持续更新关注公众号防失联哦 Pycharm 再次更新了一个小版本。又回到老话题&#xff0c;2023.3.2这个版本是否还能安装&#xff0c;笔者也亲测了一下。还是沿用本站之前的…...

医院门诊互联电子病历|基于SSM+vue的医院门诊互联电子病历管理信息系统的设计与实现(源码+数据库+文档)

医院门诊互联电子病历管理信息系统 目录 基于SSM&#xff0b;vue的医院门诊互联电子病历管理信息系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2用户功能 5.2.3医生功能 四、数据库设计 五、核心代码…...

H3CNE-8-ARP工作原理

ARP&#xff1a;Address Resolution Protocol 通过目的IP地址请求对方的MAC地址的过程。 数据链路层在进行数据封装时&#xff0c;需要目的MAC地址。 arp -a 查看 arp -d * 清空 主机A发送一个数据包给主机C之前&#xff0c;首先要获取C的MAC地址 数据封装...

上交提出TrustGAIN,提出6G网络中可信AIGC新模式!

月16日至18日&#xff0c;2024全球6G技术大会在南京召开。会上&#xff0c;全球移动通信标准制定组织3GPP&#xff08;第三代合作伙伴计划&#xff09;的3位联席主席分享了3GPP6G标准时间表&#xff1a; 2024年9月&#xff0c;启动6G业务需求研究&#xff1b; 2025年6月&…...

内存泄漏案例分享2-Fragment的内存泄漏

案例2——hprof文件显示出Fragment内存泄漏 接下来我们来看fragment内存泄漏&#xff0c;老规矩查看fields和references&#xff0c;确保它符合内存泄漏的情形&#xff1b;我们点击jump to source查看泄漏的位置 Fragment#MZBannerView#内部类Runnbale /*** Banner 切换时间间…...

Selenium的百度高级搜索-自动化(未完成)

from selenium import webdriver from selenium.webdriver import ActionChainsdriver webdriver.Chrome() driver.implicitly_wait(10) driver.maximize_window() driver.get("https://www.baidu.com/")# 鼠标悬停(难点) setting driver.find_element_by_id("…...

cs与msf权限传递,以及mimikatz抓取win2012明文密码

在网络安全领域&#xff0c;权限提升和凭证盗窃是渗透测试和攻击中的关键环节。通过工具如CS和MSF&#xff0c;攻击者能够有效地在目标网络中进行权限传递。与此同时&#xff0c;Mimikatz作为一款强大的凭证盗窃工具&#xff0c;可以帮助攻击者从Windows Server 2012等系统中提…...

java欢迪迈手机商城设计与实现源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的欢迪迈手机商城设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 欢迪迈手机商城…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...