TDA4VM-SK配置与应用杂谈

TDA4VM-SK配置与应用杂谈
硬件信息:SK-TDA4VM 用户指南
处理器SDK Linux边缘AI文档
配置文档:SK-TDA4VM处理器SDK Linux文档-getting_started,详细说明了如何配置,下面是简要步骤:
物料准备: SK板,microUSB串口线,USB camera,HDMI/DP显示器,≥16GB的内存卡,网线和局域网*,串口电源(5-20V DC ≥20w),散热风扇
1)通过USB挂载SD卡到Ubuntu(在虚拟机设置里)
2)下载SD card .wic image,使用Balena etcher tool 1.7.0 把图像闪存到SD卡上
3)然后插入SD卡到SK板,拨码开关拨到数字端,系统从SD卡启动
4)SK板连接显示器,上电,进入界面。
5)连接串口线,在虚拟机设置中挂载USB串口,使用 minicom 串口通讯:
sudo apt-get install minicom #安装minicom(在minicom中自动换行:Ctrl+A Z W)
sudo minicom -D /dev/ttyUSB2 -c on
#输入用户名:root,登录tda4vm-sk
#若连接了USB摄像头此时会显示端口信息,也可以运行 ./init_script.sh 查摄像头端口号:/dev/video2
连接显示器后(HDMI/DP),可以鼠标点击试运行开箱即用的 GUI 应用程序,也可使用 Python 和C++参考示例开发边缘 AI 应用程序:
#配置
cd /opt/edgeai-gst-apps/configs/ #app_config_template.yaml中有参数介绍
vi image_classification.yaml #flow参数配置为摄像头输入input0
#运行实例,替换为configs下其他文件能执行不同任务,如object_detection.yaml
#Classification (python)
cd /opt/edgeai-gst-apps/apps_python
./app_edgeai.py ../configs/image_classification.yaml #ctrl+c退出
#Classification (c++)
cd /opt/edgeai-gst-apps/apps_cpp
./bin/Release/app_edgeai ../configs/image_classification.yaml
#视频流车辆检测
cd /opt/edgeai-gst-apps/scripts/optiflow
`./optiflow.py ../../configs/object_detection.yaml -t` #如果没有单引号,终端会将 -t 选项解释为一个单独的参数,而不是作为 optiflow.py 命令的选项之一
#多flows
flows:
# flowname : [input,mode1,output,[mosaic_pos_x,mosaic_pos_y,width,height]]
flow0: [input0,model1,output0,[160,90,800,450]]
flow1: [input0,model2,output0,[960,90,800,450]]
flow2: [input1,model0,output0,[160,540,800,450]]
flow3: [input1,model3,output0,[960,540,800,450]]
如果运行过程中突然重启,一般是需要加个风扇增强散热。
可选操作:连接网线,ifconfig查询板子ip地址,后面即可使用ssh登陆,可以使用vscode的remote插件来直接ssh登陆到板子,然后可以很方便地修改配置文件; 安装tensorflow,onnx,python和c++依赖库 /opt/edge_ai_apps#./setup_script.sh
Dataflows
GStreamer输入管道:
v4l2src device=/dev/video18 io-mode=2 ! image/jpeg, width=1280, height=720 ! jpegdec ! tiovxdlcolorconvert ! video/x-raw, format=NV12 ! tiovxmultiscaler name=split_01
split_01. ! queue ! video/x-raw, width=320, height=320 ! tiovxdlpreproc data-type=10 channel-order=1 mean-0=128.000000 mean-1=128.000000 mean-2=128.000000 scale-0=0.007812 scale-1=0.007812 scale-2=0.007812 tensor-format=rgb out-pool-size=4 ! application/x-tensor-tiovx ! appsink name=pre_0 max-buffers=2 drop=true
split_01. ! queue ! video/x-raw, width=1280, height=720 ! tiovxdlcolorconvert out-pool-size=4 ! video/x-raw, format=RGB ! appsink name=sen_0 max-buffers=2 drop=true
GStreamer output pipeline:
appsrc format=GST_FORMAT_TIME is-live=true block=true do-timestamp=true name=post_0 ! tiovxdlcolorconvert ! video/x-raw,format=NV12, width=1280, height=720 ! queue ! mosaic_0.sink_0
appsrc format=GST_FORMAT_TIME block=true num-buffers=1 name=background_0 ! tiovxdlcolorconvert ! video/x-raw,format=NV12, width=1920, height=1080 ! queue ! mosaic_0.background
tiovxmosaic name=mosaic_0
sink_0::startx="<320>" sink_0::starty="<180>" sink_0::widths="<1280>" sink_0::heights="<720>"
! video/x-raw,format=NV12, width=1920, height=1080 ! kmssink sync=false driver-name=tidss
边缘AI应用程序堆栈
TIDL
TIDL_Importer
RTOS SDK中内置TIDL_Importer,可以直接使用, 实现Demo模型转换和运行
Demo教程:MobileNetV2 Tensorflow,PeleeNet Caffe,JSegNet21V2 Caffe model,下面以PeleeNet为例
Config TIDL_Importer
export TIDL_INSTALL_PATH=/home/wyj/SDK/ti-processor-sdk-rtos-j721e-evm-08_06_01_03/tidl_j721e_08_06_00_10
#配置永久环境变量更方便,sudo gedit /etc/profile,末尾加入如上代码,然后source /etc/profile加载立即生效,但是后续有变动要记得改
 
