郭文強(qiáng)+張?bào)?侯勇嚴(yán)+高文強(qiáng)
摘要:針對目前目標(biāo)檢測大多是在PC上實(shí)現(xiàn)的現(xiàn)狀,設(shè)計(jì)一種低成本、小型化的動(dòng)態(tài)目標(biāo)檢測系統(tǒng)。利用PI Camera V2攝像頭作為視頻獲取的來源,將樹莓派作為圖像處理的平臺(tái),對視頻流中運(yùn)動(dòng)目標(biāo)及其運(yùn)動(dòng)方向進(jìn)行檢測。首先,對輸入的實(shí)時(shí)視頻流得到的視頻幀進(jìn)行圖像預(yù)處理;進(jìn)而,利用CamShift檢測圖像中的運(yùn)動(dòng)目標(biāo);最后,根據(jù)相位算法判斷運(yùn)動(dòng)方向。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠?qū)崿F(xiàn)動(dòng)態(tài)目標(biāo)檢測的基本功能,可方便移植到移動(dòng)機(jī)器人平臺(tái)上,為移動(dòng)機(jī)器人自主導(dǎo)航等提供基礎(chǔ)。
關(guān)鍵詞:樹莓派;動(dòng)態(tài)目標(biāo);運(yùn)動(dòng)方向;檢測;CamShift算法
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)25-0182-03
Abstract: Aiming at the present situation, the design of a low-cost, small-scale dynamic target detection system is designed. Using the PI Camera V2 camera as the source of video acquisition, the Raspberry PI is used as the platform of image processing to detect the moving target and its movement direction in the video stream. Firstly, the video frame obtained by the input real-time video stream is preprocessed. Then, the motion target in the image is detected by CamShift. Finally, the motion direction is judged according to the phase algorithm. The experimental results show that the system can realize the basic function of dynamic target detection, and can be easily transplanted to the mobile robot platform, providing the basis for autonomous navigation of mobile robot.
Key words:Raspberry Pi; dynamic target; motion direction; detection; CamShift algorithm
近年來,機(jī)器人領(lǐng)域的一些先進(jìn)的技術(shù)進(jìn)步已經(jīng)對許多工業(yè)生產(chǎn)和社會(huì)發(fā)展做出了巨大的貢獻(xiàn)[1]。由于基于移動(dòng)機(jī)器人的目標(biāo)檢測是地圖構(gòu)建、路徑規(guī)劃、機(jī)器人導(dǎo)航等的基礎(chǔ),因此,受到國內(nèi)外學(xué)者的廣泛關(guān)注。學(xué)者們?yōu)闄C(jī)器人添加了各種傳感器來提升機(jī)器人的感知能力 [2]。
文獻(xiàn)[3]使用FPGA作為圖像處理平臺(tái),采用背景差分法檢測運(yùn)動(dòng)目標(biāo),通過二值化方法提出圖像中的靜止場景,消除空洞和噪聲點(diǎn),達(dá)到提取目標(biāo)中心點(diǎn)的目的,但FPGA價(jià)格昂貴、不宜開發(fā)。文獻(xiàn)[4]利用不同相機(jī)的剪影圖構(gòu)造3D模型,在垂直物體運(yùn)動(dòng)軌跡方向投影,提取側(cè)影圖進(jìn)行分析檢測,但這種檢測方法需要標(biāo)定多臺(tái)攝像機(jī)并存儲(chǔ)多方向的運(yùn)動(dòng)庫,增加了系統(tǒng)負(fù)荷和系統(tǒng)開發(fā)的成本。
本設(shè)計(jì)采用樹莓派B+1.2V作為硬件平臺(tái),通過樹莓派官方PI Camera V2攝像頭獲取的視頻流信息得到視頻幀,經(jīng)過中值濾波和直方圖均衡化完成預(yù)處理,結(jié)合CamShift檢測圖像中的運(yùn)動(dòng)目標(biāo),最后根據(jù)相位算法判別動(dòng)態(tài)目標(biāo)的運(yùn)動(dòng)方向。
1 動(dòng)態(tài)目標(biāo)檢測原理
大量的實(shí)驗(yàn)研究發(fā)現(xiàn),噪聲給圖像處理帶來很多困難,對圖像分割、特征提取、圖像檢測等具有直接影響。因此,采用適當(dāng)?shù)姆椒ㄏ肼暿菆D像處理的重要步驟[5]。本系統(tǒng)采用中值濾波[6]和直方圖均衡化[7]來預(yù)處理視頻幀的噪聲。
1.1 基于CamShift算法的運(yùn)動(dòng)目標(biāo)檢測
本文采用CamShift算法將特征物體的顏色直方圖模型轉(zhuǎn)換成顏色概率分布圖,初始化一個(gè)搜索窗的大小和位置,并根據(jù)上一幀得到的結(jié)果自適應(yīng)調(diào)整搜索窗口的位置和大小,從而定位出當(dāng)前圖像中目標(biāo)的中心位置[8]。
算法具體步驟如下:
Step1.由目標(biāo)檢測模塊或手工標(biāo)定方式初始化搜索窗口的位置和大小(本文采用手工標(biāo)定方式);
Step2. 計(jì)算搜索窗內(nèi)的顏色概率分布。將目標(biāo)所在區(qū)域中的每個(gè)像素從RGB空間轉(zhuǎn)換到HSV空間,統(tǒng)計(jì)該目標(biāo)在HSV空間中H分量的直方圖,并對直方圖進(jìn)行歸一化處理,就可得到目標(biāo)區(qū)域在HSV空間中的概率分布。
2 系統(tǒng)硬件配置及搭建
本設(shè)計(jì)選用基于linux操作系統(tǒng)的樹莓派B+ 1.2V作為系統(tǒng)的圖像處理硬件平臺(tái),硬件配置為四核ARM Cortex-A7 CPU,1GB LPDDR2 SDRAM,最大支持硬盤(SD卡)容量為64GB[11];使用樹莓派官方攝像頭PI Camera V2,其使用Sony IMX219PQ CMOS傳感器,800萬像素,最大輸出1080p高清視頻流,通過MIPI接口連接樹莓派, 硬件平臺(tái)實(shí)物圖如圖1所示。
3 OpenCV的安裝步驟
本系統(tǒng)使用樹莓派B+1.2V作為圖像處理平臺(tái),采用OpenCV基礎(chǔ)算法的中值濾波、直方圖均衡化算法,以及高級算法CamShift算法和相位相關(guān)算法,實(shí)現(xiàn)動(dòng)態(tài)目標(biāo)檢測。
首先安裝OpenCV的依賴包,可按照以下步驟進(jìn)行:endprint
1) 安裝基本庫:sudo apt-get install git libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev libjpeg8 libjpeg8-dev
2) 安裝必要的工程構(gòu)建程序:sudo apt-get install g++ gfortran gdb cgdb checkinstall cmake build-essential cmake-curses-gui gnome-core-devel
3) 安裝gstreamer:sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad
4) 安裝x264:./configure —enable-shared —enable-pic && make && sudo make install
5) 安裝ffmpeg:./configure —enable-gpl —enable-libfaac —enable-libmp3lame —enable-libopencore-amrnb —enable-libopencore-amrwb —enable-libtheora —enable-libvorbis —enable-libx264 —enable-libxvid —enable-nonfree —enable-postproc —enable-version3 —enable-x11grab —enable-shared —enable-pic && make && sudo make install
6) 安裝v4l:./configure && make && sudo make install
然后安裝OpenCV:
在http://opencv.org下載最新源碼包,進(jìn)入目錄編譯:mkdir build; && cd build && ccmake../ && make && sudo make install。
4 實(shí)驗(yàn)結(jié)果
4.1 圖像預(yù)處理效果
通過搭建好的實(shí)驗(yàn)環(huán)境,利用卡通布偶模擬運(yùn)動(dòng)目標(biāo),進(jìn)行本設(shè)計(jì)的實(shí)驗(yàn)。如圖2所示,正常拍攝視頻得到的視頻幀原始圖片,存在很多的椒鹽噪聲,經(jīng)過中值濾波后,去除了原始圖像中的椒鹽噪聲,如圖3.a所示;再經(jīng)過直方圖均衡化如圖3.b所示,增強(qiáng)圖像整體對比度的效果,使圖片的細(xì)節(jié)更清晰。
4.2 運(yùn)動(dòng)目標(biāo)檢測實(shí)驗(yàn)
利用CamShift算法,對運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)時(shí)檢測,如圖4,當(dāng)運(yùn)動(dòng)目標(biāo)在攝像頭監(jiān)視的區(qū)域內(nèi),運(yùn)動(dòng)目標(biāo)都會(huì)被檢測出來,圖中用紅色的圈標(biāo)識(shí)出了運(yùn)動(dòng)目標(biāo)。
4.3 目標(biāo)方向檢測效果
在以上實(shí)驗(yàn)基礎(chǔ)下,用不同的形狀標(biāo)識(shí)運(yùn)動(dòng)目標(biāo)以及運(yùn)動(dòng)目標(biāo)的方向,時(shí)間序列設(shè)置為500幀/ms。如圖5所示,目標(biāo)從畫幅中心,向右下角移動(dòng)過程中,不帶方向圓為檢測的物體,帶方向的圓表示目標(biāo)運(yùn)動(dòng)方向。
通過以上實(shí)驗(yàn)結(jié)果可知,系統(tǒng)提供的方法能夠準(zhǔn)確地檢測運(yùn)動(dòng)目標(biāo)的位置和大小,并能夠識(shí)別出運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)方向。
5 結(jié)論
本文采用樹莓派作為整個(gè)系統(tǒng)的操作平臺(tái),并利用樹莓派的800萬像素?cái)z像頭作為視頻采集,形成小型化、低成本的動(dòng)態(tài)目標(biāo)檢測系統(tǒng)。給出從實(shí)驗(yàn)環(huán)境系統(tǒng)搭建、硬件配置到工程安裝的詳細(xì)步驟。通過結(jié)合圖像預(yù)處理、Camshift算法以及相位相關(guān)法,準(zhǔn)確地檢測運(yùn)動(dòng)目標(biāo),并判斷出運(yùn)動(dòng)目標(biāo)相對初始位置的運(yùn)動(dòng)方向,實(shí)現(xiàn)了動(dòng)態(tài)目標(biāo)檢測的基本功能,如何將整個(gè)平臺(tái)擴(kuò)展至移動(dòng)機(jī)器人等移動(dòng)平臺(tái)將是下一步研究的方向。
參考文獻(xiàn):
[1] Dirman Hanafi,Yousef Moh Abueejela,Mohamad Fauzi Zakaria. Wall Follower Autonomous Robot Development Applying Fuzzy Incremental Controller[J].Intelligent Control and Automation,2013,04(01):18-25.
[2] 周炫余,劉娟,盧笑,等.一種聯(lián)合文本和圖像信息的行人檢測方法[J]. 電子學(xué)報(bào),2017,45(1):140-146.
[3] 李艷婷,王水魚. 視頻圖像中動(dòng)態(tài)目標(biāo)檢測系統(tǒng)的FPGA硬件設(shè)計(jì)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(3):119-125.
[4] Bodor R, Drenner A, Fehr D, et al. View-independent Human Motion Classification Using Image-based Reconstruction[J]. Image and Vision Computing, 2009, 27(8):1194-1206.
[5] 李艷芳,王艦,張旭.圖像隱藏信息與圖像噪聲分辨研究[J]. 計(jì)算機(jī)工程與科學(xué),2014,(06):1154-1158.
[6] 方政,胡曉輝,陳永. 基于多方向中值濾波的各向異性擴(kuò)散濾波算法[J]. 計(jì)算機(jī)工程與應(yīng)用,2017,53(4):195-199.
[7] 吳成茂.直方圖均衡化的數(shù)學(xué)模型研究[J]. 電子學(xué)報(bào),2013,41(03):598-602.
[8] 馬正華,顧蘇杭,戎海龍. 基于SIFT特征匹配的CamShift運(yùn)動(dòng)目標(biāo)跟蹤算法[J]. 計(jì)算機(jī)科學(xué),2014,41(6):291-294.
[9] 陳懷玉,楊旸. 基于歸一化梯度相位相關(guān)的大尺度圖像快速配準(zhǔn)算法[J]. 模式識(shí)別與人工智能,2015,28(8):694-701.
[10] Akram Nemri,F(xiàn)ethi Soltani. uncertainty principles for the Fourier transform with numerical aspect[J]. Applicable Analysis,2016,95(5):931-943.
[11] 陶曉玲,伍欣,亢蕊楠.基于樹莓派的隱蔽式滲透測試方法[J]. 電子技術(shù)應(yīng)用,2016,42(6):94-97.endprint