LuckFox平台非常成熟,应用开发方便,可以使用C++语言开发,锐英源软件专注C++开发20多年,对于各类平台下的C++开发产品化能力有独到之处。
LuckFox Pico Max是基于瑞芯微 RV1106 G3芯片。LuckFox Pico Pro 是基于瑞芯微 RV1106 G2芯片。
RV1106 是一款专门用于人工智能相关应用的高度集成 IPC 视觉处理器 SoC。它基于单核 ARM Cortex-A7 32 位内核,集成了 NEON 和 FPU,并内置 NPU 支持 INT4 / INT8 / INT16 混合运算,计算能力高达 0.5TOPs。
此外,它采用了全新的基于硬件的 ISP,支持多种算法加速器,如 HDR、3A、LSC、3DNR、2DNR、锐化、去雾、伽马校正等。同时,它还具有内置的16位DRAM DDR3L,可维持要求苛刻的内存带宽,以及内置的 POR,RTC,音频编解码器和 MAC PHY。
开发板支持多个接口,包括 GPIO、UART、SPI、I2C、USB 等,方便开发者进行快速开发和调试。值得注意的是,Luckfox Pico 全系列开发板支持 buildroot 和 Ubuntu22.04系统,让开发者根据项目需求选择合适的系统,更灵活满足特定应用要求。
LuckFox平台应用开发主要步骤:。
· 硬件准备。
· 操作系统准备。
· 模拟开发环境准备。
· 开发编写代码,模拟测试通过。
· 应用编译和嵌入式环境部署。
· 现场联调。
LuckFox平台应用开发C++代码重点介绍,下载代码后,看到各类Demo应用的main函数,里面的代码,比如和AI大模型相关的调用,如下代码:
cv::Mat letterboxImage = letterbox(frame);
memcpy(rknn_app_ctx.input_mems[0]->virt_addr, letterboxImage.data, model_width*model_height*3);
inference_yolov5_model(&rknn_app_ctx, &od_results);
for(int i = 0; i < od_results.count; i++)
{
if(od_results.count >= 1)
{
object_detect_result *det_result = &(od_results.results[i]);
sX = (int)(det_result->box.left );
sY = (int)(det_result->box.top );
eX = (int)(det_result->box.right );
eY = (int)(det_result->box.bottom );
mapCoordinates(&sX,&sY);
mapCoordinates(&eX,&eY);
printf("%s @ (%d %d %d %d) %.3f\n", coco_cls_to_name(det_result->cls_id),
sX, sY, eX, eY, det_result->prop);
cv::rectangle(frame,cv::Point(sX ,sY),
cv::Point(eX ,eY),
cv::Scalar(0,255,0),3);
sprintf(text, "%s %.1f%%", coco_cls_to_name(det_result->cls_id), det_result->prop * 100);
cv::putText(frame,text,cv::Point(sX, sY - 8),
cv::FONT_HERSHEY_SIMPLEX,1,
cv::Scalar(0,255,0),2);
}
}
model是调用大模型的通用方法,od_results.results里是识别结果,cv::rectangle是绘制矩形,cv::putText是绘制文本。先对基本原理代码理解,再进行后续应用开发。