資料介紹
描述
該項目背后的想法是創(chuàng)建一個能夠根據(jù)手指手勢驅(qū)動執(zhí)行器的設(shè)備。
該項目專門用于識別 raspberry-pi 相機拍攝的手部流圖像。
用于訓(xùn)練模型的圖像數(shù)據(jù)集是臨時創(chuàng)建的,圖像僅從 Raspberry 相機(而非其他設(shè)備)拍攝,具有中性背景。
該模型基于Inception v3模型的遷移學習,為處理項目需求而定制。最后一層從Inception v3模型中刪除,并添加了幾層以使用新數(shù)據(jù)集進行自定義,并僅提供四種情況的輸出。
該模型使用先前在桌面(32 Gb ram + GPU)上收集和預(yù)分類的圖像進行訓(xùn)練。一旦模型經(jīng)過訓(xùn)練和測試,它就會被導(dǎo)出到 Raspberry Pi。
創(chuàng)建數(shù)據(jù)集
該項目的目的是確定我手指的位置。
因此,它創(chuàng)建了一個圖像數(shù)據(jù)集,其中手指在四個不同的位置{'無'、'一根手指'、'多于一根手指'、'手閉合'}。
手的位置總是顛倒的。
創(chuàng)建模型
使用的模型基于稱為遷移學習的技術(shù)。從已經(jīng)完全訓(xùn)練的預(yù)先存在的模型(Inception v3 模型)中刪除了最后幾層,并添加了額外的幾個新層。
在代碼下方自定義添加到模型的層。
last_layer = pre_trained_model.get_layer('mixed7')
last_output = last_layer.output
#creating a model using the previous model without the last few layers
x = layers.Flatten()(last_output)
# Add a fully connected layer with 100 hidden units and ReLU activation
x = layers.Dense(100, activation='relu')(x)
# Add a dropout rate of 0.2
x = layers.Dropout(0.2)(x)
# Add a final sigmoid layer for the classification of the 4 status
x = layers.Dense(4, activation='softmax')(x)
model = Model( pre_trained_model.input, x)
訓(xùn)練模型
訓(xùn)練僅基于圖像的數(shù)據(jù)集,并添加了一些可變性以強制模型進行泛化。這種可變性或多樣性(稱為數(shù)據(jù)增強)允許人為地增加訓(xùn)練示例的數(shù)量并提高分類的質(zhì)量。
training_datagen = ImageDataGenerator(
rescale = 1./255,
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
該模型僅擬合了 20 個 epoch,足以擬合模型并避免過度擬合。
history = model.fit(
train_generator,
validation_data = validation_generator,
steps_per_epoch = 5,
epochs = 20,
validation_steps = 5,
verbose = 2)
該模型的準確性非常好,特別是對于驗證數(shù)據(jù)集(由沒有可變性(數(shù)據(jù)增強)的真實圖像組成)。

一旦模型足夠好,它就會被保存并導(dǎo)出。
model.save("C:\\gits_folders\\Tensorflow_Lite_embeded\\raspbery\\enzo_02")
到目前為止描述的所有步驟都在 Jupiter notebook 上,可在下面的鏈接中找到:
將模型部署到 Raspberry PI
模型訓(xùn)練和測試由一個相當強大的桌面執(zhí)行。完成這些步驟后,必須將最終結(jié)果移至 Raspberry PI。
Raspberry PI 應(yīng)該僅執(zhí)行從 Raspberry PI 相機拍攝的圖像流中進行的推斷(計算量如此之大,比訓(xùn)練密集得多)。
export_dir = "C:\\gits_folders\\Tensorflow_Lite_embeded\\raspbery\\enzo_02"
loaded = tf.saved_model.load(export_dir)
converter = tf.lite.TFLiteConverter.from_saved_model(export_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
tflite_model_file = 'enzo02_converted_model.tflite'
with open(tflite_model_file, "wb") as f:
f.write(tflite_model)
在代碼之后,模型保存在一個文件(“enzo_02”)中,該文件可以輕松地從桌面復(fù)制到 Raspberry PI 文件系統(tǒng)。然后,它可以被運行在 Raspberry PI 上的 python 腳本讀取。
from tflite_runtime.interpreter import Interpreter
....
interpreter = Interpreter(args.model)
interpreter.allocate_tensors()
_, height, width, _ = interpreter.get_input_details()[0]['shape']
完整的腳本可在鏈接中找到:
下面是一個如何午餐腳本的示例:
python3 classify_picamera_servo.py --model ./enzo01_converted_model.tflite --labels ./labels
電路概述
電路非常簡單。帶有攝像頭的樹莓派 4 是核心組件。他們收集視頻流并使用部署的模型執(zhí)行推理。然后,根據(jù)推理結(jié)果,一個信號被發(fā)送到 PCA9685,PCA9685 相應(yīng)地操作 3 個伺服系統(tǒng)。
用于操作 3 個伺服系統(tǒng)的 PCA9685 工作負載由 9v 的外部電池支持。
?

建立旗幟
這 3 個標志是使用 Polymorph 材料創(chuàng)建的。Polymorph 是一種特殊類型的塑料,其熔化溫度約為 60?C,用沸水加熱即可成型為任何形狀。一旦冷卻,它就會變成一種非常堅韌的類似尼龍的聚合物。由于它是一種熱塑性塑料,Polymorph 可以多次重新加熱和熱成型。

它的使用非常簡單,您只需將一些多晶型物放入一杯水中,在微波爐中加熱幾分鐘(直到多晶型物變得透明)。

然后將其從水中取出并開始將其塑造成所需的形狀。

在這個項目中,多形體被賦予了標志形狀并添加了一個伺服臂(對于 3 個標志中的每一個)。冷卻后,他們創(chuàng)建了一個獨特的結(jié)構(gòu),其中插入了服務(wù)器臂。因此,很容易將它們連接到伺服系統(tǒng)。


我們通過添加彩色多形體來區(qū)分旗幟,因此每個旗幟都有不同的顏色。
3D 打印外殼和最終建筑
最終的建筑非常簡單,使用附件部分的 .stl 文件 3D 打印伺服支架和 Raspberry PI/相機支架。將每個標志連接到一個伺服器,并將伺服器插入其支架。
然后,將 Raspberry Pi 及其攝像頭插入外殼中。


?
?

?
?
- 樹莓派接入點開源分享
- 樹莓派家庭自動化開源
- 樹莓派監(jiān)視器開源項目
- 樹莓派零UPS/NAS開源
- 樹莓派移動電源開源分享
- 樹莓派計算模塊開源項目
- 樹莓派4RGB帽子開源
- 樹莓派ATEM Tally開源項目
- 樹莓派4b原理圖下載 124次下載
- 樹莓派3和樹莓派4的原理圖免費下載 92次下載
- 樹莓派3和樹莓派4的原理圖免費下載 224次下載
- 樹莓派傳感器的使用教程詳細概述 27次下載
- 樹莓派與51單片機和arduino與STM32的比較
- 樹莓派是什么樹莓派的簡單介紹
- 樹莓派傳感器教程資料下載 32次下載
- ARM開發(fā)板與樹莓派的比較 559次閱讀
- 虹科工業(yè)樹莓派應(yīng)用小技巧 700次閱讀
- dfrobotUSB/TTL樹莓派GPS模塊簡介 3425次閱讀
- dfrobotArduino 樹莓派擴展板簡介 2254次閱讀
- 淺談香蕉派與樹莓派的不同 2.5w次閱讀
- 樹莓派與nanopi的對比 5.4w次閱讀
- 樹莓派菜鳥入門攻略 6925次閱讀
- 解答樹莓派如何開啟root賬戶 6486次閱讀
- 淺談樹莓派與單片機的區(qū)別 7.3w次閱讀
- 樹莓派有什么用_樹莓派能用來做啥_樹莓派新手入門教程 3.3w次閱讀
- 樹莓派安裝系統(tǒng)_樹莓派系統(tǒng)安裝教程 1.3w次閱讀
- 樹莓派用什么語言編程_樹莓派python編程詳解 3.8w次閱讀
- 樹莓派gpio接口及編程方法 6.5w次閱讀
- 樹莓派是什么_樹莓派的發(fā)展歷史及主要參數(shù) 1w次閱讀
- DIY一個樹莓派擴展板 7460次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論