本文討論了在工業(yè)自動化背景下,開發(fā)者利用樹莓派5和Hailo AI加速器進(jìn)行工業(yè)級數(shù)值數(shù)據(jù)處理實戰(zhàn),打通SQLite與機(jī)器學(xué)習(xí)全鏈路時遇到的問題及解決方案。關(guān)鍵要點(diǎn)包括:
1.開發(fā)者需求:構(gòu)建能從SQLite數(shù)據(jù)庫提取數(shù)值數(shù)據(jù)、用優(yōu)化模型分析數(shù)據(jù)、將結(jié)果保存回數(shù)據(jù)庫的高效數(shù)據(jù)處理流程。
2.基準(zhǔn)性能:Hailo-8L模塊推理吞吐量為15萬次/秒(INT8),SQLite批處理延遲<5ms/批次(100條/批次)。
3.面臨挑戰(zhàn):HailoRT版本不包含編譯器;Hailo Model Zoo在Python 3.11環(huán)境安裝失敗;工作流模型與數(shù)值特征不兼容。
4.社區(qū)提問:詢問數(shù)值數(shù)據(jù)模型與加速器集成示例、Python版本處理方案、非圖像數(shù)據(jù)處理工作流及工具等。
5.解決方案:下載Dataflow Compiler (DFC),在帶GPU的x86機(jī)器上進(jìn)行模型編譯。
6.參考實現(xiàn):可查看樹莓派示例適應(yīng)數(shù)值數(shù)據(jù)處理
7.啟發(fā)思考:體現(xiàn)社區(qū)力量、清晰表達(dá)問題、開發(fā)者與社區(qū)互動的重要性。
導(dǎo)語
在工業(yè)自動化的浪潮中,數(shù)據(jù)就是力量!樹莓派5憑借其強(qiáng)大的性能和豐富的接口,成為了開發(fā)者手中的“瑞士軍刀”。而Hailo AI加速器的加入,更是為這把“刀”裝上了“火箭助推器”!
你是否遇到過這樣的難題:海量的數(shù)值數(shù)據(jù)從傳感器涌入,傳統(tǒng)的計算方法跟不上節(jié)奏,數(shù)據(jù)處理成了瓶頸。別擔(dān)心,本文將帶你走進(jìn)一個真實的開發(fā)故事,看開發(fā)者如何用樹莓派5和Hailo AI加速器,打造出一個從數(shù)據(jù)讀取到分析,再到結(jié)果回寫的高效流水線。
開發(fā)者的需求:我們想實現(xiàn)什么?
在Hailo的開發(fā)者社區(qū)里面,有一位叫walter.richtscheid的工程師提出一個開發(fā)中的問題:
他的目標(biāo)是構(gòu)建一個高效的數(shù)據(jù)處理流程,能夠:
1. 從SQLite數(shù)據(jù)庫中提取數(shù)值數(shù)據(jù)。
2. 使用針對Hailo AI加速器優(yōu)化的機(jī)器學(xué)習(xí)模型對數(shù)據(jù)進(jìn)行分析。
3. 將分析結(jié)果保存回SQLite數(shù)據(jù)庫。
基準(zhǔn)性能:
Hailo-8L模塊推理吞吐量: 15萬次/秒(INT8)
SQLite批處理延遲: <5ms/批次(100條/批次)
面臨的挑戰(zhàn)
1、編譯器缺失
我們安裝的HailoRT版本(4.19.0)不包含TensorFlow-to-HEF編譯器。
像以下這樣的命令無法使用:
hailortclicompile-tensorflow
2、Hailo Model Zoo安裝問題
在我們的Python 3.11環(huán)境中,安裝Hailo Model Zoo 2.13.0(Python包)時失敗,出現(xiàn)以下錯誤:
fatalerror: longintrepr.h: No such file or directory
lap依賴項似乎與Python 3.11不兼容。
3、工作流模型兼容性
示例HEF中的當(dāng)前VStreams是基于圖像的(NHWC 416x416x3),不適合我們的數(shù)值特征(每行3個值)。
我們不確定如何調(diào)整管道以適應(yīng)數(shù)值數(shù)據(jù)處理。
社區(qū)提問
由于無法解決,所以這位開發(fā)者在社區(qū)里提出了自己的問題并尋求Hailo官方的幫助:
1. 是否有關(guān)于將數(shù)值數(shù)據(jù)模型(例如DNN)與Hailo AI加速器集成的示例或模板?
2. 我們是否應(yīng)該將Python版本降級到3.9以確保Model Zoo的兼容性,還是有其他替代方案?
3. 是否有推薦的工作流或編譯工具用于非圖像數(shù)據(jù)處理?
4. TAPPAS是否可以用于簡化這種數(shù)值數(shù)據(jù)管道?
附加信息
運(yùn)行64位Raspberry Pi OS的Raspberry Pi 5。
已在虛擬環(huán)境中安裝并運(yùn)行TensorFlow 2.18.0。
已經(jīng)驗證了SQLite數(shù)據(jù)庫的輸入和輸出批處理。
技術(shù)支持與解決方案
Hailo的官方在了解到開發(fā)者的需求和問題后,迅速做出了回復(fù):
1、下載Dataflow Compiler (DFC)
首先,從我們的開發(fā)者區(qū)域下載Dataflow Compiler (DFC):
https://hailo.ai/developer-zone/software-downloads/
(需要注冊/登錄才能訪問下載)
2、模型編譯(在帶有GPU的x86機(jī)器上)
將TensorFlow模型轉(zhuǎn)換為ONNX格式:
python -m tf2onnx.convert--saved-modelyour_model_dir--outputmodel.onnx
然后使用DFC編譯:
完整的數(shù)值數(shù)據(jù)處理管道實現(xiàn)
importnumpyasnpimportsqlite3fromhailo_platformimportHEF, VDevicefromhailo_rpi_commonimportapp_callback_classclassNumericalDataCallback(app_callback_class): def__init__(self): super().__init__() self.db_path ="results.db" defsave_to_db(self, data): conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute('CREATE TABLE IF NOT EXISTS results (id INTEGER PRIMARY KEY, value REAL)') cursor.executemany('INSERT INTO results (value) VALUES (?)', [(value,)forvalueindata]) conn.commit() conn.close()classNumericalDataApp: def__init__(self, callback, user_data): self.callback = callback self.user_data = user_data self.hef_path ="model.hef" withVDevice()asvdevice: hef = HEF(self.hef_path) self.network_group = vdevice.configure(hef) defrun_inference(self, data): withself.network_group.create_vstreams()asvstreams: returnvstreams[0].infer(data) defrun(self): input_data = np.random.rand(1,3).astype(np.float32) # 替換為實際數(shù)據(jù) results = self.run_inference(input_data) self.user_data.save_to_db(results) print(f"Pipeline run complete. Results saved:{results}")if__name__ =="__main__": user_data = NumericalDataCallback() app = NumericalDataApp(app_callback, user_data) app.run()
參考實現(xiàn)
請查看我們的樹莓派的示例,這些示例可以適應(yīng)數(shù)值數(shù)據(jù)處理。
https://github.com/hailo-ai/hailo-rpi5-examples
開發(fā)者的回應(yīng)
由于官方的有力支持,開發(fā)者的工作有了很大的進(jìn)展:
我們非常感謝你提供的關(guān)于使用Hailo AI加速器處理數(shù)值數(shù)據(jù)的詳盡回復(fù)和清晰的分步指導(dǎo)。我們真切地感受到你為分享這一全面解決方案所投入的時間和精力!
目前,我們正在梳理工作流程,并準(zhǔn)備實施你建議的步驟,包括數(shù)據(jù)流編譯器和基于Python的管道。在完成測試后,我們將毫無保留地與社區(qū)分享我們的成果和任何額外的見解。
再次感謝你的支持和專業(yè)知識——在我們持續(xù)推進(jìn)這個項目的過程中,它們簡直是無價之寶。
最好的祝福,”
結(jié)語:啟發(fā)與思考
在這個充滿挑戰(zhàn)的開發(fā)過程中,我們學(xué)到了很多寶貴的經(jīng)驗。遇到問題并不可怕,關(guān)鍵是如何快速有效地找到解決方案。正如這位開發(fā)者所展示的,當(dāng)你遇到難題時,選擇一個合適的渠道尋求幫助是非常重要的。
他選擇了Hailo的社區(qū),清晰地描述了自己的問題,并分享了自己的疑問和進(jìn)展。這種清晰的表達(dá)使得Hailo官方能夠迅速理解他的需求,并提供正確的建議。結(jié)果,問題得到了有效的解決。
這給我們帶來了幾個重要的啟發(fā):
社區(qū)的力量:Hailo社區(qū)證明了其在技術(shù)支持方面的價值。這樣的社區(qū)不僅是解決問題的地方,更是學(xué)習(xí)和成長的平臺。
清晰的表達(dá):在尋求幫助時,清晰地描述問題和自己的嘗試是非常重要的。這有助于他人快速理解并提供幫助。
互動的重要性:開發(fā)者與社區(qū)的互動是解決問題的關(guān)鍵。通過分享和討論,我們可以更快地找到答案。
對于樹莓派開發(fā)者來說,這些經(jīng)驗是非常有參考意義的。它們提醒我們,在開發(fā)過程中遇到問題時,不要猶豫尋求幫助,同時也要學(xué)會如何有效地利用社區(qū)資源。
希望這些思考能夠引發(fā)你的共鳴,讓我們在開發(fā)的道路上共同成長,不斷探索新的可能性。
-
加速器
+關(guān)注
關(guān)注
2文章
826瀏覽量
39064 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8500瀏覽量
134472 -
樹莓派
+關(guān)注
關(guān)注
121文章
1991瀏覽量
107330
發(fā)布評論請先 登錄
搭載樹莓派CM5:Sfera Labs 工業(yè)控制器!

完整指南:如何使用樹莓派5、Hailo AI Hat、YOLO、Docker進(jìn)行自定義數(shù)據(jù)集訓(xùn)練?

能夠精準(zhǔn)定位的樹莓派機(jī)器人!

**【技術(shù)干貨】Nordic nRF54系列芯片:傳感器數(shù)據(jù)采集與AI機(jī)器學(xué)習(xí)的完美結(jié)合**
樹莓派5終極開發(fā)方案:VSCode Server避坑實戰(zhàn)指南

樹莓派 AI HAT+ !到手了!我來教你安裝!

樹莓派AI套件:如何將混亂的數(shù)據(jù)變成有序的魔法

4臺樹莓派5跑動大模型!DeepSeek R1分布式實戰(zhàn)!

FPGA+AI王炸組合如何重塑未來世界:看看DeepSeek東方神秘力量如何預(yù)測......

評論