ը૾ղੳΛར༻ͨ͠ੜ࢈‫ݱ‬৔ͷঢ়ଶ‫ٕࢹ؂‬ज़ʹؔ͢Δ‫ڀݚ‬ʢୈ̏ใʣੜ࢈ٕज़෦
த໺ଠ࿠ େ௶তจ ෱ౡষ‫ޗ‬ɹຊ‫ڀݚ‬͸ɼੜ࢈‫ݱ‬৔ʹ͓͚Δ֬ೝɾ‫ʹۀ࡞ࢹ؂‬ը૾ղੳٕज़Λద༻͢Δ͜ͱͰɼ੡଄޻ఔͷঢ়ଶͷ೺Ѳ΍؅ཧΛࣗಈԽ͢Δٕज़։ൃʹऔΓ૊Ή΋ͷͰ͋Δɽຊ೥౓͸ɼਂ૚৞ΈࠐΈχϡʔϥϧωοτϫʔΫ (Deep Convolution Neural Networks) ΛసҠֶश͠ɼટ൫Ճ޻ͷ޻ఔ෼ྨ໰୊ʹద༻͢Δख๏ʹ͍ͭͯ‫ݕ‬౼ͨ͠ɽͦͷ݁Ռɼෳ਺ͷ੡଄޻ఔύλʔϯΛ‫ؚ‬Ή‫༻ূݕ‬ͷσʔληοτʹର͠ɼ޻ఔ෼ྨͷਖ਼ղ཰͕ 92.7ʙ99.8%ͱ͍͏ߴ͍ࣝผ
ੑೳ͕ಘΒΕͨɽ·ͨɼະ஌ͷσʔλʹର͢Δ൚Խੑೳʹ͓͍ͯ΋ SVMʢSuport VectorMachineʣΑΓ΋େ෯ʹ༏Ε͍ͯΔ͜ͱΛ֬ೝͨ͠ɽ͞Βʹɼߏஙͨ͠ը૾ղੳϞσϧΛ૊ΈࠐΜͩࣗ཯‫ܕ‬ͷ޻ఔղੳΤοδσόΠεΛ੡࡞͠ɼۙ‫཭ڑ‬ແઢ௨৴ͳͲͷ IoT ٕज़ͱ࿈‫ͤ͞ܞ‬Δ͜ͱͰɼσʔλͷऩूɾ஝ੵɾՄࢹԽ·ͰΛΦʔτϝʔγϣϯԽͨ͠޻ఔਐ௙ͷ‫ࢹ؂‬ɾ‫ܭ‬ଌγεςϜΛ։ൃͨ͠ɽ

1. ͸͡Ίʹɹ΋ͷͮ͘Γͷੜ࢈‫ݱ‬৔ʹ͓͍ͯ͸ɼੜ࢈ઃඋͷՔಇঢ়ଶ΍੡଄඼ͷ֎‫؍‬඼࣭ͳͲΛ߃ৗతʹ֬ೝ͢Δඞཁ͕͋Δɽ·ͨɼ඼࣭؅ཧ΍ੜ࢈ੑͷվળ‫׆‬ಈʹ‫׆‬༻͢ΔͨΊʹɼՃ޻޻ఔͷਐ௙ঢ়‫گ‬ΛΑΓࡉ෼Խͯ͠೺Ѳ͢Δ͜ͱ͕‫ٻ‬ΊΒΕ͍ͯΔɽ͔͠͠ɼͦͷଟ͘Λ໨ࢹ֬ೝ΍खॻ͖ೖྗ౳ʹཔ͍ͬͯΔͨΊɼ‫ݸ‬ਓࠩ΍‫ݟ‬མͱ͠ͳͲ͕ੜ͡Δ໰୊͕͋Δɽ͞Βʹɼ‫ݕ‬ࠪ΍֬ೝ࡞‫ֻ͔ʹۀ‬Δίετͷେ෦෼͸ਓ݅අͰ͋Γɼਓखෆ଍ରࡦͱͯ͠΋ɼࣗಈ‫ػ‬ͷಋೖʹΑΔੜ࢈ޮ཰ͷ޲্ɾলਓԽ͕‫ظ‬଴͞Ε͍ͯΔɽͦ͜Ͱɼຊ‫ݚ‬‫Ͱڀ‬͸ɼੜ࢈‫ݱ‬৔ʹ͓͚Δ֬ೝɾ‫ʹۀ࡞ࢹ؂‬ը૾ղੳٕज़Λద༻͢Δ͜ͱͰɼ੡଄޻ఔͷঢ়ଶͷ೺Ѳ΍؅ཧΛࣗಈԽ͢Δٕज़։ൃʹऔΓ૊Ήɽɹࡢ೥౓͸ɼ‫ػ‬ցֶशͷҰछͰ͋Δ Support Vector
Machine(SVM) Λ༻͍ͨը૾ղੳʹΑΓɼટ൫Ճ޻ͷ޻ఔਐ௙Λ 4 ޻ఔʹࡉ෼Խͯ͠೺Ѳ͢Δ͜ͱΛࢼΈɼ
89.5%ͱ͍͏ൺֱతߴ͍ਖ਼ղ཰Ͱࣝผ͕ՄೳͰ͋Δ͜Λ֬ೝͨ͠ 1) ɽͩͨ͠ɼֶशσʔλʹ‫·ؚ‬Ε͍ͯͳ͍ະ஌ͷ੡඼‫ܗ‬ঢ়ͷ෼ྨਫ਼౓ʢ൚Խੑೳʣʹؔ͢Δ‫͕ূݕ‬ෆे෼Ͱ͋Γɼଟ༷ͳ੡඼͕੡଄͞Ε͍ͯΔ࣮ࡍͷੜ࢈޻ఔ΁ͷదԠʹؔͯ͠‫ݒ‬೦͕࢒ͬͨɽɹͦ͜Ͱɼຊ೥౓͸ɼෳ਺ͷ੡඼඼൪ͷ޻ఔࡱӨը૾Ͱߏ੒͞ΕΔɼ൚ԽੑೳධՁ༻ͷσʔληοτΛ༻ҙ͠ɼSVM ͷ෼ྨਫ਼౓ʹؔ͢Δ௥Ճ‫ূݕ‬Λߦͬͨɽ·ͨɼҰൠతͳ‫ػ‬ցֶशϞσϧΑΓ΋ը૾෼ྨਫ਼౓͕ߴ͍ͱ͞ΕΔਂ૚ֶशϞσϧΛɼટ൫Ճ޻ͷ޻ఔ෼ྨ໰୊ʹద༻Ͱ͖ΔΑ͏సҠֶश͠ɼ൚Խੑೳ͓Αͼ࣮ߦॲཧ଎౓ʹؔ͢Δ SVM ͱͷൺֱ‫ূݕ‬Λ࣮ࢪͨ͠ɽ͞Βʹɼਂ૚ֶशϞσϧʹΑΔը૾ղੳ‫ػ‬ೳΛ૊ΈࠐΜͩઐ༻ΤοδσόΠεΛ੡࡞͠ɼIoT ٕज़ͱ࿈‫͢ܞ‬Δ͜ͱͰ޻ఔਐ௙Λࣗಈతʹ‫ࢹ؂‬ɾ‫ܭ‬ଌ͢ΔγεςϜͷ։ൃΛߦͬͨɽ

