Idea to Code

アイデアをコードへ
独学でプログラミング関係にいろいろ手を出すサイト

hawk

JavaScript

Clarifaiを利用した人工知能デモ その42017/09/06

Clarifaiを使って人工知能のデモを作ってみた。

iPhoneで解析を行えるように改良。

iPhoneのsafari, firefox, Chromeにて動作を確認。


【対象画像】

【解析結果】

clarifai-ai-4.js
var img_area = $("#img_area");
var img = $("<img>");
var field = $("#field");

var img_file;
var datas;

const app = new Clarifai.App({
  apiKey: 'f4e2e5ffe87c472883962a126db5401d'
});

function execute(file){
  app.models.predict({id: Clarifai.GENERAL_MODEL,language: 'ja'}, {base64: file}).then(
    function(response) {
      var output_obj = response;
      datas = output_obj.outputs[0].data.concepts;
      output_datas(datas);
    },
    function(err) {
      console.error(err);
    }
  );
}

function set_img(file){
  if(file === "no"){
    img.attr("src", "");
  }else{
    img.attr("src", file);
  }
}

function output_datas(d){
  var str = "";
  if(d !== "no"){
    if(d === "doing"){
      str = "処理中";
    }else{
      str = d[0].name;
      for(var i=1; i<d.length; i++){
        str += ", " + d[i].name;
      }
    }
  }
  field.text(str);
}

$("#input_tag").change(function(){
  set_img("no");
  output_datas("no");

  var fileList = this.files ;
  var fr = new FileReader();
  fr.onload = function(){
    set_img(fr.result);
    var bs = fr.result.slice(fr.result.search("base64") + 7);
    output_datas("doing");
    execute(bs);
  };
  fr.readAsDataURL(this.files[0]);
});

$("#input_tag").val("");
img_area.append(img);