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

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

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

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

基于LockAI視覺識別模塊:手寫數(shù)字識別

福州市凌睿智捷電子有限公司 ? 2025-06-30 15:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

手寫數(shù)字識別是一種經(jīng)典的模式識別和圖像處理問題,旨在通過計算機自動識別用戶手寫的數(shù)字。

本文將教會你如何使用基于RV1106的 LockAI視覺識別模塊進行手寫數(shù)字識別。

源代碼:https://gitee.com/LockzhinerAI/LockzhinerVisionModule/tree/master/Cpp_example/D02_DigitHandRecog

1. 基本知識講解

1.1 手寫數(shù)字識別簡介

手寫數(shù)字識別是一種利用計算機視覺機器學習技術(shù)自動識別手寫數(shù)字的過程。它通過圖像預(yù)處理、特征提取和模型訓練來實現(xiàn)高效準確的數(shù)字識別。被廣泛應(yīng)用于銀行支票處理、郵政編碼識別及考試評分等場景。這項技術(shù)不僅提高了數(shù)據(jù)處理的速度和準確性,還極大地簡化了輸入流程,為金融、郵政和教育等行業(yè)帶來了顯著的便利。

1.2 手寫數(shù)字識別常用方法

目前,實現(xiàn)手寫數(shù)字識別方法有很多,常用的方法如下:

卷積神經(jīng)網(wǎng)絡(luò)(CNN):最流行的方法之一,能夠自動從圖像中學習特征。適用于復(fù)雜背景和不同書寫風格的手寫數(shù)字識別。

支持向量機(SVM):一種傳統(tǒng)的機器學習方法,通過提取圖像的特征(如HOG特征)進行分類,適合處理較為規(guī)范的手寫數(shù)字。

K近鄰算法(KNN):基于相似度的分類方法,通過比較待識別數(shù)字與訓練樣本的距離來進行分類,簡單但計算成本較高。


2. C++ API文檔

2.1 PaddleClas類

2.1.1 頭文件

#include

作用:用于聲明PaddleClas類,使得PaddleClas類可以在當前源文件中使用。

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

lockzhiner_vision_module::PaddleClasmodel;

作用:用于實現(xiàn)手寫數(shù)字識別。

參數(shù)說明:

返回值:

2.1.3 Predict函數(shù)

autoresult=model.Predict(input_mat);

作用:PaddleClas類中的一個函數(shù),用于實現(xiàn)手寫數(shù)字識別。

參數(shù)說明:

input_mat:要識別的圖像。

返回值:

返回一個包含手寫數(shù)字分類結(jié)果的對象。該Result對象包含預(yù)測得分(score)和對應(yīng)的標簽ID(label_id),即識別出的手寫數(shù)字。

2.2 Visualize函數(shù)

2.2.1 頭文件

#include

作用:用于聲明Visualize函數(shù),使得Visualize函數(shù)可以在當前源文件中使用。

2.2.2 結(jié)果可視化

lockzhiner_vision_module::Visualize(input_mat,output_image,result);

參數(shù)說明:

input_mat:表示原始輸入圖像。

output_image:用于存儲帶有可視化結(jié)果的輸出圖像。

result:輸入?yún)?shù),表示手寫數(shù)字識別的結(jié)果。該Result對象包含預(yù)測得分(score)和對應(yīng)的標簽ID(label_id)。

返回值:


3. 綜合代碼解析

3.1 流程圖

17af7118-5586-11f0-986f-92fbcf53809c.png


3.2 核心代碼解析

初始化分類模型

lockzhiner_vision_module::PaddleClasmodel;

自定義函數(shù)參數(shù)如下

圖片手寫數(shù)字識別

intTestImage(conststd::string&image_path)

參數(shù)說明:

image_path:輸入?yún)?shù),表示包含手寫數(shù)字的圖像文件路徑。

返回值:

返回0表示成功執(zhí)行,并保存執(zhí)行結(jié)果為"cls_result.png"。

攝像頭實時手寫數(shù)字識別

intTestCapture()

參數(shù)說明:

返回值:

返回0表示執(zhí)行成功,并將檢測結(jié)果繪制在原始圖像上。程序會持續(xù)從攝像頭讀取幀并進行處理,直到手動終止程序。

