資料介紹
描述
為什么選擇自動(dòng)售貨機(jī)?
自動(dòng)售貨機(jī)為用戶提供各種產(chǎn)品,如零食、飲料、比薩餅、紙杯蛋糕、蘇打水等。機(jī)器的界面包括一個(gè)數(shù)字鍵盤(pán),用戶可以在其中選擇所需的產(chǎn)品、輸入產(chǎn)品 ID 并進(jìn)行購(gòu)買。在covid-19爆發(fā)期間,最常被觸摸的按鈕板或控制臺(tái)被污染,因此我們無(wú)法為自動(dòng)售貨機(jī)使用數(shù)字鍵盤(pán)界面。這就是為什么最好選擇可以取代我們常規(guī)數(shù)字鍵盤(pán)控制臺(tái)的手勢(shì)控制系統(tǒng)。
這個(gè)怎么運(yùn)作?
深度學(xué)習(xí)模型是使用一些非常常見(jiàn)的手勢(shì)數(shù)據(jù)集構(gòu)建的,例如 Palm、Okay、Peace、Fist 和 L。富含這些手勢(shì)的 Kaggle 數(shù)據(jù)集可用于訓(xùn)練和測(cè)試模型 | 資源

與其從頭開(kāi)始構(gòu)建順序模型,不如使用預(yù)訓(xùn)練模型,這就是我使用 VGG-16 神經(jīng)網(wǎng)絡(luò)的原因。除了能夠?qū)φ掌械奈矬w進(jìn)行分類之外,模型權(quán)重是免費(fèi)提供的,可以在我們自己的模型和應(yīng)用程序中加載和使用。這是一個(gè)沉重的模型,但預(yù)測(cè)準(zhǔn)確性非常令人滿意。我的訓(xùn)練模型可以在這里找到。它是使用帶有TensorFlow后端的Keras API生成的。
里面發(fā)生了什么
我們?cè)诨灸P筒季种锌吹降模写蠹s 4 層 -> 輸入層、輸出層,在兩個(gè)隱藏層之間。
- 信息被輸入輸入層,輸入層將其傳輸?shù)诫[藏層
- 兩層之間的互連為每個(gè)輸入隨機(jī)分配權(quán)重(權(quán)重是與輸入相乘的數(shù)值參數(shù),主要將輸入轉(zhuǎn)換為輸出)
- 在將權(quán)重與它們單獨(dú)相乘后添加到每個(gè)輸入的偏差(偏差只是為調(diào)整輸出而添加的數(shù)字參數(shù))
- 加權(quán)和被轉(zhuǎn)移到激活函數(shù)
- 激活函數(shù)確定應(yīng)該觸發(fā)哪些節(jié)點(diǎn)進(jìn)行特征提取
- 該模型將應(yīng)用程序功能應(yīng)用于輸出層以傳遞輸出
- 調(diào)整權(quán)重,并反向傳播輸出以最小化錯(cuò)誤
對(duì)于 VGG16 ,它不過(guò)是 16 層的堆棧。在這些層上,完成了不同的操作,例如:卷積、relu、最大池化等。來(lái)源可找到有關(guān) VGG-16 架構(gòu)及其實(shí)現(xiàn)方式的更多信息。

在繼續(xù)前進(jìn)之前
由于我們將使用 Raspberry-pi Zero W,我們需要擁有精簡(jiǎn)版的 Tensor Flow 才能將TinyML集成到我們的項(xiàng)目中。這樣,后端處理將盡可能順利地運(yùn)行。這就是為什么需要TF_lite 模型的原因。我的 TensorFlow lite 模型可以在這里找到。要了解更多關(guān)于 TensorFlow lite 模型從 TensorFlow 模型的轉(zhuǎn)換,我們可以去這里。
我使用Jupyter Notebook來(lái)構(gòu)建代碼并生成模型。因此,數(shù)據(jù)集必須存儲(chǔ)在本地。我如何構(gòu)建、訓(xùn)練、調(diào)整和測(cè)試我的模型,我使用的數(shù)據(jù)集也可以在這里找到。試圖使筆記本盡可能簡(jiǎn)單,用有用的注釋表示代碼:)。
圖像處理任務(wù)的四個(gè)階段概述
首先,相機(jī)開(kāi)始捕捉被分解成幀的視頻。OpenCv 有助于每次迭代獲取一幀并執(zhí)行以下操作:
- 獲取幀時(shí),應(yīng)用使用 OpenCv 雙邊濾波器功能的平滑濾波器。應(yīng)用平滑濾波器去除幀中的高空間頻率噪聲。
將前景與背景分開(kāi)以僅獲取手勢(shì)
- 使用 OpenCv background_model_mog2 函數(shù)從靜態(tài)背景中提取移動(dòng)對(duì)象(手勢(shì))以單獨(dú)獲取前景對(duì)象。
- 創(chuàng)建 background_model 后,通過(guò)一次迭代應(yīng)用 [3*3] 內(nèi)核來(lái)使用像 erode 這樣的形態(tài)學(xué)操作。在輸出中,小對(duì)象被移除,因此只剩下實(shí)質(zhì)性對(duì)象。然后進(jìn)行按位“與”操作,只保持輸出的相關(guān)部分,其他像素變暗。
獲取提取手勢(shì)的二值圖像
- 首先,從背景模型中提取的圖像被轉(zhuǎn)換為??灰色。
- 然后應(yīng)用高斯模糊濾波器來(lái)降低噪聲。選擇尺寸通常為標(biāo)準(zhǔn)偏差三倍的掩模。
- 通過(guò)應(yīng)用一定的閾值將灰度圖像轉(zhuǎn)換為二值圖像。顏色空間的灰度或子空間在分類中產(chǎn)生了復(fù)雜性。這就是為什么最好使用二進(jìn)制圖像。
設(shè)置目標(biāo)圖像進(jìn)行預(yù)測(cè)
- 這里堆棧操作執(zhí)行沿新軸連接圖像數(shù)組的序列。
- 目標(biāo)圖像需要調(diào)整大小,這樣訓(xùn)練后的模型可以預(yù)測(cè)圖像并且不會(huì)與圖像大小沖突。
- 進(jìn)行預(yù)測(cè)之前的下一步也是最后一步是,目標(biāo)圖像需要重新整形為 224*224*3 (width*height*color_channel_number)。
然后將目標(biāo)圖像輸入 predict_rgb_image 函數(shù),該函數(shù)返回圖像的預(yù)測(cè)分?jǐn)?shù)和預(yù)測(cè)類別。