2. ਂ૚ֶश
2.1 ਂ૚৞ΈࠐΈχϡʔϥϧωοτϫʔΫɹۙ೥ɼը૾ೝࣝͷ෼໺Ͱ͸ɼ৞ΈࠐΈχϡʔϥϧωοτϫʔΫ (Convolution Neural Networks) Λਂ૚Խ͢Δ͜ͱʹΑΓը૾ࣝผਫ਼౓Λඈ༂తʹ޲্ͤͨ͞ਂ૚৞ΈࠐΈχϡʔϥϧωοτϫʔΫ (Deep Convolution Neural NetworksɼҎԼ DCNN) ͷ‫͕ڀݚ‬੝ΜʹߦΘΕ͓ͯΓɼैདྷͷख๏Λେ্͖͘ճΔࣝผੑೳΛୡ੒͢Δࣄྫ͕਺ଟ͘ใࠂ͞Ε͍ͯΔɽ
ɹ DCNN ͸ɼର৅ʹదԠͨ͠ಛ௃ྔநग़ϑΟϧλ΍֤Ϣχοτͷ݁߹ॏΈ͕ɼֶशʹΑͬͯਂ૚Խ͞ΕͨωοτϫʔΫ಺ʹߏங͞ΕΔͨΊɼख࡞‫Ͱۀ‬ಛ௃ྔΛઃ‫͢ܭ‬Δ͜ͱͳ͘ɼಛ௃ྔநग़‫͓ث‬Αͼ෼ྨ‫ͱث‬ͯ͠‫ػ‬ೳ͢Δͱ͍͏ಛ௃͕͋Δɽͨͩ͠ɼ਺ԯʹ΋‫Ϳٴ‬ύϥϝʔλΛ࣋ͭ DCNN Λֶशͤͯ͞ɼߴ౓ͳࣝผੑೳΛൃ‫͢ش‬Δਂ૚ֶशϞσϧΛߏங͢ΔͨΊʹ͸ɼ਺ඦສͱ͍͏‫ن‬໛ͷαϯϓϧը૾Λ༻͍ɼ๲େͳ࣌ؒΛֶֻ͚ͯश͢Δඞཁ͕͋Δ 2) ɽɹ͔͠͠ͳ͕Βɼ΋ͷͮ͘Γͷੜ࢈‫ݱ‬৔΁ͷը૾ղੳͷద༻Λߟྀͨ͠৔߹ɼଟ༷ͳࡱӨ৚݅ʹ͓͚Δը૾Λ࣮ࡍͷੜ࢈‫ݱ‬৔Ͱऩू͢Δ͜ͱ͸༰қͰ͸ͳ͘ɼ‫ݸ‬ʑͷҊ݅ʹରͯ͠‫ݸ‬ผʹ‫ڊ‬େͳֶशσʔληοτΛ࡞੒͠ɼ৽‫ʹن‬ϞσϧΛߏங͢Δ͜ͱ͸‫࣮ݱ‬తʹࠔ೉Ͱ͋Δɽͦ͜Ͱɼຊ‫Ͱڀݚ‬͸ɼֶशࡁΈϞσϧΛ࠶ར༻͢Δ͜ͱͰޮ཰తʹτϨʔχϯάΛߦ͏స ҠֶशΛટ൫Ճ޻ͷ޻ఔ෼ྨ໰୊ʹద༻͠ɼগྔͷ3. σʔληοτͷߏங‫܇‬࿅σʔλʢ਺ඦʙ਺ઍ‫ݸ‬ʣͰߴ͍෼ྨਫ਼౓Λୡ੒ɹࡢ೥౓ͷ‫͍͓ͯʹڀݚ‬ɼSVM Λ༻͍Δ͜ͱͰಛఆ͢Δը૾ղੳϞσϧͷߏஙํ๏ʹ͍ͭͯ‫ݕ‬౼ͨ͠ɽͷ੡඼‫ܗ‬ঢ়ͷ޻ఔ෼ྨʹ͓͍ͯൺֱతߴ͍෼ྨਫ਼౓