3.3 完整代碼實現(xiàn)

#include#include#include#include#include#include#include#includeusingnamespacestd::chrono;lockzhiner_vision_module::PaddleClas model;intTestCapture(){ // 初始化 edit 模塊 lockzhiner_vision_module::Edit edit; if(!edit.StartAndAcceptConnection()) { std::cerr <> input_mat; if(input_mat.empty()) { continue; } // 使用 model 對象的 Predict 方法對輸入圖像進行預(yù)測 autoresult = model.Predict(input_mat); // 獲取當前時間點作為結(jié)束時間 high_resolution_clock::time_point end_time = high_resolution_clock::now(); autotime_span =duration_cast(end_time - start_time); time_ms += time_span.count(); read_index +=1; std::cout <

4. 編譯調(diào)試

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

請確保你已經(jīng)按照開發(fā)環(huán)境搭建指南正確配置了開發(fā)環(huán)境。

同時已經(jīng)正確連接開發(fā)板。

4.2 Cmake介紹

cmake_minimum_required(VERSION3.10)project(test_DigitHandRecog)set(CMAKE_CXX_STANDARD17)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-DigitHandRecogDigitHandRecog.cc)target_include_directories(Test-DigitHandRecogPRIVATE${LOCKZHINER_VISION_MODULE_INCLUDE_DIRS})target_link_libraries(Test-DigitHandRecogPRIVATE${OPENCV_LIBRARIES}${LOCKZHINER_VISION_MODULE_LIBRARIES})install( TARGETSTest-DigitHandRecog RUNTIME DESTINATION . )


4.3 編譯項目

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

# 進入Demo所在目錄cd/LockzhinerVisionModuleWorkSpace/LockzhinerVisionModule/Cpp_example/D02_DigitHandRecog# 創(chuàng)建編譯目錄rm-rf build &&mkdirbuild &&cdbuild# 配置交叉編譯工具鏈exportTOOLCHAIN_ROOT_PATH="/LockzhinerVisionModuleWorkSpace/arm-rockchip830-linux-uclibcgnueabihf"# 使用cmake配置項目cmake ..# 執(zhí)行編譯項目make -j8 && make install

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


5. 例程運行示例

5.1 運行前準備

請確保你已經(jīng)下載了凌智視覺模塊手寫數(shù)字分類模型

5.2 運行過程

在凌智視覺模塊輸入以下命令:

chmod777Test-DigitHandRecog# 調(diào)用攝像頭實時識別./Test-DigitHandRecogLZ-DigitHandRecog.rknn Capture# 單張圖像識別./Test-DigitHandRecogLZ-DigitHandRecog.rknn image_path

5.3 運行效果

圖像識別效果圖

  • 17c1d876-5586-11f0-986f-92fbcf53809c.png


  • 攝像頭實時識別效果圖

17f3cb88-5586-11f0-986f-92fbcf53809c.png

6. 總結(jié)

通過上述內(nèi)容,我們成功的實現(xiàn)了一個手寫數(shù)字識別系統(tǒng),包括:

獲取并加載包含手寫數(shù)字的圖像。

進行手寫數(shù)字的檢測和分類,返回檢測和分類后的結(jié)果。

