亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RaspberryPi的運動目標檢測研究與實現(xiàn)*

        2019-09-27 01:36:36胡瑞卿田杰榮
        艦船電子工程 2019年9期
        關(guān)鍵詞:PC機嵌入式攝像頭

        胡瑞卿 劉 勇 田杰榮

        (1.海軍航空大學(xué)航空基礎(chǔ)學(xué)院 煙臺 264001)(2.海軍航空大學(xué)航空作戰(zhàn)勤務(wù)學(xué)院 煙臺 264001)

        1 引言

        當前運動目標檢測系統(tǒng)的研究已經(jīng)相對成熟,但大多數(shù)是在PC機上采用C語言實現(xiàn)的方式,該方式無法滿足當今的實時性和可移動性需求。本研究設(shè)計了基于RaspberryPi的運動目標檢測系統(tǒng),極大地滿足了對運動目標的移動性檢測要求。本文搭建了運動目標檢測系統(tǒng)的硬件平臺,設(shè)計并實現(xiàn)了基于RaspberryPi的運動目標檢測系統(tǒng)。系統(tǒng)通過USB網(wǎng)絡(luò)攝像頭圖像采集套件獲取實時視頻圖像序列,攝像頭采集到的視頻源通過USB接口進入RaspberryPi開發(fā)板,經(jīng)過處理之后,將數(shù)據(jù)通過以太網(wǎng)接口傳輸?shù)絇C機,在PC機上將視頻的實時處理結(jié)果顯示出來。

        2 RaspberryPi硬件平臺

        與通用型計算機系統(tǒng)相比,嵌入式系統(tǒng)功耗低、可靠性高;功能強大、性價比高;實時性強,支持多任務(wù);占用空間小,效率高;面向特定應(yīng)用,可根據(jù)需要靈活定制。RaspberryPi開發(fā)板如圖1所示,它是一款基于Debian Linux系統(tǒng)的微型電腦主板,外形只有信用卡大小,所以又稱卡片式電腦。近年來,隨著RaspberryPi的不斷普及,由于其價格實惠,且提供了多種擴展接口,性能功能強大,體型小巧易攜帶,集成化程度高等,越來越受到人們的歡迎和關(guān)注,在多個方面和領(lǐng)域都得到了青睞。RaspberryPi具有較強的計算能力和擴展能力,是性能較強的嵌入式設(shè)備。

        圖1 RaspberryPi 2開發(fā)板實物圖

        RaspberryPi 2是一款基于ARM的“卡片機”電腦主板,它沒有硬盤,用標準的外插MicroSD卡作為存儲空間,主板周圍USB口可以作為輸入接口外接鍵盤和鼠標,網(wǎng)線口可以插入網(wǎng)線,自帶默認網(wǎng)卡驅(qū)動程序驅(qū)動硬件聯(lián)網(wǎng)。同時還有HDMI高清視頻接口,用于連接顯示設(shè)備輸出視頻圖像。本設(shè)計中圖像采集與處理部分由嵌入式設(shè)備完成,檢測結(jié)果由PC機顯示。

        3 RaspberryPi的使用

        在Linux系統(tǒng)上插入RaspberryPi的SD卡,會識別出兩個分區(qū),分別是boot分區(qū)和根文件系統(tǒng)分區(qū)。其中文件 bootcode.bin、start.elf、fixup.dat、config.txt構(gòu)成了RaspberryPi的bootloader,kernel.img是RaspberryPi的Linux內(nèi)核。另外一個分區(qū)的所有內(nèi)容是RaspberryPi的根文件系統(tǒng)。

        Raspberry Pi的官網(wǎng)提供了三個版本的鏡像文件,還有無數(shù)第三方的鏡像,首先,下載最新版本的Raspbian系統(tǒng)軟件包和Win32DiskImager工具,其中Win32DiskImager用于在Windows下將Raspbian鏡像寫入到SD卡中,寫入完成后,就可以把SD卡插到RaspberryPi的SD卡卡槽中,當系統(tǒng)通電后,首先執(zhí)行SOC的bootrom,初始化SD卡控制器,系統(tǒng)訪問boot分區(qū),查找bootcode.bin,將其加載到SOC的L2 cache執(zhí)行。接著bootcode.bin初始化內(nèi)存控制器,讀取fixup.dat給GPU與ARM劃分內(nèi)存分區(qū)。GPU驅(qū)動config.txt進行自我配置,然后將start.elf加載到內(nèi)存中,這是GPU的firmware文件,初始化GPU。start.elf的另一個作用是初始化內(nèi)核啟動參數(shù),將kernel.img加載到內(nèi)存中執(zhí)行,并跳轉(zhuǎn)到加載地址運行內(nèi)核代碼。在此期間,它會通過讀取cmdline.txt來傳遞給內(nèi)核參數(shù),加載結(jié)束后,復(fù)位ARM核,執(zhí)行內(nèi)核代碼,啟動系統(tǒng)。

        首次啟動時,會出現(xiàn)系統(tǒng)的初始配置界面,如果設(shè)置錯誤需要重新配置時,也可以通過輸入sudo raspi-config命令來激活此界面。

        首先選擇expand_rootfs,其作用是擴展系統(tǒng)的根目錄文件,按下回車鍵,彈出界面顯示成功擴展根文件系統(tǒng),此時按下回車鍵,則返回主界面。然后選擇overscan按回車鍵對其進行配置,如果想使屏幕顯示圖像完全占用顯示器,需選擇禁用overscan讓系統(tǒng)充分利用計算機屏幕。在主界面中選擇configure_keyboard,按下回車鍵來選擇鍵盤,選擇Generic 105-key(Intl)PC選項。鍵盤類型選定后,需要選擇鍵盤布局。設(shè)置完成后,重啟RaspberryPi,在登陸界面輸入密碼后啟動圖形界面,在命令行輸入startx。啟動結(jié)束。

        4 系統(tǒng)實現(xiàn)

        4.1 開發(fā)環(huán)境的搭建

        本研究采用C++語言進行編程。通過OPENCV實現(xiàn)圖像處理,完成RabesprryPi對網(wǎng)絡(luò)攝像頭的控制和處理數(shù)據(jù)的傳輸,程序運行在Raspbian的Linux操作系統(tǒng)環(huán)境下,考慮在該系統(tǒng)中無法使用Windows系統(tǒng)環(huán)境下常用的VS,VC++等常用集成開發(fā)環(huán)境,故采用在嵌入式設(shè)備的Linux系統(tǒng)中安裝QT平臺作為開發(fā)環(huán)境,QT是一個跨平臺的IDE,可以在Linux環(huán)境下運行,并且便于實現(xiàn)程序移植。

        4.2 運行環(huán)境搭建

        由于本設(shè)計中許多通用算法需要用到opencv,因而需要在RabesprryPi中進行opencv的移植和配置,首先要生成Linux系統(tǒng)下可用的opencv庫,雖然RabesprryPi2的主頻達到了900MHz,但和PC機相比,其性能還是略遜一籌,使用交叉編譯可大大節(jié)約系統(tǒng)開發(fā)時間,在很大程度上提高編碼的效率。所謂的搭建交叉編譯環(huán)境,即安裝、配置交叉編譯工具鏈。在該環(huán)境下編譯出嵌入式Linux系統(tǒng)所需的操作系統(tǒng)、應(yīng)用程序等,然后再上傳到目標機上,主要步驟如下:

        1)在PC主機下的Linux系統(tǒng)中安裝交叉編譯器arm-linux-gcc,arm-linux-gcc是用來實現(xiàn)在Linux下跨平臺的C語言編譯器,編譯出來的程序在目標機上執(zhí)行,嵌入式開發(fā)應(yīng)使用嵌入式交叉編譯工具鏈。

        2)交叉編譯OpenCV。建立編譯鏈接目錄,安裝 cmake-gui,用 到 命 令“#sudo apt-get install cmake-qt-gui”,在 usr/local新建文件夾,把下載的OpenCV-2.0.0.tar.bz2解壓到usr/local/opencv目錄下,然后在 usr/local/opencv新建一個opencv-arm文件夾,作為CMake編譯arm版本的工作目錄。

        3)調(diào)出CMake gui界面,進行源碼目錄build目錄等選擇,進行對應(yīng)配置完成后生成makefile,在/usr/local/opencv/opencv-arm目錄下執(zhí)行命令“$sudo make”,結(jié)果如圖2所示。

        圖2 Opencv庫文件編譯結(jié)果

        然后運行make install,將opencv生成的庫和頭文件(在/usr/local/opencv/opencv-arm/lib下)安裝到目錄/usr/local/arm/4.3.2/lib/opencv/,結(jié)果如圖3所示。

        圖3 opencv庫文件生成結(jié)果

        4)把生成的.so庫文件拷貝到ARM板系統(tǒng)中的/lib目錄下面,然后修改項目管理文件,之后便可以在開發(fā)板的Linux環(huán)境下執(zhí)行所編寫的驗證程序以驗證移植是否成功了。

        4.3 執(zhí)行程序的移植

        本次設(shè)計中利用C++語言編寫的程序是在VS平臺下編寫并驗證的,這里需要進行移植以在ARM平臺上運行,其具體步驟如下。

        在Microsoft Visual中對系統(tǒng)程序進行編譯通過之后,將其命名為main.cpp并保存。然后使用FlashFXP工具連接RabesprryPi,連接類型設(shè)置為“SFTP over SSH”,輸入用戶名和密碼。

        打開路徑/home/pi/cpp/ObjectDetect_sq,將本地的main.cpp上傳到RabesprryPi中。

        拷貝完成之后在Linux系統(tǒng)下建立QT工程,該工程中包含后綴為“.pro”的文件,此文件是Qt軟件開發(fā)工具創(chuàng)建的項目文件,支持跨平臺,不過在運行之前,要使用QT命令將所有的信息進行編譯,該格式文件包含文件有臨時工程文件,源代碼文件,項目庫文件,還有一些其他的文件格式。

        在RabesprryPi主界面中輸入指令“cd/home/pi/cpp/ObjectDetect_sq/”,打開源碼文件夾,利用Qmake生成makefile文件,界面顯示如圖4所示。

        圖4 源碼文件示意圖

        QMake是Qt工具包中帶的一個非常方便的工具??梢杂糜谏蒑akefile以及各種工程文件,還可以生成Microsoft Visual Studio可以使用的項目文件等。而且它是跨平臺的。輸入指令“make clean”“make all”進行編譯,編譯成功后輸入指令“cp/home/pi/cpp/ObjectDetect_sq/ObjectDetect/home/pi/cpp/runfun/”將生成的運行程序移動到執(zhí)行目錄,之后輸入指令“l(fā)s/home/pi/cpp/runfun/”檢查是否移動成功,主程序生成如圖5所示。在PC機上運行ObjectDetectServer,等待接收RabesprryPi傳輸?shù)倪\動目標數(shù)據(jù)信息。在RabesprryPi上執(zhí)行命令“/home/pi/cpp/runfun/ObjectDetect”,實現(xiàn)對運動目標的實時檢測。

        圖5 主程序生成示意圖

        5 運動目標檢測軟件實現(xiàn)

        5.1 程序運行流程

        首先,用opencv從連接RabesprryPi的攝像頭讀取運動目標的數(shù)據(jù),通過計算幀間的光流數(shù)據(jù)來標注運動目標,并計算運動目標的數(shù)目;然后,在原有的數(shù)據(jù)上添加對運動目標數(shù)量的標注,并對運動目標進行加框;接著,利用Linux的Socket庫函數(shù)通過網(wǎng)絡(luò)將處理數(shù)據(jù)發(fā)送到PC機上,PC對數(shù)據(jù)的接收是利用Windows的Socket庫函數(shù);最后,用opencv庫函數(shù)在PC機上將運動目標的檢測結(jié)果顯示出來。系統(tǒng)總體框圖如圖6所示。

        圖6 系統(tǒng)總體框圖

        對于客戶端,即ARM開發(fā)平臺而言,其主要工作包括利用攝像頭進行運動目標圖像采集,將采集到的圖像逐幀進行檢測、計算并標注,最后將標注結(jié)果發(fā)送至服務(wù)器端顯示出來,其軟件流程圖如圖7所示。

        對于服務(wù)器端,即PC端,其主要工作包括與ARM平臺建立TCP/IP連接并監(jiān)聽端口,接收來自客戶端的數(shù)據(jù),最后以圖像形式顯示出來,其軟件流程圖如圖8所示。

        圖7 客戶端軟件流程圖

        圖8 服務(wù)器端軟件流程圖

        5.2 程序執(zhí)行效果

        系統(tǒng)對運動目標的檢測效果顯示如圖9所示,當場景中有運動目標出現(xiàn)時,系統(tǒng)能夠準確檢測到,并且將運動目標框住,計算出運動目標的個數(shù)??梢钥吹较到y(tǒng)能夠較好地完成對圖9地鐵站中運動目標的檢測。

        圖9 檢測效果圖

        圖10 停車場測試視頻運動目標檢測結(jié)果

        為了驗證本系統(tǒng)的穩(wěn)定性,分別測試了多段視頻,其中停車場測試視頻檢測結(jié)果如圖10所示,公路測試視頻檢測結(jié)果如圖11所示,USB攝像頭拍攝的運動目標檢測結(jié)果如圖12所示。在圖12(b)的檢測結(jié)果中,由于兩個運動目標距離太近,而且移動速度相同,系統(tǒng)在未判定運動目標大小的情況下,為防止同一個目標被識別多次,輪廓檢測選擇大框?qū)δ繕诉M行框選,故而將其判定成了同一個目標,這個問題需要繼續(xù)解決完善。

        圖11 公路測試視頻運動目標檢測結(jié)果

        圖12 USB攝像頭拍攝視頻的運動目標檢測結(jié)果

        通過對5段視頻進行運動目標檢測測試。檢測結(jié)果表明,本系統(tǒng)具有較高的檢測準確率,實現(xiàn)了預(yù)期的運動目標檢測功能。視頻檢測的統(tǒng)計檢測結(jié)果,如表1所示。通過對視頻檢測結(jié)果的統(tǒng)計,可以得到本算法的檢測率為97.2%、誤檢率為1.43%和漏檢率為1.37%。

        表1 運動目標檢測結(jié)果

        6 結(jié)語

        本文研究并實現(xiàn)的基于RaspberryPi的運動目標檢測系統(tǒng),系統(tǒng)是在RaspberryPi 2硬件平臺上實現(xiàn)的,較傳統(tǒng)的采用PC機實現(xiàn)的系統(tǒng)更加靈活方便,具有較大的優(yōu)勢。系統(tǒng)使用RaspberryPi 2 Model B型開發(fā)板作為系統(tǒng)的中心控制板,實現(xiàn)了對運動目標的自動檢測,測試結(jié)果表明系統(tǒng)的硬件實現(xiàn)效果較好。不足之處在于系統(tǒng)主要針對的是靜止攝像頭的情況,而當攝像機處于運動狀態(tài)下時,是較難準確檢測的。在以后的工作中,需要通過不斷研究,增加系統(tǒng)的應(yīng)用范圍。希望未來隨著數(shù)學(xué)理論知識的不斷豐富和計算機技術(shù)的不斷發(fā)展,能夠不斷完善和改進,更加實用于人們的生產(chǎn)和生活。

        猜你喜歡
        PC機嵌入式攝像頭
        浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
        攝像頭連接器可提供360°視角圖像
        搭建基于Qt的嵌入式開發(fā)平臺
        基于PC機與單片機的多機通信技術(shù)及抗干擾方法
        基于三菱FXPLC的感應(yīng)淬火機床與PC機的串行通信實現(xiàn)
        VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
        電子制作(2017年23期)2017-02-02 07:16:47
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        奔馳360°攝像頭系統(tǒng)介紹
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        免费观看久久精品日本视频| 熟女高潮av一区二区| 青青草原综合久久大伊人精品| 国产一二三四2021精字窝| 熟妇丰满多毛的大隂户| 伊人网综合| 一区二区三区熟妇人妻18| 中文字幕av长濑麻美| 国产超碰人人做人人爽av大片| 国产乱妇乱子在线视频| 在线视频中文字幕乱人伦| 亚洲一区二区一区二区免费视频| 日本区一区二区三视频| 国产精品自在拍在线拍| 91久久青青草原线免费| 国产亚洲一区二区三区夜夜骚| 亚洲乱码中文字幕一线区| 久久无码人妻一区二区三区午夜| 久久久久国产精品熟女影院| 一区二区视频观看在线| 岛国大片在线免费观看| 国产粉嫩嫩00在线正在播放| av一区二区三区综合网站| 国产一级二级三级在线观看视频| 久久久精品一区aaa片| 亚洲av日韩精品久久久久久| 不打码在线观看一区二区三区视频 | 国产亚洲2021成人乱码| 91热这里只有精品| 国产后入内射在线观看| 国产一级二级三级在线观看视频| 狠狠色成人综合网| 亚洲三级在线播放| 日本精品一级二区三级| 亚洲精品无码永久在线观看你懂的| 在线视频这里只有精品| 中文字幕久久国产精品| 国产在线精品一区二区三区| av大全亚洲一区二区三区| 亚洲av成人av三上悠亚| 人妻哺乳奶头奶水|