ãã¡ã㯠ãã¯ã³ã´ Advent Calendar 2025 6æ¥ç®ã®è¨äºã§ãã

ã¯ããã«
ç§ã«ã¯å°å¦çã®æ¯åããã¦ãç¾å¨ãããã¹ã±ãããã¼ã«ããã£ã¦ãã¾ãã
ãã¾ã«å ¬å¼è©¦åãç·´ç¿è©¦åãè¡ããã観æ¦ãæä¼ãã®ããã«ä¼å ´ã«è¡ãããã®ã¤ãã§ã«ã¹ããã®ã«ã¡ã©ã§æ¯åã®ãã¬ã¼ãé²ç»ãã¦ãã¾ãã
ããã¦ç¨ã«è¯ãå 容ã®è©¦åãããã¨ãããã¯è¨é²ã«æ®ããã°ã¨åç»ç·¨éã½ãããéãã¦æ®å½±ããåç»ãç¹ãã¦ä¸ã¤ã®è©¦åæ åã¨ãã¦ã¾ã¨ãããã¨ãããã¾ãã親ãã«ã§ããã
Â
ãã¦ãããããè©¦åæ åãã¾ã¨ãã¦ããã¨ãç¹ã«è©¦åå±éãæ¥æ¦ã®å ´åããã¬ãæ¾éã®è©¦åæ åã®ããã«å¾ç¹ãã¿ã¤ãã¼ã®è¡¨ç¤ºã欲ãããªããã¨ãããã¾ãã
Â
ãã ããããç·¨éãä¸è¬çãªåç»ç·¨éã½ããã§ã¼ãããå°éã«ãããã¨ããã¨ãã¡ããã¡ã大å¤ãªã®ã§ãããã°ã©ãã³ã°ã®åãåãã¦ã³ã¹ããæãã¤ã¤ãããã£ã½ã表示ãç®æãã¦ã¿ã¾ãããããã¦ãã®ã¤ã¡ã¼ã¸ç»åãåé ã®ã¹ã¯ã·ã§ã§ãã
å ¨ä½ã®æ¹é
大ããåãã¦ä»¥ä¸ã®4ã¹ããããè¡ãã¾ãã
- ãã¸ã¿ã¤ãã®å®ç¹æ®å½±æ åããã®è©¦åæéã¨ç¹æ°ã®è§£æ
- ã¹ã³ã¢ã·ã¼ãããã®é¸ææ å ±ã¨ç²å¾ç¹æ°ã®è§£æ
- è§£æããæ å ±ãå ã«ããå¾ç¹ã»ã¿ã¤ãã¼è¡¨ç¤ºæ åã®èªåçæ
- åç»ç·¨éã½ããã§ã®ç·¨é使¥
説æã®é½åä¸ãã¾ãã¯3.ãã説æãã¦ããã¾ãã
å¾ç¹ã»ã¿ã¤ãã¼è¡¨ç¤ºæ åã®èªåçæ
å¾ç¹ã»ã¿ã¤ãã¼ã®è¡¨ç¤ºã§ããããã£ããè¨ãã¨è©¦åå 容ãããã¹ãã§ãã¼ã¿åãããããå ã«åãã¬ã¼ã æç¹ã§ã®å¾ç¹ã¨æ®ãæéãè¨ç®ããä¸ã§ãPillow (PIL; Python Imaging Library) ã§è¡¨ç¤ºç»åãæç»ããMoviePy ã§æ åã«åæããã¨ããå¦çãè¡ãã¾ãã
Â
ãã¼ã¿åã¯ä»åã¯ãã®ãããªå½¢å¼ã«ãã¦ã¿ã¾ããã
00:00.00 - timer_set 6:00
00:30.01 - timer_start
00:35.14 - score_gain right 2p
01:05.44 - score_gain right 2p
01:17.11 - score_gain left 2p
01:27.38 - timer_stop
01:43.60 - timer_start
ã¨ãããããããæå ¥åã§ãããã®ã§è©¦åæ åãé½åº¦ç¢ºèªããªããç¨æãã¦ããã¾ãã
ãã¨ã¯åãã¬ã¼ã æç¹ã® score_gain ã timer_start - timer_stop ã®æ å ±ãç©ã¿éãã¦ãã®ãã¬ã¼ã ã§è¡¨ç¤ºãã¹ãå¤ãè¨ç®ãã¦æç»ããã¨ããå¦çãç¹°ãè¿ããã¨ã§ãå¾ç¹ã»ã¿ã¤ãã¼è¡¨ç¤ºã®æ åã使ããã¾ãã
Â
使ãããåç»ã¯ãã®ãããªæãã§ããã°ãªã¼ã³ããã¯ã«ãã¦ããã¦ããã¨ã§åç»ç·¨éã½ããã§è©¦åæ åã®ç´ æã«éãåããã¦ããç·¨éãããã¨ãæ³å®ãã¦ãã¾ãã

