Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
20160928-meganeco
ARIYAMA Keiji
September 28, 2016
Technology
2
2.9k
20160928-meganeco
「TensorFlowで趣味の画像収集サーバーを作る9月特大号」
TensorFlowによる認識処理の高速化と新データセットでの訓練・評価検証
ARIYAMA Keiji
September 28, 2016
Tweet
Share
More Decks by ARIYAMA Keiji
See All by ARIYAMA Keiji
Android Bazaar and Conference Diverse 2021 Winter
keiji
0
530
ci-cd-conference-2021
keiji
1
820
Android Bazaar and Conference 2021 Spring
keiji
3
500
TFUG KANSAI 20190928
keiji
0
42
Softpia Japan Seminar 20190724
keiji
1
88
pixiv App Night 20190611
keiji
1
370
ABC2019 Spring
keiji
1
550
ML Ops Study 2
keiji
0
100
Google I/O 2018 Recap
keiji
0
400
Other Decks in Technology
See All in Technology
E2E自動テスト導入・運用をめぐる先入観と実際に起きたこと / Preconceptions and What Happened with E2E Testing
ak1210
1
220
LINE WORKS API 2.0について
mmclsntr
0
110
TypeScript 4.7と型レベルプログラミング
uhyo
6
3.4k
Kubernetesの上に作る、統一されたマイクロサービス運用体験
tkuchiki
1
840
プロダクション環境の信頼性を損ねず観測する技術
egmc
4
420
Steps toward self-service operations in eureka
fukubaka0825
0
520
JAWS-UG 朝会 #33 登壇資料
takakuni
0
380
20220510_簡単にできるコスト異常検出(Cost Anomaly Detection) /jaws-ug-asa-cost-anomaly-detection-20220510
emiki
2
320
mROS 2のススメ
takasehideki
0
300
數據的多重宇宙 @ LINE Taiwan
line_developers_tw
PRO
0
640
一人から始めるプロダクトSRE / How to start SRE in a product team, all by yourself
vtryo
4
2.5k
HTTP Session Architecture Pattern
chiroito
1
400
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
16
8.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
125
8.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
350
21k
Design by the Numbers
sachag
271
17k
Practical Orchestrator
shlominoach
178
8.6k
The Web Native Designer (August 2011)
paulrobertlloyd
74
1.9k
Done Done
chrislema
174
14k
The Power of CSS Pseudo Elements
geoffreycrofte
46
3.9k
Optimizing for Happiness
mojombo
365
63k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
Transcript
C-LIS CO., LTD.
5FOTPS'MPXͰ झຯͷը૾ऩूαʔόʔΛ࡞Δ ݄̕ಛେ߸
C-LIS CO., LTD. ༗ࢁܓೋʢ,FJKJ"3*:"."ʣ C-LIS CO., LTD. AndroidΞϓϦ։ൃऀ ػցֶशॳ৺ऀ
ͬͯ·ͤΜ 1IPUP,PKJ.03*(6$)* "6/$3&"5*7&'*3.
C-LIS CO., LTD.
C-LIS CO., LTD.
લճ·Ͱͷ͓
IUUQTUFDICPPLGFTUPSH"
C-LIS CO., LTD.
C-LIS CO., LTD. IUUQBN[OUPC,3N
C-LIS CO., LTD. .FHBOF /PU
Έͷ؟ڸ່ͬը૾ΛࣗಈͰऩू͍ͨ͠
C-LIS CO., LTD. Ϟσϧ 7((/FUΛࢀߟʹΈࠐΈͷ࿈ଓΛ༻͍ͨ$// ʢ$POWPMVUJPOBM/FVSBM/FUXPSLʣϞσϧ DPO YY DPO
YY GD QPPM Y DPO YY DPO YY QPPM Y GD GD PVUQVU
C-LIS CO., LTD. %BUB"VHNFOUBUJPO ը૾Λ ʜ·ͰɺͦΕͧΕճసͨ͠ը૾Λ࡞ ಡΈࠐΈ࣌ͷॲཧ 3BOEPN$SPQʢQYதɺQYྖҬΛ͘Γൈ͘ʣ 3BOEPN'MJQʢԣ࣠ํʹసʣ
3BOEPN6Q%PXOʢॎ࣠ํʹసʣ 3BOEPN#SJHIUOFTT 3BOEPN$POUSBTU
C-LIS CO., LTD. ܇࿅ ֶशΞϧΰϦζϜ"EBN ֶश ϛχόον
C-LIS CO., LTD. ݕূ σʔληοτ͔ΒΛςετ༻ͱͯ͠ ਖ਼ʙ
Πϥετإݕग़ثʢ'BDF%FUFDUPSʣ
C-LIS CO., LTD. Πϥετإσʔληοτ ؟ڸ່ͬͱͦ͏Ͱͳ͍ͷɻ߹Θͤͯ ຕΛ ਖ਼ྫʢʹإʣͱ͢Δʢ͏ͪςετσʔλຕʣ ෛྫɺطଘͷը૾ΛࡉΕʹͯ͠ɺإ͕ͳ͍෦ ຕΛෛྫͱ͢Δʢ͏ͪςετσʔλຕʣ
C-LIS CO., LTD. Πϥετσʔληοτ ਖ਼ྫ ෛྫ ߹ܭ ܇࿅σʔλ 1,600
3,200 4,800 ςετσʔλ 400 800 1,200 ߹ܭ 2,000 4,005 6,000
C-LIS CO., LTD. Ϟσϧ $*'"3νϡʔτϦΞϧͷϞσϧΛࢀߟʹ υϩοϓΞτʢˋʣΛՃͨ͠$//ʢ$POWPMVUJPOBM/FVSBM /FUXPSLʣ DPO YY
GD QPPM Y DPO YY GD PVUQVU MSO MSO QPPM Y
C-LIS CO., LTD. %BUB"VHNFOUBUJPO ը૾Yʹॖখ ը૾Λ ʜɺͦΕͧΕճసͨ͠ը૾Λ࡞ ಡΈࠐΈ࣌ͷॲཧ 3BOEPN$SPQʢQYதɺQYྖҬͰ͘Γൈ͘ʣ
3BOEPN'MJQʢԣ࣠ํʹసʣ 3BOEPN6Q%PXOʢॎ࣠ํʹసʣ 3BOEPN#SJHIUOFTT 3BOEPN$POUSBTU
C-LIS CO., LTD. ܇࿅ ֶशΞϧΰϦζϜ"EBN ֶश ϛχόον
C-LIS CO., LTD. ܇࿅ ϛχόονɺສεςοϓͷ܇࿅Ͱ ϩε͕·ͰԼ ςετσʔλͰͷਖ਼ղ
إݕग़
C-LIS CO., LTD. إͲ͜ʹ͋Δʁ
C-LIS CO., LTD. 4FMFDUJWF4FBSDI 35$PSQPSBUJPOͷʮ༲͛ϩϘοτʯ 5FOTPS'MPXษڧձʢ̐ʣ݄Ͱൃද IUUQXXXTMJEFTIBSFOFU:VLJ/BLBHBXBUFOTPSqPXSFW
C-LIS CO., LTD. 4FMFDUJWF4FBSDI "MQBDBࣾʹΑΔ࣮ IUUQCMPHKQBMQBDBBJFOUSZ EMJCͷ࣮ IUUQTHJUIVCDPNEBWJTLJOHEMJCCMPCNBTUFS QZUIPO@FYBNQMFTpOE@DBOEJEBUF@PCKFDU@MPDBUJPOTQZ
C-LIS CO., LTD. લճͷ՝ ݕग़࣌ؒͷॖ ೝࣝਫ਼ͷ্
ݕग़࣌ؒͷॖ
C-LIS CO., LTD. إݕग़ͷखॱ ީิྖҬͷΓग़͠ SelectiveSearch
C-LIS CO., LTD. إݕग़ͷखॱ إೝࣝ TensorFlow ީิྖҬͷΓग़͠ SelectiveSearch OݸͷީิྖҬ
C-LIS CO., LTD. άϥϑͱηογϣϯΛҙࣝ͢Δ ީิྖҬͷΓग़͠ SelectiveSearch إೝࣝ TensorFlow άϥϑͷ࡞
ηογϣϯͷ։࢝ tf.Session() άϥϑͷ࣮ߦ run OݸͷީิྖҬ ը૾σʔλʴ ը૾σʔλ
C-LIS CO., LTD. إೝࣝ TensorFlow άϥϑͱηογϣϯΛҙࣝ͢Δ άϥϑͷ࡞ ηογϣϯͷ։࢝ tf.Session()
άϥϑͷ࣮ߦ run άϥϑ Ϧηοτ OݸͷྖҬΛͯ͢ධՁ OݸͷީิྖҬ ը૾σʔλʴ
C-LIS CO., LTD. ࠷దͳྖҬΛ୳ࡧʢ3FHSFTTJPOʣ
C-LIS CO., LTD. إೝࣝ TensorFlow ຖճάϥϑΛ࡞ɾηογϣϯΛ։࢝ άϥϑͷ࡞ ηογϣϯͷ։࢝ άϥϑͷ࣮ߦ
run άϥϑ Ϧηοτ OݸͷྖҬΛͯ͢ධՁ OݸͷީิྖҬ ը૾σʔλʴ
class FaceDetector(object): image_path = None original_image = None graph
= None sess = None queue = None top_k_indices = None top_k_values = None region_batch = None coord = None configuration = None def __init__(self, image_path, batch_size, train_dir): self.image_path = image_path self.original_image = Image.open(image_path) self.original_image = self.original_image.convert('RGB') checkpoint = tf.train.get_checkpoint_state(train_dir) if not (checkpoint and checkpoint.model_checkpoint_path): print('νΣοΫϙΠϯτϑΝΠϧ͕ݟ͔ͭΓ·ͤΜ') return self.graph, self.queue, self.top_k_indices, self.top_k_values, self.region_batch = \ self._init_graph(self.original_image, batch_size) with self.graph.as_default() as g: self.sess = tf.Session() saver = tf.train.Saver() saver.restore(self.sess, checkpoint.model_checkpoint_path) self.coord = tf.train.Coordinator()
def _init_graph(self, image, batch_size): reshaped_image = np.array(image.getdata()).reshape(image.height, image.width, 3).astype(
np.float32) graph = tf.Graph() with graph.as_default() as g: queue = tf.FIFOQueue(3000, tf.int32, shapes=[4]) region = queue.dequeue() whitten_image = self._load_image(reshaped_image, region) image_batch, region_batch = tf.train.batch( [whitten_image, region], batch_size=batch_size, capacity=10000) logits = tf.nn.softmax(model.inference(image_batch, tf.constant(1.0), batch_size)) top_k_values, top_k_indices = tf.nn.top_k(logits, 2, sorted=True) return graph, queue, top_k_indices, top_k_values, region_batch
def _eval(self, region_list, batch_size): result = [] with
graph.as_default() as g: threads = tf.train.start_queue_runners(sess=sess, coord=coord) step = 0 try: # όοναΠζʹ߹ΘͤͯΛௐ while len(region_list) < batch_size or len(region_list) % batch_size != 0: add = region_list[0:(batch_size - (len(region_list) % batch_size))] region_list = region_list + add region_list = np.array(region_list) enqueue = queue.enqueue_many(region_list) sess.run(enqueue) num_iter = int(math.ceil(len(region_list) / batch_size)) while step < num_iter and not coord.should_stop(): # ҎԼུ
C-LIS CO., LTD. إೝࣝ TensorFlow ީิྖҬͷΈ༩͑Δ άϥϑͷ࡞ ηογϣϯͷ։࢝ άϥϑͷ࣮ߦ
run άϥϑ Ϧηοτ OݸͷྖҬΛͯ͢ධՁ ը૾σʔλ OݸͷީิྖҬ
ೝࣝਫ਼ͷ্ σʔληοτͷ֦ॆ
C-LIS CO., LTD. 5XJUUFS"1* ಛఆͷϢʔβʔͷλΠϜϥΠϯʹߘ͞ΕͨϝσΟΞ ʢը૾ʣΛμϯϩʔυ ϋογϡΛܭࢉͯ͠ॏෳը૾ΛϑΟϧλϦϯά ʢαΠζҧ͍ͳͲͷྨࣅը૾ফ͖͠Εͳ͍ʣ
C-LIS CO., LTD. Πϥετإσʔλऩूʹ ࠷దͳΞΧϯτ !CPU@FSFDUJPO IUUQTUXJUUFSDPNCPU@FSFDUJPO
C-LIS CO., LTD. ࿐ࠎʹੑతͳը૾ɺ΄΅ଘࡏ͠ͳ͍ πΠʔτʹඞͣը૾͕ఴ͞Ε͍ͯΔ ը૾ʹਓҎ্ͷঁͷࢠͷإؚ͕·Ε͍ͯΔ
5XJUUFS͔Βऔಘͨ͠ϑΝΠϧ ݕग़ͨ͠إྖҬͷɹɹɹɹɹɹɹɹ
C-LIS CO., LTD. { "detected_faces": { "mode": "selective_search", "regions": [
{ "label": 1, "rect": { "left": 212.0, "bottom": 654.0, "top": 94.0, "right": 483.0 }, "probability": 0.9994481205940247 } ] }, "created_at": "2016-09-28T03:37:16.223942", "file_name": "kage_maturi-CAARxE8UwAEzAjJ.jpg", "generator": "Megane Co" } ݁ՌΛ+40/Ͱॻ͖ग़͠
C-LIS CO., LTD. 3FHJPO$SPQQFS +BWB'9 ,PUMJO IUUQTHJUIVCDPNLFJKJSFHJPO@DSPQQFS
%FNP
C-LIS CO., LTD. 3FHJPO$SPQQFS /FXGFBUVSF ɾબதͷྖҬΛϑΥʔΧε ɾ6OEP ɾTFUUJOHTKTPOʹΑΔઃఆ ɹϥϕϧ͝ͱͷઢ৭ ɹฤूɺআͷՄ൱
IUUQTHJUIVCDPNLFJKJSFHJPO@DSPQQFS
C-LIS CO., LTD. ݕग़ͨ͠إྖҬͷʢॏෳΛআʣɹɹɹɹɹɹɹɹ إʢਖ਼ྫʣ ޡݕग़ʢෛྫʣ
C-LIS CO., LTD. ৽σʔληοτ ਖ਼ྫ ෛྫ ߹ܭ ܇࿅σʔλ 10,453
10,792 21,245 ςετσʔλ 2,619 2,703 5,322 ߹ܭ 13,072 13,495 26,567
C-LIS CO., LTD. ৽σʔληοτʹΑΔ܇࿅ ϛχόονɺສεςοϓͷ܇࿅Ͱ ϩε͕·ͰԼ ςετσʔλʹΑΔݕূͰͷਖ਼ղ
C-LIS CO., LTD. چσʔληοτ ਖ਼ྫ ෛྫ ߹ܭ ܇࿅σʔλ 1,600
3,200 4,800 ςετσʔλ 400 800 1,200 ߹ܭ 2,000 4,005 6,000
C-LIS CO., LTD. چσʔληοτͷ܇࿅ ϛχόονɺສεςοϓͷ܇࿅Ͱ ϩε͕·ͰԼ ςετσʔλͰͷݕূͰͷਖ਼ղ
C-LIS CO., LTD. ৽Ϟσϧੑೳ͕ѱ͍ʁ چςετσʔλ چϞσϧ ৽ςετσʔλ ৽Ϟσϧ
C-LIS CO., LTD. ৽چͷςετσʔλΛަ چϞσϧ ৽ςετσʔλ چςετσʔλ ৽Ϟσϧ
C-LIS CO., LTD. ৽چͷςετσʔλΛݕূ چϞσϧ ৽ςετσʔλ چςετσʔλ ৽Ϟσϧ
چςετσʔλ چϞσϧ ৽ςετσʔλ ৽Ϟσϧ
C-LIS CO., LTD. إೝࣝʹࣦഊͨ͠σʔλΛݕূ ʢچςετσʔλʣ OPU@GBDF GBDF
C-LIS CO., LTD. إೝࣝʹࣦഊͨ͠σʔλΛݕূ ʢ৽ςετσʔλʣ OPU@GBDF GBDF
࣍ճ༧ࠂ
C-LIS CO., LTD. σʔλͷΫϨϯδϯάʹΑΔೝࣝਫ਼ͷมԽΛݟΔ ݕग़Λ͞Βʹվળ͢Δ ࣍ճ༧ࠂ IUUQTXXXTBLVSBBEKQLPVLBSZPLV
C-LIS CO., LTD. C-LIS CO., LTD. ຊࢿྉɺ༗ݶձࣾγʔϦεͷஶ࡞Ͱ͢ɻܝࡌ͞Ε͍ͯΔΠϥετʹݸผʹஶ࡞ݖ͕͋Γ·͢ɻ ຊࢿྉͷશ෦ɺ·ͨҰ෦ʹ͍ͭͯɺஶ࡞ऀ͔ΒจॻʹΑΔڐΛಘͣʹෳ͢Δ͜ͱې͡ΒΕ͍ͯ·͢ɻ ໊֤ɾϒϥϯυ໊ɺձ໊ࣾͳͲɺҰൠʹ֤ࣾͷඪ·ͨొඪͰ͢ɻຊࢿྉதͰɺɺɺäΛׂѪͯ͠ ͍·͢ɻ