non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

Tensorflowのclassify_image.pyをWebアプリ化した

こんばんは。最近は長男に続き、次男までもがスポーツカー好きになり、遊んでます。お台場のMOTOR SPORT JAPAN 2017に行ってきました。レーシングカーのデモ走行を観たりや、コックピットに乗せてもらったり、最初はレーシングカーのエンジン音の大きさで怖がっていた子供たちでしたが、楽しんでいたようです。自分もNSX実車の展示を見てすっかり気に入って予約した!っと書きたかった@kjunichiです。

classify_image.pyをWeb化した

先日の第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきたの記事で触れた、Tensorflowのチュートリアルにでてくる画像分類のサンプルコードのWeb化を体裁整えてGithubに上げた。

github.com

ビルド方法

python3 build.py

実行

python3 classify_image_web.py 

ブラウザで

http://localhost:8000/input

適当なJPEGファイルをドロップエリアにドロップ

f:id:kjw_junichi:20170416205525p:plain

関連記事

5年前の記事

node.jsの標準モジュールのdnsモジュールを使ってSPFレコードの登録状況を調べるツールを作った

おはようございます。動画大好きな我が家の長男、園から帰ってから見るのを禁止され、動画を見る為に早起きして観ています。@kjunichiです。

ドメインの列挙されたファイルを元にSPFレコードを調べるツールを作った

nodeの公式のAPIには、コールバック引数の説明にerrを取ることが、 DNS#resolveTxtメソッドに明確には書かれておらず、そこがハマった。

"use strict";

const fs = require('fs');
const dns=require('dns');

fs.readFile("./domain.txt","utf-8",(err,text)=>{
        const lines = text.split("\n");
        for(let line of lines) {
                //console.log(`[${line}]`);
                dns.resolveTxt(line,(err,info) => {
                        console.log(`${line}\t${info}`);
                });
        }

});

まとめ

DNSのTXTレコードを単にあげるだけになっているが、これで事足りたので、ひとまずよし。

手動だと、Web上のサイトにちまちまドメイン名を入力して確認してたので、このツールで一気に捌けた。

関連記事

ネットワークツールつながり

Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Nodeクックブック

Nodeクックブック

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

Blenderで初めてのアドオンを作るまで ~その1~

おはようございます。最近、保育園に子供たちをお迎えにいってから保育園を出るまでの時間がかかりすぎるのが不満ですが、すこし改善しつつあります。@kjunichiです。

背景

第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷) : ATNDにも参加して例年にも増してBlenderでなにかやろうという意気込みはある。

勉強会当日作ったコードをプラグイン化して、レンダリング画像をPOSTしてTensorflowで画像分類するサンプルを Webサービス化したURLに投げ、結果を表示するという一連の処理を実現しようとしている。

作りたいアドオン

URLを設定し、ボタンを押すとJPEG形式でレンダリングを行い、 結果を登録したURLにPOSTする。そして、そのPOSTの応答をBlenderの3DView上に表示する。

進捗

今回の進捗は、JPEG形式でレンダリングするところが実装できた。

勉強会当日は、この辺りを外部のライブラリでPNGファイルを経由してJPEGに変換していた。

import bpy

bpy.data.scenes["Scene"].render.filepath = '/tmp/kjunichi.jpg'
bpy.data.scenes["Scene"].render.image_settings.file_format='JPEG'
bpy.ops.render.render( write_still=True )

参考資料

関連記事

13年前の記事

12年前の記事

3年前の記事

2年前の記事