TonamiLog

ゆるキャン△とスノーボードとオタク

DL4US 3週目完

トナミです。

 

DL4USの3週目が終わり、4週目が始まりました。

簡単に感想だけ書こうと思います

 

 

ちょっと難しい内容でした……。やる気はあったんですが時間がうまく作れず、最終的にはまた普通な提出で終わりました。トホホ

Slackに飛び交う情報を眺めていると、どうやら精度を高めるにはこういう考え方をするようだ……というのがまとまりつつあるので、現時点で有効っぽいものを自分用ライブラリ化しておこうかなと思いました。

 

4週目はちゃんと時間を取るようにしたので頑張りたいです。毎週頑張りたいって言ってますね……頑張りましょう。

 

おわり

 

DL4US 2週目完

トナミです。

 

DL4USの2週目が終わり、3週目が始まりました。

簡単に感想だけ書こうと思います

 

 

依然として参加者の意識は高いように思いますが、課題の提出物のスコアが全体的に下がった印象です。

恐らく課題が難しくなった事が原因で、先週出た課題は講義内容のみでチャレンジするとかなりのハードルになってしまう内容でした。そのため、上位陣はそれぞれ自分で調査・検証した内容を用いてモデルを構築しているように思います。自分は上位ではないですが、やはり適宜調べて色々なモデルを試しました。最終的にDataAugumentation無し(やりたかったけど時間が取れず……)になってしまったのですが、スコアは真ん中より上ぐらいで、こんなもんかという感じです。先週よりは良かったです。

あとはまあ、提出総数も減っているため、思ったよりやる気が続かなかった人とか、忙しかった人がいたのかな?とも思います。このへんは仕方ないですね。

 

課題には目標スコアがあるんですが、先週も今週も満たせていません。そもそも高めの目標が設定されているようなので、強く恥ずべきという感じはしないのですが、せっかくなので目標スコアを達成出来るよう頑張ってみたいです。やっていきましょう

 

おわり

 

DL4US 1週目完

トナミです。

 

DL4USの1週目が終わり、2週目が始まりました。

内容について言及せず、簡単に感想だけ書こうと思います

 

 

参加者の意識が非常に高いです。みなさん課題に対して積極的で、かつ各自が真剣に調査した結果高いスコアを出していくような印象です。まだそれぞれ様子見をしているような気もしますが、discussionも少しずつ活発になってきていて凄いです。負けないように頑張らないとなーと思います。

仕事が忙しかったのと自分用アプリのソース書いたりしててフルコミットな対応は出来なかったのですが、途中まではまあ悪くはない。ぐらいの出来で宿題を仕上げてたのに、気付いたらクラス内で最下位レベルの結果になってしまって悔しいです。油断せず頑張らないといけないですね……。がんばります。

google cloud vision apiと性癖の話をしよう

トナミです。


ぼかして書くのが面倒になったので最初から全開でいきますが、最近各種媒体を用いてエロ画像を集める事に執心してます。

画像を蒐集する手段は出来つつあるのですが、集めた画像を適切にラベル付け、フォルダ分けするのが面倒くさいです。

ところで、この世にはGoogleのやっているCloud Vision APIというサービスがあります。画像を投げると分析情報を返してくれるAPIです。機械学習で頑張っているそうです。

cloud.google.com


このAPI、なんとセーフサーチプロパティの検出が出来、それは5段階で評価されるようです……つまり、エロさ判定が出来ます。もう分かりましたね。

という訳で、集めた画像を全部CloudVisionAPIに投げ、返ってきた情報を使ってフォルダ分け出来ないかを試します。


API準備

まず使う準備です。スクショ撮り忘れたんですがクレカの情報を登録すると12ヶ月間300ドルの無料枠がもらえます。使い続けるといずれ課金という方式ではなく、課金が必要になるとアナウンスされ、そこで応じると課金されるとのことです。


基本的に公式ドキュメントに沿って準備を進めます。

cloud.google.com


今回は既存プロジェクトがあったのですが、クレカを登録するだけでは支払い情報が紐付いていなかったため

1.GoogleCloudPlatformConsoleにログイン

2.既存のプロジェクトを選択してからナビゲーションメニューのお支払いを選択

3.課金アカウントのリンク