系統(tǒng)工作流程

硬件
硬件部分分為兩個(gè)部分:
- 捕獲流,檢測(cè)手勢(shì),通過(guò)藍(lán)牙將產(chǎn)品 ID 發(fā)送到 Arduino 無(wú)觸摸控制臺(tái):由 Raspberry Pi Zero W 完成。
- 從 Pi 接收產(chǎn)品 id,發(fā)送要購(gòu)買的物品:由 Arduino 控制臺(tái)完成。
在硬件部分,我們將嘗試僅模擬 AutoVend 的手勢(shì)檢測(cè)、顯示控制臺(tái)和功能。我們不會(huì)關(guān)注它的機(jī)械部分。因?yàn)?,機(jī)械部件的功能與任何自動(dòng)售貨機(jī)相同。
為了從攝像頭流中獲取圖像幀并檢測(cè)手勢(shì),我們需要給 Raspberry Pi 零 W 上電。為此,我們可以使用 1100mAh 11.1 伏的鋰聚合物電池,并通過(guò)降壓轉(zhuǎn)換器將 11.1 伏轉(zhuǎn)換為 5 伏。
帶攝像頭設(shè)置的 Raspberry-pi 零 W

現(xiàn)場(chǎng)直播

溝通
我們有一個(gè)集成的藍(lán)牙模塊與我們的 Raspberry-pi 零 W,此外,我們可以使用外部藍(lán)牙模塊并通過(guò)串口連接它。我們將使用它與 Arduino 進(jìn)行通信。在 Arduino 部分,我們有 HC-05 藍(lán)牙模塊。為了在它們之間建立通信,我們將使用 COM/Serial 端口,它偵聽(tīng)任何嘗試連接的外部設(shè)備的操作 -like: here on COM8, the Bluetooth module
integrated with
Arduino
is trying to connect with Raspberry-pi.
# Sample Code Snippet
serialPort = serial.Serial(port = "COM8", baudrate=9600,
bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE)
我們需要保持特定的波特率,否則集成 Arduino 的藍(lán)牙模塊無(wú)法同步。我們需要以下庫(kù)來(lái)完成這項(xiàng)工作。
import serial
展示
模擬購(gòu)買、訂購(gòu)和向用戶顯示不同提示的工作;一個(gè) 16*2 液晶面板將與 Arduino 集成。
撥動(dòng)開(kāi)關(guān)
撥動(dòng)開(kāi)關(guān)將用于喚醒機(jī)器。這將使整個(gè)相機(jī)過(guò)程從頭開(kāi)始工作。
力量
一個(gè) 9v 電池將為電路供電,使用線性轉(zhuǎn)換器 7805 將其轉(zhuǎn)換為 5v。然后將其饋入模擬自動(dòng)售貨機(jī)的面包板。
免觸摸控制臺(tái)

