資料介紹
描述
?
我們這個名為 Human-firewall 項(xiàng)目的項(xiàng)目的目的是引入一種智能對講機(jī),能夠在消息應(yīng)用程序上通過按門鈴的人的照片通知您,并實(shí)時提供對個人的評估。
通過這種方式,您會立即知道您是否可以信任相關(guān)人員,如果此人不值得信任,您將避免讓自己、您的積蓄和您的家面臨危險。
注意:我們的目標(biāo)不是創(chuàng)建一個完全成熟的對講機(jī),而是創(chuàng)建一個可以連接到現(xiàn)有對講機(jī)的原型。
從現(xiàn)有的對講機(jī)中,我將捕獲門鈴輸入,這將觸發(fā)相機(jī)拍攝對象的照片,使用這張照片和一些幕后魔術(shù)(劇透:這是機(jī)器學(xué)習(xí))我將把對象評估發(fā)送到房主。
使用 LAN 上的常識評估對象
此時,您可能會問:“您如何評價按對講機(jī)的人?”。
我們選擇了同行評審的方法,每個房主都能夠?qū)υ谒仪瞄T的人進(jìn)行分類,這樣就建立了一種常識。
這些知識將在同一網(wǎng)絡(luò)上存在的所有對講機(jī)之間共享,例如,即使您的鄰居來到您家門口,也能正確檢測到已被您的鄰居標(biāo)記的騙子。
公寓作為我們的目標(biāo)環(huán)境
我們的項(xiàng)目真正在公寓中大放異彩,那里有多個建筑物,每個建筑物都有自己的對講機(jī),并且有共享網(wǎng)絡(luò)(無線或有線無關(guān)緊要)。

這也可以用于較小的環(huán)境,但這會導(dǎo)致更差的檢測率和減少智能對講機(jī)的常識。
我們想象這也可以被店主用來保護(hù)他們的生意。
硬件與服務(wù)
對于我們的智能對講機(jī)演示,我們采用了 Raspberry Pi 3(使用 Raspbian 作為其操作系統(tǒng))作為我們的參考板,但只要可以建立與本地網(wǎng)絡(luò)的連接,較新的版本也不錯。
連同電路板,我們使用了 Pi Camera 模塊 V2,它提供了按鈴對象的高清圖像。
您還需要一切才能為電路板提供能量(誰會猜到?)和一個模擬用戶在門鈴上輸入的按鈕。
云服務(wù)?不,謝謝,人類防火墻項(xiàng)目不需要它們,一切都將通過專門使用 LAN 來工作,這樣我們就可以為將要使用(但永遠(yuǎn)不會存儲)的敏感數(shù)據(jù)提供最高級別的隱私。
建筑學(xué)

我們的項(xiàng)目由三部分組成:
- 從屬子系統(tǒng),用于捕獲門鈴輸入拍照并與它們一起識別人。
- 機(jī)器人子系統(tǒng),托管公寓的電報機(jī)器人。
- 主子系統(tǒng),這是我們共享知識架構(gòu)的焦點(diǎn)。
鑒于這三個子系統(tǒng),我們有兩種類型的板,主板和從板,但是,用戶看不出主板和從板之間有任何區(qū)別。
所有的板子都應(yīng)該在同一個 NATed WiFi/有線局域網(wǎng)中,不需要開放的互聯(lián)網(wǎng)端口,除了機(jī)器人子系統(tǒng)使用的 Telegram 服務(wù)器的端口。
主控系統(tǒng)_
主板托管一個主子系統(tǒng)的實(shí)例,該子系統(tǒng)由一個 Web 服務(wù)器、一個 MQTT 代理組成,包含公寓的 Telegram 機(jī)器人,并使用從屬子系統(tǒng)作為門鈴。
Web 服務(wù)器用于與從站通信,并提供幾個端點(diǎn):
- Identification endpoint: 使網(wǎng)絡(luò)中新的slaves可以發(fā)現(xiàn)它正在掃描局域網(wǎng)。
- Ring 端點(diǎn):用于管理事件,當(dāng)有人按響連接到網(wǎng)絡(luò)的門鈴時,master 會將照片和評估數(shù)據(jù)發(fā)送給 Telegram bot,允許它向用戶通知事件并識別誰按鈴。
- 時間戳端點(diǎn):當(dāng)被詢問時,它會給出數(shù)據(jù)庫中的最后一個時間戳,讓從屬了解它們是否是最新的。
- Recovery endpoints:允許slaves下載從給定時間戳到最后一個時間戳的反饋和識別數(shù)據(jù)。
這些端點(diǎn)由從系統(tǒng)使用,因此需要在任何從系統(tǒng)之前初始化主系統(tǒng)。
奴隸制度
從板僅包含從子系統(tǒng)的一個實(shí)例。
從屬子系統(tǒng)由一個 SQLite 數(shù)據(jù)庫組成,用于維護(hù)用戶的反饋和一個內(nèi)存中的特征向量數(shù)據(jù)庫,以及一個磁盤副本以支持重啟,這是我們表示人臉的方式。
反饋數(shù)據(jù)庫使用復(fù)合鍵,由以下組成:
- 特征向量,標(biāo)識響鈴的人,需要分類
- 聊天 ID,用于識別提供反饋的人
使用此模式,即使在多個門鈴和多個響鈴事件中,一個用戶也只能對響鈴的人進(jìn)行一次反饋,因此我們更新了用戶對特定人給出的舊的且可能不正確的反饋,而不是添加到數(shù)據(jù)庫更新的反饋。這樣做是為了保持我們的分類有意義和可更新。
啟動后,它將通過掃描網(wǎng)絡(luò)定位標(biāo)識端點(diǎn)來定位主控,然后,在找到主控后,它將啟動恢復(fù)程序,檢查其數(shù)據(jù)是否已更新并在必要時下載更新。
在找到主節(jié)點(diǎn)并更新數(shù)據(jù)庫后,它將訂閱 MQTT 代理以接收來自整個系統(tǒng)的新更新,并將等待本地環(huán)事件。
這個恢復(fù)過程在第一次初始化和災(zāi)難恢復(fù)的情況下都非常方便(例如,一個從屬已經(jīng)斷電,可能以一個與主或其他從屬相關(guān)的不同步的數(shù)據(jù)庫結(jié)束)。
當(dāng)本地響鈴事件被攔截時(即當(dāng)有人按從屬門鈴時),將捕獲一張照片,并通過使用Dlib和face_recognition庫定位人臉并將其編碼為特征向量。然后,slave 詢問它本地的反饋數(shù)據(jù)庫,看看是否有針對那個人的任何反饋;然后照片、電路板 ID 和反饋通過環(huán)端點(diǎn)發(fā)送到主板。

