Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
C-LIS CO., LTD.
Slide 2
Slide 2 text
ਓೳηϛφʔɹʙΫϥυɾϞόΠϧɾΤοδʹ͓͚Δػցֶशʙ ɹιϑτϐΞδϟύϯ ػցֶशϞσϧΛར༻ͨ͠ ϞόΠϧΞϓϦ։ൃͷࣄྫ
Slide 3
Slide 3 text
༗ࢁܓೋʢ,FJKJ"3*:"."ʣ $-*4$0 -5% ઐɿ"OESPJEΞϓϦ։ൃ ػցֶशྺɿ̐ ஶॻɿ ʰ"OESPJE4UVEJPͰ͡ΊΔ؆୯"OESPJEΞϓϦ։ൃʱʢٕज़ධࣾʣ ʰ5FOTPS'MPXΛ͡Ί·ͨ͠ʱʢΠϯϓϨε3%ʣ ڞஶʰ5FOTPS'MPX׆༻ΨΠυʱʢٕज़ධࣾʣ Photo : Koji MORIGUCHI (MORIGCHOWDER)
Slide 4
Slide 4 text
5FOTPS'MPXൃදʢ݄ʣ
Slide 5
Slide 5 text
ػցֶशΛར༻ͨ͋͠Ε͜Ε IUUQLJWBOUJVNIBUFCMPKQFOUSZ TensorFlowͰΞχϝΏΔΏΓͷ੍࡞ձࣾΛࣝผ͢Δ IUUQCPIFNJBIBUFOBCMPHDPNFOUSZ σΟʔϓϥʔχϯάͰ͓ͦদ͞Μͷͭࢠݟ͚ΒΕΔͷ͔ʁ IUUQCPIFNJBIBUFOBCMPHDPNFOUSZ IUUQDISJTUJOBIBUFOBCMPHDPNFOUSZ Deep LearningͰϥϒϥΠϒʂΩϟϥΛࣝผ͢Δ
Slide 6
Slide 6 text
؟ڸ່ͬͷΠϥετΛ Πϯλʔωοτ͔ΒࣗಈͰऩू͍ͨ͠ʂ
Slide 7
Slide 7 text
؟ڸ່ͬఆ
Slide 8
Slide 8 text
ධՁ༻αʔόʔ ܇࿅ɾֶश༻αʔόʔ܈ σʔληοτసૹ ʢTFRecordʣ ֶशࡁϞσϧऔಘ ը૾औಘ ը૾औಘ ϥϕϧ ͚ σʔληοτཧ αʔόʔ ը૾ऩू ϥϕϧ ͚ σʔληοτ ཧΞϓϦ playground.megane.ai ֶशࡁΈϞσϧஔ ը૾ૹ৴ ఆ݁Ռ .FHBOF$P
Slide 9
Slide 9 text
ͳͥϞόΠϧΞϓϦʹΈࠐΉͷ͔ ϨΠςϯγ͕69ʹ༩͑ΔӨڹΛݮ͢ΔͨΊ αʔόʔʹૹ৴͢Δʢ৺ཧతɾ๏తʣϋʔυϧ͕ߴ͍σʔλΛऔΓѻ͏ͨΊ
Slide 10
Slide 10 text
ϞόΠϧΞϓϦͷػցֶशϞσϧͷΈࠐΈ 5FOTPS'MPXGPS.PCJMF 5FOTPS'MPX-JUF .-,JUʢ'JSFCBTF.-,JUʣ
Slide 11
Slide 11 text
5FOTPS'MPX-JUF σόΠε্ͰͷਪΛՄೳʹ͢ΔϑϨʔϜϫʔΫɻ 5FOTPS'MPXͷαϒηοτϥΠϯλΠϜͰɺར༻Ͱ ͖ͳ͍ΦϖϨʔγϣϯ͕͋Δɻ "OESPJEJ04ΤοδσόΠεʹରԠɻ IUUQTXXXUFOTPSqPXPSHMJUF
Slide 12
Slide 12 text
.-,JUCFUBʢ'JSFCBTF.-,JUʣ (PPHMF͕ఏڙ͢ΔαʔϏεͰɺ(PPHMF͕࡞ͨ͠ػցֶश ϞσϧΛ"OESPJEJ04ΞϓϦʹΈࠐΜͩΓɺΦϦδφϧͷ ΞϓϦΛ৴Ͱ͖Δɻ w7JTJPO w-BOHVBHF w$VTUPN IUUQTEFWFMPQFSTHPPHMFDPNNMLJU
Slide 13
Slide 13 text
.-,JU7JTJPO #BSDPEF4DBO 'BDF%FUFDUJPO *NBHF-BCFMJOH -BOENBSL%FUFDUJPO 0CKFDU%FUFDUJPO5SBDLJOH 5FYU3FDPHOJUJPO IUUQTEFWFMPQFSTHPPHMFDPNNMLJU
Slide 14
Slide 14 text
.-,JU-BOHVBHF -BOHVBHF*EFOUJpDBUJPO 0O%FWJDF5SBOTMBUJPO 4NBSU3FQMZ IUUQTEFWFMPQFSTHPPHMFDPNNMLJU
Slide 15
Slide 15 text
.-,JU$VTUPN ඞཁʹԠͨ͡Ϟσϧͷμϯϩʔυ ϞσϧͷࣗಈΞοϓσʔτ Ϟσϧͷ"#ςετ Ϟσϧͷಈతʢ%ZOBNJDʣͳબ IUUQTEFWFMPQFSTHPPHMFDPNNMLJU
Slide 16
Slide 16 text
ػցֶशϫʔΫϑϩʔ σʔληοτͷඋ ϞσϧͷֶशͱධՁ ϞσϧͷσϓϩΠ ਪ
Slide 17
Slide 17 text
'PPE(BMMFSZ ʹอଘ͞Ε͍ͯΔࣸਅͷ৯͚ͩΛදࣔʢ৯ Ҏ֎Λಁաͯ͠දࣔʣͯ͠Ұཡ͢ΔΞϓϦɻ IUUQTHJUIVCDPNLFJKJGPPE@HBMMFSZ@XJUI@UFOTPSqPX
Slide 18
Slide 18 text
def _export_graph(sess, input_tensors, output_tensors, output_dir): output_path = os.path.join(output_dir, 'model.tflite') converter = TFLiteConverter.from_session(sess, input_tensors, output_tensors) # converter.post_training_quantize = True tflite_model = converter.convert() open(output_path, "wb").write(tflite_model) Ϟσϧͷग़ྗʢ5FOTPS'MPX-JUFʣ
Slide 19
Slide 19 text
val tfInference = Interpreter( model, options) val resizedImageBuffer = ByteBuffer .allocateDirect(IMAGE_BYTES_LENGTH) .order(ByteOrder.nativeOrder()) val inputBuffer = ByteBuffer .allocateDirect(IMAGE_BYTES_LENGTH * 4) .order(ByteOrder.nativeOrder()) val resultBuffer = ByteBuffer .allocateDirect(4) .order(ByteOrder.nativeOrder()) Ϟσϧͷ࣮ߦ JPLFJKJGPPEHBMMFSZ*NBHF3FDPHOJ[FSLU
Slide 20
Slide 20 text
val scaledBitmap = Bitmap.createScaledBitmap(bitmap, IMAGE_WIDTH, IMAGE_HEIGHT, false) resizedImageBuffer.rewind() scaledBitmap.copyPixelsToBuffer(resizedImageBuffer) inputBuffer.rewind() for (index in (0..IMAGE_BYTES_LENGTH - 1)) { inputBuffer.putFloat(resizedImageBuffer[index].toInt().and(0xFF).toFloat()) } inputBuffer.rewind() resultBuffer.rewind() tfInference.run(inputBuffer, resultBuffer) resultBuffer.rewind() val confidence = resultBuffer.getFloat() Ϟσϧͷ࣮ߦ JPLFJKJGPPEHBMMFSZ*NBHF3FDPHOJ[FSLU
Slide 21
Slide 21 text
Ϟσϧͷ࣮ߦ Input Output Interpreter tfInference inputBuffer resultBuffer લॲཧ σίʔυ
Slide 22
Slide 22 text
ϞσϧΛΈࠐΉ্Ͱͷ՝ Ϟσϧͷେ͖͞ ࣮ߦ ফඅϝϞϦ Ϟσϧͷอޢ ϢʔβʔϓϥΠόγʔ
Slide 23
Slide 23 text
.#Λ͑ΔϞσϧ IUUQTHJUIVCDPNLFJKJGPPE@HBMMFSZ@XJUI@UFOTPSqPXSFMFBTFTUBH
Slide 24
Slide 24 text
ϞσϧͷΞʔΩςΫνϟΛมߋ
Slide 25
Slide 25 text
ϞσϧʢύϥϝʔλʔʣͷྔࢠԽ CJUුಈখΛCJUʹมʢྔࢠԽʣ
Slide 26
Slide 26 text
ྔࢠԽͷબࢶ 1PTUUSBJOJOH2VBOUJ[BUJPO 2VBOUJ[BUJPOBXBSF5SBJOJOH
Slide 27
Slide 27 text
1PTUUSBJOJOHRVBOUJ[BUJPO def _export_graph(sess, input_tensors, output_tensors, output_dir): output_path = os.path.join(output_dir, 'model.tflite') converter = TFLiteConverter.from_session(sess, input_tensors, output_tensors) converter.post_training_quantize = True tflite_model = converter.convert() open(output_path, "wb").write(tflite_model)
Slide 28
Slide 28 text
if model.QUANTIZATION: g = tf.get_default_graph() tf.contrib.quantize.create_training_graph(input_graph=g, quant_delay=2000000) IUUQTHJUIVCDPNUFOTPSqPXUFOTPSqPXUSFFSUFOTPSqPXDPOUSJCRVBOUJ[F 2VBOUJ[BUJPOBXBSFUSBJOJOH
Slide 29
Slide 29 text
ϞσϧΛྔࢠԽ
Slide 30
Slide 30 text
"OESPJE/FVSBM/FUXPSLT"1* ϞόΠϧ্ͰػցֶशͷܭࢉॲཧΛ࣮ߦ͢ΔͨΊʹઃܭ͞Εͨɻ IUUQTEFWFMPQFSBOESPJEDPNOELHVJEFTOFVSBMOFUXPSLT "OESPJEʢ"1*ϨϕϧʣҎ߱ͰରԠɻ IUUQTCMPHLFJKJJPUFOTPSqPXBEWFOU@DBMFOEBSIUNM ͍·//"1*ʢ5FOTPS'MPX-JUFʣ͑Δͷ͔
Slide 31
Slide 31 text
ਪͷൺֱ ػछ໊ NN API͋Γ NN APIͳ͠ Essential PH-1 556,323ns 185,372,624ns Pixel 2 450,807ns 187,395,464ns Pixel 3 477,489ns 129,994,563ns IUUQTHJUIVCDPNLFJKJGPPE@HBMMFSZ@XJUI@UFOTPSqPXSFMFBTFTUBHUqJUF@OOBQJ
Slide 32
Slide 32 text
͞·͟·ͳ੍ εΧϥʔͰͷԋࢉ͕Ͱ͖ͳ͍ɻʷOPSNBMJ[FE@JNBHFJNBHF@QI εϥΠε͕͑ͳ͍ɻʷJNBHFJNBHF< > )ZQFSCPMJD5BOHFOU͕͑ͳ͍ɻʷPVUQVUUGUBOI PVU@P⒎TFU IUUQTXXXUFOTPSqPXPSHMJUFHVJEFPQT@DPNQBUJCJMJUZVOTVQQPSUFE@PQFSBUJPOT
Slide 33
Slide 33 text
ਫ਼͕ۃʹԼ
Slide 34
Slide 34 text
max: 14.586626 min: -3.8083103 ϞσϧΛߏ͍ͯ͠Δύϥϝʔλʔͷ࠷େɾ࠷খΛ֬ೝ
Slide 35
Slide 35 text
Ϟσϧઃܭͷ࣌Ͱʮଌఆͱௐʯ σʔληοτͷඋ ϞσϧͷֶशͱධՁ ϞσϧͷσϓϩΠ ਪ Ϟσϧͷઃܭ
Slide 36
Slide 36 text
ଌఆʹج͍ͮͨϞσϧͷௐ Ϟσϧͷઃܭ Ϟσϧͷௐ TensorFlow Liteม ʢྔࢠԽʣ αΠζɾ࣮ߦ ଌఆ
Slide 37
Slide 37 text
ΞϓϦଆͰͷվળ /BWJFSגࣜձࣾ φϏΤʣ ౦ژจژ۠ຊڷຊڷ࢛ஸϏϧ' σΟʔϓϥʔχϯάΛ༻͍ͨը૾มٕज़ͷ։ൃ͓ΑͼιϑτΣΞͷఏڙ IUUQTXXXOBWJFSDP Ϟσϧมߋͤͣɺ࣮ߦΛ̏ʙ̐ഒʹߴԽ
Slide 38
Slide 38 text
Ϟσϧͷอޢ ʰΞϓϦʹΈࠐΉʹͨͬͯɺϞσϧʢΞʔΩςΫνϟɾ ύϥϝʔλʔʣ͕֎෦ʹྲྀग़͠ͳ͍Α͏ʹอޢ͍ͨ͠ʱ
Slide 39
Slide 39 text
Ϟσϧͷܗࣜ 5FOTPS'MPX-JUFͷϞσϧ'MBU#V⒎FSTɻ 'MBU#V⒎FSTɺσʔλͷల։ύʔεΛͤͣετϨʔδ ্ͷσʔλʹϝϞϦΞυϨεΛϚοϓͯ͠ΞΫηε͢Δ ͜ͱͰɺϝϞϦͷϑοτϓϦϯτΛݮ͢Δ ʢʹ҉߸Խͨ͠'MBU#V⒎FSTͷϑΝΠϧɺಁաతʹಡΈ ࠐΉ͜ͱ͕Ͱ͖ͳ͍ʣɻ
Slide 40
Slide 40 text
෮߸Խͯ͠ҰϩʔΧϧϑΝΠϧʹอଘ assets app local ϑΝΠϧಡΈࠐΈ Interpreter ෮߸Խॲཧ
Slide 41
Slide 41 text
ϢʔβʔϓϥΠόγʔ ػցֶशͷϞσϧΛܧଓతʹվળ͢ΔͨΊʹɺσʔλ͕ඞཁɻ Ϣʔβʔͷ͍ΔΞϓϦͷ߹ɺϢʔβʔ͔ΒσʔλΛఏڙʢૹ৴ɾอଘʣ͢Δ ߹ҙΛಘΔඞཁ͕͋Δɻ ϓϥΠόγʔσʔλͷऔΓѻ͏ମ੍Λ͑Δඞཁ͕͋Δɻσʔλͷ༰ʹΑͬ ͯ๏ʹΑΔن੍͋Δɻ
Slide 42
Slide 42 text
'FEFSBUFE-FBSOJOH ͯ͢ͷσʔληοτΛαʔόʔ্Ͱॲཧ͢ΔʮूதτϨʔχϯάʯͱҟͳ ΓɺҰͭҰͭͷ্ͰϞσϧͷֶशͷલஈॲཧΛߦ্ͬͨͰɺαʔόʔʹૹ ৴ͯ͠ฏۉԽ͢Δɻ IUUQTEFWFMPQFSTKQHPPHMFCMPHDPNGFEFSBUFEMFBSOJOHDPMMBCPSBUJWFIUNM
Slide 43
Slide 43 text
C-LIS CO., LTD. ຊࢿྉɺ༗ݶձࣾγʔϦεͷஶ࡞Ͱ͢ɻຊࢿྉͷશ෦ɺ·ͨҰ෦ʹ͍ͭͯɺஶ࡞ऀ͔ΒจॻʹΑΔڐΛಘͣʹෳ͢Δ͜ͱې͡ΒΕ͍ͯ·͢ɻ 5IF"OESPJE4UVEJPJDPOJTSFQSPEVDFEPSNPEJpFEGSPNXPSLDSFBUFEBOETIBSFECZ(PPHMFBOEVTFEBDDPSEJOHUPUFSNTEFTDSJCFEJOUIF$SFBUJWF$PNNPOT"UUSJCVUJPO-JDFOTF ໊֤ɾϒϥϯυ໊ɺձ໊ࣾͳͲɺҰൠʹ֤ࣾͷඪ·ͨొඪͰ͢ɻຊࢿྉதͰɺɺɺäΛׂѪ͍ͯ͠·͢ɻ 5IF"OESPJESPCPUJTSFQSPEVDFEPSNPEJpFEGSPNXPSLDSFBUFEBOETIBSFECZ(PPHMFBOEVTFEBDDPSEJOHUPUFSNTEFTDSJCFEJOUIF$SFBUJWF$PNNPOT"UUSJCVUJPO-JDFOTF