2.2 సҠֶश͕ಘΒΕ͕ͨɼֶशσʔλʹ‫·ؚ‬Ε͍ͯͳ͍ɼະ஌ͷɹసҠֶश (transfer learning) ͱ͸ɼ͋Δ‫ͳͱݩ‬Δυ੡඼ʹର͢Δ޻ఔ෼ྨʹؔͯ͠ɼਖ਼ղ཰͕ѱԽ͢ΔϝΠϯʢsource domainʣͰಛఆͷ໰୊Λղͨ͘Ίʹ͜ͱ͕‫ݒ‬೦͞Εͨɽ͜ͷΑ͏ͳະֶशͷςετσʔ֫ಘֶͨ͠श݁ՌΛɼผͷؔ࿈ͨ͠υϝΠϯ (targetλʹର͢Δࣝผೳྗʢ൚Խੑೳʣʹ͍ͭͯ‫͢ূݕ‬Δͨ3)dmain) ʹ͓͚Δ໰୊ʹద༻͢Δֶशख๏Ͱ͋Δ ɽ Ίʹɼෳ਺ͷҟͳΔ੡඼඼൪ͷ޻ఔը૾Λ‫ؚ‬ΉσʔసҠֶशͷུ֓Λਤ 1 ʹࣔ͢ɽDCNN ʹ͓͚ΔసҠληοτΛߏங͠ɼSVM ͓ΑͼసҠֶशͨ͠ DCNNͷࣝผੑೳʹؔ͢ΔධՁΛߦ͏ɽֶशͰ͸ɼ‫ط‬ଘͷֶशࡁΈϞσϧͷ࠷ऴग़ྗ૚Λɼసɹը૾ղੳϞσϧͷ൚ԽੑೳΛ‫͢ূݕ‬ΔͨΊʹ༻ҙ͠༻ઌͷυϝΠϯʹରԠͨ͠ग़ྗ૚ʹ෇͚ସ͑ͯར༻ͨσʔληοτͷ֓ཁΛද 1 ʹࣔ͢ɽֶश༻σʔλͱ
͢Δɽ෇͚ସ͑ͨग़ྗ૚͓Αͼͦͷखલͷ‫͔ͭز‬ͷ
ͯ͠ 2 ͭͷ੡඼඼൪ʢaɼbʣͷը૾߹‫ ܭ‬1040 ຕɼධՁ૚ͷ݁߹ύϥϝʔλΛख‫͋ʹݩ‬ΔগྔͷσʔλͰ࠶༻ը૾ͱͯ͠ 3 ͭͷ੡඼඼൪ʢc,d,eʣͷը૾߹‫ ܭ‬1680ֶशͤ͞Δɽ‫ݩ‬υϝΠϯ͔Βస༻ֶͨ͠श݁ՌΛɼؔຕΛɼAR ϚʔΧΛ‫ ͨ͠༻׆‬Data Augmentation1) ʹ࿈ͨ͠υϝΠϯʹ͓͚Δ஌ࣝ΍৘ใΛ༻͍ͯิర͢ΑΓಈը૾͔Βநग़ͨ͠ɽ·ͨɼટ൫Ճ޻޻ఔͷࣝผΔ͜ͱͰɼ௨ৗΑΓ΋গͳ͍σʔλྔͰ΋ޮ཰Α͘4)ΛଟΫϥε෼཭໰୊ͱͯ͠ઃ‫͢ܭ‬ΔͨΊʹɼਤ 2 ʹֶशΛߦ͑Δͱ͞ΕΔ ɽ5)6)ɹ‫ࡏݱ‬ɼTensorFlow ΍ PyTorch ͳͲɼҰൠʹެࣔ͢Α͏ͳ 4 ͭͷ࡞‫޻ۀ‬ఔΫϥεΛఆٛ͠ɼֶशɼධ։͞Ε͍ͯΔਂ૚ֶश༻ͷϫʔΫϑϨʔϜ͕ෳ਺ଘՁʹ͓͍ͯΫϥεؒͷ͕ࠩग़ͳ͍Α͏ɼ֤੡඼඼൪ࡏ͢Δ͕ɼࠓճͷసҠֶशͰ͸ɼֶश‫ڥ؀‬΍σʔλͷΫϥεຖͷը૾ຕ਺͸౷Ұͤͨ͞ɽ7)ηοτߏஙͷརศੑͳͲΛߟྀ͠ fastai Λ༻͍ͨɽ ɹσʔληοτʹ‫·ؚ‬ΕΔ੡඼඼൪ͷ͏ͪɼֶश༻σʔληοτʹ‫·ؚ‬ΕΔ඼൪ʮaʯͱɼධՁ༻σʔλfastai ͸ PyTorch Λϕʔεͱ͠ɼΑΓߴਫ४ͳ API
ʢApplication Programming InterfaceʣΛఏ‫͢ڙ‬Δϥηοτʹ‫·ؚ‬ΕΔ඼൪ʮcʯ͸ྨࣅ͢Δ‫ܗ‬ঢ়Λ༗ͯ͠ΠϒϥϦͷҰͭͰ͋Γɼ࠷ઌ୺ͷ‫Ͱڀݚ‬ಘΒΕͨϞ͍Δ͕ɼͦΕҎ֎ͷ੡඼͸େ͖͘ҟͳΔ֎‫ͬͳͱ؍‬σϧ΍ख๏Λखܰʹར༻Ͱ͖Δ‫͕ڥ؀‬੔උ͞Ε͍͍ͯͯΔɽ͜ΕΒͷσʔληοτΛ༻͍ɼධՁ༻σʔλΔɽͷ෼ྨਫ਼౓Λ֤੡඼඼൪ຖʹධՁ͢Δ͜ͱͰɼະ஌ɹ·ͨɼసҠֶशͷϕʔεͱͳΔ‫ط‬ଘͷֶशࡁΈͷਂͷςετσʔλʢࠓճͷσʔληοτʹ͓͍ͯ͸ʮdʯ૚ֶशϞσϧͱͯ͠ ResNet34 Λ༻͍ͨɽResNet ͸ը ʮeʯ͕֘౰ʣʹର͢Δ൚ԽੑೳΛ‫͢ূݕ‬Δɽ૾ೝࣝʹಛԽͨ͠ DCNN ͷҰͭͰɼ2015 ೥ʹߦΘΕͨେ‫ن‬໛ͳը૾ೝࣝίϯςετ (ILSVRC 2015: Imaද 1 ɹ σʔληοτͱσʔλ֦ுॲཧͷ಺༰
geNet Large ScaleVisual Recognition Challenge 2015)Ꮫ⩦⏝䝕䞊䝍䝉䝑䝖ホ౯⏝䝕䞊䝍䝉䝑䝖〇ရရ␒㼍㼎㼏㼐㼑Ͱ༏উΛ͓͞Ί͓ͯΓɼՃ޻޻ఔͷࣗಈ‫͍͓ʹࢹ؂‬ͯ΋ߴ͍ೝࣝਫ਼౓͕‫ظ‬଴Ͱ͖Δɽ〇ရᙧ≧ɹɹ⏬ീᯛᩘ䛂㼏䛃䛸㢮ఝ 㢮ఝရ䛺䛧 䛂㼍䛃䛸㢮ఝ 㢮ఝရ䛺䛧㻢㻜㻜ᯛ㻠㻠㻜ᯛ㻠㻤㻜ᯛ㻢㻜㻜ᯛ㻔㻝㻡㻜㽢㻠✀㻕 㻔㻝㻝㻜㽢㻠✀㻕 㻔㻝㻞㻜㽢㻠✀㻕 㻔㻝㻡㻜㽢㻠✀㻕㻔㼍㻕㻌⿕๐ᮦ↓䛧㻔㼎㻕㻌ຍᕤ㛤ጞ㻔㼏㻕㻌ຍᕤ୰㻔㼐㻕㻌ẁྲྀ䜚᭰䛘㢮ఝရ䛺䛧㻢㻜㻜ᯛ㻔㻝㻡㻜㽢㻠✀㻕ɹ
ਤ 1 ɹ సҠֶशͷ֓ཁɹɹਤ 2 ɹ ࡞‫޻ۀ‬ఔʢ̐Ϋϥεʣ ɹ

