女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RV1106平臺基于PaddleDetection的高效目標檢測全指南(FPS 25 幀)

位東風 ? 來源:位東風 ? 作者:位東風 ? 2025-05-15 15:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

@TOC

目標檢測

本文檔展示了如何使用 lockzhiner_vision_module::vision::PaddleDet 類進行目標檢測,并通過

lockzhiner_vision_module::vision::Visualize 函數將檢測結果可視化。


1. 基礎知識講解

1.1 目標檢測的基本介紹

目標檢測是計算機視覺領域中的一個關鍵任務,它不僅需要識別圖像中存在哪些對象,還需要定位這些對象的位置。具體來說,目標檢測算法會輸出每個檢測到的對象的邊界框(Bounding Box)以及其所屬類別的概率或置信度得分。

  • 應用場景:目標檢測技術廣泛應用于多個領域,包括但不限于安全監控、自動駕駛汽車、智能零售和醫療影像分析。

1.2 PaddleDetection 的基本介紹

PaddleDetection 是基于百度飛槳深度學習框架開發的一個高效的目標檢測庫,支持多種先進的目標檢測模型,如 YOLO 系列、SSD、Faster R-CNN、Mask R-CNN 等。它提供了簡單易用的接口,使得開發者能夠快速部署高性能的目標檢測應用。

  • 特點:
    • 高性能:優化了推理速度,在保持高精度的同時實現了快速響應。
    • 靈活性:支持多種預訓練模型,可以根據具體需求選擇合適的模型架構。
    • 易于集成:提供 C++ API,便于嵌入式系統或桌面應用程序中使用。
    • 豐富的模型庫:涵蓋單階段(One-stage)和雙階段(Two-stage)檢測模型,滿足不同場景的需求。
  • 適用場景:適用于需要對視頻流或圖像進行實時分析的應用場景,例如安防監控、智能交通系統、工業自動化等。

2. API 文檔

2.1 PaddleDetection 類

2.1.1 頭文件

#include < lockzhiner_vision_module/vision/deep_learning/detection/paddle_det.h >

2.1.2 構造函數

lockzhiner_vision_module::vision::PaddleDetection();
  • 作用:
    • 創建一個 PaddleDetection 對象,并初始化相關成員變量。
  • 參數:
  • 返回值:

2.1.3 Initialize函數

bool Initialize(const std::string& model_path);
  • 作用:
    • 加載預訓練的 PaddleDetection 模型。
  • 參數:
    • model_path:模型路徑,包含模型文件和參數文件。
  • 返回值:
    • true:模型加載成功。
    • false:模型加載失敗。

2.1.4 SetThreshold函數

void SetThreshold(float score_threshold = 0.5, float nms_threshold = 0.3);
  • 作用:
    • 設置目標檢測的置信度閾值和NMS閾值。
  • 參數:
    • score_threshold:置信度閾值,默認值為0.5。
    • nms_threshold:NMS閾值,默認值為0.3。
  • 返回值:

2.1.5 Predict函數

std::vector< lockzhiner_vision_module::vision::DetectionResult > Predict(const cv::Mat& image);
  • 作用:
    • 使用加載的模型對輸入圖像進行目標檢測,返回檢測結果。
  • 參數:
    • input_mat (const cv::Mat&): 輸入的圖像數據,通常是一個 cv::Mat 變量。
  • 返回值:
    • 返回一個包含多個 DetectionResult 對象的向量,每個對象表示一個檢測結果。

2.2 DetectionResult 類

2.2.1 頭文件

#include < lockzhiner_vision_module/vision/utils/visualize.h >

2.2.2 box函數

lockzhiner_vision_module::vision::Rect box() const;
  • 作用:
    • 獲取目標檢測結果的邊界框。
  • 參數:
  • 返回值:
    • 返回一個 lockzhiner_vision_module::vision::Rect 對象,表示目標檢測結果的邊界框。

2.2.3 score函數

float score() const;
  • 作用:
    • 獲取目標檢測結果的置信度得分。
  • 參數:
  • 返回值:
    • 返回一個 float 類型的置信度得分。

