日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 視頻技術(shù)
[導(dǎo)讀]   就在前天,隔壁鄰居家的房子被租出去了。因?yàn)槲沂寝r(nóng)村的,房子都是獨(dú)立的帶院子的,沒錯(cuò)就是這樣的:      因?yàn)榧依锝?jīng)常沒人住,并且還放有其他貴重物品,生怕一不留神,這些租戶跳

  就在前天,隔壁鄰居家的房子被租出去了。因?yàn)槲沂寝r(nóng)村的,房子都是獨(dú)立的帶院子的,沒錯(cuò)就是這樣的:

  

  因?yàn)榧依锝?jīng)常沒人住,并且還放有其他貴重物品,生怕一不留神,這些租戶跳到我家。把這些東西洗劫一空。此時(shí)我已經(jīng)安耐不住內(nèi)心的小激動(dòng)!那么。搭建一個(gè)智能監(jiān)控系統(tǒng)可好!

  2:新聞報(bào)道

  2017年7月13日訊,家庭攝像頭遭入侵,公民隱私被侵犯的案子,已經(jīng)破了。今天傍晚,市公安局發(fā)布消息稱,19天內(nèi),北京警方成功打掉了全國(guó)首例網(wǎng)上傳播家庭攝像頭破解軟件的犯罪鏈條,抓獲涉案人員24名。

  這些人的腦袋都秀逗了吧,這都能干出來,嚇得我趕緊自己搭建了一個(gè)智能監(jiān)控系統(tǒng)。

  3:方案設(shè)計(jì)詳解

  

  先大概敘述一下MS的功能,

  1:硬件部分

  兩個(gè)USB高清攝像頭,

  一個(gè)超聲波傳感器(HC-SR04),

  一個(gè)樹莓派3 modelB,

  散熱扇(很重要!)

  對(duì)于超聲波傳感器,主要的功能就是檢查距離的變化,也就是說當(dāng)檢測(cè)是有運(yùn)動(dòng)物體的產(chǎn)生,才會(huì)激活攝像頭。

  1:也是為了減輕樹莓派CPU負(fù)荷

  2:合理利用那可憐的32G內(nèi)存卡,

  對(duì)于兩個(gè)攝像頭,一個(gè)放置在家門口的過道里,每當(dāng)來人的時(shí)候,超聲波傳感器變化檢測(cè)到運(yùn)動(dòng)物體,這時(shí)會(huì)激活攝像頭便會(huì)捕捉一系列圖片,讓系統(tǒng)進(jìn)行分析,包括面部,身體等信息,所以,這個(gè)攝像頭要求拍攝的質(zhì)量和角度要很好,另一個(gè)攝像頭這放置在院子的邊角,要求能照到整個(gè)院子,這個(gè)攝像頭主要任務(wù)就是檢測(cè)人體,并不強(qiáng)求識(shí)別出人臉,畢竟距離太遠(yuǎn)。

  

  對(duì)于樹莓派,做個(gè)監(jiān)控系統(tǒng)的話,不能一直把電腦放在上面吧,那樣太浪費(fèi)資源了,所以當(dāng)時(shí)狠心的買了個(gè)3B,不過還好用起來不錯(cuò),他的角色就是處理硬件傳回來的各種信息。。。

  2:代碼部分

  下面慢慢道來!

  0&TImes;02:環(huán)境搭建

  curl安裝: sudo apt-geTInstall curl

  MySQLdb安裝: sudo apt geTInstallpython-pip sudo apt-geTInstalllibmysqlclient-dev pipinstallmysql-python

  LAMP: sudo apt-getinstallapache2 sudo apt-getinstallphp7.0sudo apt-getinstalllibapache2-mod-php7.0sudo apt-getinstallmysql-serversudo apt-getinstallphpmyadmin sudo chmod777/var/www/html/ sudoln-s /usr/share/phpmyadmin /var/www/html/ sudo sed -i‘s/;extension=php_mbstring.dll/extension=php_mbstring.dll/’/etc/php/7.0/apache2/php.ini sudo /etc/init.d/apache2 restart mysql--user=root -pCREATEDATABASEIFNOTEXISTS`MS`DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;USE`MS`;CREATETABLE`None`(`None`int(11)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8;

  OpenCV: sudo apt-getinstallbuild-essential sudo apt-getinstallcmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-getinstallpython-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev gitclonehttps://github.com/0x024/opencv.git cd ~/opencv mkdirreleasecdreleasecmake -DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local.。 make -j1 sudo makeinstall

  0×03: 目錄樹

  

  0×04:代碼分析

  1:MS.py(monitor system的簡(jiǎn)稱)

  總體文件函數(shù)的分布!

  

  checkdist()

  

  首先來了解一下HC-SR04超聲波傳感器

  采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);

  模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;

  有信號(hào)返回,通過IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2

  引腳與樹莓派連接方式:

  VCC,超聲波模塊電源腳,接5V電源即可

  Trig,超聲波發(fā)送腳,高電平時(shí)發(fā)送出40KHZ出超聲波

  Echo,超聲波接收檢測(cè)腳,當(dāng)接收到返回的超聲波時(shí),輸出高電平

  GND,超聲波模塊GND

  這里附上樹莓派串口的原理圖!方便自定義連接

  

  這里我將VCC連接至 Pin#02,將Gnd連接至Pin#06,將Trig連接至Pin#03,將Echo連接至Pin#05

  因?yàn)橹霸O(shè)置成了GPIO.setmode(GPIO.BCM),所以在寫的時(shí)候都要寫成Name那一列,Pin#只是指示作用!

  這里我自定義了一個(gè)index。默認(rèn)的值就是傳感器在無運(yùn)動(dòng)物體下所穩(wěn)定的int值,這個(gè)需要根據(jù)傳感器擺放位置自行設(shè)定。

  初始化時(shí)將trig和echo端口都置低,首先向給 trig 發(fā)送至少10 us的高電平脈沖(模塊自動(dòng)向外發(fā)送8個(gè)40K的方波),然后等待,捕捉 echo 端輸出上升沿,捕捉到上升沿的同時(shí),打開定時(shí)器開始計(jì)時(shí),再次等待捕捉echo的下降沿,當(dāng)捕捉到下降沿,讀出計(jì)時(shí)器的時(shí)間,這就是超聲波在空氣中運(yùn)行的時(shí)間,按照 測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2 就可以算出超聲波到障礙物的距離。

  接著,當(dāng)distance發(fā)生明顯的變化時(shí)候,可以認(rèn)定,有運(yùn)動(dòng)物體的產(chǎn)生。這時(shí)候,就會(huì)調(diào)用下一下函數(shù)camrun()

  camrun()

  可能會(huì)覺得上圖函數(shù)有點(diǎn)多余,其實(shí)不然,圖示的這種是適合于小區(qū)的只有一個(gè)門口的家庭,想想也對(duì),

  當(dāng)使用兩個(gè)攝像頭的時(shí)候,就會(huì)用到如圖的函數(shù),這里用到了最簡(jiǎn)單的多線程thread,(PS:本人能力有限,暫時(shí)還沒法理解threading這個(gè)自定義的多線程方法,),可以在運(yùn)行cam()的時(shí)候,使得cam(0),和cam(1)的基本同時(shí)運(yùn)行

  cam(i)

  

  這個(gè)函數(shù)的主要功能就是圖像的運(yùn)動(dòng)檢測(cè),當(dāng)有運(yùn)動(dòng)物體時(shí),便會(huì)將圖片以“%Y%m%d%H%M%S’+’_’+str(0)”的格式記錄下來,有時(shí)候可能存在兩個(gè)攝像頭同時(shí)工作記錄,導(dǎo)致記錄下來的圖片日期一樣,為了避免這個(gè)Error產(chǎn)生,在日期的后面加上了攝像頭“i”的標(biāo)識(shí),用來進(jìn)行分辨!

  這里采用時(shí)間來控制camera.release(),當(dāng)運(yùn)行的時(shí)間==10s時(shí)候,便會(huì)退出cam(i),這個(gè)時(shí)間基本要和camrun()里的time.sleep()相同。

  這里也做了一個(gè)異常處理。避免了因?yàn)閿z像頭沒有插好,或這因?yàn)榍耙粋€(gè)運(yùn)行的cam()還沒有結(jié)束釋放導(dǎo)致的camera busy等而造成運(yùn)行中斷!

  checkcycle()

  這個(gè)函數(shù)就是寫了一個(gè)無限循環(huán),可以讓getfilename()無限運(yùn)行,對(duì)新增的圖像文件及時(shí)的進(jìn)行檢測(cè)

  testfacepp()

  

  這個(gè)函數(shù)主要用來檢測(cè)訪問face++的服務(wù)器是否受到了 CONCURRENCY_LIMIT_EXCEEDED —并發(fā)限制,也就是說,因?yàn)槲覀兪敲赓M(fèi)用戶,雖然可以使用他的全部API ,但是,當(dāng)他們的服務(wù)器達(dá)到高負(fù)荷時(shí)候,要首先供付費(fèi)用戶的平穩(wěn)使用,當(dāng)負(fù)荷不大時(shí)候,我們才可以暢快的使用。還好吧!

  getfilename()

  

  這個(gè)函數(shù)就是檢測(cè)新圖片的產(chǎn)生,首先,打開piclist.log文件,當(dāng)沒有受到并發(fā)限制的時(shí)候,然后再去運(yùn)用os,walk函數(shù)去遍歷”。/img/shutter/”目錄,這里要保證讀取時(shí)間的先后順序和寫入.log的先后順序同步,就不詳細(xì)說了。

  當(dāng)檢測(cè)到的為事先預(yù)定“9999999999999”文件時(shí)候,就是表明這是所有文件都以寫入piclist.log并已檢測(cè)完畢,

  當(dāng)所檢測(cè)的文件不在piclist.log的時(shí)候,便會(huì)調(diào)用checkbody(),來進(jìn)行身體的檢測(cè),

  checkbody()

  

  之所以先檢測(cè)身體,只有在有身體的情況下,才會(huì)有面部,可以減小服務(wù)器的負(fù)荷,

  首先,讀取照片,然后傳入BodyAPI,進(jìn)行Body的檢測(cè)。當(dāng)不存在身體時(shí)候,將文件寫入piclist.log。進(jìn)行下一個(gè)文件的檢測(cè)

  當(dāng)存在Body的時(shí)候,會(huì)將圖片中的每個(gè)Body都摳出來,然后分別放在”。/img/done/”里面,進(jìn)行下一步的面部識(shí)別,。

  這里又對(duì)checkface_online()進(jìn)行了一個(gè)并發(fā)限制的異常處理,因?yàn)閷?shí)在沒法確定下一秒是否會(huì)并發(fā)限制,為了防止程序異常終端,所以在每次調(diào)用faceAPI的時(shí)候都要異常處理一下,目前BodyAPI并不會(huì)發(fā)生并發(fā)限制

  detailface()

  這個(gè)就是在運(yùn)行faceAPI的時(shí)候。將返回來的face_token與數(shù)據(jù)路中的人臉進(jìn)行比對(duì),并返回該面部所對(duì)對(duì)應(yīng)的ID,namem,gender等信息

  checkface_online()

  

  面部識(shí)別這一塊有點(diǎn)長(zhǎng),不過也很簡(jiǎn)單!

  首先讀取”。/img/done/”下的文件,然后將其傳給FaceAPI()進(jìn)行面部分析,如果result_d[“faces”]==0,著表明只存在身體并未檢測(cè)到人臉,判定為stranger!寫入Piclist.log,進(jìn)行下一張圖像的檢測(cè),當(dāng)result_d[“faces”]》0 時(shí),才可以將面部返回的face_tokrn與之前導(dǎo)入的face_token進(jìn)行比對(duì),同理,當(dāng)返回的len(result_s)==3及表明數(shù)據(jù)庫(kù)中并沒有該人臉,判定為 stranger!,寫入Piclist.log。當(dāng)len(result_s)》3時(shí)候,同時(shí) confidence 》= 80.00才可以判定這個(gè)人是誰,否者都別判定為陌生人!

  if __name__ == ‘__main__’:

  

  這里就是要運(yùn)行的方式

  python MS.py check

  這是就會(huì)開啟圖片檢測(cè)的功能。

  python MS.py camera

  這是就會(huì)開圖像截取的功能

  2:BodyAPI,F(xiàn)aceAPI,import.py

  PS:這些就詳細(xì)說了,因?yàn)橹鞍l(fā)表過一篇文章,大家可以去參考

  0×05:運(yùn)行

  代碼forkgithub.com/0x024/MS官方博客0x024.com

  運(yùn)行前, 需要將。/facepp/FaceAPI.py和BodyAPI.py中的api_key和api_secret換成你的 (為了便于您測(cè)試,我以將我的key放在里面,為了防止多人使用沖突,希望您后期換成個(gè)人的) 需要將。/facepp/Dbconnect.py中的數(shù)據(jù)庫(kù)信息換成自己的 (在搭建環(huán)境過程中,建議密碼全部設(shè)置成ubuntu,方便記憶)

  pythonimport.py#將。/data/master/目錄下的圖片特導(dǎo)入數(shù)據(jù)庫(kù)

  pythonMS.py camera#運(yùn)行圖像捕捉

  pythonMS.py check#運(yùn)行圖像檢測(cè)

  0×06:其他

  1:對(duì)于想用電腦進(jìn)行代碼測(cè)試的,我也將代碼整理好放MS-PC文件里面。大概運(yùn)行方式和在樹莓派上的差不多,只是少了超聲波傳感器這一環(huán)節(jié)!可自行調(diào)試。

  2:對(duì)于環(huán)境搭建的問題,可以參考我先前的文章,實(shí)在不會(huì)的可在我的博客里面留言,我會(huì)及時(shí)的回復(fù),

  3:對(duì)于想二次開發(fā)的。比如加上web服務(wù)器可以遠(yuǎn)程查看,加上通訊模塊及時(shí)進(jìn)行數(shù)據(jù)反饋等等,最重要的就是有大腦風(fēng)暴!

  3:Good Luck

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