エクステンション

LookExtension

機械学習を使って画像を分類するエクステンションです。機械学習モデルをアンドロイドデバイス上に持つのでネットワーク接続がない環境でも動きます。MITオリジナルのLookExtensionは動かないアンドロイドデバイスがありますが、日本語化プロジェクトでハックしたバージョンは推論速度は遅くなるものの、こういったアンドロイドデバイスでも動くようになっています。ここからダウンロードしてください

オリジナルのLookExtensionからの変更点とその理由

LookExtensiomは機械学習用ソフトウェアのTensorFlowのJavaScript版であるTensorFlow.jsを使っています。TensorFlow.jsは推論を行うBackendモジュールとしてデフォルトでWebGL2(GPU使用)を使用しますがすべてのアンドロイドデバイスがWebGL2をサポートしているわけでは無いのでWebGL2をサポートしていないデバイスでは実行時にエラーが発生します。そこでWebGL2をサポートしないデバイスではWebGL2を使わずにCPUを使うように変更しました。変更ファイルはassests/look.jsのみです。以下の+行を追加します。

let mobilenet;

+ var supportsWebGL2 = ( function () {
+   try {
+     return !! window.WebGLRenderingContext && !! document.createElement( 'canvas' ).getContext( 'webgl2' );
+   } catch( e ) {
+     return false;
+   }
+ } )();

const mobilenetDemo = async () => {
+   if(supportsWebGL2){
+     console.log("WebGL2 is supported");
+   }else{
+     console.log("WebGL2 is not supported");
+     tf.setBackend('cpu');
+   }