如果在任何時候收到來自 MQTT 代理的消息,其內(nèi)容將被添加到反饋和編碼數(shù)據(jù)庫中,從而增加董事會知識。
機(jī)器人子系統(tǒng)
機(jī)器人子系統(tǒng)僅托管在主板上,用于與用戶交互、通知他們響鈴事件以及收集和分發(fā)他們的反饋。
通知通過使用 Telegram API 發(fā)送到用戶的 Telegram 帳戶。
我們選擇使用 Telegram 是因?yàn)檫@樣做,我們可以輕松訪問每個平臺(iOS、Android、Windows、Mac、Linux),而無需實(shí)施我們自己的移動應(yīng)用程序和服務(wù)器基礎(chǔ)架構(gòu),同時用戶不會他心愛的設(shè)備上又裝了一個應(yīng)用程序。
Telegram 機(jī)器人使用聊天 ID 來識別用戶,并使用通過散列面板序列號獲得的面板 ID 來識別門鈴。
機(jī)器人由用戶在指定它將接收通知的門鈴 ID 時進(jìn)行配置,為了更加用戶友好的應(yīng)用程序,我們讓用戶為配置的每個門鈴指定一個名稱,這比 ID 更容易記住.
這些配置設(shè)置保存在用戶數(shù)據(jù)庫中,我們在其中存儲用戶聊天 ID 和配置的門鈴。
當(dāng)響鈴事件被通知到主板時,它會通知機(jī)器人子系統(tǒng),機(jī)器人子系統(tǒng)將向每個配置了門鈴的用戶發(fā)送通知,其中包含照片和人的分類,根據(jù)可用反饋計算出多數(shù)票與相應(yīng)的事件板 ID。
然后用戶可以在他們的手機(jī)上看到事件,如果系統(tǒng)找到了人的臉,那么用戶還可以看到人的分類,如果以前的反饋可用,并給出他們自己的分類。
當(dāng)給出分類時,bot 子系統(tǒng)會將消息發(fā)布到 MQTT 隊(duì)列中,所有從屬都訂閱了該隊(duì)列,其中包含聊天 ID、我們用來識別人員的特征向量和用戶給出的分類。
技術(shù)
人臉識別庫
dlib最先進(jìn)的人臉識別庫的接口,提供多種人臉定位算法和預(yù)訓(xùn)練的矢量化模型。
我們使用 HOG 模型 (O(#pixels)) 來定位人臉,而不是 dlib 的默認(rèn) CNN 模型,這是一種不太準(zhǔn)確的模型,但CPU 密集度也較低。
為了計算編碼,預(yù)訓(xùn)練模型基于 ResNet,一種深度 CNN
我們在歐幾里得產(chǎn)品中使用 0.6 的閾值來檢測兩個編碼是否指的是同一個人,規(guī)模有點(diǎn)高,但對于公寓來說是可以的。
蚊子和帕霍
我們選擇Eclipse Mosquitto作為我們的代理,它是 MQTT 代理的開源實(shí)現(xiàn)。
Mosquitto 重量輕,適合在 CPU 時鐘較低的設(shè)備上使用。
我們選擇不持久存儲消息,以免浪費(fèi)磁盤空間。
我們選擇的 MQTT 客戶端是Eclipse Paho項(xiàng)目,它為多種編程語言(包括 Python)提供 MQTT 和 MQTT-SN 消息傳遞協(xié)議的開源客戶端實(shí)現(xiàn)。
在 Raspberry Pi 3 上,dlib 的多進(jìn)程執(zhí)行會導(dǎo)致死鎖,因此我們不得不使用以下變通方法強(qiáng)制在單線程上執(zhí)行 dlib 庫,該變通方法已包含在我們的設(shè)置腳本中:
export OPENBLAS_NUM_THREADS=1
export OPENBLAS_MAIN_FREE=1
燒瓶
Flask是基于 Werkzeug 和 Jinja 2 的 Python 微框架。
我們使用它來托管主板 Web 服務(wù)器,因?yàn)樗且粋€可擴(kuò)展的框架,可以輕松地針對多種用途進(jìn)行定制。
對于項(xiàng)目的基本需求,我們只選擇了 Flask 核心模塊和一些使我們的 Web 服務(wù)器輕量級和快速的基本擴(kuò)展。
python電報機(jī)器人
為了在 bot 子系統(tǒng)中與 Telegram 的 API(通過 HTTP)交互,我們選擇了一個名為python-telegram-bot的社區(qū)制作的包裝器。
包裝器實(shí)現(xiàn)了從發(fā)送消息到對話處理的廣泛功能,同時防止出現(xiàn)同步問題。
它內(nèi)存占用小,CPU 使用率低,因?yàn)樗褂?webhook 來防止輪詢 Telegram 的服務(wù)器。
如何部署和測試
-
部署應(yīng)用程序:獲取master_scripts
中的代碼并執(zhí)行 install.py 以設(shè)置主板。它既可以在裝有 Ubuntu 的筆記本電腦上運(yùn)行,也可以在裝有 Raspbian 操作系統(tǒng)的 Raspberry 上運(yùn)行。該腳本會要求您提供電報 API 密鑰。如果要添加一個或多個slave,可以使用slave_scripts中的代碼來實(shí)現(xiàn)。在 Raspbian 上,服務(wù)也被添加到 systemd 并在啟動時啟動。 -
在電報上設(shè)置電路板:
啟動機(jī)器人并提供 /configure 命令,以命名和添加電路板 -
使用門鈴:
按下門鈴上的按鈕以接收通知并留下反饋,一旦給出反饋,系統(tǒng)將使用它進(jìn)行未來預(yù)測。(為了讓我們的代碼生效,門鈴必須連接到樹莓派上的 3 號引腳。)
?
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- 对讲机原理、使用及纵图集101次下载
- DMR828数字对讲机模块资料下载6次下载
- 威百通对讲机调频写频软件下载9次下载
- 对讲机写频软件51次下载
- 基于光子的对讲机4次下载
- 对讲机业务频率规划11次下载
- ICOM对讲机写频编程软件CSF33G下载12次下载
- ICOM对讲机写频编程软件CS-36FI下载3次下载
- 如何使用ARM内核实现民用数字对讲机系统的设计25次下载
- 关于DSP的数字对讲机语音处理方案的研究15次下载
- 基于MPPSK数字对讲机系统1次下载
- 蓝牙对讲手机APP蓝牙对讲对讲机PTT对讲方案61次下载
- 简易对讲机73次下载
- 数字对讲机与模拟对讲机的比较250次下载
- 基于ARM内核的民用数字对讲机系统的设计76次下载
- 艾为芯片在对讲机中的应用181次阅读
- 防爆的对讲机有哪些 防爆的对讲机怎么选1740次阅读
- 为什么蓝牙对讲机要加一根PTT线与普通对讲机连接15137次阅读
- 浅析模拟对讲机和数字对讲机的区别25914次阅读
- 防爆对讲机与普通对讲机如何区别?13534次阅读
- 对讲机和微信的区别在哪里?为什么微信,手机不能取代对讲机?10385次阅读
- 什么是全国对讲机_全国对讲机的原理_全国对讲机怎么用52635次阅读
- 新买的对讲机怎么用_怎么知道对讲机的频率_对讲机频率设置82068次阅读
- 公网对讲相关的几个时延指标定义以及常用对讲机与集群对讲机之分9191次阅读
- 对讲机是怎么分类的_对讲机分类大全_对讲机的工作原理介绍15680次阅读
- 关于对讲机基础知识的解答7453次阅读
- 对讲机按键功能图解191326次阅读
- 对讲机调频的4个步骤45430次阅读
- 深度剖析门禁对讲机6320次阅读
- 基于防爆对讲机的使用详细说明5103次阅读
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論