CSK6开发分享1-视觉开发套件初体验篇
目录
写在前面
套件概览
开发环境安装
体验官方视觉AI工程
步骤一:拉取工程+初始化
步骤二:编译&烧录
步骤三:跑起来,看效果
写在前面
CSK6是聆思科技推出的一款MCU+DSP+NPU的SoC芯片,近期参加其刚发布的视觉开发套件的内测活动,记录一下使用该套件进行开发的过程与感受。
套件概览
套件拿到手后初步感受了下,套件整体是由一个开发板主体、带有摄像头模组的板子和一个引脚扩展底座组合而成的,套件里还配套了一个亚克力的小配件,按照官方套件使用文档的说明,是可以取出、立起来后用来给摄像头模组做支撑的,这点还是挺贴心的,不过如果整个摄像头板子可以立起来就更好啦!
在开发板主体(CSK6011-NanoKit)上,除了聆思的芯片CSK6011A模组,还看到一颗APM32的芯片,看了下开发板的规格书,原来是板载的一颗DAPLink芯片,功能还挺多的,可以用来给CSK6芯片做烧录、仿真调试,还承担着对CSK6上日志串口做UART to USB的作用,这样一根TypeC数据线就可以完成烧录仿真看日志一条龙了,不用外接USB转串口工具,这点还是挺方便的。
开发环境安装
原厂提供了一个环境一键安装包,整个包有一两个G,这么大是因为包含了开发环境依赖的工具外,还包含了整个SDK,算是情有可原吧~安装之前如果电脑没有安装GIT的话要先装一下,官方文档中也有说明这一点。
安装过程还是挺方便的,下载完成后双击运行,跟着引导选择安装目录然后点击下一步,然后等待安装完成就OK了,整个过程大概十来分钟。
体验官方视觉AI工程
环境搭建完毕后,就跟着文档先体验一下CSK6提供的AI能力吧。
根据目前官方AI能力文档的说明,可以在这个视觉AI开发套件上体验的能力是头肩检测和手势识别,官方提供了一个Sample,按照以下步骤就可以把Sample创建并跑起来了。
步骤一:拉取工程+初始化
在终端用git拉取Sample代码并初始化,我在Windows CMD终端下选择了一个目录,依次执行了以下指令:
git clone https://cloud.listenai.com/zephyr/applications/app_algo_hsd_sample_for_csk6.gitcd app_algo_hsd_sample_for_csk6lisa zep init-applisa zep update
可以看到是通过git先拉取了一份Sample代码,执行 lisa zep init-app 指令时对这个Sample做了初始化,我观察到初始化完成后,工程目录下多了一个 .sdk 目录,是这个Sample所依赖的视觉SDK,聆思应该是针对视觉AI这块对算法和一些视觉应用操作做了API的封装,提供了这么一个专门的视觉SDK。
步骤二:编译&烧录
完成工程创建和初始化后,就是编译了,跟着文档操作,将工程目录下的 prj.conf 文件中的CONFIG_WEBUSB_ENABLE = n 改为 =y,看名字应该是开启通过USB预览图像的功能。
保存修改后编译,在工程目录下执行
lisa zep build -b csk6011a_nano
-b 后带的是开发板的版型,根据开发板手册说明,这个板载了CSK6011A的板子对应的版型是 csk6011a_nano。
编译完成后可以看到终端有以下输出:
紧接着进行烧录,根据文档的介绍,除了烧录Sample本身的应用程序,还需要烧录两个资源文件(DSP资源和算法模型资源),根据官方对这款三核芯片的介绍,我猜这两个资源应该是分别给DSP核和NPU用的。
使用TypeC数据线连接电脑和开发板右侧的DAPLink USB后,在设备管理器中可以看到有一个COM口出现,是日志口也是可以用来烧录的串口。
依次执行以下三条指令:
lisa zep flashlisa zep exec cskburn -s \\.\COM216 -C 6 0x400000 .\resource\cp.bin -b 748800lisa zep exec cskburn -s \\.\COM216 -C 6 0x500000 .\resource\res.bin -b 748800
指令中的COM216就是开发板连接到我电脑后,设备管理器识别到的COM口。
顺利完成烧录:
步骤三:跑起来,看效果
烧录完成后,用串口助手工具打开日志口,按动开发板的复位按键,可以看到有日志输出了,看日志应该是程序运行起来了,head shoulder应该是头肩的一些检测结果输出。
继续根据文档的指引,用git下载一个PC端预览工具(他们真的好喜欢用git),首次运行需要根据预览工具的指引安装一下驱动,然后用数据线连接电脑和开发板左侧的 USB 口,就可以看到电脑右下角有USB设备弹出了。
此时双击打开PC端预览工具,打开设备,可以看到图像了:
原来是个头肩检测+手势识别的实例,画面里会实时框处所识别到的头肩的位置,如果做出对应手势,也会在框的下方显示对应的手势识别结果和评分。根据官方的信息,目前支持五个手势的识别,体验了一下,效果还不错。输出的预览图像目前来看有点模糊,希望这点后续可以优化一下。