日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

看我如何基于PythonFacepp打造智能监控系统

發布時間:2023/12/10 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 看我如何基于PythonFacepp打造智能监控系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于種種原因,最近想親自做一個基于python&facepp打造的智能監控系統。

0×00:萌芽

1:暑假在家很無聊

想出去玩,找不到人。玩個lol(已卸載),老是坑人。實在是無聊至極,不過,就在前天,隔壁鄰居家的房子被租出去了。因為我是農村的,房子都是獨立的帶院子的,沒錯就是這樣的:

因為家里經常沒人住,并且還放有其他貴重物品,生怕一不留神,這些租戶跳到我家。把這些東西洗劫一空。此時我已經安耐不住內心的小激動!那么。搭建一個智能監控系統可好!

2:新聞報道

2017年7月13日訊,家庭攝像頭遭入侵,公民隱私被侵犯的案子,已經破了。今天傍晚,市公安局發布消息稱,19天內,北京警方成功打掉了全國首例網上傳播家庭攝像頭破解軟件的犯罪鏈條,抓獲涉案人員24名。————–2017-07-13 18:56 編輯:TF003 來源:北京晚報

這些人的腦袋都秀逗了吧,這都能干出來,嚇得我趕緊自己搭建了一個智能監控系統。

3:外快

掙點外快!?

0×01:Xmind思維

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

