完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
硬 件 平 台
平台:OK3399-C开发板 系统:Desktop 模块:TB-RK1808S0 环境准备: 飞凌OK3399-C开发板,RK1808人工智能计算棒(固件版本为V1.3.4),u***摄像头,摄像头和计算棒都插入OK3399-C开发板。 使用lsu***命令查看,如下(红框部分2207:0018即为RK1808人工智能计算棒): 输入命令如下: 02 概 述 AI计算区分为四个不同的象限,分别是云端训练、云端推理,边缘训练以及边缘推 理。 其中终端推理,几乎都集中在Arm架构生态上。AI神经网络计算目前可以通过CPU、GPU、DSP、NPU、FAGA等完成,但不同的硬件特性会导致效率和功耗的不同。其中NPU——嵌入式神经网络处理器采用“数据驱动并行计算”的架构,最擅长的就是视频、图像类的海量多媒体数据的处理,并且相比GPU等 具有更低的功耗。我司推出OK3399-CDesktop+RK1808(含3Tops算力NPU)的组合,在满足AI边缘计算的情况下,使得功耗大幅降低。 RK1808计算棒拥有主动模式和被动模式两种模式。 主动模式下,RK1808人工智能计算棒是一个专用AI应用模块。 RK1808人工智能计算棒作为主动设备,RK1808人工智能计算棒内部默认已安装rknn-toolkit和rknn-api,上位机(也称宿主机)无需安装rknn-toolkit和rknn-api,模型及算法固化在RK1808人工智能计算棒中,OK3399-C通过USB口向计算棒输入数据(例如图片和视频流),RK1808人工智能计算棒自动完成数据的前处理、推理、后处理,然后把处理结果通过USB口输出给OK3399-C。 为了方便用户通过USB口传输数据,RK1808人工智能计算棒会把USB口虚拟成网卡等标准设备,用户只需通过标准设备接口的操作(例如网络的socket编程)即可完成对RK1808人工智能计算棒数据的输入和输出。 细节如下: 1. RK1808计算棒插入上位机后,会被虚拟成网卡设备; 2. 上位机OK3399-C进行虚拟网卡配置,配置IP为192.168.180.1,保证上位机和1808中间的网络连接正常; 3. 计算棒默认IP为192.168.180.8,账号密码皆为toybrick,用户可以SSH登录计算棒,拷贝模型和server服务程序到计算棒; 4. 计算棒端运行server服务程序,用来接收上位机的连接请求,并调用RKNN进行处理,再返回结果; 5. 上位机运行client程序,连接server成功之后,发送推理请求,从1808端获取返回结果。 03 计算棒网络配置与网络共享配置 1、计算棒网络配置 上位机使用OK3399-C Forlinx Desktop系统,点击右下角网络按钮选择弹出窗口中的“EditConnections...”选项 选择计算棒u***网卡生成的有线网络节点 配置该节点为手动模式,设置IP:192.168.180.1,子网掩码:255.255.255.0,并保存 终端输入ifconfig指令查看网络节点配置如下,可见u***网卡配置完成: ping一下1808计算棒网络192.168.180.8,如下网络可以连通: 使用ssh登录1808计算棒,用户名和密码默认都为toybrick,如下登陆成功: 2、网络共享配置 运行ifconfig,可以看到eth0、wlan0等宿主机网卡,我们用于访问外网,enx10dcb69f022c为USB网卡(RK1808人工智能计算棒虚拟网卡)。不同的系统网卡名称可能不一样,以实际网卡名称为准。 首先配置宿主机网络,使宿主机可以连通以太网,这里我们使用wlan0节点来上网,具体配置不再赘述。 命令行执行如下命令,其中enx10dcb69f022c需要修改成用户本地实际值; 正常情况只要设置一次即可,若拔插设备发现网卡名称改变了或者用户手动删除该网卡,则需要重新设置。 1. sudo nmcli connection add con-name toybrick type ethernet ifname enx10dcb69f022c autoconnect yes ip4 192.168.180.1/24 配置NAT功能,执行如下命令,其中eno1需要修改成用户本地实际值;关机失效,所以每次电脑重启都要重新设置。 1. sudo sysctl -w net.ipv4.ip_forward=1 sudo iptable -F sudo iptables -t nat -F sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 注意:以自己开发板联网的实际端口为准,例:eth0 iptables命令部分释义如下: iptables --hel p --flush -F [chain] Delete all rules in chain or all chains --table -t table table to manipulate (default: `filter') --append -A chain Append to chain --jump -j target target for rule (may load target extension) MASQUERAD ,地址伪装,算是snat中的一种特例,可以实现自动化的snat SNAT是source networkaddress translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip,这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了,所以叫做SNAT,基于源地址的地址转换。 DNAT是destinationnet workaddress translation的缩写,即目标网络地址转换,典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip,互联 网上的访问者使用公网ip来访问这个网站,当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换。 04 主动模式Mobilenet-ssd测试 1、环境要求 1)参考“计算棒网络配置与网络共享配置”章节,完成RK1808人工智能计算棒网络配置(RNDIS)以及网络共享配置。 2)宿主机需要插入USB摄像头,并连接显示器。 2、部署计算棒程序 SSH方式 该方式通过ssh连接到RK1808人工智能计算棒,运行相应程序。 计算棒系统用户名:toybrick 密码:toybrick 计算棒系统用户名:root 密码:toybrick 建议用toybrick用户登录 1)使用官方链接下载Mobilenet-SSD主动模式demo软件包,解压,链接如下: 2)拷贝解压目录中的1808目录至计算棒 1. scp - r 1808 / toybrick@192 . 168.180 . 8 : /home/ toybrick / 3)ssh进入计算棒 1. ssh toybrick@192 . 168.180 . 8 4)安装依赖包 1. sudo dnf install - y cmake make 5)编译 1. cd 1808 / mkdir build cd build / cmake .. make - j4 6)直接运行程序或设置程序为开机启动 •直接运行: 1. ./ 1808 _ssd_demo 3、部署上位机程序(以OK3399-Cdesktop为例) 1)安装依赖包make/cmake/opencv 1. sudo apt - get install - y make cmake libopencv - dev 2)进入Mobilenet-SSD主动模式demo软件包中的host目录,修改host/ssd_demo.cpp,根据开发板实际情况修改打开的摄像头节点: 1. cd host/ 2. int main(void) 3. { 4. //ret = test.run(VIDEO_NODE, post_process, &data); 5. ret = test.run("/dev/video10", post_process, &data); 6. } 3)编译 1. mkdir build cd build / cmake .. make - j4 4)计算棒程序运行起来后,运行上位机程序 1. ./ ssd_demo 效果如下: 05 主动模式yolov3测试 1、环境要求 1)参考“计算棒网络配置与网络共享配置”章节,完成RK1808人工智能计算棒网络配置(RNDIS)以及网络共享配置。 2)OK3399-C开发板需要插入USB摄像头,并连接显示器。 2、部署步骤 计算棒端: 1)使用官方链接下载示例源码master_yolov3.zip,解压,链接如下: 2)拷贝解压目录中的1808目录至计算棒: scp -r 1808/ toybrick@192.168.180.8:/home/toybrick/ 3)通过ssh连接到RK1808人工智能计算棒,运行yolov3master端程序 计算棒系统用户名toybrick 密码toybrick 计算棒系统用户名root 密码toybrick 建议用toybrick用户登录,安装python依赖包,root用户可能存在未知风险。 进入计算棒: ssh toybrick@192.168.180.8 4)安装依赖包: sudodnf install python3-opencv -y 5)进入刚才拷贝的1808目录,运行1808端程序。 宿主机端: 1)安装依赖库 pip3 install --user numpy sudo apt-get install -y python3-opencv 2)运行host端程序 3、效果如下: 至此,OK3399-C开发板+RK1808人工智能计算棒主动模式下的测评告一段落。下篇文章我们会对OK3399-CDesktop+1808被动模式做详细介绍,涉及被动模式的三个demo例程,敬请期待! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
431 浏览 0 评论
524 浏览 1 评论
1789 浏览 1 评论
3043 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
3771 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 07:02 , Processed in 0.535452 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号