{"id":17990,"date":"2024-10-16T17:01:39","date_gmt":"2024-10-16T10:01:39","guid":{"rendered":"https:\/\/dp.rmutsv.ac.th\/?p=17990"},"modified":"2025-02-13T10:02:54","modified_gmt":"2025-02-13T03:02:54","slug":"%e0%b9%80%e0%b8%8a%e0%b9%87%e0%b8%84%e0%b8%8a%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%ad%e0%b8%b1%e0%b8%95%e0%b9%82%e0%b8%99%e0%b8%a1%e0%b8%b1%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b8%a3","status":"publish","type":"post","link":"https:\/\/dp.rmutsv.ac.th\/?p=17990","title":{"rendered":"\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e14\u0e49\u0e27\u0e22\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e14\u0e08\u0e33\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32 : Automatic Attendance\u00a0"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>\u0e1c\u0e49\u0e39\u0e40\u0e02\u0e35\u0e22\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21<\/strong> <br>\u0e19\u0e32\u0e22 \u0e18\u0e35\u0e23\u0e1e\u0e25 \u0e40\u0e16\u0e32\u0e27\u0e4c\u0e0a\u0e39                COE #16<br>\u0e19\u0e32\u0e22 \u0e2d\u0e19\u0e31\u0e19\u0e15\u0e4c\u0e27\u0e38\u0e12\u0e34 \u0e18\u0e23\u0e23\u0e21\u0e2a\u0e38\u0e27\u0e23\u0e23\u0e13  COE #16<br>\u0e19\u0e32\u0e22 \u0e27\u0e34\u0e27\u0e23\u0e23\u0e18\u0e19\u0e4c \u0e40\u0e08\u0e23\u0e34\u0e0d\u0e21\u0e32\u0e28         COE #16<br><strong>\u0e04\u0e13\u0e30 <\/strong>: \u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c <strong>\u0e2a\u0e32\u0e02\u0e32<\/strong> : \u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c<br><strong>\u0e27\u0e34\u0e0a\u0e32<\/strong> : 04-513-201 \u0e01\u0e32\u0e23\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e21\u0e32<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">   \u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e21\u0e35\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e43\u0e19\u0e43\u0e0a\u0e49\u0e0a\u0e35\u0e27\u0e34\u0e15\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e27\u0e31\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e17\u0e31\u0e49\u0e07\u0e43\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e41\u0e1e\u0e17\u0e22\u0e4c \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32 \u0e2b\u0e23\u0e37\u0e2d\u0e41\u0e21\u0e49\u0e01\u0e23\u0e30\u0e17\u0e31\u0e48\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2d\u0e33\u0e19\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e41\u0e25\u0e30\u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e19\u0e35\u0e49\u0e44\u0e14\u0e49\u0e21\u0e35 \u0e23\u0e30\u0e1a\u0e1a Face Recognition \u0e41\u0e25\u0e30 Deep face \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e40\u0e17\u0e35\u0e22\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e04\u0e04\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e15\u0e31\u0e27\u0e15\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e2d\u0e19\u0e19\u0e31\u0e49\u0e19\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e40\u0e2a\u0e35\u0e22\u0e40\u0e27\u0e25\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32\u0e20\u0e32\u0e22\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e41\u0e25\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e2a\u0e35\u0e22\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e35\u0e01\u0e2b\u0e32\u0e27\u0e48\u0e32\u0e2b\u0e49\u0e2d\u0e07\u0e40\u0e23\u0e35\u0e22\u0e19\u0e19\u0e31\u0e49\u0e19\u0e21\u0e35\u0e08\u0e33\u0e19\u0e27\u0e19\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e08\u0e32\u0e01\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e14\u0e31\u0e48\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e21\u0e35\u0e2a\u0e48\u0e27\u0e19\u0e2a\u0e48\u0e07\u0e1c\u0e25\u0e01\u0e23\u0e30\u0e17\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e38\u0e1b\u0e2a\u0e23\u0e23\u0e04\u0e4c\u0e15\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e2d\u0e19\u0e44\u0e14\u0e49&nbsp;<br>  \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e17\u0e32\u0e07\u0e04\u0e13\u0e30\u0e01\u0e25\u0e38\u0e48\u0e21\u0e44\u0e14\u0e49\u0e40\u0e25\u0e47\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e08\u0e36\u0e07\u0e44\u0e14\u0e49\u0e23\u0e30\u0e14\u0e21\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e41\u0e25\u0e30\u0e44\u0e14\u0e49\u0e08\u0e31\u0e14\u0e17\u0e33\u0e21\u0e34\u0e19\u0e34\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e0a\u0e37\u0e48\u0e2d \u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e14\u0e49\u0e27\u0e22\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32&nbsp; ( Automatic Face Recognition Attendance ) \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e01\u0e49\u0e44\u0e02\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e01\u0e32\u0e23\u0e40\u0e2a\u0e35\u0e22\u0e40\u0e27\u0e25\u0e32\u0e40\u0e0a\u0e47\u0e04\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32 \u0e1e\u0e31\u0e12\u0e19\u0e32\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e17\u0e35\u0e48\u0e2d\u0e33\u0e19\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e22\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e2d\u0e19\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e35\u0e01\u0e02\u0e31\u0e49\u0e19 \u0e41\u0e25\u0e30\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07 \u0e20\u0e32\u0e29\u0e32python \u0e41\u0e25\u0e30 opencv \u0e43\u0e19\u0e01\u0e32\u0e23\u0e33\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e30\u0e1a\u0e1a Face Recognition&nbsp;\u0e41\u0e25\u0e30 Deep Face<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2.1 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32\u0e43\u0e19\u0e0a\u0e31\u0e49\u0e19\u0e40\u0e23\u0e35\u0e22\u0e19<br>2.2 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e28\u0e36\u0e01\u0e29\u0e32\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 \u0e20\u0e32\u0e29\u0e32 python \u0e41\u0e25\u0e30 AI \u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e30\u0e1a\u0e1a Face Recognition\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3 \u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">3.1 \u0e43\u0e2b\u0e49 opencv \u0e40\u0e01\u0e47\u0e1a\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e08\u0e14\u0e08\u0e33\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e2a\u0e21\u0e32\u0e0a\u0e34\u0e01\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e40\u0e23\u0e35\u0e22\u0e19&nbsp;<br>3.4 \u0e19\u0e33\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e21\u0e32\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4 \u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2.1 \u0e44\u0e14\u0e49\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49 \u0e20\u0e32\u0e29\u0e32 python \u0e41\u0e25\u0e30 opencv \u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e30\u0e1a\u0e1a Face Recognition <br>2.2 \u0e44\u0e14\u0e49\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19 \u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.1. <code>cv2 (OpenCV)<\/code>\u00a0\u2013 OpenCV<\/strong> \u0e40\u0e1b\u0e47\u0e19\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22 \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49 OpenCV \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e21\u0e32 \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e27\u0e32\u0e14\u0e08\u0e38\u0e14\u0e17\u0e35\u0e48 MediaPipe \u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e44\u0e14\u0e49\u0e25\u0e07\u0e1a\u0e19\u0e40\u0e1f\u0e23\u0e21\u0e20\u0e32\u0e1e \u0e23\u0e27\u0e21\u0e16\u0e36\u0e07\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e41\u0e1a\u0e1a\u0e40\u0e23\u0e35\u0e22\u0e25\u0e44\u0e17\u0e21\u0e4c \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e27\u0e32\u0e14\u0e08\u0e38\u0e14\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e19\u0e34\u0e49\u0e27\u0e41\u0e25\u0e30\u0e1b\u0e25\u0e32\u0e22\u0e19\u0e34\u0e49\u0e27\u0e25\u0e07\u0e1a\u0e19\u0e20\u0e32\u0e1e\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e02\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e33\u0e44\u0e1b\u0e41\u0e1b\u0e25\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e21\u0e37\u0e2d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.2 <code>numpy<\/code><\/strong>\u00a0\u0e04\u0e37\u0e2d \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e17\u0e35\u0e48\u0e17\u0e23\u0e07\u0e1e\u0e25\u0e31\u0e07\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e40\u0e0a\u0e34\u0e07\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e2d\u0e32\u0e40\u0e23\u0e22\u0e4c (Array) \u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49\u00a0<code>numpy<\/code>\u00a0\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e40\u0e01\u0e47\u0e1a\u0e41\u0e25\u0e30\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e08\u0e38\u0e14\u0e1a\u0e19\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01 MediaPipe \u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e02\u0e2d\u0e07\u00a0<code>numpy<\/code>\u00a0\u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e23\u0e30\u0e22\u0e30\u0e2b\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e08\u0e38\u0e14 \u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e21\u0e38\u0e21\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e27\u0e01\u0e40\u0e15\u0e2d\u0e23\u0e4c \u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e41\u0e25\u0e30\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e02\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e41\u0e25\u0e30\u0e23\u0e27\u0e14\u0e40\u0e23\u0e47\u0e27<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.3. os Python<\/strong> \u0e04\u0e37\u0e2d\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32 module OS \u0e21\u0e32\u0e43\u0e19\u0e42\u0e04\u0e49\u0e14\u0e20\u0e32\u0e29\u0e32 Python \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e23\u0e30\u0e1a\u0e1a\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34 \u0e2b\u0e23\u0e37\u0e2d\u00a0operating system \u0e42\u0e14\u0e22 module OS \u0e08\u0e30\u0e21\u0e35\u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a OS \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21<br><br><strong>5.4 SheetDB<\/strong> \u0e04\u0e37\u0e2d \u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d <strong>Google Sheets<\/strong> \u0e01\u0e31\u0e1a\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e1c\u0e48\u0e32\u0e19 API \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e41\u0e25\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19 Google Sheets \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e30\u0e14\u0e27\u0e01 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e2d\u0e48\u0e32\u0e19\/\u0e40\u0e02\u0e35\u0e22\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 Google Sheets UI \u0e2b\u0e23\u0e37\u0e2d\u0e43\u0e0a\u0e49\u0e2a\u0e39\u0e15\u0e23\u0e43\u0e19\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07 \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e01\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e15\u0e32\u0e23\u0e32\u0e07 Google Sheets.<br><br><strong>5.5 <code>requests<\/code> <\/strong>\u0e04\u0e37\u0e2d \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e43\u0e19 Python \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e04\u0e33\u0e02\u0e2d HTTP (\u0e40\u0e0a\u0e48\u0e19 GET, POST) \u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e2b\u0e23\u0e37\u0e2d API \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 \u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e42\u0e04\u0e49\u0e14\u0e2a\u0e31\u0e49\u0e19\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e07\u0e48\u0e32\u0e22 \u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e41\u0e25\u0e30\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e40\u0e27\u0e47\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c<br><br><strong>5.6 T<code>hreading<\/code><\/strong>  \u0e04\u0e37\u0e2d \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a <strong>\u0e2b\u0e25\u0e32\u0e22\u0e40\u0e18\u0e23\u0e14 (multithreading)<\/strong> \u0e0b\u0e36\u0e48\u0e07\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e07\u0e32\u0e19\u0e2b\u0e25\u0e32\u0e22\u0e46 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e19\u0e43\u0e19\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23\u0e40\u0e14\u0e35\u0e22\u0e27 (process) \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e25\u0e32\u0e22\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e2b\u0e25\u0e32\u0e22\u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e27\u0e25\u0e32\u0e19\u0e32\u0e19 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e44\u0e1f\u0e25\u0e4c\u0e2b\u0e25\u0e32\u0e22\u0e46 \u0e44\u0e1f\u0e25\u0e4c \u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48\u0e23\u0e2d\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e01\u0e25\u0e31\u0e1a\u0e08\u0e32\u0e01\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0e2a\u0e23\u0e38\u0e1b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">  \u0e42\u0e04\u0e49\u0e14\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e41\u0e1a\u0e1a\u0e40\u0e23\u0e35\u0e22\u0e25\u0e44\u0e17\u0e21\u0e4c \u0e0b\u0e36\u0e48\u0e07\u0e43\u0e0a\u0e49 OpenCV \u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e40\u0e17\u0e35\u0e22\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e07\u0e43\u0e19 Google Sheet<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6.\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"1024\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21-724x1024.png\" alt=\"\" class=\"wp-image-26510\" style=\"width:840px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21-724x1024.png 724w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21-212x300.png 212w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21-768x1086.png 768w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21-1086x1536.png 1086w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/08\/\u0e40\u0e23\u0e34\u0e48\u0e21.png 1414w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0e42\u0e04\u0e49\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e31\u0e49\u0e07\u0e41\u0e1a\u0e1a\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e41\u0e25\u0e30\u0e1e\u0e39\u0e14<\/strong><\/h2>\n\n\n\n<h1 class=\"wp-block-heading\">\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21<\/h1>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code><code>import cv2\nimport numpy as np\nimport requests\nimport json\nimport os\nimport threading\n\ndata_student = {}  # \u0e43\u0e0a\u0e49\u0e40\u0e0b\u0e47\u0e15\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e01\u0e47\u0e1a\u0e0a\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19\n\n# \u0e01\u0e33\u0e2b\u0e19\u0e14 URL \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a API \u0e02\u0e2d\u0e07 SheetDB\nurl = 'https:\/\/sheetdb.io\/api\/v1\/gg8eyhjfthkjm'\n\n# \u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e48\u0e19\u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e2d\u0e35\u0e01\u0e17\u0e35 (\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e44\u0e27\u0e49\u0e17\u0e33\u0e1a\u0e2d\u0e17\u0e40\u0e01\u0e21 , \u0e2b\u0e32\u0e23\u0e39\u0e1b\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e27\u0e01\u0e2d\u0e37\u0e48\u0e19\u0e46\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e08\u0e30\u0e41\u0e21\u0e48\u0e19\u0e02\u0e36\u0e49\u0e19)<\/code><code>\ndef find_face_in_frame(frame, template):\n    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n    template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)\n\n    result = cv2.matchTemplate(frame_gray, template_gray, cv2.TM_CCOEFF_NORMED)\n    _, max_val, _, max_loc = cv2.minMaxLoc(result)\n    \n    # \u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2b\u0e32\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e23\u0e39\u0e1b\u0e43\u0e2b\u0e49\u0e21\u0e31\u0e19\u0e15\u0e23\u0e07\u0e40\u0e1b\u0e4a\u0e30 \u0e2b\u0e23\u0e37\u0e2d\u0e08\u0e30\u0e1b\u0e23\u0e31\u0e1a\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32\u0e19\u0e35\u0e49\u0e43\u0e2b\u0e49\u0e21\u0e31\u0e19\u0e2b\u0e32\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e41\u0e15\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e27\u0e25\u0e32\u0e19\u0e32\u0e19\n    threshold = 0.6  # \u0e1b\u0e23\u0e31\u0e1a threshold \u0e40\u0e1b\u0e47\u0e19 0.7 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e25\u0e14 false positives\n    if max_val &gt; threshold:\n        h, w = template.shape&#091;:2]\n        return True, max_loc, (max_loc&#091;0] + w, max_loc&#091;1] + h), max_val\n    \n    return False, None, None, None\ndef send_sheet(name):\n    name_student = name.split(\" \")&#091;0]\n    headers = {\n    'Accept': 'application\/json',\n    'Content-Type': 'application\/json'\n     }\n    data = {\n        'data': &#091;\n            {\n                '\u0e0a\u0e37\u0e48\u0e2d': name_student,\n                '\u0e23\u0e2b\u0e31\u0e2a': name.split(\" \")&#091;1],\n                '11\/7\/2024': \"\u2705\"\n            }\n        ]\n    }\n    response = requests.post('https:\/\/sheetdb.io\/api\/v1\/gg8eyhjfthkjm', headers=headers, data=json.dumps(data))\n\n# \u0e42\u0e1f\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c faces \u0e44\u0e27\u0e49\u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e19\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30\u0e04\u0e19\nface_folder = 'faces\/'\nfacedata = {}\n\n# \u0e40\u0e01\u0e47\u0e1a\u0e1e\u0e27\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e23\u0e39\u0e1b\u0e40\u0e02\u0e49\u0e32 data \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e44\u0e1b\u0e42\u0e0a\u0e27\u0e4c\u0e43\u0e19 Frame\nfor filename in os.listdir(face_folder):\n    if filename.endswith('.jpg') or filename.endswith('.png'):\n        # \u0e2d\u0e48\u0e32\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e23\u0e39\u0e1b\u0e41\u0e25\u0e49\u0e27\u0e40\u0e01\u0e47\u0e1a\u0e43\u0e19 facedata\n        facedata&#091;filename.split('.')&#091;0]] = cv2.imread(os.path.join(face_folder, filename))\n\n# \u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e41\u0e04\u0e21\nwiwat_cap = cv2.VideoCapture(0)\n\n# \u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 (\u0e16\u0e49\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23)\nwiwat_cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)\nwiwat_cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)\n\n# \u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e23\u0e27\u0e08\u0e1e\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19\u0e25\u0e34\u0e2a\u0e15\u0e4c\ndetected_faces = &#091;]\n\n# \u0e25\u0e39\u0e1b\u0e42\u0e0a\u0e27\u0e4c\u0e40\u0e1f\u0e23\u0e21\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e22\u0e46\nwhile True:\n    ret, frame = wiwat_cap.read()\n    if not ret:\n        break\n    \n    detected_faces.clear()  # \u0e25\u0e49\u0e32\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e23\u0e27\u0e08\u0e1e\u0e1a\u0e43\u0e19\u0e41\u0e15\u0e48\u0e25\u0e30\u0e40\u0e1f\u0e23\u0e21\u0e43\u0e2b\u0e21\u0e48\n    \n    # \u0e2b\u0e32\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e23\u0e39\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e01\u0e47\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19\u0e42\u0e1f\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c faces\n    for name, template in facedata.items():\n        jer_laew, top_left, bottom_right, confidence = find_face_in_frame(frame, template)\n        \n        # \u0e16\u0e49\u0e32\u0e21\u0e31\u0e19\u0e40\u0e08\u0e2d\u0e41\u0e25\u0e49\u0e27 \u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e04\u0e27\u0e32\u0e21\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e31\u0e48\u0e19\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32 0.7\n        if jer_laew and confidence &gt; 0.72:\n            # \u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e27\u0e48\u0e32\u0e21\u0e35\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e2d\u0e37\u0e48\u0e19\u0e17\u0e35\u0e48\u0e43\u0e01\u0e25\u0e49\u0e40\u0e04\u0e35\u0e22\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\n            overlap = False\n            for detected_name, detected_top_left, detected_bottom_right in detected_faces:\n                # \u0e04\u0e33\u0e19\u0e27\u0e13\u0e23\u0e30\u0e22\u0e30\u0e2b\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e23\u0e27\u0e08\u0e1e\u0e1a\n                distance = np.linalg.norm(np.array(detected_top_left) - np.array(top_left))\n                \n                # \u0e16\u0e49\u0e32\u0e23\u0e30\u0e22\u0e30\u0e2b\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32 50 \u0e41\u0e2a\u0e14\u0e07\u0e27\u0e48\u0e32\u0e17\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e01\u0e31\u0e19\n                if distance &lt; 50:\n                    overlap = True\n                    break\n\n            # \u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e17\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19 \u0e43\u0e2b\u0e49\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19\u0e25\u0e34\u0e2a\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\n            if not overlap:\n                detected_faces.append((name, top_left, bottom_right))\n                \n                # \u0e43\u0e2a\u0e48\u0e01\u0e23\u0e2d\u0e1a\u0e40\u0e02\u0e35\u0e22\u0e27 \u0e1b\u0e23\u0e31\u0e1a\u0e2a\u0e35\u0e44\u0e14\u0e49\u0e15\u0e32\u0e21\u0e43\u0e08\u0e0a\u0e2d\u0e1a\u0e15\u0e23\u0e07 (0,255,0)\n                cv2.rectangle(frame, top_left, bottom_right, (0, 255, 0), 2)\n\n                # \u0e43\u0e2a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e32 \u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a confidence\n                name_studentzzz = name.split(\" \")&#091;0]\n                print(name_studentzzz, f'{confidence:.2f}')\n                if name_studentzzz not in data_student:\n                    data_student&#091;name_studentzzz] = True\n\n                    thread = threading.Thread(target=send_sheet, args=(name,))\n                    thread.start()\n\n                    cv2.putText(frame, f\"{name} {confidence:.2f}\", (top_left&#091;0], top_left&#091;1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)\n                else:\n                    # print(\"KUY\", name)\n                    cv2.putText(frame, f\"{name} {confidence:.2f}\", (top_left&#091;0], top_left&#091;1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)\n                    pass\n            else:\n                printf('{confidence:.2f}')\n\n\n    # \u0e41\u0e2a\u0e14\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49\u0e42\u0e0a\u0e27\u0e4c Output \u0e17\u0e35\u0e48\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e21\u0e32\n    cv2.imshow('Webcam', frame)\n\n    # \u0e16\u0e49\u0e32\u0e01\u0e14 Q \u0e04\u0e37\u0e2d\u0e2d\u0e2d\u0e01\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\n    if cv2.waitKey(1) &amp; 0xFF == ord('q'):\n        break\n\n# \u0e1b\u0e34\u0e14\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\nwiwat_cap.release()\ncv2.destroyAllWindows()\n<\/code><\/code><\/pre>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">7.\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21<br>7.1. \u0e40\u0e1b\u0e34\u0e14 cmd<br>7.2. \u0e1e\u0e34\u0e21\u0e1e\u0e4c py espcam.py<br>7.3. \u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e40\u0e25\u0e22<br>7.4. \u0e40\u0e02\u0e49\u0e32\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e41\u0e01\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e25\u0e30\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8.\u0e01\u0e32\u0e23\u0e17\u0e14\u0e25\u0e2d\u0e07<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"724\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d-1024x724.png\" alt=\"\" class=\"wp-image-28700\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d-1024x724.png 1024w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d-300x212.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d-768x543.png 768w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d-1536x1086.png 1536w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2024\/10\/\u0e14\u0e35\u0e44\u0e0b\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">9.<strong>\u0e40\u0e17\u0e04\u0e19\u0e34\u0e01\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e04\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e<\/strong>\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49 Machine Learning \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e43\u0e2b\u0e31\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e41\u0e25\u0e30\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e21\u0e35\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e19\u0e49\u0e2d\u0e22\u0e25\u0e07 \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e02\u0e36\u0e49\u0e19 \u0e41\u0e25\u0e30\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e21\u0e35\u0e01\u0e32\u0e23\u0e17\u0e33 database \u0e41\u0e1a\u0e1a Cloud \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e08\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e37\u0e48\u0e19\u0e46\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e41\u0e25\u0e30\u0e19\u0e33\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e21\u0e32\u0e23\u0e27\u0e1a\u0e23\u0e27\u0e21\u0e44\u0e14\u0e49\u0e43\u0e19\u0e17\u0e35\u0e48\u0e40\u0e14\u0e35\u0e22\u0e27<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10.\u0e2a\u0e23\u0e38\u0e1b\u0e1c\u0e25\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e2a\u0e23\u0e38\u0e1b\u0e1c\u0e25<br>  \u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e1e\u0e1a\u0e27\u0e48\u0e32 \u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e14\u0e49\u0e27\u0e22\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e14\u0e08\u0e33\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32 : Automatic Attendance&nbsp; \u0e19\u0e31\u0e49\u0e19\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e25\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04 \u0e0a\u0e37\u0e48\u0e2d\u0e19\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19-\u0e19\u0e31\u0e01\u0e28\u0e36\u0e01\u0e29\u0e32\u0e44\u0e14\u0e49 \u0e41\u0e15\u0e48\u0e22\u0e31\u0e07\u0e04\u0e07\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e40\u0e25\u0e47\u0e01\u0e19\u0e49\u0e2d\u0e22 \u0e40\u0e0a\u0e48\u0e19 \u0e08\u0e31\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e44\u0e21\u0e48\u0e04\u0e48\u0e2d\u0e22\u0e15\u0e34\u0e14 \u0e41\u0e25\u0e30 \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07 data \u0e44\u0e1b sheet \u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e04\u0e49\u0e32\u0e07\u0e44\u0e1b\u0e0a\u0e31\u0e48\u0e27\u0e02\u0e13\u0e30<br>\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30<br>&#8211; \u0e01\u0e48\u0e2d\u0e19\u0e19\u0e33\u0e20\u0e32\u0e1e\u0e21\u0e32\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25 \u0e04\u0e27\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e\u0e20\u0e32\u0e1e\u0e43\u0e2b\u0e49\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07 \u0e04\u0e27\u0e32\u0e21\u0e04\u0e21\u0e0a\u0e31\u0e14<br>&#8211; \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1d\u0e36\u0e01\u0e2a\u0e2d\u0e19\u0e43\u0e2b\u0e49\u0e21\u0e32\u0e01\u0e02\u0e36\u0e31\u0e19 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19<br>&#8211; \u0e2d\u0e32\u0e08\u0e08\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e40\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e40\u0e40\u0e25\u0e49\u0e27<br>&#8211; \u0e40\u0e1e\u0e34\u0e48\u0e21 Deep learning \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">11.1 Python | \u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e16\u0e48\u0e32\u0e22\u0e20\u0e32\u0e1e\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 OpenCV\/Numpy \u0e41\u0e25\u0e30 mss <a href=\"https:\/\/medium.com\/@pattanapong.sriph\/python-%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%96%E0%B9%88%E0%B8%B2%E0%B8%A2%E0%B8%A0%E0%B8%B2%E0%B8%9E%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2%E0%B8%88%E0%B8%AD-%E0%B9%82%E0%B8%94%E0%B8%A2%E0%B9%83%E0%B8%8A%E0%B9%89-opencv-numpy-%E0%B9%81%E0%B8%A5%E0%B8%B0-mss-07d37e8d13c0\">: https:\/\/medium.com\/@pattanapong.sriph\/python-<\/a><br>11.2 \u0e2d\u0e22\u0e32\u0e01\u0e21\u0e35 API \u0e40\u0e1b\u0e47\u0e19\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07 \u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22 \u0e46 \u0e14\u0e49\u0e27\u0e22 Google Sheet :<br><a href=\"https:\/\/www.borntodev.com\/2022\/09\/23\/%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99-api-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-google-sheet\/\">https:\/\/www.borntodev.com\/2022\/09\/23\/<\/a><br>11.3 \u0e2a\u0e23\u0e38\u0e1b\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19 python :<br><a href=\"https:\/\/medium.com\/@teeppiphat\/%E0%B8%AA%E0%B8%A3%E0%B8%B8%E0%B8%9B%E0%B8%9E%E0%B8%B7%E0%B9%89%E0%B8%99%E0%B8%90%E0%B8%B2%E0%B8%99-python-4e1ef1974364\">https:\/\/medium.com\/@teeppiphat\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e41\u0e1b\u0e25\u0e20\u0e32\u0e29\u0e32\u0e21\u0e37\u0e2d\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e13\u0e1c\u0e25\u0e20\u0e32\u0e1e<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"\u0e23\u0e30\u0e1a\u0e1a\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e25\u0e30\u0e40\u0e0a\u0e47\u0e04\u0e0a\u0e37\u0e48\u0e2d\" width=\"620\" height=\"349\" src=\"https:\/\/www.youtube.com\/embed\/st4pH2VFYlo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u0e1c\u0e49\u0e39\u0e40\u0e02\u0e35\u0e22\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21 \u0e19\u0e32\u0e22 \u0e18\u0e35\u0e23\u0e1e\u0e25 \u0e40&#46;&#46;&#46;<\/p>\n","protected":false},"author":323,"featured_media":29922,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,10,1],"tags":[],"class_list":["post-17990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-16","category-10","category-1"],"_links":{"self":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/17990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/users\/323"}],"replies":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17990"}],"version-history":[{"count":8,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/17990\/revisions"}],"predecessor-version":[{"id":28730,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/17990\/revisions\/28730"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/media\/29922"}],"wp:attachment":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}