※ 2018/02/22追記:記事へのリンクを追加しました
やっと期末テストが終わった人です。で、終わってすぐに何か始めようとしています。
突然ですが、2016/12からTwitterのTLから二次元画像だけを収集するようなシステム(ただのスクリプト)を組んで運用しています。
その名もTimeline Picture Tagging System、通称TPTSと呼ばれるものです。
このシステムによって現在約30万を超える画像が収集されています。正直こんなに要らない
そこから、このシステムを使ってWeb上で誰でもTwitterから二次元画像を収集出来るようにしたのがAni-Face Detector for Twitter、通称TPTS_webと呼ばれるものです。
このページのリンクはPCからこのブログを見てると出てくる上のメニューのサービス一覧にも載っているものです。
そして、去年の11月にOSC広島に参加し、そのときの学生ライトニングトーク大会でこのシステムに関する概要みたいなものを紹介しました。
その際に使用したスライドがこちらです。(URL入れただけでスライドが埋め込まれて驚いた)
www.slideshare.net
まあ、こういうことをしてる人なんだなっていう紹介にはなったと思ってます。
で、今回の本題になります。
実はですね、結構前からずっと言ってるんですけどTPTS(TPTS_webも含め)の更新を一切行わないことにしました。
というのも、同じプロジェクトをちょくちょく弄りながら1年以上続けてるのに何も進捗が生まれないんですよね。
ならばということで今度から機械学習関係の何かを始める際には新しいプロジェクトを1から立ち上げて、TPTSの拡張にならないようにしようと決めました。
まあ、そもそもTaggingとか言ってるくせにタグ付けも何もやってないのでこのまま放置してしまっていいのかって感じではあるのですが...
ただ、興味がある人が大学にちょこちょこ居たのでTPTSの組み方というか自分が得たノウハウを全部ブログに書こうと決意しました。
それが今回の「TwitterのTLから二次元画像だけ収集しよう!」シリーズです。
今回はイントロダクションということで今後どのような感じで行っていくのかを書いていきたいと思います。
というか、これを書かないとどのぐらいの人が読みたいのかも分からないし、自分が途中で放り出してしまいそうなんですよね。自分、結構飽きやすい性格なんで...
対象
とりあえず、OSはWindows10でいきます。10と言っていますが、おそらく7以降なら動かせると思います。32bit、64bit両方とも可です。
Linuxでも環境をきちんと作れば動きます。そもそも、Web版がUbuntu 16.04上で動いてるのですから動きますw
macOSがちょっと厳しいですね。途中で導入するライブラリのインストールに昔コケた覚えがあるので、そこを超えることが出来ればいけるかもしれません。
なのですが、Windows以外の人には途中悲しいことが起こります。先に謝っておきます。ごめんなさい。
言語はPythonを使うのですが、Windowsの場合はインストール不要です。Zipファイルで環境配布します。(ライセンス的な問題は軽く確認した感じだと大丈夫そう?)
Pythonを全く触ったことない人でも完成品のスクリプトをその都度配りますので、動かすだけっていうのももちろん大丈夫です。
ただ、確実に動作を理解したい人は基本的な文法を知ってもらったほうがいいです。まあ、当たり前だとは思いますけど...
何を目標とするのか
ずばり「TPTSクローンの作成」です。これを読めばTPTSと同じものが作れるというレベルで書きます。
Web版に関しては今回は触れません。というのも、Webの知識の話になってしまうので機械学習からどうしても離れてしますので...
ただ、知りたい人がいるみたいだったら最後に番外編として紹介したいと思います。
構成
本編は全部で大体6回ぐらいを目安に組んでいます。今回は0回目なのでこの回数には含まれていません。
本編とは別に番外編を用意しています。こちらは読まなくてもいいです。というか書くかどうかすら決まってませんw
流れとしては以下の感じになっています。
Pythonの環境構築、動作確認
↓
TLの画像をUserStreamを使って全部回収
↓
lbpcascade_animefaceを使って二次元画像判定
↓
画像の重複判定
↓
データベースに回収した画像の情報を保存
↓
dlibとTPTSで使用してるモデルを使って二次元画像判定
↓
(dlib向けのモデルの作成)
最後のモデル作成が番外編となっています。
皆さんに動かしてもらうために環境構築というベースから説明します。まあ、zipファイルなんで楽なんですけどね。
これを見て気づいた人がいると思うのですが、UserStreamを使います。そうです、消されるやつです。
ということでこのスクリプトは多分6月20日以降に動作しなくなります。記事は頑張って2月中に書き終わるようにします。
イントロダクションはこれぐらいで次回から実際に作っていきます。
この記事書くまでにスクリプトを全部用意してましたが、死にそうでした。自分のコードがいかにヤバいかを感じることが出来ましたね。
まあ、そんなやばいスクリプトを配るので覚悟しておいてね(?)
てか、TwiMemoの開発を進めないといけないのにどうするのさ...