turicreate 视频_人工智能图片分类器:turicreate在Windows环境下简明使用教程
近幾天筆者深入學習了下機器學習、深度學習,不論是谷歌圍棋AIAlphaGo、還是目前使用的阿里云智能語音合成,都非常吸引人。連續多天的理論學習后,總體而言,絕大多數教程都圍繞數學算法展開,而實際上我們的需求與算法之間,對新手而言還是非常不容易去匹配的。比如當下的簡單圖片分類模型。
0. 簡介
turicreate是蘋果開源的一款人工智能工具,特點是簡化了機器學習的開發模型,不必成為深度學習專家,就可以實現目標檢測、圖像分類、或與圖像分類相似的分類。缺點是不支持windows,在wsl2里數次安裝無果后,我直接寫了個Docker,然后拿來就用。
turicreate的簡單性,下面體驗過就知道,完全是無腦操作,不需要懂背后的一堆數學模型,是一個比較通用的分類工具。之前學習過一些Pytorch的基礎知識,在圖像分類面前,目前還比較困難,后續我會逐步學透。
項目開源地址:apple/turicreate
1. 分類模型基本原理
需求:采集圖像資源并進行人工處理,實現基本的分類操作,然后利用機器學習預測未知圖像。
以連連看游戲為例,想要設計一種自動消除的機器智能,首先要做的就是機器感知出正確的圖片,這樣才可以輸出二維矩陣,進行連連看消除算法。而圖片感知這塊,有一種理想狀態是:截取卡片內中心點,對比RGB信息,如果一樣則歸為一類;但實際上由于截圖不是非常精確或多點類似圖片的影響,這種理想狀態只適合比較單調色彩的識別上。
因此就有必要借助機器智能來分類了。
2. 實現步驟
A:數據收集和整理分類
turicreate的圖片分類非常好操作。在當前目錄創建data文件夾,里面放置按標簽名命名的圖片文件。每個文件夾對應一種分類,內部為具體的已標識的圖片。
B: 訓練數據
在Windows系統上,運行turicreate的docker版本,然后使用CMD或Vscode進入容器:
docker run -it --name tc -v C:\\Users\\baiyue\\Desktop\\Game自動化:/app baiyuetribe/turicreate
注意替換自己的windows目錄。
然后新建train.py。
import turicreate as tc
img_folder = 'data'
# 導入數據
data = tc.image_analysis.load_images(img_folder, with_path=True)
# 使用文件名來做標簽
data['label'] = data['path'].apply(lambda path: path.split('/')[len(path.split('/')) - 2])
data.save('doraemon-walle.sframe')
# 百分之八十的數據用于訓練,百分之二十用于測試
train_data, test_data = data.random_split(0.8, seed=2)
# 開始訓練模型
model = tc.image_classifier.create(train_data, target='label')
# 測試模型
predictions = model.predict(test_data)
metrics = model.evaluate(test_data)
# 輸出測試結果
print(metrics['accuracy'])
model.save('my_model_file')
上面代碼無需做任何處理,然后運行python train.py進行訓練,完成后會在當前目錄生成訓練結果my_model_file。
此步驟CPU是滿負載的,大概40s后出結果。
總分類數為28種,樣本有261個圖片,最終精度為1.基本夠勝任連連看的圖片識別了。
C: 預測數據
訓練完畢后,我們隨機截截取幾個新的圖片,命名為1,2,3.png,然后用剛才訓練的模型去預測。
當前目錄創建predict.py文件。
import turicreate as tc
loaded_model = tc.load_model('my_model_file')
def getDataset():
#data = tc.image_analysis.load_images('screenshot', with_path=True)
img_list = [str(i)+'.png' for i in range(1,4)]
result = []
for i in img_list:
data = tc.image_analysis.load_images(i, with_path=True) #圖片文件名
result_arr = loaded_model.predict(data)[0]
result.append(result_arr)
return result
with open('result.txt','w',encoding='utf-8') as f:
data = getDataset()
print(data)
f.write(str(getDataset()))
運行python predict.py后,輸出預測結果為:['4', '18', '24'].
對比分類圖,可見預測結果是非常準確的。
3. 遺留問題
由于不支持Windows,我采用了自制Docker,使用體驗上非常好,但是與windows本地交互不方便,比如本地環境下ps.system('docker exec -it tc python /app/train.py')命令就無法正常執行,subprocess也是一樣,因此這里就出現了連接阻斷。這樣的話本地桌面截圖就無法調用Docker容器內部的機器模型去識別了。針對這種情況,可以嘗試做一個webapi接口,利用url請求傳遞待檢測的圖片,容器內部處理后把結果返回過來,就可以解決這種阻斷。 事實上這是非常容易實現的方式,畢竟絕大數人工智能,最后都是以API接口的形式對外開放。
佰閱部落 , 版權所有丨如未注明 , 均為原創丨本網站采用BY-NC-SA協議進行授權
轉載請注明原文鏈接:人工智能圖片分類器:turicreate在Windows環境下簡明使用教程
總結
以上是生活随笔為你收集整理的turicreate 视频_人工智能图片分类器:turicreate在Windows环境下简明使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visio2013发生2503错误
- 下一篇: SMPL模型进阶