一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RV1106平臺(tái)基于PaddleDetection的高效目標(biāo)檢測(cè)全指南(FPS 25 幀)

位東風(fēng) ? 來(lái)源:位東風(fēng) ? 作者:位東風(fēng) ? 2025-05-15 15:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

@TOC

目標(biāo)檢測(cè)

本文檔展示了如何使用 lockzhiner_vision_module::vision::PaddleDet 類(lèi)進(jìn)行目標(biāo)檢測(cè),并通過(guò)

lockzhiner_vision_module::vision::Visualize 函數(shù)將檢測(cè)結(jié)果可視化。


1. 基礎(chǔ)知識(shí)講解

1.1 目標(biāo)檢測(cè)的基本介紹

目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域中的一個(gè)關(guān)鍵任務(wù),它不僅需要識(shí)別圖像中存在哪些對(duì)象,還需要定位這些對(duì)象的位置。具體來(lái)說(shuō),目標(biāo)檢測(cè)算法會(huì)輸出每個(gè)檢測(cè)到的對(duì)象的邊界框(Bounding Box)以及其所屬類(lèi)別的概率或置信度得分。

  • 應(yīng)用場(chǎng)景:目標(biāo)檢測(cè)技術(shù)廣泛應(yīng)用于多個(gè)領(lǐng)域,包括但不限于安全監(jiān)控、自動(dòng)駕駛汽車(chē)、智能零售和醫(yī)療影像分析。

1.2 PaddleDetection 的基本介紹

PaddleDetection 是基于百度飛槳深度學(xué)習(xí)框架開(kāi)發(fā)的一個(gè)高效的目標(biāo)檢測(cè)庫(kù),支持多種先進(jìn)的目標(biāo)檢測(cè)模型,如 YOLO 系列、SSD、Faster R-CNN、Mask R-CNN 等。它提供了簡(jiǎn)單易用的接口,使得開(kāi)發(fā)者能夠快速部署高性能的目標(biāo)檢測(cè)應(yīng)用。

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

2. API 文檔

2.1 PaddleDetection 類(lèi)

2.1.1 頭文件

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

2.1.2 構(gòu)造函數(shù)

lockzhiner_vision_module::vision::PaddleDetection();
  • 作用:
    • 創(chuàng)建一個(gè) PaddleDetection 對(duì)象,并初始化相關(guān)成員變量。
  • 參數(shù):
    • 無(wú)
  • 返回值:
    • 無(wú)

2.1.3 Initialize函數(shù)

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

2.1.4 SetThreshold函數(shù)

void SetThreshold(float score_threshold = 0.5, float nms_threshold = 0.3);
  • 作用:
    • 設(shè)置目標(biāo)檢測(cè)的置信度閾值和NMS閾值。
  • 參數(shù):
    • score_threshold:置信度閾值,默認(rèn)值為0.5。
    • nms_threshold:NMS閾值,默認(rèn)值為0.3。
  • 返回值:
    • 無(wú)

2.1.5 Predict函數(shù)

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

2.2 DetectionResult 類(lèi)

2.2.1 頭文件

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

2.2.2 box函數(shù)

lockzhiner_vision_module::vision::Rect box() const;
  • 作用:
    • 獲取目標(biāo)檢測(cè)結(jié)果的邊界框。
  • 參數(shù):
    • 無(wú)
  • 返回值:
    • 返回一個(gè) lockzhiner_vision_module::vision::Rect 對(duì)象,表示目標(biāo)檢測(cè)結(jié)果的邊界框。

2.2.3 score函數(shù)

float score() const;
  • 作用:
    • 獲取目標(biāo)檢測(cè)結(jié)果的置信度得分。
  • 參數(shù):
    • 無(wú)
  • 返回值:
    • 返回一個(gè) float 類(lèi)型的置信度得分。

2.2.4 label_id函數(shù)

  • 作用:
  • 參數(shù):
    • 無(wú)
  • 返回值:
    • 返回一個(gè)整數(shù),表示目標(biāo)檢測(cè)結(jié)果的標(biāo)簽ID。

2.3 Visualize 函數(shù)

2.3.1 頭文件

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

2.3.2 函數(shù)定義

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

);
  • 作用:
    • 將目標(biāo)檢測(cè)結(jié)果可視化到輸入圖像上,并返回可視化后的圖像。
  • 參數(shù):
    • input_mat (const cv::Mat&): 輸入圖像。
    • output_image (cv::Mat&): 輸出圖像,包含標(biāo)注后的結(jié)果。
    • results (const std::vectorlockzhiner_vision_module::vision::DetectionResult&): 檢測(cè)結(jié)果列表。
    • labels (const std::vectorstd::string&): 可選的標(biāo)簽列表,用于標(biāo)注類(lèi)別名稱(chēng),默認(rèn)為空。
    • font_scale (float): 字體大小比例,默認(rèn)為 0.4。
  • 返回值:
    • 無(wú)

