翻蚳ãããžã§ã¯ãããã¡ããŠã¹-AIã掻çšããç«çœæ¢ç¥ãœãªã¥ãŒã·ã§ã³
ååãšç§ã¯ãAIãã³ã³ãã¥ãŒã¿ãŒããžã§ã³ãèªåãããŒã³ã倩æ°äºå ±ãµãŒãã¹ãçµã¿åãããæ©æç«çœæ€ç¥ãœãªã¥ãŒã·ã§ã³ã§ããPrometheusãããžã§ã¯ãïŒPrometheusïŒã«åãçµãã§ããŸãã ãã®è€åäœã¯ãå®éã®çœå®³ã«å€ããåã«å±±ç«äºãæ€åºããããã«èšèšãããŠããŸãã ç§ãã¡ã¯ããããžã§ã¯ãã®è©³çŽ°ãä»çµã¿ãããã³ãã®åºç€ãšãªãçè«çè£ çœ®ã«ã€ããŠã話ããããšæããŸãã ãããªã¢ã«ã¯ãç¹å®ã®ãã¯ãããžãŒããå¯èœãªéãç¬ç«ããŠæåºããããããç¹å®ã®å®è£ æ©èœïŒCNTKãFaster R-CNNãDockerã³ã³ãããŒãPythonã.NETãã¬ãŒã ã¯ãŒã¯ãªã©ïŒã«é¢å¿ãããå Žåã¯ã GitHubãªããžããªãŒã«ã¢ã¯ã»ã¹ããŠãã ããã ãããŠãããã§äœ¿çšãããŠããæè¡ã«ã€ããŠèšåããŸãã
å°ããªçŽ¹ä»ïŒ
ããæ°
2017幎ã«ã¯ã森æç«çœãç±³åœçµæžã«çŽ2,000åãã«ã®æ害ãäžãããšæšå®ãããŸããããããã¯ããªã±ãŒã³ã«ãã被害ããããã«å°ãªãããšã§ãã ããããéãã¯ãç«çœãæé·ããåã«æ¶ç«ããã°ãæ倱ãå€§å¹ ã«åæžã§ããããšã§ãã ãã ããç«çœãæ€åºããã¿ã¹ã¯ã¯æ¥åžžçã§å°é£ã§ããã人ã ã®åå ãå¿ èŠã§ããã»ãšãã©ã®å Žåã圌ãã¯åçŒé¡ãåãã芳枬å¡ã«åº§ã£ãŠãæéå ã«ç«çœã«æ°ä»ãããšããããããªã³ãã¿ãŒãã¬ã€ãä»ããããŒã³ãéããŠé åãé£ã³åã£ãŠããŸãã Prometheusãããžã§ã¯ãã¯ãåæ段éã§ç«çœãæ€åºããèªåãããŒã³ã®å©ããåããŠãã®ã«ãŒãã³å šäœãèªååããããã«èšèšãããŠããŸããããã§ãªããã°ã颚ã也ç¥ããŸãã¯å°åœ¢ã®æ©èœãæ°åã§ãšãªã¢ã®ãšãŒã«ãŒã«ç«çœãåºããã®ã«åœ¹ç«ã¡ãŸãã ããã«ããããã®ç«çœã®ã»ãšãã©ã¯ã人ãå°ãªããç å·£ã®çºçã远跡ãã人ãããªãé éå°ã§çºçããŸãã
ãããã®é éå°ãããããŒã«ããããã«ãããŒã³ãéããšããããã¯æéå ã«ç«çœãæ€åºããæ害ãæå°éã«æããã®ã«åœ¹ç«ã¡ãŸãã
ãããžã§ã¯ã
ããã¡ããŠã¹ã¯3ã€ã®éšåã«åããããšãã§ããŸãïŒ
- ç«çœæ€ç¥ã¢ãžã¥ãŒã«ã¯ã深局åŠç¿ã¢ã«ãŽãªãºã ã䜿çšããŠããããŒã³ã®RGBã«ã¡ã©ïŒã¯ã©ãŠãRESTãµãŒãã¹ãšããŠå®è£ ïŒã䜿çšããŠå°ããªçŠç¹ãç¹å®ããŸãã
- ãã©ã€ããã©ã³ãã³ã°ã¢ãžã¥ãŒã«ã䜿çšãããšããŠãŒã¶ãŒã¯ããããŒã«ãŸãŒã³ãéžæããŠèšç»ã§ããŸãïŒWindowsã¢ããªã±ãŒã·ã§ã³ãšããŠå®è£ ãããæ°è±¡ãããã³ã°ãµãŒãã¹ãšçµ±åãããŠããŸãïŒã
- èŠåã·ã¹ãã ã«ããããŠãŒã¶ãŒã¯ãæ€åºãããç«çœã«ã€ããŠããŒã ã«ãã°ããéç¥ã§ããŸãïŒAzure Functionsããã³Twilioã䜿çšïŒã
ç«çœæ€ç¥
èªåãããŒã³ã䜿çšããŠãé éå°ã®ç«çœãæ€çŽ¢ããŸãã ãªã³ããŒãRGBã«ã¡ã©ã䜿çšããŠãšãªã¢å šäœãæ®åœ±ããåçãæ©æ¢°åŠç¿ã¢ãã«ã«éããç«çœãæ€çŽ¢ããŠãŠãŒã¶ãŒã«éç¥ããŸãã ã¿ããªããããšããã¿ããªç¡æã§ãã ããããã¡ãã£ãš...
ã¬ãã¹ã³1ïŒãµã€ãºã®åé¡
ã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã䜿çšããŠå¿ èŠãªå²åã§ç«çœãå€æããããšã¯å°é£ãªäœæ¥ã§ãã£ããããå¥ã®ã¢ãããŒãã䜿çšããŸããã ãã®å Žåãèµ€å€ç·ã«ã¡ã©ã®æ¹ãæãŸãããããRGBã«ã¡ã©ã䜿çšããããšã¯å®çšçã§ãªããšæãããŸãã ããããæ¶é²å£«ãšè©±ããåŸããã¹ãŠãããã»ã©åçŽã§ã¯ãªãããšãããããŸããïŒèµ€å€ç·ã«ã¡ã©ã§ã¯ãæ°æž©ã®é«ãå Žæã¯ç«ã®ããã«èŠããè¡šé¢ã®äžéšã¯å åå°ã®ç¹æ§ã®ããã«ç±æºã®ããã«èŠããŸãã ããã«ããã®ãããªã«ã¡ã©ã¯ã¯ããã«é«äŸ¡ã§ãã æ¶é²å£«ã¯äž»ã«å€éã«ãããã䜿çšããŠãå®å šã«æ¶ç«ã§ãããã©ããã確èªããŸãã
äžè¬ã«ãæ©æ¢°åŠç¿ã䜿çšããŠç»åãç¹å®ã®ã«ããŽãªïŒçºç«/éçºç«ïŒã«åé¡ããå Žåã¯ãããããåé¡ææ³ã䜿çšããŸãã ãã®ããã«ç°¡åã ãã ããåé¡ã«å¿ èŠãªç¹æ§ã¯ããã«ã€ã¡ãŒãžãšæ¯èŒããŠå°ããããå ŽåããããŸãã ããšãã°ãå žåçãªå°ããªç¹ç«æºã¯æ¬¡ã®ããã«ãªããŸãã
ç§ãã¡ãå«ããã®ãããªå Žåãç¹å®ã®å Žæã«æ³šæãæã£ãããç»åå ã®æ°ãæ°ããªããšããªããžã§ã¯ãã決å®ããéã«æé«ã®ããã©ãŒãã³ã¹ãåŸãããŸãã ããããã»ãšãã©ã®å Žåããªããžã§ã¯ãã決å®ããã·ã¹ãã ã®ããã€ã¹ã¯ã¯ããã«è€éã§ãã ãã®åé¡ã解決ããã«ã¯ããŸããŸãªæ¹æ³ããããå°åç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ïŒR-CNNïŒããŸãã¯ãããFaster R-CNNã®å®è£ ã䜿çšããŸããã
ãŸãããã䜿çšãããã®ã¯YoLoãšDetectron ïŒæè¿ãªãŒãã³ãœãŒã¹ã«ç§»è¡ïŒã§ãã
ãã®ããã»ã¹ã¯ã次ã®æé ã§æ§æãããŠããŸãã
- ããŒã«ãªãŒãŒã·ã§ã³ïŒç®çã®ãªããžã§ã¯ããå«ãå¯èœæ§ã®ããç»åå ã®é åã®ã»ã¯ã·ã§ã³ïŒãµã³ãã«ïŒãçæããå¿ èŠããããŸãã ãããã®é åã¯ãé¢å¿é åïŒROIïŒãšåŒã°ããŸãã ãããã¯ç»åå šäœãã«ããŒãã倧ããªãã¬ãŒã ã®ã»ããã§ãã Koen EA van de Sandeãã«ãããªããžã§ã¯ãèªèã®éžæçæ€çŽ¢ãšããŠã®ã»ã°ã¡ã³ããŒã·ã§ã³ã§èª¬æãããŠããææ³ã䜿çšããŠROIãçæããŸãã ãã®ææ³ã¯dlib Pythonã©ã€ãã©ãªã«å®è£ ãããŠããŸãã
- ãªããžã§ã¯ãã®åé¡ïŒããã«ãèŠèŠç¹æ§ãåãã¬ãŒã ããæœåºããããããã®è©äŸ¡ãå®è¡ãããã·ã¹ãã ã¯ããã«ãªããžã§ã¯ãããããã©ããããããŠããããäœã§ããããä»®å®ããŸãïŒããã«ã€ããŠã¯ä»¥äžã§è©³ãã説æããŸãïŒã
- éæ倧æå¶ïŒåããªããžã§ã¯ããè¡šããã¬ãŒã ãéšåçã«ãŸãã¯å®å šã«éãªãåã£ãŠããããšããããŸãã ãã®ãããªéè€ãé¿ããããã«ã亀差ãããã¬ãŒã ã¯1ã€ã«çµåãããŸãã ãã®ã¿ã¹ã¯ã«ã¯å€ãã®èšç®èœåãå¿ èŠãªå ŽåããããŸãããIntel Math Libraryã«ã¯ããã€ãã®æé©åãå®è£ ãããŠããŸãã
ã¬ãã¹ã³2ïŒããŒã¿ã«ãã«ããå¿ èŠãªå ŽåããããŸã
æ©æ¢°åŠç¿ã«ã¯ããŒã¿ãå¿ èŠã§ãã ãããããã£ãŒãã©ãŒãã³ã°ïŒã€ãŸããå€æ¬¡å å ¥å空éïŒã§ã¯ãç®çã®èŠèŠçããããã£ãæœåºããããã«å€§éã®ããŒã¿ãå¿ èŠã«ãªããŸãã ãç解ã®ãšãããèå³ã®ãããªããžã§ã¯ãã®å€§èŠæš¡ãªããŒã¿ã»ãããèŠã€ããããšã¯å°é£ã§ãïŒçºç«ïŒã ãã®åé¡ã解決ããããã«ãäºåã«èšç·Žãããæ±çšç»ååé¡ã¢ãã«ã§ã転移åŠç¿ãæè¡ã䜿çšããŠãèŠèŠç¹æ§ãæœåºããŸããã ç°¡åã«èšãã°ãäœããå®çŸ©ããããã«äºåã«ãã¬ãŒãã³ã°ãããã¢ãã«ãååŸããããŒã¿ã»ããã䜿çšããŠãæ§æãããŸãã ã€ãŸãããã®ã¢ãã«ã¯ããããã£ãæœåºããã¿ã¹ã¯BïŒéåžžã¯é«ã¬ãã«ã®ã¿ã¹ã¯ïŒã§åŠç¿ããè¡šçŸã䜿çšããŠãåé¡BïŒéåžžã¯äœã¬ãã«ã®ã¿ã¹ã¯ïŒã解決ããããšããŸãã åé¡Bã®è§£æ±ºã®æåã¯ãã¿ã¹ã¯Aã®ã¢ãã«ãã¿ã¹ã¯Bã«ã€ããŠã©ãã ãåŠç¿ã§ãããã瀺ããŠããŸãããã®å Žåãã¿ã¹ã¯Aã¯ImageNetãªããžã§ã¯ããåé¡ããã¿ã¹ã¯ã§ãããã¿ã¹ã¯Bã¯ç«çœãèå¥ããŠããŸããã
ãã®ææ³ã¯ãäºååŠç¿æžã¿ã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ããæåŸã®ã¬ã€ã€ãŒãåé€ããç¬èªã®åé¡åšã«çœ®ãæããããšã§é©çšã§ããŸãã 次ã«ãä»ã®ãã¹ãŠã®ã¬ã€ã€ãŒã®éã¿ãããªãŒãºããéåžžã®æ¹æ³ã§ãã¥ãŒã©ã«ãããã¯ãŒã¯ããã¬ãŒãã³ã°ããŸãã
çµæã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ããµã€ãºãçŽ250 MBã§ãããããGitHubã§ã¯äœ¿çšã§ããŸããã å¿ èŠãªå Žåã¯ããåãåãããã ãã ã
ImageNetã«ã¯æ¢ã«ãã¬ãŒãã³ã°æžã¿ã®ã¢ãã«ãå€æ°ãããŸãïŒAlexNetãVGGãInceptionãRestNetãªã©ïŒã ãããã®ããããã§ãèè ã¯ãé床ãæ£ç¢ºããããã³æ§é ã«ãããŠç°ãªã劥åã䜿çšããŸããã AlexNetãéžæããçç±ã¯ãå¿ èŠãªèšç®ãªãœãŒã¹ãå°ãªããã¿ã¹ã¯ã®çµæãä»ã®ãããã¯ãŒã¯ãšã»ãšãã©å€ãããªãããã§ãã
ã¬ãã¹ã³3ïŒåç»ïŒç¹ã«åã ã®ãã¬ãŒã ïŒã芪å
ãããããã¬ãŒãã³ã°ã®ç§»è»¢ã«ãããããããåé¡åé¡ã解決ããããã«ã¯ãŸã å€ãã®ããŒã¿ãå¿ èŠã§ãã ãããŠããããªã掻çšããŸããã åãããªããå€æ°ã®ãã¬ãŒã ãæœåºããŠãããã«å€§ããªå€§ããªããŒã¿ã»ãããååŸã§ããŸãã ãããªã«ã¯å¥ã®äŸ¿å©ãªããããã£ããããŸãããªããžã§ã¯ããŸãã¯ã«ã¡ã©ã移åãããšãç°ãªãç §æãç°ãªãè§åºŠãç°ãªãäœçœ®ã§ãªããžã§ã¯ãã®ç»åãååŸããããããããŒã¿ã»ããã¯éåžžã«é«å質ã§ãã
ãµã€ãºãããã¯ã®ãããåçã®ã»ããããªããžããªã«ã¢ããããŒãããŸããã§ããã
ããŸããŸãªãœãŒã¹ã®ãããŒã³ãããããªãåéããæåã§ã©ãã«ãä»ããŸããã 䜿çšãããã£ãŒãã©ãŒãã³ã°ãã¬ãŒã ã¯ãŒã¯ã«å¿ããŠãããŸããŸãªåœ¢åŒã§ç»åã«ã©ãã«ãä»ããããã®ããŒã«ãããã€ããããŸãã Linux / Windowsã®å Žåã¯LabelImgãMacã®å Žåã¯RectLabelããå§ãããŸãã CNTKã䜿çšãããããCNTKããã³TensorFlow圢åŒã«ãšã¯ã¹ããŒãã§ããMicrosoft VoTTããŒã«ã䜿çšããŸããã
ã¬ãã¹ã³4ïŒãããªã«ãŒããè³Œå ¥ããïŒãŸãã¯ã¯ã©ãŠããã¬ã³ã¿ã«ããïŒ
ç§ãã¡ã®ãããªå€§ããªã¢ãã«ããã¬ãŒãã³ã°ããã«ã¯ããªãã®èšç®èœåãå¿ èŠã§ãGPUã¯å€§ããªå©ãã«ãªããŸãã NVIDIA GeForce GTX 1050ã䜿çšããŠåŠç¿ããã®ã«çŽ15åããããŸããããããããããªã«ãŒãã䜿çšããŠããŠããã¢ãã«ãã©ã¡ãŒã¿ãŒã®èšå®ã¯å€§ããªå°é£ã§ãã Microsoftã«ã¯ãAzure Experimentation ServiceãšããåªããããŒã«ããããŸãããã®ããŒã«ã䜿çšãããšãã¯ã©ãŠãå ã®ããŸããŸãªãã©ã¡ãŒã¿ãŒã§è€æ°ã®ãã¬ãŒãã³ã°ã䞊è¡ããŠå®è¡ããååŸãã粟床ãåæã§ããŸãã AWS SageMakerãã芧ãã ããã
ãªããžããªã«ã¯Sweep_parameters.pyã¹ã¯ãªãããå«ãŸããŠããŸã ãããã«ããããã©ã¡ããªãã¯ã¹ããŒã¹ãèªåçã«ã¯ãªã¢ãããã¿ã¹ã¯ã®åŠç¿ãéå§ãããŸãã
ã§ããïŒ
ããã§ãR-CNNãèšç·ŽããåŠç¿ã®ç§»è»¢ããã£ãŒãã©ãŒãã³ã°ããããªã«ãŒããªã©ã䜿ã£ãŠåŠç¿ããŸãããä»ãä»ã®äººãšä»äºãå ±æããæ¹æ³ãæããŠãã ããã æåã«ãã¢ãã«ãšå¯Ÿè©±ããããã®RESTãµãŒãã¹ãéå§ããŸããã ãã®APIã䜿çšãããšãè©äŸ¡çšã®ç»åãéä¿¡ããç»åã®é åãã¢ãã«ãããçšåºŠç¢ºå®ã«æ±ºå®ããç«çœã®ååšãè¿ãããšãã§ããŸãã ãŸããç»åãå®éã«çºå°ãããŠãããã©ãããAPIã«äŒããããšãã§ããŸãã ä»ã®ãšã³ããã€ã³ãã¯ããã£ãŒãããã¯ãšæ©èœåŒ·åã«äœ¿çšãããŸãã
REST APIãµãŒãã¹ã¯Dockerã³ã³ãããŒã«ããã±ãŒãžåãããã¯ã©ãŠãã§å ¬éãããããããœãªã¥ãŒã·ã§ã³ãå®äŸ¡ã«ã¹ã±ãŒãªã³ã°ã§ããŸãã ãªããžããªã§ãDockerã€ã¡ãŒãžãå«ããã¡ã€ã«ãèŠã€ããããšãã§ããŸãã
é£è¡èšç»
èµ€ãèŠå
ããã¡ããŠã¹ã¯ãããŒã³ã®éãå ãã©ã®ããã«ããŠç¥ãã®ã§ããïŒ å šåœæ°è±¡ãµãŒãã¹ãšçµ±åããŠããã¬ããã¢ã©ãŒãããç¹å®ããŸãã ãããã¯ãæ°æž©ã颚åã匷ãã湿床ãæ°å§ãç«çœã®å¯èœæ§ãé«ããé åã§ãã æ°è±¡ãµãŒãã¹ã¯ããããã®åœã察象ãšããŠãããããå€åœã®æ€çŽ¢ã«ã¯ã»ãšãã©äœ¿çšã§ããŸããã ä»æ¥ãç§ãã¡ã¯ã¢ã¡ãªã«ãšã¢ã«ãŒã³ãã³ã®ãµãŒãã¹ãšé£æºããŠããŸãã
倩æ°æ å ±
é¢å¿ã®ããå°åã§æ£ç¢ºãªæ°è±¡ããŒã¿ãæã€ããšãéåžžã«éèŠã§ãã æ¶é²å£«ã¯ãã®æ©èœã«ã€ããŠå°ããŸããã National Weather Serviceã®ããããµãŒããŒãä»ããŠæ°è±¡ã¹ããŒã·ã§ã³ãããŒãªã³ã°ããåä¿¡ããæ å ±ããããã«ãªãŒããŒã¬ã€ããããšã«ãããæ°è±¡ããŒã¿ãååŸããŸãã ããã¯å€©æ°äºå ±ã§ã¯ãªããå®éã®æž¬å®å€ã§ããããšã匷調ããŸãã
ã¢ã¡ãªã«ã®æ°è±¡èŠ³æž¬æ ã
ãã®ã«ãŒããã©ã®ããã«æ©èœãããç解ã§ããŸãããïŒ ããã§ããªãã¯äžäººã§ã¯ãããŸããã ããã®äœ¿ãæ¹ãç解ããã®ã«æ°é±éããããŸããã ãããäžã®æ å ±ã¯ã»ãšãã©ãããŸããã æ°è±¡èŠ³æž¬æããã®ããŒã¿ãè©ŠããŠã¿ããå ŽåãAPIããŒãå ±æããæš©å©ããªãããããããã€ããŒããAPIããŒãååŸããå¿ èŠããããŸãã
èŠåã·ã¹ãã
ã·ã¹ãã ãç«çœãæ€ç¥ãããšããªãã¬ãŒã¿ãŒã«æ€ç¥ã®äºå®ã®ç¢ºèªãæ±ããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ç«çœç¢ºèªãŠã£ã³ã㊠ã
ã芧ã®ãšããããã®ãããªå°é£ãªå Žåã§ããã·ã¹ãã ã¯éåžžã«æ£ç¢ºã«æ©èœããŸãã å°ããªèµ€ããã¬ãŒã ã¯ã67ïŒ ã®ç¢ºçã§ç«çœã®å¢çã瀺ããŠããŸãã å®éãããã¡ããŠã¹ã¯å€§èŠæš¡ãªç«çœãæ€åºããããšããããããã®ãããªã·ããªãªã§é¢ç©ãèšç®ãããšäžå®å®ã«ãªããŸãã æå³ãããšããã«ãã¹ãŠãæŽç¶ãšããŠããŸãã ç§ãã¡ã¯åã«ãã®ãããªç¶æ³ã«èå³ããããŸããã§ããã
èŠåã·ã¹ãã ã¯ãäºåã«ç»é²ãããé»è©±çªå·ã«ç«çœã®GPS座æšãå«ãSMSéç¥ãéä¿¡ããŸãã Twilioã¯ãAPIã䜿çšããŠããã¹ãã¡ãã»ãŒãžãããã°ã©ã ã§éåä¿¡ã§ããã¯ã©ãŠããã©ãããã©ãŒã ã§ãããããé åžãå®è¡ãããŸãã
èŠãŠã¿ããã§ããïŒ
â ãœãŒã¹ã³ãŒãã¯ãã¡ã
è¬èŸ
ããã¡ããŠã¹ã¯ãã¢ãªãŸãå·ãã³ãæ¶é²å±ãã¢ã«ãŒã³ãã³æ¶é²å±ãã¢ã«ãŒã³ãã³åœç«èŸ²æ¥æè¡ç 究æãšå ±åã§éçºãããŸããã