パイソンクエストⅣ
導かれしAPIたち
START
CONTINUE
プロローグ
シンギュラリティに乗り遅れるな!
2045年位にやってくると言われているシンギュラリティ。
人間とコンピュータの融合ってどんなんだろう?
見てみたい!それまでの間、できることは2つ。
・健康に留意し2045年まで生き残る
・人工知能の勉強をして時代についていく
お母さん、丈夫な体に産んでくれて
ありがとう。体は大丈夫そうです。
でも、頭は自分で鍛えないとね。
ビタミンC+柔軟体操だけじゃダメなんだよ!
一人時間差時間泥棒
というわけで勉強を始めたけどさっぱりわからない。
バックプロパゲーション、正則化、テンソル…?
何言ってんの? 無駄に時間だけが過ぎていく…。
タイムマシンがあったら、過去に戻って自分自身に
「超後悔するからとにかく勉強しとけ」と
小一時間説教したい…。
「微分とか社会人になって使うのかよ」
とか馬鹿なの? ねえ馬鹿なの?
言ってたよね、学生の頃の自分…。
急げ!慌てろ!なりふり構わずとにかくもがけ!
Python駿河
そもそもパイソンがよくわからない。
簡潔そうだけど見慣れぬ文法…。
一人で悶々としているのではなくて、
いろんな人と出会って、刺激を受け
てもっと積極的に勉強をしていきた
い…。
2019年4月からPython駿河に参加
素晴らしい仲間に恵まれ、もっと学習しようと前向きに
Learn.AI
NEDOの委託を受け、東京大学で学部
レベル教養開講。
2019年9月から受講。
あの東京大学で!しかも無料!
静岡からの交通費負担を遥かに上回る素晴らしさだよ
ところでお前、誰よ?
自己紹介
名前:しらい つかさ
生息:静岡県
技術:OOP慣れで逆にPythonに戸惑う
職種:中間管理職。研究・開発の立場ではない
…のにVB6レガシーメンテの呪いが解けない。
最近:DQウォークなんて時間のムダ、とか言いつつ
続けてしまう。こちらの呪いも解けない。
実力不足問題
PyCon JP 2019
日時:2019年9月14日~17日
場所:大田区産業プラザPio(蒲田)
Pythonユーザが集まり、Pythonや
Pythonを使ったソフトウェアについ
て情報交換、交流をするためのカン
ファレンス
Python駿河メンバーの紹介もあって行ってきました
家族旅行(キッザニア)との兼ね合いもあって半日のみ
特に印象的だったのは…
コーリー・アルソフ
(Cory Althoff)の基調講演
「Why Python is Eating
the World」と題した講演は、
若さにあふれた成功体験と
Pythonの将来への期待を述
べたものだった。
「独学プログラマー」を書いた人です
内容(超訳)
Pythonゴイスー
●参入しやすい
簡単、使い先がたくさん、稼げる、
フリーランス向け
●進化
成果物供給すごいわ
●コミュニティ
世界中にコミュニティあるし
ちなみにワイ、Pyhonのおかげでフ
リーランスで彼女と世界中飛び回っ
て、今はパロアルトでプール付きマ
ンションにオフィス構えてますわ。
ああ神様、このモヤモヤ感。
これを嫉妬というのですね。
https://youtu.be/Bcxz-jXMLZk
この中で気になったのが…
「AIで世界が変わるとかこの本
になんやかんや書いてあるし自
分ら読んでみ」(超訳)
ということでこの本を紹介して
いた。
なるほど、シンギュラリティへの備えには
こういう本も読まないといけないのだな
ということで原書を読んでみたのだが
んー… んもうっ
英語が…。英語が…。読むのに超時間がかかる…
自らのスペックの低さに絶望
能力が欠けているものは仕方ない、だがしかし
学習適性の違いが
戦力の決定的差でないことを教えてやるっ
視力が落ちたら眼鏡をかけるよ
うに、自分自身の外側で補完す
ればよいのでは?
そうだそうだ、面倒なことは全
てPythonにやらせようそうし
よう。
というわけで今回のミッション
とにかく見えてる英語を超簡単に訳すやつ
もうそのまんま。
日本語追っかけるのも面倒なの
で、要旨をまとめて3行半くら
いにしてほしいくらい。
でも今回はとりあえず簡単な翻
訳アプリを作ろうかと。
とにかく操作感もほんやくコンニャク的にシンプルにしたい
フローはこんな感じ
作業分類はこんなところで、いざ実装
映像データ化
映像データを
読み取り英文
テキスト化
英文テキストを
日本語翻訳
結果表示
写真をとります
パシャ
開発
Pythonista3
iPhoneで動くPython環境のアプリPythonista3
(以下、「Pythonista」という。)
AppStoreの認可がよくおりたな、というくらい
なんでもありのアプリケーション
1200円で買える!結構おすすめです。これを使います
カメラ機能の呼び出し
なんだか拍子抜けするくらいの簡単さ
pil_img=photos.capture_image()
Pythonistaでカメラ機能を使うには、何とこの1行でOK
モーダルでシャッターボタン付きのキャプチャ用画面が
起動する。
撮影ができれば変数pil_imgにバイナリが、キャンセルす
ればNone(事実上のnull)が格納される。
OCR化
今回はLearn.AIで御教示いただいた
Microsoft Computer Visonを利用し
た。
クラウドサービスに画像URLやバイ
ナリを送るだけでOCR結果をJSON
で返してくれる。
こんなサービスがあるなんて本当に驚き。全然知らなかった
https://azure.microsoft.com/ja-
jp/services/cognitive-
services/computer-vision/
使いすぎなきゃいいんだけどね
無料でも初期登録にクレジットカードの登録が必要。
正直ちょっと怖い。
使わなければお金はかからないんだけど。
本当はGoogle Cloud Vison documentationを使ったほう
が精度が上がるかもしれない、と思ったが、これ以上カー
ド情報をいろんなところに登録するのもなんなので、すで
に登録したMicrosoft Computer VisonのOCRを使うこと
にした。
カード情報入力が不安って自分だけか?
翻訳
NICT(国立研究開発法人情報通信
研究機構:「ニクト」じゃなくて
「エヌアイシーティー」だよ)の
「みんなの自動翻訳」という機能
が無料で提供されている。
Azureと同じ感じで使える。
こんなサービスがタダなんてすごすぎるNICT
https://mt-auto-minhon-
mlt.ucri.jgn-x.jp/
どこのAPIサイトもそうなんですが
使い方の説明がとっても丁寧。
いろんな言語からどう呼び出
すのかサンプルが提示される
ので、実質ユーザ登録→サン
プルコードをコピペ→固有パ
ラメータ変更、くらいで動い
てしまう。
便利な世の中になったものよのう
結果表示
PythonistaにはGUI機能
もある。
フォームにペタペタと部
品を貼り付けるだけでUI
ができるので、これで撮
影開始ボタンや結果表示
エリアを作成。
VisualStudioでWindowsFormアプリを作る感覚
Pythonista
実技術をフローに落とし込むとこんな感じ
作業分類はこんなところで、いざ実装
photos.capture
_image()で
イメージ化
Computer
Vision OCR
で英文抽出
NICT
みんなの自動翻訳
で日本語化
結果をUI表示
写真をとります
パシャ
環境拡張
Stash
Pythosista Shell のこと
NICT「みんなの自動翻訳」では
認証にOAuthを利用している。
Pythonistaには入っていないの
で、別にインストール(pip)する
必要がある。こんな時に使える
のが「Stash」
Stashインストール・起動方法
Pythonistaコンソールで以下のコマンドを実行
Stash上では普通にpipが使える
import requests as r;exec ( r.get
('http://bit.ly/get-stash').text)
完了するとRestartを促されるのでPythonistaを再起動
再起動後SCRIPTLIBLARY→ThisiPhone→launch_stash.pyを実行
Stashが起動する。
Oauthのセットアップ
Stash上で以下のコマンドを実行
そういわれればそうなんだけど、何でもありじゃない
pip install requests_oauthlib
requestsは既に入っているが、一応再セットアップしてみた。
ちなみにPythonistaの環境的制約もあって、何でもかんでも
インストールできるわけではない。
例えばCを呼び出しているnumpyはプリインストールのもの
のみでアップグレード不可、chainerとかも無理
完成
最終構成
こんなにシンプルな感じでできました
OCRTranslator.py
(各処理のドライバ)
photos
写真撮影用
既設ライブラリ
ocr.py
(CVOCR)
Translator.py
(翻訳)
OCRTranslato
r.pyui
(UI)
機能も超シンプル
カメラを起動して撮影するだけ
カメラ起動 写真撮影 結果出力
(ちょっと待つ)
ソースコードはここ
ニーズがあるかはわからんが
githubに貼り付けておきました
https://github.com/TsukasaShirai/OCRTranslator
何語か自動に判定して、任意の言語に翻訳するとかできそう。
本当はスカウターみたいに
実映像に重ね合わせて翻訳語
を次々と流すとかやってみた
かった。
できないことはないんだろう
けど、パケット代が結構行き
そうな気がする。
やろうと思えば
それよりなにより気になるのが…
冷凍庫っぽい
名前の人も
つけてたやつ
従課金制
連続解析だとComputerVisionでいくらかかるかわからな
いッ!無駄無駄無駄無駄無駄ッ!
で、落ち着いて考えてみれば
勉強しろよ
機械任せにしてる場合じゃないだろこういうふうに違う
方向に持ってくからいつも勉強に身が入らないんだよ
ちゃんとやってんのか最小二乗法とかLasso
とかRidgeとか実装できるようにしないと
置いてかれちゃうよシンギュラリティが
なんとかいって体だけじゃなくて頭も
鍛えないととか言ってなかったっけ?
というわけでこれからも勉強していきます…
Python Quest 4

Python Quest 4