OrangePi Kunpeng Pro 开箱测评之一步到喂

news2024/9/20 22:31:26

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。


以下内容来自 官方说明

  • OrangePi Kunpeng Pro采用4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。

  • OrangePi Kunpeng Pro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口等。

  • OrangePi Kunpeng Pro支持openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求,同时可以为各种应用场景提供更高效的算力,如云计算、大数据、分布式存储、高性能计算等。



接下来我将从外观、环境搭建、相关服务部署等多个方面进行介绍,下面就让我们进入正题:

一、开箱

1.1 外观展示

382d6a527877497f8bc3ef4cfb6fe9ad.jpg bbb418e83f9b43e9be6ff1f8c24a121e.jpg
8b2678ec5c184a3594d7d8015fdc4078.jpg b2e055849422423aa48d5f894a7a0a6e.jpg

整个板子尺寸107x68mm,重量82g,不考虑散热模块厚度的话,比一般手机略小。相关硬件接口如下所示:

6a3b7b09c1be4289ae21ef831937155b.png

1.2 性能/接口参数

官方参数

项目参数
CPU4核64位处理器+ AI处理器
GPU集成图形处理器
AI算力8TOPS算力
内存LPDDR4X:8GB/16GB(可选),速率:3200Mbps
存储• SPI FLASH:32MB
• SATA/NVME SSD(M.2接口2280)
• eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400
• TF插槽
Wi-Fi+蓝牙Wi-Fi 5双频2.4G和5G
BT4.2/BLE
以太网收发器10/100/1000Mbps以太网
显示• 2xHDMI2.0 Type-A TX 4K@60FPS
• 1x2 lane MIPI DSI via FPC connector
摄像头2x2-lane MIPI CSI camera interface,兼容树莓派摄像头
USB• USB 3.0 HOST x2
• USB Type-C 3.0 HOST x1
• Micro USB x1 串口打印功能
音频3.5mm耳机孔音频输入/输出
按键1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键
40PIN40PIN 功能扩展接口,支持以下接口类型:GPIO、UART、I2C、SPI、 I2S、PWM
风扇风扇接口x1
预留接口2PIN电池接口
电源Type-C PD 20V IN ,标准65W
支持的操作系统openEuler

1.3 上电开机

拿到板子第一步,当然是开机啦,那对于这个光秃秃的开发板,我们来看下要怎样正常开机。

1.3.1 拨码开关

开发板支持从 TF 卡、eMMC 和 SSD(支持 NVMe SSD 和 SATA SSD)启动。具体想从哪个设备启动是由开发板背面的两个拨码(BOOT1 和 BOOT2)开关来控制的。

4520b2efd168491b811131833f1d43d0.png
拨码开关

BOOT1 和 BOOT2 两个拨码开关都支持左右两种设置状态,所以总共有 4种设置状态,开发板目前只使用了其中的三种。不同的设置状态对应的启动设备如下表所示:

拨码开关 BOOT1拨码开关 BOOT2对应的启动设备
未使用
SATA SSD 和 NVMe SSD
eMMC
TF 卡
1.3.2 HDMI接口

一开始当然还是借助显示屏进行装机比较方便,开发板有两个 HDMI 接口(目前只有 HDMI0 支持显示 Linux 系统的桌面,HDMI1 显示 Linux 系统桌面的功能还需等软件更新),如果想显示 Linux 系统的桌面,可以将开发板的 HDMI0 接口连接到 HDMI 显示器。

31e7001c5029424fb56659f03b05ae3b.png
HDMI0接口位置

1.3.3 电源接口

有两个TypeC接口,右侧那个是电源接口,开发板上电开机后,需要等待一段时间,HDMI 显示器才会显示 Linux 系统的登录界面。关机键无开机功能,上电等待自动开机。

6af82e82bca64776a338a160b9869371.png
TypeC电源接口


bb716ed4193946c6a37942d44b347661.jpg
真实接线效果

上电后等待几秒钟,即可正常开机,默认初始账号 openEuler 密码 openEuler。默认 rootopenEuler 用户的密码都为 openEuler

