楊斌 戚本正 劉璟瑤 陳濤 朱策
(南開大學濱海學院 天津市 300270)
目前人工智能的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。人臉識別是人工智能學科中發展的最為快速的一個分支之一,已有很多落成熟地應用。本文身份識別采用Face Recognition 人臉識別框架,該框架使用C++開源庫 dlib 中的深度學習模型,用Labeled Faces in the Wild 人臉數據集進行測試,有高達99.38%的準確率。對于dlib 面部識別網絡,輸出特征向量是128-d(即128 個實值數字的列表),用于量化面部。通過實驗,我們找出合適的容錯值,使得識別率得到提高。在本文中,我們對市面常見的紅外溫度傳感器、熱像傳感器進行了實驗測試,分別使用了MLX90614、AMG8833 傳感器。
為了穩定測試環境,本文使用了自動恒溫水箱裝置,通過水泵、氣孔使得液體不斷流動,溫度均勻。同時使用物理溫度計和溫度傳感器同時測量,盡可能的保證被測對象的穩定。針對MLX90614、AMG8833 不同傳感器進行實驗測量,通過最小二乘法擬合,求得擬合系數,經驗證在一定溫度范圍內,測量效果頗佳。
該裝置基于樹莓派4BARMv7 架構和STM32F103RET6 微控制器設計,結合MLX90614 紅外測溫傳感器模塊、MLX90640 32*24熱像模塊、AMG8833 8*8 熱像模塊、樂視體感攝像頭等構成。使用TPS5430 電源管理芯片和XL6009DC-DC 可調電源模塊對裝置供電。無接觸測溫模塊由MLX90614、AMG8833 完成,MLX90614、AMG8833 通過I2C 協議將數據傳給核心處理器,內部算法會對溫度信息進行分析處理。身份識別模塊以OpenCv 為基礎,采用Face Recognition 人臉識別框架,通過攝像頭和樹莓派完成身份識別,將溫度信息、攝像頭捕獲的視頻流以及人臉識別的結果顯示在LCD屏幕上。STM32F103RET6 將各種傳感器采集到的信息進行匯總、分析、處理,并通過串口上傳至樹莓派。總體結構框架圖如圖1所示。

圖1:總體結構框架圖
2.2.1 MLX90614 模塊設計
如圖2所示,MLX90614 有很多FOV 選型標準,溫度測量范圍:-70℃-382.2℃。

圖2:MLX90614 模塊電路圖
2.2.2 AMG8833 模塊設計
如圖3所示,AMG8833 模塊是一個8*8 的紅外熱傳感器陣列,它可以從遠達7m 的距離開始檢測。

圖3:AMG8833 模塊電路圖
采用樂視體感攝像頭。該攝像頭可用在機器視覺、3D 點云、OpenCv 學習、ROS 機器人等方面。
如圖4所示,采用STM32F103RET6 單片機作為次控制模塊的核心。

圖4:STM32F103RET6 電路圖
采用樹莓派4B ARMv7 為主控制模塊。對于本系統設計,主從處理器通過串口通信,對信息進行匯總、分析與處理。
如圖5所示,電源選擇了TPS5430 電源管理芯片和XL6009DC-DC 可調電源模塊,STM32 及所載屏幕使用12V 2A DC電源適配器,樹莓派及其連接屏幕使用5V 3A DC 電源適配器,為電路穩定提供電壓。

圖5:電源模塊電路圖
如圖6所示,恒溫水池設計具有在水溫下限到水溫上限全量程內的加熱功能,當水溫低于水溫下限時開始加熱,水溫低于水溫上限時自動斷電停止加熱。恒溫水池機械結構模型圖如圖7所示。

圖6:恒溫水池電路圖

圖7:恒溫水池機械結構模型圖
3.1.1 紅外溫度測量方法基本分析
紅外熱電堆傳感器輸出的溫度信號經過內部低噪聲、低失調的運算放大器(OPA)放大后經過A/D 轉換器(ADC)轉換為17 位數字信號通過可編程FIR 及IIR 低通數字濾波器(即DSP)處理后輸出,輸出結果存儲在其內部RAM 存儲單元中。
MLX90614 模塊以81101 熱電元件作為紅外感應部分。輸出是被測物體溫度(TO)與傳感器自身溫度(Ta)共同作用的結果,理想情況下熱電元件的輸出電壓為:
Vir=A(To4-Ta4)
其中溫度單位均為 Kelvin(開爾文),A 為元件的靈敏度常數。
計算好的溫度輸出分辨率為0.02℃,傳感器的出廠校準范圍為-40 ~+125℃。在 RAM 單元地址006h 中,2DE4h 對應-38.2℃ (線性輸出最低限度) ,4DC4h (19908d) 對應125℃。
通過下式將RAM 內容轉換為實際的Ta 溫度:
Ta[°K]=Tareg×0.02 ,or 0.02°K/LSB
物體溫度 To 輸出結果分辨率為 0.02℃,并存于RAM。To 的實際溫度為:
To[°K]=Toreg×0.02 ,or 0.02°K/LSB
3.1.2 紅外熱成像測量方法基本分析
紅外熱成像測溫系統屬于窄譜輻射成像的測量設備,可以將接收到的紅外熱輻射能量轉換為電信號,電信號經過放大、整形、模數轉換后成為數字信號,通過圖像的形式在顯示器上顯示出來,同時對溫度值進行計算。
AMG8833 是基于高級MEMS 技術的高精度紅外陣列傳感器,其內部框圖如圖8所示,傳感器芯片經過高增益放大與內部熱敏電阻通過ADC 轉換器存儲到ROM 中。

