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

如何建设一个读书的网站/seo在线教学

如何建设一个读书的网站,seo在线教学,做网站视频上传到哪儿,wordpress无头像昵称评论若该文为原创文章,转载请注明原文出处。 由于对AI的好奇,想要学习如何部署AI,所以从RV1126到RK3568中过渡。 一、介绍 RK3568开发板使用的是正点原子新出的ATK-DLRK3568 开发板,主要是学习从训练到部署的全过程,并记…

若该文为原创文章,转载请注明原文出处。

由于对AI的好奇,想要学习如何部署AI,所以从RV1126到RK3568中过渡。

一、介绍

RK3568开发板使用的是正点原子新出的ATK-DLRK3568 开发板,主要是学习从训练到部署的全过程,并记录,为自己的学习作个总结。关于ATK-DLRK3568 开发板,正点原子正在出教程,资料也开源,手册目前相对少一点,但不影响学习,因为主要是AI部分,所以基本要自己摸索。

本篇从开发环境搭建开始记录,大部分在03【正点原子】ATK-DLRK3568_AI例程测试手册V1.0.pdf里有,具体要了解,可以去下载资料。

虚拟机和系统自行安装,博主使用的是原子哥提供好的虚拟环境。

接下来记录:SDK编译,RKNN环境安装。

开发板系统主要使用的是linux,其他系统自行测试。

二、安装 RK3568 Linux SDK

1、安装依赖软件包

sudo apt-get update
sudo apt-get install curl python2.7 python-pyelftools git ssh make gcc libssl-dev liblz4-tool expect g++ 
patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex 
fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python3-pip libncurses-dev python3-pyelftools vim mtd-utils

2、设置python 版本

python2 设置为系统默认 python 版本:

sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python

3、安装 SDK

解压网盘里的SDK, atk- rk3568_linux_release_v1.0_20230620.tgz
mkdir ~/rk3568_linux_sdk
tar xvf atk-rk3568_linux_release_v1.0_20230620.tgz -C ~/rk3568_linux_sdk

检出源码

cd ~/rk3568_linux_sdk/
.repo/repo/repo sync -l -j10

完成后就可以看到源码了

SDK 工程目录介绍
SDK 源码根目录下包含有 app buildroot debian device external tools u-boot yocto
等多个目录,每个目录或其子目录会对应一个 git 工程;因为 SDK 的代码和相关文档被划分成
了若干 git 仓库分别进行版本管理(所以 SDK 实际上包含有若干 git 仓库),它们按照功能、所
属模块划分,分别组织到不同的目录下。
app :存放上层应用 app ,包括 Qt 应用程序,以及其它的 C/C++ 应用程序。
buildroot :基于 buildroot 开发的根文件系统。
debian :基于 Debian 开发的根文件系统。
device/rockchip :存放各芯片板级配置文件和 Parameter 分区表文件,以及一些编译与
打包固件的脚本和预备文件。
docs :存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、 Linux 开发指
南等。
external :存放所需的第三方库,包括音频、视频、网络、 recovery 等。
kernel Linux 4.19 版本内核源码。
prebuilts :存放交叉编译工具链。
rkbin :存放 Rockchip 相关的 Binary 和工具。
rockdev :存放编译输出固件,编译 SDK 后才会生成该文件夹。
tools :存放 Linux Windows 操作系统环境下常用的工具,包括镜像烧录工具、 SD
升级启动制作工具、批量烧录工具等,譬如前面给大家介绍的 RKDevTool 工具以及
Linux_Upgrade_Tool 工具都存放在该目录。
u-boot :基于 v2017.09 版本进行开发的 uboot 源码。
yocto :基于 Yocto 开发的根文件系统。
软件框图:

4、SDK 编译

编译可以单独编译,也可以全自动编译,首次编译检测全自动编译。
首先进入到 SDK 源码根目录下,配置板级文件。
./build.sh lunch

接下来,拷贝第三方库, 开发板资料包里有提供,即dl文件。
将dl.tgz解压到<SDK>/buildroot 目录下
tar -xzf dl.tgz -C ~/rk3568_linux_sdk/buildroot/

接下来就是编译,编译的时间长短和电脑有关,我编译了大概半小时,无意外,编译成功。
./build.sh all

暂时没有做其他的功能,单纯的想要弄AI,所以没单独编译,可以看手册跟着原子哥做一遍。

三、RKNN开发环境搭建

1、安装交叉编译工具链

资料包里提供了工具链 atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run,直接安装就好,拷贝到虚拟机里。
chmod a+x atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run./atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run

2、anaconda 的下载安装

下载anaconda