試åæéã¨ç¹æ°ã®åå¾
ã²ã¨ã¾ã試åçµéã®æ å ±ããå ¥åããã°ããã¨ã¯å¾ç¹ã»ã¿ã¤ãã¼æ åãèªåã§çæãããã¨ãåºæ¥ãããã«ãªãã¾ããã
ããã ãã§ããåç»ç·¨éã½ããã§ããã¹ããä¸ã¤ãã¤æ¿å ¥ãã使¥ã«æ¯ã¹ãã°é¥ãã«æ¥½ã«ãªãã¾ãããããã§ããã¹ã±ãããã¼ã«ã®è©¦åã§ããããæåã§å ¥åããã®ã¯é常ã«é¢åã§ãã
Â
ä¾ãã°ãµãã«ã¼ãªãå¾ç¹ãå ¥ãã®ã¯æ°åç¨åº¦ã§ãã¿ã¤ãã¼ãåå¾åããããéå§ã¨åæ¢ã¯ä¸åãã¤ã§ããããã¹ã±ãããã¼ã«ã¯å¾ç¹ã¯æ°ååãå ¥ãããã¿ã¤ãã¼ã¯è©¦åä¸ä½åº¦ã忢ã»åéãç¹°ãè¿ãï¼ä¾ãã°ãã¼ã«ãã³ã¼ãå¤ã«åºãã䏿¦åæ¢ããï¼ã®ã§ããã¨ããè©¦åæ åãè¦ãªããããã«åããã¦æä½æ¥ã§ãã®æ å ±ãå ¥åãã¦ãã使¥ã¯ã ãã¶æéãããã£ã¦ãã¾ãã¾ãã
Â
ããã«ã¤ãã¦ã¯è©¦åä¸ããã¸ã¿ã¤ãï¼ãã¸ã¿ã«ã§å¾ç¹ãã¿ã¤ãã¼ã表示ããæ©å¨ï¼ãå®ç¹æ®å½±ãããããè§£æãã¦èªåå ¥åããã¨ãããã¨ã試ãã¦ã¿ããã¨æãã¾ãã
Â
å®ç¹æ®å½±ããæ åã¯ãããªæãã§ãã

äºåã¹ãããä¸èã§åºå®ããã¬ã³ãºã¯è¶ åºè§ã«ãã¦ãã¸ã¿ã¤ããç»è§ã«å ¥ãã¤ã¤ããã¼ãã³ã¼ããã¹ã¦ãæ®å½±ãã¦ãã¾ããããã¯ç·¨éæãã¡ã¤ã³ã®æ åã¨ã¯å¥ã®ã¢ã³ã°ã«ããã®æ åã¨ãã¦å©ç¨ãããã¨ãå ¼ãã¦ãã¾ããï¼ãã¨ããã観æ¦ã«éä¸ãéãã¦ã«ã¡ã©ãåãå¿ãã¦ã·ã¥ã¼ãã·ã¼ã³ãæ®ãéããã¨ãããã®ã§ããã®ããã¯ã¢ããã¨ãã¦ãâ¦ãï¼
Â
ããã ã¨ãã¸ã¿ã¤ãã¯ããªãå°ããæ ã£ã¦ãã¦ãæ¡å¤§ããã¨ã ãã¶ã¼ããã¦è¦ãã¾ãããèªã¿åããªãã¯ãªãããã ã¨ããæè§¦ã§ãã

