ããã¯ããééãã®ãªã¯ãšã¹ãã§Googleã§èŠã€ãã£ãå®å šã«æ®éã®åçã§ãã ãããŠãéè·¯èªäœãåæ§ã§ãã
ãã®åçãåé€ããŠãã¡ã¢ãªããééãåŒãããã«é Œããšã©ããªããŸããïŒ
ããªãã7æ³ãããã®åäŸã§ãåã«çµµãæãããšãåŠãã ããšããªãå Žåã次ã®ãããªãã®ãæã«å ¥ããããšã«ãªãã§ãããã
ãã£ãš äœããééã£ãŠããããã§ãã
1.ç©äºãèŠãå¥åŠãªæ¹æ³
æåã®åçã®ã¬ãŒã«ã«æ»ã£ãŠãäœãééã£ãŠããã®ããç解ããŠã¿ãŸãããã
å®éãé·ãéèŠãŠãããšãåšå²ã®äžçãæ£ç¢ºã«åæ ããŠããªãããšãæããã«ãªããŸãã ç§ãã¡ãããã«ã€ãŸãããäž»ãªåé¡ã¯ãããšãã°ãå¹³è¡ç·ãããã§äº€å·®ããããšã§ãã äžé£ã®åäžã®ïŒå®éã«ã¯ïŒè¡ç¯æ±ã¯ãå®éã«ã¯æ¬¡ã®æ±ã次第ã«å°ãããªãããã«æãããŠããŸãã éè·¯ã®åšãã®æšã ã¯ãæåã¯æ確ãªæãšèãæã£ãŠããŸãããç¡å°ã®èæ¯ã«èåããããã«äœããã®çç±ã§æ確ãªçŽ«è²ã®è²åããç²åŸããŸãã
ãããã¯ãã¹ãŠé è¿å¹æã§ããã3次å ã®ãªããžã§ã¯ããç®ã®å åŽã®2次å ã®ç¶²èã«å€éšããæ圱ããããšããäºå®ã®çµæã§ãã ããã«ã€ããŠéæ³ã®ãããªããšã¯äœããããŸãã-ããããããããã®èŒªéãšç·ã®æªã¿ã空éã®åãã«åé¡ãåŒãèµ·ãããªãã®ã¯å°ãäžæè°ã§ãããéçãæ¡ãããšãããšçªç¶è³ãç·åŒµããŸãã
å¥ã®çŽ æŽãããäŸã¯ã幌ãåäŸãã¡ã空ãæãæ¹æ³ã§ãã
空ã¯äžã«ããã¯ãã§ã-ããã§ã¯ãéã垯ãäžç«¯ã«åºå®ãããŠããŸãã ã·ãŒãã®äžå€®ã¯çœã®ãŸãŸã§ã倪éœãæ³³ã空éã§æºããããŠããŸãã
ãããŠãããã¯ãã€ã§ãã©ãã§ãèµ·ãããŸãã ç«æ¹äœã¯æ£æ¹åœ¢ã®é¢ã§æ§æãããŠããããšãããã£ãŠããŸããã åçãèŠããšãããã«åäžã®çŽè§ã¯è¡šç€ºãããŸãããããã«ããããã®è§åºŠã¯çµ¶ããå€åããŠããããã衚瀺è§åºŠãå€æŽãã䟡å€ããããŸãã ãŸãã§é ã®äžã®ã©ããã«ãéåžžã®3次å ãªããžã§ã¯ãã®å€§ãŸããªèŒªéãããããã«èŠããŸãããããŠãçµæãèªåã®ç®ã§èŠããã®ãšããã«æ¯èŒããæéããªãã®ã§ãã¬ãŒã«ãæãããã»ã¹ãåããŸãã
å®éã¯ãã£ãšæªãã§ã ããšãã°ãéè·¯ã®æåã®åçã§ãéè·¯ã®ã©ã®éšåãè¿ãã«ãããã©ã®éšåãããé ãã«ããããã©ã®ããã«å€æããŸããïŒ ãªããžã§ã¯ãã®åé€ãå°ãããªããšãOK-ãããã誰ããé£ç¶ããŠæžå°ããå¯å°ã次ã ãšé ããŠçœ®ãããšã«ãã£ãŠããªããã ãŸããŠããªããšç¢ºä¿¡ããŠããŸããïŒ é ãã®ç©äœã¯éåžžãéã¿ããã£ãéã¿ããã£ãè²ïŒã倧æ°é è¿æ³ããšåŒã°ããå¹æïŒã§ããã被åäœã¯åçŽã«ãã®ãããªè²ã§å¡ãããšãã§ããããã§ãªããã°å®å šã«æ£åžžã«èŠããŸãã ããããã»ãšãã©èŠããªãééãæž¡ãæ©ã¯ãã©ã€ãïŒãªã¯ã«ãŒãžã§ã³å¹æïŒã«ãã£ãŠé ãããŠãããããç§ãã¡ã®èåŸã«ããããã«èŠããŸã-ããããåã³ãã©ã®ããã«ã©ã€ããåã«ãã®è¡šé¢ã«æãããŠããªãããšã確èªã§ããŸããïŒ ã·ãŒã³ã®3次å æ§ãè©äŸ¡ããããã®ãã®äžé£ã®ã«ãŒã«ã¯ãäž»ã«ããªãã®çµéšã«äŸåããŸãããããããå ãšå¹³åŠãªå°å¹³ç·ããèœã¡ãŠã倧æ°äžã§çãæ®ãããã«èšç·Žãããå ç¥ã®éºäŒççµéšã«äŸåããŸãã
ãã®èŠèŠççµéšã«æºã¡ã匷åãªåæããã°ã©ã ã®å©ãããªããã°ãããèªäœã§ã¯ãåçã¯åšå²ã®äžçã«ã€ããŠã»ãšãã©èªããŸããã ç»åã¯ãã»ãšãã©ã®å Žåããã§ã«èšæ¶ã«ããã·ãŒã³ãå¿ã«æ³åãããããªã¬ãŒã«ãªãå¯èœæ§ãé«ããªããŸãã ãããã«ã¯å®éã®ãªããžã§ã¯ãã¯å«ãŸããŠããŸãã-ãããã«ã€ããŠã®éããããå¹³åŠåããããæ²åçãªäºæ¬¡å ã®ã¢ã€ãã¢ã®ã¿ã§ãããããã«ããã¯åããšãšãã«çµ¶ããå€åããŠããŸãã ããæå³ã§ã¯ãç§ãã¡ã¯ãã©ããã©ã³ãã®äœäººã§ãããçåŽã ãã§äžçãèŠãããšãã§ããå¿ ç¶çã«æªæ²ãããŠããŸãã
ããå€ãã®èŠç¹
äžè¬ã«ãåšå²ã®äžçã¯ãèŠç¹ããã¹ãŠãæªããæ¹æ³ã®èšŒæ ã§ãã£ã±ãã§ãã ããµã®æå¡ãæ¯ãã人ã
ã倪éœãæã«ããåçããšãã·ã£ãŒã®å€å
žçãªçµµç»ã¯èšããŸã§ããªããããã«å®ç§ãªäŸããããŸã- ãšãŒã ã¹ã«ãŒã ã ãããã¯ã欺ãããã«ç¹å¥ã«äœãããå€ç«ããããªãã¯ã§ã¯ãªãããšãç解ããããšãéèŠã§ãã ããŒã¹ãã¯ãã£ãã¯åžžã«å£ã£ãç»åã瀺ããŸãããååãšããŠããããããã³ãŒããããããšãã§ããŸãã çªã®å€ãèŠãŠãããªããèŠããã®ã¯æ¬ºããããã¿ã絶æçãªå£çã ãšèããŠã¿ãŠãã ããã
2.ç»åââã¯æ¬ç©ã§ã¯ãããŸãããNeo
ããªãããã¥ãŒã©ã«ãããã¯ãŒã¯ã ãšæ³åããŠãã ããã
ããã»ã©é£ããããšã§ã¯ãããŸãã-çµå±ã®ãšãããã©ããããããæ¬åœã«ããã§ãã ãã¹ããŒããªãã£ã¹ã§æžé¡ã®é¡ãèªèããèªç±ãªæéãéãããŸãã ããªãã¯éåžžã«åªãããã¥ãŒã©ã«ãããã¯ãŒã¯ã§ãããäœæ¥ã¯ããã»ã©è€éã§ã¯ãããŸãããããã»ã¹ã§ã¯ã人éã®é¡ã«å³å¯ã«ç¹åŸŽçãªãã¿ãŒã³ïŒäž¡ç®ã錻ãå£ã®çžäºé 眮ïŒã«å°ãããããã§ãã ç®ãšéŒ»èªäœã¯ç°ãªãå ŽåããããŸããåçã®å åã®1ã€ã¯åºå¥ã§ããªãå ŽåããããŸãããä»ã®äººã®ååšãåžžã«åœ¹ç«ã¡ãŸãã ãããŠçªç¶ããªãã¯ããã«åºããããŸãïŒ
ããŒããããªãã¯æãã ããªãã¯ééããªãããªãã¿ã®äœããèŠã-å°ãªããšãäžå€®ã«ã¯ã1ã€ã®ç®ãããããã ã 確ãã«ãå¥åŠãªåœ¢-ããã¯äžè§åœ¢ã®ããã«èŠããå ã®å°ã£ãæ¥åã®ããã§ã¯ãããŸããã 2çªç®ã®ç®ã¯èŠããŸããã 錻ã¯çãäžãšç®ã®éã«ããã¯ãã§ããã茪éã®ç«¯ãŸã§å®å šã«è¡ããŸããããå£ããŸã£ããèŠã€ãããŸããã§ãã-ééããªããå·Šäžã®æãè§ã¯åœŒã®ããã«ã¯èŠããŸããã é¡ã§ã¯ãªã-ããªãã決å®ãããŽãç®±ã«åçãæããŸãã
ã§ããããç§ãã¡ã®èŠèŠã·ã¹ãã ãç»åã®ãã¿ãŒã³ã®åçŽãªæ¯èŒã«åŸäºããŠãããšæããŸãã 幞ããªããšã«ã圌女ã¯äœããã®åœ¢ã§éã£ãèãæ¹ãããŠããŸãã ç§ãã¡ã¯ãé¡ãé¡ã®ããã«å°ãªããªããªãããã«ãã第2ã®ç®ããªãããšãå¿é ããŠããŸããã ç§ãã¡ã¯ã2çªç®ã®ç®ãå察åŽã«ããã¹ãã§ãããšç²Ÿç¥çã«ãµãããããã®åœ¢ç¶ã¯ãåçã®é ãåããå€ããŠåŽãåããŠãããšããäºå®ã ãã«èµ·å ããŸãã èšèã§èª¬æããããšãããšããäºçŽ°ãªããšã¯äžå¯èœã«æããŸãããå®å šã«å察ãã人ãããŸãã
æãåä»ãªã®ã¯ããã®åé¡ãæ©æ¢°çã«è§£æ±ºããæ¹æ³ãèŠããªãããšã§ãã ã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã¯ãéå§ä»¥æ¥éåžžã«é·ãéãé¢é£ããåé¡ã«çŽé¢ããŠãããå®æçã«å¹æçãªç¹å®ã®ãœãªã¥ãŒã·ã§ã³ãèŠã€ããŸãã-ãããã£ãŠãç»åå šäœã§ãã¹ããã¿ãŒã³ãé£ç¶çã«ç§»åãããªããžã§ã¯ããèå¥ã§ããŸãïŒç³ã¿èŸŒã¿ãããã¯ãŒã¯ãæ£åžžã«äœ¿çšããŸãïŒã SIFTãSURFãããã³ORBå±æ§ã䜿çšããŠã¹ã±ãŒãªã³ã°ãŸãã¯å転ããç»åã§ãããã·ãŒã³ç©ºéå ã®ãªããžã§ã¯ãã®é è¿æãšå転ã®å¹æã¯ã質çã«ç°ãªãã¬ãã«ã«ããããã§ãã ããã§ã¯ãçã®3次å 圢ç¶ãåŸãããã«ããªããžã§ã¯ãããã¹ãŠã®åŽé¢ããã©ã®ããã«èŠããããç¥ãå¿ èŠããããŸããããã§ãªãå Žåã¯ãäœãåŠçããŸããã ãããã£ãŠãåçãèªèããããã«ãåçãèªèããå¿ èŠã¯ãããŸããã 圌ãã¯èåœã§ã欺ceçã§ãæ æã«å£ã£ãŠããŸãã 圌ãã¯ç§ãã¡ã®åéã§ã¯ãããŸããã
3.æåŸã«ãç·Žç¿ããïŒå®éã«ã¯ããªãïŒ
ã ãããéèŠãªåé¡ã¯ãç§ãã¡ãèŠããã¹ãŠã®3次å ã¢ãã«ãã©ã®ããã«ååŸããã®ã§ããããïŒ ããã«éèŠãªè³ªåã¯ãã¬ãŒã¶ãŒç©ºéã¹ãã£ããŒãè³Œå ¥ããã«ããŸããã£ãŠããæ¹æ³ã§ãïŒæåã«ãéåžžã«é«äŸ¡ãªã¬ãŒã¶ãŒã¹ãã£ããŒããæžããŠããã ãã®èšäºã«åºããããŸãã ïŒã ç³ãèš³ãããŸããããèŠèŠã·ã¹ãã ã®é²åã®éçšã«ããåç©ã¯ãæããã«ãããªãã§ãç®ã ãã§äœãšãããŠç®¡çãããŠããã®ã§ãããã»ã©å€ãã¯ãããŸããã
ãã®å Žæã®ã©ããã§ã芳客ã®äžéšãç«ã¡äžãã£ãŠéšå±ãåºãŠãæ©åšã«å»å°ããããšãåªããŸã-誰ããç§ãã¡ãæ·±ããšç©ºéãç¥èŠããããã«äž¡çŒèŠã䜿çšããŠããããšãç¥ã£ãŠããŸããããã«ã¯2ã€ã®ç¹å¥ãªç®ããããŸãïŒ ããªããããæããªããããªãã«ã¯å°ãé©ãããããŸã-ããã¯çå®ã§ã¯ãããŸããã 蚌æã¯ã·ã³ãã«ã§çŸãã-çç®ãéããŠéšå±ãæ©ãåã£ãŠãäžçãçªç¶æ·±ãã倱ããã¢ãã¡ã®å¹³ããªã¢ããã°ã®ããã«èŠããªãããšã確èªããŠãã ããã ãã1ã€ã®æ¹æ³ã¯ãã¢ãã¿ãŒã®å®å šã«å¹³ããªè¡šé¢ã«äœçœ®ããŠããã«ããããããã奥ã«æ»ã£ãŠééã®åçãããäžåºŠèŠãããšã§ãã
äžè¬ã«ã2ã€ã®ç®ã§ã¯ããã»ã©åçŽã§ã¯ãããŸãã
äžéšã®ã¢ã¯ã·ã§ã³ã§ã¯ã空éçäœçœ®ãè©äŸ¡ãããšããç¹ã§éåžžã«æçãªããã§ãã 2æ¬ã®éçãåããçç®ãéãããããã®éçãåãããŠãé¡ã®è¿ãã®ãªãŒãã®å
端ã«è§Šããããã«ããŸãã ã»ãšãã©ã®å ŽåããªãŒãã¯åé¢ããé¡èã«ãªããŸãïŒæåããå Žåã¯ãé¡ã«ããã«è¿ã¥ããŸãïŒããããã¯2çªç®ã®éããç®ã§ã¯çºçããŸããã ããŒã¯ãã£ã³ã®ã·ã®èæžãRevolution in Visionãã®äŸã§ããç«äœèŠãšåçŒèŠã«ã€ããŠã®ç« å
šäœããããåãèã®ãããªå°ããªãã€ãºãèŠãããã«2ã€ã®ç®ãèŠãå¿
èŠããããšããå¥åŠãªçè«ããããŸãã ãšããã§ãé¢çœãäºå®-ãŠã£ãããã£ã¢ã®äž¡çŒèŠã®å©ç¹ã®ãªã¹ãã®æåã®å Žæã«ããã®ã¯ãã1ã€ãæå·ããå Žåã«ã¯ãªãŒãã£ãŒã«äºåã®ç®ãäžããããšããããšã§ãã
ãã®ãããäž¡çŒèŠã¯ç§ãã¡ã«ã¯é©ããŠããŸãããã¹ãã¬ãªã«ã¡ã©ãã¬ã³ãžãã¡ã€ã³ããŒãKinectã¯æåŠãããŸãã ç§ãã¡ã®èŠèŠã·ã¹ãã ãç§ãã¡ãèŠãŠãããã®ã®3次å ç»åãåçŸããèœåãäœã§ãããããã¯æããã«2ã€ã®ç®ãå¿ èŠãšããŸããã çµæã¯äœã§ããïŒ
ç§ã¯ãçç©åŠçèŠèŠã«é¢ããŠæ£ç¢ºãªçããåºãæºåãã§ããŠããããã§ã¯ãããŸãããããããããã«ã¡ã©ä»ãã®æœè±¡çãªããããã®å Žåãç®ã§ã¯ãªãææãªæ¹æ³ãæ®ã£ãŠããŸãã ãããŠããããåãã§ãã
é»è»ã®ãããã¯ã«æ»ããŸãããä»åã¯çªã®å€ãèŠãã ãã§ãã
ãã®å Žåã«èŠããããã®ã¯ãéåã®èŠå·®ããšåŒã°ããç°¡åã«èšãã°ã暪ã«ç§»åãããšãè¿ãã®ç©äœãé ãã®ç©äœãããèŠéå ã§ç§»åãããšããäºå®ã«ãããŸãã ååŸã«ç§»åããŠã¿ãŒã³ããããã«ãé©åãªã«ãŒã«ãçå®ããããšãã§ããŸãããããã§ã¯ããããç¡èŠããŸãããã ãã®ããã移åããŠãã¬ãŒã å ã®ãªããžã§ã¯ãã®å€äœãè©äŸ¡ããããã«åºã¥ããŠãªãã¶ãŒããŒããã®è·é¢ã決å®ããŸããããã¯æ£åŒã«ã¯ãåãããã®æ§é ããšåŒã°ããææ³ã§ãã ãã£ãŠã¿ãŸãããã
4.æåŸã«ãç·Žç¿ãã
ãŸã第äžã«-ãããã圌ãã¯ç§ãã¡ã®åã«ãå¶ç¶ããã¹ãŠãããŸãããïŒ ãŠã£ãããã£ã¢ã®ãã¢ãŒã·ã§ã³ããã®æ§é ãããŒãžã«ã¯ããããªãŸãã¯åçã®ã»ãããã3Dã¢ãã«ãåäœæããããã®13ã®ããŒã«ïŒããã³å¯äžã®ãªãŒãã³ãœãŒã¹ïŒãããããã®ã»ãšãã©ããã³ãã«èª¿æŽãšåŒã°ããã¢ãããŒãã䜿çšããŠããã圌ã¯ã¯ãŒã«ã§ãïŒã æ®å¿µãªãããããã¯ãŸã ééããåé¡ãåŒãèµ·ãããŸã-Bundlerã¯ã«ã¡ã©ã¢ãã«ãšãã®å éšãã©ã¡ãŒã¿ãŒãç§ãã¡ããç¥ããããšæã£ãŠããŸãïŒæ¥µç«¯ãªå Žåãã¢ãã«ãäžæãªå ŽåãçŠç¹è·é¢ãæå®ããå¿ èŠããããŸãïŒã
ãããããªãã®ã¿ã¹ã¯ã«ãšã£ãŠåé¡ã§ã¯ãªãå Žåãããã¯æãç°¡åã§åæã«å¹æçãªæ¹æ³ã§ãããããèªæžãå®å šã«çµäºããããšãã§ããŸãïŒãšããã§ãã²ãŒã Ethan Carter Disappearanceã®ã¢ãã«ãã»ãŒåãæ¹æ³ã§äœãããããšãç¥ã£ãŠããŸããïŒïŒ æ®å¿µãªãããã«ã¡ã©ã¢ãã«ã«çžãããå¿ èŠããããšããããšã¯ãé¿ãããæ¡ä»¶ã§ãã ãŸããç§ãã¡ã®åŽã«ã¯å®å šãªYouTubeããžã¥ã¢ã«ãããªãšã¯ã¹ããªãšã³ã¹ããããå°æ¥ãµã³ãã«ãšããŠäœ¿çšãããããã§ãã 第äºã«ïŒãããŠãããã¯ããããããã«éèŠã§ãïŒã人éã®è³ã¯ãç®ã®ã«ã¡ã©ã®å éšãã©ã¡ãŒã¿ãŒãæ°åã§ç¥ã£ãŠããã°ãå åŠæªã¿ã«é©å¿ããæ¹æ³ãå®å šã«ç¥ã£ãŠããããã ããã§ãã åºè§ã«ã¡ã©ãéçŒã¬ã³ãºã®ã¬ã³ãºãéããŠèŠããæ ç»ãèŠãããããŠãªã¯ã«ã¹ã©ã€ãã«ãè£ çããŠããèŠèŠèœåãå®å šã«æãªãããããšã¯ãããŸããã ãããã£ãŠããããããä»ã®æ¹æ³ãå¯èœã§ãã
ããã§ãæ®å¿µ
1.ãã£ãªãã¬ãŒã·ã§ã³ãããã«ã¡ã©ãã2ã€ã®ãã¬ãŒã ãæ®åœ±ããŸãã
2.ãã£ãªãã¬ãŒã·ã§ã³ãã©ã¡ãŒã¿ãŒïŒã«ã¡ã©ãããªãã¯ã¹ïŒãšãšãã«ãäž¡æ¹ãstereoRectifyé¢æ°ã«é 眮ããŸããããã«ãããããã2ã€ã®ãã¬ãŒã ãçŽç·åïŒä¿®æ£ïŒãããŸããããã¯ããã€ã³ããšãã®ãªãã»ããã1æ¬ã®æ°Žå¹³ç·ã«çŸããããã«ç»åãæªããå€æã§ãã
3.ãããã®ä¿®æ£ããããã¬ãŒã ãstereoBMé¢æ°ã«å ¥ããŠãèŠå·®ããããååŸããŸã-ã°ã¬ãŒã®æ¿æ·¡ã§ããã¯ã»ã«ãæããããªãã»ããã倧ãããªããããªç»åïŒåç §äŸããããŸãïŒã
4.çµæã®ãã£ã¹ãã¬ã€ã¹ã¡ã³ãããããã reprojectImageTo3Dãšããååã®é¢æ°ã«å ¥ããŸãïŒQãããªãã¯ã¹ãå¿ èŠã§ããããã¯ãç¹ã«ã¹ããã2ã§ååŸããŸãïŒã 3次å ã®çµæãåŸãããŸãã
ãããŒãç§ãã¡ã¯åãã¬ãŒããèžãã§ããããã§ã-ãã§ã«ãã€ã³ã1ã§ã¯ããã£ãªãã¬ãŒã·ã§ã³ãããã«ã¡ã©ãå¿ èŠã§ãïŒãã ããOpenCVã¯ç§ãã¡èªèº«ã§ãããè¡ãæ©äŒãäžããŠãããŸãïŒã ããããã¡ãã£ãšãèšç»BããããŸããäžå¯©ãªååstereoRectifyUncalibratedãæã€ããã¥ã¡ã³ãã®æ©èœããããŸã...
ãã©ã³BïŒ
1.å°ãªããšãéããããã€ã³ãã®ã»ããã«ã€ããŠãå€äœã®ããããã®éšåãèªåã§è©äŸ¡ããå¿ èŠããããŸãã StereoBMã¯ããã§ã¯é©åã§ã¯ãªããããä»ã®æ¹æ³ãå¿ èŠã§ãã è«ççãªãªãã·ã§ã³ã¯ããã£ãŒãã£ãããã³ã°ã䜿çšããããšã§ããäž¡æ¹ã®ãã¬ãŒã ã§ããã€ãã®ç¹å¥ãªãã€ã³ããèŠã€ããŠããããã³ã°ãéžæããŸãã ãã®æ¹æ³ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
2.äºãã«å¯Ÿå¿ãã2ã»ããã®ãã€ã³ããããå ŽåãããããfindFundamentalMatã«ããããããŠã stereoRectifyUncalibratedã«å¿ èŠãªåºæ¬ãããªãã¯ã¹ãååŸã§ããŸãã
3. stereoRectifyUncalibratedãå®è¡ããäž¡æ¹ã®ãã¬ãŒã ãä¿®æ£ããããã®2ã€ã®ãããªãã¯ã¹ãååŸããŸãã
4.ãããŠ...ãããŠããã¯æ確ã§ã¯ãããŸããã ãã¬ãŒã ãä¿®æ£ããŸããããæçµã¹ãããã«å¿ èŠãªè¡åQã¯ãããŸããã ã°ãŒã°ã«ã§ãç§ã¯åãå°æã«ã€ããŠã®æçš¿ã«ã€ãŸãããçè«çã«äœããèŠéãããããã®ç¬éãOpenCVã§èããããªãã£ãããšã«æ°ä»ããŸããã
OpenCVïŒ2-0ã§ãã
4.1èšç»ã®å€æŽ
ããããã¡ãã£ãšã ããããæåããééã£ãæ¹åã«é²ãã ã®ã§ãããã 以åã®è©Šã¿ã§ã¯ãå®éã«ã3次å ãã€ã³ãã®å®éã®äœçœ®ã決å®ããããšããŸããããããã£ãŠãã«ã¡ã©ããããªãã¯ã¹ããã¬ãŒã ã®ä¿®æ£ãªã©ã®ãã©ã¡ãŒã¿ãŒãç¥ãå¿ èŠããããŸããã å®éãããã¯éåžžã®äžè§æž¬éã§ãïŒæåã®ã«ã¡ã©ã§ãã®ç¹ãèŠãŠã2çªç®ã§ããã§-ç§ãã¡ã¯ã«ã¡ã©ã®äžå¿ãéã2ã€ã®å ç·ãæãããããã®äº€ç¹ã¯ç¹ãç§ãã¡ããã©ãã ãé¢ããŠãããã瀺ããŸãã
ããã§ååã§ãããäžè¬çã«èšãã°ãå¿ èŠãããŸããã åŸã§äœããã®ç®çã§3Dããªã³ã¿ãŒã§ã¢ãã«ã䜿çšããå Žåããªããžã§ã¯ãã®å®éã®ãµã€ãºã«èå³ããããŸãã ããããåä¿¡ããããŒã¿ããã¥ãŒã©ã«ãããã¯ãŒã¯ããã³åæ§ã®åé¡åšã«ããã·ã¥ããããã«ïŒãã ãããã®ç®æšã¯æ¢ã«å°ããŒãããŠããŸãïŒã ãã®ããã«ã¯ããªããžã§ã¯ãã®çžå¯Ÿçãªãµã€ãºã®ã¿ãç¥ãã ãã§ååã§ãã ç§ãã¡ããŸã èŠããŠããããã«ããããã¯èŠå·®å€äœã«åæ¯äŸããŸã-ç§ãã¡ããé ãé¢ããã»ã©ãããã¯ç§ãã¡ã®ç§»åäžã«ç§»åããŸããã ã©ãã«ãããŠ2ã€ã®åçãæ¯èŒããã ãã§ããããã®å€äœãããã«ç°¡åã«èŠã€ããããšã¯å¯èœã§ããïŒ
ãã¡ããã§ããŸãã ããã«ã¡ã¯ã å ã¹ããªãŒã ã
ããã¯ããŸãã«å¿ èŠãªããšãè¡ãçŽ æŽãããã¢ã«ãŽãªãºã ã§ãã ãã®äžã«åçãšãã€ã³ãã®ã»ãããå ¥ããŸãã 次ã«ã2çªç®ã®ç»åãé 眮ããŸãã äžãããããã€ã³ãã®åºåã§ã2çªç®ã®ç»åã®æ°ããäœçœ®ãååŸããŸãïŒãã¡ããæŠç®ã§ãïŒã ãã£ãªãã¬ãŒã·ã§ã³ãã«ã¡ã©ã®èšåã¯äžåãããŸãã-ãªããã£ã«ã«ãããŒã¯ãååã«ããããããäœã«åºã¥ããŠãèšç®ã§ããŸãã éåžžããªããžã§ã¯ãã®è¿œè·¡ãè¡çªã®æ€åºãããã«ã¯æ¡åŒµçŸå®ã«ãŸã§äœ¿çšãããŸãã
ç§ãã¡ã®ç®çã®ããã«ãïŒä»ã®ãšããïŒGunnar Farnebakã®ãå¯ãªããããŒã䜿çšããããšæããŸãã圌ã¯ãåã ã®ãã€ã³ãã§ã¯ãªããå šäœåãäžåºŠã«èšç®ããæ¹æ³ãç¥ã£ãŠããããã§ãã ãã®ã¡ãœããã¯calcOpticalFlowFarnebackã§äœ¿çšã§ããŸããæåã®çµæã¯æ¬åœã«æ¬åœã«å§ãŸããŸãã以åã®çµæstereoRectifyUncalibrated + stereoBMãããã©ãã ãã¯ãŒã«ã«èŠãããã確èªããŠãã ããã
çŽ æŽãããã²ãŒã Portal 2ã«ãããªãèªèº«ã®éšå±ãäœãããã¥ãŒãããã¬ã€ããæ©äŒã«æè¬ããŸãã ç§ã¯ç§åŠããã£ãŠããŸãïŒ
ãã®å°ããªãã¢ã®ã³ãŒã
# encoding: utf-8 import cv2 import numpy as np from matplotlib import pyplot as plt img1 = cv2.imread('0.jpg', 0) img2 = cv2.imread('1.jpg', 0) def stereo_depth_map(img1, img2): # 1: feature matching orb = cv2.ORB() kp1, des1 = orb.detectAndCompute(img1, None) kp2, des2 = orb.detectAndCompute(img2, None) bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(des1, des2) matches = sorted(matches, key=lambda x: x.distance) src_points = np.vstack([np.array(kp1[m.queryIdx].pt) for m in matches]) dst_points = np.vstack([np.array(kp2[m.trainIdx].pt) for m in matches]) # 2: findFundamentalMat F, mask = cv2.findFundamentalMat(src_points, dst_points) # 3: stereoRectifyUncalibrated _, H1, H2 = cv2.stereoRectifyUncalibrated(src_points.reshape(src_points.shape[ 0], 1, 2), dst_points.reshape(dst_points.shape[0], 1, 2), F, img1.shape) rect1 = cv2.warpPerspective(img1, H1, (852, 480)) rect2 = cv2.warpPerspective(img2, H2, (852, 480)) # 3.5: stereoBM stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET, ndisparities=16, SADWindowSize=15) return stereo.compute(rect1, rect2) def optical_flow_depth_map(img1, img2): flow = cv2.calcOpticalFlowFarneback(img1, img2, 0.5, 3, 20, 10, 5, 1.2, 0) mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1]) return mag def plot(title, img, i): plt.subplot(2, 2, i) plt.title(title) plt.imshow(img, 'gray') plt.gca().get_xaxis().set_visible(False) plt.gca().get_yaxis().set_visible(False) plot(u' ', img1, 1) plot(u' ( )', img2, 2) plot(u'stereoRectifyUncalibrated', stereo_depth_map(img1, img2), 3) plot(u' ', optical_flow_depth_map(img1, img2), 4) plt.show()
ããã ãã£ã¹ãã¬ã€ã¹ã¡ã³ãããããŸãããããªãè¯ãèŠããŸãã ã©ã®ããã«ããŠããããã3次å ãã€ã³ãã®åº§æšãååŸã§ããŸããïŒ
4.2 3次å ã®ç¹ã®åº§æšãååŸããéšå
ãã®å³ã¯ãäžèšã®ãªã³ã¯ã®ããããã§æ¢ã«ã¡ãã€ããŠããŸãã
ããã§ã®ãªããžã§ã¯ããŸã§ã®è·é¢ã¯ãåŠæ ¡ã®ãžãªã¡ããªã¡ãœããïŒé¡äŒŒã®äžè§åœ¢ïŒã䜿çšããŠèšç®ããã次ã®ããã«ãªããŸãã ã ãããŠããããã次ã®ãããªåº§æšïŒ ã ããã§ã wãšhã¯ç»åã®å¹ ãšé«ãã§ã fã¯ã«ã¡ã©ã®çŠç¹è·é¢ïŒã«ã¡ã©ã®äžå¿ããç»é¢ã®è¡šé¢ãŸã§ã®è·é¢ïŒã Bã¯ã«ã¡ã©ã®ã¹ãããã§ãã ã¡ãªã¿ã«ãããã§Zãäžã«åãããšãZãç»é¢ã«ãæ·±ããèŠããXãšYãããããç»åã®å¹ ãšé«ãã«æ²¿ã£ãŠåããããŠãããããäžè¬çã«åãå ¥ããããŠãã軞ã®ååã«è¥å¹²éåããŠããããšã«æ³šæããŠãã ããã
ããŠã fã«é¢ããŠã¯ããã¹ãŠãåçŽã§ãããã¹ãŠã®ãªããžã§ã¯ãã®å²åã ãã1ã€ã®æ³åã«åŸã£ãŠå€åããå Žåãã«ã¡ã©ã®å®éã®ãã©ã¡ãŒã¿ãŒã¯èå³ããªãããšãæ¢ã«èŠå®ããŠããŸãã äžèšã®Xã®åŒã§Zãä»£å ¥ãããšãXã¯çŠç¹è·é¢ã«äŸåããªãããšãããããŸãïŒfãæžå°ããŸãïŒããããã£ãŠããã®ç°ãªãå€ã¯æ·±åºŠãå€æŽããã ãã§ã-ã·ãŒã³ããã¹ãã¬ããããŸãã¯ããã©ãããã«ããŸãã èŠèŠçã«ã¯ãããŸãè¯ããããŸããããåé¡ã¢ã«ãŽãªãºã ã«ã€ããŠã¯ããŸã£ããåãã§ãã ããã§ã¯ãç¥çãªæ¹æ³ã§çŠç¹è·é¢ãèšå®ããŸããã-èããŠã¿ãŠãã ããã 確ãã«ãç§ã¯æ¬æã§ããã«å°ãå¿ãå€ããæš©å©ãçä¿ããŸãã
Bã«ã€ããŠã¯ãããå°ãè€éã§ããæ©æ°èšãçµã¿èŸŒãŸããŠããªãå ŽåãçŸå®äžçã§ã«ã¡ã©ãã©ãã ãåãããããããŸããã ãã®ãããããã§ã¯å°ãæ°ããŠãã«ã¡ã©ãã»ãŒã¹ã ãŒãºã«ç§»åããå€ãã®ãã¬ãŒã ïŒ1ç§éã«æ°ååïŒãããã2ã€ã®é£æ¥ãããã¬ãŒã éã®è·é¢ãã»ãŒåãã§ãããšå€æããŸãã ã ç¹°ãè¿ãã«ãªããŸãããããã«ãã®ç¶æ³ãå°ãæ確ã«ããŸãããä»ã®ãšããã¯ãããããŠãã ããã
ããã€ãã®ã³ãŒããæžãæéã§ã
import cv2 import numpy as np f = 300 # , - , B = 1 w = 852 h = 480 img1 = cv2.imread('0.jpg', 0) img2 = cv2.imread('1.jpg', 0) flow = cv2.calcOpticalFlowFarneback(img1, img2, 0.5, 3, 20, 10, 5, 1.2, 0) mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1]) edges = cv2.Canny(img1, 100, 200) result = [] for y in xrange(img1.shape[0]): for x in xrange(img1.shape[1]): if edges[y, x] == 0: continue delta = mag[y, x] if delta == 0: continue Z = (B * f) / delta X = (Z * (x - w / 2.)) / f Y = (Z * (y - h / 2.)) / f point = np.array([X, Y, Z]) result.append(point) result = np.vstack(result) def dump2ply(points): # .ply, with open('points.ply', 'w') as f: f.write('ply\n') f.write('format ascii 1.0\n') f.write('element vertex {}\n'.format(len(points))) f.write('property float x\n') f.write('property float y\n') f.write('property float z\n') f.write('end_header\n') for point in points: f.write('{:.2f} {:.2f} {:.2f}\n'.format(point[0], point[2], point[1])) dump2ply(result)
ããã¯çµæãã©ã®ããã«èŠãããã§ãã ããªãããã®å Žæãèªãã§ããéããã®gifãããŒãã§ããããšãé¡ã£ãŠããŸãã
ããããããããããã«ããã¹ãŠã®ãã€ã³ããé£ç¶ããŠååŸããã®ã§ã¯ãªããCannyæ€åºåšã«ãã£ãŠåŒ·èª¿è¡šç€ºãããå¢çã®ã¿ãååŸããŸãã
äžèŠãããšããïŒãšã«ãããç§ã«ãšã£ãŠïŒãã¹ãŠãåªããŠããããã«èŠãã-ç«æ¹äœã®é¢ã®éã®è§åºŠã§ããããªã90床ã圢æããã èæ¯ã«ãªããžã§ã¯ãããããšæªåããŸããïŒå£ãšãã¢ã®èŒªéãã©ã®ããã«æªãã§ãããã«æ³šæããŠãã ããïŒããã¡ãã£ãšãããã€ãºã§ããå¯èœæ§ããããŸãããã¬ãŒã ãå¢ããããä»ã®äœãã䜿çšããŠä¿®åŸ©ã§ããŸãã
ããã«æãããå¯èœæ§ã®ãããã¹ãŠã®æ§æ¥ãªçµè«ã®ãã¡ãããã¯çå®ããæãé ãããšãå€æããŸããã
5.äœãèµ·ãããªãéšå
äžè¬çã«ãäž»ãªåé¡ã¯ãããã€ãã®ãã€ã³ããããªãæªãã§ããããšãå€æããŸããã ãããŠ-äœããééã£ãŠãããšçãæéã§ããèŠåãµã€ã³ã¯ãã©ã³ãã ã§ã¯ãªãã»ãŒåãå Žæã§æªãããããããïŒä»ã®ãã¬ãŒã ããïŒæ°ãããã€ã³ããé£ç¶ããŠé©çšããããšã§åé¡ãä¿®æ£ããããšã¯ã§ããŸããã§ããã
次ã®ããã«ãªããŸããã
é段ã¯åŽ©å£ããæã«ã¯äžå¯è§£ãªãã®ã®äžå®åœ¢ãªéšåã«å€ãããŸãã
é段ã¯åŽ©å£ããæã«ã¯äžå¯è§£ãªãã®ã®äžå®åœ¢ãªéšåã«å€ãããŸãã
ç§ã¯éåžžã«é·ãéãããä¿®æ£ããããšããŸãããããã®éã«ç§ã¯æ¬¡ã®ããšãè©ŠããŸããïŒ
-å åŠã¹ããªãŒã ã§ã«ãªã³ã«ãæ»ããã«ããŸãïŒã¬ãŠã¹ãŒãããã¡ãã£ã¢ã³ãã£ã«ã¿ãŒãã·ã£ãŒããªãšããžãæ®ããã¡ãã·ã§ããã«ãªãã€ã©ãã©ã«ãã£ã«ã¿ãŒã ããã¯åœ¹ã«ç«ããªãïŒå察ã«ããªããžã§ã¯ãã¯ããã«ãŒãããŸãã
-ããå€æã䜿çšããŠç»åå ã®çŽç·ãèŠã€ããŠãå€æŽãããŠããªãçŽç·ç¶æ ã§è»¢éããããšããŸããã éšåçã«ã¯æ©èœããŸããããå¢çã§ã®ã¿-è¡šé¢ã¯ãŸã æªãã ãŸãŸã§ãã ããã«ããç»åã«çŽç·ããŸã£ãããªãå Žåã¯ã©ãããããšãã粟ç¥ã§ã¯ãã©ãã«ãããŸããããŸããã§ããã
-OpenCVã®templateMatchingã䜿çšããŠãç¬èªã®ããŒãžã§ã³ã®å ã¹ããªãŒã ãäœæããããšããŸããã ããã¯æ¬¡ã®ããã«æ©èœããŸãããã©ã®ãã€ã³ãã§ããå°ããªïŒçŽ10x10ïŒæ£æ¹åœ¢ãåšå²ã«æ§ç¯ããåãåã£ãŠæ倧äžèŽãæ¢ããŸãïŒåãã®æ¹åãããã£ãŠããå Žåã¯ããåšå²ããå¶éã§ããŸãïŒã å Žæã«ãã£ãŠã¯ããªãããŸããããŸããïŒãã ããå ã®ããŒãžã§ã³ããæããã«åäœãé ããªããŸããïŒã
å·ŠåŽã«ã¯ããªãã¿ã®ãã¡ãŒã³ããã¯ã¹ããªãŒã ãå³åŽã«ã¯äžèšã®èªè»¢è»ããããŸã
æ®å¿µãªããããã€ãºã«é¢ããŠã¯ãããã¯è¯ããªãããšãå€æããŸããã
äžè¬ã«ããã¹ãŠãæªããã®ã§ããããéåžžã«è«ççã§ãã ããã¹ã姿ã ã£ãããã
åé¡ã®å³ã ããã®åãã¯ãŸã å³ãžã®äžæ©ã§ã
äžã®åçããç·è²ã®ç¹ãéžãã§ã¿ãŸãããã 移åã®æ¹åãããã£ãŠããŠãæå®ãããæ¹åã«ç§»åããŠããç·ã®ç¹ã®ãã·ããããååããæ¢ããšããŸãã æ¢ããŠããååãèŠã€ãããšå€æããã®ã¯ãã€ã§ããïŒ ããçš®ã®ãã©ã³ãããŒã¯ãã«åºããããšãåºçºç¹ã®ç°å¢ã«äŒŒãç¹åŸŽçãªé åã«ãªããŸãã ããšãã°ãæãã«ã ãã®ç¹ã§ã®è§åºŠã¯ããããèªäœãéåžžã«ãŸãã§ããããã远跡ã容æã§ãã ãããã£ãŠãç·ã®ç¹ãè§åºŠã§ãããç¹å®ã®è¿åã§åæ§ã®è§åºŠãèŠã€ãã£ãå Žåãåé¡ã¯è§£æ±ºãããŸãã
ããå°ãè€éã§ããã瞊ç·ã®ç¶æ³ã¯ãŸã ç°¡åã§ãïŒ2çªç®ã®å·Šã®ç·ã®ç¹ïŒã ç§ãã¡ãå³ã«ç§»åããŠããããšãèãããšãåçŽç·ã¯æ€çŽ¢æéå šäœã§äžåºŠã ãäŒããŸãã ç»åãä»ããŠæ€çŽ¢ããã¯ã¹ãã¯ããŒã«ããç¡å°ã®èæ¯ãèæ¯ãèæ¯ãããäžåºŠãåçŽã»ã°ã¡ã³ããèæ¯ãããäžåºŠãèæ¯ãããã³èæ¯ãããäžåºŠèŠããšæ³åããŠãã ããã ãããç°¡åã§ã
åé¡ã¯ãåããšå¹³è¡ãªç·ã远跡ããããšãããšãã«çŸããŸãã èµ€ãç¹ã«ã¯ãè¿œæŸãããååã®åœ¹å²ã®æ確ãªåè£ã¯ãããŸããã ãããã®å€ããããããããã¯ãã¹ãŠè¿ãã«ãããç§ãã¡ã䜿çšããæ¹æ³ã䜿çšããŠãããã®ãããããéžæããããšã¯åã«äžå¯èœã§ãã ããã¯ãªããã£ã«ã«ãããŒã®æ©èœå¶éã§ãã 察å¿ããèšäºã§ãŠã£ãããã£ã¢ãã芪åã«èŠåãããŠããããã«ãããã®1ã€ã®æ¹çšåŒã2ã€ã®æªç¥ã®å€æ°ã§è§£ãããšã¯ã§ããŸããããšããªãã«ã§ããããšã¯äœããããŸããã
äœããããŸãããïŒ
äžè¬ã«ãæ£çŽã«èšããšãããã¯ããããããŸãçå®ã§ã¯ãããŸããã çµå±ã®ãšãããå³ã®åçã«èµ€ãç¹ãèŠã€ããããšãã§ããŸããïŒ ãããããã»ã©é£ããããšã§ã¯ãããŸãããããã®ããã«ä»ã®æ¹æ³ã粟ç¥çã«äœ¿çšããŸã-è¿ãã®æãè¿ããç·ã®ç¹ãïŒäžé
ïŒãèŠã€ãããããŸã§ã®è·é¢ãæšå®ãã察å¿ããè·é¢ãç«æ¹äœã®2çªç®ã®é¢ã«çœ®ããŸãã ãªããã£ã«ã«ãããŒã¢ã«ãŽãªãºã ã«ã¯æé·ã®äœå°ããããŸã-ãã®æ¹æ³ãæ¡çšããããšãã§ããŸãïŒãŸã è¡ã£ãŠããªãå ŽåïŒã
6.ç·è²ã®ãããFTW
å®éãé ããåžžèããã®æç¹ã§ç§ãã¡ã«åããŠããããã«ãç§ãã¡ã¯æçµçãªç®æš-èªèãåé¡ãããã³ä»ã®ç¥æ§ã«ãšã£ãŠéèŠã§ã¯ãªãäœåãªäœæ¥ããŸã è©Šã¿ãŠããŸãã åçã®ãã¹ãŠã®ãã€ã³ãã3次å ã®äžçã«è©°ã蟌ãããšããã®ã¯ãªãã§ããïŒ 2次å ç»åã䜿çšããå Žåã§ããéåžžãåãã¯ã»ã«ãåé¡ã«äœ¿çšããããšã¯ããŸãããã»ãšãã©ã®ãã¯ã»ã«ã«ã¯æçšãªæ å ±ãå«ãŸããŠããŸããã ããã§åãããšãããªãã®ã¯ãªãã§ããïŒ
å®éããã¹ãŠããšãŠãã·ã³ãã«ã§ããã åãå æãèšç®ããŸããããç·è²ãã®å®å®ç¹ã®ã¿ã§ãã ã¡ãªã¿ã«ãOpenCVã§ã¯ãã§ã«åœŒããç§ãã¡ã®é¢åãèŠãŠãããŸããã å¿ èŠãªãã®ã¯Lucas-Canadaã¹ããªãŒã ãšåŒã°ããŸãã
åãå Žåã®ã³ãŒããšäŸãæäŸããã®ã¯å°ãéå±ã§ãããªããªããåãããšã«ãªããããã€ã³ãæ°ãã¯ããã«å°ãªãããã§ãã éäžã§äœãä»ã®ããšãããŸããããããšãã°ãã«ã¡ã©ã®å転ãåŠçããæ©èœãã¢ã«ãŽãªãºã ã«è¿œå ããŸãã ãã®åã«ãç§ãã¡ã¯å°ã暪ã«ç§»åããŸããããçŸå®ã®äžçã§ã¯åè»ã®çªã®å€ã¯éåžžã«ãŸãã§ãã
ã¿ãŒã³ã®åºçŸã«ãããX座æšãšZ座æšãæ··ãããŸãã ã«ã¡ã©ã«çžå¯Ÿçãªåº§æšãèšç®ããããã®å€ãåŒã¯ãã®ãŸãŸã«ããŠã次ã®ããã«çµ¶å¯Ÿåº§æšã«å€æããŸãïŒãã㧠-ã«ã¡ã©äœçœ®ã®åº§æšãã¢ã«ãã¡-å転è§åºŠïŒïŒ
ïŒãã¬ãŒã€ãŒã¯è©æ¬ºåž«ã§ã;ããã¯ãã«ã¡ã©ãäžäžã«åããªããšä¿¡ããŠããããã§ãïŒ
ããã®ã©ããã§çŠç¹è·é¢ã«åé¡ããããŸã-èŠããŠãããŠãç§ãã¡ã¯ãããaskæçã«æ±ºããã®ã§ããïŒ ãã®ãããç°ãªãè§åºŠããåããã€ã³ããè©äŸ¡ããæ©äŒãåŸãããã®ã§ãX座æšãšZ座æšãäºãã«å¹²æžãå§ããããããããéèŠã«ãªããŸããã å®éãåã®ã³ãŒãã«äŒŒãã³ãŒããä»»æã®ãã©ãŒã«ã¹ã§å®è¡ãããšã次ã®ãããªã³ãŒãã衚瀺ãããŸãã
æããã§ã¯ãããŸããããããã¯éåžžã®ç«æ¹äœã®åšãã«ã«ã¡ã©ãã¢ãŒãé 眮ããè©Šã¿ã§ãã åãã¬ãŒã ã¯ãã«ã¡ã©ã®æ¬¡ã®å転åŸã®å¯èŠãã€ã³ãã®æšå®å€ã§ãã ãããããã®ãããªå¹³é¢å³ã
幞ããªããšã«ããŸã å ã¹ããªãŒã ããããŸãã å転ãããšããã©ã®ãã€ã³ããã©ã®ãã€ã³ãã«å€ãããã確èªãã2ã€ã®ãã¥ãŒã®è§åºŠãããããã®åº§æšãèšç®ã§ããŸãã ããããçŠç¹è·é¢ãååŸããã®ã¯ç°¡åã§ãïŒç°ãªãã¢ã«ãã¡å€ã«å¯ŸããŠäžèšã®2ã€ã®åŒãååŸãã座æšãåçã«ããfãè¡šçŸããã ãã§ãïŒã ã¯ããã«è¯ãïŒ
ãã¹ãŠã®ãã€ã³ããäºãã«å®å šã«é©åããããã§ã¯ãããŸããããå°ãªããšãç«æ¹äœã§ãããšæšæž¬ã§ããŸãã
æåŸã«ããã€ã³ãã®äœçœ®ã®æšå®å€ãå¿ ãããäžèŽããªããããäœããã®æ¹æ³ã§ãã€ãºã«å¯ŸåŠããå¿ èŠããããŸãïŒãã¡ããšããäžåäžãªãªã³ã°ã®äžã®gifãåç §ããŠãã ãããããããã®ä»£ããã«ãçæ³çã«ã¯1ã€ã®ãã€ã³ããããã¯ãã§ãïŒã ãã§ã«åµé æ§ã®äœå°ã¯ãããŸãããç§ã«ã¯æ¬¡ã®ãããªæãé©åãªæ¹æ³ããããŸããã
-暪ã«è€æ°ã®ã·ãããããå Žåããããã®æ å ±ãçµåããŸãããããã£ãŠã1ã€ã®ãã€ã³ãã«ã€ããŠãäžåºŠã«è€æ°ã®æ·±åºŠæšå®å€ãåŸãããŸãã
-ã«ã¡ã©ãå転ãããšã2ã»ããã®ãã€ã³ããçµã¿åãããŠïŒã¿ãŒã³ã®ååŸïŒãäžæ¹ãä»æ¹ã«åãããããšããŸãã ãã®ãã£ããã£ã³ã°ã¯é©åã«ããã€ã³ãç»é²ããšåŒã°ããŸãïŒæèããå€ããçšèªãèããå Žåã¯æ³åãããªãã£ãã§ãããïŒããã®ããã«ãPython + OpenCVã®googleããŒãžã§ã³ã®å埩æè¿åç¹ã¢ã«ãŽãªãºã ã䜿çšããŸããã
-次ã«ããããå€ååŸïŒæè¿åæ³ã§æ±ºå®ïŒå ã«ãããã€ã³ããããŒãžãããŸãã åãã€ã³ãã«ã€ããŠãã匷床ãã®ãããªãã®ã远跡ããŸããããã¯ãä»ã®ãã€ã³ããšçµã¿åããããé »åºŠã®ã«ãŠã³ã¿ãŒã§ãã 匷床ã倧ããã»ã©ããããæ£çŽã§æ£ãããã€ã³ãã§ããå¯èœæ§ãé«ããªããŸãã
çµæã¯ãããŒã¿ã«ã®ãã¥ãŒãã®å Žåã»ã©å®å®ããŠããŸããããå°ãªããšãæ£ç¢ºã§ãã 以äžã¯ãç§ãæåã«Blenderã«ã¢ããããŒãããã«ã¡ã©ãã²ãã£ãŠãã¬ãŒã ãä¿åãããåäœæãããã¢ãã«ã§ãã
ããŠãšã«ææã®é
ããçš®ã®ã©ã³ãã ãªè»
ãã³ãŽïŒ 次ã«ãããããã¹ãŠãèªèã¢ã«ãŽãªãºã ã«è©°ã蟌ã¿ãäœãèµ·ãããã確èªããå¿ èŠããããŸãã ããããããã¯ããããã次ã®ã·ãªãŒãºã«åããŠåºçºããŸãã
ã¢ããª
å°ãæ¯ãè¿ã£ãŠããªãããããã¹ãŠè¡ã£ãã®ããæãåºããŸãããã æšè«ã®è¡ã¯æ¬¡ã®ãšããã§ããã
-åçã«æãããŠãããã®ãèªèã§ããå¿ èŠããããŸã
-ãããããããã®åçã¯ãäœçœ®ãå€ããããåããã®ãç°ãªãè§åºŠããèŠãããããã³ã«å€ãããŸãã æã èªèãè¶ ããŠ
-ããã¯ãã°ã§ã¯ãªãæ©èœã§ãïŒç§ãã¡ã®éå®ãããã¢ã€ã»ã³ãµãŒã¯ã被åäœå šäœã§ã¯ãªã被åäœã®äžéšã®ã¿ãèŠããšããäºå®ã®çµæ
-ãããã£ãŠãäœããã®æ¹æ³ã§ã»ã³ãµãŒããã®ãããã®éšåããŒã¿ãçµã¿åãããŠãå®å šãªåœ¢ã§è¢«éšè ã®ã¢ã€ãã¢ãåéããå¿ èŠããããŸãã
äžè¬çã«èšãã°ãããã¯ç¢ºãã«èŠèŠã®åé¡ã ãã§ã¯ãããŸãã ã ããã¯ã«ãŒã«ã§ãããäŸå€ã§ã¯ãããŸãã-ç§ãã¡ã®ã»ã³ãµãŒã¯å šèœã§ã¯ãªããéšåã®ãªããžã§ã¯ãã«é¢ããæ å ±ãåžžã«èªèããŠããŸã-ãããããã®ãããªãã¹ãŠã®ã±ãŒã¹ãããçš®ã®äžè¬çãªãã¬ãŒã ã¯ãŒã¯ã«ã©ãã ãçµã¿åãããããšãã§ããã®ã§ããããïŒ èšããŸãïŒèŠçã«æ»ãïŒãããªãã®ç®ã¯åžžã«å°ãããŠéåžžã«éãåããããŠããŸã-ãµãã«ãŒã-èŠéå ã®ãªããžã§ã¯ãéããžã£ã³ãããŸãïŒãããŠããããã®åãã®ééã§ããªãã®ããžã§ã³ã¯ãŸã£ããæ©èœããŸãã-é¡ãèŠãŠãèªåã®ãµãã«ãŒããèŠãããšãã§ããªãçç±ã§ã空çœïŒã è³ã¯ãèŠãããéšåããçž«ãåããããããã«åžžã«åªåãç¶ããŠããŸãã ããã¯ç§ãã¡ã解決ããããšããã°ããã®åé¡ã§ããããããšããŸã éããŸããïŒ åèªã®çºé³ã®ããŸããŸãªããªãšãŒã·ã§ã³ããçæ³çãªãã¹ãã«ã®1ã€ãšçžé¢ãããããšãã§ããå Žåã®é³å£°èªèããããåæ§ã®ã¿ã¹ã¯ã§ããã ã·ããã ãã¢ã€ãã ã®1ã€ã®ãã€ã¡ãŒãžãã«æžãããšã©ããªããŸããïŒ
ã¯ãã®å Žåãããã¯å¯èœã§ããåé¡ã¯èŠèŠã·ã¹ãã ã®åãªãå°ããªçºã®ã¢ã«ãŽãªãºã ã§ã¯ãªããã¹ãã£ããŒã®ã¬ãŒã¶ãŒãã€ã³ã¿ãŒãé²åããŠããªãç®ã§çœ®ãæããã ãã§ã¯ãããŸããã
èªç¶çã«èŠããããã®ãåçŸããããšãããšãããã®ãã¹ãŠã®ã³ã³ããŒãã³ããç²ç®çã«ã³ããŒããããšã¯æå³ããªããšããããšã¯æãããªèæ ®äºé ã§ãã 空ãé£ã¶ããã«ã矜ã°ããã®çŸœãšçŸœãååã«ç¡¬ã矜ãšæåã¯å¿ èŠãããŸããã éãèµ°ãããã«ãæ©æ¢°çãªèã¯å¿ èŠãããŸãã-è»èŒªã¯ã¯ããã«ãã察åŠããŸãã ç§ãã¡ãèŠããã®ãã³ããŒããã®ã§ã¯ãªããååãèŠã€ããŠèªåã§ãããç¹°ãè¿ããããšæããŸãïŒãã¶ããããããç°¡å/ããå¹ççã«ããïŒã é£è¡ã®ç©ºåã®æ³åã®é¡äŒŒç©ã§ããç¥æ§ã®åçã¯äœã§ããããŸã ããããŸããã ãã£ãŒãã©ãŒãã³ã°ãšåœŒã®é èšè ã§ããYan LekunïŒããã³åœŒã®åŸã®å€ãã®äººã ïŒã¯ãåãåã£ãããŒã¿ããæ©èœã®ãæ·±ããéå±€ãæ§ç¯ããèœåã«ç®ãåããå¿ èŠããããšèããŠããŸãã ããã«ãã1ã€èª¬æãå ããããšãã§ããŸããé¢é£ããããŒã¿ã1ã€ã®ãªããžã§ã¯ãã®äžéšãšããŠèªèããæ°ãã次å ã«é 眮ããæ©èœã§ãã