Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2018冬開発合宿
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Syo Igarashi
January 08, 2018
Technology
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2018冬開発合宿
Syo Igarashi
January 08, 2018
More Decks by Syo Igarashi
See All by Syo Igarashi
2020冬開発合宿
igara
0
220
2019冬開発合宿
igara
0
100
2018夏開発合宿
igara
0
150
2017夏開発合宿
igara
0
220
Bariiiii
igara
0
120
My Chrome Plugin
igara
0
150
2017冬合宿
igara
0
160
Other Decks in Technology
See All in Technology
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
730
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
8
3.8k
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
720
Genieを崇めよ
kameitomohiro
0
120
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
150
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
190
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
240
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
Geolonia の開発現場における AIの活用について
miya0001
0
100
Claude Code本って、 読む必要あるの?
oikon48
2
460
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
160
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
500
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Designing for humans not robots
tammielis
254
26k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Ethics towards AI in product and experience design
skipperchong
2
370
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Ruling the World: When Life Gets Gamed
codingconduct
0
330
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Between Models and Reality
mayunak
4
460
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Transcript
2018 冬開発合宿 適当に画像収集して 自前の学習データで画像認識 五十嵐 翔
アジェンダ ・モチベーション ・コンテンツ ・デモタイム ・まとめ ↑↑↑↑↑↑↑↑↑↑ 発表としてはここまで ↑↑↑↑↑↑↑↑↑↑ ・技術ネタ集
モチベーション
・世間の人間がやたらとAIや機械学習など エンジニアだったら作ってくれるんでしょ? という風向きをモロに食らってて 最低限の実装と知見を高めたくなってきた。 ・個人的作業をもっと自動化していくための仕組みとしても 取り入れたい分野だと感じたから。
コンテンツ
タイトルにも記載されている 学習データをどう作成したのかというと https://github.com/igara/image_shiki こちらで画像収集および学習 細かい内容についてはちょっと技術ネタに記載
作成した学習データで遊んでみる Webアプリとしてこちら https://github.com/igara/image-shiki-web-app https://syonet.work こちらちょっと作成が間に合わなかったので 夏に持ち越して作成したいなぁと思います。 なので今回の発表は バッチ形式での画像認識結果をお楽しみください。
とりあえず適当に画像を集めて 4つの分類の学習データを作成してみたので 遊んでみよう
ちょっと手書きトレースした画像や コラ画像で実際に試してみる デモタイム
忍者 ピカチュウ ピカチュウ ライチュウ 忍者 忍者 あとは人物でやってみたり
まとめ
絵が下手でも色や外見が捕らえられていたら 意外と認識してくれてそう まるっきり該当しない画像と比較する場合があるので ノイズとしての画像を集めてやることも大事だと思った
は っ ぴ ょ う お し ま い
技術ネタ
すみません メモ書き程度にまとめます。
•画像収集にHeadless Chrome使用して集めてみた https://github.com/igara/image_shiki 合宿前に準備して作成していたものを使ってみた 方法としてQiitaに書いてたのでこちらをみると良いかも https://qiita.com/igara/items/e25a5556654e38051559
A •画像認識で行なったこと CNN(Convolution Neural Network 畳み込みニューラルネットワーク) による学習で画像の識別を行なった。 https://github.com/igara/image_shiki/blob/1396197fa28d9657869df1945dba6 cfdc38ca65c/save_model.py#L44-L112 A A
すごく要約して言うと集めた画像を無理やり 正方形に縮小し、4 * 4で分割して枚数分 比較して類似性を見ていくようなやり方
•画像認識で行なったこと PythonのライブラリであるKerasを使用してみた。 TensorFlow、Theanoのラッパーライブラリらしい マシンはGPU積んでないmacbookで実施したので 1分類あたりの画像枚数390枚(加工なし)の4分類の 学習済みデータを作成するのに20分弱かかった。 画像全てで約20MB、学習済みデータは350MBも するのでマシンの性能が欲しくなった。
•なんでdocker使ってるのにvagrantも使用しているのか 某格安VPSのホストOSがUbuntuであったから揃えたかった。 ホスト⇔ゲストのdocker-sync問題 (ファイルシステム的な問題?)
•これ便利と思ったdocker image https://github.com/SteveLTN/https-portal local・prod環境でオレオレ・Let's Encrypt 証明書を ふりわけて作成してくれるだけでなく nginxも構築してくれるdocker image 設定周りも概ねdocker-compose.ymlに完結できるのでよい
•RustでPython書く不思議なコード をやろうとしたけど挫折した https://github.com/dgrunwald/rust-cpython Rustから認識結果を拾いたかったけど pipでインストールしたPythonライブラリを使用できなかった。 今回作成したdocker-composeの設定でrust-cpythonを githubに記載しているサンプルのPythonのバージョン表示するのはできた。 言語バインディング(言語束縛)やりたかった。
•Rustというよりiron いろいろ挫折した ironとはRustのWebサーバサイドのライブラリ iron1つで解決できないことが多い問題に直面する。 ironコミュニティで別で提供されているrouterであったりmountとかを 導入してURLのルーティングまではうまくいっていた。
•Rustというよりiron いろいろ挫折した リクエストパラメータを取得するためのライブラリparamsを入れてみて 確かにPOSTやGETの時のリクエストデータは取れることを確認できた。 画像のアップロードを試みた時に一時的に保存される/tmp/の画像のパス 返してくれるけど実際には画像データが残っていない問題にあたり積んだ。
•静的ファイルのビルドツールとしてParcel使ってみた 共通部分(common,vender)を作る機構がないようにみえて ビルドで指定しているエントリーポイント(index.html ...etc)のなかで vendor、vendorを参照して作る実装部分のファイルと分けてたりすると 静的ファイルの中で案外重複しない感じにモジュール固めてくれる。
•静的ファイルのビルドツールとしてParcel使ってみた ビルドの出力されたファイルをよしなに呼びやすくなりそうな 謎ビルドツールを作る。 https://github.com/igara/image-shiki-web-app/blob/db8f10e4723052825e17a 4874f0960140bc3936a/nodejs/create_parcel_json.js Parcelで出力されたファイル名がハッシュなものなので ビルド前のファイル名とハッシュなファイル名をマップにするような JSONを作成するスクリプトを書いた。 ビルドツール使うならある程度自分でも作る技量持とうって最近思う。
•Mithril.jsはじめてみた ものすごい雑な感想として Reactぽくも書けながらStream http://mithril-ja.js.org/stream.html による双方向的なバインディングが可能なので 雑に作れそうな感じよかった。
お し ま い