#optional:tidlModelGraphviz tool 模型可视化工具
sudo apt install graphviz-dev
export TIDL_GRAPHVIZ_PATH=/usr
cd ${TIDL_INSTALL_PATH}/ti_dl/utils/tidlModelGraphviz
make
导入PeleeNet模型进行目标检测(caffe)
下载并提取.caffemodel,deploy.prototxt放入ti_dl/test/testvecs/models/public/caffe/peele/pelee_voc/
deploy.prototxt中改confidence_threshold: 0.4
cd ${TIDL_INSTALL_PATH}/ti_dl/utils/tidlModelImport
./out/tidl_model_import.out ${TIDL_INSTALL_PATH}/ti_dl/test/testvecs/config/import/public/caffe/tidl_import_peeleNet.txt
#${TIDL_INSTALL_PATH}/ti_dl/test/下面的配置文件在RTOSsdk8.6中找不到,要从SDK8.5复制。
#成功分配内存
# 用于推理的已编译网络和I/O.bin文件
#在ti_dl/test/testvecs/config/tidl_models/caffe/tidl_net_peele_300.bin中已编译的网络文件
# 在ti_dl/test/testvecs/config/tidl_models/caffe/tidl_io_peele_300_1.bin中已编译的I/O文件
# 在 ti_dl/utils/perfsim/tidl_import_peeleNet.txt/tidl_import_peeleNet...csv中网络分析的性能仿真结果
#若是tensorflow例程,.pb需要先运行tensorflow的.local/lib/python3.6/site-packages/tensorflow/python/tools/optimize_for_inference.py工具进行模型推理优化,再导入。
运行PeleeNet进行目标检测
#在文件ti_dl/test/testvecs/config/config_list.txt顶部加入:
1 testvecs/config/infer/public/caffe/tidl_infer_pelee.txt
0
#运行,结果在ti_dl/test/testvecs/output/
cd ${TIDL_INSTALL_PATH}/ti_dl/test
./PC_dsp_test_dl_algo.out
#若标注框大小不匹配,需要改deploy.prototxt文件顶部:dim: 512 dim: 1024
测试使用ti_dl/test/testvecs/input/ti_lindau_I00000.bmp作为语义分割的输入图像。
测试打印PC模拟所花费的时间,并将生成的后处理输出图像存储在ti_dl/test/testvecs/output/jsegNet1024x512.bin_ti_lindau_I00000.bmp 000000_tidl_post_proc3.png中,该图像显示为检测到的对象生成的分割掩码。
picture 1
EdgeAI TIDL工具
EdgeAI TIDL工具是TI提供的深度学习开发工具,后续会多次用到。
要求:OS——Ubuntu 18.04,Python版本——3.6
图 9
1)OSRT(开源运行时:TFLite、ONNX、TVM) 作为用户应用程序的顶级推理 API
2)将子图卸载到 C7x/MMA 以使用TIDL进行加速执行
3)在 ARM 核心上运行优化代码,以支持 TIDL 不支持的层(支持情况
Setup - TexasInstruments/edgeai-tidl-tools at 08_06_00_05
sudo apt-get install libyaml-cpp-dev
git clone https://github.com/TexasInstruments/edgeai-tidl-tools.git #failed:手动安装证书 git config --global http.sslVerify false,export GIT_SSL_NO_VERIFY=1
cd edgeai-tidl-tools
git checkout 08_06_00_05
export SOC=am68pa
source ./setup.sh
#Docker Based X86_PC Setup 跳过,不用docker装
 
#配置变量
export SOC=am68pa
export TIDL_TOOLS_PATH=$(pwd)/tidl_tools
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TIDL_TOOLS_PATH
export ARM64_GCC_PATH=$(pwd)/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu
#配置永久环境变量更方便,sudo gedit /etc/profile,末尾加入如上代码,然后source /etc/profile加载立即生效
source ./scripts/run_python_examples.sh #编译运行
python3 ./scripts/gen_test_report.py #评估
 
#Compile and Validate on X86_PC for cpp_example
mkdir build && cd build
cmake ../examples && make -j && cd ..
Edge AI Studio
TI官方提供的云端环境,集成了一系列工具,无需本地搭环境,使用需要申请,提供两个工具:

1)模型编辑器:为 TI 嵌入式处理器训练、优化和编译 AI 模型。支持数据采集,标注,模型训练,以及上板编译,一步到位。目前仅支持分类和检测任务,只能使用modelzoo中的模型进行训练,比如OD任务只有yolox模型,灵活度不高,主打方便快捷。

