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

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

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

使用deepstream-test的范例代碼修改車牌識別與遮蓋

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 作者:NVIDIA英偉達企業(yè)解 ? 2021-09-09 10:04 ? 次閱讀

前一篇文章提到使用deepstream-test的范例代碼,修改成“車牌識別”與“遮蓋(redaction)”的應(yīng)用,本文就直接帶著大家實現(xiàn)這兩個范例的實踐,但是并不花時間去解釋代碼內(nèi)容,因為基本工作流與邏輯是大致相同的,就是需要開發(fā)人員能夠多做實驗去熟悉每個插件直接的互動關(guān)系。

redaction_with_deepstream項目

雖然名稱上的“redaction”是“修改”的意思,但這里執(zhí)行的效果其實就是識別視頻上的“私人信息”進行遮蓋,主要包括“人臉”、“車牌”這些重要信息,因為近年來越來越多的網(wǎng)上小視頻的播放,以及個人隱私保護程度高漲,內(nèi)容提供人如果沒有適度地遮蓋視頻中的隱私信息,很可能遭受到維權(quán)的法律訴訟。

因此這個項目雖然看起來并沒有太高深的技術(shù)含量,但是實用性非常強,在Jetson Nano 2GB上用DeepStream直接幫視頻中需要遮蓋的信息,進行全自動化的處理,這樣就能減少非常多不必要的糾紛。

項目地址在https://github.com/NVIDIA-AI-IOT/redaction_with_deepstream,下面的簡易流水線圖也相當(dāng)簡單(如下圖)。

47c40dfe-10bc-11ec-8fb8-12bb97331649.png

不過比較有參考價值的流水線圖在“Pipeline Description”下面的兩張圖,將整個流水線的內(nèi)容說明的非常詳細(xì),強烈建議讀者自行下載去研究,這對于提升對DeepStream流水線的理解是很有幫助的,這部分能連貫起來之后就差不多有足夠的掌握程度。

項目執(zhí)行非常簡單,執(zhí)行以下指令就可以:

cd 《deepstream主目錄》/sources/apps

git clone https://github.com/NVIDIA-AI-IOT/redaction_with_deepstream

cd redaction_with_deepstream && make

。/deepstream-reaction-app -c configs/pgie_config_fd_lpd.txt

如果你的Jetson設(shè)備上有安裝USB攝像頭,執(zhí)行之后應(yīng)該就會顯示攝像頭的畫面,看看人頭過去的時候是否會把臉遮???

打開 USB 攝像頭,對著電腦屏幕上播放的視頻進行測試,左邊車牌用藍色色塊遮蓋,右邊人臉部分用黑色色塊遮蓋,假如對“遮蓋”的顏色不滿意,可以調(diào)整代碼中第109~111行與118~120行的設(shè)定值,就可以改變顏色。

您可以自行嘗試用視頻文件來做輸入,并將檢測的結(jié)果輸出成一個視頻文件,這部分的指令在開源項目內(nèi)都有很詳細(xì)的說明。執(zhí)行完之后還會顯示本次檢測的實際性能,在Jetson Nano 2GB上的性能也能到達128FPS,非常好的表現(xiàn)

4829e30e-10bc-11ec-8fb8-12bb97331649.png

deepstream_lpr_app車牌識別項目

這個項目是個很經(jīng)典的檢測器(detector)與分類器(classifier)共同合作的項目

主檢測器還是使用原本的4類檢測器,其中有“car”類別

在圖像中檢測到Car之后,再從這個物體的范圍內(nèi)去尋找車牌,因此需要一個專門檢測車牌的次檢測器,這需要從NVIDA的NGC下載已經(jīng)訓(xùn)練好的模型,當(dāng)然您也可以自己重新收集車牌數(shù)據(jù)集然后重新訓(xùn)練。

當(dāng)檢測到車牌的時候,將車牌圖像送交分類器,將上面的字符逐個分離出來,最后回饋車牌的字符串。整個識別需要先找到“car”這個物體,如果您直接提供車牌的圖片,在這里是辨識不出來的。

