資料介紹
描述
介紹
我最近在 startuphuscle.xyz 上聽到了Mycroft.ai的首席執(zhí)行官 Joshua Montgomery討論他的公司為將開源替代語音助手推向市場所做的努力。無論您擁有一張圖像還是數(shù)十億張圖像,距離使用人工智能識別您的視覺內(nèi)容僅幾步之遙。
預(yù)測類型取決于您運(yùn)行輸入的模型。AI 已卸載到云中的 clarifai 服務(wù)器。基本上,您向 clarifai 發(fā)送一張圖片,然后 clarifai 將在該圖片中找到的一組標(biāo)簽/單詞/概念發(fā)回給您。?
Clarifai 提供的 api 是幾種不同的語言,其中一種是 python。這使其非常適合與 Mycroft 技能一起使用,因?yàn)樗鼈円彩怯?python 編寫的。有一個非常慷慨的開發(fā)人員選項,無需任何費(fèi)用即可使用,讓您可以訪問 clarifai 的標(biāo)準(zhǔn)模型以及創(chuàng)建和訓(xùn)練自己的模型的能力。
如果你想開始破解計算機(jī)視覺/機(jī)器學(xué)習(xí)項目,你真的應(yīng)該考慮 clarifai。
使用 Mycroft Mark I
Mycroft Mark I 是一個“嵌入式”Linux 應(yīng)用程序,在無頭模式下運(yùn)行在 Raspberry Pi 上。無頭意味著您必須將顯示器和鍵盤連接到 Mark I,或者最好使用ssh從計算機(jī)登錄您的 Mark I。在 Mycroft 社區(qū)論壇中提供了有關(guān)執(zhí)行此操作的全面信息,更一般地,在Derek Molloy 的 Exploring Raspberry Pi: Interface to the Real World with Embedded Linux 1st Edition 中。對于任何有興趣超越使用 pi 的基礎(chǔ)知識的制造商來說,這都是一本令人難以置信的書。
我不會在這里詳細(xì)介紹,但這里有一些ssh提示:
- 在您的桌面/筆記本電腦上打開許多終端窗口
- 您可以將桌面上的文本剪切并粘貼到 nano 編輯器中
- 在您的 Mycroft 上下載并安裝feh以查看圖像
您可以在 feh 了解有關(guān) feh 的更多信息- 一個快速輕便的圖像查看器。為了使用 feh 通過 ssh 查看圖像,請使用 -X 開關(guān)來打開 x windows 終端:
ssh -X
如果 x 終端窗口“超時”并且一段時間后不允許您查看,只需將其殺死并如上所述創(chuàng)建另一個 x 終端窗口。
將 PiCamera 添加到 Mycroft Mark I
Raspberry Pi 3 位于 Mycroft Mark 1 的核心,但 PiCamera 連接器沒有暴露,因此您必須做一些手術(shù)來連接 PiCamera。我從 adafruit 購買了 2 米長的 PiCamera 帶狀電纜來連接相機(jī)。就長度而言,這可能有點(diǎn)矯枉過正,但太短會更糟。
下面的一組圖片將對您有所幫助,但是正如您所見,PiCamera 功能區(qū)已經(jīng)到位。這些照片是我事后拍的!但我認(rèn)為你將能夠跟隨。
1. 第一步是取下腳墊。每個腳墊都隱藏著一顆螺絲。使用內(nèi)六角扳手松開并取下它們。
??2. 打開后,您將看到樹莓派。不幸的是,必須從底層板上的柱子上取下 Pi,以露出 PiCamera 帶狀電纜連接器。
??3. Raspberry Pi 已從柱子上取下,帶狀電纜連接器暴露在外。
??4. 現(xiàn)在將帶狀電纜穿過機(jī)箱頂部的線性通風(fēng)口。
??5. 設(shè)置的最后一部分是為相機(jī)配備一個漂亮的外殼。在thingiverse上有很多你可以選擇的。我已經(jīng)嘗試了好幾次,到目前為止,我最喜歡的是migrassi 的PiCamera 2 Axis Rotating Holder,在下面可以看到它坐在 Mycroft 的頂部。我使用 GizmoDorks HIPS 3mm 在我的 lulzbot mini 上打印了它。支架和相機(jī)插槽需要一些打磨才能正確安裝。將相機(jī)插入插槽時要小心。當(dāng)我打印它時,它很合身!
?手術(shù)成功,病人活了下來!?將相機(jī)連接并放置在其外殼中后,請確保將您的 pi 配置為使用相機(jī):
sudo raspi-config
然后,您將獲得以下菜單并按下選項 5 接口選項。
??然后從那里選擇并按照提示進(jìn)行操作。建議在此之后重新啟動。
??安裝 Clarifai
請在開始安裝 clarifai 之前通讀一遍!否則在重新啟動時,你會以僵尸 Mycroft 告終,深情地盯著你,但永遠(yuǎn)是黃色的眼睛,但默默無聞!
安裝 clarifai python api 很簡單:
pip install clarifai
但是,這樣做會取消在 Mark 1 上運(yùn)行的 Pillow 版本,并安裝名為 Pillow 的庫的 2.9.0 版本。因此,如果您在安裝 clarifai 后出于任何原因重新啟動 Mark I,Mycroft 將無法工作,但您仍然可以ssh進(jìn)入它。快速查看/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 因?yàn)檫@將安裝 Pillow 5.0.0 而 Mycrfot 將無法使用它。而是卸載 Pillow 并強(qiáng)制安裝 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
所以我只是發(fā)出了以下命令,
sudo pip install future=0.16.0
閉上眼睛重新啟動!他還活著!最后一步是確保您授予對 Mycroft 的訪問權(quán)限以使用 PiCamera:
sudo usermod -a -G video mycroft
我不記得在我之前的 clarifai 和 mycroft 項目中必須經(jīng)歷所有這些,所以一定有一些變化。經(jīng)驗(yàn)教訓(xùn):始終閱讀安裝消息,并在出現(xiàn)問題時始終查看 /var/log/mycroft-skills.log。現(xiàn)在樂趣可以開始了!
使用 Clariai
clarifai python api 易于使用。我建議在嘗試將其集成到技能中之前編寫一些測試腳本并嘗試一下。這將使您有機(jī)會熟悉它并解析它發(fā)回的 json 包。
此外,您可以調(diào)試大部分視覺功能,而不必在調(diào)試語音組件時擔(dān)心這一點(diǎn)。完成此操作后,將 clarifai 方面融入您的技能非常容易,想想“剪切和粘貼”。
clarifai文檔是必讀的,我有幾個項目也會對您有所幫助:
在這篇文章中,我將專注于創(chuàng)建和訓(xùn)練自定義模型。繼續(xù)為您注冊免費(fèi)的 clarifai 開發(fā)者帳戶,獲取您的 api 密鑰并創(chuàng)建一個應(yīng)用程序!
創(chuàng)建、訓(xùn)練和使用自定義模型
Clarifai 有許多現(xiàn)成可用的訓(xùn)練模型,例如顏色、名人、旅行等等。然而,他們沒有“石頭剪刀布”模型。這就是定制模型發(fā)揮作用的地方。clarifai 文檔中詳細(xì)描述了創(chuàng)建自定義模型。我將在這里展示我如何應(yīng)用該過程來創(chuàng)建我的“石頭剪刀布”模型。
定制模型流程:
- 添加帶有相關(guān)概念的圖像
- 創(chuàng)建模型
- 訓(xùn)練模型
- 使用模型
我用作創(chuàng)建和訓(xùn)練模型的實(shí)用程序的所有腳本的完整代碼都在我的 github 頁面上。
我在石頭、紙或剪刀的每個位置制作了手的圖像。這些是用 iPhone 拍攝的照片,我用我自己、我的妻子和兒子作為“手”模型。然后我制作了一個簡單粗暴的腳本,用我的概念而不是概念將這些圖像“上傳”到 clarifai。我分別加載每個圖像:
clarifai_app.inputs.create_image_from_filename(filename="rock1.jpg", concepts=['rock'], not_concepts=['paper','scissors'])
添加所有具有相關(guān)概念的圖像后,您必須創(chuàng)建模型。這非常簡單,只需要一行代碼。
model = clarifai_app.models.create('rockpaperscissors', concepts=['rock','paper','scissors'])
模型 id 只是您給它的名稱,在本例中為“rockpaperscissors”。您的圖像已加載,您的模型已制作完成。現(xiàn)在,您的模型將需要一些培訓(xùn)才能正常工作:
from clarifai.rest import ClarifaiApp app = ClarifaiApp(api_key='YOU API KEY HERE') model = app.models.get('rockpaperscissors') model.train()
Clarifai 不僅返回概念,還將返回一個關(guān)聯(lián)值,該值表示 clarifai 對它所報告的概念在圖像中的信心程度。
當(dāng)我在對初始圖像進(jìn)行訓(xùn)練后首次測試模型時,模型將所有東西都識別為具有高置信度值的巖石。所以你需要做一些后續(xù)培訓(xùn)。我訓(xùn)練了用 iPhone 拍攝的圖像,石頭、紙和剪刀各 10 個。現(xiàn)在我正在查看來自我辦公桌上 PiCamera 的圖像。
所以為了進(jìn)一步訓(xùn)練模型,我做了一個簡單的命令行菜單驅(qū)動腳本。我在 ssh 的 Mark I 命令行上運(yùn)行它。我也可以將這個過程整合到 Mycroft 技能中。也許我會,但為了讓模型盡快訓(xùn)練并運(yùn)行,我去了 cli old school!
以下是顯示使用 testModel.py 腳本運(yùn)行的輸出跟蹤。概念右側(cè)的值表示已在圖片中觀察到概念的置信度。
------------------------------ 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 的隨機(jī)序列。在本次訓(xùn)練中,模型已經(jīng)使用我的手在 63 張圖像(Rock 18、Paper 24、Scissors 21)上進(jìn)行了訓(xùn)練。我的模型 80% 正確。Clarifai 有一個模型瀏覽器,可讓您查看圖像、概念、標(biāo)簽、值等。這是自定義模型的關(guān)鍵工具。
?Clarifai 模型瀏覽器視圖?通過查看這些圖像以及使用 testModel.py 腳本返回給我的值。我可以看到,我沒有在巖石圖像上訓(xùn)練它足夠“手掌”,并且模型與巖石和紙張最“混淆”。所以我使用我的 trainModel.py 腳本用 5 個以上的巖石和圖像以及 4 個以上的紙質(zhì)圖像來訓(xùn)練模型。在此之后,使用相同的序列,clarfiai 定制模型得分 90%!現(xiàn)在我擔(dān)心這個模型正在學(xué)習(xí)我的手,所以我讓我兒子瀏覽了同樣的 20 張圖像。. .得分75%!懷疑得到證實(shí)。
使用這些知識,在未來,我將把模型訓(xùn)練給更多的人,來自不同的人。此外,我并沒有真正正確使用返回的分?jǐn)?shù)。返回的一些分?jǐn)?shù)彼此非常接近。我們可以利用這一事實(shí)讓 Mycroft 要求再進(jìn)行一輪,而不是回答錯誤或?qū)_并要求確認(rèn)。我們還可以使用一種訓(xùn)練機(jī)制,讓 mycroft 定期要求確認(rèn),尤其是在置信度值接近時。
借助慷慨的免費(fèi)開發(fā)人員選項以及對圖像和操作的較大允許限制,我們可以輕松地改進(jìn)這個模型。事實(shí)上,僅用 10 張圖片就可以看到模型從 80% 提高到 90%,這向我展示了我們可以多快將其打造為可靠且通用的模型。
技能
一旦我確信我的自定義 clarifai 模型運(yùn)行良好,我就準(zhǔn)備將其納入一項技能中。有關(guān)創(chuàng)建 Mycroft 技能的一般信息,請參閱。我將重點(diǎn)介紹我在這里找到的一些重要方面。
Mycroft 技能位于 /opt/mycroft/skills 文件夾中。此文件夾中的每個文件夾都代表一項技能。
??該技能的目錄結(jié)構(gòu)比較簡單。主要操作發(fā)生在__init__.py文件中。在這里,我們創(chuàng)建技能并創(chuàng)建一個列表,以包含稍后在游戲和游戲邏輯中使用的單詞。
class RockPaperScissorsSkill(MycroftSkill): def __init__(self): super(RockPaperScissorsSkill, self).__init__(name="RockPaperScissorsSkill") self.gameChoices = ['rock','paper','scissors']
Mycroft 可以通過使用適應(yīng)意圖解析器或 Padatious 來確定您想要運(yùn)行的技能。Adapt 將.vocab文件中的關(guān)鍵字與話語中檢測到的詞(您在喚醒詞“Hey Mycroft”之后所說的)匹配。Padatious 使用神經(jīng)網(wǎng)絡(luò)模式匹配方法將話語與.vocab文件中的句子進(jìn)行比較。
我喜歡 Padatious 方法,因?yàn)樗试S您對自然語言非常接近地建模話語。每種方法都有其優(yōu)點(diǎn)和缺點(diǎn),但對于自然發(fā)音短語的快速技能發(fā)展,我更喜歡 Padatious。它還沒有真正支持會話上下文,這是一個減號,但我認(rèn)為這將在未來發(fā)生變化。
在初始化函數(shù)中,我們創(chuàng)建了 clarifai 應(yīng)用程序并使用它來訪問我們之前創(chuàng)建的rockpaperscissors模型。創(chuàng)建您的 clarifai 帳戶和應(yīng)用程序后,“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)
一項技能可以根據(jù)所說的內(nèi)容(識別的話語)執(zhí)行許多任務(wù)。這些話語中的每一個都與一個處理程序配對。在這種情況下,只有一個處理程序def handle_rps()。您可以在這里看到 Mycroft 沒有作弊,他只是隨機(jī)選擇石頭、紙或剪刀,并且這個“選擇”保存在一個列表中。Mycroft 的選擇保存在索引 0 中。然后他提示玩家選擇。這可以通過對話文件來完成,然后您可以為開始提示添加一些變化,因?yàn)閷υ捨募械男袑⒈浑S機(jī)選擇。我只是在這里保持簡單,并使用了self.speak()函數(shù)。
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 自定義模型的響應(yīng)來確定玩家選擇了什么。
def playerChoice(self): self.take_picture() resp = self.rpsModel.predict_by_filename(self.settings["img_location"] + 'rps.jpg') return self.parseResponse(resp)
。
??
??
??
??
- 2023年人工智能產(chǎn)業(yè)概況及應(yīng)用趨勢分析 8次下載
- 人工智能是干嘛的 人工智能在金融行業(yè)的應(yīng)用 0次下載
- 什么是人工智能 人工智能應(yīng)用領(lǐng)域 0次下載
- 人工智能專題報告:生成式人工智能產(chǎn)業(yè)全梳理 3次下載
- 用人工智能保護(hù)森林
- 神經(jīng)形態(tài)視覺傳感器在人工智能的應(yīng)用綜述 21次下載
- 智能系統(tǒng)的定義與識別:人造智能與人工智能資料下載
- 人工智能的倫理智能體應(yīng)用及相關(guān)研究 7次下載
- 人工智能到底是什么?什么工作需要學(xué)習(xí)人工智能 17次下載
- 人工智能計算機(jī)視覺的詳細(xì)資料概述 9次下載
- 如何使用人工智能進(jìn)行智能家居生態(tài)系統(tǒng)設(shè)計的研究分析 5次下載
- 人工智能及其產(chǎn)業(yè)發(fā)展如何?人工智能標(biāo)準(zhǔn)化白皮書(2018版)免費(fèi)下載 0次下載
- 人工智能行業(yè)發(fā)展?fàn)顩r如何?人工智能行業(yè)研究報告詳細(xì)資料免費(fèi)下載 15次下載
- 電子書 中美人工智能行業(yè)生態(tài)比較 243次下載
- 人工智能之自動指紋識別 2018中國市場規(guī)模逼近4個億 12次下載
- 人工智能的語音識別技術(shù)詳解 1431次閱讀
- 生成式人工智能和感知式人工智能的區(qū)別 1922次閱讀
- aigc是什么意思和人工智能有什么區(qū)別 1w次閱讀
- 人工智能給教育帶來哪些巨大好處 8647次閱讀
- 什么是人類智能 楊學(xué)山淺談通用人工智能的發(fā)展途徑 3029次閱讀
- 計算機(jī)視覺教學(xué)的內(nèi)容有哪些? 3686次閱讀
- 關(guān)于未來人工智能和自動化的預(yù)測 3116次閱讀
- 蘋果將人工智能和面部識別系統(tǒng)應(yīng)用于車頭燈 4813次閱讀
- 人工智能瞬間識別慢性疾病還有多遠(yuǎn)? 1530次閱讀
- 關(guān)于人工智能領(lǐng)域最新的報告分析 4836次閱讀
- 中國人工智能創(chuàng)業(yè)領(lǐng)軍20人里_你認(rèn)識幾個 9960次閱讀
- 人工智能如何發(fā)揮運(yùn)動傳感器數(shù)據(jù)的協(xié)同作用 940次閱讀
- 人工智能需要哪些知識_人工智能需要學(xué)什么_如何自學(xué)人工智能 4.4w次閱讀
- IBM使用人工智能幫助他們預(yù)測有機(jī)化學(xué)反應(yīng)的生成 5040次閱讀
- 人工智能是一把雙刃劍 1.1w次閱讀
下載排行
本周
- 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元宇宙底層硬件系列報告
- 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è)計實(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è)計》 溫德爾著
- 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)
評論