ããã§ä¾ãã°å å¦5åãºã¼ã ã®ã¬ã³ãºãé¸ã¹ã°ä¸å¿å¤å°ã¯ç»è³ªãæ¹åãããã®ã§ãããä½è²é¤¨ã®åºã«ä¸èãç«ã¦ã¦ã®æ®å½±ã ã¨åºããã®æ¯åã§ã¹ããæ¬ä½ããã¬ãæ¹ãå½±é¿ã大ãããæçµçãªç²¾åº¦ã¯ãã¾ãå¤ãããªããã§ããã
Â
7ã»ã°ã¡ã³ãã®æ°å¤ã®èªã¿åãã¯ãæµè¡ãã®æ©æ¢°å¦ç¿ã§â¦ã¨è¨ãããã¨ããã§ãããããã¤ã試ããæ¢åã®ã¢ãã«ã ã¨ä»åã®æ¡ä»¶ã§ã¯é«ã精度ãåºããªãã£ããã¨ãããããã夿°ã®ãã¬ã¼ã ãå¦çããã®ã§åºæ¥ãã ã軽ããã®ãæã¾ãããã¨ããããåã»ã°ã¡ã³ãã«å¿ããé åã®æåº¦ãèªã¿åãã ãã¨ããã·ã³ãã«ãªææ³ãé¸ãã§ãã¾ãã
Â
ããããå¤å®å¦çã¯ã大æµã¯é¾å¤ã®é¸æã«è¦å´ãããã®ã§ããããã¸ã¿ã¤ãã¯çºå å¼ã®ããææãã¯ã£ãããã¦ãããä½ç½®ããæ£ããåããã¦ããã°èªèã®ç²¾åº¦ã¯æ¯è¼çå®å®ãã¦ãã¾ããããã ãããã®ä½ç½®åãããããªãé£ããããã®è©±ã¯å¾è¿°ãã¾ãã

ãã¨ã¯é£ç¶ãã¦åãå 容ãèªã¿åãããã¬ã¼ã ã«éå®ãããªã©ãã¦èª¤èªèãçããä¸ã§ãå¾ç¹ã®å¢å ãã¿ã¤ãã¼ãå¤åãã/ããªããªã£ãã¿ã¤ãã³ã°ãªã©ãæ¤åºãããã¨ã§ãæçµçã«ã¯å ã«å®ç¾©ãããããªè©¦åçµéã表ãããã¹ããã¼ã¿ã«å¤æãããã¨ãã§ãã¾ãã
鏿æ å ±ã¨ç²å¾ç¹æ°ã®è§£æ
å¾ç¹ã¨ã¿ã¤ãã¼è¡¨ç¤ºãããã°è¯ãæãã«ã¯ãªãã¾ãããã©ãããªãä»ã®æ å ±ã追å ãã¦ããã«ãããã£ã½ãããããã¨æãã¾ãã
ã¨ã¯ããæä½æ¥ã§ãã¼ã¿å ¥åããæéã¯ã§ããã ãé¿ãããã¨ããã§ããä»ã«ä½ãåèã«ã§ãããã®ã¯ãªãããªã¨ããã¨ããã§ãç»å ´ããã®ãã¹ã³ã¢ã·ã¼ãã§ãã

