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

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

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

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

基于OpenCV開源庫開發(fā)的在OpenHarmony中實現(xiàn)車牌識別

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-30 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

張榮

OpenHarmony 知識體系工作組

介紹

本車牌識別項目是基于開源項目 EasyPR(Easy to do Plate Recognition)實現(xiàn)。EasyPR 是一個開源的中文車牌識別系統(tǒng),基于 OpenCV 開源庫開發(fā)。本項目使用潤和 HiSpark Taurus AI Camera(Hi3516DV300) 攝像頭開發(fā)板套件(以下簡稱 Hi3516)實現(xiàn)拍照車牌并顯示識別結(jié)果。采用的系統(tǒng)是 OpenAtom OpenHarmony (簡稱“OpenHarmony”) 3.1 Release 小型系統(tǒng)。首先將 Hi3516 中的攝像頭對準車牌,其距離約為 60cm~70cm 如下所示:

5a7ade88-f3be-11ec-ba43-dac502259ad0.png

運行程序后按下 1 拍照、按 2 輸出識別結(jié)果如下所示:

5a9fb172-f3be-11ec-ba43-dac502259ad0.png

開發(fā)流程

本車牌識別項目使用 OpenHarmony 中的媒體子系統(tǒng)實現(xiàn)。代碼基于停車場景下的本地車牌識別。進行講解,其代碼結(jié)構(gòu)如下:

三方庫移植

EasyPR 實現(xiàn)是基于 OpenCV 實現(xiàn),因此實現(xiàn) EasyPR 首先得移植 OpenCV。移植的方式采用 Gn 調(diào)用 Shell 腳本,Shell 腳本調(diào)用 Makefile 實現(xiàn)。
├── BUILD.gn├── include │   ├── camera.h                                       // 攝像頭定義│   ├── local_net_communication.h          // 設(shè)備協(xié)同主要功能定義│   ├── local_net_def.h                             // 設(shè)備協(xié)同打印日志│   ├── local_net_dlist.h                            // 設(shè)備協(xié)同設(shè)備列表定義│   ├── local_net_message.h                    // 設(shè)備協(xié)同傳輸消息定義│   ├── local_net_udp.h                             // 設(shè)備協(xié)同udp協(xié)議定義│   ├── local_net_utils.h                            // 設(shè)備協(xié)同通用工具定義│   ├── log.h                                              // 打印日志定義│   └── wpa_work.h                                   // wifi設(shè)置定義└── src    ├── base64.cpp                                     // 圖片轉(zhuǎn)base64格式功能代碼     ├── camera.cpp                                     // 攝像頭實現(xiàn)    ├── local_net_communication.c            // 設(shè)備協(xié)同主要功能實現(xiàn)    ├── local_net_dlist.c                              // 設(shè)備協(xié)同設(shè)備列表實現(xiàn)    ├── local_net_message.c                      // 設(shè)備協(xié)同傳輸消息實現(xiàn)    ├── local_net_udp.c                              // 設(shè)備協(xié)同udp協(xié)議實現(xiàn)    ├── local_net_utils.c                              // 設(shè)備協(xié)同通用工具實現(xiàn)    ├── main.cpp                                         // 主程序└──wpa_work.c//wifi設(shè)置實現(xiàn)
下面介紹移植的大致流程,具體細節(jié)可參考小型系統(tǒng)上運行開源項目車牌識別及移植 opencv 庫。

移植OpenCV

下載源碼

獲取源碼將 OpenCV 庫源碼放在 OpenHarmony 根目錄下的 third_party 下:

生成Makefile

在 OpenCV 源碼根目錄新建 build 目錄生成 Makefile 文件:

使用 cmake-gui 來配置編譯環(huán)境:

cd buildmake-gui..

顯示的 UI 界面如下圖:

5abeabcc-f3be-11ec-ba43-dac502259ad0.png

點擊 Configure 進行配置,選擇第四個選項進行配置,如下圖:

配置工具鏈:

點擊 Generate 生成 Makefile。

創(chuàng)建 Shell 腳本

在 OpenCV 源碼根目錄新增 build_opencv.sh:

touch build_opencv.shchmod 777 build_opencv.shvim build_opencv.sh##添加如下內(nèi)容#!/bin/shprocessor=`cat /proc/cpuinfo|grep processor | sort -u | wc -l`cd buildmake -j$processorcplib/*$1/libs/

創(chuàng)建Gn文件

在 OpenCV 源碼根目錄新增 BUILD.gn 將 OpenCV 庫加入編譯構(gòu)建:

移植EasyPR

下載源碼

獲取源碼 EasyPR 庫源碼放在源碼根目錄下的 third_party 下:

生成Makefile

在 EasyPr 源碼根目錄新建 build 目錄:

mkdir buildcd buildcmake-gui..
顯示的 UI 界面如下圖: 5abeabcc-f3be-11ec-ba43-dac502259ad0.png

點擊 Configure 進行配置,選擇第四個選項進行配置,如下圖:

配置工具鏈:

點擊 Generate 生成 Makefile。

創(chuàng)建Shell腳本

在 EasyPR 源碼根目錄新增 build_easypr.sh:

創(chuàng)建Gn文件

在 EasyPR 源碼根目錄新增 BUILD.gn 加入至編譯構(gòu)建:

vim BUILD.gn
#BUILD.gn中添加如下內(nèi)容import("http://build/lite/config/component/lite_component.gni")import("http://build/lite/ndk/ndk.gni")
root_build = rebase_path(root_build_dir)
build_ext_component("easypr_lib") {    command = "sh build_easypr.sh $root_build"    exec_path = "$root_build/../../../third_party/EasyPR"}
lite_component("easypr") {    deps = [        "http://third_party/opencv:opencv",        ":easypr_lib"    ]    features = []}
最終 OpenCV 與 EasyPR 在 third_party 目錄如下圖所示:

5ae51d84-f3be-11ec-ba43-dac502259ad0.png

在 OpenHarmony 實現(xiàn) EasyPR 需要主要分為如下三步:

1.GN 構(gòu)建,將 EasyPR 加入編譯構(gòu)建;

2.拍照,調(diào)用 OpenHarmony 拍照接口,拍攝車牌;

3.EasyPR 本地識別,調(diào)用 EasyPR 識別車牌接口并返回識別結(jié)果。

GN構(gòu)建

GN 構(gòu)建中包含了 EasyPR 的頭文件路徑 、鏈接 EasyPR 動態(tài)庫、編譯依賴 EasyPR。如下所示:

5afe8170-f3be-11ec-ba43-dac502259ad0.png

拍照

拍照功能是基于官方文檔拍照開發(fā)指導開發(fā)的,其 demo 樣例在如下目錄:

5b0d61c2-f3be-11ec-ba43-dac502259ad0.png

在停車場景中二維碼識別與車牌識別共用同一份拍照代碼 ,為提高二維碼識別率在拍照初始化時須將分辨率設(shè)置為 1280*720。該改動在進行車牌識別時不會影響 ,初始化拍照代碼如下圖:

設(shè)置照片保存路徑在文件 camera.h 下:

因為在停車場景中二維碼掃碼與車牌識別都會調(diào)用拍照接口,因此使用 s_runAi 作區(qū)分:

int main(int argc,char **argv){    int ret;    char licensePlate[32] = {0};    char input;    InitCamera();    PlateInit();    while(cin >> input) {        switch (input) {            case '1':                RunAICamera();                                                  // 拍照                break;            case '2':                memset(licensePlate, 0, sizeof(licensePlate));                ret = GetPlateString(IMG_PATH, licensePlate);   // 識別車牌                SAMPLE_INFO("ret -> %d, licensePlate->%s", ret, licensePlate);                break;            case 's':                PlateDeinit();                ExitCamera();                return 0;            default:                SAMPLE_ERROR("input Error");                break;        }    }    return 0;}

5b1c69e2-f3be-11ec-ba43-dac502259ad0.png

進行拍照后會進入拍照數(shù)據(jù)處理,當 s_runAi 為 false 說明是二維碼識別,直接調(diào)用二維碼識別接口即可。當 s_runAi 為 true 時須將拍照的數(shù)據(jù)保存為圖片:

5b290bd4-f3be-11ec-ba43-dac502259ad0.png

將拍照數(shù)據(jù)以圖片保存路徑為“/sdcard/CaptureAi.jpg” 。

EasyPR本地識別

編寫主程序 main.cpp 設(shè)置程序功能為按 1 拍照、按 2 顯示結(jié)果 :

編譯燒錄

前文大致概括了 OpenCV 和 EasyPR 的移植步驟,更詳細的關(guān)于環(huán)境搭建、燒錄以及項目源碼構(gòu)建的步驟,請查看參考文章本地車牌識別。

總結(jié)

編寫車牌識別庫對外接口,相關(guān)接口使用可以參考作者文章介紹;本文章的源碼參考本地車牌識別。豐富多樣的 OpenHarmony 開發(fā)樣例離不開廣大合作伙伴和開發(fā)者的貢獻,如果你也想把自己開發(fā)的樣例分享出來,歡迎把樣例提交到 OpenHarmony 知識體系 SIG 倉來,共建開發(fā)樣例請參考如何共建開發(fā)樣例。

車牌識別器(OpenCV版本)

https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/GreyWolf_ImageRecognition_LocalAI

車牌識別器

https://gitee.com/openharmony-sig/knowledge_demo_temp/blob/master/docs/GreyWolf_EasyPR/readme.md

拍照開發(fā)指導

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/guide/device-camera-control-demo-photoguide.md

作者文章列表

https://gitee.com/link?target=https%3A%2F%2Fwww.cnblogs.com%2Fsubconscious%2Fp%2F3979988.html

源碼參考

https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/GreyWolf_ImageRecognition_LocalAI

構(gòu)建開發(fā)樣例

https://gitee.com/openharmony-sig/knowledge/blob/master/docs/co-construct_demos/README_zh.md


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

    關(guān)注

    3

    文章

    3688

    瀏覽量

    43828
  • 車牌識別
    +關(guān)注

    關(guān)注

    5

    文章

    83

    瀏覽量

    16008
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42889
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3854

    瀏覽量

    18606

原文標題:三步就能在OpenHarmony中實現(xiàn)車牌識別

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【MediaTek X20開發(fā)板申請】小區(qū)車牌自動識別系統(tǒng)

    項目名稱:小區(qū)車牌自動識別系統(tǒng)試用計劃:MediaTek X20 開發(fā)板是一款誠邁科技和聯(lián)發(fā)科技聯(lián)合發(fā)布的符合96board規(guī)范的開源硬件,具有非常強大的運算能力和多媒體處理能力最新的
    發(fā)表于 12-29 17:05

    【超值干貨】 揭秘車牌識別算法

    少之又少。今天給大家分享的車牌識別案例,其實在我們生活已經(jīng)很常見了。各大停車場早就配備了這種車牌自動識別的設(shè)備。
    發(fā)表于 05-25 21:07

    移動端車牌識別SDK算法

    越來越多人集成了,汽車保有量日益上升,越來越多公司開發(fā)車輛管理系統(tǒng),系統(tǒng)開發(fā)過程中,對于OCR識別算法,不少開發(fā)人員為了節(jié)省成本,
    發(fā)表于 05-17 22:55

    基于機器學習opencv和平臺Jupyter Notebook的車牌識別案例

    python+opencv實現(xiàn)車牌識別
    發(fā)表于 02-28 11:08

    三步就能在OpenHarmony實現(xiàn)車牌識別

    識別系統(tǒng),基于 OpenCV 開源開發(fā)。本項目使用潤和 HiSpark Taurus AI Camera(Hi3516DV300) 攝像頭
    發(fā)表于 06-28 10:15

    三步就能在OpenHarmony實現(xiàn)車牌識別

    識別結(jié)果如下所示:開發(fā)流程本車牌識別項目使用 OpenHarmony 的媒體子系統(tǒng)
    發(fā)表于 07-06 11:20

    如何在OpenHarmony上使用SeetaFace2人臉識別?

    OpenHarmony實現(xiàn)過人臉識別功能,跟著本文帶你快速OpenHarmony標準設(shè)備上基于SeetaFace2和
    發(fā)表于 08-22 17:46

    基于DSP的圖像處理在車牌識別的應(yīng)用

    車牌識別模塊是車牌識別(LPR)系統(tǒng)的核心。論文根據(jù)國內(nèi)汽車牌照的特點,對車牌
    發(fā)表于 02-24 14:30 ?42次下載

    圖象處理技術(shù)在車牌識別的應(yīng)用

    圖象處理技術(shù)在車牌識別的應(yīng)用利用數(shù)字圖象處理技術(shù)研究開發(fā)車牌照自動識別系統(tǒng)。從汽車圖象確定
    發(fā)表于 12-08 15:21 ?1158次閱讀
    圖象處理技術(shù)在<b class='flag-5'>車牌</b><b class='flag-5'>識別</b><b class='flag-5'>中</b>的應(yīng)用

    使用OpenCV進行車牌數(shù)字識別的資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用OpenCV進行車牌數(shù)字識別的資料免費下載。
    發(fā)表于 01-16 08:00 ?29次下載
    使用<b class='flag-5'>OpenCV</b>進行<b class='flag-5'>車牌</b>數(shù)字<b class='flag-5'>識別</b>的資料免費下載

    使用Adaboost算法實現(xiàn)車牌檢測OpenCV實現(xiàn)的研究分析

    AdabtxⅪt是一個構(gòu)建精確分類器的學習算法,目標檢測領(lǐng)域有著廣泛的應(yīng)用。OpenCV是Intel開源計算機視覺。該文給出了
    發(fā)表于 09-27 17:49 ?7次下載
    使用Adaboost算法<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>車牌</b>檢測<b class='flag-5'>在</b><b class='flag-5'>OpenCV</b>上<b class='flag-5'>實現(xiàn)</b>的研究分析

    如何在RK3568開發(fā)板上成功移植OpenJPEG開源

    三方指其他公司或者組織提供的服務(wù)或者模塊,例如常見的開源 OpenCV ,能持續(xù)繁榮 OpenAtom OpenHarmony(簡稱“
    的頭像 發(fā)表于 05-10 08:49 ?5932次閱讀

    基于SeetaFace2和OpenCV實現(xiàn)人臉識別

    相信大部分同學們都已了解或接觸過OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)了,但你一定沒在OpenHarmony實現(xiàn)過人臉
    的頭像 發(fā)表于 08-17 10:50 ?3762次閱讀

    使用OpenCV技術(shù)的車牌識別案例設(shè)計

      摘要:車牌識別系統(tǒng)在生活的使用越發(fā)廣泛,占據(jù)重要地位。車牌識別一共分為圖像處理和字符識別
    發(fā)表于 07-20 14:57 ?2次下載

    ElfBoard開源項目|車牌識別項目技術(shù)文檔

    車牌識別項目基于百度智能云平臺,旨在利用其強大的OCR服務(wù)實現(xiàn)車牌號碼的自動識別。選擇百度智能云的原因是其高效的API接口和穩(wěn)定的服務(wù)質(zhì)量,
    的頭像 發(fā)表于 12-06 10:30 ?654次閱讀
    ElfBoard<b class='flag-5'>開源</b>項目|<b class='flag-5'>車牌</b><b class='flag-5'>識別</b>項目技術(shù)文檔