
คน รถ มอเตอร์ไซค์ ด้วย YOLO26
เลือกช่วงเวลา โซน และคลาส
ภาพ + คลิป 8 วินาที
อีเมลพร้อมภาพถึงมือถือ
วันนี้เราจะสร้าง ระบบกล้องวงจรปิดอัจฉริยะ ที่มองออกว่าในภาพมี "คน" หรือ "รถ" เข้ามาในโซนที่ห้ามเข้า ในช่วงเวลาที่ไม่ควรมีใคร แล้วส่งอีเมลแจ้งเตือนพร้อมภาพและคลิปหลักฐานทันที ทั้งหมดทำด้วยการพิมพ์สั่ง Claude Code เป็นภาษาไทย ไม่ต้องเขียนโค้ดเอง
ข้อความในกล่องนี้คือคำสั่งสำเร็จรูป คัดลอกไปวางใน Claude Code ได้ทันที
ส่วนที่เป็น [ตัวสีแดงในวงเล็บ] ให้เปลี่ยนเป็นข้อมูลของตัวเองในคู่มือฉบับเว็บ ทุกกล่องมีปุ่ม "คัดลอก Prompt" มุมขวาบน
ภาพผลลัพธ์จริงจากระบบ ไว้เทียบกับหน้าจอของเรา
กล่องแดงอ่อน คือจุดที่มักพลาดหรือทางลัดที่ช่วยได้
ฉบับเว็บ แตะที่ภาพเพื่อขยายเต็มจอได้ทุกภาพ
| เวลา | หัวข้อ | ทำอะไร |
|---|---|---|
| 0:00–0:10 | เปิดคลาส | แนะนำผู้สอน · ดูผลลัพธ์ปลายทาง (อีเมลแจ้งเตือนจริง) · เป้าหมายวันนี้ |
| 0:10–0:25 | AI Detection & YOLO26 | Detection คืออะไร · YOLO26 คืออะไร ทำไมต้องใช้ ทำงานอย่างไร · ช่วยกันขโมยอย่างไร |
| 0:25–0:35 | เครื่องมือ + Setup | Claude Code · Python · OpenCV · Ultralytics/YOLO26 · ffmpeg · Gmail — Prompt S0 |
| 0:35–0:50 | Phase 1 ตรวจจับคน | Prompt P1 · ไฟล์ / webcam / RTSP |
| 0:50–1:00 | Phase 2 เลือกขนาดโมเดล | Prompt P2 (+P2B seg/pose) · เทียบ n / s / m |
| 1:00–1:15 | Phase 3 ช่วงเวลา + โซน | Prompt P3 · 22:00–06:00 · วาดโซน |
| 1:15–1:25 | Phase 4 กรองคลาส | Prompt P4 · 80 คลาส · กันแจ้งเตือนหลอก |
| 1:25–1:50 | Phase 5 หลักฐาน + อีเมล | Prompt P5A + สร้าง App Password + P5B |
| 1:50–2:00 | รันระบบเต็ม + ต่อยอด | Prompt RUN · Bonus RTSP / แผงควบคุมเว็บ · Q&A |
ตารางเวลาเป็นแนวทาง ผู้สอนอาจปรับเวลาแต่ละช่วงให้เหมาะกับความคืบหน้าของผู้เรียน โดยเนื้อหาและผลลัพธ์หลักยังครบถ้วน
เตรียม 6 อย่างนี้ให้พร้อมก่อนเข้าคลาส จะเริ่มลงมือได้ตั้งแต่ Prompt แรก
ไม่ต้องมี GPU — YOLO26n รันบน CPU ได้ · ไม่ต้องมีกล้องจริง — ในคลาสใช้คลิปวิดีโอ · ไม่ต้องเขียนโค้ดเป็น — Claude Code เขียนให้
คลิปกล้องวงจรปิด 7 คลิปที่ใช้ทดสอบทุกเฟส (ทั้งกลางวัน กลางคืน คน รถยนต์ มอเตอร์ไซค์)
| ไฟล์ในโฟลเดอร์ videos/ | ภาพในคลิป | ใช้ใน |
|---|---|---|
| 01_door_entry.mp4 | คนเดินเข้าประตู | P1 |
| 02_hallway_door.mp4 | คนเดินในทางเดิน เห็นเต็มตัว | P2B |
| 04_office_wide.mp4 | ออฟฟิศมุมกว้าง | P2 |
| 11_cctv_office_day.mp4 | กล้องวงจรปิดในออฟฟิศ กลางวัน | P5A |
| 12_cctv_office_night_ir.mp4 | กล้องวงจรปิดกลางคืน (อินฟราเรด) | RUN |
| 13_cctv_carport_motorcycle.mp4 | โรงจอดรถหน้าบ้าน มีมอเตอร์ไซค์ | P3 · P4 |
| 14_cctv_parking_car.mp4 | ลานจอดรถ มีรถยนต์เข้ามา | P4 |
Computer Vision คือการให้คอมพิวเตอร์ "เข้าใจภาพ" แบ่งได้ 3 ระดับ — ระบบกันขโมยของเราใช้ระดับกลาง คือ Object Detection

