• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于塔吊的視頻監(jiān)控系統(tǒng)設計?

      2015-08-07 12:11:06任安虎竇玉春
      微處理機 2015年3期
      關鍵詞:塔吊內核內存

      任安虎,竇玉春

      (西安工業(yè)大學電子信息工程學院,西安710021)

      ·微機應用·

      基于塔吊的視頻監(jiān)控系統(tǒng)設計?

      任安虎,竇玉春

      (西安工業(yè)大學電子信息工程學院,西安710021)

      塔吊是現(xiàn)代建筑領域不可替代的重要施工設備,但是因為各種原因,作業(yè)往往是在“盲操作”下進行的,針對這個問題,設計了一套對應的視頻監(jiān)控系統(tǒng)。對其關鍵部分進行研究,首先提出視頻監(jiān)控系統(tǒng)的總體方案設計并進行器件選型;分析視頻監(jiān)控系統(tǒng)的組成部分,介紹了硬件平臺以及軟件平臺的搭建;視頻采集程序的設計以及對視頻數(shù)據(jù)用H.264進行優(yōu)化編碼;在網(wǎng)絡傳輸模塊中,使用TCP/IP進行網(wǎng)絡通信;最后利用MJPG-streamer視頻流工具顯示在PC上。通過實驗調試,本系統(tǒng)可提供穩(wěn)定的實時視頻監(jiān)控。

      塔吊;盲操作;視頻監(jiān)控;實時

      1 引 言

      塔吊是我國建筑業(yè)的重要施工設備之一,主要用于城市高層建筑施工、橋梁建設等,隨著我國房地產行業(yè)的蓬勃發(fā)展,對塔吊的需求量也愈來愈大。由于塔吊的司機駕駛室一般在高處,在高層的現(xiàn)場施工中會不可避免地遇到視覺難題,比如在塔吊吊運、卸載、移動建筑材料時,樓體可能會阻擋操作人員的視線。還有就是操作人員從強光區(qū)移動到陰暗區(qū)時,在光線的強烈對比下,操作人員并不能看到具體操作過程,這時只能憑借以往經(jīng)驗進行盲操作,這一嚴峻問題不可避免的存在于大部分高層建筑施工中,如何安全高效的進行施工,成為一項急需解決的問題。

      近年來計算機、電子通信等行業(yè)步入快速發(fā)展的時代,嵌入式系統(tǒng)作為多個行業(yè)結合的產物,以其專用性強等特點得到了廣泛應用,尤其在視頻監(jiān)控方面,不僅在計算機上實現(xiàn)了這些功能,還能在更小巧的開發(fā)板上實現(xiàn)。無線化是其今后發(fā)展的重要方向,因此將WIFI無線通信技術、嵌入式技術和監(jiān)控技術相結合,可使現(xiàn)場監(jiān)控擺脫線纜的束縛,真正享受在任何時間、任何地點、以多種方式接入現(xiàn)場,得到實時的性能優(yōu)良的視頻監(jiān)控畫面。

      為了解決塔吊在施工中的限制及其帶來的不利影響,該課題利用嵌入式技術設計了一套視頻監(jiān)控系統(tǒng),通過安裝在塔吊起重臂上的攝像頭監(jiān)視吊運施工現(xiàn)場,視頻信號經(jīng)過處理后,通過WIFI傳輸?shù)轿挥诓僮魇业目刂平K端上,這樣便于操作人員監(jiān)視現(xiàn)場情況,進行合理操作。

      2 系統(tǒng)總體設計方案

      確定系統(tǒng)的總體設計方案,基于ARM9處理器和Linux系統(tǒng)平臺建構,利用IEEE802.11無線局域網(wǎng)完成視頻圖像的網(wǎng)絡傳輸,并在塔吊駕駛室對場景視頻圖像進行顯示和控制。采用模塊化的結構設計思想,其組成模塊包括:前端部分、無線網(wǎng)絡傳輸模塊以及視頻顯示模塊。在前端,實現(xiàn)好攝像頭驅動后,用VideoForLinux接口從攝像頭中讀取視頻數(shù)據(jù),調用H.264編碼庫對采集到的視頻數(shù)據(jù)進行編碼。在無線網(wǎng)絡傳輸部分,通過WIFI發(fā)給終端,終端接收數(shù)據(jù)后,進行解碼,最后在界面上顯示出來,整個系統(tǒng)的總體設計方案如圖1所示。

      圖1 系統(tǒng)總體設計方案Fig.1 The overall design of the system

      系統(tǒng)采用的硬件是ARM9開發(fā)板MINI2440,其所用的微處理器是三星公司的S3C2440,S3C2440是基于ARM920T核心的RISC處理器,以ARM9處理器為硬件核心,并擴展了視頻圖像采集模塊、WiFi模塊等,系統(tǒng)硬件框圖如圖2所示。

      3 系統(tǒng)軟件設計

      嵌入式系統(tǒng)中一般有多個應用程序,因此,需要移植操作系統(tǒng)來管理這些應用程序。該開發(fā)板可運行多種操作系統(tǒng),例如嵌入式Linux、uCOS以及WindowsCE等,這里選用開源的嵌入式Linux操作系統(tǒng),該操作系統(tǒng)可以分為幾個模塊,系統(tǒng)上電后依次運行的是Bootloader、Linux內核、Linux文件系統(tǒng)以及應用程序。在應用程序開發(fā)之前,首先搭建系統(tǒng)操作環(huán)境,包括構建交叉編譯環(huán)境、Bootloader的開發(fā)、Linux內核以及根文件系統(tǒng)的開發(fā),然后進行模塊化的應用程序設計,方便進行加載、卸載。

      3.1 視頻數(shù)據(jù)采集

      完整的視頻采集解決方案包括硬件設備驅動程序和視頻采集應用軟件兩部分。攝像頭屬于視頻設備,VideoForLinux是關于視頻設備的驅動標準,這個標準定義了一套接口,內核、驅動和應用程序都是依靠這個標準來進行交流的。該課題選用的Linux2.6.32內核中,已經(jīng)包含了UVC驅動,因此只要在編譯內核時將相關配置選項選中并編譯到內核中,就完成了攝像頭的驅動設計了。配置內核,支持攝像頭的程序如下:

      完成了系統(tǒng)級軟件設計后,接下來便可以進行用戶級軟件的開發(fā)。嵌入式圖像視頻采集是基于V4L函數(shù)庫設計的,在Linux內核中有關于視頻設備的API接口。V4L實際上可以分為兩層,下層為視頻設備在內核中的底層驅動,而上層則是為系統(tǒng)提供的API函數(shù)。在上層進行應用程序開發(fā),完全可以通過API函數(shù),就可以對視頻設備進行操作了。V4L接口提供了Linux下標準的操作函數(shù):open,read,ioctl,close,mmap等,通過這些函數(shù)就能完成圖像視頻的采集。

      系統(tǒng)的視頻采集原理流程圖如圖3所示。

      圖3 視頻采集原理流程圖Fig.3 The principle of video capture processmap

      (1)開啟視頻設備

      打開指定的采集設備,插入USB2.0攝像頭會自動生成該硬件設備的相應文件。當嵌入式Linux內核檢測到新設備時,該設備驅動程序將設備注冊到內核中,攝像頭對應的設備文件名是/dev/video0,采用open()函數(shù)來實現(xiàn):

      cam_fd=open(USB_VIDEO,O_RDWR);/*打開攝像頭設備*/

      (2)初始化

      init_video(intw,int h,int bpp)函數(shù)可以獲取視頻設備信息,并設置圖像參數(shù),以及申請內存映射。

      (3)獲取設備信息和視頻信息并進行設置

      在程序中首先定義兩個數(shù)據(jù)結構:struct video_capability cam_cap代表亮度、對比度以及分辨率等;struct video_picture cam_pic代表攝像頭存儲緩沖區(qū)的幀信息。cam_cap函數(shù)通過調用ioctl()函數(shù)來取得設備文件的相關信息,并將取得的信息放到video_capability結構里,相關程序如下:

      ret=ioctl(cam_fd,VIDIOCGCAP,&cam_cap);/*讀取攝像頭的基本信息*/

      取得設備信息后,還要再取得圖像信息,cam_pic()函數(shù)也是通過調用ioctl()函數(shù)來取得圖像的相關信息,并將其存放到video_picture結構中,相關程序如下:

      ret=ioctl(cam_fd,VIDIOCSPICT,&cam_pic);/*設置攝像頭緩沖中voideo_picture信息*/

      (4)圖像獲取

      V4L提供兩種方式訪問內核數(shù)據(jù),第一種方式是內存拷貝,將視頻數(shù)據(jù)從內核空間中拷貝到指定空間。這種方式容易造成目標板數(shù)據(jù)大量操作,與嵌入式處理器有限內存資源相抵觸;第二種方式是內存映射,即從內核的內存空間映射到相應程序的內存空間,特別適合大量數(shù)據(jù)訪問。通過mmap函數(shù)實現(xiàn),返回程序的地址指針,本系統(tǒng)采用的是內存映射的方法。

      ret=ioctl(cam_fd,VIDIOCGMBUF,&cam_mbuf)函數(shù)初始video_mbuf,獲得攝像頭存儲緩沖區(qū)的幀信息,接著把攝像頭對應的設備文件映射到內存區(qū),使用的是函數(shù)cam_data=(char*)mmap(0,cam_mbuf.size,PROT_READ|PROT_WRITE,MAP_SHARED,cam_fd,0)。mmap():返回值是系統(tǒng)實際分配的起始地址;

      通過調用該函數(shù),可以將設備文件的內容映射到內存區(qū),該映射內存區(qū)可讀可寫,并且不同進程間可共享。

      3.2 視頻數(shù)據(jù)編碼

      采集的視頻數(shù)據(jù)太大,直接傳輸,會造成時延,由于整個系統(tǒng)是應用在塔吊上,因此對實時性要求很高,需要將這些視頻信息進行壓縮編碼,以保證質量不變的前提下大大降低對帶寬的需求,盡可能的減少延時。

      該課題使用的是avc-src-0.14版本的H.264編碼庫,視頻編碼庫在這里主要是將USB攝像頭采集的視頻信息進行編碼壓縮。首先利用SSH軟件將視頻編碼庫h264-lib.tar傳到相應的目錄解壓,進入avc-src-0.14/avc/build/linux/目錄下,修改Makefile,CC=/usr/local/arm/4.3.2/bin/armlinux-gcc,保存Makefile后退出,執(zhí)行make,成功編譯。進入avc-src-0.14/avc/build/objs/下刪除T264.o文件,具體的編碼過程有:初始化;數(shù)據(jù)轉換;開始編碼。H.264編碼庫的初始化主要是對編碼器的初始化,首先打開編碼庫,接下來分配用于存放一幀數(shù)據(jù)的內存,之后對視頻緩沖區(qū)進行讀取,USB攝像頭采集過來的圖像格式是JPEG,若讀到數(shù)據(jù),先把JPEG轉換為YUV格式,再編碼,發(fā)送。

      (1)初始化

      初始化:init_encoder()

      獲取配置文件信息:const char*paramfile="fastspeed.txt"(fastspeed.txt中存放的是一些配置信息)。打開T264編碼:m_t264=T264_open(&m_param)分配好編碼后存放數(shù)據(jù)的內存:m_pDst=(uint8_t*)T264_malloc(m_lDstSize,CACHE_SIZE)。由于我們選擇的是一幀一幀來處理圖像信息,所以先分配好存放一幀數(shù)據(jù)長度的內存:

      m_pPoolData=malloc(m_param.width*m_param.height*3/2);

      (2)數(shù)據(jù)轉換

      將攝像頭采集到的數(shù)據(jù)轉換成亮度、色度差YUV格式的數(shù)據(jù);

      (3)開始編碼

      經(jīng)過上述的初始化過程后,就可以將前端采集到的視頻信息進行壓縮編碼:

      iActualLen=T264_encode(m_t264,cam_data,m_pDst,row_stride)。

      經(jīng)過以上三步,原始視頻數(shù)據(jù)就已經(jīng)被編碼壓縮成符合傳輸標準的視頻信息并進行傳輸了。

      3.3 視頻數(shù)據(jù)的傳輸

      (1)無線傳輸工具WIFI的驅動配置

      該課題所使用的開發(fā)板采用Linux-2.6.32內核,它已經(jīng)包含了多種型號的USB無線網(wǎng)卡驅動,如TP-Link系列、VIA系列等,本課題選用的是TP-Link系列的WIFI無線傳輸裝置。首先在內核中配置無線網(wǎng)卡驅動協(xié)議,其具體配置過程:打開內核源碼,輸入操作命令makemenuconfig進入圖形配置界面,在主菜單上,選擇[*]Networking support,回車進入[*]wireless,回車進入[*]Generic IEEE802.11Networking stack(mac80211),選擇所用的WIFI無線裝置的型號。

      退回到內核配置主菜單,選擇Device Drivers并進入,開始配置無線網(wǎng)卡驅動。在Device Drivers菜單里面,選擇Network device support,回車進入。在Network device support菜單里面,選擇Wireless LAN,回車進入。在Wireless LAN菜單里面,選擇Wireless LAN(IEEE 802.11),回車進入,即完成了驅動協(xié)議的配置。

      (2)Linux下的網(wǎng)絡通信

      TCP(Transmission Control Protocol)是一種傳輸層的傳輸控制協(xié)議,應用于TCP/IP體系。該協(xié)議是面向連接(連接導向)的,可以提供可靠的、順序傳送的數(shù)據(jù)流,內核中已經(jīng)配置了該協(xié)議的支持,如圖4是在該協(xié)議下的通信流程圖。

      進程間的通信是網(wǎng)絡通信的本質所在,在網(wǎng)絡中,首先要唯一標識一個進程,否則無法通信,TCP/IP協(xié)議可以做到,在網(wǎng)絡層IP地址可以唯一標識網(wǎng)絡中的主機。這樣,當兩個進程進行通信時,必須要先確定進行通信雙方的IP地址。同一臺PC機一般具有多個網(wǎng)絡進程,因此僅僅通過IP地址是不能對單個進程進行確定的,還需要Socket提供其他的一些相關信息,比如端口號,只有將IP地址和端口號綁定起來,才能夠對整個Internet中的網(wǎng)絡進程進行確定。在該課題中使用的Socket是流式套接字(Stream Socket),Stream Socket使用的就是TCP協(xié)議。

      圖4 TCP/IP協(xié)議下的通信流程圖Fig.4 Communication flow chart of the TCP/IP protocol

      3.4 視頻顯示

      MJPG-streamer是一款基于IP的開源視頻流服務器,它的輸入插件從攝像頭讀取視頻數(shù)據(jù),這個輸入插件產生的視頻數(shù)據(jù)將其復制到內存中,它本身帶有多個輸出插件,可以將這些視頻數(shù)據(jù)進行處理,其中最重要的輸出插件是網(wǎng)站服務器插件,它將視頻數(shù)據(jù)傳送到用戶瀏覽器中,通過下載源碼、解壓、修改源碼、編譯等之后,將其用Secure CRT等工具把文件下載到開發(fā)板上。

      將MJPG-streamer視頻服務器在開發(fā)板上安裝好以后,再在客戶端下載一個火狐網(wǎng)頁瀏覽器,設置客戶端的IP地址:222.25.8.22,子網(wǎng)掩碼為:255.255.255.0,默認網(wǎng)關為:222.25.8.124,開發(fā)板的IP地址為:222.25.8.168,將開發(fā)板與客戶端ping通,在Secure CRT設備控制終端上,輸入如下命令:

      4 系統(tǒng)測試

      在瀏覽器中輸入:http://222.25.8.168:8080/stream_simple.html即可看到攝像頭的動態(tài)畫面了,如圖5所示。

      圖5 視頻監(jiān)控測試畫面Fig.5 Videomonitoring test picture

      5 結束語

      該課題基于ARM/Linux平臺并結合無線局域網(wǎng)技術設計并實現(xiàn)了一套塔吊機載視頻監(jiān)控系統(tǒng),通過在ARM-Linux操作系統(tǒng)下設計攝像頭的驅動及應用程序,無線WIFI的驅動及應用程序,以及移植了MJPG-streamer視頻流服務器,利用video4 Linux完成本地視頻數(shù)據(jù)的采集、編碼等工作,然后通過WIFI發(fā)送數(shù)據(jù)包,最終在PC機上n進行接收、顯示。該系統(tǒng)實時性強,方便移植,且有利于系統(tǒng)的二次開發(fā)及升級,應用前景廣闊。

      [1] 郭寒竹,王明忠.建筑起重機械安全現(xiàn)狀與任務[J].市場觀察,2009(8):72-75.

      [2] 王晨營.基于ARM9的嵌入式遠程監(jiān)測系統(tǒng)的設計與實現(xiàn)[D].北京:北京郵電大學,2009:7-8.

      [3] 韋東山.嵌入式Linux應用開發(fā)完全手冊(第一版)[M].北京:人民郵電出版社,2009:475-493.

      [4] 宋寶華.設備驅動開發(fā)詳解(第一版)[M].北京:人民郵電出版社,2010:356-368.

      [5] The Linux UVC Project.Linux UVC driver and Toola[EB/OL].http://www.ideasonboard.org/uvc/#documentation.

      [6] W.Richard Stevens.TCP/IP詳解(卷1:協(xié)議)[M].北京:機械工業(yè)出版社,2007:245-267.

      [7] Sonenberg Fray Deeny,Mc.F.ROb.Automating cranesforstorageandRetrivalOperation[J].Iron and Steel Engineer.1998,25(11):75-77.

      [8] ChristopherHallinan.Embed-dedLinux Primer Second Edition A Practical Real-World Approach[M].Boston:Prentice Hall,2010:5-10.

      Design on Video Monitoring System Based on Tower Crane

      Ren Anhu,Dou Yuchun
      (Electronic Information Engineering Institute,Xi'an Technological University,Xi'an 710021,China)

      Tower crane,as an important and irreplaceable equipment in modern building construction,often carries out some blind operations in the construction.A corresponding videomonitoring system is designed and the key part is researched to solve the problem mentioned above.Firstly,the overall project of videomonitoring system is put forward and the device is selected,the hardware platform and software platform of the system are introduced and analyzed,and the video acquisition algorithm is designed and the coding is optimized by H.264 for the video data.In the network transmission module,the TCP/IP network communication protocol is used.Finally,it is displayed in PC bymeans of MJPG-streamer video.After the experimental debugging,the system can provide real-time videomonitoring.

      Tower crane;Blind operation;Video surveillance;Real time

      10.3969/j.issn.1002-2279.2015.03.018

      TN919.8

      A

      1002-2279(2015)03-0064-05

      西發(fā)工業(yè)大學校長基金(XAGDXJ1214)

      任安虎(1974-),男,西安寶雞人,碩士生導師,主研方向:信號及信息處理。

      2014-07-17

      猜你喜歡
      塔吊內核內存
      兒童主動學習行為的分析及支持策略——以扭扭積木《塔吊》為例
      天津教育(2023年2期)2023-03-14 07:35:34
      萬物皆可IP的時代,我們當夯實的IP內核是什么?
      強化『高新』內核 打造農業(yè)『硅谷』
      多標段工程群塔布置與安裝
      四川水泥(2020年8期)2020-08-06 08:07:56
      塔吊檢查
      當代工人(2019年19期)2019-11-22 07:20:27
      超高層建筑塔吊選型和布置分析
      工程與建設(2019年4期)2019-10-10 01:45:56
      “春夏秋冬”的內存
      當代陜西(2019年13期)2019-08-20 03:54:22
      基于嵌入式Linux內核的自恢復設計
      Linux內核mmap保護機制研究
      基于內存的地理信息訪問技術
      晋宁县| 宁晋县| 循化| 辰溪县| 五河县| 宁明县| 天等县| 南皮县| 林西县| 郯城县| 卓资县| 博湖县| 杭锦后旗| 福海县| 石城县| 郯城县| 仙桃市| 丰镇市| 瑞金市| 株洲县| 冀州市| 东乌珠穆沁旗| 揭西县| 阿拉善盟| 泗水县| 阿拉善左旗| 连云港市| 西乌| 兴安盟| 镇平县| 房产| 两当县| 诸暨市| 绥宁县| 闽清县| 宣汉县| 双柏县| 玉门市| 惠安县| 共和县| 香格里拉县|