72200753d58a4f4f8a270d9488142291.jpg 40b9fe7ad6e94051a1cc0a7318703330.jpg

二、使用说明

正常开机和接入显示设备后,我们就可以开始着手下一步的使用。

2.1 SSH连接

为了方便我们远程连接终端(不至于一直接着显示屏,毕竟众所周知,显示屏最贵的是占地面积)。
开发板默认开放SSH连接,需要先知道板子在内网的IP地址。

2.1.1 查看IP地址

网线连接模式下,(HDMI显示)桌面右上角点击可查看主菜单。点击有线展开有线设置。

0d37ca32b2ff450fa6d0a914a8a376be.jpg 6a4376b4abd84051af7f71dd31f23f43.jpg

网络有线设置的最右侧设置按钮,点击可查看IP地址。

fc9691989e864f1c9a4f6516729f95cc.jpg 3c535bd94f294f7d8e00bbd8cbb14556.jpg

2.1.2 使用SSH连接

这样我们就可以不用外接显示设备,使用任意SSH工具即可连接:账号 root 密码 openEuler

0256054415d5406ca64e830ed4a7fbb7.png 89400f97552b44328207f296f389c566.png

2.1.3 设置静态IP地址

默认分配的IP地址可能经常变动,不利于固定的使用SSH进行连接,这里需要设置静态 IP 地址。

8bdf9162d60342ec992b338d28743d71.jpg
设置静态IP,使用WIFI连接也需要进行相类似的操作进行配置即可。

d 如果使用WIFI,记得将有线网络关闭,并关闭自动连接,避免设置了相同的静态IP造成冲突导致无网络。

使用设置的IP进行连接,可以看到,IP地址已经修改成功。

549c3f99c576434b95ad63530ff43e2c.png
重新连接

2.1.4 修改Root账户密码

使用账号 root 密码 openEuler在SSH登陆,输入以下指令重设密码即可。

passwd root

2.2 安装Docker

Docker容器部署服务对于拓展功能来说还是相当方便的,所以接下来我们安装一下Docker

# 更新软件包索引
sudo yum makecache
# 安装Docker
sudo yum install docker -y
# 启动Docker服务
sudo systemctl start docker
# 设置Docker开机自启
sudo systemctl enable docker
# 验证Docker安装成功
sudo docker -v
# 下载docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改二进制文件的执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装是否成功
docker-compose --version

2.3 内网穿透 + SSH连接

2.3.1 内网穿透

参考 NPS内网穿透保姆级教程NPS内网穿透搭建(使用docker实现) 将SSH穿透到外网,以便于应对任意连接的WIFI

比如预先设置好连接手机热点,即可畅享在任何场合携带一个算力服务器

# 拉取镜像
docker pull ffdfgdfg/npc
# 创建挂载目录
mkdir -p /mnt/sdc/nps/conf
# 在NPS服务端创建客户端并展开可以查看到`客户端命令`,将命令中的server和key用来启动容器
docker run --restart=always -d --name=npc --net=host -v /mnt/sdc/nps/conf:/conf ffdfgdfg/npc -server=server-host:server-port -vkey=server-key -type=tcp
bdfcbdc47834484097c98b7ac3bdcbed.png
创建穿透隧道
2.3.2 SSH链接

即可使用外网的IP和端口进行SSH链接

4e8606b15b7e4f298c512d4b2ff6eac6.png
使用腾讯云OrcaTerm远程连接

通过右侧监控可以看到,这块OrangePi Kunpeng Pro开发板拥有4核8G的性能配置。

2.3.3 部署SSH连接工具

为了方便我们在任意有网设备上进行SSH连接,可以部署一个SSH连接工具sshwifty

# 拉取镜像
docker pull niruix/sshwifty:latest
# 创建挂载目录
mkdir -p /opt/sshwifty
# 生成秘钥 一路回车即可
openssl req -newkey rsa:4096 -nodes -keyout /opt/sshwifty/domain.key -x509 -days 90 -out /opt/sshwifty/domain.crt
# 启动容器
docker run --restart=always -d --name=sshwifty -p 5680:8182 -v /opt/sshwifty:/certs --env SSHWIFTY_DOCKER_TLSCERT="$(cat /opt/sshwifty/domain.crt)" --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat /opt/sshwifty/domain.key)" niruix/sshwifty:latest