3. 示例代碼解析

3.1 流程圖

開(kāi)始

|

|-- 檢查參數(shù)個(gè)數(shù)是否為2

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

|

|-- 初始化模型

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

|

|-- 初始化編輯模塊

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

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

|

|-- 打開(kāi)攝像頭

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

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

|

|-- 進(jìn)入無(wú)限循環(huán)

|   |

|   |-- 捕獲一幀圖像

|   |   |-- 圖像為空 - > 輸出 "Warning: Captured an empty frame." 并繼續(xù)下一次循環(huán)

|   |

|   |-- 調(diào)用模型進(jìn)行預(yù)測(cè)

|   |   |-- 記錄開(kāi)始時(shí)間

|   |   |-- 獲取預(yù)測(cè)結(jié)果

|   |   |-- 記錄結(jié)束時(shí)間

|   |

|   |-- 計(jì)算推理時(shí)間

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

|   |

|   |-- 可視化結(jié)果

|   |   |-- 創(chuàng)建輸出圖像

|   |   |-- 調(diào)用可視化函數(shù)

|   |

|   |-- 打印輸出圖像

|

|-- 釋放攝像頭資源

|

|-- 程序正常退出 (返回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);
  • 可視化推理結(jié)果
cv::Mat output_image;

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


edit.Print(output_image);

[表情] 點(diǎn)擊獲取完整源碼


4. 編譯過(guò)程

4.1 編譯環(huán)境搭建

4.2 Cmake介紹

cmake_minimum_required(VERSION 3.10)


project(D01_test_detection)


set(CMAKE_CXX_STANDARD 17)

set(CMAKE_CXX_STANDARD_REQUIRED ON)


# 定義項(xiàng)目根目錄路徑

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 編譯項(xiàng)目

使用 Docker Destop 打開(kāi) LockzhinerVisionModule 容器并執(zhí)行以下命令來(lái)編譯項(xiàng)目

# 進(jìn)入Demo所在目錄

cd /LockzhinerVisionModuleWorkSpace/LockzhinerVisionModule/Cpp_example/D01_test_detection

# 創(chuàng)建編譯目錄

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

# 配置交叉編譯工具鏈

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

# 使用cmake配置項(xiàng)目

cmake ..

# 執(zhí)行編譯項(xiàng)目

make -j8 && make install

在執(zhí)行完上述命令后,會(huì)在build目錄下生成可執(zhí)行文件。


5. 例程運(yùn)行示例

5.1 運(yùn)行

chmod 777 Test-detection

# 在實(shí)際應(yīng)用的過(guò)程中LZ-Picodet需要替換為下載的或者你的rknn模型

./Test-detection LZ-Picodet

5.2 結(jié)果展示

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

在這里插入圖片描述


6. 總結(jié)

