資料介紹
描述
為什么選擇自動售貨機?
自動售貨機為用戶提供各種產品,如零食、飲料、比薩餅、紙杯蛋糕、蘇打水等。機器的界面包括一個數字鍵盤,用戶可以在其中選擇所需的產品、輸入產品 ID 并進行購買。在covid-19爆發期間,最常被觸摸的按鈕板或控制臺被污染,因此我們無法為自動售貨機使用數字鍵盤界面。這就是為什么最好選擇可以取代我們常規數字鍵盤控制臺的手勢控制系統。
這個怎么運作?
深度學習模型是使用一些非常常見的手勢數據集構建的,例如 Palm、Okay、Peace、Fist 和 L。富含這些手勢的 Kaggle 數據集可用于訓練和測試模型 | 資源
與其從頭開始構建順序模型,不如使用預訓練模型,這就是我使用 VGG-16 神經網絡的原因。除了能夠對照片中的物體進行分類之外,模型權重是免費提供的,可以在我們自己的模型和應用程序中加載和使用。這是一個沉重的模型,但預測準確性非常令人滿意。我的訓練模型可以在這里找到。它是使用帶有TensorFlow后端的Keras API生成的。
里面發生了什么
我們在基本模型布局中看到的,它有大約 4 層 -> 輸入層、輸出層,在兩個隱藏層之間。
- 信息被輸入輸入層,輸入層將其傳輸到隱藏層
- 兩層之間的互連為每個輸入隨機分配權重(權重是與輸入相乘的數值參數,主要將輸入轉換為輸出)
- 在將權重與它們單獨相乘后添加到每個輸入的偏差(偏差只是為調整輸出而添加的數字參數)
- 加權和被轉移到激活函數
- 激活函數確定應該觸發哪些節點進行特征提取
- 該模型將應用程序功能應用于輸出層以傳遞輸出
- 調整權重,并反向傳播輸出以最小化錯誤
對于 VGG16 ,它不過是 16 層的堆棧。在這些層上,完成了不同的操作,例如:卷積、relu、最大池化等。來源可找到有關 VGG-16 架構及其實現方式的更多信息。
在繼續前進之前
由于我們將使用 Raspberry-pi Zero W,我們需要擁有精簡版的 Tensor Flow 才能將TinyML集成到我們的項目中。這樣,后端處理將盡可能順利地運行。這就是為什么需要TF_lite 模型的原因。我的 TensorFlow lite 模型可以在這里找到。要了解更多關于 TensorFlow lite 模型從 TensorFlow 模型的轉換,我們可以去這里。
我使用Jupyter Notebook來構建代碼并生成模型。因此,數據集必須存儲在本地。我如何構建、訓練、調整和測試我的模型,我使用的數據集也可以在這里找到。試圖使筆記本盡可能簡單,用有用的注釋表示代碼:)。
圖像處理任務的四個階段概述
首先,相機開始捕捉被分解成幀的視頻。OpenCv 有助于每次迭代獲取一幀并執行以下操作:
- 獲取幀時,應用使用 OpenCv 雙邊濾波器功能的平滑濾波器。應用平滑濾波器去除幀中的高空間頻率噪聲。
將前景與背景分開以僅獲取手勢
- 使用 OpenCv background_model_mog2 函數從靜態背景中提取移動對象(手勢)以單獨獲取前景對象。
- 創建 background_model 后,通過一次迭代應用 [3*3] 內核來使用像 erode 這樣的形態學操作。在輸出中,小對象被移除,因此只剩下實質性對象。然后進行按位“與”操作,只保持輸出的相關部分,其他像素變暗。
獲取提取手勢的二值圖像
- 首先,從背景模型中提取的圖像被轉換為??灰色。
- 然后應用高斯模糊濾波器來降低噪聲。選擇尺寸通常為標準偏差三倍的掩模。
- 通過應用一定的閾值將灰度圖像轉換為二值圖像。顏色空間的灰度或子空間在分類中產生了復雜性。這就是為什么最好使用二進制圖像。
設置目標圖像進行預測
- 這里堆棧操作執行沿新軸連接圖像數組的序列。
- 目標圖像需要調整大小,這樣訓練后的模型可以預測圖像并且不會與圖像大小沖突。
- 進行預測之前的下一步也是最后一步是,目標圖像需要重新整形為 224*224*3 (width*height*color_channel_number)。
然后將目標圖像輸入 predict_rgb_image 函數,該函數返回圖像的預測分數和預測類別。
系統工作流程
硬件
硬件部分分為兩個部分:
- 捕獲流,檢測手勢,通過藍牙將產品 ID 發送到 Arduino 無觸摸控制臺:由 Raspberry Pi Zero W 完成。
- 從 Pi 接收產品 id,發送要購買的物品:由 Arduino 控制臺完成。
在硬件部分,我們將嘗試僅模擬 AutoVend 的手勢檢測、顯示控制臺和功能。我們不會關注它的機械部分。因為,機械部件的功能與任何自動售貨機相同。
為了從攝像頭流中獲取圖像幀并檢測手勢,我們需要給 Raspberry Pi 零 W 上電。為此,我們可以使用 1100mAh 11.1 伏的鋰聚合物電池,并通過降壓轉換器將 11.1 伏轉換為 5 伏。
帶攝像頭設置的 Raspberry-pi 零 W
現場直播
溝通
我們有一個集成的藍牙模塊與我們的 Raspberry-pi 零 W,此外,我們可以使用外部藍牙模塊并通過串口連接它。我們將使用它與 Arduino 進行通信。在 Arduino 部分,我們有 HC-05 藍牙模塊。為了在它們之間建立通信,我們將使用 COM/Serial 端口,它偵聽任何嘗試連接的外部設備的操作 -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 的藍牙模塊無法同步。我們需要以下庫來完成這項工作。
import serial
展示
模擬購買、訂購和向用戶顯示不同提示的工作;一個 16*2 液晶面板將與 Arduino 集成。
撥動開關
撥動開關將用于喚醒機器。這將使整個相機過程從頭開始工作。
力量
一個 9v 電池將為電路供電,使用線性轉換器 7805 將其轉換為 5v。然后將其饋入模擬自動售貨機的面包板。
免觸摸控制臺
Arduino 控制臺的最終外觀
?
我們將如何購買
假設這是 AutoVend 的產品映射,其中 11、12、13 ... ... 64、65、66 代表產品 ID。
現在,我們有這兩個手勢圖可供選擇
Other Digits(Except from 1 to 3):當我們想選擇其他數字,這里沒有,我們需要去另一個手勢圖。最后一個手勢模式有助于打破這張地圖。
其他數字(4 到 6 除外):與前面描述的相同。目的是打破這張地圖。
技巧:正如我們所見,所有數字都是使用由三個符號組成的特定模式構建的。如果我們需要選擇一個數字(如:4),那么我們必須對所有三個標志進行手勢。但是,如果我們要手勢多位數字(如:45),那么我們不必兩次都手勢。只需要打手勢一次,就可以打手勢了。
L + 好的 + 拳頭 + 好的 = 數字 (45)
我們想購買 ID-15 的產品
使用這兩個地圖,我們需要在相機之前順序顯示以下手勢
最后,我們需要顯示手勢“L”
所以整個打手勢的過程:
Peace + L + Okay + Peace + Okay + Palm + Fist + Okay + Palm + Okay + L = Digit(15)
讓我們使用 ID-15 購買產品:
我們將模擬Raspberry Pi 的手勢步驟,并了解無觸摸Arduino控制臺的功能。
結論:
我使用本地機器(例如筆記本電腦)和Jupyter Notebook來訓練、測試和評估模型。最后,我生成了 TensorFlow lite 模型。在 raspberry pi 零上執行實時手勢識別,并在帶有VNC 查看器應用程序的筆記本電腦上看到提要。無觸摸控制臺是用 Arduino Nano 構建的。
使用AutoVend ,不僅可以自動化購買雜貨的整個過程,而且還可以成為我們的常規小工具如何智能到足以為我們提供抵御 Covid-19 大流行的安全性的一個很好的例子 :)
- 自動售貨機MDB電源供電系統要求 0次下載
- 投幣個人自動售貨機的構建
- PCB鳥類自動售貨機開源硬件
- DIY自動售貨機開源項目
- 自動售貨機plc程序帶觸摸屏 53次下載
- 自動售貨機方案/設計/開發/項目
- 自動售貨機項目教程及文件下載 0次下載
- 基于Zigbee和物聯網的自動售貨機系統 25次下載
- 自動售貨機的VHDL程序與仿真資料免費下載 18次下載
- 使用FPGA實現自動售貨機的VHDL程序與仿真資料 24次下載
- 使用PLC實現自動售貨機的設計論文免費下載 19次下載
- 自動售貨機觸摸屏 5次下載
- 智能自動售貨機售貨 0次下載
- 基于FPGA的自動售貨機主控制系統的設計
- 自動售貨機短信報警系統
- 用小安派開源硬件制作一個桌面天氣站 809次閱讀
- 尋找開源硬件成功的觸發器 636次閱讀
- 基于STM32的自動售貨機控制系統設計 2851次閱讀
- 在智能HMI中如何實現良好的用戶體驗 2492次閱讀
- 源創通信BPI-M1+ 開源硬件開發板介紹 2648次閱讀
- 智能售貨機系統架構服務模式分析 3835次閱讀
- firefly自動售貨機概述 2121次閱讀
- 聯智通達科技自助售賣機產品介紹 1701次閱讀
- 簡單實用的6個PLC程序實例分析 9689次閱讀
- 自動售貨機為什么會知道你丟進去的是什么硬幣工作原理詳細介紹 8258次閱讀
- 互聯網和無線網絡平臺,對自動售貨機聯網實現遠程控制 7419次閱讀
- 自動售貨機上的GPRS無線通信模塊設計 2377次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6363次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 6939次閱讀
- 基于嵌入式的自動售貨機設計與實現 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多