再开穿透把5680开放到外部网络,方便使用(验证公网IP可访问,一样需要加https)

3a0c908602f64311bf9a3ad9214f8ae9.png 3fbedf8a188b489c9254c475f627ab62.png

2.4 远程桌面

远程桌面的连接形式由两种:使用Windows系统带有的远程连接进行链接,或者使用VNC,需要先使用显示器操作开放一下远程。

默认密码为openEuler

使用VNC需要先开放对应权限

f7829e51c5e84d07b97bf659e60e9aa3.png 65d9af01d72c4d4cab473532194d74f3.png

以上开放权限后,仍需在后续开启对应服务

2.4.1 XRDP + Windows远程连接

i 【异常】使用root账号登陆远程桌面会闪退

参考链接

# 引入下载源
wget https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
rpm -ivh epel-release-latest-8.noarch.rpm --nodeps
# 安装不上的时候试着删除yum remove epel-release后重新执行上面的下载安装
# 安装远程连接软件 xrdp
yum -y install xrdp
# sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
sed -i 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini
touch .xsession
echo xfce4-session > /root/.xsession
chmod +x /root/.xsession
systemctl restart xrdp && systemctl enable xrdp
# 删除前面引入的下载源配置文件
rm -rf /etc/yum.repos.d/epel*
9ca4ddbd36974021b760dafc75590361.png 27846bc7402e4f3aa934cffbf9610818.png
2.4.2 VNC
# 这两行指令好像没用上
yum install python3-pip
pip3 install websockify
# 启动VNC服务器(如果在前面  2.4 远程桌面 没有设置VNC,这一步可能要设置密码,默认应该是openEuler)
vncserver
# 终止多余的会话
vncserver -kill :2
# 查看VNC占用端口(59开头的)
netstat -tulpn | grep ":59"
>>> tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      19675/Xvnc
>>> tcp6       0      0 :::5901                 :::*                    LISTEN      19675/Xvnc
# 这个方法不行
# 将VNC服务器的端口映射到一个HTTP端口(例如:6080)
# websockify 5681 localhost:5901
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html

参考 Web方式交付VNC 安装 novnc 将VNC服务发布到WEB端

yum install git npm
git clone https://github.com/novnc/noVNC.git
cd ./noVNC/utils/
# 要将生成的self.pem文件放到noVNC/utils底下 一路回车
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# 切回主菜单
cd
# 切到项目地址
cd ./noVNC
# 安装依赖
npm install
# 切回主菜单
cd
# 测试启动项目,设置为localhost:5681的话只能通过穿透访问
./noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html
30060318ce96485ab924f741bb4ac721.png
通过HTTP协议直接连接VNC服务器
2.4.2.1 NoVnc设置开机自启动
  1. 创建文件夹存放日志

    mkdir -p /opt/vnc
    
  2. 设置环境变量

    vim ~/.bashrc
    

    写入

    export HOME=/root
    

    执行生效

    source ~/.bashrc
    
  3. 创建rc-local.service文件
    如果存在的话可以不用创建

    sudo vim /etc/systemd/system/rc-local.service
    

    写入

    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionPathExists=/etc/rc.local
    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99
    [Install]
    WantedBy=multi-user.target
    
  4. 写入rc.local文件

    vi /etc/rc.local
    # vi /etc/rc.d/rc.local
    

    加入启动指令

    # 环境变量不生效报:vncserver: The HOME environment variable is not set.
    # 直接在指令前指定环境变量
    export HOME=/root
    # 不在这里启动vncserver 否则会连接异常
    # nohup sudo /usr/bin/vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    保存后授权文件

    chmod +x /etc/rc.local
    chmod +x /etc/rc.d/rc.local # 授权
    
  5. 启用服务

    sudo systemctl enable rc-local
    
  6. 启动服务并检查状态

    sudo systemctl start rc-local.service
    sudo systemctl status rc-local.service
    
  7. 重启测试

    reboot
    
  8. 或者脚本启动
    构造脚本

    vi start_vnc.sh
    

    写入

    #!/bin/bash
    # nohup sudo vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    设置

    vi /etc/rc.local
    

    加入启动指令

    export HOME=/root
    /root/start_vnc.sh
    
