資料介紹
描述
介紹:
由于非法狩獵和運(yùn)動狩獵,有幾種瀕臨滅絕的鳥類可以通過技術(shù)解決方案得到拯救。
根據(jù)《自然》雜志的當(dāng)前討論 [1],如果采取行動避免這種物種滅絕,可以減輕多少物種滅絕,鳥類生活 [2] 加強(qiáng)了這種滅絕,它大約可以減輕 40%。

我發(fā)現(xiàn)的類似解決方案是基于提高對問題的認(rèn)識。忽略這些解決方案,我可以找到:
- 使用帶 GPS 的項鏈。缺點(diǎn):佩戴在動物身上的項圈和傳感器會對動物造成傷害或不適。在電池的情況下,它們可能會爆炸。https://www.gps-collars.com/
- 無人機(jī)智能傳感。缺點(diǎn):它們會對動物產(chǎn)生意想不到的碰撞或倒塌并傷害它們。
- 識別鳥鳴。缺點(diǎn):系統(tǒng)復(fù)雜繁瑣,很難在一個地方長期維護(hù)。
在后者的情況下,除了加強(qiáng)我們的理論外,它還讓我們有機(jī)會制作一個易于復(fù)制、節(jié)能且功能強(qiáng)大的系統(tǒng)。
解決方案:
使用 QuickFeather 開發(fā)套件中包含的英飛凌 IM69D130 PDM 數(shù)字麥克風(fēng),我們將獲得音頻信號,使用 SensiML,我們可以通過神經(jīng)網(wǎng)絡(luò),指示我們聽到的鳥的類型。

顯示在一個簡單的 Web 應(yīng)用程序中檢測到的鳥類的信息。

連接圖:
我們將項目基于以下架構(gòu):

我們將使用 QuickFeather 套件并通過 Simple Stream Gateway 將其連接到設(shè)備和 AWS,該信息將顯示在 Web 應(yīng)用程序中。
硬件:
把它想象成我們使用 QuickFeather 作為 ESP32 的 AI Shield。

開發(fā)環(huán)境設(shè)置:
由于我使用我的計算機(jī)對許多不同的組件進(jìn)行編程,我真的很喜歡能夠隔離我用來編程的環(huán)境。在這種情況下,為了進(jìn)行應(yīng)用程序的開發(fā)并能夠正確使用 QORC SDK,我將所有東西都安裝在一個 Docker 容器中,該容器可以簡單地打開和關(guān)閉以編譯程序。除了在不同的機(jī)器上很容易重現(xiàn)。
我已將容器上傳到 Docker Hub,因此您也可以根據(jù)需要使用它。
下面是容器編譯qf_ssi_ai_app示例程序的示例

QuickFeather Burner v1(閃光器):
除了在 docker 上將所有內(nèi)容編譯到開發(fā)環(huán)境中,我決定創(chuàng)建一個 GUI 來輕松編程 QuickFeather,而無需命令行。
該程序與 Windows 10 兼容,您可以在 QuickFeather Burner v1 文件夾中找到可執(zhí)行文件。
否則,您可以在存儲庫中看到此代碼。

先決條件,在 pc 上安裝 python3 并在 PATH 中可用。

- Install Dep :第一次打開時,按下按鈕安裝程序的依賴項。
- 刷新端口:刷新連接到電腦的串行端口。
- 瀏覽 Bin 文件:搜索 bin 中的文件。
- 程序:在所選設(shè)備上對 bin 進(jìn)行編程,一旦您完成閃爍設(shè)備,您應(yīng)該會看到“成功”響應(yīng)。
遵循這個過程:
該程序的功能純粹是從命令行加速設(shè)備的閃存過程。
捕獲數(shù)據(jù):
為了獲得可靠的我國鳥鳴數(shù)據(jù),并能夠?qū)υO(shè)備進(jìn)行正確的測試,決定使用這個“數(shù)據(jù)庫”的歌曲作為模型訓(xùn)練的輸入。
數(shù)據(jù):(網(wǎng)頁是西班牙語,所以我留下谷歌翻譯的版本)
對于這個測試,我決定使用以下 6 只隨機(jī)鳥類的數(shù)據(jù)。
- 鈹蜂鳥
- 墨西哥木匠
- 墨西哥芬克
- 紅眼龍
- 裁縫
- 扎納特市長
鳥類:
如果您想更深入地了解該項目,它位于 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 對我的音頻進(jìn)行采樣,我遵循了 SensiML 官方教程。
- 使用 QuickFeather 和 SensiML 處理音頻數(shù)據(jù)
- 在這種情況下,由于設(shè)備將通過 WiFi 工作,我決定使用 SensiML 提供的 ESP32 接口通過 WiFi 發(fā)送所有數(shù)據(jù)。更多細(xì)節(jié)在:ESP32 接口
https://github.com/sensiml/esp32_simple_http_uart
特別是如果您想查看項目并自己編譯它,它將位于該文件夾中。數(shù)據(jù)采集??實(shí)驗(yàn)室
如果您只想開始從您的設(shè)備進(jìn)行測量,編譯的 bin 將位于文件夾中。數(shù)據(jù)采集??實(shí)驗(yàn)室箱
捕獲數(shù)據(jù)示例:
捕獲數(shù)據(jù):
要對數(shù)據(jù)進(jìn)行采樣,請獲取鳥網(wǎng)頁提供的音頻(GitHub 中的音頻)并使用 QuickFeather 捕獲它們。

標(biāo)簽數(shù)據(jù):
對于數(shù)據(jù)標(biāo)注,在每幀捕獲的數(shù)據(jù)中,選擇鳥鳴中最顯著的片段,同時選擇它們沒有唱歌的片段為 Normal 類別(沒有鳥鳴,來自背景自然的純噪聲,在這種情況下“沉默”)
這是墨西哥木匠的歌曲的一個例子:

SensiML:
在這種情況下,在訓(xùn)練模型時,請使用以下設(shè)置,因?yàn)樗鼈兪墙o我最好結(jié)果的設(shè)置。

生成的模型產(chǎn)生的混淆矩陣為:

6只鳥的識別結(jié)果是:

由于單片機(jī)的限制,需要保證單片機(jī)能檢測到的鳥類很少。
測試模型:
使用ESP32 Interface y Simple-Streaming-Gateway用一些鳥類測試模型。
盡管該模型似乎毫無意義地檢測了多只鳥,但實(shí)際上它主要檢測的是我們想要的鳥。然而,為了證明這一點(diǎn),我們必須對幾次檢測進(jìn)行平均,以顯示它是如何正確檢測到鳥的。
ESP32 接口:
SensiML 視頻系列中解釋了這個 ESP32 接口。
這個 ESP32 項目的所有代碼都在 esp32_simple_http_uart 文件夾中,要編譯它并在 ESP32 上燒寫它,你必須使用 ESP-IDF vscode 插件。
該項目需要的唯一設(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
完成此操作后,您可以毫無問題地將其連接到 Simple-Streaming-Gateway。
簡單流式網(wǎng)關(guān):
為了查看我們的 QuickFeather 正在閱讀的內(nèi)容,請安裝 SensiML 提供的 SSG 示例。
為了讓系統(tǒng)保持安裝狀態(tài)并且不必在計算機(jī)上運(yùn)行 SSG,我決定將其完全安裝在 Raspberry Pi Zero W 上

在這里您可以看到平臺:

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 的安全性,有必要創(chuàng)建客戶端證書和私有證書,以便將設(shè)備與平臺通信。
- 首先,我們必須訪問我們的 AWS 控制臺并查找 IoT 核心服務(wù):

- 獲取您的 AWS 終端節(jié)點(diǎn),保存它。

- 在側(cè)面板中選擇“Onboard”選項,然后選擇“Get started”。

- 選擇“開始”。

- 在“選擇平臺”中選擇“Linux/OSX”,在 AWS IoT DEvice SDK 中選擇“Python”,然后單擊“下一步”。

- 在名稱處,輸入任何名稱,然后單擊“下一步”。


- 點(diǎn)擊“完成”。

- 點(diǎn)擊“完成”。

- 在橫向欄上,在管理/事物部分內(nèi),我們可以看到我們已經(jīng)創(chuàng)建的事物。現(xiàn)在我們必須設(shè)置那個東西的策略,讓它在 AWS 中不受限制地工作。

- 在側(cè)欄,在 Secure/Policies 部分我們可以看到我們的事物策略,點(diǎn)擊它來修改它:

- 點(diǎn)擊“編輯政策文件”。

將以下文本復(fù)制粘貼到文檔中并保存。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}

這樣,設(shè)備會將數(shù)據(jù)發(fā)送到 AWS IoT。

網(wǎng)頁部署:
網(wǎng)頁的部署是使用 ReactJS 和 AWS-SDK for javascript 完成的。

看一看!:
AWS 認(rèn)知:
為了安全起見,為了安全地使用和使用 AWS 服務(wù),身份池憑證是通過 Cognito 服務(wù)實(shí)施的。
AWS IoT 和 Cognito 的訪問密鑰必須放在以下文件中。
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)頁通過 AWS IoT 作為 Web 套接字接收傳感器數(shù)據(jù),因此在頁面內(nèi)定義很重要,這是我們將要接收的主題,在本例中為“鳥類檢測”。
在以下文件中,輸入您將訂閱的主題的名稱。WebApp/src/App.js
<IotReciever sub_topics={["birds-detected"]} callback={this.callBackIoT} />
數(shù)據(jù)后處理:
為了對傳感器檢測到的數(shù)據(jù)進(jìn)行后處理,平均采集了 7 個樣本。系統(tǒng)每次檢測到積累了7個音頻樣本,就獲取數(shù)據(jù)的統(tǒng)計模式,觀察哪只鳥被檢測到最多。顯示此事件的信息。
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)頁演示:
在這里,我們可以看到平臺如何正確檢測到其中一只鳥:
完成品:
我在當(dāng)?shù)氐纳种胁渴鹆诉@個項目,幸運(yùn)的是那里有免費(fèi)的 WiFi 連接。因此,可以將設(shè)備放置在這個地方進(jìn)行試點(diǎn)測試。





最終演示:
結(jié)論:
當(dāng)然,這只是為了嘗試和保存所需的東西而做的一小部分努力,但第一步總是試圖找到這些物種。物聯(lián)網(wǎng)與人工智能一起為我們帶來了自動化這一過程的可能性,并在其中變得更加確定。本質(zhì)上,可以為更多種類的物種擴(kuò)展和復(fù)制相同的過程,我還看到使用計算機(jī)視覺做同樣事情的版本,在這種情況下的問題是為其提供動力。目前的目的是將 QuickFeather 和 SensiML 的音頻功能推向極限,并為此找到一個有價值的應(yīng)用程序。
- 圣誕節(jié)運(yùn)動探測器開源項目
- 圣誕老人探測器開源分享
- 煙霧和氣體探測器開源項目
- 基于Microsoft Azure和Raspberry Pi的鳥類探測器
- DULI通用圖像損傷探測器開源分享
- 帶警報系統(tǒng)的室溫探測器開源分享
- Lane Tech HS PCL RAGE探測器開源分享
- 野生動物探測器開源分享
- 激光雷達(dá)入侵探測器開源分享
- 脈沖微處理器金屬探測器開源設(shè)計
- 金屬探測器Quasar ARM G1910開源分享
- BT智能手機(jī)探測器開源項目
- 智能金屬探測器MOLE開源項目
- 蓋革探測器開源項目
- 熱探測器和光電發(fā)射探測器等光輻射探測技術(shù)的解析 11次下載
- 熱解粒子探測器與什么相似 403次閱讀
- 被動紅外探測器和主動紅外探測器的區(qū)別 1394次閱讀
- 金屬探測器電路圖 帶Arduino的金屬探測器設(shè)計 2500次閱讀
- 探索紅外熱成像探測器的基礎(chǔ)原理 897次閱讀
- 金屬探測器電路圖分享 7837次閱讀
- 基于零維材料的光電探測器原子結(jié)構(gòu) 1161次閱讀
- 氣體探測器怎么接線 3.3w次閱讀
- 紅外線探測器距離_紅外線探測器安裝 1.4w次閱讀
- 金屬探測器怎么用_金屬探測器的使用方法 6.1w次閱讀
- 半導(dǎo)體探測器的工作原理_半導(dǎo)體探測器應(yīng)用領(lǐng)域 1.5w次閱讀
- 火焰探測器接線圖_火焰探測器設(shè)置要求 4.7w次閱讀
- 火焰探測器保護(hù)半徑_火焰探測器適用場所 1.1w次閱讀
- 剩余電流探測器原理_剩余電流探測器的應(yīng)用 1w次閱讀
- 火焰探測器工作原理 5.2w次閱讀
- 自制高頻振蕩金屬探測器 1.5w次閱讀
下載排行
本周
- 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)
評論