資料介紹
描述
介紹
我最近在 startuphuscle.xyz 上聽到了Mycroft.ai的首席執行官 Joshua Montgomery討論他的公司為將開源替代語音助手推向市場所做的努力。無論您擁有一張圖像還是數十億張圖像,距離使用人工智能識別您的視覺內容僅幾步之遙。
預測類型取決于您運行輸入的模型。AI 已卸載到云中的 clarifai 服務器。基本上,您向 clarifai 發送一張圖片,然后 clarifai 將在該圖片中找到的一組標簽/單詞/概念發回給您。?
Clarifai 提供的 api 是幾種不同的語言,其中一種是 python。這使其非常適合與 Mycroft 技能一起使用,因為它們也是用 python 編寫的。有一個非常慷慨的開發人員選項,無需任何費用即可使用,讓您可以訪問 clarifai 的標準模型以及創建和訓練自己的模型的能力。
如果你想開始破解計算機視覺/機器學習項目,你真的應該考慮 clarifai。
使用 Mycroft Mark I
Mycroft Mark I 是一個“嵌入式”Linux 應用程序,在無頭模式下運行在 Raspberry Pi 上。無頭意味著您必須將顯示器和鍵盤連接到 Mark I,或者最好使用ssh從計算機登錄您的 Mark I。在 Mycroft 社區論壇中提供了有關執行此操作的全面信息,更一般地,在Derek Molloy 的 Exploring Raspberry Pi: Interface to the Real World with Embedded Linux 1st Edition 中。對于任何有興趣超越使用 pi 的基礎知識的制造商來說,這都是一本令人難以置信的書。
我不會在這里詳細介紹,但這里有一些ssh提示:
- 在您的桌面/筆記本電腦上打開許多終端窗口
- 您可以將桌面上的文本剪切并粘貼到 nano 編輯器中
- 在您的 Mycroft 上下載并安裝feh以查看圖像
您可以在 feh 了解有關 feh 的更多信息- 一個快速輕便的圖像查看器。為了使用 feh 通過 ssh 查看圖像,請使用 -X 開關來打開 x windows 終端:
ssh -X
如果 x 終端窗口“超時”并且一段時間后不允許您查看,只需將其殺死并如上所述創建另一個 x 終端窗口。
將 PiCamera 添加到 Mycroft Mark I
Raspberry Pi 3 位于 Mycroft Mark 1 的核心,但 PiCamera 連接器沒有暴露,因此您必須做一些手術來連接 PiCamera。我從 adafruit 購買了 2 米長的 PiCamera 帶狀電纜來連接相機。就長度而言,這可能有點矯枉過正,但太短會更糟。
下面的一組圖片將對您有所幫助,但是正如您所見,PiCamera 功能區已經到位。這些照片是我事后拍的!但我認為你將能夠跟隨。
1. 第一步是取下腳墊。每個腳墊都隱藏著一顆螺絲。使用內六角扳手松開并取下它們。
??2. 打開后,您將看到樹莓派。不幸的是,必須從底層板上的柱子上取下 Pi,以露出 PiCamera 帶狀電纜連接器。
??3. Raspberry Pi 已從柱子上取下,帶狀電纜連接器暴露在外。
??4. 現在將帶狀電纜穿過機箱頂部的線性通風口。
??5. 設置的最后一部分是為相機配備一個漂亮的外殼。在thingiverse上有很多你可以選擇的。我已經嘗試了好幾次,到目前為止,我最喜歡的是migrassi 的PiCamera 2 Axis Rotating Holder,在下面可以看到它坐在 Mycroft 的頂部。我使用 GizmoDorks HIPS 3mm 在我的 lulzbot mini 上打印了它。支架和相機插槽需要一些打磨才能正確安裝。將相機插入插槽時要小心。當我打印它時,它很合身!
?手術成功,病人活了下來!?將相機連接并放置在其外殼中后,請確保將您的 pi 配置為使用相機:
sudo raspi-config
然后,您將獲得以下菜單并按下選項 5 接口選項。
??然后從那里選擇并按照提示進行操作。建議在此之后重新啟動。
??安裝 Clarifai
請在開始安裝 clarifai 之前通讀一遍!否則在重新啟動時,你會以僵尸 Mycroft 告終,深情地盯著你,但永遠是黃色的眼睛,但默默無聞!
安裝 clarifai python api 很簡單:
pip install clarifai
但是,這樣做會取消在 Mark 1 上運行的 Pillow 版本,并安裝名為 Pillow 的庫的 2.9.0 版本。因此,如果您在安裝 clarifai 后出于任何原因重新啟動 Mark I,Mycroft 將無法工作,但您仍然可以ssh進入它。快速查看/var/log/mycroft-skills.log可以看出:
Traceback (most recent call last): File "/usr/local/bin/mycroft-skills", line 9, in <module> from pkg_resources import load_entry_point File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3147, in <module> @_call_aside File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3131, in _call_aside f(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3160, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 668, in _build_master return cls._build_from_requirements(__requires__) File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 681, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 870, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pillow==4.1.1' distribution was not found and is required by mycroft-core
所以我們需要 4.1.1 版本的 Pillow,而不是 clarifai 安裝的 2.9.0!但不要只是 sudo pip install Pillow 因為這將安裝 Pillow 5.0.0 而 Mycrfot 將無法使用它。而是卸載 Pillow 并強制安裝 4.1.1 版本:
sudo pip install Pillow==4.1.1
但我們還沒有到那里!重新啟動后,我仍然得到了黃疸和沉默的治療!再次查看/var/log/mycroft-skills.log顯示:
Traceback (most recent call last): File "/usr/local/bin/mycroft-skills", line 9, in <module> from pkg_resources import load_entry_point ... pkg_resources.DistributionNotFound: The 'future==0.16.0' distribution was not found and is required by mycroft-core
所以我只是發出了以下命令,
sudo pip install future=0.16.0
閉上眼睛重新啟動!他還活著!最后一步是確保您授予對 Mycroft 的訪問權限以使用 PiCamera:
sudo usermod -a -G video mycroft
我不記得在我之前的 clarifai 和 mycroft 項目中必須經歷所有這些,所以一定有一些變化。經驗教訓:始終閱讀安裝消息,并在出現問題時始終查看 /var/log/mycroft-skills.log。現在樂趣可以開始了!
使用 Clariai
clarifai python api 易于使用。我建議在嘗試將其集成到技能中之前編寫一些測試腳本并嘗試一下。這將使您有機會熟悉它并解析它發回的 json 包。
此外,您可以調試大部分視覺功能,而不必在調試語音組件時擔心這一點。完成此操作后,將 clarifai 方面融入您的技能非常容易,想想“剪切和粘貼”。
clarifai文檔是必讀的,我有幾個項目也會對您有所幫助:
在這篇文章中,我將專注于創建和訓練自定義模型。繼續為您注冊免費的 clarifai 開發者帳戶,獲取您的 api 密鑰并創建一個應用程序!
創建、訓練和使用自定義模型
Clarifai 有許多現成可用的訓練模型,例如顏色、名人、旅行等等。然而,他們沒有“石頭剪刀布”模型。這就是定制模型發揮作用的地方。clarifai 文檔中詳細描述了創建自定義模型。我將在這里展示我如何應用該過程來創建我的“石頭剪刀布”模型。
定制模型流程:
- 添加帶有相關概念的圖像
- 創建模型
- 訓練模型
- 使用模型
我用作創建和訓練模型的實用程序的所有腳本的完整代碼都在我的 github 頁面上。
我在石頭、紙或剪刀的每個位置制作了手的圖像。這些是用 iPhone 拍攝的照片,我用我自己、我的妻子和兒子作為“手”模型。然后我制作了一個簡單粗暴的腳本,用我的概念而不是概念將這些圖像“上傳”到 clarifai。我分別加載每個圖像:
clarifai_app.inputs.create_image_from_filename(filename="rock1.jpg", concepts=['rock'], not_concepts=['paper','scissors'])
添加所有具有相關概念的圖像后,您必須創建模型。這非常簡單,只需要一行代碼。
model = clarifai_app.models.create('rockpaperscissors', concepts=['rock','paper','scissors'])
模型 id 只是您給它的名稱,在本例中為“rockpaperscissors”。您的圖像已加載,您的模型已制作完成。現在,您的模型將需要一些培訓才能正常工作:
from clarifai.rest import ClarifaiApp app = ClarifaiApp(api_key='YOU API KEY HERE') model = app.models.get('rockpaperscissors') model.train()
Clarifai 不僅返回概念,還將返回一個關聯值,該值表示 clarifai 對它所報告的概念在圖像中的信心程度。
當我在對初始圖像進行訓練后首次測試模型時,模型將所有東西都識別為具有高置信度值的巖石。所以你需要做一些后續培訓。我訓練了用 iPhone 拍攝的圖像,石頭、紙和剪刀各 10 個。現在我正在查看來自我辦公桌上 PiCamera 的圖像。
所以為了進一步訓練模型,我做了一個簡單的命令行菜單驅動腳本。我在 ssh 的 Mark I 命令行上運行它。我也可以將這個過程整合到 Mycroft 技能中。也許我會,但為了讓模型盡快訓練并運行,我去了 cli old school!
以下是顯示使用 testModel.py 腳本運行的輸出跟蹤。概念右側的值表示已在圖片中觀察到概念的置信度。
------------------------------ RPS - TEST MODEL MENU ------------------------------ 0. Exit 1. Take Test picture ------------------------------ Enter your choice [0-1] : 1 Taking a picture... scissors : 0.98923486 paper : 0.005966468 rock : 6.13205e-05 Enter your choice [0-1] : 1 Taking a picture... scissors : 0.9895846 paper : 0.0037088227 rock : 0.0001315531 Enter your choice [0-1] : 1 Taking a picture... paper : 0.95485735 scissors : 0.22752154 rock : 0.00014038719 Enter your choice [0-1] : 1 Taking a picture... paper : 0.89271563 scissors : 0.1276629 rock : 0.00030472572
使用這個腳本,我測試了 20 輪 RPS 的隨機序列。在本次訓練中,模型已經使用我的手在 63 張圖像(Rock 18、Paper 24、Scissors 21)上進行了訓練。我的模型 80% 正確。Clarifai 有一個模型瀏覽器,可讓您查看圖像、概念、標簽、值等。這是自定義模型的關鍵工具。
?Clarifai 模型瀏覽器視圖?通過查看這些圖像以及使用 testModel.py 腳本返回給我的值。我可以看到,我沒有在巖石圖像上訓練它足夠“手掌”,并且模型與巖石和紙張最“混淆”。所以我使用我的 trainModel.py 腳本用 5 個以上的巖石和圖像以及 4 個以上的紙質圖像來訓練模型。在此之后,使用相同的序列,clarfiai 定制模型得分 90%!現在我擔心這個模型正在學習我的手,所以我讓我兒子瀏覽了同樣的 20 張圖像。. .得分75%!懷疑得到證實。
使用這些知識,在未來,我將把模型訓練給更多的人,來自不同的人。此外,我并沒有真正正確使用返回的分數。返回的一些分數彼此非常接近。我們可以利用這一事實讓 Mycroft 要求再進行一輪,而不是回答錯誤或對沖并要求確認。我們還可以使用一種訓練機制,讓 mycroft 定期要求確認,尤其是在置信度值接近時。
借助慷慨的免費開發人員選項以及對圖像和操作的較大允許限制,我們可以輕松地改進這個模型。事實上,僅用 10 張圖片就可以看到模型從 80% 提高到 90%,這向我展示了我們可以多快將其打造為可靠且通用的模型。
技能
一旦我確信我的自定義 clarifai 模型運行良好,我就準備將其納入一項技能中。有關創建 Mycroft 技能的一般信息,請參閱。我將重點介紹我在這里找到的一些重要方面。
Mycroft 技能位于 /opt/mycroft/skills 文件夾中。此文件夾中的每個文件夾都代表一項技能。
??該技能的目錄結構比較簡單。主要操作發生在__init__.py文件中。在這里,我們創建技能并創建一個列表,以包含稍后在游戲和游戲邏輯中使用的單詞。
class RockPaperScissorsSkill(MycroftSkill): def __init__(self): super(RockPaperScissorsSkill, self).__init__(name="RockPaperScissorsSkill") self.gameChoices = ['rock','paper','scissors']
Mycroft 可以通過使用適應意圖解析器或 Padatious 來確定您想要運行的技能。Adapt 將.vocab文件中的關鍵字與話語中檢測到的詞(您在喚醒詞“Hey Mycroft”之后所說的)匹配。Padatious 使用神經網絡模式匹配方法將話語與.vocab文件中的句子進行比較。
我喜歡 Padatious 方法,因為它允許您對自然語言非常接近地建模話語。每種方法都有其優點和缺點,但對于自然發音短語的快速技能發展,我更喜歡 Padatious。它還沒有真正支持會話上下文,這是一個減號,但我認為這將在未來發生變化。
在初始化函數中,我們創建了 clarifai 應用程序并使用它來訪問我們之前創建的rockpaperscissors模型。創建您的 clarifai 帳戶和應用程序后,“api_key”對您來說是唯一的。我將它放在技能目錄的 settings.json 文件中以增加靈活性。
def initialize(self): self.load_data_files(dirname(__file__)) self.clarifai_app = ClarifaiApp(api_key=self.settings["api_key"]) self.rpsModel = self.clarifai_app.models.get('rockpaperscissors') self.register_intent_file('rps.intent',self.handle_rps)
一項技能可以根據所說的內容(識別的話語)執行許多任務。這些話語中的每一個都與一個處理程序配對。在這種情況下,只有一個處理程序def handle_rps()。您可以在這里看到 Mycroft 沒有作弊,他只是隨機選擇石頭、紙或剪刀,并且這個“選擇”保存在一個列表中。Mycroft 的選擇保存在索引 0 中。然后他提示玩家選擇。這可以通過對話文件來完成,然后您可以為開始提示添加一些變化,因為對話文件中的行將被隨機選擇。我只是在這里保持簡單,并使用了self.speak()函數。
def handle_rps(self,message): rpsRound = [] rpsRound.append(self.mycroftChoice()) self.speak("O K lets play") self.speak("rock paper scissors go") rpsRound.append(self.playerChoice()) self.speak("i chose " + rpsRound[0]) self.speak("you chose " + rpsRound[1]) self.gameLogic(rpsRound)
然后,Mycroft 將通過評估來自 clarifai 自定義模型的響應來確定玩家選擇了什么。
def playerChoice(self): self.take_picture() resp = self.rpsModel.predict_by_filename(self.settings["img_location"] + 'rps.jpg') return self.parseResponse(resp)
。
??
??
??
??
- 2023年人工智能產業概況及應用趨勢分析 6次下載
- 人工智能是干嘛的 人工智能在金融行業的應用 0次下載
- 什么是人工智能 人工智能應用領域 0次下載
- 人工智能專題報告:生成式人工智能產業全梳理 3次下載
- 用人工智能保護森林
- 神經形態視覺傳感器在人工智能的應用綜述 21次下載
- 智能系統的定義與識別:人造智能與人工智能資料下載
- 人工智能的倫理智能體應用及相關研究 7次下載
- 人工智能到底是什么?什么工作需要學習人工智能 17次下載
- 人工智能計算機視覺的詳細資料概述 9次下載
- 如何使用人工智能進行智能家居生態系統設計的研究分析 5次下載
- 人工智能及其產業發展如何?人工智能標準化白皮書(2018版)免費下載 0次下載
- 人工智能行業發展狀況如何?人工智能行業研究報告詳細資料免費下載 15次下載
- 電子書 中美人工智能行業生態比較 243次下載
- 人工智能之自動指紋識別 2018中國市場規模逼近4個億 12次下載
- 人工智能的語音識別技術詳解 681次閱讀
- 生成式人工智能和感知式人工智能的區別 1158次閱讀
- aigc是什么意思和人工智能有什么區別 9178次閱讀
- 人工智能給教育帶來哪些巨大好處 7937次閱讀
- 什么是人類智能 楊學山淺談通用人工智能的發展途徑 2900次閱讀
- 計算機視覺教學的內容有哪些? 3556次閱讀
- 關于未來人工智能和自動化的預測 3044次閱讀
- 蘋果將人工智能和面部識別系統應用于車頭燈 4715次閱讀
- 人工智能瞬間識別慢性疾病還有多遠? 1481次閱讀
- 關于人工智能領域最新的報告分析 4701次閱讀
- 中國人工智能創業領軍20人里_你認識幾個 9661次閱讀
- 人工智能如何發揮運動傳感器數據的協同作用 889次閱讀
- 人工智能需要哪些知識_人工智能需要學什么_如何自學人工智能 4.4w次閱讀
- IBM使用人工智能幫助他們預測有機化學反應的生成 4883次閱讀
- 人工智能是一把雙刃劍 1.1w次閱讀
下載排行
本周
- 1普中科技HC6800-EM3使用操作手冊
- 21.69 MB | 3次下載 | 2 積分
- 2PCB板EMC/EMI的設計技巧
- 0.20 MB | 3次下載 | 免費
- 3MSP430?閃存器件引導加載程序(BSL)
- 1.45MB | 2次下載 | 免費
- 4PL4807單節鋰離子電池充電器中文手冊
- 1.36 MB | 2次下載 | 免費
- 5JFG-AS02微量程扭矩傳感器數據表
- 0.32 MB | 1次下載 | 免費
- 6LTH7充電電路和鋰電池升壓5V輸出電路原理圖
- 0.04 MB | 1次下載 | 免費
- 7OPAx320x精密CMOS運算放大器
- 2.22MB | 1次下載 | 免費
- 8BQ77207EVM用戶指南
- 865.23KB | 1次下載 | 免費
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 154次下載 | 1 積分
- 2PCB布線和布局電路設計規則
- 0.40 MB | 35次下載 | 免費
- 3智能門鎖原理圖
- 0.39 MB | 13次下載 | 免費
- 4GB/T4706.1-2024 家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 11次下載 | 1 積分
- 5JESD79-5C_v1.30-2024 內存技術規范
- 2.71 MB | 10次下載 | 免費
- 6elmo直線電機驅動調試細則
- 4.76 MB | 9次下載 | 6 積分
- 7WIFI智能音箱原理圖完整版
- 0.09 MB | 7次下載 | 10 積分
- 8PC1013三合一快充數據線充電芯片介紹
- 1.03 MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183333次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73806次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多