2.4.2.2 vncserver开机自启

w 注意:如果不使用以下方法设置,而使用rc.local开机启动vncserver,可能会导致连接异常

1913680fc40e46d2b558d5e575a7a76a.png
连接异常
  1. 添加映射用户
    编辑文件/etc/tigervnc/vncserver.users
    例如设置用户root来启动VNC显示,则添加一行 :1=root

    vi /etc/tigervnc/vncserver.users
    

    d 此处添加的用户必须是已经存在的系统用户,否则会报错提示用户不存

    726e49ac3fa24fce9eb84bc081d99c57.png

  2. 拷贝示例服务文件
    根据步骤1,将示例文件命名为对应编号的配置文件。

    cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    
  3. 重新加载 systemd 配置

    systemctl daemon-reload
    
  4. 启动服务

    # 设置开机自启
    systemctl enable vncserver@:1.service
    # 启动服务
    systemctl start vncserver@:1.service
    # 验证服务
    systemctl status vncserver@:1.service
    # 检查服务版本
    vncserver -version
    
  5. 重启测试

    reboot
    
    b3f49410ff9948e5bea97e040cf2881f.png
    最终效果

三、用途探索

b77bbfa20303456a9ae6b08aabd539f2.png

可以看到,OrangePi Kunpeng Pro开发板预装了openEuler 22.03 (LTS-SP3)系统 以及GNOME 3.38.6可视化图形界面。实际可用内存7.4G,不具备独立显卡,使用llvmpipe (LLVM 12.0.1, 128 bits)进行图形渲染。

下面可以来看下,拥有这样一块便于携带、性能相对富裕的开发板,能够来做些什么呢:

3.1 私人网盘

# 拉取 NextCloud 镜像
sudo docker pull nextcloud
# 创建挂载目录
mkdir -p /opt/nextcloud
# 启动容器并映射到5682端口
sudo docker run -d --restart=always --name nextcloud -p 5682:80 -v /opt/nextcloud:/data nextcloud
0b0926f37f8c45f5b33fd56bd16ff761.png 15e3751d674d401382b7c071ba92e941.png

修改IP绑定

docker exec -it nextcloud bash
apt-get update
apt-get install vim
vim config/config.php

修改 trusted_domains,添加我们需要访问的域名或IP,IP 需要填写端口,域名直接写二级域名

'trusted_domains' => 
array (
  0 => '192.168.11.22:8111',
  1 => 'omv.local',
),
7243947602fb48e2b1273fc3b7c713ca.png

重启容器

docker restart nextcloud

3.2 自建集成服务

写一个简单的页面用来管理我们部署的服务,方便快速使用。

afbc7de4a30f419688e96a0a40f226e6.png 125b2c2f378e4104843a65dbce29ad37.png


