一、Tina Linux 5.0编译
(一)下载源码
V853的Tina Linux 5.0 SDK源码在全志客服服务平台 下载即可,这个要绝对表扬,平台上D1、V853、XR806的芯片相关SDK等资料全部直接可以下载。
官方V853 SDK使用的kernel是4.9,比D1的5.4 kernel版本低点,问了大佬,大约4.9上V853板子的驱动完善。
按照官方下载文档,一步步走即可,要注意的是中间不要切换用户,SSH key-gen获得的密钥放在跟后续repo操作用户不同的目录下,导致repo失败。
(二)源码编译
Tina Linux 5.0 SDK源码编译有2中方式,一种常规Linux编译,另外一种buildroot方式,本人直接选择Linux(openWRT)方式。从源码到img固件,需要二部分配置,一块是Linux(openWRT)系统相关工具配置,另外一部分是Tina 5.0相关功能的配置。本人采取如下步骤
1、编译环境设置;
root@EliteDesk:/media/tina-v853$ source build/envsetup.sh
NOTE: The SDK(/media/tina-v853) was successfully loaded
load openwrt... ok
Please run lunch next for openwrt.
load buildroot,bsp...ok
Please run ./build.sh config next for buildroot,bsp.
2、选择编译方案;
root@EliteDesk:/media/tina-v853$ lunch
You're building on Linux
Lunch menu... pick a combo:
1 v853-vision-tina
Which would you like? [Default v853-vision]: 1
Jump to longan autoconfig
/media/tina-v853/build.sh autoconfig -o openwrt -i v853 -b vision -n default
========ACTION List: mk_autoconfig -o openwrt -i v853 -b vision -n default;========
options :
INFO: Prepare toolchain ...
INFO: kernel defconfig: generate /media/tina-v853/kernel/linux-4.9/.config by /media/tina-v853/device/config/chips/v853/configs/visi on/linux-4.9/config-4.9
INFO: Prepare toolchain ...
make: Entering directory '/media/tina-v853/kernel/linux-4.9'
*** Default configuration is based on '../../../../../device/config/chips/v853/configs/vision/linux-4.9/config-4.9'
#
# configuration written to .config
#
make: Leaving directory '/media/tina-v853/kernel/linux-4.9'
INFO: clean buildserver
INFO: prepare_buildserver
3、Tina系统配置;
因为第二章是NPU相关功能使用,所以在第三步将NPU扩展包安装还有配置也放进来了。
将V853 NPU扩展包下载后放在Tina-V853目录下解压,如果解压有问题,基本是下载的问题,直接重新下载。
tar xvf npu_package.tar.gz
解压后的文件放在openwrt/packages/npu文件夹中:
make menuconfig将NPU相关功能加进来。
反正全部选上,后面用:
退出后保存,当然还可以选择配置Tina 5.0的其他功能,保存后退出。
4、make;
没啥好说的,这里面会有个mkImage的错误,问了很多人,后来在这个帖子里找到了答案【V853开发板试用】V853编译烧录疑难杂症汇总篇
make的时候可以看到NPU扩展包编译的情况:
最后就是编译成功:
5、pack。
PACK就是利用Tina的工具将之前make生成的文件打包,加入NPU扩展包后的img约70M,比起之前没加NPU扩展包的33M大了很多。
二、烧录
全志提供了很多种方法,本人选择的是PhoenixSuit,连上Type-C和计算机,打开PhoenixSuit待确认连接后将img烧入即可。
三、NPU功能测试
(一)Tina 5.0体验
IMG烧写完后,在PhoenixSuit上可以看到系统版本。
也可以通过ADB shell登录系统验证,比起开箱的ABD SHELL,可以明显看到Tina Linux 5.0字样,BusyBox版本也提升了。
可以看到,目录下已经有NPU扩展包的模型了,一个lenet模型,一个yolov3模型。
root@TinaLinux:/# ls /etc/models/
lenet_model.nb yolov3_model.nb
(二)NPU使用
V853内置最大 1T 算力 NPU,必须用上,第一章已经把官方NUP扩展包加入,选了三组图片测试。
1、Kids原图:
NPU执行log:
root@TinaLinux:~# yolov3 /etc/models/yolov3_model.nb kids.jpg
[0xb6f28560]vip_init[104],
The version of Viplite is: 1.8.0-0-AW-2022-04-21
Create Neural Network: 72.49ms or 72488.49us
Start run graph [1] times...
Run the 1 time: 204.67ms or 204672.98us
vip run network execution time:
Total 205.50ms or 205502.34us
Average 205.50ms or 205502.34us
data_format=2 buff_size=43095
data_format=2 buff_size=172380
data_format=2 buff_size=689520
person 99% 274 413 70 415
person 99% 153 309 106 415
person 99% 96 206 31 415
person 95% 2 141 71 415
person 86% 0 87 23 339
输出结果,很优秀:
2、cars原图
执行过程:
root@TinaLinux:~# yolov3 /etc/models/yolov3_model.nb cars.jpg
[0xb6f62560]vip_init[104],
The version of Viplite is: 1.8.0-0-AW-2022-04-21
Create Neural Network: 71.73ms or 71734.62us
Start run graph [1] times...
Run the 1 time: 204.71ms or 204714.50us
vip run network execution time:
Total 205.67ms or 205669.88us
Average 205.67ms or 205669.88us
data_format=2 buff_size=43095
data_format=2 buff_size=172380
data_format=2 buff_size=689520
car 100% 65 195 59 160
car 99% 23 154 185 298
car 99% 71 227 223 363
car 99% 204 343 83 240
car 97% 0 155 117 257
car 97% 349 415 175 294
car 92% 132 307 271 411
car 92% 0 49 13 107
car 88% 280 410 47 149
car 81% 19 123 3 83
识别结果:
3、人脸识别
原图:
执行过程:
root@TinaLinux:~# yolov3 /etc/models/yolov3_model.nb people.jpg
[0xb6f8b560]vip_init[104],
The version of Viplite is: 1.8.0-0-AW-2022-04-21
Create Neural Network: 71.99ms or 71992.21us
Start run graph [1] times...
Run the 1 time: 204.73ms or 204726.08us
vip run network execution time:
Total 205.66ms or 205664.12us
Average 205.66ms or 205664.12us
data_format=2 buff_size=43095
data_format=2 buff_size=172380
data_format=2 buff_size=689520
person 100% 107 263 33 231
person 100% 239 414 138 415
person 100% 98 172 121 240
person 99% 279 382 0 158
person 99% 0 95 107 415
person 95% 307 415 28 382
person 94% 80 277 217 415
person 93% 24 122 235 412
person 92% 164 268 0 143
person 83% 6 109 4 148
识别结果: