在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一個采用MLX90640的消防感官解決方案

科技觀察員 ? 來源:Emanuel Lowcock ? 作者:Emanuel Lowcock ? 2022-05-25 16:36 ? 次閱讀

這個項目能夠為消防員提供紅外視覺感,以幫助他們從燃燒的建筑物中營救人員。

背景

熱像儀 (TIC) 已被證明是消防員的寶貴工具。它們使消防員能夠更快地找到受害者,更一致地成功駛出燃燒的房屋,并減少令人滿意地完成搜索所需的時間。然而,一些問題仍然存在。尋找受害者時,需要花費時間拉出 TIC,進行設置并讀取顯示。手持 TIC 顯示器在濃煙中難以準確看到,導致受害者定位較慢。使用顯示器需要操作員將他們的眼睛和注意力從周圍的環境中移開,從而導致意識喪失并增加隧道視力的風險。

利用機器學習為消防員提供紅外線 (IR) 感覺的感官替代設備將是一個有用的工具。這將減少消防員在顯示器上將視線從周圍環境中移開的次數(也降低了隧道視力的風險),因為他們將不再覺得需要不斷地監控 TIC 顯示器,因為他們將不斷地獲得重要的 IR 信息。當感覺到適當的刺激時,他們將能夠更快地做出反應,而不是不得不參考顯示器,從而減少受害者的救援時間。直接將關鍵信息流式傳輸給消防員將減少顯示器在濃煙中的低能見度成為問題的情況。總體而言,具有 IR 意識的消防員在搜救行動中會更有效。

如何設置項目
我們將 Qwiic 電纜(面包板跳線(4 針))連接到 MLX90640 SparkFun IR Array Breakout (MLX)。四根線(黑、紅、黃、藍)分別代表GND、VIN(3.3V)、SCL、SDA。

poYBAGKN6Z2ALh3ZAAS5T539JoA549.png

因為我們的 Qwiic 電纜不是母跳線,所以我們使用四根 ff 面包板線將 Qwiic 電纜引腳連接到 Raspberry Pi (Pi)。在下圖中,可以看到黑色、紅色、黃色和藍色 Qwiic 引腳分別連接到棕色、紅色、黃色和橙色 ff 面包板線。

pYYBAGKN6auAatNjAAMebC_wFFs425.png

ff 面包板線的顏色并不重要,但關鍵是 Qwiic 電纜 GND、VIN、SCL 和 SDA 引腳連接到適當的 Pi 引腳(分別為引腳 6、1、5 和 3)。下面可以看到 Pi 引腳分配指南以及我們與 Pi 的連接。

pYYBAGKN6bqASOTlAAQRdr4YxWg598.png

完成后,我們創建了一個小紙板相機支架,通過切掉披薩盒的一側來幫助支撐相機。此步驟不是必需的,因此請隨意跳過它或自己制作。

pYYBAGKN6cqACZIkAARWZ9cze64834.png

實施概述

將相機連接到樹莓派
使用 Adafruit 庫,我們能夠從 MLX90640 熱像儀中讀取數據。

import adafruit_mlx90640
import time,board,busio

i2c = busio.I2C(board.SCL, board.SDA, frequency=1000000) # setup I2C
mlx = adafruit_mlx90640.MLX90640(i2c) # begin MLX90640 with I2C comm
mlx.refresh_rate = adafruit_mlx90640.RefreshRate.REFRESH_2_HZ # set refresh rate

frame = [0]*768 # setup array for storing all 768 temperatures

mlx.getFrame(frame)

此時,我們將溫度數據存儲在一個數組中,準備好進行預處理。

預處理原始溫度數據并提供給分類服務
我們的預處理步驟需要將溫度數據轉換為稍后可以輸入到我們的邊緣脈沖模型中的圖像。這是使用Matplotlib 庫完成的,然后將圖像保存到 Buffer Stream 并編碼為 base64 字符串。

mlx.getFrame(frame)

mlx_shape = (24,32)
fig = plt.figure(frameon=False)

ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)

thermal_image = ax.imshow(np.zeros(mlx_shape), aspect='auto')

MIN= 18.67
MAX= 43.68

data_array = (np.reshape(frame,mlx_shape)) # reshape to 24x32
thermal_image.set_data(np.fliplr(data_array)) # flip left to right
thermal_image.set_clim(vmin=MIN,vmax=MAX) # set bounds

buf = io.BytesIO()
fig.savefig(buf,format='jpg',facecolor='#FCFCFC',bbox_inches='tight')
img_b64 = base64.b64encode(buf.getvalue()).decode()

buf.close()
plt.close(fig)

使用 http post 請求將 base64 字符串和原始幀數據發送到我們的分類微服務。微服務將通過 Edge Impulse 模型運行圖像,并經過一些后處理(如下所述)返回一個標志,說明是否在幀中檢測到一個人,如果是,那么他們是什么方向,即左、中、右。

分類服務
分類服務接受一個 post 請求,請求中包含兩個數據對象:原始數據數組和以 base64 表示的圖像。圖像在被傳遞到分類器之前需要進行預處理。首先,我們必須提取圖像的原始特征。圖像被解碼為圖像緩沖區,然后將其轉換為圖像的十六進制表示。這個十六進制字符串被分割成單獨的 RGB 值并轉換成整數,準備處理到分類器中。

let raw_features = [];
let img_buf = Buffer.from(request.body.image, 'base64')

try{
let buf_string = img_buf.toString('hex');

// store RGB pixel value and convert to integer
for (let i=0; i raw_features.push(parseInt(buf_string.slice(i, i+6), 16));
}

} catch(error) {
throw new Error("Error Processing Incoming Image");
}

原始特征被輸入到分類器中,并返回一個由兩個標簽組成的對象。標簽是圖像中的人和不在圖像中的人的置信度等級。

let result = {"hasPerson":false}
let classifier_result = classifier.classify(raw_features);

no_person_value = 0
person_value = 0

if(classifier_result["results"][0]["label"] === "no person"){
no_person_value = classifier_result["results"][0]["value"]
} else {
throw new Error("Invalid Model Classification Post Processing")
}

if(classifier_result["results"][3]["label"] === "person"){
person_value = classifier_result["results"][3]["value"]
} else {
throw Error("Invalid Model Classification Post Processing")
}

然后將這兩個標簽值與我們的置信度閾值進行比較,以確定是否有人在幀中看到過。如果沒有,分類器服務會使用一個包含一個字段的對象來響應發布請求:

“hasPerson”=假。

然而,如果置信值達到或超過閾值標準,則使用原始溫度數據來確定熱源來自幀中的哪個位置。

if(person_value > person_threshold
&& no_person_value < no_person_threshold){
result["hasPerson"] = true
// If is person find brightspot in the image
let frame_data = request.body.frame
let column_average = new Array(32)

index_count = 0;
for(let j = 0; j < 24; j++){
for (let i = 0; i < 32; i ++){
column_average[i] = (column_average[i] || 0)
+ parseFloat(frame_data[index_count])
index_count++
}}

left_avg = 0
centre_avg = 0
right_avg = 0

for(let i = 0; i < 16; i++){
left_avg = left_avg + column_average[i]
}
for(let i = 8; i < 24; i++){
centre_avg = centre_avg + column_average[i]
}
for(let i = 17; i < 32; i++){
right_avg = right_avg + column_average[i]
}


var direction
if(left_avg > centre_avg && left_avg > right_avg){
direction = 1
} else if (centre_avg > left_avg && centre_avg > right_avg){
direction = 2
} else if (right_avg > left_avg && right_avg > centre_avg){
direction = 3
} else {
direction = 4
}

result["direction"]=direction
一個響應對象從 post 請求中返回,帶有兩個值:

“hasPerson” = 真

“方向” = <方向值>

我們使用Python 的 Neosensory SDK以便在將 Buzz 與 Pi 配對后向 Buzz 發送電機命令。我們選擇使用時空掃描(“在空間和時間上編碼的模式”),因為 Novich 和 Eagleman [2] 的一項研究發現,與空間模式和由以下組成的模式相比,它們是將數據編碼到皮膚的最佳方法單個電機通過振動刺激皮膚區域。時空掃描的更高識別性能允許通過皮膚進行更大的信息傳輸 (IT),這意味著消防員可以接收更多有用的信息(以及獲得的 IR 感知的更大潛在有效性)。因為我們只關心三個方向值,所以創建了三個掃描數組來描述一個人在框架的左側、右側或中心,如下所示:

sweep_left = [255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0]

sweep_right = [0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0]

sweep_centre = [255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0]

當 Pi 接收到一個響應對象,該對象表示框架中有一個人以及他們在框架中的什么位置時,就會向 Buzz 發送一個振動電機命令:

if(response['hasPerson'] == True):
print("has person")
if(response['direction']):

print(response['direction'])

if response['direction'] == 1:
await my_buzz.vibrate_motors(sweep_right)
print("Right")

elif response['direction'] == 2:
await my_buzz.vibrate_motors(sweep_centre)
print("Centre")

elif response['direction'] == 3:
await my_buzz.vibrate_motors(sweep_left)
print("Left")

else:
print("inconclusive")
else:
print("no person")

我們發現每次運行代碼時都必須將 Buzz 置于配對模式,以最大程度地減少發送命令時 Buzz 不振動的可能性。

邊緣脈沖

數據集收集
當 MLX 指向某人時,768 個溫度值的數組被保存在一個 .txt 文件中。這些文件的組織方式是為了便于上傳到 Edge Impulse,其中有人在框架中,哪些地方在框架中有物體(例如散熱器或狗);哪些地方什么都沒有。

pYYBAGKN6dmAF4ePAAbWwk9gb_Y705.png

數據預處理
我們為訓練模型而對數據進行預處理的方法與我們處理來自上述攝像頭的實時信息的方法類似,只是數據源是包含溫度值的文本文件。我們編寫了一個 python 腳本來遍歷所有這些文件并將它們輸出為圖像。在將溫度轉換為圖像時,我們需要有一個最小值和最大值來分配給顏色范圍。為了找到這些最小值、最大值,我們在約 400 個溫度陣列的數據集中找到了最低和最高溫度。

創建模型
使用 Edge Impulse,我們上傳了帶有適當標簽“人員”和“無人”的收集數據,并允許數據在訓練和測試之間自動拆分。對于脈沖設計,我們嘗試了處理和學習模塊的不同組合(例如圖像和神經網絡 (Keras)),但我們發現使用我們的數據,圖像處理模塊和遷移學習學習模塊的性能最好。

pYYBAGKN6eWASZIeAAKPAcHO_Yw934.png

我們使用 RGB 作為顏色深度參數,然后生成特征。

pYYBAGKN6fKAMZKkAAJU69653ow188.png

我們將訓練周期數設置為 20,學習率為 0.0005,并將最小置信度設置為 0.6。

poYBAGKN6gqAPMfrAAIWraZoKgo645.png

我們將沖動部署為具有默認優化的 WebAssembly 庫。

模型運行
該模型運行良好,但存在一些問題,因為它偶爾會輸出誤報和漏報。下面是當有人直接坐在 MLX 前面并且模型正確識別出他們位于框架中心時,在我們的節點 js 服務器和 Pi 上的 Python 代碼中運行的模型輸出的一些屏幕截圖:

poYBAGKN6hqAeHpGAAQQO7RiQbc579.png

未來的可能

改進的熱成像相機
雖然 MLX 對家庭愛好者來說是一款出色的 TIC,但我們認為它在幫助消防員拯救生命方面并不能勝任。此處可見的像 FLIR K53 這樣的“高性能”TIC具有令人印象深刻的 320x240 分辨率(與 MLX 的 768 相比,總像素為 76800)和 60 Hz 的刷新率。更復雜的 TIC(具有更高的分辨率和刷新率)將使模型更容易準確地檢測人體形狀,并且有必要將這個項目變成產品

模型的進一步訓練
我們還認為需要一個更復雜的模型才能將這個項目變成一個產品。該項目的下一步將是開發一個模型,該模型可以檢測同一幀中的多個人,并且不僅輸出是否在幀中檢測到一個人,還輸出他們在幀中的位置。該模型應根據 x 軸和 y 軸給出位置。如果可能,應傳達有關人員與攝像機的距離的信息,甚至是有關人員“可見”程度的信息(例如,如果僅檢測到手臂,則模型應傳達人員“部分可見”是由于障礙物,例如床或瓦礫)。

對于這個項目,我們有一個非常簡單的觸覺語言,它只需要傳達關于三個位置的信息。展望未來,隨著模型輸出更多信息,需要設計更精細的觸覺語言。這可以與位于消防員身體上的更大陣列的執行器一起使用,以促進更豐富的時空掃描。最終產品可能旨在讓消防員穿著觸覺袖子或背心,而不是一個 Buzz。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 熱像儀
    +關注

    關注

    0

    文章

    369

    瀏覽量

    23969
  • MLX90640
    +關注

    關注

    3

    文章

    22

    瀏覽量

    1270
收藏 人收藏

    評論

    相關推薦

    MLX90640紅外熱成像儀測溫傳感器模塊PC端操作教程

    MLX90640 紅外熱成像儀測溫傳感器模塊PC端操作教程
    的頭像 發表于 08-12 14:08 ?3271次閱讀
    <b class='flag-5'>MLX90640</b>紅外熱成像儀測溫傳感器模塊PC端操作教程

    【正點原子STM32H7R3開發套件試用體驗】+MLX90640熱成像

    測量,幫助監測熱異常和預防故障。本次使用RA6T2開發板讀取MLX90640紅外測溫傳感器的溫度,顯示在LCD屏幕上,便于測試設備的溫度。 2.實現 mlx90640有兩種方式讀取數據,即串口( TTL
    發表于 12-17 22:41

    MLX90640新型紅外傳感器的特點及應用 查看附件規格書

    MLX90640是Melexis公司推出的種新型紅外 (IR) 傳感器,為較昂貴的高端熱像儀提供了種經濟高效的替代方案。這款 32x24 像素的傳感器件適用于多種安全和便利應用,其
    發表于 10-11 10:56

    RK3288 android7.1 mlx90640溫度傳感器的驅動調試過程是怎樣的?

    RK3288 android7.1 mlx90640溫度傳感器的驅動調試過程是怎樣的?
    發表于 03-03 06:24

    RK3288 mlx90640的驅動開發描述

    1、mlx90640的驅動開發描述mlx90640款紅外熱像儀模塊, 32×24 像素, I2C 接口通信,兼容 3.3V/5V 電平。采用 M
    發表于 05-16 10:28

    MLX90640在利用IIC讀取數據時,讀取的數據都是FF的原因?

    Melexis 的紅外傳感器MLX90640在利用IIC讀取數據時,讀取的數據都是FF,不正常數據,這是什么原因?
    發表于 10-24 07:35

    MLX90640新型紅外傳感器的特點及應用

    MLX90640是Melexis公司推出的種新型紅外 (IR) 傳感器,為較昂貴的高端熱像儀提供了種經濟高效的替代方案。這款 32x24 像素的傳感器件適用于多種安全和便利應用,其
    的頭像 發表于 05-13 11:42 ?3.1w次閱讀

    基于熱電堆的遠紅外熱傳感器陣列MLX90640芯片解析

    遠紅外熱傳感器陣列MLX90640的像元尺寸為100微米(μm),采用低成本的硅透鏡,設計非常緊湊。MLX90640工作溫度范圍為:-40°C至85°C,可測量的物體溫度范圍為:-40°C至300
    發表于 09-29 15:09 ?1w次閱讀

    遠紅外熱傳感器陣列MLX90640的特性和優勢分析

    遠紅外熱傳感器陣列MLX90640的像元尺寸為100微米(μm),采用低成本的硅透鏡,設計非常緊湊。MLX90640工作溫度范圍為:-40°C至85°C,可測量的物體溫度范圍為:-40°C至300
    發表于 10-08 15:41 ?6031次閱讀

    MLX90640紅外陣列傳感器的驅動庫API免費下載

    為了正確使用 MLX90640 的 API 庫,下面的 4 文件應該被包含(include)到您的 C 工程內:? MLX90640_I2C_Driver.h – 與 I2C 接口有關的函數、變量等定義聲明頭文件?
    發表于 10-12 08:00 ?65次下載
    <b class='flag-5'>MLX90640</b>紅外陣列傳感器的驅動庫API免費下載

    微雪電子MLX90640紅外熱像儀模塊簡介

    MLX90640紅外熱像儀模塊 32×24像素 55度視場角 I2C接口 55度視場角,適合遠距離測量,支持Raspberry Pi/Arduino/STM32/ESP32等主控板。 型號 MLX90640-D55 Thermal Camera
    的頭像 發表于 01-02 16:20 ?1.3w次閱讀
    微雪電子<b class='flag-5'>MLX90640</b>紅外熱像儀模塊簡介

    MLX90640像素熱紅外陣列數據手冊免費下載

    MLX90640完全校準的32x24像素熱紅外陣列,采用工業標準的4-lead to 39封裝,帶有數字接口。MLX90640包含76
    發表于 01-06 08:00 ?23次下載
    <b class='flag-5'>MLX90640</b>像素熱紅外陣列數據手冊免費下載

    MLX90640驅動程序和驅動說明文檔免費下載

    本文檔的主要內容詳細介紹的是MLX90640驅動程序和驅動說明文檔免費下載。
    發表于 04-02 08:00 ?76次下載

    MLX90640紅外熱成像儀測溫模塊開發筆記(四)

    MLX90640 紅外熱成像儀測溫模塊開發筆記(四)損壞和不良像素的處理
    的頭像 發表于 07-22 09:33 ?1292次閱讀
    <b class='flag-5'>MLX90640</b>紅外熱成像儀測溫模塊開發筆記(四)

    如何利用RT-Thread去開發MLX90640熱成像儀?

    采用 N32G457 芯片作為主控MCU,搭載國產實時操作系統 RT-Thread,通過I2C總線讀取MLX90640的紅外數據,通過SPI總線或軟件模擬SPI外接TFT顯示屏顯示測量數據。
    發表于 08-07 16:43 ?842次閱讀
    如何利用RT-Thread去開發<b class='flag-5'>一</b>種<b class='flag-5'>MLX90640</b>熱成像儀?
    主站蜘蛛池模板: 天天躁狠狠躁 | 美女网站黄页 | 亚洲 欧美 自拍 另类 欧美 | 一色屋成人免费精品网站 | 韩国韩宝贝2020vip福利视频 | 青青热久免费精品视频在线观看 | 在线观看成人网 | 日韩毛片在线 | 草久久久久 | 女人张开腿男人桶 | 色多多18免费观看 | 人人草人 | 欧美区在线| 日本.www | 奇米影视一区二区三区 | you ji z z日本人在线观看 | 一级毛片美国一级j毛片不卡 | 亚洲成人www | 午夜免费福利在线观看 | 2017天天操 | 免费永久欧美性色xo影院 | 波多野吉衣一区二区三区在线观看 | 免费观看一级特黄欧美大片 | 国产一区二区三区在线影院 | 最新仑乱免费视频 | 特级全黄一级毛片视频 | 精品一区二区三区免费毛片爱 | 桃色婷婷| 天天摸夜夜添狠狠添2018 | 农村妇女高清毛片一级 | 天天爽夜夜爽天天做夜夜做 | 嫩草网| 国产综合色精品一区二区三区 | 来吧成人综合网 | 午夜性刺激免费视频观看不卡专区 | 伊人色强在线网 | 天天爱天天做色综合 | 色吧在线视频在线观看 | 日本高清www | 美女网站色在线观看 | 视频一二三区 |