嵌入式
返回首页

RV1106 USB摄像头实时yolov5推理教程

2026-04-14 来源:EEWorld 论坛

背景:官方的rknn_yolov5_demo通常通过加载静态图片进行推理,但在实际应用中,常需从摄像头实时捕获图片进行推理,这带来了不便。因此,我们对官方demo进行了改造,使其支持摄像头实时捕获和推理。

首先,克隆修改后的代码库。可直接从GitHub获取:https://github.com/LitchiCheng/RV1106_Linux。主要修改点如下:

1. 修改工程主目录下的CMakeLists.txt:
指定交叉编译器:
set (CMAKE_C_COMPILER "/mnt/d/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc")
set (CMAKE_CXX_COMPILER "/mnt/d/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++")

增加预编译变量声明:
add_definitions(-DRV1106_1103)
添加v4l2工具类:
add_executable(${PROJECT_NAME}
main.cc
postprocess.cc
../v4l2/tools/v4l2CapPicTool.cpp
${rknpu2_yolov5_file}
)

修改安装路径:
install(TARGETS ${PROJECT_NAME} DESTINATION ${OUTPUTPATH})

2. 修改RV1106_Linux/yolov5/3rdparty下的CMakeLists.txt:
设置架构类型为armhf_uclibc:
if (CMAKE_C_COMPILER MATCHES "uclibc")
set (TARGET_LIB_ARCH ${TARGET_LIB_ARCH}_uclibc)
endif()

使用armhf_uclibc版本的runtime库:
set(RKNN_PATH ${CMAKE_CURRENT_SOURCE_DIR}/rknpu2)
set(LIBRKNNRT ${RKNN_PATH}/${CMAKE_SYSTEM_NAME}/armhf-uclibc/librknnmrt.so)
set(LIBRKNNRT_INCLUDES ${RKNN_PATH}/include PARENT_SCOPE)
install(PROGRAMS ${LIBRKNNRT} DESTINATION ${OUTPUTPATH}/lib)
set(LIBRKNNRT ${LIBRKNNRT} PARENT_SCOPE)

3. 修改main.cc:集成v4l2摄像头捕获功能,实时捕获图片并推理。代码示例:
int main(int argc, char **argv)
{
if (argc != 3)
{
printf("%s <model_path> <camera_path>\n", argv[0]);
return -1;
}
const char *model_path = argv[1];
const char *image_path = "tmp.jpg";
std::string camera_path = std::string(argv[2]);
v4l2CapPicTool vt(camera_path, 1080, 960, "jpg");
vt.init();
// ... 后续推理代码
}

4. 构建和运行:
创建构建目录:
mkdir build
cd build
cmake ..
make
make install

生成文件位于output目录,复制到RV1106开发板运行测试:
sudo ./rknn_yolov5_realtime model/yolov5s_relu.rknn /dev/video9

测试结果:成功从USB摄像头捕获图片,进行yolov5推理,输出检测结果如书籍、电视等对象。

更多详细步骤和完整代码,请参考原帖子:RV1106手把手教你:惊呆了!USB摄像头秒变AI助手,rknn轻松拍照做yolov5推理!

原帖子内容来源:https://bbs.eeworld.com.cn/thread-1274253-1-1.html



进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • PCM2707 USB音频数模转换芯片声卡

  • TDA2050立体声音频功率放大器

  • 基于LM317和TIP42的40V 2A电源

  • 序列式刹车/转向灯

  • 使用 PMIC 延长便携式应用中的电池寿命

  • 智能工厂的智能电源设计

    相关电子头条文章