2)模型分析器:远程连接到真实的评估硬件,基于jupyter笔记本,在 TI 嵌入式处理器上部署和测试 AI 模型性能,进行多个模型的Benchmark。前身叫做 TI边缘AI 云。

模型解析器

选TDA4VM设备,能使用3h,文件在顶端My Workspace; 进入后分两大板块:

找到模型: 比较模型性能, 能查看不同模型在板端的表现,用来选择适合自己需求的模型;

 

参考文献链接

https://www.ti.com.cn/zh-cn/video/6301563648001

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-edgeai/TDA4VM/08_06_01/exports/docs/devices/TDA4VM/linux/release_notes_08_05.html

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(技术贴)英雄无敌1——永久记住所学魔法——手把手教你怎么修改

喜欢英雄无敌1的朋友都知道,在1中英雄学习魔法只是记忆了该魔法的使用次数,一旦次数使用完,该魔法就会从魔法书中消失!而要想再次使用该魔法,就得去具有该魔法的魔法公会再次学习一次,自然这很不符合魔法学习的实际情况。我这里将其修改为,学过的魔法永远记住!但是学过…

连接mysql时提示is not allowed to connect不允许连接

1. 进入mysql服务器,mysql -u root -p 登录myql服务,SELECT user, host FROM mysql.user;看到root只允许localhost本机连接 2. 执行use mysql; update user set host = % where user = root; 再次查看user表,root允许所有ip连接 3.刷新缓存FLUSH PRIVILEGES; 以上仅供参考…

LCA 补充

