999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Intel Edison的嵌入式實時圖像采集傳輸與錄制系統設計

2018-01-05 00:29:26張修軍劉惠東
成都大學學報(自然科學版) 2017年4期
關鍵詞:嵌入式系統設計

張修軍,劉惠東,李 杰

(成都大學 信息科學與工程學院,四川 成都 610106)

基于Intel Edison的嵌入式實時圖像采集傳輸與錄制系統設計

張修軍,劉惠東,李 杰

(成都大學 信息科學與工程學院,四川 成都 610106)

基于Yocto Linux的Intel Edison嵌入式開發工具,設計并開發了一套實時圖像采集傳輸及錄制系統.通過USB攝像頭對圖像進行采集,并將圖像數據通過視頻服務器MJPG-Streamer傳輸到外部移動設備上,同時通過Intel Edison開發工具調用OpenCV圖像庫對圖像數據進行處理及保存.測試結果表明,系統具有良好的實時性、高分辨率、低成本及易于拓展升級等優點.

嵌入式;實時;圖像采集;傳輸;錄制;Intel Edison;OpenCV;MJPG-Streamer;Video4Linux

0 引 言

目前,傳統的視覺圖像采集大多是基于“攝像頭—圖像采集卡—通用PC機"三者為一體的系統,但這種視覺系統不能滿足實際應用對圖像實時處理的需求,而基于單片機的數據采集系統,雖然具有高可靠性及集成化等優點,但是在實時性、遠程監控及人機接口等方面存在一些不足[1].鑒于嵌入式系統具有成本低、高靈活性及功耗低等諸多優點[2],本研究采用Yocto Linux的Intel Edison嵌入式開發板作為開發環境,同時集成使用TBB線程構建模塊以最大限度地利用CPU并行運行能力,其具備的快速原型能力可加快開發過程.通過USB攝像頭對圖像進行采集,將圖像數據通過視頻服務器MJPG-Streamer傳輸到外用設備,并調用OpenCV圖像庫實現對圖像數據的保存以及后期處理.測試結果表明,本系統具有良好的實時性、高分辨率及易于拓展升級的優點,可用于遠程監控、公共場所安全管理及智能家居等相關領域.

1 系統結構設計

1.1 系統硬件平臺結構

本研究的系統硬件平臺采用Intel公司研發的AtomZ34XX系列處理器,并整合了100 MHz Quark處理器,其自帶1 GB LPDDR3 POP內存且使用4 GB eMMC作為FLASH存儲,提供40個GPIO接口,可適應3.3~4.5 V輸入電壓,輸出則支持3.3 V/100 mA、1.8 V/100 mA.系統平臺硬件的功能框圖如圖1所示.本系統硬件平臺在一般情況下電流消耗不超過200 mA,而在利用Wi-Fi傳輸數據時,峰值電流僅達600 mA,具有低功耗的特點.同時,平臺還配置了Broadcom BCM43340 Wi-Fi支持,外接u.FL射頻同軸天線以增強無線信號的接收發送能力,引出1個USB HOST接口用于連接USB攝像頭,采用1 080 P高清USB攝像頭,板載64 GB MicroSD卡.

圖1系統硬件平臺功能框圖

1.2 圖像采集傳輸與錄制設計

本系統通過USB高清攝像頭獲取圖像數據并傳送至Edison處理器,利用MJPG-Streamer實現遠程視頻監控,并通過OpenCV錄制為AVI格式的視頻文件.系統的圖像采集傳輸與錄制整體結構框圖如圖2所示.

圖2圖像采集錄制系統結構框圖

2 開發環境與配置

2.1 Yocto Project Linux內核配置與SD卡啟動方式

Yocto Project是一個開源的協作軟件,提供模板、工具和方法幫助創建定制的 Linux 系統和嵌入式產品,而無需關心硬件體系.在通過常用方式將Linux裝載在芯片eMMC上并成功啟動后,為了能給圖像數據提供大量的存儲空間,本研究利用64 GB的SD卡作為系統文件存放媒介.首先使用“mkfs.ext4”命令將SD卡分區格式化為ext4格式的文件系統,并將Yocto Linux系統鏡像目錄中的Roofts內容復制到SD中,將SD卡與測試系統連接,通過調試串口登錄嵌入式Linux系統且執行如下2條命令,