2.2.4 label_id函數

  • 作用:
    • 獲取目標檢測結果的標簽ID。
  • 參數:
  • 返回值:
    • 返回一個整數,表示目標檢測結果的標簽ID。

2.3 Visualize 函數

2.3.1 頭文件

#include < lockzhiner_vision_module/vision/utils/visualize.h >

2.3.2 函數定義

void lockzhiner_vision_module::vision::Visualize(

    const cv::Mat& input_mat,

    cv::Mat& output_image,

    const std::vector< lockzhiner_vision_module::vision::DetectionResult >& results,

    const std::vector< std::string >& labels = {},

    float font_scale = 0.4

);
  • 作用:
    • 將目標檢測結果可視化到輸入圖像上,并返回可視化后的圖像。
  • 參數:
    • input_mat (const cv::Mat&): 輸入圖像。
    • output_image (cv::Mat&): 輸出圖像,包含標注后的結果。
    • results (const std::vectorlockzhiner_vision_module::vision::DetectionResult&): 檢測結果列表。
    • labels (const std::vectorstd::string&): 可選的標簽列表,用于標注類別名稱,默認為空。
    • font_scale (float): 字體大小比例,默認為 0.4。
  • 返回值:

3. 示例代碼解析

3.1 流程圖

開始

|

|-- 檢查參數個數是否為2

|   |-- 不是 - > 輸出 "Usage: Test-PaddleDet model_path" 并返回1

|

|-- 初始化模型

|   |-- 失敗 - > 輸出 "Failed to initialize model." 并返回1

|

|-- 初始化編輯模塊

|   |-- 失敗 - > 輸出 "Error: Failed to start and accept connection." 并返回EXIT_FAILURE

|   |-- 成功 - > 輸出 "Device connected successfully."

|

|-- 打開攝像頭

|   |-- 設置分辨率 (640x480)

|   |-- 打開攝像頭失敗 - > 輸出 "Error: Could not open camera." 并返回1

|

|-- 進入無限循環

|   |

|   |-- 捕獲一幀圖像

|   |   |-- 圖像為空 - > 輸出 "Warning: Captured an empty frame." 并繼續下一次循環

|   |

|   |-- 調用模型進行預測

|   |   |-- 記錄開始時間

|   |   |-- 獲取預測結果

|   |   |-- 記錄結束時間

|   |

|   |-- 計算推理時間

|   |   |-- 輸出 "Inference time: X ms"

|   |

|   |-- 可視化結果

|   |   |-- 創建輸出圖像

|   |   |-- 調用可視化函數

|   |

|   |-- 打印輸出圖像

|

|-- 釋放攝像頭資源

|

|-- 程序正常退出 (返回0)

3.2 核心代碼解析

  • 初始化模型
lockzhiner_vision_module::vision::PaddleDet model;

if (!model.Initialize(argv[1])) {

    std::cout < < "Failed to initialize model." < < std::endl;

    return 1;

}
  • 模型推理
auto results = model.Predict(input_mat);
  • 可視化推理結果
cv::Mat output_image;

lockzhiner_vision_module::vision::Visualize(input_mat, output_image, results);


edit.Print(output_image);

[表情] 點擊獲取完整源碼


4. 編譯過程

4.1 編譯環境搭建

4.2 Cmake介紹

cmake_minimum_required(VERSION 3.10)


project(D01_test_detection)


set(CMAKE_CXX_STANDARD 17)

set(CMAKE_CXX_STANDARD_REQUIRED ON)


# 定義項目根目錄路徑