Arduino 控制臺(tái)的最終外觀


?
我們將如何購(gòu)買
假設(shè)這是 AutoVend 的產(chǎn)品映射,其中 11、12、13 ... ... 64、65、66 代表產(chǎn)品 ID。

現(xiàn)在,我們有這兩個(gè)手勢(shì)圖可供選擇

Other Digits(Except from 1 to 3):當(dāng)我們想選擇其他數(shù)字,這里沒(méi)有,我們需要去另一個(gè)手勢(shì)圖。最后一個(gè)手勢(shì)模式有助于打破這張地圖。

其他數(shù)字(4 到 6 除外):與前面描述的相同。目的是打破這張地圖。
技巧:正如我們所見(jiàn),所有數(shù)字都是使用由三個(gè)符號(hào)組成的特定模式構(gòu)建的。如果我們需要選擇一個(gè)數(shù)字(如:4),那么我們必須對(duì)所有三個(gè)標(biāo)志進(jìn)行手勢(shì)。但是,如果我們要手勢(shì)多位數(shù)字(如:45),那么我們不必兩次都手勢(shì)。只需要打手勢(shì)一次,就可以打手勢(shì)了。
L + 好的 + 拳頭 + 好的 = 數(shù)字 (45)
我們想購(gòu)買 ID-15 的產(chǎn)品

使用這兩個(gè)地圖,我們需要在相機(jī)之前順序顯示以下手勢(shì)

最后,我們需要顯示手勢(shì)“L”