mkdir ~/software
cd ~/software 
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
安装
bash Anaconda3-2023.03-1-Linux-x86_64.sh

安装完成后,重启下ubuntu,重新 打开终端会发现前面多了个( base )。
为了方便,执行下面命令,不自动进入conda的虚拟环境
conda config --set auto_activate_base false

3、anaconda 的环境配置

a 、首先执行以下命令查看下当前镜像源,显示只有个 defaults 默认源。
conda config --show channels
b 、接下来我们添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

四、安装 rknn-toolkit2 转换环境

1、下载 rknn-toolkit2

资料包里提供了rknn-toolkit2-1.5.0.zip文件,也可以在github上下载

2、新建 conda 环境

conda create --name py3.8 python=3.8

3、安装 rknn-toolkit2

激活 conda 环境
conda activate py3.8

进入rknn-toolkit2-1.5.0/doc目录,安装依赖

pip install -r requirements_cp38-1.5.0.txt -i https://mirror.baidu.com/pypi/simple

4、安装 rknn-toolkit2 工具

进入 rknn-toolkit2-1.5.0/packages目录
pip install rknn_toolkit2-1.5.0+1fa95b5c-cp38-cp38-linux_x86_64.whl

5、测试 rknn-toolkit2

们进到对应的 tflite 的例程目录,测试下 mobilenet_v1 的例程是否正常。
进入到rknn-toolkit2-1.5.0/examples/tflite/mobilenet_v1/目录下,执行下面命令测试。
python test.py

五、测试 buildroot 下的 python 推理例程

1、安装 RKNN Toolkit Lite2

RKNN Toolkit Lite2 Rockchip NPU 平台提供 Python 编程接口,帮助用户部署 RKNN
型,加速 AI 应用的落地。接下来我们讲解下如何在板子上安装那个 rknn-toolkit-lite2 环境。

安装 RKNN Toolkit Lite2,需要把rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl放到板子上在安装。

所以先在ubuntu使用adb方式传到开发板,执行下面命令:

进到 rknn-toolkit2-1.5.0/rknn_toolkit_lite2/packages 目录
adb push rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl /userdata
传输完成后打开开发板串口终端或者 ssh 终端,进到目录 userdata 目录
输入以下命令进行安装。
cd /userdata
pip install rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl

2、测试 python 下的 AI 例程

进入 rknn_toolkit_lite2 目录,把例程传到开发板
adb push examples/inference_with_lite/ /userdata
传输完毕后,打开开发板的串口终端,进入到 /userdata/inference_with_lite/ 目录
输入以下命令执行看下效果。
cd /userdata/inference_with_lite/
python test.py

至此环境搭建完成。

如有侵权,或需要完整代码,请及时联系博主。

相关文章:

RK3568笔记一:RKNN开发环境搭建

若该文为原创文章&#xff0c;转载请注明原文出处。 由于对AI的好奇&#xff0c;想要学习如何部署AI&#xff0c;所以从RV1126到RK3568中过渡。 一、介绍 RK3568开发板使用的是正点原子新出的ATK-DLRK3568 开发板&#xff0c;主要是学习从训练到部署的全过程&#xff0c;并记…...

设计模式 - 行为型模式:策略模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、策略模式 1.1.1、概论 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、策略模式 1.1.1、概论 策略模式设计的每一个算法都封装了起来&#xff0c;使他们可以相互替换&#xff0c;通过一个对象委派不同的算法给相应的客户…...

rancher部署pv、pvc、离线部署nfs

&#xff08;1&#xff09;NFS离线安装 使用nfs配置两台机器共享目录 假设两台机器188.188.30.32&#xff08;服务端&#xff09;、188.188.30.31&#xff08;客户端&#xff09;配置nfs 1.在可以联网的机器上下载rpm安装包 yum -y install nfs-utils --downloadonly --dow…...

视频拍摄教程分享

&#xff08;1&#xff09;新片场&#xff1a;静物美食视频拍摄(22.76GB) 链接:https://pan.baidu.com/s/1uj6wcPXGw-ztLQ1cdyogTA 提取码:929z&#xff08;永久有效&#xff09; &#xff08;2&#xff09;新片场&#xff1a;《孙晓迪分镜头脚本》掌握10种类型商业广告创作思…...

IP组成,分类,子网划分

一、基本概念 IP地址是指互联网协议地址&#xff0c;IP地址是IP协议提供的一种统一的地址格式&#xff0c;他为互联网上的每一个网络和每一台主机分配了一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异&#xff0c;每个ip地址由网络地址和主机地址两个部分组成&#xff0c;网…...

Python视频剪辑-Moviepy视频内容变换技术