4. Ϟσϧͷֶश͓ΑͼධՁɹ
4.1 ࠷దͳֶश཰ͷ୳ࡧɹਂ૚ֶशϞσϧΛ‫܇‬࿅͢Δࡍɼֶश཰Λద੾ʹઃఆ͢Δ͜ͱ͕ॏཁͰ͋Δɽֶश཰͕େ͖͗͢Δͱɼ࠷దԽΞϧΰϦζϜ͕ൃࢄ͠ɼֶश͕શ͘ਐ·ͳ͍‫ڪ‬Ε͕͋Δɽ·ͨɼֶश཰͕খ͗͢͞ΔͱɼϞσϧͷ‫܇‬࿅ʹֻ͔Δ͕࣌ؒ௕͘ͳΔ͚ͩͰ͸ͳ͘ɼ‫ݶ‬ΒΕͨσʔλͰ‫܁‬Γฦֶ͠शΛߦ͏‫ػ‬ձ͕૿͑Δ͜ͱʹΑͬͯɼ‫܇‬࿅σʔλʹରͯ͠աֶशͱͳΔՄೳੑ͕ߴ͘ͳͬͯ͠·͏ɽ͜ͷΑ͏ʹɼֶश཰͸ਂ૚ֶशʹ͓͍ͯॏཁͰ͋Γͳ͕Βɼద੾ʹௐ੔͢Δ͜ͱ͕೉͍͠ϋΠύʔύϥϝʔλͷҰͭͰ͕͋ͬͨɼ2015 ೥ʹֶश཰ϑΝΠϯμ (learning rate ﬁnder) ͱ͍͏ख๏͕ఏҊ 8–10) ͞Εɼൺֱత༰қʹ࠷దͳֶश཰Λ୳ࡧ
͢Δ͜ͱ͕Մೳͱͳͬͨɽɹֶश཰ϑΝΠϯμͰ͸ɼֶश཰ͷมԽʹ൐͏‫ࠩޡ‬ͷਪҠΛখ‫ن‬໛ͳ࣮‫ݧ‬୯ҐͰௐࠪ͠ɼ‫ࠩޡ‬ͷ૿‫ݮ‬ͷ܏޲͔Β࠷దͳֶश཰Λܾఆ͢Δɽfastai7) ʹ͸ֶश཰ϑΝΠϯμ͕‫ػ‬ೳͷҰ෦ͱ࣮ͯ͠૷͞Ε͓ͯΓɼֶश཰ʹؔ͢Δௐ͓ࠪΑͼ݁ՌͷՄࢹԽ͕؆ศʹ࣮ࢪͰ͖Δɽࠓճͷֶश༻σʔληοτʹରͯ͠ߦֶͬͨश཰ϑΝΠϯμͷ࣮ߦ݁ՌΛਤ 3 ʹࣔ͢ɽॳ‫ֶ͕ظ‬श཰
10−7 ͔Β։࢝͠ɼֶश཰্͕ঢ͢ΔʹͭΕͯঃʑʹ‫ݮ‬গ͢Δ܏޲͕‫ͯݟ‬औΕΔɽಛʹ 10−3 ͔Β 10−1 ʹֻ͚ͯେ͖͘མͪࠐΈɼͦͷ‫૿ʹܹٸޙ‬େ͍ͯ͠Δɽ࠷ऴతͳֶश཰ͷܾఆํ๏ʹ‫·ܾͳີݫ‬Γ͸ͳ͍͕ɼ‫࠷͕ࠩޡ‬খͱͳͬͨ஍఺ͷগ͠खલ͕ྑ͍ͱ͞Ε͍ͯΔͨΊɼࠓճ͸ͦͷࢦඪʹै͍ 10−2 Λֶश཰ͱͯ͠࠾༻͢Δ͜ͱʹͨ͠ɽɹɹ

ਤ 3 ɹ fastai ʹΑΔֶश཰ϑΝΠϯμͷ࣮ߦ݁Ռɹ