詳細ãªèª¬æã¯çãã¾ããã試åçµéãããããè¨é²ãã¦ããç¨ç´ã§ããç¹ã«ãããã¹ã§ã¯è©¦åé²è¡ã®éç¨ã«ã¼ã«ä¸ã試åå¾ã«ã¯å¿ ãè¨å ¥ãããã¹ã³ã¢ã·ã¼ããåºæ¥ä¸ããã®ã§ããããåçã§æ®å½±ããä¸ã§ããã¤ãã®æ å ±ãæ¾ãããã¨æãã¾ãã
Â
ä»åå©ç¨ããã®ã¯é¸æåã¨ãã®èçªå·ãããã¦ã©ã³ãã³ã°ã¹ã³ã¢ã§ãã
ã©ã³ãã³ã°ã¹ã³ã¢ã¯ä¸é¨ã®ã¹ãã¼ããçµé¨ãã¦ãªãéãã¯èãæ £ããªãè¨èã ã¨æãã¾ããã縦ã«ä¸¦ã¶æ°åãç´¯è¨å¾ç¹ã表ãããã®æ°åã®æ¨ªã«ãããå¾ç¹ãã人ã®èçªå·ãè¨å ¥ãã¦ãããã®ã§ãã
Â
ããã使ã£ã¦ä½ãåºæ¥ããã¨è¨ãã¨ããã¸ã¿ã¤ãããè§£æãã¦ããå¾ç¹å¢å ã®æ å ±ãããããæ±ºãã鏿ãããã«ãã®é¸æåã¨å¯¾å¿ããããã¨ã§ãå¾ç¹ãå ¥ã£ãã¿ã¤ãã³ã°ã§ãã®ã·ã¥ã¼ããæ±ºããé¸æã®æ å ±ãããããã§è¡¨ç¤ºãããã¨ããæ¼åºã追å ã§ãã¾ãã
Â
å®éã®æç»å 容ã¨ãã¦ã¯ãããªæãã§ãã

ã¤ãã§ã«ãã®è©¦åã§ã®ç´¯è¨å¾ç¹ã表示ãã¦ã¿ã¾ãããèªååãã¦ãããªãã¤ãã§ã«ç´¯è¨å¾ç¹ãè¨ç®ãã¦è¡¨ç¤ºãããã¨ãç°¡åã§ãæè»½ã«ããã£ã½ãã追å ãããã¨ãåºæ¥ã¾ãã
Â
ãã¦ããããã®ã¹ã³ã¢ã·ã¼ãã®èªã¿åãã§ãããæå ¥åãé¿ããããã«ã¯ãOpenCV ã«ããç´ç·æ¤åºã Tesseract ã«ãã OCR ãå©ç¨ãã¦é åã夿ãããã®è¨å ¥å å®¹ãæ¤åºããã¨ããã¢ããã¼ããèãããã¾ãã
ãã ãç¹ã«ã©ã³ãã³ã°ã¹ã³ã¢ã¯ææ¸ããªã®ã§ããã®æ¤åºã¯åºæ¥ãã ãããã¹ããªææ³ãæ¡ç¨ãããªã©ã®å·¥å¤«ãå¿ è¦ããã§ãã
Â
â¦ã¨ãèãã¦ããã¨é¢åãªã®ã§ãä»å㯠ChatGPT ã«ä¸¸æããã¦ã¿ã¾ããã


Â
ã¹ã³ã¢ã·ã¼ãå ¨ä½ããã®ã¾ã¾æããã ãã§ã¯ã©ã³ãã³ã°ã¹ã³ã¢ã®èªã¿åãã¾ã§ã¯ãããã«ç¡çã§ããããã©ã³ãã³ã°ã¹ã³ã¢ã®èª¬æãå ããä¸ã§ãã©ã³ãã³ã°ã¹ã³ã¢æ¬ã ããã¯ããããã¦ããæ¸¡ãã°ããã£ããèªã¿åããã¨ãã§ãã¦ãã¾ããããããã
Â
â¦ããããè¦ãããå®ã¯äºãæã»ã©ééããããã¾ããï¼Aã®æå¾ã®41, 42ç¹ç®ãèªãã¦ãªããBã®13ç¹ç®ã«28çªãå ¥ã£ã¦ãã¾ã£ã¦ããï¼ã
ããããææ¸ããèªèããã®ã§å¤å°ã®èª¤èªèã¯ãããå¾ãªãããã§ãã¨ããããã¯çµæãç®è¦ã§ç¢ºèªãã¦ä¿®æ£ããéç¨ãã³ã¹ããè¯ãããã§ã¯ããã¾ããããã®ããã㯠AI ã¨ã·ã¹ãã çãªè£å©ãçµã¿åããããã¨ã§ãããå°ã精度ã¯ä¸ãããã¨ã¯åºæ¥ããã«ã¯æãã¾ãã
Â
鏿åã¨èçªå·ã®æ¹ã¯ããã¨ã㨠Tesseract ã§ãèªèå¯è½ã ãããªã¨æããããã ã£ãã®ã§å¿é ã¯ãã¦ãã¾ããã§ãããããã¯ãå®ç§ã«èªã¿åãã¦ãã¾ããã

