Slide 1

Slide 1 text

ը૾ೝࣝαʔϏεͱ -JHIUSPPNϓϥάΠϯ ୈճ$PDPBษڧձؔ੢ !NBUVZVKJ

Slide 2

Slide 2 text

@matuyuji safx-dev.blogspot.jp

Slide 3

Slide 3 text

-JHIUSPPN

Slide 4

Slide 4 text

.PUJWBUJPO w େྔͷࣸਅʹ؆୯ʹΩʔϫʔυΛ෇͚͍ͨ w ը૾ೝࣝαʔϏεͰΩʔϫʔυΛαδΣετ Նɺۭɺ૲ݪ

Slide 5

Slide 5 text

TBGY-JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 11

Slide 11 text

ը૾ೝࣝαʔϏε

Slide 12

Slide 12 text

ը૾ೝࣝαʔϏε w $MBSJGBJ w .JDSPTPGU1SPKFDU0YGPSE7JTJPO"1*T w %PDPNP%FWFMPQFS4VQQPSUը૾ೝࣝ"1* w (PPHMF$MPVE7JTJPO"1*

Slide 13

Slide 13 text

$MBSJGBJ IUUQXXXDMBSJGBJDPNEFNP

Slide 14

Slide 14 text

$MBSJGBJ IUUQXXXDMBSJGBJDPNEFNP

Slide 15

Slide 15 text

Project Oxford https://www.projectoxford.ai

Slide 16

Slide 16 text

Demos https://www.projectoxford.ai/demo

Slide 17

Slide 17 text

1SPKFDU0YGPSE 'FBUVSF"OBMZTJT https://www.projectoxford.ai/demo/vision#Analysis

Slide 18

Slide 18 text

1SPKFDU0YGPSE 'FBUVSF"OBMZTJT https://www.projectoxford.ai/demo/vision#Analysis

Slide 19

Slide 19 text

7JTVBM$BUFHPSJFT https://msdn.microsoft.com/en-us/library/mt613446.aspx

Slide 20

Slide 20 text

1SPKFDU0YGPSE 0QUJDBM$IBSBDUFS3FDPHOJUJPO https://www.projectoxford.ai/demo/vision#Ocr

Slide 21

Slide 21 text

1SPKFDU0YGPSE 0QUJDBM$IBSBDUFS3FDPHOJUJPO https://www.projectoxford.ai/demo/vision#Ocr

Slide 22

Slide 22 text

Docomo Developer Support https://dev.smt.docomo.ne.jp/?p=docs.api.index

Slide 23

Slide 23 text

https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=api_usage_scenario#tag01 Docomo Developer Support

Slide 24

Slide 24 text

%PDPNP%FWFMPQFS4VQQPSU ը૾ೝࣝ"1* TDFOF { "jobId": "234531_K1oapLitRV", "candidates": [ { "tag": "Ξ΢τυΞ", "score": 0.5713228583335876 }, { "tag": "෩ܠ", "score": 0.33728981018066406 }, { "tag": "ΰϧϑ", "score": 0.07010752707719803 }, { "tag": "Ֆ", "score": 0.01610233262181282 }, { "tag": "αΠΫϦϯά", "score": 0.001829492044635117 } ] }

Slide 25

Slide 25 text

%PDPNP%FWFMPQFS4VQQPSU ը૾ೝࣝ"1* TDFOF { "jobId": "234225_kyiT2V5xC4", "candidates": [ { "tag": "ધ", "score": 0.7887985706329346 }, { "tag": "ݐ෺", "score": 0.20031100511550903 }, { "tag": "ਫ଒ؗ", "score": 0.0036888555623590946 }, { "tag": "ඈߦػ", "score": 0.003007577732205391 }, { "tag": "Ξ΢τυΞ", "score": 0.0010139134246855974 } ] }

Slide 26

Slide 26 text

https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=api_usage_scenario#tag01 Docomo Developer Support

Slide 27

Slide 27 text

%PDPNP%FWFMPQFS4VQQPSU ը૾ೝࣝ"1* qPXFS { "jobId": "235050_8Ctmvg1I7O", "candidates": [ { "tag": "ώϚϫϦ", "score": 1 }, { "tag": "ΩΫ", "score": 2.0101849074194433e-8 }, { "tag": "Ψʔϕϥ", "score": 1.301374147333334e-10 }, { "tag": "ΨβχΞʢΫϯγϣ΢ΪΫʣ", "score": 1.2209548649888546e-10 }, { "tag": "όʔϕφ", "score": 3.784880395207857e-12 } ] }

Slide 28

Slide 28 text

%PDPNP%FWFMPQFS4VQQPSU ը૾ೝࣝ"1* qPXFS { "jobId": "234727_BA4lWTesxp", "candidates": [ { "tag": "΢ϝ", "score": 0.9999998807907104 }, { "tag": "ιϝΠϤγϊ", "score": 7.231307819210997e-8 }, { "tag": "ϢΩϠφΪ", "score": 2.8857778389124178e-9 }, { "tag": "Ϙέ", "score": 7.249059130742808e-10 }, { "tag": "αϧεϕϦ", "score": 1.4363262098790464e-12 } ] }

Slide 29

Slide 29 text

%PDPNP%FWFMPQFS4VQQPSU ঎඼ೝࣝ"1* w ສ݅Ҏ্ͷࢢൢ঎඼ w ॻ੶ $% %7% 57ήʔϜιϑτ 1$ιϑτ ৯඼ύοέʔδ

Slide 30

Slide 30 text

%PDPNP%FWFMPQFS4VQQPSU ঎඼ೝࣝ"1* DE { "recognitionId": "f1c3c7e0-c112-11e5-913e-066c9e757987", "candidates": [ { "score": 1177.6171875, "itemId": "cd_0001191265", "category": "cd", "imageUrl": "http://ecx.images-amazon.com/images/I/71 "detail": { "format": [ "CD", "Import, from US, CD+DVD" ], "ean13": "0633367400727", "label": "Discipline Us", "itemName": "Red: 40th Anniversary Series (Wdva)", "releaseDate": "2009/10/20", "artist": [ "ΩϯάɾΫϦϜκϯ" ], "discs": "2" }, "sites": [ { "url": "http://books.rakuten.co.jp/rb/12019761/", "imageUrl": "http://thumbnail.image.rakuten.co.jp/@ }, { "url": "http://www.amazon.co.jp/gp/product/B002G "title": "Amazon.co.jp: King Crimson : Red: 40th An "imageUrl": "http://ecx.images-amazon.com/images } ] },

Slide 31

Slide 31 text

%PDPNP%FWFMPQFS4VQQPSU ঎඼ೝࣝ"1* CPPL { "recognitionId": "ebb27a30-c113-11e5-913e-066c9e75 "candidates": [ { "score": 2880.04296875, "itemId": "book_0000387348", "category": "book", "imageUrl": "http://ecx.images-amazon.com/ima "detail": { "author": [ "ాத ҆ߦ" ], "isbn10": "4342103702", "isbn13": "978-4342103704", "pages": "796", "itemName": "ϩϯάϚϯActive Studyӳӳࣙయ 3 "releaseDate": "1999/02", "publisher": "ۅݪॻళ", "type": "୯ߦຊ" }, "sites": [ { "url": "http://www.amazon.co.jp/gp/produc "title": "Amazon.co.jp: ϩϯάϚϯActive Stu "imageUrl": "http://ecx.images-amazon.com }, { "url": "http://books.rakuten.co.jp/rb/11696 "imageUrl": "http://thumbnail.image.rakute }, { "url": "http://www.7netshopping.jp/books/d "imageUrl": "http://img.7netshopping.jp/bk }

Slide 32

Slide 32 text

ը૾ೝࣝαʔϏε ·ͱΊ w $MBSJGBJ
 ը૾ͱಈըͷλά࡞੒ w .JDSPTPGU1SPKFDU0YGPSE7JTJPO"1*T
 0$3ɺը૾ΧςΰϦɺإೝࣝɺಉҰਓ෺൑ఆɺ೥ྸੑผ൑ɺʜ w %PDPNP%FWFMPQFS4VQQPSUը૾ೝࣝ"1*
 ը૾ೝࣝɺը૾ΧςΰϦɺ঎඼ೝࣝɺإೝࣝɺʜ w (PPHMF$MPVE7JTJPO"1*
 0$3ɺը૾ΧςΰϦɺإೝࣝɺϩΰೝࣝɺϥϯυϚʔΫೝࣝɺʜ

Slide 33

Slide 33 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 34

Slide 34 text

$MBSJGBJ

Slide 35

Slide 35 text

$MBSJGBJ IUUQXXXDMBSJGBJDPNEFNP ࣸਅͷΩʔϫʔυ

Slide 36

Slide 36 text

$MBSJGBJ w 'SFF1MBO
 VQUPVOJUTNPOUI VOJUTIPVS w MBOHVBHFTTVQQPSU
 &OHMJTI +BQBOFTF ʜ w "1*$MJFOUT4BNQMF$PEF
 1ZUIPO +BWB /PEF(P 0CKFDUJWF$

Slide 37

Slide 37 text

$MBSJGBJ http://www.clarifai.com/pricing

Slide 38

Slide 38 text

$MBSJGBJ"1*T w UPLFO0"VUIೝূ w UBHը૾ೝࣝ w GFFECBDLը૾ೝࣝͷվળ w JOGP"1*ͷ৘ใ

Slide 39

Slide 39 text

$VSM $ curl -H "Authorization: Bearer XXXXXXXXXXXXX" \ -F "encoded_data=@/Users/safx/Umeda.jpg" \ https://api.clarifai.com/v1/tag/ { "status_code": "OK", "status_msg": "All images in request have completed successfully.", "meta": {"tag": {"timestamp": 1452094463.514861, "model": "general-v1.3", "config": "34fb1111b4d5f67cf1b8665ebc603704"}}, "results": [{"docid": 34811919134783978551778916056908965247, "status_code": "OK", "status_msg": "OK", "local_id": "", "result": {"tag": { "concept_ids": [“ai_Pf2b7clG", … ], "classes": [“԰಺Ͱ", “ۭߓ”, “Կਓ΋͋Γ·ͤΜ”, “ఱҪ”, “ݱ୅ͷ”, … ], "probs": [0.997933030128479, 0.997094988822937, … ] } }

Slide 40

Slide 40 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 41

Slide 41 text

1IPUPTIPQ-JHIUSPPN

Slide 42

Slide 42 text

-JHIUSPPN

Slide 43

Slide 43 text

"EPCF1IPUPTIPQ-JHIUSPPN w ࣸਅ؅ཧɺݱ૾ΞϓϦέʔγϣϯ w -VBʹΑΔϓϥάΠϯΛ࡞੒ɺར༻Ͱ͖Δ w $SFBUJWF$MPVEϑΥτάϥϑΟϓϥϯ͕͓ٻΊ΍͍͢ԁʗ݄ http://www.adobe.com/jp/products/photoshop-lightroom.html

Slide 44

Slide 44 text

-JHIUSPPN1MVHJO

Slide 45

Slide 45 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 46

Slide 46 text

-VB-JHIUSPPN1MVHJO

Slide 47

Slide 47 text

-VB w XXXMVBPSH w ݟͨ໨͕1BTDBM෩Ͱɺ001͕ͳ͍/PEFKT w -JHIUSPPN w 4JN$JUZ $JWJMJ[BUJPO7 w $JTDP :BIBNB

Slide 48

Slide 48 text

4BNQMF function reverseArray(array) local reversed = {} for idx, val in ipairs(array) do reversed[#array - idx + 1] = val end return reversed end

Slide 49

Slide 49 text

-JHIUSPPN1MVHJO4%, w -JHIUSPPN4%,(VJEF w "1*3FGFSFODF w 4BNQMF1MVHJOT http://www.adobe.com/devnet/photoshoplightroom.html

Slide 50

Slide 50 text

-S)UUQ local LrHttp = import 'LrHttp' SomeAPI = {} function SomeAPI.foo(param) local headers = { { field = 'Content-Type', value = 'application/x-www-form-urlencoded' }, }; local data = 'somParam=' .. param; local body, reshdrs = LrHttp.post(fooURL, data, headers); if reshdrs.status == 401 then return nil end return body end return SomeAPI

Slide 51

Slide 51 text

-S7JFX local LrView = import ‘LrView' local f = LrView.osFactory() local c = f:row { f:checkbox { title = "Title:", value = true, }, f:edit_field { value = "Untitled Text", } } LrDialogs.presentModalDialog { contents = c }

Slide 52

Slide 52 text

0CTFSWBCMF5BCMFCJOE ,70 LrFunctionContext.callWithContext("showCustomDialog", function(context) local f = LrView.osFactory() local props = LrBinding.makePropertyTable(context) props.isChecked = false local c = f:row { bind_to_object = props, f:checkbox { title = "Title:", value = LrView.bind "isChecked" }, f:edit_field { value = "Untitled Text", enabled = LrView.bind "isChecked" } } LrDialogs.presentModalDialog { contents = c } end)

Slide 53

Slide 53 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 54

Slide 54 text

-JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 55

Slide 55 text

TBGY-JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 56

Slide 56 text

+40/ w ެࣜʹ͸༻ҙ͞Ε͍ͯͳ͍ w ֎෦ϥΠϒϥϦΛ࢖͏
 IUUQSFHFYJOGPCMPHMVBKTPO local JSON = require ‘JSON' local json = JSON:decode(body);

Slide 57

Slide 57 text

5IVNCOBJM local catalog = LrApplication.activeCatalog(); local photos = catalog:getTargetPhoto(); local output_path = LrPathUtils.addExtension(photo.path, 'thumbnail.jpg'); photo:requestJpegThumbnail(400, 400, function(thumbnail, err) local out = io.open(output_path, 'w'); io.output(out); io.write(thumbnail); io.close(out); end );

Slide 58

Slide 58 text

0VUMJOF w ը૾ೝࣝαʔϏε w $MBSJGBJ w 1IPUPTIPQ-JHIUSPPN w -VB-JHIUSPPN1MVHJO w -JHIUSPPN1MVHJO$MBSJGBJ5BHHFS

Slide 59

Slide 59 text

·ͱΊ

Slide 60

Slide 60 text

ը૾ೝࣝαʔϏε ·ͱΊ w $MBSJGBJ
 ը૾ͱಈըͷλά࡞੒ w .JDSPTPGU1SPKFDU0YGPSE7JTJPO"1*T
 0$3ɺը૾ΧςΰϦɺإೝࣝɺಉҰਓ෺൑ఆɺ೥ྸੑผ൑ɺʜ w %PDPNP%FWFMPQFS4VQQPSUը૾ೝࣝ"1*
 ը૾ೝࣝɺը૾ΧςΰϦɺ঎඼ೝࣝɺإೝࣝɺʜ w (PPHMF$MPVE7JTJPO"1*
 0$3ɺը૾ΧςΰϦɺإೝࣝɺϩΰೝࣝɺϥϯυϚʔΫೝࣝɺʜ

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

ؔ࿈ϦϯΫ w $MBSJGBJ
 IUUQXXXDMBSJGBJDPN
 IUUQTEFWFMPQFSDMBSJGBJDPN w "EPCF%FWFMPQFS$POOFDUJPO
 IUUQXXXBEPCFDPNEFWOFUQIPUPTIPQMJHIUSPPNIUNM