4.2 సҠֶशͷ࣮ࢪͱੑೳධՁɹ ֶ श ཰ Λ 10−2 ͱ ͠ ɼ੡ ඼ ඼ ൪ʮaʯͱʮbʯͷ ߹ ‫ ܭ‬1040 ຕ ͷ ֶ श ༻ σ ʔ λ ηοτ Λ ༻ ͍
ͯ DCNN(ResNet34) ͷ స Ҡ ֶ श Λ ߦͬͨ ɽGPU(NVIDIA GeForceTitanV) Ͱ૿‫ͨ͠ڧ‬σεΫτοϓ
PC Ͱ࣮ࢪͨ͠ͱ͜ΖɼసҠֶशʹΑΔτϨʔχϯά͸໿ 120 ඵͱ͍͏୹࣌ؒͰ‫ͨྃ͠׬‬ɽɹసҠֶशࡁΈͷ DCNN ϞσϧͰධՁ༻σʔληοτͷ෼ྨਫ਼౓Λ‫݁ͨ͠ূݕ‬ՌʢଟΫϥεࠞಉߦྻͱਖ਼ղ཰ʣΛද 2 ʹࣔ͢ɽ·ͨɼൺֱͷͨΊʹɼಉ͡σʔληοτΛ༻͍ͯɼࡢ೥౓ͷ‫ ͨ͠ࢪ࣮Ͱڀݚ‬SVM ʹΑΔख๏ 1) Λద༻ͨ͠෼ྨ݁ՌΛද 3 ʹࣔ͢ɽDCNNͷ෼ྨਫ਼౓͸૯ͯ͡ߴ͘ɼશͯͷ੡඼඼൪ʹ͓͍ͯ9 ׂҎ্ͷਖ਼ղ཰͕ಘΒΕ͍ͯΔɽɹɹ

ද 2 ɹ DCNN ͷ෼ྨਫ਼౓‫݁ূݕ‬Ռʢೖྗը૾αΠζ 128×128 ըૉʣɹ〇ရရ␒䠖㼏ṇゎ⋡䠖㻜㻚㻥㻥㻤〇ရရ␒䠖㼐ṇゎ⋡䠖㻜㻚㻥㻢㻡〇ရရ␒䠖㼑ண↓ࡋ┿್㛤ጞṇゎ⋡䠖㻜㻚㻥㻞㻞ணຍᕤ୰ẁྲྀ᭰↓ࡋ㛤ጞຍᕤ୰ẁྲྀ᭰↓ࡋ┿್㛤ጞணຍᕤ୰ẁྲྀ᭰↓ࡋ㛤ጞຍᕤ୰ẁྲྀ᭰↓ࡋ┿್

㛤ጞຍᕤ୰

ẁྲྀ᭰

↓ࡋ



㛤ጞຍᕤ୰ẁྲྀ᭰ຍᕤ୰ẁྲྀ᭰ɹɹද 3 ɹ SVM ͷ෼ྨਫ਼౓‫݁ূݕ‬Ռʢೖྗը૾αΠζ 300×150 ըૉʣ
ɹ〇ရရ␒䠖㼏ṇゎ⋡䠖㻜㻚㻤㻥㻡〇ရရ␒䠖㼐ṇゎ⋡䠖㻜㻚㻢㻢㻜〇ရရ␒䠖㼑ண↓ࡋ┿್㛤ጞṇゎ⋡䠖㻜㻚㻢㻟㻣ணຍᕤ୰ẁྲྀ᭰↓ࡋ㛤ጞຍᕤ୰ẁྲྀ᭰↓ࡋ┿್㛤ጞணຍᕤ୰ẁྲྀ᭰↓ࡋ㛤ጞຍᕤ୰ẁྲྀ᭰ɹɹ ↓ࡋ┿್㛤ጞ↓ࡋ㛤ጞຍᕤ୰ẁྲྀ᭰

ҰํɼSVM ͷਖ਼ղ཰ʹؔͯ͠͸ɼֶश༻σʔληοτʹྨࣅ͢Δ੡඼ʢ඼൪ʮaʯʣ͕‫·ؚ‬Ε͍ͯΔ඼൪ʮ̲ʯͷࣝผਫ਼౓͸ 89.5%ͱൺֱతߴ͍͕ɼ඼൪ʮdʯʮeʯ͸ 60%୆ʹ·Ͱ‫ʹܹٸ‬௿Լ͓ͯ͠ΓɼֶशࡁΈͷσʔλ͔Βဃ཭͢Δςετσʔλʹରͯࣝ͠ผੑೳ
͕ஶ͘͠௿Լ͢Δ܏޲͕‫ݟ‬ΒΕͨɽ