四、扩容

  • 移动硬盘格式化为FAT32/exFAT

  • 插入移动硬盘后运行命令

    sudo fdisk -l
    

    根据大小找到系统盘和移动硬盘,然后执行下面的命令,把SD卡里的系统复制到硬盘中

    sudo dd bs=4M if=/dev/mmcblk1 of=/dev/sda
    

    拷贝需要一定的时间,请耐心等待

    1dc06bf2f66d4d458c28e7526e1fb66a.png

  • 需要注意几个问题:

    • bs=4M,M必须大写,否则会报错(dd invalid number 4m)
    • if=/dev/mmcblk1 是系统分区
    • of=/dev/sda 后面是内存卡的路径
  • 断电拔卡
    关机断电后,拔出SD卡替换原有的系统TF卡,然后再上电开机。

  • 磁盘分区
    可以看到存储空间并未完全使用,通过拷贝仅使用了原来的空间大小。

    23e8e5024ea4449c95ff639e2713c80c.png

    还需要输入以下指令帮助我们调整分区

    # 把/dev/mmcblk1下的第一个分区扩充到100%(应该这个是失效的,可以考虑跳过使用下面的指令)
    sudo parted /dev/mmcblk1 resizepart 1 100%
    >>> 信息: 你可能需要 /etc/fstab。
    
    # 再尝试使用(应该是这个指令生效了)
    parted -l
    # 出现如下信息
    >>> 型号:SD SD128 (sd/mmc)
    >>> 磁盘 /dev/mmcblk1:128GB
    >>> 扇区大小 (逻辑/物理):512B/512B
    >>> 分区表:gpt
    >>> 磁盘标志:
    >>> 编号  起始点  结束点  大小   文件系统  名称  标志
    >>>  1    839MB   128GB   127GB  ext4
    
    # 这个时候使用
    sudo fdisk -l
    # 或者使用均
    lsblk
    # 均可以看到已经拓展到118G,但是实际根目录还是32G
    # 磁盘空间存在异常,还需要调整(参考下面处理异常)
    >>> /dev/mmcblk1p1 1638400 249670622 248032223 118.3G Linux 文件系统
    
  • 处理异常
    换回原先的TF卡,将新卡当做U盘插入,调整修复磁盘空间

    e2fsck -f /dev/sda1
    sudo resize2fs /dev/sda1
    
    4db7cba601ef4f31a00528cbd6eec1f0.png a9e292602f314f79bc7fea508ed114ac.png

五、总结

当你做完以上步骤,恭喜你,你已经使用OrangePi Kunpeng Pro开发板,成功自己搭建了一个Linux服务器。

  • 你可以在任意地方,远程连接上放在家里的这块板子,通过VNC连接的形式进行办公或者文件下载。

  • 如果你厌倦了各大网盘的网速或者私密性,这块板子就是你的私人网盘。

  • 如果你配了自己的手机热点,你还可以随身携带这块板子,在任意地方开启服务。

  • 如果你懂一点点代码,想拥有更多服务可以自由自在的定制化开发。

今天的装机教程就到这里,谢谢大家观看。

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

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

相关文章

JavaScript数组重构数据,数组转换成对象