ã¤ãã§ã«ãããªç»åãçæãã¦ããã°ãæå¾ã®åç»ç·¨éã§ãåQã®éå§åã«ããã«ããã£ã½ãæ¼åºãè¡ããã¨ãåºæ¥ã¾ãã

åç»ç·¨é
ããã¯åã«å¸è²©ã®ã½ããã§ç·¨éããã ããªã®ã§ãç¹çãããã¨ã¯ä½ããªãã§ããã¡ã¤ã³ã§æ®ã£ãæ åãå®ç¹æ®å½±ããå¥ã¢ã³ã°ã«ã®æ åãããã¦ä¸çªä¸ã«çæããå¾ç¹ã»ã¿ã¤ãã¼è¡¨ç¤ºæ åãæå»ãæãããã«ä¸¦ã¹ãä¸ã§ãå¾ç¹ã»ã¿ã¤ãã¼è¡¨ç¤ºæ åã«ã°ãªã¼ã³ããã¯ãééããã¨ãã§ã¯ããè¨å®ãããã¨ã¯è¯ãæãã«æ åãåãè²¼ãããã ãã§ãåé ã®ç»åã®ãããªåç»ãåºæ¥ä¸ããã¾ãã
Â
ããã°ã©ãã³ã°ã¨ãä½ãé¢ä¿ãªããã ã®ãã¦ãã¦ãªã®ã§ãããã«ã¡ã©ã¯è©¦åéå§ãããã¼ãã¿ã¤ã ãªã©ã§ä¸æããã«åãã£ã±ãªãã«ãã¦ããã¨ãã¿ã¤ãã³ã°ã®åæãæåã«åãããã ãã§è¯ãã®ã§æ¥½ã§ãã
課é¡ãªã©
åºæ¬çã«ã¯å½åæãæãã¦ãéãã«å®è£ ãããã¨ã¯åºæ¥ãã®ã§ããã7ã»ã°ã¡ã³ãã®èªèã ãã¯çµæ§ã¦ããã£ã¦ãã¾ãã¾ããã
ç¹ã«ãæåã¯æ¢åã®OSSãå ¬éããã¦ãã¢ãã«ããã®ã¾ã¾ä½¿ãã°èªèã§ããã ããã¨é«ãæ¬ã£ã¦ãã¦ãããããã¾ããããªãã£ãã®ãäºæ³å¤ã§ããã
ã©ã®ã¿ã¡ãããã®ã¢ããã¼ãã ã¨æ¯ãã¬ã¼ã å¦çããã®ã«æéãããã£ã¦ãã¾ã£ãã¨ã¯æãã®ã§ãçµæçã«ã¯è¯ãã£ãç¹ãããã®ã§ãããããããªããä»åã®ãããªã»ã°ã¡ã³ããã¨ã®é åã®æåº¦ãã7ã»ã°ã¡ã³ãã®å¤ãèªã¿åãæ¹å¼ã¯ãä½ç½®ã®ãºã¬ã«ã¯é常ã«å¼±ãã®ã§ããã®ãããã¯ãããã調æ´ãå¿ è¦ã§ããã
7ã»ã°ã¡ã³ãã®åææ¤åºé åã®æå®
ä»åã®ææ³ã§ã¯äºåã«æ¤åºé åãæå®ããå¿ è¦ãããã¾ãã
ãã¡ãã®èªåæ¤åºã¯ç°¡åã«ã¯åºæ¥ãªããããªã®ã§ãä»åã¯äºåã«ã»ã°ã¡ã³ãä½ç½®ããããç»åãéãåããã¦é åãæå®ããç°¡æãã¼ã«ãèªä½ãã¾ããã