圖8:AMG8833 內部框圖
AMG8833 每個像素的觀看中央角度傳感器的光學中心間隙:在±5.6°內(水平和垂直方向)。像素間隙排列圖如圖9所示。

圖9:像素間隙排列圖
AMG8833 通過128 個Temperature 寄存器一次性讀取64 個像素點的溫度,存儲在自定義數組中(例如a[64]),64 個溫度值中有部分受環境影響而導致測溫不準確,由于環境的溫度低于人體溫度,故軟件設計中采取設置閾值比較算法,取64 個溫度值中最大溫度的10 個溫度取平均(如果大于44℃會被視為異常點舍棄),即代表了人體體溫。
最小二乘法是一種在誤差估計、不確定度、系統辨識及預測、預報等數據處理諸多學科領域得到廣泛應用的數學工具,通過最小化誤差的平方和來尋找數據的最佳函數進行匹配。
矩陣表達形式:

對于n 個樣本來說,可以用如下線性方程組表示:


圖14、15、16 裝置測量實物圖
將上式記為矩陣形式為:

最終形式為:A·B = Y,最小二乘形式可以表示為:min||AB-Y||2,最優解為:。
本文使用Matlab對測量數據進行擬合,初步使用二階函數擬合,去掉一個差距最大的數據和差距最小的數據,取平均值,形成如圖10所示的關系曲線。

圖10:Matlab 關系曲線
3.3.1 深度學習中的人臉識別分析
進行人臉識別是由如下步驟完成的:首先,從視頻流中截取一張包含人臉的照片;其次無論周圍光線如何,確保能夠識別出是同一個人的臉;再針對截取的人臉需要區分與其他人臉的不同之處;最后將截取的人臉與已知的人臉庫進行比較,確定人臉的標記。
為了得到每個人臉最獨特的數據,該算法將從圖片(圖11)中找到所有的人臉,然后捕捉并識別人臉的關鍵點,包括眼睛、鼻子、嘴和下巴。在對成千上萬的人的數百萬個圖像重復此步驟數百萬次之后,神經網絡學會了可靠地為每個人生成128 個數據值。也就是會在人臉上獲取128 個點的向量,比如眉毛的輪廓、鼻子的輪廓、嘴的輪廓等許多個點組成的線。

圖11:人臉面部特征圖
系統軟件程序設計流程圖如圖12所示。

圖12:系統軟件程序設計流程圖
4.1.1 測量方案及測試條件
溫度測量條件如圖13。

圖13:溫度測量條件
測試方案:將MLX90614 紅外測溫傳感器模塊、紅外熱像儀AMG8833 模塊固定在STM32 板子上,攝像頭可以直射容器中的水。以測試距離為1m 的攝像頭為基準,其實際長度為3.8cm,在容器和攝像頭中間放一塊長5cm,寬和高分別為1cm 的小木塊,則測試距離為:5-3.8=1.2cm。在此基礎上,每放一塊小木塊,攝像頭和容器之間的距離就增加1cm,隨之測出的數據會顯示在LCD 屏幕上,當所測溫度超過自己設定的閾值時,就會發射出報警。每測出一組數據,就要與紅油溫度計的實際溫度進行比對,去掉一個誤差最大和最小的數據,取平均值,最后進行最小二乘法的擬合,用matlab繪制出來。裝置測量實物圖如圖14、圖15 和圖16所示。
4.1.2 測量結果
數據對比如下:
采用兩種不同型號的MLX90614,DCI 測距為1m 左右,BCC/DCC 測距為10cm 左右。如表1 和表2所示。

表1:數據結果一

表2:數據結果二
Matlab 圖像如圖17所示。

圖17:溫度曲線擬合
4.1.3 測量結果分析
經測量,可以得出,不同類型的紅外傳感器對溫度的誤差測量不一樣,DCI 的誤差大約在0.8℃,BCC/DCC 的誤差大約1.3℃,幾乎與紅油溫度計測量的實際溫度相同。此裝置能夠基本實現無接觸測溫功能。
4.2.1 測量方案
首先進行信息采集,其次進行人臉檢測,識別臉部特征,保存面部的128 維面部編碼,最后顯示基本信息。如圖18所示。

圖18:128 維面部編碼
4.2.2 識別結果
如圖19所示。

圖19:人臉識別結果