這個項目提供“美國”與“中國”的lpd車牌識別模型與lpr字符分類模型,兩組是不能混用的。經(jīng)過測試,發(fā)現(xiàn)在“中國車牌”識別的模型中,應(yīng)該沒有將屬于電動車的“綠色”車牌放進去,因此這種車牌也是識別不出來的。

因為deepstream-app這個強大的工具,雖然提供“多檢測器”級聯(lián)的處理功能,但是沒有提供“檢測器與分類器”級聯(lián)的功能,因此必須自己撰寫代碼來實現(xiàn)這個功能。根據(jù)的代碼內(nèi)容的風(fēng)格判斷,應(yīng)該是以deepstream-test2范例為基礎(chǔ)進行開發(fā)的。

接下來就用這個項目的“中文車牌”識別的部分,帶著大家復(fù)現(xiàn)一下,里面有些小坑,不過我們都已找到問題的答案,請按照一下步驟執(zhí)行:

1. 下載項目與模型:

git clone https://github.com/NVIDIA-AI-IOT/deepstream_lpr_app.git

cd deepstream_lpr_app

。/download_ch.sh

這會從NGC下載三個預(yù)訓(xùn)練的中文車牌識別模型文件,以及各自配套的設(shè)置文件,腳本為這些模型、配套文件都設(shè)置好對應(yīng)路徑,不需要修改:

1) 主檢測模型(四分類):resnet18_trafficcamnet_pruned.etlt

2) 次檢測模型(一分類):ccpd_pruned.etlt

3) 次分類模型:ch_lprnet_baseline18_deployable.etlt

2. 模型轉(zhuǎn)換:

前面下載的次分類模型(ch_lprnet_baseline18_deployable.etlt)是個中間文件,必須在目標(biāo)設(shè)備(這里是Jetson Nano 2GB)使用tlt-converter轉(zhuǎn)換成該設(shè)備能使用的TensorRT加速引擎,需要先到https://developer.nvidia.com/cuda102-trt71-jp45下載cuda10.2_trt7_jp45-xx.zip,解壓縮就能看到tlt-converter這個工具。

下載后執(zhí)行以下轉(zhuǎn)換指令:

。/tlt-converter -k nvidia_tlt

-p image_input,1x3x48x96,4x3x48x96,16x3x48x96

models/LP/LPR/ch_lprnet_baseline18_deployable.etlt

-t fp16 -e models/LP/LPR/lpr_ch_onnx_b16.engine

再次強調(diào),這個轉(zhuǎn)換步驟必須在目標(biāo)設(shè)備上執(zhí)行,例如在Xavier上所專換的加速引擎是不能復(fù)制到NX或Nano(含2GB)上使用。

3. 編譯與修改設(shè)定:

直接執(zhí)行以下指令:

cd deepstream_lpr_app # 進入到主代碼的目錄中

make # 編譯

cp dict_ch.txt dict.txt # 處理中文版的字典

最后,中文版設(shè)定文件lpd_ccpd_config.txt里第52行“model-color-format”設(shè)定值改為“0”,這樣就能正常識別了。

4. 執(zhí)行:

這個步驟必須您自己去找到合適的視頻,或者自行錄制一小段視頻作為輸入,然后在這個目錄下執(zhí)行編譯好的執(zhí)行文件,在deepstream-lpr-app后面需要跟隨以下幾個參數(shù)

1. 識別種類:1 -》 美國車牌識別、2 -》 中國車牌識別

2. 輸出種類:1 -》 輸出h264視頻文件、2 -》 fakesink、3 -》 顯示到屏幕上

3. ROI開關(guān):0 -》 關(guān)閉、1 -》 開啟

4. 輸入文件:可以一次給多個.mp4視頻文件

5. 最后一個:指定輸出.h264視頻文件

例如:

。/deepstream-lpr-app 2 1 0 test1.mp4 test2.mp4 out.h264