ããã ã¨å®å ¨ã«åãã¬ã¤ã¢ã¦ãã®ãã¸ã¿ã¤ããã対å¿ã§ããªããã¨ã«ãªãã¾ãããä»ã¾ã§è¦³æ¦ãã試åã®ã»ã¨ãã©ãååæ©ç¨®ã使ç¨ãã¦ããã®ã§ããã¾ãå°ããã¨ã¯ãªãããã§ããï¼çéã§ã®ããã¡ã¯ããªã®ã§ããããï¼ï¼
ããèªååããããã°ã大ã¾ããªä½ç½®ãªã大éã«ãã¸ã¿ã¤ãã®åçãç¨æãã¦å¦ç¿ãããã°æ©æ¢°å¦ç¿ã§æ¤åºã§ããããªã®ã§ãããããç´°ããæ¢ç´¢ãã¦é©åãªé åãè¦ã¤ããã¨ããã¢ããã¼ãã«ãªãã§ããããâ¦ï¼ã ãã¶é£ããããªæ°ã¯ãã¾ãã
7ã»ã°ã¡ã³ãã®æ¤åºé åã®ãºã¬ã®è£æ£
7ã»ã°ã¡ã³ãã®å¤ãèªã¿åãæ¹å¼ã¯ãä½ç½®ã®ãºã¬ã«ã¯ãã£ã½ãå¼±ãã®ã§ãããææªãªãã¨ã«ä½è²é¤¨ã®ããã¢ã§å®ç¹æ®å½±ãã¦ããã¨ã鏿ãèµ°ã£ããããªãã«ããããããã¨ã«ããåºã®æ¯åã§ã©ãã©ãã¹ããæ¬ä½ãåãã¦ãã¾ãã®ã§ããã®ãºã¬ã¾ã§èæ ®ããå¿ è¦ãããã¾ãã

ä»åã¯ãå°ããã¤ãºã¬ãã ãã§ä¸åº¦ã«å¤§ããç§»åãããã¨ããªããã¨ãè§åº¦ã«å¤§ããªå¤åã¯ãªããã¨ãåæã¨ãã¦ãè§£æä¸ã«ä¸å®é »åº¦ã§ä¸ä¸å·¦å³ã«ãºã©ãã追å ã®è§£æãè¡ãããã¡ãã®æ¹ãææãã¯ã£ããæ¤åºããã¦ãããªããã¡ãã«åºæºä½ç½®ããºã©ãã¨ããå¦çãå ¥ãããã¨ã§ãæå¾ã¾ã§æ¤åºãããã¨ãã§ãã¾ããã
ãã®ãããã¯æ®å½±ç°å¢ã«ã大ããä¾åããã®ã§ãä»åã®ç´ æã§ã¯ãã¾ãã¾ãã¾ããã£ããã®ã®ãé½åº¦èª¿æ´ãå¿ è¦ã«ãªãããã§ãã
ãããã«
ä»åã¯ä»¥åãã試ãã¦ã¿ããã£ãè©¦åæ åã®è¡¨ç¤ºç·¨éã®èªååã«ãã£ã¬ã³ã¸ãã¦ã¿ã¾ãããçµæã¨ãã¦ã¯ãã¾ã ã¾ã ç´ æã®æ åã«å¿ããå¾®å¦ãªèª¿æ´ã®ä¸ã§ä½ã¨ãåä½ãã¦ããæãã¯ãããä»åä½ã£ãä»çµã¿ã§ãã¨ã¯è©¦åæ åãç§ã§ä½ããï¼ã¨ãããã¨ã«ã¯ãªããªããã§ãããå°ãªãã¨ãããããã¼ã¹ã«ã¡ããã¡ããã³ã¼ãã調æ´ããªããåããã¦ããã°ãæ®éã«ããããã¯æ ¼æ®µã«çæéã§ç·¨éã§ããã®ã§ã¯ãªããã¨æãã¾ããã








































































































![[ãã£ã¼ã«ããã©ã¼ã¹] ã¤ã³ã㢠ãããã£ã³ã°ãã·ã³ ACã¢ããã¿ã¼å¯¾å¿ FPM-103 [ãã£ã¼ã«ããã©ã¼ã¹] ã¤ã³ã㢠ãããã£ã³ã°ãã·ã³ ACã¢ããã¿ã¼å¯¾å¿ FPM-103](https://m.media-amazon.com/images/I/31yIFMiciTL._SL500_.jpg)












