資料介紹
描述
介紹:
由于非法狩獵和運(yùn)動(dòng)狩獵,有幾種瀕臨滅絕的鳥(niǎo)類(lèi)可以通過(guò)技術(shù)解決方案得到拯救。
根據(jù)《自然》雜志的當(dāng)前討論 [1],如果采取行動(dòng)避免這種物種滅絕,可以減輕多少物種滅絕,鳥(niǎo)類(lèi)生活 [2] 加強(qiáng)了這種滅絕,它大約可以減輕 40%。
我發(fā)現(xiàn)的類(lèi)似解決方案是基于提高對(duì)問(wèn)題的認(rèn)識(shí)。忽略這些解決方案,我可以找到:
- 使用帶 GPS 的項(xiàng)鏈。缺點(diǎn):佩戴在動(dòng)物身上的項(xiàng)圈和傳感器會(huì)對(duì)動(dòng)物造成傷害或不適。在電池的情況下,它們可能會(huì)爆炸。https://www.gps-collars.com/
- 無(wú)人機(jī)智能傳感。缺點(diǎn):它們會(huì)對(duì)動(dòng)物產(chǎn)生意想不到的碰撞或倒塌并傷害它們。
- 識(shí)別鳥(niǎo)鳴。缺點(diǎn):系統(tǒng)復(fù)雜繁瑣,很難在一個(gè)地方長(zhǎng)期維護(hù)。
在后者的情況下,除了加強(qiáng)我們的理論外,它還讓我們有機(jī)會(huì)制作一個(gè)易于復(fù)制、節(jié)能且功能強(qiáng)大的系統(tǒng)。
解決方案:
使用 QuickFeather 開(kāi)發(fā)套件中包含的英飛凌 IM69D130 PDM 數(shù)字麥克風(fēng),我們將獲得音頻信號(hào),使用 SensiML,我們可以通過(guò)神經(jīng)網(wǎng)絡(luò),指示我們聽(tīng)到的鳥(niǎo)的類(lèi)型。
顯示在一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序中檢測(cè)到的鳥(niǎo)類(lèi)的信息。
連接圖:
我們將項(xiàng)目基于以下架構(gòu):
我們將使用 QuickFeather 套件并通過(guò) Simple Stream Gateway 將其連接到設(shè)備和 AWS,該信息將顯示在 Web 應(yīng)用程序中。
硬件:
把它想象成我們使用 QuickFeather 作為 ESP32 的 AI Shield。
開(kāi)發(fā)環(huán)境設(shè)置:
由于我使用我的計(jì)算機(jī)對(duì)許多不同的組件進(jìn)行編程,我真的很喜歡能夠隔離我用來(lái)編程的環(huán)境。在這種情況下,為了進(jìn)行應(yīng)用程序的開(kāi)發(fā)并能夠正確使用 QORC SDK,我將所有東西都安裝在一個(gè) Docker 容器中,該容器可以簡(jiǎn)單地打開(kāi)和關(guān)閉以編譯程序。除了在不同的機(jī)器上很容易重現(xiàn)。
我已將容器上傳到 Docker Hub,因此您也可以根據(jù)需要使用它。
下面是容器編譯qf_ssi_ai_app示例程序的示例
QuickFeather Burner v1(閃光器):
除了在 docker 上將所有內(nèi)容編譯到開(kāi)發(fā)環(huán)境中,我決定創(chuàng)建一個(gè) GUI 來(lái)輕松編程 QuickFeather,而無(wú)需命令行。
該程序與 Windows 10 兼容,您可以在 QuickFeather Burner v1 文件夾中找到可執(zhí)行文件。
否則,您可以在存儲(chǔ)庫(kù)中看到此代碼。
先決條件,在 pc 上安裝 python3 并在 PATH 中可用。
- Install Dep :第一次打開(kāi)時(shí),按下按鈕安裝程序的依賴(lài)項(xiàng)。
- 刷新端口:刷新連接到電腦的串行端口。
- 瀏覽 Bin 文件:搜索 bin 中的文件。
- 程序:在所選設(shè)備上對(duì) bin 進(jìn)行編程,一旦您完成閃爍設(shè)備,您應(yīng)該會(huì)看到“成功”響應(yīng)。
遵循這個(gè)過(guò)程:
該程序的功能純粹是從命令行加速設(shè)備的閃存過(guò)程。
捕獲數(shù)據(jù):
為了獲得可靠的我國(guó)鳥(niǎo)鳴數(shù)據(jù),并能夠?qū)υO(shè)備進(jìn)行正確的測(cè)試,決定使用這個(gè)“數(shù)據(jù)庫(kù)”的歌曲作為模型訓(xùn)練的輸入。
數(shù)據(jù):(網(wǎng)頁(yè)是西班牙語(yǔ),所以我留下谷歌翻譯的版本)
對(duì)于這個(gè)測(cè)試,我決定使用以下 6 只隨機(jī)鳥(niǎo)類(lèi)的數(shù)據(jù)。
- 鈹蜂鳥(niǎo)
- 墨西哥木匠
- 墨西哥芬克
- 紅眼龍
- 裁縫
- 扎納特市長(zhǎng)
鳥(niǎo)類(lèi):
如果您想更深入地了解該項(xiàng)目,它位于 Data Capture Lab Project 文件夾中。
Near-Extinct-Bird-Detector/Data Capture Lab Project at master · altaga/Near-Extinct-Bird-Detector (github.com)
設(shè)置 QuickFeather:
為了設(shè)置設(shè)備并能夠使用 QuickFeather 對(duì)我的音頻進(jìn)行采樣,我遵循了 SensiML 官方教程。
- 使用 QuickFeather 和 SensiML 處理音頻數(shù)據(jù)
- 在這種情況下,由于設(shè)備將通過(guò) WiFi 工作,我決定使用 SensiML 提供的 ESP32 接口通過(guò) WiFi 發(fā)送所有數(shù)據(jù)。更多細(xì)節(jié)在:ESP32 接口
https://github.com/sensiml/esp32_simple_http_uart
特別是如果您想查看項(xiàng)目并自己編譯它,它將位于該文件夾中。數(shù)據(jù)采集??實(shí)驗(yàn)室
如果您只想開(kāi)始從您的設(shè)備進(jìn)行測(cè)量,編譯的 bin 將位于文件夾中。數(shù)據(jù)采集??實(shí)驗(yàn)室箱
捕獲數(shù)據(jù)示例:
捕獲數(shù)據(jù):
要對(duì)數(shù)據(jù)進(jìn)行采樣,請(qǐng)獲取鳥(niǎo)網(wǎng)頁(yè)提供的音頻(GitHub 中的音頻)并使用 QuickFeather 捕獲它們。
標(biāo)簽數(shù)據(jù):
對(duì)于數(shù)據(jù)標(biāo)注,在每幀捕獲的數(shù)據(jù)中,選擇鳥(niǎo)鳴中最顯著的片段,同時(shí)選擇它們沒(méi)有唱歌的片段為 Normal 類(lèi)別(沒(méi)有鳥(niǎo)鳴,來(lái)自背景自然的純?cè)肼暎谶@種情況下“沉默”)
這是墨西哥木匠的歌曲的一個(gè)例子:
SensiML:
在這種情況下,在訓(xùn)練模型時(shí),請(qǐng)使用以下設(shè)置,因?yàn)樗鼈兪墙o我最好結(jié)果的設(shè)置。
生成的模型產(chǎn)生的混淆矩陣為:
6只鳥(niǎo)的識(shí)別結(jié)果是:
由于單片機(jī)的限制,需要保證單片機(jī)能檢測(cè)到的鳥(niǎo)類(lèi)很少。
測(cè)試模型:
使用ESP32 Interface y Simple-Streaming-Gateway用一些鳥(niǎo)類(lèi)測(cè)試模型。
盡管該模型似乎毫無(wú)意義地檢測(cè)了多只鳥(niǎo),但實(shí)際上它主要檢測(cè)的是我們想要的鳥(niǎo)。然而,為了證明這一點(diǎn),我們必須對(duì)幾次檢測(cè)進(jìn)行平均,以顯示它是如何正確檢測(cè)到鳥(niǎo)的。
ESP32 接口:
SensiML 視頻系列中解釋了這個(gè) ESP32 接口。
這個(gè) ESP32 項(xiàng)目的所有代碼都在 esp32_simple_http_uart 文件夾中,要編譯它并在 ESP32 上燒寫(xiě)它,你必須使用 ESP-IDF vscode 插件。
該項(xiàng)目需要的唯一設(shè)置如下。
在 esp32_simple_http_uart/sdkconfig 的第 135 行輸入您的 wifi 憑據(jù)并編譯代碼。
CONFIG_EXAMPLE_CONNECT_WIFI=y
# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set
CONFIG_EXAMPLE_WIFI_SSID="YOURSSID"
CONFIG_EXAMPLE_WIFI_PASSWORD="YOURPASS"
CONFIG_EXAMPLE_CONNECT_IPV6=y
# end of Example Connection Configuration
完成此操作后,您可以毫無(wú)問(wèn)題地將其連接到 Simple-Streaming-Gateway。
簡(jiǎn)單流式網(wǎng)關(guān):
為了查看我們的 QuickFeather 正在閱讀的內(nèi)容,請(qǐng)安裝 SensiML 提供的 SSG 示例。
為了讓系統(tǒng)保持安裝狀態(tài)并且不必在計(jì)算機(jī)上運(yùn)行 SSG,我決定將其完全安裝在 Raspberry Pi Zero W 上
在這里您可以看到平臺(tái):
SSG 到 AWS 物聯(lián)網(wǎng):
在這種情況下,為了將我們的設(shè)備與 AWS IoT 通信,我決定稍微修改 SSG 代碼以實(shí)現(xiàn)與 AWS IoT 的 MQTT 連接,我們將利用 SSG 使用 Python 后端工作的事實(shí).
SSG 中要修改的文件是 Simple-Streaming-Gateway/sources/base.py
添加了 AWS IoT 的 MQTT 代理。
*添加您的 AWS IoT 終端節(jié)點(diǎn)和您將向其發(fā)送數(shù)據(jù)的主題。
EndPoint = "XXXXXXXXXXXXXXX.iot.us-east-1.amazonaws.com"
sub_topic = 'birds-detected'
由于 AWS 的安全性,有必要?jiǎng)?chuàng)建客戶端證書(shū)和私有證書(shū),以便將設(shè)備與平臺(tái)通信。
- 首先,我們必須訪問(wèn)我們的 AWS 控制臺(tái)并查找 IoT 核心服務(wù):
- 獲取您的 AWS 終端節(jié)點(diǎn),保存它。
- 在側(cè)面板中選擇“Onboard”選項(xiàng),然后選擇“Get started”。
- 選擇“開(kāi)始”。
- 在“選擇平臺(tái)”中選擇“Linux/OSX”,在 AWS IoT DEvice SDK 中選擇“Python”,然后單擊“下一步”。
- 在名稱(chēng)處,輸入任何名稱(chēng),然后單擊“下一步”。
- 點(diǎn)擊“完成”。
- 點(diǎn)擊“完成”。
- 在橫向欄上,在管理/事物部分內(nèi),我們可以看到我們已經(jīng)創(chuàng)建的事物。現(xiàn)在我們必須設(shè)置那個(gè)東西的策略,讓它在 AWS 中不受限制地工作。
- 在側(cè)欄,在 Secure/Policies 部分我們可以看到我們的事物策略,點(diǎn)擊它來(lái)修改它:
- 點(diǎn)擊“編輯政策文件”。
將以下文本復(fù)制粘貼到文檔中并保存。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}
這樣,設(shè)備會(huì)將數(shù)據(jù)發(fā)送到 AWS IoT。
網(wǎng)頁(yè)部署:
網(wǎng)頁(yè)的部署是使用 ReactJS 和 AWS-SDK for javascript 完成的。
看一看!:
AWS 認(rèn)知:
為了安全起見(jiàn),為了安全地使用和使用 AWS 服務(wù),身份池憑證是通過(guò) Cognito 服務(wù)實(shí)施的。
AWS IoT 和 Cognito 的訪問(wèn)密鑰必須放在以下文件中。
Webapp/src/components/aws-configuration.js
var awsConfiguration = {
poolId: "us-east-1:XXXXXXXXXXXXXXX", // 'YourCognitoIdentityPoolId'
host:"XXXXXXXXXXXXXX-ats.iot.us-east-1.amazonaws.com", // 'YourAwsIoTEndpoint', e.g. 'prefix.iot.us-east-1.amazonaws.com'
region: "us-east-1" // 'YourAwsRegion', e.g. 'us-east-1'
};
module.exports = awsConfiguration;
AWS IoT Web 套接字:
網(wǎng)頁(yè)通過(guò) AWS IoT 作為 Web 套接字接收傳感器數(shù)據(jù),因此在頁(yè)面內(nèi)定義很重要,這是我們將要接收的主題,在本例中為“鳥(niǎo)類(lèi)檢測(cè)”。
在以下文件中,輸入您將訂閱的主題的名稱(chēng)。WebApp/src/App.js
<IotReciever sub_topics={["birds-detected"]} callback={this.callBackIoT} />
數(shù)據(jù)后處理:
為了對(duì)傳感器檢測(cè)到的數(shù)據(jù)進(jìn)行后處理,平均采集了 7 個(gè)樣本。系統(tǒng)每次檢測(cè)到積累了7個(gè)音頻樣本,就獲取數(shù)據(jù)的統(tǒng)計(jì)模式,觀察哪只鳥(niǎo)被檢測(cè)到最多。顯示此事件的信息。
const temp = JSON.parse(IoTData[1])
in_array.push(parseInt(temp.Classification))
console.log(in_array)
if (in_array.length > 6) {
let temps = this.state.birds
if (flag && temps.find(element => element === (statisticalMode(in_array) - 1)) === undefined && (statisticalMode(in_array) - 1) !== 3) {
flag = false
temps.pop()
temps.push(statisticalMode(in_array) - 1)
this.setState({
birds: temps
})
}
else if (temps.find(element => element === (statisticalMode(in_array) - 1)) === undefined && (statisticalMode(in_array) - 1) !== 3) {
temps.push(statisticalMode(in_array) - 1)
this.setState({
birds: temps
})
}
in_array = []
網(wǎng)頁(yè)演示:
在這里,我們可以看到平臺(tái)如何正確檢測(cè)到其中一只鳥(niǎo):
完成品:
我在當(dāng)?shù)氐纳种胁渴鹆诉@個(gè)項(xiàng)目,幸運(yùn)的是那里有免費(fèi)的 WiFi 連接。因此,可以將設(shè)備放置在這個(gè)地方進(jìn)行試點(diǎn)測(cè)試。
最終演示:
結(jié)論:
當(dāng)然,這只是為了嘗試和保存所需的東西而做的一小部分努力,但第一步總是試圖找到這些物種。物聯(lián)網(wǎng)與人工智能一起為我們帶來(lái)了自動(dòng)化這一過(guò)程的可能性,并在其中變得更加確定。本質(zhì)上,可以為更多種類(lèi)的物種擴(kuò)展和復(fù)制相同的過(guò)程,我還看到使用計(jì)算機(jī)視覺(jué)做同樣事情的版本,在這種情況下的問(wèn)題是為其提供動(dòng)力。目前的目的是將 QuickFeather 和 SensiML 的音頻功能推向極限,并為此找到一個(gè)有價(jià)值的應(yīng)用程序。
- 圣誕節(jié)運(yùn)動(dòng)探測(cè)器開(kāi)源項(xiàng)目
- 圣誕老人探測(cè)器開(kāi)源分享
- 煙霧和氣體探測(cè)器開(kāi)源項(xiàng)目
- 基于Microsoft Azure和Raspberry Pi的鳥(niǎo)類(lèi)探測(cè)器
- DULI通用圖像損傷探測(cè)器開(kāi)源分享
- 帶警報(bào)系統(tǒng)的室溫探測(cè)器開(kāi)源分享
- Lane Tech HS PCL RAGE探測(cè)器開(kāi)源分享
- 野生動(dòng)物探測(cè)器開(kāi)源分享
- 激光雷達(dá)入侵探測(cè)器開(kāi)源分享
- 脈沖微處理器金屬探測(cè)器開(kāi)源設(shè)計(jì)
- 金屬探測(cè)器Quasar ARM G1910開(kāi)源分享
- BT智能手機(jī)探測(cè)器開(kāi)源項(xiàng)目
- 智能金屬探測(cè)器MOLE開(kāi)源項(xiàng)目
- 蓋革探測(cè)器開(kāi)源項(xiàng)目
- 熱探測(cè)器和光電發(fā)射探測(cè)器等光輻射探測(cè)技術(shù)的解析 11次下載
- 金屬探測(cè)器電路圖 帶Arduino的金屬探測(cè)器設(shè)計(jì) 876次閱讀
- 探索紅外熱成像探測(cè)器的基礎(chǔ)原理 549次閱讀
- 金屬探測(cè)器電路圖分享 5405次閱讀
- 基于零維材料的光電探測(cè)器原子結(jié)構(gòu) 982次閱讀
- 氣體探測(cè)器怎么接線 3.1w次閱讀
- 被動(dòng)紅外探測(cè)器的工作原理 1.5w次閱讀
- 紅外線探測(cè)器距離_紅外線探測(cè)器安裝 1.3w次閱讀
- 金屬探測(cè)器怎么用_金屬探測(cè)器的使用方法 6.1w次閱讀
- 半導(dǎo)體探測(cè)器的工作原理_半導(dǎo)體探測(cè)器應(yīng)用領(lǐng)域 1.4w次閱讀
- 閃爍探測(cè)器探測(cè)原理_閃爍探測(cè)器的結(jié)構(gòu)組成 1.7w次閱讀
- 火焰探測(cè)器接線圖_火焰探測(cè)器設(shè)置要求 4.5w次閱讀
- 火焰探測(cè)器保護(hù)半徑_火焰探測(cè)器適用場(chǎng)所 1w次閱讀
- 剩余電流探測(cè)器原理_剩余電流探測(cè)器的應(yīng)用 9588次閱讀
- 火焰探測(cè)器工作原理 5.1w次閱讀
- 自制高頻振蕩金屬探測(cè)器 1.4w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 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開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 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é)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多