してプロジェクトに課金サービスの利用を許可するようにします。GoogleCloudPlatformにプロジェクトがない場合はクレカ登録時にGoogleさんが作ってくれるMy First Projectというのを使えばいいと思います。こっちは支払い情報が最初から紐付いてます。

APIダッシュボード画面へ移動し、CloudVisionAPIの有効化を行います。複数ルートの存在を感じますが、よく分かっていません。

f:id:Thiroyuki:20191031233257p:plain
こっからVisionAPI探して有効化しました。

次に認証情報を作ります。

APIとサービスのサイドメニュー>認証情報のページで認証情報を作成>サービスアカウントキーを作れとのことでした。

f:id:Thiroyuki:20191031234153p:plain

役割はオーナーとかにしました。指示通り入力してくと秘密鍵ファイルがもらえるので大事に保存します。これでAPI側の準備は完了です。


動作確認

pythonでやっていきます。とりあえず脳死でライブラリを入れます。

pip install --upgrade google-cloud-vision

そしたらこんな感じでお試しが出来ます。

import io
import os

from google.cloud import vision
from google.cloud.vision import types

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r'enter_your_secret_key_json_path'

# Instantiates a client
client = vision.ImageAnnotatorClient()

# The name of the image file to annotate
file_name = os.path.join(
    os.path.dirname(__file__),
    'file_path')

# Loads the image into memory
with io.open(file_name, 'rb') as image_file:
    content = image_file.read()

image = types.Image(content=content)

# Performs label detection on the image file
response = client.safe_search_detection(image=image)
safe = response.safe_search_annotation

# Names of likelihood from google.cloud.vision.enums
likelihood_name = ('UNKNOWN', 'VERY_UNLIKELY', 'UNLIKELY', 'POSSIBLE',
                    'LIKELY', 'VERY_LIKELY')

print('Safe search:')
print(f'adult: {safe.adult} - {likelihood_name[safe.adult]}')
print(f'medical: {safe.medical} - {likelihood_name[safe.medical]}')
print(f'spoofed: {safe.spoof} - {likelihood_name[safe.spoof]}')
print(f'violence: {safe.violence} - {likelihood_name[safe.violence]}')
print(f'racy: {safe.racy} - {likelihood_name[safe.racy]}')

殆どチュートリアル通りです。
enter_your_secret_key_json_pathには保存した秘密鍵ファイルのpathを設定します。Windows使ってる人はShift押しながら右クリックしてパスのコピーで持ってこれます。そのまま使うとエスケープ文字列がどうとか言われそうなのでraw文字列にしました。
file_pathはよしなに変更してください。

このソースを動かすとこんな感じの出力が得られます。

Safe search:
adult: 5 - VERY_LIKELY
medical: 1 - VERY_UNLIKELY
spoofed: 1 - VERY_UNLIKELY
violence: 1 - VERY_UNLIKELY
racy: 5 - VERY_LIKELY

LIKEである程その要素の度合いが強いとなります。いくつかの観点から画像を評価してくれるようですね。
直訳するとエロさ(?)、なりすまし(?)、医療(?)、暴力、際どい(???)ですけど、それぞれが何を意味してるかよく分かりません……際どさってマジで何?


試す

というわけでエロさ判定太郎が出来ました。ので遊んでみたんですが……
著作権考えて例は示しませんが、Googleさんの基準は結構厳しくて、ちょっとセクシーぐらいの画像でもエロさMAX(5)で返ってきます。これがグローバルスタンダードなんだろうなという気もします。
裏を返せば明らかにエロ画像ではない画像はエロさMAX未満で返ってくるわけですから、100%notエロな画像だけは抽出出来るかもしれません。

感想

R18, R15, 非エロみたいな分離が出来たら最高だったのですが……そこまで上手くは出来ませんでした。これはもう頑張って自分で書くしか無いかもしれません。
その場合どうするんですかね。モザイクの有無とかなら実装出来そうですが、例えばモザイク付け忘れ画像を保存して非エロ判定でGooglePhotoに投げるとかやると悲惨ですね。BANされかねない。
国際標準に乗っ取る場合R18のイラスト……特に児童ポルノに引っかかりそうなものは厳しいですから、上手く取り回して地雷原を歩かなくていいようにしたいですね。

おわり