可視化包含手寫數(shù)字圖像的識別結(jié)果。


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

    關(guān)注

    88

    文章

    35168

    瀏覽量

    280136
  • 視覺識別
    +關(guān)注

    關(guān)注

    3

    文章

    107

    瀏覽量

    17071
  • 數(shù)字識別
    +關(guān)注

    關(guān)注

    2

    文章

    21

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于LockAI視覺識別模塊:C++條碼識別

    條碼識別視覺模塊經(jīng)常使用到的功能之一,經(jīng)常用于識別超市的貨物信息。本文我們將演示如何基于瑞芯微RV1106的LockAI
    發(fā)表于 05-27 10:26

    基于LockAI視覺識別模塊手寫數(shù)字識別

    手寫數(shù)字識別是一種經(jīng)典的模式識別和圖像處理問題,旨在通過計算機自動識別用戶手寫
    發(fā)表于 06-30 16:45

    基于LockAI視覺識別模塊:C++人臉識別

    本文基于RV1106做成的LockAI視覺識別模塊,采用 LZ-Picodet 模型訓練的人臉檢測模型 LZ-Face,以及ArcFace人臉識別
    發(fā)表于 07-01 12:01

    基于分數(shù)本征特征的手寫數(shù)字識別

    特征提取是手寫數(shù)字識別研究中的重要問題,有效、穩(wěn)定的特征是提高識別率和識別精度的關(guān)鍵。該文提出了一種基于分數(shù)本征特征和核非線性分類器的
    發(fā)表于 05-24 11:42 ?13次下載

    基于分數(shù)本征特征的手寫數(shù)字識別

    特征提取是手寫數(shù)字識別研究中的重要問題,有效、穩(wěn)定的特征是提高識別率和識別精度的關(guān)鍵。該文提出了一種基于分數(shù)本征特征和核非線性分類器的
    發(fā)表于 10-28 17:05 ?0次下載

    基于MNIST的手寫數(shù)字識別系統(tǒng)

    手寫數(shù)字識別是圖像識別學科下的一個分支,是圖像處理和模式識別領(lǐng)域研究的課題之一,由于其具有很強的實用性一直是多年來的研究熱點。由于
    發(fā)表于 09-13 14:12 ?8次下載
    基于MNIST的<b class='flag-5'>手寫</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>識別</b>系統(tǒng)

    Pytorch實現(xiàn)MNIST手寫數(shù)字識別

    Pytorch 實現(xiàn)MNIST手寫數(shù)字識別
    發(fā)表于 06-16 14:47 ?7次下載

    ATKNCR數(shù)字字母手寫識別

    ATKNCR數(shù)字字母手寫識別庫分享
    發(fā)表于 09-28 11:22 ?0次下載

    基于LockAI視覺識別模塊:C++圖像采集例程

    本文主要演示如何使用LockAI視覺識別模塊進行視頻流的讀取,同時使用Edit模塊進行圖像傳輸。基礎(chǔ)知識講解1.1OpenCV簡介OpenC
    的頭像 發(fā)表于 04-30 18:23 ?232次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++圖像采集例程

    基于LockAI視覺識別模塊:C++圖像的基本運算

    在圖像處理中,理解圖像的基本操作是掌握計算機視覺技術(shù)的關(guān)鍵。本文章將介紹基于LockAI視覺識別模塊下OpenCV中圖像的基本運算方法,包括
    的頭像 發(fā)表于 05-06 16:20 ?235次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++圖像的基本運算

    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計信息

    在圖像處理中,統(tǒng)計信息可以幫助我們了解圖像的特性,例如區(qū)域內(nèi)的像素分布、顏色轉(zhuǎn)換以及特定區(qū)域的分析。本文將介紹基于LockAI視覺識別模塊如何提取興趣區(qū)域(ROI)、轉(zhuǎn)換顏色通道、計算
    的頭像 發(fā)表于 05-08 10:09 ?238次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++使用圖像的統(tǒng)計信息

    基于LockAI視覺識別模塊:C++二維碼識別

    二維碼識別視覺模塊經(jīng)常使用到的功能之一。我們將演示如何使用基于瑞芯微RV1106的LockAI視覺識別
    的頭像 發(fā)表于 05-26 09:42 ?290次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++二維碼<b class='flag-5'>識別</b>

    基于LockAI視覺識別模塊:C++條碼識別

    條碼識別視覺模塊經(jīng)常使用到的功能之一,經(jīng)常用于識別超市的貨物信息。本文我們將演示如何基于瑞芯微RV1106的LockAI
    的頭像 發(fā)表于 05-27 09:32 ?164次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++條碼<b class='flag-5'>識別</b>

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

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

    基于LockAI視覺識別模塊:C++人臉識別

    本文基于RV1106做成的LockAI視覺識別模塊,采用LZ-Picodet模型訓練的人臉檢測模型LZ-Face,以及ArcFace人臉識別
    的頭像 發(fā)表于 07-01 10:09 ?167次閱讀
    基于<b class='flag-5'>LockAI</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b><b class='flag-5'>模塊</b>:C++人臉<b class='flag-5'>識別</b>