“fw-setenvmmc-bootarges'setenvbootargsroot=${myrootfs}rootdelay=3 rootfstype=ext4${bootarges-console}${bootargs-debug} system.unit=${bootargs-target}.targethardware-id={hardware-id} g-multi.iSerialNumber=${serial#} g-multi.dev-addr=${usb0addr}'”

“fwsetenvmyrootfs '/dev/mmcblk1p1”

則可以通過U-boot設置從SD卡的第1個分區加載Linux中的roofts系統.在Yocto Project中,內核配置操作與常見Linux配置稍有不同,通過“bitbake virtual/kernel-c menuconfig”調用內核配置菜單,配置Media USB Adapters目錄下的攝像頭驅動支持,并通過“bitbakeedison-image”重新編譯整個系統.將攝像頭連接至Yocto系統中,如果/dev目錄下出現video等設備文件,則代表攝像頭已被內核所識別.

2.2 圖像采集設計

Linux系統中的視頻子系統Video4Linux為視頻應用程序提供了統一的API函數.視頻應用程序通過標準的系統調用即可操縱各種不同的視頻捕獲設備[3],通過這些API函數讀取攝像頭數據,并利用mmap()內存映射方式進行單幀圖像采集,具體過程如下:

1)通過v4l-open()函數打開視頻.

int v4l-open(char *dev,v4l-device *vd)

{

if(!dev)

dev=″dev/video0″

if((vd->fd=open(dev,O-RDWR))<0)

{

perror(″camera open:″);

return -1;

}

if(v4l-get-capability(vd))

return -1;

if(v41-get-picture(vd))

return -1;

return 0;

}

2)開啟設備并成功取得設備信息后,利用v4l-get-capability()函數調用ioctl()取得設備文件相關信息,并且將信息放入video-capability結構體中,通過v4l-get-capability()函數讀取這些信息.

int v4l-get-capability(v4l-device *vd)

{

if(ioctl(vd->fd,VIDEOCGCAP,&(vd->capability))<0)

{

perror(″camera-get-capability:″);

return -1;

}

return 0;

}

3)通過v4l-get-picture()獲取并改變分量值,利用ioctl()函數獲取圖像緩沖區的幀數據并將其USB攝像頭對應的設備文件映射至內存,實現數據共享.

2.3 MJPG-Streamer移植

MJPG-Streamer是一種輕量級的視頻服務器軟件,可以從單一輸入組件獲取圖像并傳輸到多個輸出組件的命令行應用程序[4],其是基于V4L2框架所設計,能夠將讀取攝像頭圖像數據并壓縮為JPEG格式通過TCP/IP網絡傳輸并顯示,并且能夠利用Webcams的硬件壓縮功能來分擔本屬于CPU的視頻幀壓縮任務[4].該軟件采用了模塊化的設計方法,各功能模塊都放在plugins文件夾下[5].用戶可以根據自己的設計需求,自由選擇需要的模塊.這種模塊化的設計簡化了視頻服務器軟件的移植.

本研究主要應用其input-uvc及output-http組件獲取并輸出攝像頭數據,通過在Shell程序中添加如下語句啟動MJPG-Streamer.

“cd /home/mjpg-streamer”

“./mjpg-streamer -i ″./input-uvc.so -d /dev/video0 -r1280x720 -f 25″ -o″./output-http.so -p 8888 -w ./www″”

并將SH文件添加至系統啟動文件目錄即可實現MJPG-Streamer的開機自啟動.

2.4 OpenCV函數庫移植