在视频编辑中,内容变换是个不能忽视的环节。这不仅仅是关于视频的方向、颜色或者大小,更多的是关于如何让视频内容更具创造性和吸引力。接下来将深入探讨如何使用MoviePy库进行高级的视频内容变换。 文章目录 视频内容变换函数剪辑逆时针旋转指定的角度或弧度像素的RGB值各取…...

OceanBase 数据库入门知识

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

自定义无边框窗口

效果&#xff1a; 可拖动拉伸 ui&#xff1a;设计如下 样式表&#xff1a;在ui CustomDialog 里设置的 #widget_title{background: #E6F1EB;border-top-left-radius: 20px;border-top-right-radius: 20px;}#widget_client{background-color: rgb(255, 255, 255);border-bottom…...

【网络安全 --- kali2023安装】超详细的kali2023安装教程(提供镜像资源)

如果你还没有安装vmware 虚拟机&#xff0c;请参考下面博客安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;https://blog.csdn.net/m0…...

机器学习笔记(二)

过拟合 如下图左边,模型出现了过拟合现象 为了解决过拟合现象, 其中一个做法是多收集数据,如右图。 第二种做法是减少模型的特征数量,即x 第三种做法是正则化 正则化就是减少x前面的参数 w的数值, 不用消除x 正则化的梯度下降如下, 因为只是缩小了w的值,而 b的值保持不变 …...

Java @Override 注解

在代码中&#xff0c;你可能会看到大量的 Override 注解。 这个注解简单来说就是让编译器去读的&#xff0c;能够避免你在写代码的时候犯一些低级的拼写错误。 Java Override 注解用来指定方法重写&#xff08;Override&#xff09;&#xff0c;只能修饰方法并且只能用于方法…...

用rabbitMq 怎么处理“延迟消息队列”?

延迟消息队列是一种允许消息在发送后等待一段时间&#xff0c;然后再被消费的机制。这种机制通常用于需要延迟处理的应用场景&#xff0c;如定时任务、消息重试、消息调度等。在 RabbitMQ 中&#xff0c;实现延迟消息队列需要使用一些额外的组件和技术&#xff0c;因为 RabbitM…...

不常见的JS加密分析

前言 ​ 今天发现一个很少见的JS加密代码&#xff0c;他由一段十分少见的环境检测逻辑&#xff0c;修改一个字符都会被检测到&#xff0c;十分神奇&#xff0c;今天献上。 源代码 let hiJsJiami;!function(){const Zg3GArray.prototype.slice.call(arguments);return eval(&…...

TCP原理特性详解

文章目录 可靠传输机制1.确认应答2.超时重传2.连接管理1.三次握手2.四次挥手 传输效率1.滑动窗口2.流量控制3.拥塞控制4.延时应答5.捎带应答 面向字节流粘包问题 TCP异常情况 可靠传输机制 可靠性&#xff1a;即发送方知道数据是发送成功了&#xff0c;还是失败了。 1.确认应答…...

什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载

懒加载&#xff08;Lazy Loading&#xff09;是一种前端优化技术&#xff0c;用于推迟加载页面中的某些资源&#xff08;如图片、脚本、样式等&#xff09;&#xff0c;直到用户需要访问或者接近该资源时才进行加载。这可以减少初始页面加载时间&#xff0c;并提高页面性能和用…...

Cesium 展示——读取文件——加载 geojson 文件数据

文章目录 需求分析方法一:加载 geojson 文件方法二:加载 后台解析后的 geojson 文件结果需求 在做项目时,对加载 geojson 格式的数据有了一定的了解,因此试着尝试接手后台解析的 geojson 数据进行绘制,因此做了总结如下 分析 方法一:加载 geojson 文件 this.od6 = wi…...

(二)Apache log4net™ 手册 - 配置

0、引言 在上一篇文章中我们简单介绍了 Log4Net 及其核心的三大组件。本文将在上一篇文章的基础上继续探讨与 Log4Net 配置相关的内容。 1、配置 将日志请求插入到应用程序代码中需要进行大量的计划和工作。观察表明&#xff0c;大约4%的代码专门用于日志记录。因此&#xf…...

Elasticsearch:时间点 API

Elasticsearch&#xff1a;时间点 API-CSDN博客 在今天的文章中&#xff0c;我将着重介绍 Point in time API。在接下来的文章中&#xff0c;我将介绍如何运用 PIT 来对搜索结果进行分页。这也是被推荐使用的方法。 Point in time API 默认情况下&#xff0c;搜索请求针对目标…...

hive数据表定义

