K230×小智:大模型的 “视觉觉醒”(适配01Studio开发板)

Viewed 74

问题描述


当边缘智能芯片 K230 与 "小智" 大模型结合,集成人脸识别技术后,"小智" 实现从语音交互到视觉感知的跨越,让 AI 大模型具备 "识人辨景" 的能力,推动 AI 从符号推理迈向场景化智能理解。

一、硬件准备

image.png

1、一块 01Studio K230 开发板

2、摄像头(本次 demo 使用 GC2093 ),考虑到实际的可操作性,有条件可以增加一个前置摄像头

3、一块触摸屏( UI 操作人脸注册使用,这里我们使用 ST7701 )

4、3D 打印机打印的外壳
已经开源:https://makerworld.com.cn/zh/models/1273131-canmv_k230_01studio_lcd_ke-_dai-qian-zhi-shuang-mu#profileId-1363542

5、板子上已经有板载Mic,外接一个喇叭(带电池或电源接入的喇叭)

6、usb转ttl转接板和杜邦线(请注意一定要接上串口,Linux操作系统为命令行操作)

7、SD卡

8、电源线
image.png

二、软件准备

我们有编译好的SDK包和bin文件,下载之后直接跳转到第6步。
注意:
01Studio的开发板SDK,需要外接ST7701触摸屏,使用默认自带的CSI2摄像头
01Studio SDK和bin下载链接:
https://kendryte-download.canaan-creative.com/developer/k230/01Studio_XIAOZHI_IMG_0610/

三、自己编译SDK和应用

1.下载并编译K230 Linux SDK

参考链接:
https://www.kendryte.com/k230_linux/dev/zh/01_software/K230_linux_SDK%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html

下载Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2.tar.gz 文件

  • 地址1:https://www.xrvm.cn/community/download?id=4433353576298909696 ;
  • 地址2:https://kendryte-download.canaan-creative.com/k230/downloads/dl/gcc/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2-20250410.tar.gz
cd ~
mkdir canmv_k230_linux
cd canmv_k230_linux
git clone git@github.com:kendryte/k230_linux_sdk.git
mkdir -p /opt/toolchain
tar -zxvf Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2.tar.gz -C /opt/toolchain
wget -c ruyisdk/riscv-gnu-toolchain-rv64ilp32
mkdir -p /opt/toolchain/riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25/s
tar -xvf riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25-nightly.tar.gz -C /opt/toolchain/riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25/
sudo apt-get install -y wget git sed make binutils build-essential diffutils gcc  g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc findutils wget libncurses-dev python3 libssl-dev  gawk cmake bison flex bash-completion  parted curl xz-utils
cd ~/canmv_k230_linux
make CONF=k230_canmv_01studio_defconfig BR2_PRIMARY_SITE=https://kendryte-download.canaan-creative.com/k230/downloads/dl/

2.修改板子的config文件,并使能以下配置

配置文件:
k230_linux_sdk/buildroot-overlay/configs/k230_canmv_01studio_defconfig

BR2_PACKAGE_WEBSOCKETPP=y
BR2_PACKAGE_BOOST=y
BR2_PACKAGE_BOOST_JSON=y
BR2_PACKAGE_BOOST_LOG=y
BR2_PACKAGE_BOOST_SERIALIZATION=y
BR2_PACKAGE_BOOST_URL=y

3.根据你的摄像头连接,修改配置文件

参考链接:
https://mp.weixin.qq.com/s/P0QOnwfZ87-BmSvppE5I4A

4.获取小智代码

请到

cd ~/canmv_k230_linux/k230_linux_sdk/buildroot-overlay/package
git clone https://github.com/kendryte/xiaozhi_assistant.git

5.编译小智应用

5.1 整包编译

整包编译,重新烧写整个IMG

cd ~/canmv_k230_linux
make CONF=k230_canmv_01studio_defconfig

5.2 编译小智app

在k230_linux_sdk/buildroot-overlay/package/xiaozhi_assistant 目录下,执行 build.sh 脚本以编译源码:

cd ~/canmv_k230_linux/k230_linux_sdk/buildroot-overlay/package/xiaozhi_assistant
./build.sh

5.3 生成的文件

编译完成之后,会在k230_linux_sdk/buildroot-overlay/package/xiaozhi_assistant/k230_bin 目录下生成目标文件。

  • ui_and_ai:负责用户界面和人工智能相关功能。
  • xiaozhi_client:小智语音助手的客户端程序。
  • 此外还包括模型和图片,数据库等资源,需要整个k230_bin文件夹copy到板子上