set(PROJECT_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../..")

message("PROJECT_ROOT_PATH = " ${PROJECT_ROOT_PATH})


include("${PROJECT_ROOT_PATH}/toolchains/arm-rockchip830-linux-uclibcgnueabihf.toolchain.cmake")


# 定義 OpenCV SDK 路徑

set(OpenCV_ROOT_PATH "${PROJECT_ROOT_PATH}/third_party/opencv-mobile-4.10.0-lockzhiner-vision-module")

set(OpenCV_DIR "${OpenCV_ROOT_PATH}/lib/cmake/opencv4")

find_package(OpenCV REQUIRED)

set(OPENCV_LIBRARIES "${OpenCV_LIBS}")


# 定義 LockzhinerVisionModule SDK 路徑

set(LockzhinerVisionModule_ROOT_PATH "${PROJECT_ROOT_PATH}/third_party/lockzhiner_vision_module_sdk")

set(LockzhinerVisionModule_DIR "${LockzhinerVisionModule_ROOT_PATH}/lib/cmake/lockzhiner_vision_module")

find_package(LockzhinerVisionModule REQUIRED)


add_executable(Test-detection test_detection.cc)

target_include_directories(Test-detection PRIVATE ${LOCKZHINER_VISION_MODULE_INCLUDE_DIRS})

target_link_libraries(Test-detection PRIVATE ${OPENCV_LIBRARIES} ${LOCKZHINER_VISION_MODULE_LIBRARIES})


install(

    TARGETS Test-detection

    RUNTIME DESTINATION .  

)

4.3 編譯項目

使用 Docker Destop 打開 LockzhinerVisionModule 容器并執行以下命令來編譯項目

# 進入Demo所在目錄

cd /LockzhinerVisionModuleWorkSpace/LockzhinerVisionModule/Cpp_example/D01_test_detection

# 創建編譯目錄

rm -rf build && mkdir build && cd build

# 配置交叉編譯工具鏈

export TOOLCHAIN_ROOT_PATH="/LockzhinerVisionModuleWorkSpace/arm-rockchip830-linux-uclibcgnueabihf"

# 使用cmake配置項目

cmake ..

# 執行編譯項目

make -j8 && make install

在執行完上述命令后,會在build目錄下生成可執行文件。


5. 例程運行示例

5.1 運行

chmod 777 Test-detection

# 在實際應用的過程中LZ-Picodet需要替換為下載的或者你的rknn模型

./Test-detection LZ-Picodet

5.2 結果展示

  • 可以看到我們正確識別了綠色的方塊,同時打印了標簽和置信度。

在這里插入圖片描述


6. 總結

本文檔詳細介紹了目標檢測的基礎知識及 PaddleDetection 的基本概念,并提供了詳細的API文檔說明,幫助開發者理解和實現目標檢測與可視化功能。通過上述流程,可以構建高效的實時目標檢測系統,滿足多種應用場景的需求。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1568

    瀏覽量

    63730
  • 可視化
    +關注

    關注

    1

    文章

    1256

    瀏覽量

    21736
  • 目標檢測
    +關注

    關注

    0

    文章

    223

    瀏覽量

    15959
  • rv1106
    +關注

    關注

    0

    文章

    5

    瀏覽量

    82
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Rockchip RV1106系列規格差異詳解:如何選擇最適合您的AI視覺處理器?

    近年來,隨著AI技術的飛速發展,瑞芯微推出的RV1106系列經濟型AI視覺處理器備受關注。尤其是2024年推出的RV1106B系列,憑借其多樣化的規格和應用場景,成為市場上的熱門選擇。那么
    的頭像 發表于 06-16 09:37 ?1483次閱讀
    Rockchip <b class='flag-5'>RV1106</b>系列規格差異詳解:如何選擇最適合您的AI視覺處理器?

    使用RTSP攝像頭執行多攝像頭多目標Python演示,缺少輸出是怎么回事?

    使用 RTSP 攝像頭執行 多攝像頭多目標 Python 演示 。 現場視頻每 5 秒出現一次啟動和抖動,但缺失。 輸出生產低 FPS (1 至 0.3 FPS)。 人員
    發表于 03-06 07:55

    《電子發燒友電子設計周報》聚焦硬科技領域核心價值 第11期:2025.05.12--2025.05.16

    2、RV1106平臺基PaddleDetection高效目標檢測
    發表于 05-16 19:47

    基于LockAI視覺識別模塊:C++目標檢測

    本文檔基于瑞芯微RV1106的LockAI凌智視覺識別模塊,通過C++語言做的目標檢測實驗。 本文檔展示了如何使用 lockzhiner_vision_module::vision
    發表于 06-06 14:43

    怎么去寫基于RV1126平臺的imx291驅動源碼呢

    怎么去寫基于RV1126平臺的imx291驅動源碼呢?如何對基于RV1126平臺imx291的dts進行配置呢?
    發表于 03-10 07:41

    如何對基于RV1109平臺的SPI進行調試呢

    如何對基于RV1109平臺的SPI進行調試呢?如何對基于RV1109平臺的SPI進行測試呢?
    發表于 03-10 07:43

    RV1106網口燈控制腳

    RV1106上關于網口連接的引腳沒有RJ45燈的控制腳,那么RJ45燈控制腳應該接哪里?
    發表于 06-21 14:44

    Cortex-A8的RealView平臺基板用戶指南

    Cortex?-A8平臺基板(PB-A8)是第一款高度集成的軟件以及基于ARM Cortex系列的硬件開發系統超標量處理器。底板在ATX配置文件中提供自供電圈占地PB-A8是一個獨立使用的快速
    發表于 08-08 06:12

    【LuckFox Pico Plus開發板免費試用】上手體驗

    RV1103采用智能音頻方案,支持回聲消除、語音降噪、哭聲檢測、異常聲音檢測等,支持高清語音,增強聲音采集及遠距離拾音。 5、快速啟動瞬時響應,高性能低功耗 RV1106
    發表于 11-01 17:47

    【LuckFox Pico Plus開發板免費試用】RKNN模型推理測試

    為開發者提供一個簡單且高效的開發平臺。雖然LuckFox Pico作為入門級開發板只有幾十塊錢,但是它具有人工智能協處理器NPU,也可以實現人工智能的推理工作。瑞芯微 RV1103芯片采用了和RK3568
    發表于 11-11 16:51

    瑞芯微發布新一代機器視覺解決方案

    瑞芯微電子股份有限公司(以下簡稱“瑞芯微”)正式發布新一代機器視覺方案RV1106RV1103,兩顆芯片在NPU、ISP、視頻編碼、音頻處理等性能均有顯著升級,具有高集成度、高性價比、低待機功耗的特點。RV1106
    的頭像 發表于 02-18 14:41 ?2429次閱讀

    大聯大控股世平推出基于瑞芯微RV1106的低功耗AOV IPC方案

    國際領先的半導體元器件分銷商大聯大控股宣布,其旗下子公司世平近期推出了基于瑞芯微(Rockchip)RV1106芯片的低功耗AOV(智能網絡攝像機)IPC(網絡攝像機)解決方案。這一創新方案專為
    的頭像 發表于 12-11 11:42 ?1690次閱讀

    RV1106核心特性概述

    RV1106是一款集高性能處理器與先進多媒體功能于一體的創新芯片,專為滿足現代智能設備對高效能與靈活性的需求而設計。其主要特性包括: 處理器配置: 中央處理器:融合了Cortex A7處理器與MCU
    的頭像 發表于 02-11 17:07 ?2230次閱讀

    瑞芯微rv1106開發資料 rv1106數據手冊 rv1106詳細說明書免費下載

    瑞芯微rv1106開發資料 rv1106數據手冊 rv1106詳細說明書免費下載
    的頭像 發表于 05-19 11:16 ?1055次閱讀
    瑞芯微<b class='flag-5'>rv1106</b>開發資料 <b class='flag-5'>rv1106</b>數據手冊 <b class='flag-5'>rv1106</b>詳細說明書免費下載

    基于LockAI視覺識別模塊:C++目標檢測

    本文檔基于瑞芯微RV1106的LockAI凌智視覺識別模塊,通過C++語言做的目標檢測實驗。本文檔展示了如何使用lockzhiner_vision_module::PaddleDet類進行目標
    的頭像 發表于 06-06 13:56 ?177次閱讀
    基于LockAI視覺識別模塊:C++<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>