首页 > 其他分享 >TDA4VM-SK配置与应用杂谈

TDA4VM-SK配置与应用杂谈

时间:2024-07-13 09:12:15浏览次数:21  
标签:dl ti 杂谈 SK tidl test TIDL TDA4VM PATH

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

标签:dl,ti,杂谈,SK,tidl,test,TIDL,TDA4VM,PATH
From: https://www.cnblogs.com/wujianming-110117/p/18299655

相关文章

  • skynet框架:日程表服务
    实现一个日程表服务(crontab),支持服务启动自动对齐系统时间,以秒为单位检查触发定时任务(task);以服务(同节点)为单位注册定时任务方式:1)以自然时间字符串方式:2024-01-0100:00:002)以定时间隔方式:每秒/每分/每时/每天/每周/每月/每年取消指定定时任务;定时任务触发逻辑支持超时释放;......
  • 云游戏平台陷入苦战,继青椒云,云更新,顺网云后,ToDesk正在布局云电竞市场
    在日新月异的科技浪潮中,云游戏正在逐步成为游戏产业的重要分支。根据中国信通院《2023年全球云游戏产业深度观察及趋势研判研究报告》,2022年中国云游戏市场收入达到63.5亿元,同比增长56.4%;月活人数达到8410万人,同比增长35.21%。各大平台纷纷展露头角,其中不乏佼佼者如青椒云、云更......
  • 免费的Duet扩展屏替代品,ToDesk扩展屏功能详解
    小社长越来越体会到屏幕扩展功能有多香了!平时工作写ppt拿来做素材屏幕,整理修改意见都不需要来回切换页面了,工作效率提升咻咻快!虽然之前用的Duet扩展屏还可以,但价格上稍稍有点超出小社长的心理范围,短短用一个月还好,长期用钱包吃不消啊。所以最近一直在找性价比更高一点的国产扩......
  • 显卡欺骗器、锁屏宝的代替品,ToDesk虚拟屏功能完美解决
    主机没有显示器?远控电脑需要保持屏幕的高分辨率,但过高容易黑屏?遇到以上情况,人们常常会使用显卡欺骗器或者锁屏宝来解决,就是让显卡认为连接了一个显示器,方便正常使用电脑。但是这往往需要额外给电脑上插入设备,如果是突然急用就很难实现了,有没有人帮忙装显卡欺骗器不说,临时买不买......
  • ToDesk云电脑进军游戏市场,真显卡高性能,新版本可暂停使用时长!
    ToDesk远程控制软件在装机量突破1.5亿后,再度迎来里程碑式的发展。今年,该公司创新推出了云电脑产品,正式涉足云计算领域。这款前沿产品一经发布,便凭借其卓越的性能和使用体验赢得了广大用户的赞誉。近期,ToDesk云电脑更是迎来了重大版本更新,进一步巩固了其在云计算行业的领先地位。......
  • 解读跳表(Skip Lists):一种平衡树的简单高效替代数据结构
    我们知道跳表是一种简单,高效的数据结构,在很多知名的开源存储产品中有着广泛的应用,比较广为人知的就是Redis中的有序集合,此外在Kafka、LevelDB等需要高性能索引的数据库相关产品中,也有skiplist的身影。多年前,第一次接触到跳表的时候,就有一种震撼的感觉。数组的特点是可以索引,但......
  • Windows系统安装RustDesk Server的详细步骤和客户端设置
    Windows系统安装RustDeskServer的详细步骤在Windows系统上安装RustDeskServer涉及几个关键步骤,包括安装必要的依赖、下载RustDeskServer程序、配置并启动服务。以下是详细的步骤:1.安装Node.js和PM2RustDeskServer的某些版本可能需要Node.js环境来运行,而PM2是一个常用的Nod......
  • 发布用flask框架开发的python后端程序到windows服务器
    flask框架开发的python后端程序开发好了后,怎么发布到生产环境呢?以app.run()的方式在生产环境上启动服务,当有异常特别容易退出,而且性能很弱。生产环境下,python常见的web部署搭配是nginx+gunicorn。但是这种搭配只适合在Linux环境下。gunicorn不支持windows环境。如果要搭......
  • Redis数据结构—跳跃表 skiplist 实现源码分析
    Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis的数据结构非常丰富,其中跳跃表(skiplist)是一种重要的数据结构,它被用来实现有序集合(sortedsets)。跳跃表是一种概率型数据结构,它通过多层链表来实现快速的查找操作。跳跃表的结构类似于多层索引,......
  • Cows in a Skyscraper G
    dfs版本#include<algorithm>#include<iostream>usingnamespacestd;constintN=2e1;intcat[N],cab[N];intn,w;intans;boolcmp(inta,intb){returna>b;}voiddfs(intnow,intcnt){if(cnt>=ans){re......