4.3 ࣮ߦॲཧ଎౓ͷൺֱɹੜ࢈‫ݱ‬৔΁ͷը૾ॲཧٕज़ͷద༻Λߟྀͨ͠৔߹ɼখ‫ܕ‬ΤοδσόΠε౳ͰॲཧͰ͖Δ࣮༻తͳղੳख๏
Ͱ͋Δ͜ͱ͕๬·͍͠ɽͦ͜ͰɼֶशࡁΈͷ DCNNͱ SVM ͷ࣮ߦॲཧ଎౓ʹؔ͢Δൺֱ‫ূݕ‬Λߦͬͨɽɹ‫༻ূݕ‬ͷΤοδσόΠεͱͯ͠ɹ Raspberry Pi 4Model B (4GB) Λɼൺֱ༻ͷղੳσόΠεͱͯ͠લड़ͷ GPU Ͱ૿‫ͨ͠ڧ‬σεΫτοϓ PC Λ༻͍ͯɼը
૾ॲཧΛ 10 ճ࣮ࢪͨ͠ࡍͷॲཧ࣌ؒͷฏ‫ۉ‬஋ͱඪ४ภࠩΛද 4 ʹࣔ͢ɽͦΕͧΕͷը૾ղੳख๏ʹΑͬͯద੾ͳೖྗը૾αΠζ͕ҟͳΔͨΊ‫ͳີݫ‬ൺֱͱ͸‫͕͍ͳ͑ݴ‬ɼ֓ͶಉϨϕϧͷըૉαΠζʹ͓͚Δॲཧ଎౓݁Ռͱͳ͍ͬͯΔɽɹσεΫτοϓ PC ͷ৔߹ɼDCNN ʹΑΔը૾ղੳ࣌ؒ͸ฏ‫ ۉ‬66.2[ms] Ͱ͋ΓɼಈըΛϦΞϧλΠϜʹղੳͰ͖Δఔ౓ͷߴ͍ॲཧ଎౓͕ಘΒΕ͍ͯΔɽҰํɼRaspberry Pi ͷ৔߹ɼSVM ͷղੳ࣌ؒ͸ฏ‫ۉ‬59.1[ms] ͱ୹͍͕ɼDCNN ͸ฏ‫ ۉ‬1124[ms] Λཁͯ͠
͍Δɽॲཧೳྗͷ௿͍ΤοδσόΠεͳͲͰ DCNNΛ࢖༻͢Δࡍ͸ɼఆ‫ظ‬తʹࡱӨͨ͠੩ࢭը૾Λॲཧ͢ΔͳͲɼ࿈ଓతͳෛՙΛආ͚ΔͨΊͷӡ༻্ͷ޻෉͕ඞཁʹͳΔͱߟ͑ΒΕΔɽɹɹ ɹ5. ޻ఔղੳγεςϜͷ։ൃ
5.1 ը૾ղੳϢχοτɹટ൫Ճ޻ͷ޻ఔ෼ྨʹؔͯ͠͸ඵ୯ҐͰͷ࡞‫޻ۀ‬ఔભҠ͕൑ผͰ͖Ε͹े෼Ͱ͋ΔͨΊɼ଎౓ΑΓ΋෼ྨਫ਼౓Λॏࢹ͠ɼసҠֶशʹΑΔ DCNN ϞσϧΛղੳख๏ͱͯ͠࠾༻͢Δ͜ͱʹͨ͠ɽɹ࣮ࡍʹੜ࢈‫ݱ‬৔ʹઃஔ͢ΔͨΊʹ։ൃͨ͠ը૾ղੳϢχοτΛਤ 4 ʹɼߏ੒‫ثػ‬Λද 5 ʹࣔ͢ɽRaspberryPi4 ͸‫ج‬ຊతʹ SD ΧʔυͰՔಇ͢Δઃ‫ͬͳͱܭ‬͍ͯΔͨΊɼ௕‫ؒظ‬ͷӡ༻ʹ͓͚Δ଱‫ٱ‬ੑʹෆ͕҆͋Δɽͦ͜ͰɼγεςϜυϥΠϒ͕ SSD Ͱɼ͞Βʹॲཧೳྗ͕ RaspberryPi4 ΑΓ΋༏Ε͍ͯΔ Shuttleࣾ੡ͷখ‫ ܕ‬PC(DH4100) ΛΤοδσόΠεʹ࠾༻͠ɼΦϖϨʔγϣϯγεςϜ͸ Ubuntu(Linux) ͱͨ͠ɽ·ͨɼղੳ݁ՌΛσʔλϕʔεʹૹ৴͢Δ௨৴खஈͱͯۙ͠‫཭ڑ‬ແઢ௨৴ (ZigBee) Λ࠾༻ͨ͠ɽ͞Βʹɼશͯͷ֎෦‫ثػ‬Λ USB Ͱ؆ศʹ઀ଓͰ͖Δߏ੒ͱ͢Δ͜ͱͰɼੜ࢈‫ݱ‬৔ͷ೚ҙͷ৔ॴ΁ͷઃஔɾӡ༻͕༰қʹ࣮ࢪͰ͖ΔΑ͏഑ྀͨ͠ɽ
ɹ Web ΧϝϥʹΑΔը૾ࡱӨɼDCNN ʹΑΔ޻ఔ෼ྨɼղੳ݁Ռͷૹ৴ॲཧͳͲΛ࣮ߦ͢ΔϓϩάϥϜʢεΫϦϓτʣ͸ɼද 6 ʹࣔ͢։ൃ‫͍͓ͯʹڥ؀‬
Python ‫࡞Ͱޠݴ‬੒ͨ͠ɽ·ͨɼ͜ΒΒͷ͢΂ͯͷॲཧΛࣗಈӡ༻͢ΔͨΊʹɼLinux ͷ systemd(γεςϜ؅ཧσʔϞϯ) ʹαʔϏε‫ى‬ಈεΫϦϓτͱͯ͠ొ࿥͠ɼ޻ఔ‫ࢹ؂‬ͷ࣮ࢪ༵೔΍࣌ؒଳΛઃఆͨ͠͏͑Ͱɼ޻ఔ෼ྨ݁ՌΛ 2 ඵִؒͰࣗ੡ͷΦϯϓϨϛεαʔόʔʹࣗಈૹ৴͢ΔΑ͏ઃఆͨ͠ɽ

ද 4 ɹ ॲཧ଎౓ͷൺֱ‫ূݕ‬ղੳख๏ը૾αΠζσόΠεฏ‫[ ۉ‬ms]ඪ४ภࠩ [ms]DCNNʢసҠֶशϞσϧʣ
128×128
PC(GPU)RasPi
66.2
3.5Web࣓࢝ࣛ(USB᥋⥆)

SVMʢ‫ػ‬ցֶशʣ
300×150
PC(GPU) RasPi

1124.9
168.8

4.8
0.4

59.1
17.1

ɹ
ද 5 ɹ ߏ੒‫ثػ‬࢖༻‫ثػ‬

Shuttle DH4100
Intel Celeron G5905
DDR4 8GB
SSD 500GB
Ubuntu 20.04 LTSWeb Χϝϥ‫ܕ‬൪ղ૾౓

Logicool c920
1920 × 1080

ແઢϞδϡʔϧ‫ܕ‬൪Digi XBee ZB S2Cɹ