下面是使用我們自行在停車場錄制的視頻、行車記錄儀、VisionWorks的范例,總共6個視頻文件作為輸入的測試結(jié)果,提供大家參考。

結(jié)語

本文的重點是要告訴大家,雖然使用deepstream-app調(diào)用設(shè)定文件的方式是很容易上手,但卻沒辦法解決一些特殊的應(yīng)用。

本文所介紹的兩個實用性非常高的應(yīng)用,就不能套用這種方式,必須自行撰寫代碼去執(zhí)行特殊的處理,分別基于deepstream-test1與deepstream-test2兩個C/C++范例去開發(fā),這給了初學(xué)者更開放的思路,不能只拘泥于deepstream-app設(shè)定文件的配置修改上,應(yīng)該回歸正途從DeepStream的插件流去解決問題。

下一篇文章我們將以NVIDIA在DeepStream 4.0版時所提供的一個Jupyter學(xué)習(xí)環(huán)境,更有條例與有效率地一步一步在deepstrem-test上添加功能,包括將輸出的視頻流透過RTSP/RTP裝向其他設(shè)備去顯示、多數(shù)據(jù)源輸入、多網(wǎng)絡(luò)模型組合檢測等等功能。

不熟悉C/C++的朋友也不用著急,因為DeepStream也提供相當(dāng)成熟的Python開發(fā)借口與范例,工作原理與C/C++版本完全一致,因此我們還是先用現(xiàn)有資源讓大家逐步體驗,最后還會再用Python的代碼進行示范,這樣就能事半功倍。

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

    關(guān)注

    1

    文章

    855

    瀏覽量

    47600
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68093
  • 分類器
    +關(guān)注

    關(guān)注

    0

    文章

    152

    瀏覽量

    13159
  • USB攝像頭
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    11246