1:硬件部分

  • 兩個USB高清攝像頭,
  • 一個超聲波傳感器(HC-SR04),
  • 一個樹莓派3 modelB,
  • 散熱扇(很重要!)
  • 對于超聲波傳感器,主要的功能就是檢查距離的變化,也就是說當檢測是有運動物體的產生,才會激活攝像頭。

    1:也是為了減輕樹莓派CPU負荷

    2:合理利用那可憐的32G內存卡,

    對于兩個攝像頭,一個放置在家門口的過道里,每當來人的時候,超聲波傳感器變化檢測到運動物體,這時會激活攝像頭便會捕捉一系列圖片,讓系統進行分析,包括面部,身體等信息,所以,這個攝像頭要求拍攝的質量和角度要很好,另一個攝像頭這放置在院子的邊角,要求能照到整個院子,這個攝像頭主要任務就是檢測人體,并不強求識別出人臉,畢竟距離太遠。

    對于樹莓派,做個監控系統的話,不能一直把電腦放在上面吧,那樣太浪費資源了,所以當時狠心的買了個3B,不過還好用起來不錯,他的角色就是處理硬件傳回來的各種信息。。。

    2:代碼部分

    下面慢慢道來!

    0×02:環境搭建

    ?

    ?

    curl安裝: sudo apt-get install curl MySQLdb安裝: sudo apt get install python-pip sudo apt-get install libmysqlclient-dev pip install mysql-python LAMP: sudo apt-get install apache2 sudo apt-get install php7.0 sudo apt-get install libapache2-mod-php7.0 sudo apt-get install mysql-server sudo apt-get install phpmyadmin sudo chmod 777 /var/www/html/ sudo ln -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 -p CREATE DATABASE IF NOT EXISTS `MS` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `MS`; CREATE TABLE `None` (`None` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; OpenCV: sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev git clone https://github.com/0x024/opencv.git cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j1 sudo make install

    0×03: 目錄樹

    0×04:代碼分析

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

    總體文件函數的分布!

    checkdist()

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

  • 采用IO口TRIG觸發測距,給至少10us的高電平信號;
  • 模塊自動發送8個40khz的方波,自動檢測是否有信號返回;
  • 有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2
  • 引腳與樹莓派連接方式:

  • VCC,超聲波模塊電源腳,接5V電源即可
  • Trig,超聲波發送腳,高電平時發送出40KHZ出超聲波
  • Echo,超聲波接收檢測腳,當接收到返回的超聲波時,輸出高電平
  • GND,超聲波模塊GND
  • ?

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

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

    因為之前設置成了GPIO.setmode(GPIO.BCM),所以在寫的時候都要寫成Name那一列,Pin#只是指示作用!

    這里我自定義了一個index。默認的值就是傳感器在無運動物體下所穩定的int值,這個需要根據傳感器擺放位置自行設定。

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

    接著,當distance發生明顯的變化時候,可以認定,有運動物體的產生。這時候,就會調用下一下函數camrun()

    camrun()

    可能會覺得上圖函數有點多余,其實不然,圖示的這種是適合于小區的只有一個門口的家庭,想想也對,

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

    cam(i)

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

    這里采用時間來控制camera.release(),當運行的時間==10s時候,便會退出cam(i),這個時間基本要和camrun()里的time.sleep()相同。

    這里也做了一個異常處理。避免了因為攝像頭沒有插好,或這因為前一個運行的cam()還沒有結束釋放導致的camera busy等而造成運行中斷!

    checkcycle()

    這個函數就是寫了一個無限循環,可以讓getfilename()無限運行,對新增的圖像文件及時的進行檢測

    testfacepp()

    這個函數主要用來檢測訪問face++的服務器是否受到了 CONCURRENCY_LIMIT_EXCEEDED —并發限制,也就是說,因為我們是免費用戶,雖然可以使用他的全部API ,但是,當他們的服務器達到高負荷時候,要首先供付費用戶的平穩使用,當負荷不大時候,我們才可以暢快的使用。還好吧!

    getfilename()

    這個函數就是檢測新圖片的產生,首先,打開piclist.log文件,當沒有受到并發限制的時候,然后再去運用os,walk函數去遍歷”./img/shutter/”目錄,這里要保證讀取時間的先后順序和寫入.log的先后順序同步,就不詳細說了。

    當檢測到的為事先預定“9999999999999”文件時候,就是表明這是所有文件都以寫入piclist.log并已檢測完畢,

    當所檢測的文件不在piclist.log的時候,便會調用checkbody(),來進行身體的檢測,

    checkbody()

    之所以先檢測身體,只有在有身體的情況下,才會有面部,可以減小服務器的負荷,

    首先,讀取照片,然后傳入BodyAPI,進行Body的檢測。當不存在身體時候,將文件寫入piclist.log。進行下一個文件的檢測

    當存在Body的時候,會將圖片中的每個Body都摳出來,然后分別放在”./img/done/”里面,進行下一步的面部識別,。

    這里又對checkface_online()進行了一個并發限制的異常處理,因為實在沒法確定下一秒是否會并發限制,為了防止程序異常終端,所以在每次調用faceAPI的時候都要異常處理一下,目前BodyAPI并不會發生并發限制

    detailface()

    這個就是在運行faceAPI的時候。將返回來的face_token與數據路中的人臉進行比對,并返回該面部所對對應的ID,namem,gender等信息

    checkface_online()

    面部識別這一塊有點長,不過也很簡單!

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

    if __name__ == ‘__main__’:

    這里就是要運行的方式

    python MS.py check

    這是就會開啟圖片檢測的功能。

    python MS.py camera

    這是就會開圖像截取的功能?

    2:BodyAPI,FaceAPI,import.py

    PS:這些就詳細說了,因為之前發表過一篇文章,大家可以去參考

    0×05:運行

    代碼fork github.com/0x024/MS 官方博客 0x024.com 運行前,需要將./facepp/FaceAPI.py和BodyAPI.py中的api_key和api_secret換成你的(為了便于您測試,我以將我的key放在里面,為了防止多人使用沖突,希望您后期換成個人的)需要將./facepp/Dbconnect.py中的數據庫信息換成自己的(在搭建環境過程中,建議密碼全部設置成ubuntu,方便記憶) python import.py? ?#將./data/master/目錄下的圖片特導入數據庫 python MS.py camera ? #運行圖像捕捉 python MS.py check ? #運行圖像檢測

    0×06:其他

    1:對于想用電腦進行代碼測試的,我也將代碼整理好放MS-PC文件里面。大概運行方式和在樹莓派上的差不多,只是少了超聲波傳感器這一環節!可自行調試。

    2:對于環境搭建的問題,可以參考我先前的文章,實在不會的可在我的博客里面留言,我會及時的回復,

    3:對于想二次開發的。比如加上web服務器可以遠程查看,加上通訊模塊及時進行數據反饋等等,最重要的就是有大腦風暴!

    3:Good Luck

    0×07:總結

    穿著內衣坐在電腦前,直到凌晨,一如既往;

    情愿坐在電腦前吃方便面,也不愿出去約會;

    能夠修好任何東西;

    打字比你思考還快;

    比和人們在一起花更多的時間上網;

    不能理解為什么有些人不能從頭到尾裝起一臺完整的電腦來;

    不相信有圖形的WEB瀏覽——lynx始終是最好的選擇,也是唯一的需要;

    使用文本編輯器——而不是文字處理軟件——來回所有的信件;

    從不,決不,絕對不穿西裝;

    相信只有Sucker才付費——免費網絡連接,自由軟件,用IP打電話

    總結

    以上是生活随笔為你收集整理的看我如何基于PythonFacepp打造智能监控系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲a级在线观看 | 三上悠亚影音先锋 | 欧美最猛黑人xxxx黑人猛交 | 日本视频网 | av看片资源 | 午夜久久乐 | 亚洲福利专区 | 人人妻人人做人人爽 | 欧美日韩美女 | 亚洲国产亚洲 | 在线亚洲人成电影网站色www | 少女视频的播放方法 | 亚洲精品一区二区三区四区五区 | 少妇99| 艳母日本动漫在线观看 | 欧美一级网| 亚洲com | 一区在线观看视频 | 国产一区二区三区精品在线 | 自拍偷拍视频网 | 少妇高潮一区二区三区99小说 | 中文日韩欧美 | 国产黄网在线观看 | 久久爱网| 狠狠操免费视频 | 强公把我次次高潮hd | 欧美日韩一区电影 | 国产香蕉一区二区三区 | 丁香综合网 | 人妻少妇一区二区 | www.com操| av之家在线| 日韩激情综合 | 伊人网中文字幕 | 福利视频一区二区三区 | 国产乱淫av片 | 欧美a∨亚洲欧美亚洲 | 久久午夜剧场 | 青青草精品在线视频 | 丝袜视频在线观看 | 国产精品蜜臀 | 久国久产久精永久网页 | 日本黄色高清 | 超碰免费视| 韩国av一区二区三区 | 国产精品自拍第一页 | 欧美 日韩 国产 激情 | 日韩免费观看视频 | 国产国产乱老熟女视频网站97 | 亚洲av综合一区二区 | 香蕉久久夜色精品国产使用方法 | 色.com| 亚洲av无码一区二区三区dv | 男男做爰猛烈叫床爽爽小说 | 丝袜ol美脚秘书在线播放 | 日本精品一区视频 | 午夜一级片 | 国产精品夜夜爽 | 亚洲欧美在线看 | 岛国av免费在线观看 | 日本精品视频网站 | 亚洲精品一区二三区 | 欧洲自拍偷拍 | 黄色片在线| 天堂网2018| 波多野结衣一区二区三区高清 | 欧美日韩二区三区 | 成人一区二区三区四区 | 久久久久久久久久久久久久久久久久久 | 中国女人性猛交 | 中文字幕激情 | 免费在线黄色av | 美女的隐私免费看 | 国产初高中真实精品视频 | 美女调教视频 | 日本网站免费 | 91色在线 | www.成人精品 | 激情五月婷婷久久 | 长河落日电视连续剧免费观看 | 麻豆免费观看视频 | 国产又爽又猛又粗的视频a片 | 王者后宫yin肉h文催眠 | 色多多视频网站 | 亚洲无吗一区二区三区 | 在线观看69| 农村偷人一级超爽毛片 | 亚洲午夜一区二区 | 永久免费黄色片 | 少妇精品久久久一区二区三区 | 久久亚洲美女 | 日韩一区二区三区四区五区六区 | 91丝袜在线 | 人人插人人澡 | 激情文学欧美 | 国产尤物av | 欧美成人精品欧美一级乱 | 亚洲美女网站 | 黄色仓库av |