本文檔詳細(xì)介紹了目標(biāo)檢測(cè)的基礎(chǔ)知識(shí)及 PaddleDetection 的基本概念,并提供了詳細(xì)的API文檔說(shuō)明,幫助開(kāi)發(fā)者理解和實(shí)現(xiàn)目標(biāo)檢測(cè)與可視化功能。通過(guò)上述流程,可以構(gòu)建高效的實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng),滿(mǎn)足多種應(yīng)用場(chǎng)景的需求。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1617

    瀏覽量

    64024
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1262

    瀏覽量

    21855
  • 目標(biāo)檢測(cè)
    +關(guān)注

    關(guān)注

    0

    文章

    225

    瀏覽量

    16015
  • rv1106
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    《電子發(fā)燒友電子設(shè)計(jì)周報(bào)》聚焦硬科技領(lǐng)域核心價(jià)值 第11期:2025.05.12--2025.05.16

    2、RV1106平臺(tái)基PaddleDetection高效目標(biāo)檢測(cè)
    發(fā)表于 05-16 19:47

    基于LockAI視覺(jué)識(shí)別模塊:C++目標(biāo)檢測(cè)

    本文檔基于瑞芯微RV1106的LockAI凌智視覺(jué)識(shí)別模塊,通過(guò)C++語(yǔ)言做的目標(biāo)檢測(cè)實(shí)驗(yàn)。 本文檔展示了如何使用 lockzhiner_vision_module::vision
    發(fā)表于 06-06 14:43

    怎么去寫(xiě)基于RV1126平臺(tái)的imx291驅(qū)動(dòng)源碼呢

    怎么去寫(xiě)基于RV1126平臺(tái)的imx291驅(qū)動(dòng)源碼呢?如何對(duì)基于RV1126平臺(tái)imx291的dts進(jìn)行配置呢?
    發(fā)表于 03-10 07:41

    如何對(duì)基于RV1109平臺(tái)的SPI進(jìn)行調(diào)試呢

    如何對(duì)基于RV1109平臺(tái)的SPI進(jìn)行調(diào)試呢?如何對(duì)基于RV1109平臺(tái)的SPI進(jìn)行測(cè)試呢?
    發(fā)表于 03-10 07:43

    RV1106網(wǎng)口燈控制腳

    RV1106上關(guān)于網(wǎng)口連接的引腳沒(méi)有RJ45燈的控制腳,那么RJ45燈控制腳應(yīng)該接哪里?
    發(fā)表于 06-21 14:44

    Cortex-A8的RealView平臺(tái)基板用戶(hù)指南

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

    【LuckFox Pico Plus開(kāi)發(fā)板免費(fèi)試用】上手體驗(yàn)

    RV1103采用智能音頻方案,支持回聲消除、語(yǔ)音降噪、哭聲檢測(cè)、異常聲音檢測(cè)等,支持高清語(yǔ)音,增強(qiáng)聲音采集及遠(yuǎn)距離拾音。 5、快速啟動(dòng)瞬時(shí)響應(yīng),高性能低功耗 RV1106
    發(fā)表于 11-01 17:47

    【LuckFox Pico Plus開(kāi)發(fā)板免費(fèi)試用】RKNN模型推理測(cè)試

    為開(kāi)發(fā)者提供一個(gè)簡(jiǎn)單且高效的開(kāi)發(fā)平臺(tái)。雖然LuckFox Pico作為入門(mén)級(jí)開(kāi)發(fā)板只有幾十塊錢(qián),但是它具有人工智能協(xié)處理器NPU,也可以實(shí)現(xiàn)人工智能的推理工作。瑞芯微 RV1103芯片采用了和RK3568
    發(fā)表于 11-11 16:51

    瑞芯微發(fā)布新一代機(jī)器視覺(jué)解決方案

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

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

    國(guó)際領(lǐng)先的半導(dǎo)體元器件分銷(xiāo)商大聯(lián)大控股宣布,其旗下子公司世平近期推出了基于瑞芯微(Rockchip)RV1106芯片的低功耗AOV(智能網(wǎng)絡(luò)攝像機(jī))IPC(網(wǎng)絡(luò)攝像機(jī))解決方案。這一創(chuàng)新方案專(zhuān)為
    的頭像 發(fā)表于 12-11 11:42 ?1759次閱讀

    RV1106核心特性概述

    RV1106是一款集高性能處理器與先進(jìn)多媒體功能于一體的創(chuàng)新芯片,專(zhuān)為滿(mǎn)足現(xiàn)代智能設(shè)備對(duì)高效能與靈活性的需求而設(shè)計(jì)。其主要特性包括: 處理器配置: 中央處理器:融合了Cortex A7處理器與MCU
    的頭像 發(fā)表于 02-11 17:07 ?2382次閱讀

    瑞芯微rv1106開(kāi)發(fā)資料 rv1106數(shù)據(jù)手冊(cè) rv1106詳細(xì)說(shuō)明書(shū)免費(fèi)下載

    瑞芯微rv1106開(kāi)發(fā)資料 rv1106數(shù)據(jù)手冊(cè) rv1106詳細(xì)說(shuō)明書(shū)免費(fèi)下載
    的頭像 發(fā)表于 05-19 11:16 ?1471次閱讀
    瑞芯微<b class='flag-5'>rv1106</b>開(kāi)發(fā)資料 <b class='flag-5'>rv1106</b>數(shù)據(jù)手冊(cè) <b class='flag-5'>rv1106</b>詳細(xì)說(shuō)明書(shū)免費(fèi)下載

    基于LockAI視覺(jué)識(shí)別模塊:C++目標(biāo)檢測(cè)

    本文檔基于瑞芯微RV1106的LockAI凌智視覺(jué)識(shí)別模塊,通過(guò)C++語(yǔ)言做的目標(biāo)檢測(cè)實(shí)驗(yàn)。本文檔展示了如何使用lockzhiner_vision_module::PaddleDet類(lèi)進(jìn)行目標(biāo)
    的頭像 發(fā)表于 06-06 13:56 ?217次閱讀
    基于LockAI視覺(jué)識(shí)別模塊:C++<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>

    基于LockAI視覺(jué)識(shí)別模塊:C++人臉識(shí)別

    本文基于RV1106做成的LockAI視覺(jué)識(shí)別模塊,采用LZ-Picodet模型訓(xùn)練的人臉檢測(cè)模型LZ-Face,以及ArcFace人臉識(shí)別模型,實(shí)現(xiàn)人臉識(shí)別系統(tǒng)。
    的頭像 發(fā)表于 07-01 10:09 ?162次閱讀
    基于LockAI視覺(jué)識(shí)別模塊:C++人臉識(shí)別