分隔符 CREATE TABLE emp( userid bigint, emp_name array<string>, emp_date map<string,date>, other_info struct<deptname:string, gender:string>) ROW FORMAT DELIMITED FIELDS TERMINATED BY \t COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMINAT…...

OpenMesh 网格简化之顶点聚类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 顶点聚类方法将落在给定大小体素中的所有顶点集中到单个顶点之上,其过程有点类似于点云体素下采样,之后再基于聚类之后的顶点重新连接面片,以达到网格简化的目的。 二、实现代码 #define _USE_MATH_DEFINES #in…...

C++ 类和对象篇(八) const成员函数和取地址运算符重载

目录 一、const成员函数 1. const成员函数是什么&#xff1f; 2. 为什么有const成员函数&#xff1f; 3. 什么时候需要使用const修饰成员函数&#xff1f; 二、取地址运算符重载 1. 为什么需要重载取地址运算符&#xff1f; 2. 默认取地址运算符重载函数 3. 默认const取地址运…...

k8s 集群安装(vagrant + virtualbox + CentOS8)

主机环境&#xff1a;windows 11 k8s版本&#xff1a;v1.25 dashboard版本&#xff1a;v2.7.0 calico版本&#xff1a; v3.26.1 CentOS8版本&#xff1a;4.18.0-348.7.1.el8_5.x86_64 用到的脚本&#xff1a; https://gitcode.net/sundongsdu/k8s_cluster 1. Vagrant创建…...

8、Docker数据卷与数据卷容器

一、数据卷(Data Volumes) 为了很好的实现数据保存和数据共享&#xff0c;Docker提出了Volume这个概念&#xff0c;简单的说就是绕过默认的联合文件系统&#xff0c;而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。 数据卷 是一个可供一个或多个容器使用的特殊目…...

大数据与Hadoop入门理论

一、大数据的3种数据类型 1、结构化数据 可定义&#xff0c;有类型、格式、结构的强制约束 如&#xff1a;RDBMS&#xff08;关系型数据库管理系统&#xff09; 2、非结构化数据 没有规律没有数据约束可言&#xff0c;很复杂难以解析 如&#xff1a;文本文件&#xff0c;视…...

持续集成部署-k8s-深入了解 Pod:探针

持续集成部署-k8s-深入了解 Pod:探针 1. 探针分类2. 探针探测方式3. 探针参数配置4. 启动探针的应用5. Liveness 探针的应用6. Readiness 探针的应用1. 探针分类 Kubernetes 中的探针是指容器内的进程用于告知 Kubernetes 组件其自身状态的机制; Readiness Probe:就绪探针用…...

来单提醒/客户催单 ----苍穹外卖day9

来单提醒 需求分析 代码开发 注意:前端请求的并不是8080端口;而是先请求Nginx,Nginx进行反向代理以后转发到8080端口 这段代码首先创建了一个orders类用于更新订单状态 并且在更新状态后使用websocket发送给后端提醒 将信息放在map后,使用json的string化方式传给一个接收对象,…...

【单片机】18-红外线遥控

一、红外遥控背景知识 1.人机界面 &#xff08;1&#xff09;当面操作&#xff1a;按键&#xff0c;旋转/触摸按键&#xff0c;触摸屏 &#xff08;2&#xff09;遥控操作&#xff1a;红外遥控&#xff0c;433M/2.4G无线通信【穿墙能力强】&#xff0c;蓝牙-WIFI-Zigbee-LoRa等…...

【Node.js】module 模块化

认识 node.js Node.js 是一个独立的 JavaScript 运行环境&#xff0c;能独立执行 JS 代码&#xff0c;可以用来编写服务器后端的应用程序。基于Chrome V8 引擎封装&#xff0c;但是没有 DOM 和 BOM。Node.js 没有图形化界面。node -v 检查是否安装成功。node index.js 执行该文…...

Vue中如何进行分布式日志收集与日志分析(如ELK Stack)

在Vue中实现分布式日志收集与日志分析&#xff08;使用ELK Stack&#xff09; 日志收集和分析在现代应用程序中是至关重要的&#xff0c;它们可以帮助开发人员监视和诊断应用程序的行为&#xff0c;从而提高应用程序的稳定性和性能。ELK Stack&#xff08;Elasticsearch、Logs…...

java学习--day23(线程池)

1.线程池Pool 线程池一个容纳了多个线程的容器&#xff0c;其中的线程可以反复的使用。省去了频繁创建线程的对象的操作&#xff0c;无需反复创建线程而消耗更多的资源 在 Java 语言中&#xff0c;并发编程都是通过创建线程池来实现的&#xff0c;而线程池的创建方式也有很多种…...