238 Views
August 10, 19
スライド概要
2019/08/09 Fab-core cafe にて発表した資料
闇のエンジニア/変なデジカメ開発中/ディープラーニング芸人/Raspberry Piとからあげ大好き/はてなブログ書いてます
"*ΤοδσόΠεೖ ه͢ΔΧϝϥ͔Βࢥߟ͢ΔΧϝϥ $IBOHFGSPNSFDPSEJOHUPUIJOLJOH
ࣗݾհ ໊લɿ͔Β͋͛ʢຊ໊ॹʣ ͓ࣄɿѪݝͷΈࠐΈܥΤϯδχΞ Ոɿ࠺ɾ່ʢͦΕͧΕਓʣ झຯɿΧϝϥͱిࢠ࡞ LBSBBHFͱ͍͏ٕज़ܥʢʁʣ ͷϒϩάΛॻ͍͍ͯ·͢ IUUQLBSBBHFIBUFOBEJBSZKQ
࡞ͬͨͷͷҰ෦
ओͳஶॻɾྗڠ ϥζύΠϚΨδϯɾܦ-JOVYɾ ࣗͰಈ͔͢ਓೳ
ड "JEFNZOPUFಛผड
σΟʔϓϞβΠΫ
(PPHMFͷษڧձͰొஃ TFUG ϋʔυ෦ɿJetson Nano, Edge TPU & TF Lite micro ಛू IUUQTUGVHUPLZPDPOOQBTTDPNFWFOU (PPHMF͞Μͱ/7*%*"͞Μʹ·ڬΕͯ"*ʹؔͯ͠ϓϨθϯʂʁ
ࠓͷΞδΣϯμ "*ͬͯԿʁσΟʔϓϥʔχϯάͬͯԿʁ σΟʔϓϥʔχϯά͕ಘҙͳ͜ͱ ͓͢͢Ί"*ΤοδσόΠε "*ΤοδσόΠεͰը૾ೝࣝ "*ਓࡐΛͲ͏ͬͯखʹೖΕΔʁ
࣭ "*ͬͯԿͰ͠ΐ͏ʁ
ʢࣗͷʣ͑ Α͔͘Γ·ͤΜ ʢఆ͕ٛ͋Γ·ͤΜʣ
"*ͷఆٛͷྫ ग़యɿদඌ๛ʮਓೳਓؒΛ͑Δ͔ʯ
࣭ ػցֶशͬͯԿʁ σΟʔϓϥʔχϯάͬͯԿʁ
8IBUJTػցֶशʁ ϧʔϧΛؤுͬͯ ࡞Γ͜Ήͷ͕ॏཁ %BUB *OQVU ैདྷͷ ϓϩάϥϜ %BUB 0VUQVU ػցֶश 1SPHSBN 3VMFT 1SPHSBN 3VMFT σʔλ͕ॏཁ %BUB *OQVU %BUB 0VUQVU ϧʔϧσʔλ͔Β ࣗಈతʹੜ͞ΕΔ ػցֶशσʔλ͕ॏཁ
8IBUJTσΟʔϓϥʔχϯάʁ ࢣڭσʔλ ग़ྗ ٯࠩޡ ग़ྗ͕ਖ਼ղʹۙͮ͘Α͏ʹύϥϝʔλΛֶश ਓؒͷͷΈΛࢀߟʹͨ͠ػցֶशͷख๏ ʮΞϧΰϦζϜվળʯʮݯࢿࢉܭͷ૿ՃʯʮϏοάσʔλʯ ʹΑΓੑೳ͕ඈ༂తʹਐԽ
Ұൠతͳ֓೦ਤ ਓೳ ػցֶश "* .BDIJOF-FBSOJOH %FFQ -FBSOJOH
࣭ σΟʔϓϥʔχϯά͕ ಘҙͳ͜ͱͬͯԿͰ͠ΐ͏ʁ
ʢࣗͷʣ͑ ը૾ೝࣝ
ڀݚϨϕϧͰʹطਓΛ͍͑ͯΔ ώϯτϯઌੜ͕σΟʔϓϥʔχϯάͰ ίϯϖͰѹউ͠িܸΛ༩͑Δ ʹʹطਓؒΛ ͍͑ͯΔ "MFY/FU ;'/FU (PPH-F/FU 7((/FU 3FT/FU /7*%*"ҎԼαΠτΑΓҾ༻ IUUQTEFWCMPHTOWJEJBDPNNPDIBKMEFFQMFBSOJOHKVMJB
தখۀاɾݸਓϨϕϧͰ༻׆ਐΉ"*ը૾ೝࣝ ͖Ύ͏ΓͷબՌ ΫϦʔχϯά͞Μͷ "*ηϧϑϨδ "*ΤοδσόΠε͕ͯ͠༻׆ Χϝϥͷׂ͕ه͔ΒࢥߟʹมԽ
"*ΤοδσόΠεઓࠃ࣌ খ҆ͰܕՁͳ"*ΤοδσόΠε͕ "*ͷ༻׆Λޙԡ͍ͯ͠͠Δ
ݸਓతͳ͓͢͢Ί +FUTPO/BOP
+FUTPO/BOPͷྑ͍ͱ͜Ζ 4%Χʔυىಈɻ4%ΧʔυΛ ࡞Ͱ͖Δ1$ 8JOEPXT 1$ ͑͋͞Ε͑Δ /7*%*"(16 $6%"ରԠ ๛ͳϥζύΠ ޓͷ*0 764#ίωΫλిڅ ߴੑೳͰখͳܕϥζύΠ༻ Χϝϥ͕ଓͰ͖Δ ωοτͰެ։͞Ε͍ͯΔιϑτ͕ ʢؤுΕΘΓͱʣͦͷ··ಈ͘
+FUTPO/BOPྫ༻׆ +FUTPO/BOPͰը૾ೝࣝΛݸͨ͠༻׆ਓͷϞϊͮ͘Γ .BLFS'BJSF5PLZP
+FUTPO/BOPͰը૾ೝࣝ
+FUTPO/BOPͰը૾ྨͱମݕग़ ਓͷࣸਅ 1FPQMF ը૾ྨ ͦͷը૾͕Կ͔Λྨ ମݕग़ ը૾ͷͲ͜ʹԿ͕͋Δ͔Λݕग़ ϑϦʔૉࡐఏڙɿมσδॴڀݚIUUQTMBCIFOEJHJDPN
σΟʔϓϥʔχϯάͷը૾ྨ։ൃϑϩʔ ೖྗը૾ ೖྗը૾ ೖྗը૾ ೖྗը૾ ࢣڭσʔλ ֶश ֶशϞσϧ ֶशͷϑϩʔ ςετը૾ ֶशϞσϧ ݁Ռ ೝࣝͷϑϩʔ ֶशͱೝࣝͱͭͷεςοϓͰ࣮ݱ
ֶशʹؔͯ͠ ೖྗը૾ ೖྗը૾ ೖྗը૾ ೖྗը૾ ࢣڭσʔλ ֶश ֶशϞσϧ ֶशͷϑϩʔ (PPHMF$PMBCPSBUPSZͱ͍͏ߏڥஙෆཁɾແྉͰ ͑Δϒϥβ্ͷ1ZUIPO࣮ߦڥΛ༻ ࢣڭσʔλͷऩू͔Β5FOTPS'MPXʢ,FSBTʣΛͬ ֶͨशͱֶशϞσϧͷอଘ·Ͱߦ͏
ֶशͷํ๏ ༗ྉOPUFͰνϡʔτϦΞϧެ։ͯ͠·͢ IUUQTOPUFNVLBSBBHFOOCDEEEF ͦͷଞͷ༏ྑͳνϡʔτϦΞϧɺҎԼࢀࣄهর͍ͩ͘͞ IUUQTLBSBBHFIBUFOBEJBSZKQFOUSZ
+FUTPO/BOPͰը૾ྨ ҎԼߦͰֶशࡁΈͷϞσϧΛͬͨը૾ྨͷ ςετ͕Մೳ HJUDMPOFIUUQTHJUIVCDPNLBSBBHFLFSBTQJ DELFSBTQJ QZUIPOJOTQFDU@DBNFSBQZEKFUTPO@OBOP@SBTQJ@DBN 1$ɾϥζύΠͰɺಉ͡ιϑτ͕ಈ͖·͢ ʢҰ෦ΦϓγϣϯͳͲมߋཁʣ
+FUTPO/BOPͰը૾ྨ
σόΠεຖͷը૾ೝࣝ࣌ؒ Ϟσϧɿࣗ࡞ͷখܕχϡʔϥϧωοτϫʔΫ ຕͷը૾ͷೝࣝʹ͔͔Δ࣌ؒΛଌఆ ೝࣝ࣌ؒ<ඵ> ϥζύΠ +FUTPO/BOP J.BD ϥζύΠΑΓഒߴɾ1$ͱ΄΅ಉ
+FUTPO/BOPͰମݕग़
σΟʔϓϥʔχϯάͷମݕग़։ൃϑϩʔ ೖྗը૾ ೖྗը૾ ೖྗը૾ ೖྗը૾ ࢣڭσʔλ ֶश ֶशϞσϧ ֶशͷϑϩʔ ςετը૾ ֶशϞσϧ ݁Ռ ೝࣝͷϑϩʔ ։ൃͷϑϩʔࣗମը૾ྨͱಉ͡ ֶशϞσϧΑΓߴͳʢॏ͍ʣͷʹ
5FOTPS'MPX0CKFDU%FUFDUJPO"1* (PPHMF͕ެ։͍ͯ͠Δɺମݕग़ͷͨΊͷιϑτ IUUQTHJUIVCDPNUFOTPSqPXNPEFMTUSFFNBTUFSSFTFBSDIPCKFDU@EFUFDUJPOΑΓҾ༻
5FOTPS'MPX0CKFDU%FUFDUJPO"1*ͷྑ͍ ༷ʑͳΞϧΰϦζϜʢ44% 3$// ʜFDUʣ͕ ࢼͤΔ ֶश͔Βਪ·ͰՄೳͳιϑτ͕ἧ͍ͬͯΔ ͙͑͢ΔֶशࡁΈͷϞσϧ͕ʮ.PEFM;PPʯ ͱͯ͠ެ։͞Ε͍ͯΔ
5FOTPS'MPX0CKFDU%FUFDUJPO"1*ͷѱ͍ ͍ํ͕͍͠ ʢଟগʣ͍͘͢͢ΔͨΊͷπʔϧ ʮ0CKFDU%FUFDUJPO5PPMTʯΛ࡞Γ·ͨ͠ IUUQTHJUIVCDPNLBSBBHFPCKFDU@EFUFDUJPO@UPPMT
ʮ0CKFDU%FUFDUJPO5PPMTʯͷར •ֶशιϑτͱਪιϑτΛ͠ɺڊେͳʮObject Detection APIʯແ͠Ͱखܰʹਪʢମݕग़ʣ͕ࢼͤΔεΫϦϓτΛ༻ҙ •ֶशͷखؒΛݮΒ͢ϑΝΠϧʢઃఆϑΝΠϧʣΛ༻ҙ •NVIDIA TensorRTʹΑΔJetson NanoͷϞσϧ࠷దԽεΫϦϓ τΛ༻ҙ ৄ͘͠ϒϩάࢀࣄهরԼ͍͞ IUUQTLBSBBHFIBUFOBEJBSZKQFOUSZ
+FUTPO/BOPͰମݕग़ ҎԼߦͷίϚϯυͰɺֶशࡁΈͷϞσϧμϯϩʔ υ͔Βମݕग़·ͰՄೳ $ cd && git clone https://github.com/karaage0703/ object_detection_tools $ cd ~/object_detection_tools/models $ ./get_ssdlite_mobilenet_v2_coco_model.sh $ cd ~/object_detection_tools $ python3 scripts/object_detection.py -l='models/cocolabels-paper.txt' -m=‘models/ ssdlite_mobilenet_v2_coco_2018_05_09/ frozen_inference_graph.pb’ -d=‘jetson_nano_raspi_cam’
+FUTPO/BOPͰମݕग़
σόΠεຖͷը૾ೝࣝ࣌ؒ Ϟσϧɿ44%-JUF.PCJMFOFUW༻ ຕͷը૾ͷೝࣝʹ͔͔Δ࣌ؒΛଌఆ ೝࣝ࣌ؒ<ඵ> ϥζύΠ +FUTPO/BOP J.BD ϥζύΠͷഒɾ1$ͱಉͷεϐʔυ ɿ/7*%*"5FOTPS35ͰߴԽ࣮ࢪ
ը૾ೝࣝͷੑೳΛ ্ͤ͞Δʹʁ
ࡐɿ%FFQ+BOLFO 0HBLJ.JOJ.BLFS'BJSFग़లʣ
ը૾ೝࣝਫ਼্ͷ ɾ҆ఆͨ͠ࡱӨڥͷߏங ɾֶशܦաͷ֬ೝ ɾϞσϧͷબ ɾσʔλͷਫ૿͠ ɾଟͷϑΟʔυόοΫ
ɹ҆ఆͨ͠ࡱӨڥͷߏங ϥΠτΧϝϥͰ҆ఆͨ͠ࡱӨڥΛߏங શ෦Ͱۉௐୡ
ֶशܦաͷ֬ೝ ͙͢ਫ਼͕ʹανΔ Ξοοϓμϯ܁Γฦ͠ͳ͕Β ਫ਼͕͡Θ͡Θ্͍ͯ͠Δ աֶश͍ͯ͠Δ ࢣڭσʔλ͕ྑ͘ͳ͍ ʢσʔλෆ͕େʣ ྑֶ͍श͕Ͱ͖͍ͯΔ͔ʂʁ
Ϟσϧͷબ ɾมʹ͕ΜΒͣɺ࠷ઌͷ࡞͕ऀڀݚͨ͠༏लͳϞ σϧΛબͼ·͠ΐ͏ ɾλεΫʹΑͬͯɺ࠷దͳϞσϧҟͳΔͷͰɺ৭ʑࢼ ͯ͠ΈΔͷ͕ྑ͍Ͱ͢ ɾେ͖͍ϞσϧɺେྔͷσʔλΛલఏͱ͍ͯ͠ΔͷͰɺ σʔλ͕ͦΕ΄Ͳେ͖͘ແ͍ʢඦຕʣ߹ɺখ͍͞ ϞσϧΛͬͨํ͕ྑ͍߹͋Γ·͢
σʔλͷਫ૿͠ ৭ʑͳख๏͕͋ΔɻσΟʔϓϥʔχϯάͷ ϑϨʔϜϫʔΫʹඪ४తͳػೳ͕උΘͬͯ ͍ΔͷͰɺ·ͣͦΕΛ͏ͷ͕ྑ͍
ࣦഊύλʔϯΛֶ͚ͯͭݟश ֶश ςετ μϝͳύλʔϯͷ ࢣڭσʔλऔಘ μϝͳύλʔϯͷྫʢδϟϯέϯͷ߹ʣ ɾखͷ֯ͷҧ͍ ɾखͷܗͷҧ͍ʢਓʹΑͬͯҟͳΔʣ ɾάʔɺνϣΩɺύʔҎ֎ͷख ɾࣗҎ֎ͷਓͷखʢࢠڙͷखʣ ɾͷକ ɾFUDʜ ಓͳςετɾ/(ύλʔϯऩूɾֶशϑΟʔυόοΫͷ܁Γฦ͠ టष͍࡞͕ۀଟ͍Ͱ͢
ࣦഊύλʔϯΛֶ͚ͯͭݟश ֶश ςετ μϝͳύλʔϯͷ ࢣڭσʔλऔಘ μϝͳύλʔϯͷྫʢδϟϯέϯͷ߹ʣ ɾखͷ֯ͷҧ͍ ɾखͷܗͷҧ͍ʢਓʹΑͬͯҟͳΔʣ ɾάʔɺνϣΩɺύʔҎ֎ͷख ɾࣗҎ֎ͷਓͷखʢࢠڙͷखʣ ɾͷକ ɾFUDʜ ಓͳςετɾ/(ύλʔϯऩूɾֶशϑΟʔυόοΫͷ܁Γฦ͠ టष͍࡞͕ۀଟ͍Ͱ͢
"*ਓࡐͷํ͚ͭݟ
"*ਓࡐΛͲ͏͚ͭݟΔ͔ "*ਓࡐͷՁ֨ߴಅʂ ո͛͠ͳ"*ϕϯνϟʔଟ͍ʜ ͍ͳ͚ΕɹҭͯͯΈΑ͏ɹ"*ਓࡐ ͔Β͋͛৺ͷആ۟
"*Ͱ༻׆େͳ͜ͱ ࣮ࡍͷ"*γεςϜͰػցֶशʢσΟʔϓϥʔχϯάʣͷٕज़͕ΊΔׂ߹ NIPS2015จ"Hidden Technical Debt in Machine Learning Systems" ΑΓҾ༻ "*ٕज़ॏཁ͚ͩΕͲɺશମͷۃҰ෦ "*ٕज़ऀ͕ۀࣝΛֶͿΑΓ "*ٕज़ऀΛҭͨ͠ํ͕ۙಓ͔
σΟʔϓϥʔχϯά͓͡͞Μͷࣄྫ IUUQTLBSBBHFIBUFOBEJBSZKQFOUSZ
σΟʔϓϥʔχϯά͓͡͞Μͷي ϲ݄ σΟʔϓϥʔχϯάͷը૾ೝࣝσϞΛʹ*"ͯݟ֮ΊΔ िؒޙ -JOVYɾ"*ڥηοτΞοϓ ϲ݄ޙ 1ZUIPOͰը૾ೝࣝϓϩάϥϜ։ൃ ࣄͰ༻׆։࢝ ϲ݄ޙ ηϛφʔࢀՃͷߨࢣͱରʹٞ ϲ݄ޙ +FUTPO5959Λͣͭἧ͑ͯσΟʔϓϥʔχϯά࣮ݧ ϲ݄ޙ ձࣾͷ"*ઓུΛಈ͔͢ਓࡐʹ ΄΅ಠֶͰٕ*"Ͱؒظज़Λʹ͚ͭۀͰ༻׆
ແྉɾ֨҆ͷࡐڭɺֶशڥᷓΕ͍ͯΔ खΛಈ͔͠ͳ͕ΒֶΔσΟʔϓϥʔχϯάͷ༏ྑͳνϡʔτϦΞϧ IUUQTLBSBBHFIBUFOBEJBSZKQFOUSZ ඞཁͳͷͱηϯεͱ࠷ݶͷ͓ۚ ʢ1$ɺॻ੶ɺηϛφʔͳͲένΒͳ͍ʣ
"*ਓࡐ͋ͳ͔ͨʁ
ه͔Βࢥߟ ૾͔Β
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