在后端返回的数据中,可能不太满意,所以需要自己重构数据。 原始数据 let arr [ {title:"光头强",age:18,id:"0"}, {title:"孙悟空",age:18,id:"9"}, {title:"熊大",age:18,id:"0"}, {ti…

RAG-GPT实践过程中遇到的挑战

引言 前面介绍了使用RAG-GPT和OpenAI快速搭建LangChain官网智能客服。有些场景,用户可能无法通过往外网访问OpenAI等云端LLM服务,或者由于数据隐私等安全问题,需要本地部署大模型。本文将介绍通过RAG-GPT和Ollama搭建智能客服。 RAG技术原理…

第2章 物理层

王道学习 考纲内容 (一)通信基础 信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念; 奈奎斯特定理与香农定理;编码与调制; 电路交换、报文交换与分组交换;数…

【Redis】Widows 和 Linux 下使用 Redis

Redis 简述 1.缓存 缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。 2.Redis Redis …

Java8Stream

目录 什么是Stream? IO流: Java8Stream: 什么是流? stream图解 获取流 集合类,使用 Collection 接口下的 stream() 代码 数组类,使用 Arrays 中的 stream() 方法 代码 stream,使用 Stream 中的…

智慧水坝:科技变革的里程碑

在曾经的水利工程领域,水坝只是为了水资源的调配和控制,提供一定的安全储备。然而,随着现代科技的不断发展,传统的水坝已经不再是单一的水源控制工程,而是变成了一个充满智慧与创新的生态系统。智慧水坝的概念已经超越…

【机器学习】SUTRA引领多语言处理

在人工智能的浪潮中,自然语言处理(NLP)技术一直是备受瞩目的焦点。随着全球化和信息时代的到来,多语言处理能力成为了评估NLP技术优劣的重要标准。近期,一款名为SUTRA的多语言大型语言模型架构引起了业界的广泛关注。它…

CRLF注入漏洞

1.CRLF注入漏洞原理 Nginx会将 $uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。 执行xss语句 2.漏洞扩展 CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n&am…

Java项目:基于SSM框架实现的企业人事管理系统单位人事管理系统【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的企业人事管理系统单位人事管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观…

M功能-open feign的使用-支付系统(四)

target:离开柬埔寨倒计时-219day 这张图片一直是我idea的背景图,分享出来啦… 前言 支付平台使用的是基于springcloud的微服务,服务之间的调用都是使用openfeign,而我们每个服务对外暴露的接口响应都会在外部封装一层code之类的信…

零售EDI:Target DVS EDI项目案例

Target塔吉特是美国一家巨型折扣零售百货集团,与全球供应商建立长远深入的合作关系,目前国内越来越多的零售产品供应商计划入驻Target。完成入驻资格审查之后,Target会向供应商提出EDI对接邀请,企业需要根据指示完成供应商EDI信息…

人脸识别——筛选与删除重复或近似重复数据提高人脸识别的精确度

1. 概述 人脸识别研究通常使用从网上收集的人脸图像数据集,但这些数据集可能包含重复的人脸图像。为了解决这个问题,我们需要一种方法来检测人脸图像数据集中的重复图像,并提高其质量。本文介绍了一种检测人脸图像数据集中重复图像的方法。该…

英语新概念2-回译法-lesson16

第一次回译 if you ___ your car on a wrong place, the traffic police man will find you quickly. If he do not give you the ticket,you are lucky.However,the ___ not all like this,The police man is __ sometimes.I had a holiday in Sweden, I found a ___ in my c…

基于PostGIS的mvt动态矢量切片的后台地图服务和前端调用

目录 一、背景 二、矢量切片 三、Mapbox的矢量切片格式 四、PostGIS生成矢量切片 ST_AsMVT: ST_AsMVTGeom: 五、导入试验数据 六、编写PostGIS函数 七:Java后端实现 八、Openlayers前端调用 一、背景 矢量切片技术目前已成为互联网地图的主流技术,无论是Mapbox还…

项目引用图片后乱码?

用的墨刀原型-标注 把上面图标库的图片下载为png图片在项目中引用了,结果直接项目起来,全都是乱码 经过排查是墨刀图标库图片的问题,把图片重新用管理员账户登录导出图片后再试试

java并发工具类都有哪些

Java中的并发工具类包括: CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成某些操作。它通常用于线程间的同步,例如在一个线程完成其工作后通知其他线程继续执行。 CyclicBarrier CyclicBarrier是一个同步辅助类,它允许一…

Java项目:基于SSM框架实现的学生就业管理系统分前后台(ssm+B/S架构+源码+数据库+毕业论文+开题报告)

一、项目简介 本项目是一套基于SSM框架实现的学生就业管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

PHP深入理解-PHP架构布局

PHP的架构布局涉及多个层次,让我们一起探讨一下吧!🚀 执行流程:解析为Token:将PHP代码解析成标记(tokens)。抽象语法树:将语法解析树转换为抽象语法树。Opcodes:将抽象语…

亚马逊测评自养号:轻松掌握运营技巧提升店铺流量

亚马逊平台运营全流程,是每位卖家在电商领域走向成功的必经之路。从产品选择、上架优化,到营销推广、订单处理,每一环节都需精心策划与执行,下面具体介绍亚马逊平台运营全流程是什么? 一、亚马逊平台运营全流程是什么…

云服务器购买之后到部署项目的流程

1.通过账号密码登录百度智能云控制台; 2.进入对应的服务器‘云服务器BBC’ 找到’实例‘即找到对应的服务器列表; 此时通过本地电脑 1.cmd命令提示符 PING 服务器公网地址不通; 2.通过本地电脑进行远程桌面连接不通 原因:没有关联安全组,或者…