บอกว่า "ภาพนี้คืออะไร" ได้คำตอบเดียวทั้งภาพ
บอกว่า "มีอะไร อยู่ตรงไหน กี่ชิ้น" ตีกรอบให้ทุกวัตถุ
บอก "รูปร่าง" ของวัตถุละเอียดทีละพิกเซล
กรอบ (x, y, w, h) + คลาส person + ความมั่นใจ confidence 0.87
วิดีโอคือภาพนิ่งหลายสิบภาพต่อวินาที AI จึงตรวจได้ทุกเฟรมแบบ real-time
| รุ่น | ความแม่นยำ mAP50-95 | ความเร็ว CPU ONNX (ms/ภาพ) | ขนาด Params (M) |
|---|---|---|---|
| YOLO26n · ใช้ในคลาส | 40.9 | 38.9 | 2.4 |
| YOLO26s | 48.6 | 87.2 | 9.5 |
| YOLO26m | 53.1 | 220.0 | 20.4 |
| YOLO26l | 55.0 | 286.2 | 24.8 |
| YOLO26x | 57.5 | 525.8 | 55.7 |
ทดสอบบน COCO ขนาดภาพ 640 px · ข้อมูลจาก Ultralytics · ms ยิ่งน้อยยิ่งเร็ว · mAP ยิ่งสูงยิ่งแม่น

ทายกรอบสุดท้ายได้เลย ไม่ต้องมีขั้นกรองกรอบซ้ำ ขั้นตอนน้อยลง เร็วขึ้น นำไปใช้ง่าย
งานวิจัยของผู้พัฒนารายงานว่า YOLO26n เร็วกว่า YOLO11n บน CPU สูงสุดราว 43%
ตัด DFL ออก หัวทำนายเรียบง่าย export ไป ONNX / TensorRT / CoreML / OpenVINO ได้ง่าย
เหมาะกับภาพกล้องวงจรปิดมุมสูงที่คนในภาพดูตัวเล็ก
ไม่ต้องจำโค้ดนี้ — Claude Code เขียนให้ แค่รู้ว่า "สมอง" ของระบบเรียกใช้ง่ายแค่นี้



"บันทึก" แต่ไม่มีใครดู รู้ตัวก็เมื่อเสียหายไปแล้ว
แจ้งเตือนทุกอย่างที่ขยับ (ใบไม้ เงา แมว) เตือนหลอกจนคนเลิกสนใจ
รู้ว่า "อะไร" ขยับ แจ้งเฉพาะคน/รถ ในโซนที่สนใจ ในเวลาที่ไม่ควรมีใคร
ภาพ + คลิป ก่อนเหตุ 3 วินาที และหลังเหตุ 5 วินาที · ใช้ได้กับ บ้านกลางคืน · ร้านค้าหลังปิด · โกดัง · ลานจอดรถ · ห้อง server · แปลงเกษตร
ทุกเครื่องมือฟรีหรือใช้บัญชีที่มีอยู่แล้ว — Claude Code เป็นคนติดตั้งและต่อทุกอย่างเข้าด้วยกันให้