OpenCV是由Intel公司開發且在近年來迅速普及的計算機視覺研究工具,為一種跨平臺的計算機視覺庫.在其基礎上編寫圖像處理代碼,效率可得到有效提高[6-7].為了充分利用本平臺多核處理器的并行運算能力,本研究利用Intel的TBB庫將OpenCV交叉編譯成動態鏈接庫并將其部署到Edison系統當中使用.通過在開機目錄中創建deploy文件目錄并將TBB軟件包文件中相關的所有頭文件及二進制庫文件復制到此目錄,并將SDK安裝目錄下的環境變量配置腳本的第10行修改為,

“export CC=” i589-poky-linux-gcc””

第11行修改為,

“export CXX=” i586-poky-linux-g++"”

獲取OpenCV源代碼并解壓后,在當前目錄中創建build目錄并進入,通過執行cmake命令開始進行編譯前的配置準備,

“cmake -D WITH-TBB=ON -DWITH-IPP=OFF -D WITH-CUDA=OFF -D OPENCL=OFF -D BUILD-JPEG=ON -D BUILD-SHARED-LIBS=ON -D BUILD-ZLIB=ON -D CMAKE-INSTALL-PREFIX=~/src/deploy -D TBB-INCLUDE-DIRS=/src/edison/include -D TBB-LIB-DIR=/src/deploy/lib…”

命令cmake完成編譯配置后,通過make命令進行編譯,并通過使用make install命令將其復制到之前建立的deploy目錄中,最后通過“scp”命令將所有的OpenCV動態鏈接庫文件部署到Edison系統中.在系統調試過程中可通過在PC機上調用cvCaptureFromFile函數來獲取MJPG-Streamer傳輸的視頻流數據,充分利用了交叉編譯的優勢.

程序示例如下:

#include

#include

#include ″OpenCV2/OpenCV.hpp″

#include ″highgui.h″

using namespace std;

int main()

{

CvCapture* capture = cvCaptureFromFile(″http://192.168.1.

101:8080/?action=stream?dummy=param.mjpg″);

//此處IP地址可通過ifconfig命令獲得

IplImage*Image;

cvNamedWindow(″Image″);

while(Image=cvQueryFrame(capture))

{

cvShowImage(″Image″,Image);

cvWaitKey(33);

}

cvReleaseCapture(&capture);

cvDestroyAllWindows();

return 0;

}

3 系統測試

本系統在上電啟動后,將自動通過Wi-Fi連接到無線路由器.同時,通過將USB攝像頭插入系統板(見圖3),系統將檢測到攝像頭的接入并自動啟動MJPG-Streamer客戶端程序,并通過配置的路由器將服務器映射到外網端口.此時可通過智能設備瀏覽器輸入192.168.0.101:8080進行訪問,視頻展示效果如圖4所示.同時,使用者還可以通過Winscp、filezilla等軟件查看錄制保存在SD卡上的AVI文件.測試結果表明,本系統各項功能運行流暢.

圖3 USB攝像頭連接圖

圖4智能設備訪問視頻示意圖

4 結 語

本研究基于Intel Edison利用MJPG-Streamer獲取并傳輸攝像頭數據,同時通過由TBB并行開發庫編譯的OpenCV庫保存為AVI格式視頻.Edison配備的Atom+Quark的性能遠遠超過常見的MCU,其強大的運算能力保證了本系統的穩定性與高分辨率.相比常見的基于ARM系列的圖像傳輸系統,本系統的功能更加強大.盡管本系統的成本有所增加,但卻可以快速驗證系統原型,極大縮短了開發時間.同時,本系統的設計思路也適用于一些與實時圖像處理相關的高性能產品的開發.

[1]鄭凱華,章旭東,俞立,等.基于S3C2440的圖像采集與顯示系統[J].計算機系統應用,2011,20(8):225-228.

[2]彭侃.基于ARM9的嵌入式軟件平臺的研究與實現[D].上海:東華大學,2008.

[3]張永強,趙永勇,李崇德.嵌入式遠程視頻采集系統的設計與實現[J].現代電子技術,2006,29(4):75-77.

[4]陳書益,黃永慧.開源視頻服務器軟件MJPG-Streamer的研究和應用[J].電子設計工程,2012,20(5):172-176.