所以整個(gè)打手勢(shì)的過(guò)程:
Peace + L + Okay + Peace + Okay + Palm + Fist + Okay + Palm + Okay + L = Digit(15)
讓我們使用 ID-15 購(gòu)買產(chǎn)品:
我們將模擬Raspberry Pi 的手勢(shì)步驟,并了解無(wú)觸摸Arduino控制臺(tái)的功能。
結(jié)論:
我使用本地機(jī)器(例如筆記本電腦)和Jupyter Notebook來(lái)訓(xùn)練、測(cè)試和評(píng)估模型。最后,我生成了 TensorFlow lite 模型。在 raspberry pi 零上執(zhí)行實(shí)時(shí)手勢(shì)識(shí)別,并在帶有VNC 查看器應(yīng)用程序的筆記本電腦上看到提要。無(wú)觸摸控制臺(tái)是用 Arduino Nano 構(gòu)建的。
使用AutoVend ,不僅可以自動(dòng)化購(gòu)買雜貨的整個(gè)過(guò)程,而且還可以成為我們的常規(guī)小工具如何智能到足以為我們提供抵御 Covid-19 大流行的安全性的一個(gè)很好的例子 :)
- 自動(dòng)售貨機(jī)MDB電源供電系統(tǒng)要求 1次下載
- 投幣個(gè)人自動(dòng)售貨機(jī)的構(gòu)建
- PCB鳥(niǎo)類自動(dòng)售貨機(jī)開(kāi)源硬件
- DIY自動(dòng)售貨機(jī)開(kāi)源項(xiàng)目
- 自動(dòng)售貨機(jī)plc程序帶觸摸屏 54次下載
- 自動(dòng)售貨機(jī)方案/設(shè)計(jì)/開(kāi)發(fā)/項(xiàng)目
- 自動(dòng)售貨機(jī)項(xiàng)目教程及文件下載 0次下載
- 基于Zigbee和物聯(lián)網(wǎng)的自動(dòng)售貨機(jī)系統(tǒng) 25次下載
- 自動(dòng)售貨機(jī)的VHDL程序與仿真資料免費(fèi)下載 18次下載
- 使用FPGA實(shí)現(xiàn)自動(dòng)售貨機(jī)的VHDL程序與仿真資料 24次下載
- 使用PLC實(shí)現(xiàn)自動(dòng)售貨機(jī)的設(shè)計(jì)論文免費(fèi)下載 19次下載
- 自動(dòng)售貨機(jī)觸摸屏 5次下載
- 智能自動(dòng)售貨機(jī)售貨 0次下載
- 基于FPGA的自動(dòng)售貨機(jī)主控制系統(tǒng)的設(shè)計(jì)
- 自動(dòng)售貨機(jī)短信報(bào)警系統(tǒng)
- 用小安派開(kāi)源硬件制作一個(gè)桌面天氣站 1007次閱讀
- 尋找開(kāi)源硬件成功的觸發(fā)器 755次閱讀
- 基于STM32的自動(dòng)售貨機(jī)控制系統(tǒng)設(shè)計(jì) 3248次閱讀
- 在智能HMI中如何實(shí)現(xiàn)良好的用戶體驗(yàn) 2599次閱讀
- 源創(chuàng)通信BPI-M1+ 開(kāi)源硬件開(kāi)發(fā)板介紹 2811次閱讀
- 智能售貨機(jī)系統(tǒng)架構(gòu)服務(wù)模式分析 3985次閱讀
- firefly自動(dòng)售貨機(jī)概述 2266次閱讀
- 聯(lián)智通達(dá)科技自助售賣機(jī)產(chǎn)品介紹 1806次閱讀
- 簡(jiǎn)單實(shí)用的6個(gè)PLC程序?qū)嵗治?/a> 9877次閱讀
- 自動(dòng)售貨機(jī)為什么會(huì)知道你丟進(jìn)去的是什么硬幣工作原理詳細(xì)介紹 8422次閱讀
- 互聯(lián)網(wǎng)和無(wú)線網(wǎng)絡(luò)平臺(tái),對(duì)自動(dòng)售貨機(jī)聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程控制 7546次閱讀
- 自動(dòng)售貨機(jī)上的GPRS無(wú)線通信模塊設(shè)計(jì) 2655次閱讀
- 三大主流開(kāi)源硬件對(duì)比:Arduino vs BeagleBone vs Raspberry Pi 6655次閱讀
- 開(kāi)源硬件究竟有多“Open”?看完這個(gè)你就清楚了 7124次閱讀
- 基于嵌入式的自動(dòng)售貨機(jī)設(shè)計(jì)與實(shí)現(xiàn) 1.1w次閱讀
下載排行
本周
- 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)論