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

        ?

        基于機(jī)器視覺(jué)的嵌入式教室照明自動(dòng)控制系統(tǒng)開(kāi)發(fā)

        2022-01-06 10:39:56李香萍
        實(shí)驗(yàn)室研究與探索 2021年11期
        關(guān)鍵詞:差分灰度背景

        白 煜, 李香萍

        (天津大學(xué)a.電氣自動(dòng)化與信息工程學(xué)院;b.天津市類腦智能技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300072)

        0 引 言

        教室照明控制系統(tǒng)對(duì)于節(jié)省辦學(xué)經(jīng)費(fèi)和保護(hù)學(xué)生視力有重要的意義。室內(nèi)照明控制系統(tǒng)分為手動(dòng)模式和自動(dòng)控制模式[1-4]?;趥鞲衅鞯淖詣?dòng)控制模式中,傳感器的數(shù)量和安放位置對(duì)照明控制效果的影響很大。室內(nèi)環(huán)境的限制因素多,傳感器布置困難?;跈C(jī)器視覺(jué)的教室照明控制系統(tǒng)[5-7],解決了傳感器布置的難題。機(jī)器視覺(jué)算法需要工控機(jī)來(lái)實(shí)現(xiàn),使得系統(tǒng)的成本和復(fù)雜度較高,缺乏靈活性,且不適合實(shí)踐教學(xué)使用。

        本文基于嵌入式平臺(tái),設(shè)計(jì)了機(jī)器視覺(jué)算法,對(duì)教室監(jiān)控設(shè)備獲取的圖像進(jìn)行處理,得到室內(nèi)照明亮度和人員位置信息。在此基礎(chǔ)上,實(shí)現(xiàn)教室照明自動(dòng)控制。本系統(tǒng)的特點(diǎn)是:不需要傳感器,僅利用教室已有的監(jiān)控設(shè)備,獲得基本信息;單層結(jié)構(gòu),獨(dú)立運(yùn)行,無(wú)須上位機(jī)和組網(wǎng);基于嵌入式平臺(tái),成本低、使用靈活,適用于實(shí)踐教學(xué)。

        1 系統(tǒng)設(shè)計(jì)

        1.1 系統(tǒng)方案

        如圖1所示,中型教室內(nèi)部分為6個(gè)區(qū)域,假定每個(gè)區(qū)域安裝一組燈。嵌入式平臺(tái)的主要任務(wù)是控制攝像機(jī)的工作狀態(tài),執(zhí)行機(jī)器視覺(jué)算法,控制繼電器。

        圖1 基于機(jī)器視覺(jué)的嵌入式教室照明自動(dòng)控制系統(tǒng)框圖

        1.2 機(jī)器視覺(jué)算法

        本系統(tǒng)的機(jī)器視覺(jué)算法分為人員位置檢測(cè)和照明亮度測(cè)量?jī)刹糠?。設(shè)計(jì)難點(diǎn)為優(yōu)化算法,使之適應(yīng)嵌入式系統(tǒng)有限的存儲(chǔ)和計(jì)算能力。

        1.2.1 人員位置檢測(cè)算法

        (1)人員位置計(jì)算?;趫D像處理的人體檢測(cè)算法,大致可分為背景差分法[8]、幀間差分法[9]、光流法[10]3種。根據(jù)算法的硬件開(kāi)銷和處理效果,本文選用背景差分法。

        根據(jù)文獻(xiàn)[8]中對(duì)背景差分法的定義可得

        式中:Fn(x,y)為差分結(jié)果圖像;Bn(x,y)、Jn(x,y)分別為當(dāng)前時(shí)刻背景圖像和教室實(shí)時(shí)圖像矩陣中對(duì)應(yīng)的灰度級(jí);T=30為一常數(shù)。將Fn(x,y)中灰度級(jí)大于等于30的位置標(biāo)記為1,反之為0。在Fn(x,y)的基礎(chǔ)上,進(jìn)行室內(nèi)人員位置計(jì)算。

        構(gòu)建一個(gè)6×10的矩形窗,令其在Fn(x,y)上移動(dòng)。若窗內(nèi)標(biāo)記為1的像素個(gè)數(shù)≥50,則認(rèn)為此區(qū)域有人。

        圖2為像素級(jí)教室內(nèi)部劃分示意圖,圖像大小為320×240。

        圖2 教室區(qū)域像素級(jí)劃分

        假定攝像機(jī)位于教室后面中間位置,區(qū)域1、2位于圖像0~50行,區(qū)域3、4位于圖像51~90行,區(qū)域5、6位于圖像91~120行,各區(qū)域?qū)挒?60列。圖像中121~240行為講臺(tái)和墻壁。為提高速度,縱向每隔3行掃描一次,橫向每隔5列掃描一次。

        (2)背景圖像構(gòu)建。背景圖像構(gòu)建是背景差分法的關(guān)鍵。目前,已有的背景構(gòu)建方法,例如中值法[11]、均值法[12]、高斯分布法[13],都存在硬件開(kāi)銷大、計(jì)算復(fù)雜等不足,在嵌入式平臺(tái)上難以實(shí)現(xiàn),需要設(shè)計(jì)更簡(jiǎn)單有效的方法。

        本文采集不同情況下教室內(nèi)無(wú)人時(shí)的圖像作為背景。針對(duì)圖1所示的中型教室,根據(jù)燈具亮滅,有26個(gè)不同的背景,需要系統(tǒng)存儲(chǔ)64幅圖片。圖1中區(qū)域1和區(qū)域3、6相距較遠(yuǎn),可忽略區(qū)域3、6的燈光對(duì)區(qū)域1的影響。對(duì)于區(qū)域1,只需考慮區(qū)域1、2、4、5照明影響。其余同理,可得表1。

        表1 背景模板所需考慮情況

        根據(jù)表1,通過(guò)不同排列組合方式將原本需要的64個(gè)背景圖像減少為16個(gè),如圖3所示。

        圖3 16幅背景圖像中6個(gè)區(qū)域照明燈具的開(kāi)關(guān)情況

        1.2.2 照明強(qiáng)度測(cè)量算法

        根據(jù)實(shí)驗(yàn)結(jié)果可得,光照強(qiáng)度與圖像的灰度正相關(guān)[14]。通過(guò)計(jì)算圖像灰度來(lái)測(cè)量光照強(qiáng)度。

        計(jì)算如圖4中兩個(gè)紅色區(qū)域的平均灰度值,即黑板兩側(cè)2塊50×50像素的區(qū)域。對(duì)應(yīng)圖2,2塊區(qū)域的范圍為:160~209行,40~89列、240~299列。若平均灰度值≥120,說(shuō)明教室光照充足,反之說(shuō)明太弱。測(cè)量該值的作用為:判斷室內(nèi)是否太暗,提前開(kāi)燈防止人員檢測(cè)算法失效。系統(tǒng)計(jì)算有人區(qū)域的圖像灰度值,若≥150則逐一關(guān)燈,若<120則逐一開(kāi)燈,否則保持不變。

        圖4 教室內(nèi)部平均灰度值計(jì)算區(qū)域

        2 硬件原理圖及電路連接

        系統(tǒng)使用的嵌入式平臺(tái)為STM32開(kāi)發(fā)板,內(nèi)核為STM32F103。圖5所示為系統(tǒng)實(shí)物圖,包含開(kāi)發(fā)板、右側(cè)為一組繼電器、左下角為OV7725攝像機(jī)。

        圖5 系統(tǒng)整體實(shí)物圖

        2.1 STM32F103和OV7725電路連接

        OV7725與STM32開(kāi)發(fā)板的對(duì)應(yīng)接口,見(jiàn)表2中CAMERA接口。STM32F103通過(guò)OV_SDA和OV_SCL將控制信息寫入OV7725的寄存器,控制圖像的輸出格式。僅當(dāng)STM32F103的FIFO寫使能信號(hào)FIFO_WEN為高電平,OV7725行同步信號(hào)OV_HREF為低電平時(shí),數(shù)據(jù)才能寫入STM32F103的內(nèi)部Flash。

        2.2 外部存儲(chǔ)空間和STM32F103電路連接

        STM32F103的內(nèi)存較小,需要增加外部存儲(chǔ)器,存儲(chǔ)16幅背景圖像。系統(tǒng)使用W25Q128芯片作為外部存儲(chǔ)器,容量為16 MB。該芯片與STM32開(kāi)發(fā)板的接口,見(jiàn)表2中的W25Q128接口。

        2.3 液晶顯示屏和STM32F103電路連接

        7 cm的液晶顯示屏,采用16 bit FSMC總線與STM32開(kāi)發(fā)板連接,接口如表2中液晶屏接口所示。

        2.4 輸出控制電路的連接

        對(duì)于中型教室,本系統(tǒng)共需要輸出6路控制信號(hào),分別控制6個(gè)電磁繼電器的閉合。繼電器與STM32連接方式,如表2中的電磁繼電器接口所示。

        表2 STM32F103 GPIO接口分配情況

        3 編程實(shí)現(xiàn)

        本文設(shè)計(jì)的機(jī)器視覺(jué)算法流程如圖6所示。首先進(jìn)行硬件初始化,設(shè)定中斷等級(jí)等。然后獲取一幀教室圖像,計(jì)算平均灰度值,判斷是否需要開(kāi)燈。如果需要開(kāi)燈,則將6個(gè)輸出接口設(shè)置為高電平,點(diǎn)亮所有燈具,并保持60 s供學(xué)生選擇座位。否則關(guān)閉所有燈具,進(jìn)入下一步。

        圖6 機(jī)器視覺(jué)算法流程圖

        3.1 OV7725圖像輸出

        3.1.1 設(shè)置圖像輸出格式

        通過(guò)SCCB控制總線,寫OV7725的COM7寄存器,可設(shè)置圖像輸出格式。COM7寄存器地址為0X12。根據(jù)表3,可得控制字為“0100 0110”即0X46。

        表3 COM7寄存器各位表示意義

        3.1.2 圖像的輸出過(guò)程

        (1)捕獲圖像輸出信號(hào)。當(dāng)幀同步信號(hào)為高電平、行同步信號(hào)為低電平時(shí),OV7725輸出一行數(shù)據(jù)。STM32F103采用外部中斷8捕獲OV7725的幀同步信號(hào),中斷8程序代碼如下:

        if(EXTI_GetITStatus(EXTI_Line8)==SET);//外部8的中斷

        OV7670_WRST=0; //復(fù)位FIFO芯片寫指針 OV7670_WRST=1;

        OV7670_WREN=1; //FIFO芯片寫使能

        ov_sta++; //幀中斷加1

        (2)STM32F103從OV7725的FIFO中讀取圖像。讀取過(guò)程為:STM32F103復(fù)位FIFO讀指針,給FIFO讀時(shí)鐘,1個(gè)像素占用2個(gè)Byte,第1個(gè)時(shí)鐘讀取高Byte,第2個(gè)時(shí)鐘讀取低Byte。QVGA模式RGB565格式下,需要循環(huán)320×240×2次,讀取1幀圖像。將讀取的圖像存儲(chǔ)到內(nèi)部Flash,進(jìn)行圖像處理;同時(shí),將數(shù)據(jù)寫入到LCD的RAM,進(jìn)行顯示。

        STM32F103的SRAM只有64 KB,不能申請(qǐng)150 KB的二維數(shù)組作為中間變量。編程時(shí)申請(qǐng)一個(gè)1 024×2 Bytes的數(shù)組,使用變量buf_flag作為標(biāo)記,當(dāng)buf_flag對(duì)1024取模等于1 023時(shí),將存儲(chǔ)1 024個(gè)像素?cái)?shù)據(jù)的數(shù)組寫入內(nèi)部Flash。重復(fù)75次上述過(guò)程讀取1幀圖像。使用2層循環(huán)完成1幀QVGA圖像的讀取。第1層循環(huán)240次,是圖像的寬度,第2層循環(huán)320次,是圖像的長(zhǎng)度。代碼如下:

        for(i=0;i<OV7725_WINDOW_HEIGHT;i++);//共240行

        {for(j=0;j<OV7725_WINDOW_WIDTH;j++);//320每行

        picture2[(buf_flag% 1024)]=camera_gray;

        if(buf_flag%1024==1023)

        STMFlash_Write(Flash_SAVE_ADDR+((buf_flag/1024)*2048),picture2,1024) }

        3.2 圖像平均灰度計(jì)算程序

        采用brightness1表示灰度值得總和。

        if((i>=160 && i<210 && j>=40 &&j<90)||(i>=160 && i<210 && j>=250 &&j<300))

        brightness1=brightness1+camera_gray;

        總灰度值除以5 000,得到灰度平均值,如果該值大于120,說(shuō)明教室照明不暗,令b_flag=0;反之說(shuō)明教室光線弱,令b_flag=1。

        為了提高算法穩(wěn)定性,采用一個(gè)8 bit無(wú)符號(hào)數(shù)b_buff作為標(biāo)記,每次左移1位,最低位變成b_flag,最高位舍棄,最低位用于記錄最新的灰度平均值,如果這個(gè)標(biāo)記等于0XFF,說(shuō)明有連續(xù)8幀圖像的b_flag都為1,連續(xù)8幀圖像的灰度平均值都低于閾值,此時(shí)室內(nèi)需要開(kāi)燈。

        b_buff?=1;//左移一位,

        if(b_flag==1)b_buff+=1;

        if(b_buff==0XFF)

        3.3 圖像顯示至LCD顯示屏

        程序中使用LCD_Scan_Dir(U2D_L2R)函數(shù),通過(guò)FSMC總線控制器將數(shù)據(jù)寫入LCD中的RAM。

        3.4 圖像預(yù)處理

        3.4.1 圖像的灰度化

        圖像灰度化之前,需要分離R、G、B分量。由RGB565輸出標(biāo)準(zhǔn)可知,每個(gè)像素占2 Byte,第1 Byte高5位表示R分量,第1 Byte低3位以及第2 Byte高3位表示G分量,第2 Byte低5位表示B分量。

        提取R、G、B的程序代碼為:

        camera_red=(color&0xF800)?8;camera_green=

        (color&0x07E0)?3;

        camera_blue=(color&0x001F)?3;

        將R、G、B圖像轉(zhuǎn)化成灰度圖像的方法通常有平均值法、最大值法和加權(quán)平均值法等[15]。3種方法中,加權(quán)平均值法最符合人眼特征,且不同顏色灰度值的區(qū)分度高,該方法通過(guò)對(duì)3個(gè)分量賦予不同的權(quán)值,得到加權(quán)平均值示灰度值。

        式中,f(R,G,B)為灰度值,代碼實(shí)現(xiàn)如下:

        camera_gray=(30*camera_red+59*camera_green+

        11*camera_blue+50)/10);

        編程時(shí)為了減少Flash的讀寫次數(shù),先將OV7725輸出的圖像灰度化后,再存儲(chǔ)到內(nèi)部Flash中。

        3.4.2 背景圖像的存入

        背景圖像存儲(chǔ)于外部存儲(chǔ)器。核心代碼如下,括號(hào)中的參數(shù)為背景圖像的序號(hào)。

        picture2[(buf_flag% 128)]=camera_gray;

        if(buf_flag%128==127)

        {W25 QXX_Write(picture2,((ad_flag+1)*76800+((buf_flag/128)*128)),128);}

        3.5 背景差分實(shí)現(xiàn)

        將兩幅圖像對(duì)應(yīng)像素進(jìn)行差分,需要循環(huán)讀取像素。每個(gè)循環(huán),分別讀取2幅圖像中1024個(gè)對(duì)應(yīng)像素?cái)?shù)據(jù),對(duì)每個(gè)像素進(jìn)行差分。具體代碼如下:

        STMFlash_Read(Flash_SAVE_ADDR+(i*2048),picture1,1024);

        W25QXX_Read(picture2,i*1024,1024);//外部Flash讀背景

        for(j=0;j<1024;j++)//對(duì)每數(shù)組中每個(gè)像素進(jìn)行差分

        if(picture1[j]>picture2[j]);

        picture1[j]=picture1[j]-picture2[j];

        if(picture2[j]<30)picture1[j]=0;

        else picture1[j]=1;//若灰度差≥30,置1

        else

        picture1[j]=picture2[j]-picture1[j];

        if(picture2[j]<30)picture1[j]=0;

        else picture1[j]=1;

        圖7(a)為教室背景圖像,圖7(b)為灰度化后的教室實(shí)時(shí)圖像,圖7(c)為差分后的灰度圖像,圖7(d)為二值化圖像。最終差分后的圖像為一幅320×240二值圖像。

        圖7 圖像處理流程中間圖像

        3.6 人員位置計(jì)算

        程序?qū)崿F(xiàn)代碼如下:

        STMFlash_Read(Flash_SAVE_ADDR+(i*960),picture1,1920);

        //一次讀取6行,需要讀取1920個(gè)數(shù)據(jù)

        for(j=0;j<31;j++)

        {for(k=0;k<6;k++)

        {for(m=0;m<10;m++)

        {if(picture1[k*320+m+j*5]==1)coment1++;}

        //計(jì)算每個(gè)6×10方塊中像素為1的個(gè)數(shù)。

        if(coment1>55)flag1=1;

        //如≥55,則此區(qū)域有人,令flag1=1并跳出循環(huán)

        if(flag1==1)break;

        根據(jù)圖6,當(dāng)b_buff為0XFF時(shí),對(duì)教室中的人員進(jìn)行識(shí)別。依次執(zhí)行差分、去噪、人員識(shí)別。人員識(shí)別完成后判斷人員位置是否變化。判斷方法是設(shè)2個(gè)8 bit無(wú)符號(hào)整數(shù)updatebuf1和updatebuf2,updatebuf1存儲(chǔ)上一幀圖像的人員位置,updatebuf2存儲(chǔ)當(dāng)前幀的人員位置,如果兩個(gè)數(shù)相同則不需要更改燈光,否則需要根據(jù)新的識(shí)別結(jié)果更改燈光控制,并對(duì)背景進(jìn)行更新。

        實(shí)現(xiàn)代碼如下:

        cf();//灰度圖像背景差分,并進(jìn)行二值化

        remo_noise();//圖像去噪,二值化形態(tài)學(xué)操作

        recg_person();//檢驗(yàn)個(gè)區(qū)域是否有人

        updatebuf2=six2one(flag1_w,flag2_w,flag3_w,flag1_w,flag4_w,flag5_w);//計(jì)算對(duì)應(yīng)背景圖像存儲(chǔ)的首地址

        if(updatebuf2!=updatebuff1);//如相等,則不更新背景

        if(flag1_w==1)GPIO_SetBits(GPIOD,GPIO_Pin_11);//更改

        else GPIO_ResetBits(GPIOD,GPIO_Pin_11);

        ……

        if(flag6_w==1)GPIO_SetBits(GPIOE,GPIO_Pin_2);

        else GPIO_ResetBits(GPIOE,GPIO_Pin_2);

        updatebuff1=updatebuff2;

        for(j=0;j<75;j++);//更新背景,并存儲(chǔ)到w25q128

        25QXX_Read(picture4,(updatebuff2+1)*76 800+j*1 024,1 024);

        W25QXX_Write(picture4,j*1 024,1 024);

        }}

        3.7 輸出控制

        STM32F103的對(duì)應(yīng)接口輸出高電平“1”時(shí),與此接口相連的繼電器導(dǎo)通,反之繼電器斷開(kāi)。

        4 系統(tǒng)響應(yīng)速度分析

        采用串口調(diào)試軟件,獲取OV7725向STM32F103傳輸圖像的幀率,幀率越大說(shuō)明處理速度越快,幀率越小則說(shuō)明越慢。綜上,系統(tǒng)可以保證在10 s之內(nèi)處理完一幀圖像,基本滿足實(shí)際使用需要(見(jiàn)表4)。

        表4 系統(tǒng)響應(yīng)耗時(shí)

        5 結(jié) 語(yǔ)

        本系統(tǒng)已在本科畢業(yè)設(shè)計(jì)和大學(xué)生創(chuàng)新實(shí)踐活動(dòng)中得到多次應(yīng)用,學(xué)生參與的積極性很高,教學(xué)效果反映良好。本系統(tǒng)可作為全國(guó)大學(xué)生電子設(shè)計(jì)大賽的選手選拔和實(shí)訓(xùn)項(xiàng)目。將該系統(tǒng)與基于機(jī)器視覺(jué)的面碗旋轉(zhuǎn)對(duì)正系統(tǒng)、產(chǎn)品缺陷檢測(cè)系統(tǒng)和機(jī)器人導(dǎo)航系統(tǒng)打包,開(kāi)設(shè)基于機(jī)器視覺(jué)的實(shí)訓(xùn)項(xiàng)目群,更好的培養(yǎng)學(xué)生的創(chuàng)新實(shí)踐能力。

        猜你喜歡
        差分灰度背景
        采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
        “新四化”背景下汽車NVH的發(fā)展趨勢(shì)
        數(shù)列與差分
        基于灰度拉伸的圖像水位識(shí)別方法研究
        《論持久戰(zhàn)》的寫作背景
        基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
        晚清外語(yǔ)翻譯人才培養(yǎng)的背景
        基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
        基于差分隱私的大數(shù)據(jù)隱私保護(hù)
        相對(duì)差分單項(xiàng)測(cè)距△DOR
        太空探索(2014年1期)2014-07-10 13:41:50
        精品一区二区三区女同免费| 四虎国产精品永久在线国在线| 午夜福利一区二区三区在线观看| 国产麻豆精品一区| 免费一级毛片麻豆精品| 久久青青草原国产精品最新片| 免费人成视频网站在线| 在线观看免费视频发布白白色| 丝袜美腿福利视频在线| 麻豆国产一区二区三区四区| 一本大道无码人妻精品专区| 海角国精产品一区一区三区糖心 | 无码aⅴ精品一区二区三区浪潮| 欧美69久成人做爰视频| 天天做天天爱天天爽综合网| 黑人巨大videos极度另类| 亚洲精品成人av一区二区| 亚洲精品区二区三区蜜桃| 中文字幕日韩精品永久在线| 天堂一区二区三区在线观看视频| 亚洲中文字幕无码不卡电影| 青青草97国产精品免费观看| 久久久男人天堂| 九色精品国产亚洲av麻豆一| 日本老熟妇五十路一区二区三区| 亚洲一区二区二区视频| 狠狠色综合7777久夜色撩人ⅰ| 韩国19禁无遮挡啪啪无码网站| 精品免费人伦一区二区三区蜜桃| 国产一级做a爱视频在线| 亚洲一区二区三区四区精品| av在线观看一区二区三区| 人人妻一区二区三区| 丰满五十六十老熟女hd| 亚洲欧美日韩国产精品一区| 天堂av中文在线官网| 国产高潮流白浆视频在线观看| 免费网站内射红桃视频| 久久九九久精品国产| 亚洲精品美女久久久久久久| 国产精品成人久久一区二区|