[5]陳恒鑫,林威,張欽宇.基于MJPG-Streamer的移動視頻監控系統設計[J].計算機測量與控制,2014,22(11):3597-3599.

[6]梁艷.基于OpenCV的ARM嵌入式網絡視頻監控系統[J].微型機與應用,2013,32(9):29-31.

[7]蘇慧娟,于正林,張桂林.基于OpenCV的圖像處理[J].科技資訊,2014,12(8):18-19.

DesignofEmbeddedReal-timeImageCollectionTransmissionandRecordingSystemBasedonIntelEdison

ZHANGXiujun,LIUHuidong,LIJie

(School of Information Science and Engineering, Chengdu University, Chengdu 610106, China)

The embedded real-time image collection transmission and recording system based on Intel Edison and Yocto Linux is designed and implemented in this paper.The image data is collected by USB camera and transmitted through the video server MJPG-Streamer to the external mobile device.Through the OpenCV image library called by Intel Edison development board,the image data is processed and saved.The testing results show that this system has the advantages of being real-time,high-resolution,low cost,and being easy to expand and upgrade.

embedded technology;real-time;image collection;transmission;recording;Intel Edison;OpenCV;MJPG-Streamer;Video4Linux

TP391.41;TP274.2

A

1004-5422(2017)04-0390-04

2017-09-25.

張修軍(1973 — ),男,碩士,副教授,從事計算機軟件工程研究.

猜你喜歡
嵌入式系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 中文字幕久久精品波多野结| 九九线精品视频在线观看| 亚洲视屏在线观看| 最新精品久久精品| 99久久无色码中文字幕| 精品欧美日韩国产日漫一区不卡| 国产美女精品在线| 久久人人妻人人爽人人卡片av| 日本高清在线看免费观看| 91精品网站| 999精品色在线观看| 国产男女免费视频| 国产精品熟女亚洲AV麻豆| 婷婷六月综合网| 免费精品一区二区h| 亚洲天堂777| 亚洲不卡影院| 亚洲日韩AV无码一区二区三区人| 国产激情第一页| 久久综合亚洲鲁鲁九月天| 五月激情综合网| 夜夜操国产| 欧美在线精品怡红院| 国产午夜福利在线小视频| 久热99这里只有精品视频6| 成人精品亚洲| 美女一级毛片无遮挡内谢| 71pao成人国产永久免费视频| 成人国产免费| 精品人妻一区二区三区蜜桃AⅤ| 99久久精品无码专区免费| 色婷婷在线播放| 日韩欧美成人高清在线观看| 欧美性久久久久| 国产杨幂丝袜av在线播放| 97成人在线视频| 天天色综网| 波多野结衣在线一区二区| 国产幂在线无码精品| 天堂成人av| 毛片最新网址| 免费国产高清精品一区在线| 日韩精品无码一级毛片免费| 99精品视频在线观看免费播放| 美女国内精品自产拍在线播放| 人禽伦免费交视频网页播放| 成人国产精品2021| 性色生活片在线观看| 国产精品女熟高潮视频| 亚洲国产日韩在线观看| 爆操波多野结衣| 天天摸天天操免费播放小视频| 毛片大全免费观看| 色综合中文字幕| 国产精品免费露脸视频| 四虎亚洲国产成人久久精品| 青青青视频91在线 | 亚洲男人天堂2020| 米奇精品一区二区三区| 欧美亚洲激情| 蜜桃臀无码内射一区二区三区 | 亚洲成av人无码综合在线观看| 国内99精品激情视频精品| 欧美成人在线免费| 免费日韩在线视频| 亚洲天堂久久| 国产美女主播一级成人毛片| 91色爱欧美精品www| 久操线在视频在线观看| 婷婷色中文| 久久国产黑丝袜视频| 欧美中出一区二区| 精品一区二区三区波多野结衣| 在线播放91| 亚洲最大福利视频网| 久久永久免费人妻精品| 亚洲人视频在线观看| 永久天堂网Av| a欧美在线| 在线va视频| 毛片手机在线看| 日韩亚洲综合在线|