| เครื่องมือ | บทบาท | ทำไมใช้ |
|---|---|---|
| Claude Code | AI Agent เขียนโค้ด รันโค้ด แก้ error ให้ในโฟลเดอร์โปรเจกต์ | สั่งเป็นภาษาไทย ไม่ต้องเขียนโค้ดเอง ได้ระบบจริงใน 2 ชม. |
| Python 3.10+ | ภาษาหลักของ AI | ไลบรารี AI ครบที่สุด |
| OpenCV | อ่านวิดีโอ/กล้อง วาดกรอบ บันทึกคลิป | มาตรฐานงานภาพ ต่อ webcam/RTSP ได้ |
| Ultralytics + YOLO26 | "สมอง" ตรวจจับวัตถุ | โมเดลล่าสุด เร็ว ใช้ 3 บรรทัด |
| imageio-ffmpeg | แปลงคลิปเป็น H.264 | เปิดได้ทุกเครื่องและมือถือ ไม่ต้องลง ffmpeg เอง |
| Gmail SMTP + App Password | ส่งอีเมลแจ้งเตือน | ฟรี ใช้บัญชีที่มีอยู่ ปลอดภัยกว่าใช้รหัสจริง |
| python-dotenv (.env) | เก็บรหัสแยกจากโค้ด | รหัสไม่หลุดไปกับโค้ด |
Claude Code = วิศวกรที่เราสั่งงาน · Ultralytics = กล่องเครื่องมือ (เหมือนปลั๊กอิน) · YOLO26 = สมองที่มองเห็น · OpenCV = ตาและมือ · Gmail = ผู้ส่งสาร