LCA 之前学废了,回来补。 倍增版 首先是最常见的倍增版子,思路好理解,按倍增记录 \(father\),然后同时往上跳。 注意最后跳到的是那个 \(x \ne y\) 的,也就是 \(lca\) 的儿子,所以最后要返回父亲。 #include<bits/stdc++.h> using namespace std; const int N = 5e…

读人工智能全传11人工智能会出什么错

读人工智能全传11人工智能会出什么错1. 人工智能会出什么错 1.1. 一些报道是公正合理的,不过坦白地说,大部分报道都愚蠢得无可救药 1.2. 一些报道颇有知识性和引导性,而大部分则是杞人忧天式的恐吓 1.3. 滑稽的报道迎合了大众对人工智能的“终结者式恐惧” 1.3.1. 我们创造出…

dotnet 理解 X11 的 24 位或 32 位色深窗口

本文记录在 X11 里面的窗口与颜色的位色深关系本文属于学习 CPF 框架博客,感谢小红帽的 CPF 框架。更多关于 CPF 框架,请参阅 https://gitee.com/csharpui/CPF 本文这里的 24 色或 32 色表示的是用多少个 bit 表示一个像素的颜色。比如常见的 24 色就是 RGB 三个颜色分量,一…

【C++】const与constexpr

const 用于声明该变量是一个常量。 可以用来声明成员函数,表示该函数不会改变成员变量。 const修饰指针的场景稍微复杂点,可以通过循环的方式记忆:constexpr constexpr 它是在 C++ 11 被引进的,它的字面意思是 constant expression,常量表达式。它可以作用在变量和函数上。…

ubuntu搭建docker harbor实录

一、搭建前提 一台2C2G ubuntu 18.04.6版本主机 配置好网络、ntp,关闭ufw二、搭建步骤 1、安装docker engine、docker-compose等 设置 Docker 的存储库# Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 …

【攻防技术系列+漏洞复现】Fastjson①前置知识 -- fastjson怎么用?

主题任务 在IDEA中新建一个maven项目,并引入fastjson依赖工具 IntelliJ IDEA 2020.3 JDK 11一、前置知识 1.1 fastjson怎么用? fastjson是啥百度就有,看了之后不熟悉的人还是会一脸懵逼,我们可以通过以下这个demo来快速学会使用fastjson。 我们分为以下几个步骤来进行: (…

24暑期第七次训练C组

目录ABCDEFGHIJ A 生活大爆炸版石头剪刀布 纯模拟,保证AB之间能对应就行。 给出较朴素做法。 bool caiquan(int,int);int main(void) {int n,x,y,ans1 = 0,ans2 = 0,stp;cin >> n >> x >> y;vector<int> a(x);vector<int> b(y);for(auto &i…

4-电子商务物理与供应链管理

4.1 电子商务与物流 4.1.1 物流及物流标准化 1.物流的概念 根据我国国家标准在GB/T18345—2006《物流术语》中的表述,物流(Logistics):“物品从供应地向接受地的实体流动过程。根据实际需要,将运输、储存、配送、包装、装卸搬运、流通加工、信息管理等基本功能实施有机结合…

比赛获奖的武林秘籍:06 5分钟速通比赛路演答辩,国奖选手的血泪经验!

本文主要介绍了大学生电子计算机类比赛和创新创业类比赛常见雷点、要点和精髓,并对路演的定义和基本概念进行了说明,结合自身经历对路演答辩常见技巧和评委问题进行了总结。比赛获奖的武林秘籍:06 5 分钟速通比赛路演答辩,国奖选手的血泪经验! 摘要 本文主要介绍了大学生电…

汽车虚拟仿真vr技术的三个关键方面!

汽车作为人类生活中不可或缺的交通工具,同时也是展示个性和品味的重要象征。随着科技的迅猛发展和消费者需求的不断升级,汽车行业正处于持续创新和变革之中,在这个过程中汽车虚拟仿真VR看车技术正扮演着至关重要的角色,接下来,我们将逐一深入探讨汽车虚拟仿真VR技术的三个…