Tensorflowのclassify_image.pyをWebアプリ化した
こんばんは。最近は長男に続き、次男までもがスポーツカー好きになり、遊んでます。お台場のMOTOR SPORT JAPAN 2017に行ってきました。レーシングカーのデモ走行を観たりや、コックピットに乗せてもらったり、最初はレーシングカーのエンジン音の大きさで怖がっていた子供たちでしたが、楽しんでいたようです。自分もNSXの実車の展示を見てすっかり気に入って予約した!っと書きたかった@kjunichiです。
classify_image.pyをWeb化した
先日の第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきたの記事で触れた、Tensorflowのチュートリアルにでてくる画像分類のサンプルコードのWeb化を体裁整えてGithubに上げた。
ビルド方法
python3 build.py
実行
python3 classify_image_web.py
ブラウザで
http://localhost:8000/input
適当なJPEGファイルをドロップエリアにドロップ
関連記事
- Tensorflowのclassify_image.pyにElectronでGUIを被せてみた
- Blenderで初めてのアドオンを作るまで ~その2~
- シェルスクリプトのかわりにPythonでマルチプラットフォームで動かそうとして学んだこと
- pytorchによるcycleGANの実装をWindowsで動かした
- Raspberry Pi3でTensorflowをビルドして動かした
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上のサイトにちまちまドメイン名を入力して確認してたので、このツールで一気に捌けた。
なんか切羽詰まって作業する際、すっかりPerlからNode.jsになってるなぁ、今日もnode.jsに助けられた。
— kjunichi (@kjunichi) 2017年4月14日
関連記事
- WindowsだけでAmazon DashボタンのMACアドレスを取得できるjsを書いた
- node.jsで大きな数を扱う
- Node.jsのサンプルコードをコマンド化する
- 過去4月にブログ記事が無かった日を挙げる
- Node.jsでターミナル.appにアメッシュを表示させてみた
ネットワークツールつながり
- 作者: Mario Casciaro,Luciano Mammino,武舎広幸,阿部和也
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/05/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: David Mark Clements,和田祐一郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/02/23
- メディア: 大型本
- 購入: 2人 クリック: 4回
- この商品を含むブログ (5件) を見る
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
- 作者: Ethan Brown,武舎広幸,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/01/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
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 )
参考資料
- Pythonスクリプトでレンダリングを制御 | 音ノ木坂建築研究会
- python - How to change file_extension internally in Blender 2.65 - Stack Overflow
関連記事
- Blenderで初めてのアドオンを作るまで ~その2~
- 第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきた
- BlenderでPython使って最速降下曲線を描いてみる
- OSXのBlenderでctypesを試した
- BlenderでエクスポートしたJSONがThree.jsで変な色になる問題が解決
- 過去4月にブログ記事が無かった日を挙げる