Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9003

Teachable Machineで学習したデータをNode.jsでシンプルに利用する

$
0
0

いい感じのサンプルがなかった

node-redenebularとはTeachable Machineの連携が結構あったり、フロントエンド側ばかりたったので、Node.jsで画像ファイルを読み込んで判定するシンプルな実装をメモ

https://www.npmjs.com/package/@teachablemachine/image
ここもやはりフロントエンドのサンプルしかなくて…

https://www.tensorflow.org/js
tensorflowをそのまま利用しようとも考えたけど、もっとTeachableMachineに特化して使いやすくできるのでは…

インストールしたもの

  • @teachablemachine/image: 0.8.4
  • @tensorflow/tfjs: 2.1.0
  • canvas: 2.6.1
  • jsdom: 16.4.0
npm i @teachablemachine/image @tensorflow/tfjs canvas jsdom

ソースコード

const{JSDOM}=require('jsdom');vardom=newJSDOM('');global.document=dom.window.document;global.HTMLVideoElement=dom.window.HTMLVideoElement;constcanvas=require('canvas');global.fetch=require('node-fetch');consttmImage=require('@teachablemachine/image');constfs=require('fs');// https://teachablemachine.withgoogle.com/// ここでエクスポート、クラウドにモデルをアップロードした後に取得できるconstURL='{{URL}}';asyncfunctioninit(){constmodelURL=URL+'model.json';constmetadataURL=URL+'metadata.json';// モデルデータのロードconstmodel=awaittmImage.load(modelURL,metadataURL);// クラスのリストを取得constclasses=model.getClassLabels();console.log(classes);// 同じフォルダ内の画像を読み込む 今回は自分の顔画像constimage=fs.readFileSync('ono.png');// 読み込んだ画像で判定してみるconstpredictions=awaitmodel.predict(image);console.log(predictions);}init();

実際実装してみたらフロントエンド前提のものでちょっとスマートじゃない。
もしかしたらアップデート待ちでいいのかも

出力結果

Image from Gyazo

「おの」は自分の顔

一応成功しました!


Viewing all articles
Browse latest Browse all 9003

Trending Articles