資料介紹
描述
該項(xiàng)目背后的想法是創(chuàng)建一個能夠根據(jù)手指手勢驅(qū)動執(zhí)行器的設(shè)備。
該項(xiàng)目專門用于識別 raspberry-pi 相機(jī)拍攝的手部流圖像。
用于訓(xùn)練模型的圖像數(shù)據(jù)集是臨時創(chuàng)建的,圖像僅從 Raspberry 相機(jī)(而非其他設(shè)備)拍攝,具有中性背景。
該模型基于Inception v3模型的遷移學(xué)習(xí),為處理項(xiàng)目需求而定制。最后一層從Inception v3模型中刪除,并添加了幾層以使用新數(shù)據(jù)集進(jìn)行自定義,并僅提供四種情況的輸出。
該模型使用先前在桌面(32 Gb ram + GPU)上收集和預(yù)分類的圖像進(jìn)行訓(xùn)練。一旦模型經(jīng)過訓(xùn)練和測試,它就會被導(dǎo)出到 Raspberry Pi。
創(chuàng)建數(shù)據(jù)集
該項(xiàng)目的目的是確定我手指的位置。
因此,它創(chuàng)建了一個圖像數(shù)據(jù)集,其中手指在四個不同的位置{'無'、'一根手指'、'多于一根手指'、'手閉合'}。
手的位置總是顛倒的。
創(chuàng)建模型
使用的模型基于稱為遷移學(xué)習(xí)的技術(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ù)集,并添加了一些可變性以強(qiáng)制模型進(jìn)行泛化。這種可變性或多樣性(稱為數(shù)據(jù)增強(qiáng))允許人為地增加訓(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)
該模型的準(zhǔn)確性非常好,特別是對于驗(yàn)證數(shù)據(jù)集(由沒有可變性(數(shù)據(jù)增強(qiáng))的真實(shí)圖像組成)。
一旦模型足夠好,它就會被保存并導(dǎo)出。
model.save("C:\\gits_folders\\Tensorflow_Lite_embeded\\raspbery\\enzo_02")
到目前為止描述的所有步驟都在 Jupiter notebook 上,可在下面的鏈接中找到:
將模型部署到 Raspberry PI
模型訓(xùn)練和測試由一個相當(dāng)強(qiáng)大的桌面執(zhí)行。完成這些步驟后,必須將最終結(jié)果移至 Raspberry PI。
Raspberry PI 應(yīng)該僅執(zhí)行從 Raspberry PI 相機(jī)拍攝的圖像流中進(jìn)行的推斷(計(jì)算量如此之大,比訓(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)。然后,它可以被運(yùn)行在 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 工作負(fù)載由 9v 的外部電池支持。
?
建立旗幟
這 3 個標(biāo)志是使用 Polymorph 材料創(chuàng)建的。Polymorph 是一種特殊類型的塑料,其熔化溫度約為 60?C,用沸水加熱即可成型為任何形狀。一旦冷卻,它就會變成一種非常堅(jiān)韌的類似尼龍的聚合物。由于它是一種熱塑性塑料,Polymorph 可以多次重新加熱和熱成型。
它的使用非常簡單,您只需將一些多晶型物放入一杯水中,在微波爐中加熱幾分鐘(直到多晶型物變得透明)。
然后將其從水中取出并開始將其塑造成所需的形狀。
在這個項(xiàng)目中,多形體被賦予了標(biāo)志形狀并添加了一個伺服臂(對于 3 個標(biāo)志中的每一個)。冷卻后,他們創(chuàng)建了一個獨(dú)特的結(jié)構(gòu),其中插入了服務(wù)器臂。因此,很容易將它們連接到伺服系統(tǒng)。
我們通過添加彩色多形體來區(qū)分旗幟,因此每個旗幟都有不同的顏色。
3D 打印外殼和最終建筑
最終的建筑非常簡單,使用附件部分的 .stl 文件 3D 打印伺服支架和 Raspberry PI/相機(jī)支架。將每個標(biāo)志連接到一個伺服器,并將伺服器插入其支架。
然后,將 Raspberry Pi 及其攝像頭插入外殼中。
?
?
?
?
- 樹莓派接入點(diǎn)開源分享
- 樹莓派家庭自動化開源
- 樹莓派監(jiān)視器開源項(xiàng)目
- 樹莓派零UPS/NAS開源
- 樹莓派移動電源開源分享
- 樹莓派計(jì)算模塊開源項(xiàng)目
- 樹莓派4RGB帽子開源
- 樹莓派ATEM Tally開源項(xiàng)目
- 樹莓派4b原理圖下載 118次下載
- 樹莓派3和樹莓派4的原理圖免費(fèi)下載 89次下載
- 樹莓派3和樹莓派4的原理圖免費(fèi)下載 222次下載
- 樹莓派傳感器的使用教程詳細(xì)概述 27次下載
- 樹莓派與51單片機(jī)和arduino與STM32的比較
- 樹莓派是什么樹莓派的簡單介紹
- 樹莓派傳感器教程資料下載 31次下載
- 虹科工業(yè)樹莓派應(yīng)用小技巧 573次閱讀
- dfrobotUSB/TTL樹莓派GPS模塊簡介 3211次閱讀
- dfrobotArduino 樹莓派擴(kuò)展板簡介 2079次閱讀
- 淺談樹莓派4的性能及配置 3.9w次閱讀
- 淺談香蕉派與樹莓派的不同 2.5w次閱讀
- 樹莓派與nanopi的對比 5.3w次閱讀
- 樹莓派菜鳥入門攻略 6852次閱讀
- 解答樹莓派如何開啟root賬戶 6378次閱讀
- 淺談樹莓派與單片機(jī)的區(qū)別 7.3w次閱讀
- 樹莓派有什么用_樹莓派能用來做啥_樹莓派新手入門教程 3.3w次閱讀
- 樹莓派安裝系統(tǒng)_樹莓派系統(tǒng)安裝教程 1.3w次閱讀
- 樹莓派用什么語言編程_樹莓派python編程詳解 3.8w次閱讀
- 樹莓派gpio接口及編程方法 6.4w次閱讀
- 樹莓派是什么_樹莓派的發(fā)展歷史及主要參數(shù) 1w次閱讀
- DIY一個樹莓派擴(kuò)展板 7340次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 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開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 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é)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多