├── SourceHanSansSC-Normal-Min.ttf
├── face_database
│   ├── 1.db
│   └── 1.name
├── face_detection_320.kmodel
├── face_detection_640.kmodel
├── face_recognition.kmodel
├── kws.kmodel
├── run.sh
├── stop.sh
├── ui_and_ai
├── wakeup_audio.pcm
├── xiaozhi
│   ├── HarmonyOS_Sans_SC_Regular.ttf
│   ├── img_joke.png
│   ├── img_naughty.png
│   └── img_think.png
└── xiaozhi_client

2 directories, 16 files

6.如何运行

6.1 升级IMG
USB烧录参考文档:
https://mp.weixin.qq.com/s/sQiaXgHr3q3j7HbjhWxSDA

6.2 开启WiFi,连接网络

ifconfig -a
ifconfig  wlan0 up
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
# 扫描热点# wpa_cli -i wlan0 scan# 打印扫描结果# wpa_cli -i wlan0 scan_result
wpa_cli -i wlan0 add_network
# 设置网络名称
wpa_cli -i wlan0 set_network 1 ssid '"wifi_test"'# 设置网络密码
wpa_cli -i wlan0 set_network 1 psk '"12345678"'# 连接网络
wpa_cli -i wlan0 select_network 1# 获取ip
udhcpc -i wlan0 -q

6.3 copy可执行程序到板子上

//板子上获取板子的IP地址
[root@canaan ~ ]#ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:232 errors:0 dropped:0 overruns:0 frame:0
          TX packets:232 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17152 (16.7 KiB)  TX bytes:17152 (16.7 KiB)

wlan0     Link encap:Ethernet  HWaddr 28:F5:2B:95:D7:06
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2af5:2bff:fe95:d706/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2066 (2.0 KiB)  TX bytes:2034 (1.9 KiB)

//在电脑端cmd命令行界面执行scp命令
scp -r k230_bin root@192.168.1.102:/root

6.4 运行应用

//修改屏幕驱动为LCD
cd /boot
cp k230-canmv-01studio-lcd.dtb k.dtb
sync
reboot

//测试屏幕是否正常运行,运行下面demo,查看屏幕是否有一个旋转的正方形
vglite_cube
//测试视频流到显示是否正常,查看摄像头是否正常显示在屏幕上
v4l2-drm -d 1 -w 480 -h 240

ifconfig  wlan0 up
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
# 扫描热点# wpa_cli -i wlan0 scan# 打印扫描结果# wpa_cli -i wlan0 scan_result
wpa_cli -i wlan0 add_network
# 设置网络名称
wpa_cli -i wlan0 set_network 1 ssid '"wifi_test"'# 设置网络密码
wpa_cli -i wlan0 set_network 1 psk '"12345678"'# 连接网络
wpa_cli -i wlan0 select_network 1# 获取ip
udhcpc -i wlan0 -q

cd /root/k230_bin/
chmod 777 *
./run.sh&

6.5 激活设备

让电脑和板子在同一个网段,使用网址https://xiaozhi.me/登录并激活板子设备,接下来就可以注册人脸,或者通过语音唤醒小智,进行对话聊天了!

6.6 退出应用

./stop.sh

注意事项

1、屏幕显示设置,lvgl_ui.cc 文件在如下路径

cd ~/canmv_k230_linux_0604/k230_linux_sdk/buildroot-overlay/package/xiaozhi_assistant/src/ui_and_ai/src

image.png

需要根据你的屏幕修改这三个设置。

这个demo 中 01Studio 屏幕旋转270度
2、运行时发现摄像头无法显示的情况:

//运行如下命令查看摄像头是否正常显示
v4l2-drm -d 1 -w 480 -h 240
//如果不正常,考虑是不是当前摄像头I2C地址不对,需要重新编译SDK
i2cdetect -y -r 1

3、发现小智无法工作应检查

  • 喇叭是否连接正常
  • ping检查网络是否正常

4、网络在每次重启板子都需要重新设置,如果觉得很麻烦,可以在初始化脚本里面增加 wifi 设置

//在板子上修改/etc/init.d/rcS 文件,在最后增加wifi的设置
ifconfig  wlan0 up
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
# 扫描热点# wpa_cli -i wlan0 scan# 打印扫描结果# wpa_cli -i wlan0 scan_result
wpa_cli -i wlan0 add_network
# 设置网络名称
wpa_cli -i wlan0 set_network 1 ssid '"wifi_test"'# 设置网络密码
wpa_cli -i wlan0 set_network 1 psk '"12345678"'# 连接网络
wpa_cli -i wlan0 select_network 1# 获取ip
udhcpc -i wlan0 -q

当 K230 的 "视觉之眼" 与小智大模型的 "智慧之脑" 深度融合,既打破了传统大模型依赖云端算力的局限,又赋予了设备本地化处理复杂视觉任务的能力。这一次,大模型真正拥有了 "眼睛",而属于边缘智能的黄金时代,才刚刚开始。

1 Answers