เป้าหมาย: เครื่องพร้อมรันระบบ — มี .venv ติดตั้งไลบรารีครบ ตรวจคลิปทดสอบแล้ว และมีไฟล์ CLAUDE.md ให้ AI จำโปรเจกต์ได้
ช่วยเตรียมโปรเจกต์ "ระบบตรวจจับผู้บุกรุกด้วย YOLO26" ในโฟลเดอร์นี้ให้หน่อย 1. ตรวจว่าเครื่องมี Python 3.10 ขึ้นไปหรือยัง ถ้ายังไม่มีให้บอกวิธีติดตั้งสำหรับเครื่องฉัน (อย่าติดตั้งโปรแกรมระดับเครื่องเองโดยไม่ถาม) 2. สร้าง virtual environment ชื่อ .venv แล้วติดตั้ง ultralytics, opencv-python, pyyaml, python-dotenv, imageio-ffmpeg 3. สร้าง requirements.txt และ .gitignore (ไม่เอา .venv, .env, events/, *.pt) 4. ดูว่าในโฟลเดอร์ videos/ มีคลิปอะไรบ้าง สรุปเป็นตาราง: ชื่อไฟล์ · ความละเอียด · ความยาว · fps 5. สร้างไฟล์ CLAUDE.md บันทึกว่าโปรเจกต์นี้คืออะไร ให้ตอบเป็นภาษาไทย และรัน Python ผ่าน .venv ทุกครั้ง เสร็จแล้วสรุปว่าพร้อมเริ่มเฟส 1 หรือยัง
เป้าหมาย: ได้ไฟล์ detector.py + config.yaml ที่ตีกรอบแดงรอบคนในวิดีโอ พร้อมจำนวนคนและ FPS — รองรับแหล่งภาพ 3 แบบ: ไฟล์วิดีโอ · webcam (0) · กล้องวงจรปิด (rtsp://)
สร้างไฟล์ detector.py ตรวจจับ "คน" จากวิดีโอด้วย YOLO26 - ใช้ ultralytics โหลดโมเดล yolo26n.pt (ระบบดาวน์โหลดให้เองครั้งแรก) - อ่านค่าจาก config.yaml: source (เริ่มที่ videos/01_door_entry.mp4), model, confidence 0.5 - source รองรับ 3 แบบ: path ไฟล์วิดีโอ · ตัวเลข 0 = webcam · rtsp://... = กล้องวงจรปิด - ตรวจเฉพาะคลาส person - วาดกรอบสีแดงรอบคน พร้อมป้าย เช่น person 0.87 และแสดงจำนวนคนที่เจอ + FPS มุมซ้ายบน - เปิดหน้าต่างแสดงผล กด q เพื่อออก - เลือก device อัตโนมัติ: cuda > mps (Mac) > cpu - เพิ่มตัวเลือก --no-window ให้รันแบบไม่เปิดหน้าต่าง (พิมพ์ผลเป็นข้อความแทน) และ --source ไว้เปลี่ยนแหล่งภาพจากคำสั่ง ทดสอบเองด้วย --no-window ก่อน แล้วบอกคำสั่งให้ฉันรันเองแบบเปิดหน้าต่าง สุดท้ายอธิบายโค้ดทีละส่วนสั้น ๆ ให้คนเพิ่งเริ่มเข้าใจ

เป้าหมาย: สลับขนาดโมเดลได้ด้วย --model และเห็นด้วยตาว่า n / s / m ต่างกันอย่างไร ทั้งความเร็วและความแม่น เพื่อเลือกขนาดที่เหมาะกับเครื่องตัวเอง
YOLO26 มีหลายขนาด (n, s, m, l, x) ช่วยให้ระบบสลับโมเดลได้ และเปรียบเทียบให้ดูหน่อย - เพิ่มตัวเลือก --model ให้สลับ yolo26n.pt / yolo26s.pt / yolo26m.pt ได้จากคำสั่ง (ค่าเริ่มต้นอ่านจาก config.yaml) - สร้าง benchmark.py รันโมเดล n, s, m กับ videos/04_office_wide.mp4 อย่างละ 150 เฟรม วัด FPS เฉลี่ย · จำนวนคนที่เจอต่อเฟรมเฉลี่ย · confidence เฉลี่ย แล้วสรุปเป็นตาราง - บันทึกภาพเปรียบเทียบเฟรมเดียวกัน (เลือกเฟรมที่มีคน) ของทั้ง 3 โมเดลเรียงต่อกันเป็น benchmark.jpg - แนะนำว่าเครื่องของฉันควรใช้ขนาดไหนสำหรับกล้องวงจรปิดแบบ real-time พร้อมเหตุผล

| โมเดล | FPS บน Apple M1 (ผลทดสอบจริง) | เหมาะกับ |
|---|---|---|
| YOLO26n | ~36–46 | กล้อง real-time บนโน้ตบุ๊กทั่วไป / CPU |
| YOLO26s | ~21–30 | เครื่องแรงขึ้น ต้องการความแม่นเพิ่ม |
| YOLO26m | ~11–13 | มีการ์ดจอ หรือไม่ต้องการ real-time |
ตัวเลขจากการทดสอบ Prompt ของผู้สอน (Apple M1 · MPS) เครื่องของแต่ละคนจะได้ไม่เท่ากัน
YOLO26 ไม่ได้ทำได้แค่ตีกรอบ ลองให้ดูอีก 2 งาน - สร้าง demo_tasks.py รัน yolo26n-seg.pt (แยกรูปร่างวัตถุทีละพิกเซล) และ yolo26n-pose.pt (จับจุดโครงร่างร่างกาย) กับ videos/02_hallway_door.mp4 เลือกเฟรมที่เห็นคนเต็มตัวชัดที่สุด แล้วบันทึกเป็น task_seg.jpg และ task_pose.jpg - อธิบายสั้น ๆ ว่าแต่ละงานเอาไปใช้กับระบบรักษาความปลอดภัยแบบไหนได้


เป้าหมาย: ระบบเฝ้าระวังเฉพาะ 22:00–06:00 (ข้ามเที่ยงคืนได้) ขึ้นป้าย ARMED / DISARMED และนับเฉพาะวัตถุที่เข้ามาใน โซนที่เราวาดเอง
เพิ่มการกำหนด "ช่วงเวลา" และ "โซน" ที่ระบบจะเฝ้าระวัง
ช่วงเวลา
- config.yaml เพิ่ม schedule: enabled, start "22:00", end "06:00" (ต้องรองรับช่วงที่ข้ามเที่ยงคืน)
- ในช่วงเวลา ขึ้นป้าย ARMED สีแดง · นอกช่วงเวลา ขึ้น DISARMED สีเทา ยังแสดงภาพแต่ไม่นับเป็นเหตุการณ์
- เพิ่มตัวเลือก --now HH:MM ไว้จำลองเวลา แล้วทดสอบให้ดูทั้งกรณีอยู่ในช่วง และอยู่นอกช่วง
โซน
- เพิ่มตัวเลือก --draw-zone เปิดเฟรมแรกให้คลิกเมาส์วาดรูปหลายเหลี่ยม (Enter = บันทึก, c = ล้าง, Esc = ยกเลิก)
บันทึกพิกัดแบบสัดส่วน 0–1 ลง config.yaml แยกตามคลิป/กล้อง (zones: {ชื่อไฟล์: [...]}) ใช้ได้กับทุกความละเอียด
แก้เฉพาะส่วนโซน อย่าลบคอมเมนต์อื่นใน config
- นับเฉพาะวัตถุที่ "จุดเท้า" (กึ่งกลางขอบล่างของกรอบ) อยู่ในโซน · ในโซนกรอบสีแดง นอกโซนกรอบสีเทา
- วาดเส้นโซนบนภาพ ถ้าคลิป/กล้องไหนยังไม่มีโซนให้ถือว่าทั้งภาพเป็นโซน
บอกคำสั่งให้ฉันลองวาดโซนเองกับ videos/13_cctv_carport_motorcycle.mp4
เป้าหมาย: เลือกได้ว่าจะเฝ้าอะไรจาก 80 คลาส (เช่น คน รถยนต์ มอเตอร์ไซค์) สีกรอบต่างกันตามคลาส และ กันแจ้งเตือนหลอก ด้วยเงื่อนไขเจอติดกัน 3 เฟรม + พัก 60 วินาที
ตอนนี้ตรวจแค่คน ช่วยให้เลือกคลาสได้จาก 80 คลาสของ YOLO26 (ชุดข้อมูล COCO) - config.yaml: classes: [person, car, motorcycle] ใช้ชื่อคลาสแทนตัวเลข ถ้าพิมพ์ผิดให้แนะนำชื่อที่ใกล้เคียง - เพิ่มตัวเลือก --list-classes แสดงทั้ง 80 คลาสพร้อมชื่อภาษาไทย - แต่ละคลาสใช้สีกรอบต่างกัน และนับจำนวนแยกตามคลาสบนจอ - กันแจ้งเตือนหลอก: ต้องเจอติดกันอย่างน้อย min_consecutive_frames: 3 เฟรม ถึงนับเป็น "เหตุการณ์" แล้วพักการนับ cooldown_seconds: 60 วินาที (คลิปทดสอบยาวราว 12 วินาที จึงได้ 1 เหตุการณ์ต่อการรัน) - เมื่อเกิดเหตุการณ์ ขึ้นข้อความ INTRUSION DETECTED บนจอ และพิมพ์ log: เวลา · สิ่งที่เจอ · confidence - ทดสอบกับ videos/14_cctv_parking_car.mp4 (รถยนต์) และ videos/13_cctv_carport_motorcycle.mp4 (มอเตอร์ไซค์) ลานจอดมีรถจอดอยู่แล้ว ให้ใช้โซนเฉพาะทางเข้า ไม่งั้นจะแจ้งเตือนตั้งแต่เฟรมแรก ถ้าตอนนี้อยู่นอกช่วงเวลา ให้ทดสอบด้วย --now 23:00 (ไม่ต้องแก้ config)

เป้าหมาย: เมื่อเกิดเหตุ ระบบเก็บ snapshot + คลิป 8 วินาที (ก่อนเหตุ 3 วิ + หลังเหตุ 5 วิ) แล้วส่ง อีเมลภาษาไทยพร้อมภาพและไฟล์แนบ ผ่าน Gmail — ทำ 3 ขั้น: P5A → สร้าง App Password → P5B
เมื่อเกิดเหตุการณ์ ให้ระบบเก็บหลักฐานอัตโนมัติ - เก็บเฟรมย้อนหลังไว้ในหน่วยความจำตลอดเวลา (buffer) เพื่อให้มีภาพก่อนเกิดเหตุ - เมื่อเกิดเหตุ บันทึก snapshot.jpg และ clip.mp4 (ทั้งคู่มีกรอบตรวจจับ) ยาว 8 วินาที = ก่อนเกิดเหตุ 3 วินาที + หลังเกิดเหตุ 5 วินาที (ตั้งค่า pre_seconds / post_seconds ใน config.yaml) - ใส่วันเวลาและชื่อกล้องบนคลิป แล้วแปลงเป็น H.264 ด้วย ffmpeg จากแพ็กเกจ imageio-ffmpeg ให้เปิดได้ทุกเครื่องและในมือถือ - ถ้า source เป็นไฟล์วิดีโอ ให้เล่นตามความเร็วจริงและใช้เวลาของวิดีโอ คลิปจะได้ยาวถูกต้อง - เก็บไว้ที่ events/[วันที่_เวลา]/ พร้อม event.json (เวลา · สิ่งที่เจอ · confidence · ชื่อกล้อง) - การบันทึกคลิปต้องไม่ทำให้การตรวจจับสะดุด (ใช้ thread แยก) ทดสอบกับ videos/11_cctv_office_day.mp4 (ถ้าอยู่นอกช่วงเวลา ใช้ --now 23:00) แล้วเช็คให้ดูว่าคลิปยาวประมาณ 8 วินาทีจริง

ในโฟลเดอร์ events/[วันที่_เวลา]/ จะมี snapshot.jpg clip.mp4 และ event.json — คลิปเปิดได้ทั้งบนคอมและมือถือ
ห้ามวางรหัสในแชท AI — App Password คือกุญแจเข้าอีเมลของเรา ให้ พิมพ์ลงไฟล์ .env ด้วยตัวเอง เท่านั้น ไม่ต้องบอก Claude Code และไม่ต้องส่งให้ใคร
เมื่อเก็บหลักฐานเสร็จ ให้ส่งอีเมลแจ้งเตือนผ่าน Gmail - ใช้ smtp.gmail.com พอร์ต 465 (SSL) อ่านค่าจากไฟล์ .env: SMTP_USER · SMTP_PASSWORD (App Password 16 ตัว) · EMAIL_TO (หลายคนคั่นด้วยจุลภาค) · EMAIL_SEND=false/true - สร้าง .env.example ให้ด้วย ห้ามใส่รหัสจริงในโค้ด และห้ามแสดงรหัสในแชท - หัวเรื่อง เช่น [แจ้งเตือน] พบ คน 1 · รถยนต์ 1 — CAM-01 22:15:08 - เนื้อหา HTML ภาษาไทย: สิ่งที่ตรวจพบ · เวลา · ชื่อกล้อง/สถานที่ · ภาพ snapshot แสดงในตัวอีเมล - แนบไฟล์ snapshot.jpg และ clip.mp4 - ถ้า EMAIL_SEND=false ให้บันทึกเป็น email.eml ในโฟลเดอร์เหตุการณ์แทน (ไว้ทดสอบโดยไม่ส่งจริง) - ส่งอีเมลใน thread แยก ถ้าส่งไม่สำเร็จให้บอกสาเหตุเป็นภาษาไทย (เช่น รหัสผิด ยังไม่เปิด 2-Step) แต่การตรวจจับต้องทำงานต่อ - เพิ่มตัวเลือก --test-email ส่งอีเมลทดสอบ 1 ฉบับ ทดสอบแบบ EMAIL_SEND=false ให้ดูก่อน ฉันจะใส่รหัสใน .env เอง แล้วบอกขั้นตอนที่ฉันต้องทำต่อ
เป้าหมาย: รวมทุกอย่าง (ช่วงเวลา · โซน · คลาส · หลักฐาน · อีเมล) รันกับคลิปกลางคืนอินฟราเรด แล้วให้ AI บันทึกวิธีใช้ระบบลง CLAUDE.md
รันระบบเต็มกับ videos/12_cctv_office_night_ir.mp4 โดยใช้ทุกอย่างที่ทำมา (ช่วงเวลา · โซน · คลาส · หลักฐาน · อีเมล) ถ้าตอนนี้อยู่นอกช่วงเวลาที่ตั้งไว้ ให้ใช้ --now 23:00 · ถ้าคลิปนี้ยังไม่มีโซน ให้ใช้ทั้งภาพ สรุปผล: เกิดเหตุการณ์กี่ครั้ง · ไฟล์อยู่ที่ไหน · ส่งอีเมลสำเร็จหรือไม่ แล้วอัปเดต CLAUDE.md ว่าระบบทำอะไรได้บ้าง และรันด้วยคำสั่งอะไร
สองขั้นนี้ไม่บังคับในคลาส ผู้สอนสาธิตให้ดู แล้วผู้เรียนนำกลับไปทำต่อกับกล้องที่บ้านหรือร้านของตัวเองได้
ฉันจะต่อระบบกับกล้องจริง ช่วยเตรียมให้หน่อย - อธิบายรูปแบบ URL RTSP ของกล้องยอดนิยม (Hikvision, Dahua, TP-Link Tapo) แบบ main stream และ sub stream และแนะนำว่าควรใช้ sub stream เพราะอะไร - ให้ config.yaml อ่าน source จาก .env (CAMERA_URL) เพื่อไม่ให้รหัสกล้องอยู่ในไฟล์ config - ถ้ากล้องหลุด ให้ต่อใหม่อัตโนมัติ แต่ถ้าต่อไม่ได้ตั้งแต่แรกให้แจ้ง error ทันที - ทดสอบกับ webcam ของเครื่องนี้ (source: 0) ให้ดู กล้องของฉัน: [ยี่ห้อ] · IP [192.168.1.xx] · user [admin] (รหัสผ่านฉันจะใส่ใน .env เอง)
สร้างแผงควบคุมบนเว็บด้วย Flask (webapp.py) ที่ใช้ detector.py ตัวเดิม - เลือกคลิป/webcam/RTSP · เลือกคลาสจากรายการ · เลือกขนาดโมเดล · ปรับ confidence - ดูภาพสดพร้อมกรอบตรวจจับ (MJPEG stream) · ปุ่มเริ่ม/หยุด - รายการเหตุการณ์ล่าสุด กดดูภาพ คลิป และตัวอย่างอีเมลได้ - ดีไซน์เรียบแบบหน้าจอห้องควบคุมกล้อง ใช้ไอคอน SVG ห้ามใช้อีโมจิ รองรับมือถือ เปิดที่ http://127.0.0.1:8000 แล้วบอกวิธีใช้
เปิดเบราว์เซอร์ที่ http://127.0.0.1:8000 จะเห็นภาพสดพร้อมกรอบตรวจจับ ปุ่มเริ่ม/หยุด และรายการเหตุการณ์ล่าสุด — ผู้สอนโชว์แผงควบคุมตัวอย่างในคลาส
| อาการ | สาเหตุ | วิธีแก้ |
|---|---|---|
| ModuleNotFoundError: ultralytics | รันด้วย Python นอก .venv | ใช้ .venv/bin/python (Windows .venv\Scripts\python) |
| ดาวน์โหลด yolo26n.pt ไม่ได้ | อินเทอร์เน็ต/ไฟร์วอลล์ | ผู้สอนแจกไฟล์ .pt วางในโฟลเดอร์โปรเจกต์ |
| FPS ต่ำมาก | ใช้โมเดลใหญ่บน CPU | ใช้ yolo26n · ลด imgsz เป็น 480 |
| เตือนหลอกบ่อย | confidence ต่ำ / ไม่มีโซน | เพิ่ม confidence 0.6 · วาดโซน · min_consecutive_frames 5 |
| ไม่มีเหตุการณ์เลย | อยู่นอกช่วงเวลา (DISARMED) | รันด้วย --now 23:00 เพื่อจำลองเวลา หรือ enabled: false |
| แจ้งเตือนตั้งแต่เฟรมแรก | มีรถจอดอยู่ในภาพแล้ว | วาดโซนเฉพาะทางเข้า (โซนแยกตามกล้อง) |
| คลิปเปิดในมือถือไม่ได้ | ยังเป็น mp4v | แปลง H.264 ด้วย imageio-ffmpeg (P5A) |
| 535 Username and Password not accepted | ใช้รหัส Gmail ปกติ / พิมพ์ผิด | สร้าง App Password ใหม่ ใส่ใน .env |
| webcam เปิดไม่ได้บน Mac | ยังไม่ให้สิทธิ์กล้อง | System Settings → Privacy → Camera → อนุญาต Terminal/แอปที่รัน |
| RTSP ต่อไม่ได้ | URL/รหัสผิด หรือคนละวง LAN | ทดสอบ URL ใน VLC ก่อน · ใช้ sub stream |
Prompt ทั้งหมดของวันนี้เรียงตามลำดับ — ฉบับเว็บกดคัดลอกได้ที่บทของแต่ละ Prompt
| ID | Prompt | ช่วงเวลา |
|---|---|---|
| S0 | Setup · เตรียมโปรเจกต์ | 0:25–0:35 |
| P1 | Phase 1 · ตรวจจับคนด้วย YOLO26 | 0:35–0:50 |
| P2 | Phase 2 · เลือกขนาดโมเดล YOLO26 | 0:50–1:00 |
| P2B | Phase 2 (เสริม) · ลองโมเดลงานอื่นของ YOLO26 | 0:50–1:00 |
| P3 | Phase 3 · กำหนดช่วงเวลาและโซนตรวจจับ | 1:00–1:15 |
| P4 | Phase 4 · กรองคลาสที่ต้องการตรวจจับ | 1:15–1:25 |
| P5A | Phase 5 (1/2) · เก็บหลักฐาน ภาพ + คลิป 8 วินาที | 1:25–1:50 |
| P5B | Phase 5 (2/2) · ส่งอีเมลแจ้งเตือน | 1:25–1:50 |
| RUN | รันระบบเต็ม | 1:50–2:00 |
| B1 | Bonus · ต่อกล้องวงจรปิด (RTSP) และ webcam | ต่อยอด |
| B2 | Bonus · แผงควบคุมบนเว็บ | ต่อยอด |
สอนจากประสบการณ์ทำระบบนี้จริง — ผลงาน "ระบบกล้องวงจรปิดตรวจจับอัจฉริยะ" ได้รางวัลชนะเลิศ Oral Presentation (ด้านนวัตกรรม) การประกวดผลงานสหกิจศึกษา CWIE ดีเด่น เครือข่ายพัฒนา CWIE ภาคเหนือตอนล่าง
062-262-9644
admin@zenityxai.com
ออกแบบหลักสูตรโดยสถาบัน ZenityX · Smart Intrusion Detection with YOLO26 · Workshop 2 ชั่วโมง