ਤ 4 ɹ ը૾ղੳϢχοτ࢓༷‫ܕ‬൪CPUϝϞϦHDOSΤοδσόΠε࢚ࢵࢪࢹࣂ࢖ࢫ
(OS:Ubuntu20.04)

ZigBeeつ᱁↓⥺ࣔࢪ࣮ࣗࣝ
(USB᥋⥆)

ɹද 6 ɹ ։ൃ‫ڥ؀‬ ϓϩάϥϛϯά‫ޠݴ‬

Python 3.8.6

ϥΠϒϥϦ

opencv-contrib 4.5.1
digi-xbee 1.3.0
torch 1.7.1
torchvision 0.8.2
fastai 2.1.9





5.2 ੜ࢈‫ݱ‬৔΁ͷઃஔɾӡ༻

6. ͓ΘΓʹ

ɹΦϯϓϨϛεαʔόʔͷσʔλϕʔεʹ஝ੵͨ͠ɹຊใࠂͰ͸ɼະ஌ͷ੡඼‫ܗ‬ঢ়ʹର͢Δ࡞‫޻ۀ‬ఔ෼޻ఔભҠͷղੳ݁ՌΛՄࢹԽͨ͠΋ͷΛਤ 5 ʹࣔ͢ɽྨͷਫ਼౓޲্ͷͨΊɼਂ૚ֶशͷҰछͰ͋Δ DCNNαʔό্ʹߏஙͨ͠ Web ΞϓϦέʔγϣϯ11)

ΛհʢResNet32ʣϞσϧΛɼֶश཰ϑΝΠϯμʹΑΓ࠷దͯ͠σʔλϕʔεʹΞΫηε͢Δ͜ͱͰɼಉҰωοԽֶͨ͠श཰ͰసҠֶशͤͨ͞ɽͦͯ͠ɼ‫ػ‬ցֶशτϫʔΫ಺ʹ͋Δ೚ҙͷ PCɼεϚʔτϑΥϯɼλϒख๏ͷ SVM ͱͷੑೳൺֱʹ͓͍ͯɼະֶशͷ੡඼‫ܗ‬Ϩοτ౳ͷ Web ϒϥ΢β͔Βঢ়ଶͷ֬ೝ΍݁Ռͷμঢ়ʹର͢Δ SVM ͷਖ਼ղ཰͕ 63.7ʙ66.0%·Ͱ௿Լ͠΢ϯϩʔυ͕Ͱ͖ΔΑ͏ʹͳ͍ͬͯΔɽͨͷʹର͠ɼDCNN Λ༻͍ͨղੳͰ͸ 92.2ʙ96.5%ͱɹը૾ղੳγεςϜΛ࣮ࡍͷՃ޻૷ஔʹઃஔ༷ͨ͠ߴ͍ਖ਼ղ཰Λҡ͓࣋ͯ͠Γɼ൚Խੑೳʹ͓͍ͯ΋େࢠΛਤ 6 ʹࣔ͢ɽੜ࢈‫׆‬ಈͷ๦͛ʹͳΒͳ͍Α͏ɼࡱ෯ʹ༏Ε͍ͯΔ͜ͱΛ֬ೝͨ͠ɽҰํɼRaspberryPiӨ༻ͷ Web Χϝϥ͸࡞‫ྖۀ‬Ҭͷ্ํʹઃஔͨ͠ɽ޻্Ͱͷ࣮ߦ଎౓ͷൺֱ‫͍͓ͯʹূݕ‬͸ɼSVM ͕ฏ‫ۉ‬৔౳ͷੜ࢈‫ݱ‬৔Ͱ͸ɼΧϝϥ౳ͷ‫ثػ‬Λઃஔ͢Δࡍ

