スポンサーリンク

「Pythonで画像処理のWebAPIを作る ~Falcon編~」を写経してみる

本当は、Kerasの学習結果を用いて、Flask-APIで

本当はKerasでFlask-APIを探しているのであるが、ググってもそのままコードをあげてくださっているページは見つけられなかったので、以下のページを試してみたい。

http://blog.apitore.com/2017/09/27/python-webapi-falcon/

できるかな?

(環境)
Windows 8.1
Anaconda 4.4.0
Python 3.6.1
Tensorflow 1.2.1
Keras 2.0.6

(1)下準備

Anaconda Prompt を開いて、以下を入力

pip install cython falcon gunicorn falcon-multipart

(2)C:/py/keras/VGG16/ に、 falcon_vgg16.py というファイルを作成して、以下の2つのサイトのコードをまぜまぜ。

Pythonで画像処理のWebAPIを作る ~Falcon編~
2017-09-27 BY KEIGO HATTORI
http://blog.apitore.com/2017/09/27/python-webapi-falcon/

2017-01-04
KerasでVGG16を使う
http://aidiary.hatenablog.com/entry/20170104/1483535144

以下のコードとなったが、動くのだろうか・・・

https://gist.github.com/adash333/14e36f356cedb7219ef7693893252185

(3)フロントエンドの作り方が分からないので、とりあえず、Winodowsでcurlを使えるように、以下のサイトを参考にしながら、cURLをダウンロードしてインストール。

http://techblo.hatenablog.com/entry/2015/08/06/214306

 

http://curl.haxx.se/download.html

の下の方へ行って、Windows用のファイルをダウンロードしてインストール

curl-7.53.1.zip

がダウンロードされるので、解凍して、、、ではうまくいかなかったので、以下のサイトから、ダウンロードして解凍。

https://winampplugins.co.uk/curl/

C:/software/curl フォルダを作成し、その中に、上記で解凍して出てきた2つのファイルをコピーする。

●環境変数のPATHに、C:/software/curl を登録。

C:\software\curl;

OK > OK

なんか、うまくいかないので、ユーザーとシステム両方の環境変数のPATHに設定した。

Windowsのコマンドプロンプトを開いて、

curl –help

(4)curlコマンドで、falconのAPIをたたいてみる

Windowsのコマンドプロンプト(フロントエンド側)を起動し、

$ curl -X POST http://127.0.0.1:5000/debug -H "Content-Type: multipart/form-data" -F "file=@elephant.jpg"

どきどき、、、がっくし

エラーなのだが、Anaconda Prompt(バックエンド側)を見てみると、エラー内容を見ることができる。

falcon_vgg16.py を編集

object of type 'float32’ is not JSON serializable

いろいろやったが、どうにもうまくいかない。

curl -X POST http://localhost:8000/debug -H “Content-Type: multipart/form-data" -F “file=@elephant.jpg"

elephantではなく、数字だが、一応、かえってきているっぽい

http://image-net.org/challenges/LSVRC/2014/browse-synsets

テキストの改行を削除する

https://www.benricho.org/moji_conv/remove_newline.html

' を、\’ に置換する。4か所

しかし、classes = [] にコピペすると、’が結局なんか変な感じだったが、これは、リスト[]の中の文字列に’ ' をつけていなかったからであった。

編集 > 置換 で、ごちゃごちゃする。

Anaconda Prompt (バックエンド)

python falcon_vgg16.py

コマンドプロンプト (フロントエンド)

curl -X POST http://localhost:8000/debug -H “Content-Type: multipart/form-data" -F file=@elephant.jpg"

なんかmushroomが出てきてしまったが、これはリストの順番が間違ってしまっているのであろう。あきらめる。

ソースコード

https://gist.github.com/adash333/14e36f356cedb7219ef7693893252185

次は、MNIST_MLPで、同じことをやってみたい。