原文標(biāo)題:NVIDIA Jetson Nano 2GB 系列文章(33):DeepStream 車牌識別與私密信息遮蓋

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    4K高清高速攝像頭在車牌識別技術(shù)中的革新應(yīng)用與優(yōu)勢解析

    Horus AI?高速相機是一款極其優(yōu)秀的車牌識別相機開發(fā)平臺,不僅圖像性能優(yōu)秀,而且有良好的開發(fā)支持。Horus AI高速相機是快速打造您自己的車牌識別系統(tǒng)的理想選擇。
    的頭像 發(fā)表于 10-15 16:27 ?139次閱讀
    4K高清高速攝像頭在<b class='flag-5'>車牌</b><b class='flag-5'>識別</b>技術(shù)中的革新應(yīng)用與優(yōu)勢解析

    【飛凌嵌入式OK3576-C開發(fā)板體驗】RKNN神經(jīng)網(wǎng)絡(luò)-車牌識別

    LPRNet基于深層神經(jīng)網(wǎng)絡(luò)設(shè)計,通過輕量級的卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)車牌識別。它采用端到端的訓(xùn)練方式,不依賴字符分割,能夠直接處理整張車牌圖像,并輸出最終的字符序列。這種設(shè)計提高了識別的實時
    發(fā)表于 10-10 16:40

    java反編譯的代碼可以修改

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回源代碼的過程。反編譯后的代碼可以進行修改,但是需要注意,反編譯代碼的質(zhì)量和可讀性可能會受到原始編譯
    的頭像 發(fā)表于 09-02 11:00 ?334次閱讀

    手機識別不了GATT_SERVER例程中的屬性怎么辦?

    下載GATT_SERVER代碼,在電腦上用bluetooth le explorer可以正確識別服務(wù)和屬性,但在手機上用BLE調(diào)試助手識別的服務(wù)和屬性不正確。 修改GATT_SERVE
    發(fā)表于 07-19 08:08

    單獨打印UART_test時串口可以打印,添加以下代碼后串口無打印,為什么?

    單獨打印UART_test時串口可以打印,添加以下代碼后串口無打印。代碼看附件截圖
    發(fā)表于 06-27 06:21

    NVIDIA發(fā)布DeepStream 7.0,助力下一代視覺AI開發(fā)

    NVIDIA DeepStream 是一款功能強大的 SDK,能夠提供用于構(gòu)建端到端視覺 AI 管線的 GPU 加速構(gòu)建模塊。
    的頭像 發(fā)表于 05-23 10:09 ?473次閱讀
    NVIDIA發(fā)布<b class='flag-5'>DeepStream</b> 7.0,助力下一代視覺AI開發(fā)

    如何在代碼中動態(tài)修改手指電容?

    如何在代碼中動態(tài)修改手指電容
    發(fā)表于 05-22 07:11

    FATFS對SPI_FLASH新建文件、刪除文件或者修改文件后電腦無法識別,為什么?

    FATFS對SPI_FLASH新建文件、刪除文件或者修改文件后電腦無法識別,而且會斷開連接,需要重新插拔,這是什么問題呢
    發(fā)表于 04-09 07:06

    AI車牌監(jiān)測識別攝像機

    AI車牌監(jiān)測識別攝像機是一種基于人工智能技術(shù)的高級監(jiān)控設(shè)備,用于識別和記錄車輛的車牌信息。該攝像機利用深度學(xué)習(xí)算法和圖像識別技術(shù),能夠快速準(zhǔn)
    的頭像 發(fā)表于 04-02 09:55 ?374次閱讀
    AI<b class='flag-5'>車牌</b>監(jiān)測<b class='flag-5'>識別</b>攝像機

    項目分享|基于ELF 1開發(fā)板的車牌識別系統(tǒng)

    該項目選用ElfBoardELF1開發(fā)板作為核心硬件平臺,利用USB接口連接的攝像頭捕捉并識別車牌信息。一旦車牌成功識別,系統(tǒng)會觸發(fā)綠燈指示,并將
    的頭像 發(fā)表于 03-12 09:22 ?402次閱讀
    項目分享|基于ELF 1開發(fā)板的<b class='flag-5'>車牌</b><b class='flag-5'>識別</b>系統(tǒng)

    君正T40車牌識別模組雷卯防雷防靜電推薦圖

    一、規(guī)格參數(shù) 車牌識別模組 ? CPU XBurst?2 up to 1.2GHz, Dual Core 內(nèi)存 內(nèi)置 1Gb MCU 600MHz RISC-V coprocessor, 32bit
    的頭像 發(fā)表于 01-03 16:53 ?289次閱讀
    君正T40<b class='flag-5'>車牌</b><b class='flag-5'>識別</b>模組雷卯防雷防靜電推薦圖

    python如何修改列表中的每一個值數(shù)據(jù)

    。下面是示例代碼: # 定義一個列表 my_list = [ 1 , 2 , 3 , 4 , 5 ] # 使用for循環(huán)遍歷列表并修改元素值 for i in range ( len (my_list
    的頭像 發(fā)表于 11-29 17:03 ?4476次閱讀

    linux修改用戶名的命令

    在Linux中修改用戶名可以使用用戶管理命令usermod來執(zhí)行,下面將詳細(xì)介紹如何修改Linux系統(tǒng)中的用戶名。 用戶名修改概述: 在Linux系統(tǒng)中,用戶名是用于識別用戶的唯一標(biāo)識
    的頭像 發(fā)表于 11-17 09:42 ?2246次閱讀

    安全驅(qū)動中測試使用的TA和CA

    測試使用的TA和CA 將該示例的測試TA和CA添加到OP-TEE中需要修改讀者開發(fā)環(huán)境對應(yīng)的mk文件中。以使用QEMU方式運行OP-TEE為例,則需要修改qemu.mk文件添加該示例代碼的編譯目標(biāo)
    的頭像 發(fā)表于 10-30 16:19 ?644次閱讀

    TOP單端反激設(shè)計范例

    電子發(fā)燒友網(wǎng)站提供《TOP單端反激設(shè)計范例.pdf》資料免費下載
    發(fā)表于 10-26 11:04 ?0次下載
    TOP單端反激設(shè)計<b class='flag-5'>范例</b>