
009.jpg
ml 表示 machine learning 也就是機器學(xué)習(xí),其實對機器學(xué)習(xí)理解有關(guān)多,內(nèi)在就是對數(shù)據(jù)進行分析,從中找到其 pattern (也就是規(guī)律),通過規(guī)律進行預(yù)測。
if(mouseX > 200){
RIGHT SIDE
}else{
LEFT SIDE
}
這是一個簡單例子,機器學(xué)習(xí)通過數(shù)據(jù)來找到也就輸出 mouseX > 200 規(guī)律。
<body>
<script src="node_modules/p5/lib/p5.js"></script>
<script src="node_modules/p5/lib/addons/p5.dom.js"></script>
<script src="https://unpkg.com/ml5@0.3.1/dist/ml5.min.js"></script>
<script src="app.js"></script>
</body>
首先需要安裝 p5js 依賴,然后 p5 繪制一個 canvas 作為我們演示的畫布
function setup(){
createCanvas(640,480);
background(0)
}
定義一個變量來圖片分類
let mobilenet;
定義圖片分類器模型,并且給他一個名稱
mobilenet = ml5.imageClassifier('MobileNet')
let mobilenet
console.log('hello')
function modelReady() {
console.log('Model Ready');
}
function setup(){
createCanvas(640,480);
background(0)
mobilenet = ml5.imageClassifier('MobileNet', modelReady);
}
let bear;
function modelReady() {
console.log('Model Ready');
}
function imageReady(){
image(bear,0,0,width,height);
}
function setup(){
createCanvas(640,480);
background(0)
bear = createImg('images/bear.jpg',imageReady)
bear.hide()
mobilenet = ml5.imageClassifier('MobileNet', modelReady);
}
上面代碼是開始下載圖片,初始化模型圖片是從 google 進行搜索的來訓(xùn)練模型,需要一定時間才能完成需要耐性等待一下。
首先我們利用 p5 的 api 將圖片繪制到 canvas 中顯示出了,有關(guān) p5 如何將圖片繪制到 canvas 不是今天重點,大家如果感興趣可以自己看一下。
function modelReady() {
console.log('Model Ready');
mobilenet.predict(bear,getResults)
}
function getResults(err,results){
console.log(results)
}
function imageReady(){
image(bear,0,0,width,height);
}
008.JPG
現(xiàn)在準備 Bear 圖片讓圖片識別器進行識別一張圖片讓他識別,識別結(jié)果會進行輸出,然后我們將第一個結(jié)果也就是概率最高的結(jié)果利用 canvas 輸出在圖片上。
mobilenet.predict(bear,getResults)
通過模型讀取圖片信息進行預(yù)判然后返回其預(yù)測的結(jié)果,這里是一個回調(diào)形式返回結(jié)果,返回參數(shù)格式類似 nodejs 的格式 第一個參數(shù)為 error 第二個參數(shù)為數(shù)據(jù)。
006.JPG
function modelReady() {
console.log('Model Ready');
mobilenet.predict(bear,getResults)
}
function getResults(err,results){
console.log(results)
let label = results[0].className;
fill(0)
textSize(64)
text(label,10,height - 100)
}
這里我們用 p5js 對圖片進行打標簽,輸出測試結(jié)果,準確率還不錯,可以做過一個應(yīng)用放在手機幫助小朋友自己識別他想看到的,并且學(xué)一下英文。
007.JPG