59[ms] Ͱ͋Δͷʹର͠ɼDCNN ͸ฏ‫ ۉ‬1124[ms] ͱॲཧ࣌ؒΛཁ͢Δ͜ͱ͕෼͔Γɼಈը૾ղੳͳͲͷߴෛՙͳλεΫʹ DCNN Λద༻͢Δ৔߹ɼ௿εϖοΫͳΤοδσόΠεͰ͸ରԠ͕ࠔ೉Ͱ͋Δ͜ͱ͕໌Β͔ͱͳͬͨɽ࣮຿ӡ༻ʹ͓͍ͯ͸ɼਫ਼౓ɾॲཧ଎౓ͷ༏ઌॱҐΛؑΈɼ༻్΍໨తʹΑͬͯ͜ΕΒͷղੳख๏Λ࢖͍෼͚Δඞཁ͕͋ΔͱࢥΘΕΔɽɹຊ‫ݕ‬౼ʹ͓͍ͯ͸ɼఆ‫ظ‬తͳ੩ࢭը૾ղੳʹΑͬͯ޻ఔભҠͷ‫ܭ‬ଌ͕ՄೳͰ͋ͬͨͨΊɼॲཧ଎౓ΑΓ΋ղੳਫ਼౓Λॏࢹ͠ɼΦϦδφϧͷσʔληοτͰసҠֶशͨ͠ DCNN ϞσϧΛ࠾༻ͨ͠ɽ·ͨɼࡱӨ΍ղੳॲཧΛ೚ҙͷεέδϡʔϧͰ࣮ࢪ͢Δࣗ཯‫ܕ‬ͷ޻ఔղੳ༻ΤοδσόΠεΛɼLinuxOS ΛϕʔεʹPython ‫ޠݴ‬Λ༻͍ͯ։ൃͨ͠ɽ͞Βʹɼۙ‫཭ڑ‬ແઢ௨৴ʹΑͬͯࣗ੡ͷΦϯϓϨϛεαʔόͱ࿈‫ͤ͞ܞ‬Δ͜ͱͰɼσʔλͷऩूɾ஝ੵɾՄࢹԽ·ͰΛΦʔτϝʔγϣϯԽ͠ɼ࣮ࡍͷੜ࢈‫ݱ‬৔ʹ͓͚Δ޻ఔਐ௙Λ‫ࢹ؂‬ɾ‫ܭ‬ଌ͢ΔγεςϜΛߏங͢Δ͜ͱ͕Ͱ͖ͨɽɹࡢࠓɼAI ٕज़ͷൃలʹΑΓɼ༷ʑͳը૾ղੳख๏͕Ұൠʹެ։͞Εൺֱత༰қʹར༻Ͱ͖Δ‫͕ڥ؀‬੔͍ͭͭ͋Δɽ͔͠͠ɼͦΕΒͷٕज़Λ࣮຿ʹద༻͠‫ܧ‬ଓతʹӡ༻͢ΔͨΊʹ͸ɼ֩ͱͳΔઌ୺ٕज़ʹՃ
͑ɼIoT ͳͲͷपลٕज़ͱͷ࿈‫͕ܞ‬ෆՄܽͱ‫͑ݴ‬Δɽɹຊ‫ݕ‬౼ʹ͓͍ͯɼ‫ڞͱۀا಺ݝ‬ಉͯ͠՝୊ղܾʹऔΓ૊Έɼը૾ղੳɼΤοδσόΠε։ൃɼ௨৴ٕज़ʹΑΔ࿈‫Ͱ·ܞ‬ΛҰ؏࣮ͯ͠஍‫Ͱͱͨ͜͠ূݕ‬ɼੜ࢈‫ݱ‬৔ʹઌ୺ͷ AI ٕज़Λద༻͢ΔͨΊͷϊ΢ϋ΢Λ஝ੵ͢Δ͜ͱ͕Ͱ͖ͨɽਂ૚ֶशΛ࣮ߦ͢Δࡍͷॲཧ଎౓ͳͲʹ՝୊͕࢒Δ͕ɼࠓ‫ޙ‬͸ɼຊγεςϜΛϕʔεͱͯ͠͞ΒʹվળΛਤΓɼ‫΁ۀا಺ݝ‬ͷը૾ղੳٕज़͓Αͼ IoT ٕज़ͷී‫ٴ‬ɾಋೖʹ޲͚ͨԠ༻ల։ʹ͍ͭͯ‫ݕ‬౼͍͖͍ͯͨ͠ɽͷ੍໿ʹΑΓɼҐஔ΍‫ݻ‬ఆํ๏੍͕‫͞ݶ‬ΕΔ͜ͱ͕ଟ͍ɽͦͷͨΊɼཧ૝తͳࡱӨൣғ͕ಘΒΕͳ͔ͬͨΓɼΧϝϥͷҐஔͣΕʹΑΓࡱӨൣғ͕มΘΔͱ͍ͬͨ͜ͱ͕໰୊ͱͳΔ͕ɼຊγεςϜʹ͓͍ͯ͸AR ϚʔΧΛ‫ج‬४ͱͯ͠‫ྖࢹ؂‬ҬΛಛఆ 1) ͍ͯ͠ΔͨΊɼΧϝϥͷॳ‫ظ‬ઃஔ͕༰қͰ͋Γɼ௕‫ظ‬ӡ༻ʹ͓͚Δ‫ࢹ؂‬ൣғͷ҆ఆੑ΋ൺֱతߴ͍ɽ㸨⾲♧ෆᐜࡣࢲ࣑࣮ࢹ࣮ࢱɹɹ
ਤ 5 ɹ ޻ఔղੳ݁ՌͷՄࢹԽը໘ɹຍᕤ⿦⨨ୖ㒊䛻タ⨨䛧䛯㼃㼑㼎䜹䝯䝷ᇶ‽㻭㻾䝬䞊䜹ɹɹਤ 6 ɹ ੜ࢈‫ݱ‬৔΁ͷઃஔঢ়‫گ‬ɹ ࢀߟจ‫ݙ‬1)2)த໺ଠ࿠ɼେ௶তจɼ෱ౡষ‫ޗ‬ɼը૾ղੳΛར༻ͨ͠ੜ࢈‫ݱ‬৔ͷঢ়ଶ‫ٕࢹ؂‬ज़ʹؔ͢Δ‫ڀݚ‬ʢୈ̎ใʣɼྩ࿨̎೥౓ࠤլ‫ٕۀ޻ݝ‬ज़ηϯλʔ‫ڀݚ‬
ใࠂॻɼ2020ɼNo.29ɼp.53-57.
Ԭ୩‫و‬೭ɼը૾ೝࣝͷͨΊͷਂ૚ֶशͷ‫ڀݚ‬ಈ޲: ৞ࠐΈχϡʔϥϧωοτϫʔΫͱͦͷར༻๏ͷൃలɼਓ޻஌ೳɼ2016ɼ31.2ɼp.169-1793)ਆ ቇ හ ߂ ɼ స Ҡ ֶ श ɼਓ ޻ ஌ ೳ ɼ2010ɼ25.4ɼ
p.572-580.

4)ҏ౻խਔɼet al.ɼసҠֶशͱੜ੒ωοτϫʔΫͷ ࢼ ߦ ࣄ ྫ ɼJournal of Computer Chemistry,Japanɼ2019ɼ18.3ɼp.132-135.

5)TensorFlowɼhttps://www.tensorﬂow.org/6)

PyTorchɼhttps://pytorch.org/7)

fastaiɼhttps://docs.fast.ai/

8)

Jeremy HowardɼSylvain GuggerɼPyTorch ͱ fastai Ͱ͸͡ΊΔσΟʔϓϥʔχϯάɼΦϥΠϦʔɾδϟύϯɼ2021ɼp.193-195.

9)

Smith, Leslie N. No more pesky learning rate
guessing games. CoRR, abs/1506.01186, 2015, 5.

10) Smith, Leslie N. Cyclical learning rates for training neural networks. In: 2017 IEEE winter conference on applications of computer vision (WACV).
IEEE, 2017. p. 464-472.
11) Grafanaɼhttps://grafana.com/

 