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

Viewed 209

问题描述


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

image.png

一、硬件准备

image.png
1、一块庐山派K230开发板
2、摄像头(本次demo使用GC2093),考虑到实际的可操作性,有条件可以增加一个前置摄像头
3、一块触摸屏(UI操作人脸注册使用,https://item.szlcsc.com/44319751.html)
4、板子上已经有板载Mic,外接一个喇叭(带电池或电源接入的喇叭)
5、usb转ttl转接板和杜邦线(请注意一定要接上串口,Linux操作系统为命令行操作)
6、SD卡
7、电源线
image.png
image.png

二、软件准备

我们有编译好的SDK包和bin文件,下载之后直接跳转到第6步。
注意:
庐山派开发板SDK,需要外接立创·3.1寸屏幕,外接GC2093摄像头,接到CSI1摄像头
庐山派 SDK和bin下载链接:
https://kendryte-download.canaan-creative.com/developer/k230/LCKFB_XIAOZHI_IMG_0610.zip

自己编译SDK和小智

1、下载并编译K230 Linux SDK 点击下载

下载Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2.tar.gz 文件
点击下载地址1
点击下载地址2

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_lckfb_defconfig BR2_PRIMARY_SITE=https://kendryte-download.canaan-creative.com/k230/downloads/dl/

2、修改板子的config文件,使能以下配置
配置文件:k230_linux_sdk/buildroot-overlay/configs/k230_canmv_lckfb_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、根据你的摄像头连接,修改配置文件,参考如下:
点击查看

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_lckfb_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 运行应用


//测试屏幕是否正常运行,运行下面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://xiazhi.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
需要根据你的屏幕修改这三个设置。
庐山派的屏幕旋转90度

2、网络在每次重启板子都需要重新设置,如果觉得很麻烦,可以在初始化脚本里面增加 wifi 设置,保存之后,重启就会自动开启并设置 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 的 "视觉之眼" 与小智大模型的 "智慧之脑" 深度融合,既打破了传统大模型依赖云端算力的局限,又赋予了设备本地化处理复杂视觉任务的能力。这一次,大模型真正拥有了 "眼睛",而属于边缘智能的黄金时代,才刚刚开始。
3 Answers

刚烧录庐山派就翻车了qvq
image.png

完成了6.1 升级IMG之后,怎么进行6.2?我连接串口后,用mobaXterm工具,按照以下步骤,打开终端啥也没有,输入不进去字符

  1. 打开 MobaXterm
  2. 点击左上角 Session → Serial
  3. 在「Serial port」选择刚刚识别的 COM 口
  4. 设置:
    ○ Speed (Baud rate):115200
    ○ Data bits:8
    ○ Parity:None
    ○ Stop bits:1
  5. 点击 OK 连接