The English version of this page is being translated and reviewed; the Thai original is shown for now.

Checking datasets before AI training

ฝึกตรวจข้อมูลรั่วจากเที่ยวบินเดียวกัน ภาพซ้ำ และข้อมูลไม่ครบด้วย CSV และ Python ก่อนเริ่มเทรนโมเดลตรวจจับวัตถุ

บทเรียนต้นแบบ · 90 นาที · ฝึกบนคอมพิวเตอร์

ผู้เรียนตรวจภาพมุมสูงและจัดกลุ่มข้อมูลบนคอมพิวเตอร์ก่อนฝึกโมเดล AI
ภาพประกอบแนวคิดสร้างด้วย AI

ฝึกตรวจข้อมูลรั่วจากเที่ยวบินเดียวกัน ภาพซ้ำ และข้อมูลไม่ครบด้วย CSV และ Python ก่อนเริ่มเทรนโมเดลตรวจจับวัตถุ

เตรียมตัวก่อนเริ่ม

บทนี้ใช้เวลาออกแบบ 90 นาที เป็นส่วนหนึ่งของโมดูลเตรียมข้อมูล 7 ชั่วโมง ยังไม่ได้ฝึกโมเดลหรือทดสอบโดรนจริง เป้าหมายคืออ่าน manifest ซึ่งเป็นตารางบอกที่มาและการแบ่งชุดข้อมูล แล้วอธิบายได้ว่าผลประเมินอาจดูดีเกินจริงจากอะไร

ใช้ Python 3.10 ขึ้นไป และโปรแกรมเปิด CSV ไม่ต้องมี GPU บัญชีเว็บ หรือ package เพิ่ม หากยังไม่พร้อมรัน Python สามารถตรวจตารางด้วยตนเองก่อนแล้วค่อยเทียบผลโปรแกรม

ตรวจต้นทาง เลือกหน่วยแบ่ง แยก train validation test แล้วตรวจ manifest พร้อมรายงานข้อจำกัด

เปิดแผนภาพขนาดเต็ม

ทำไมสุ่มภาพอย่างเดียวไม่พอ

ภาพหลายเฟรมจากเที่ยวบินเดียวกันอาจคล้ายกันมาก หากภาพใกล้กันอยู่ทั้งชุดฝึกและชุดทดสอบ โมเดลอาจได้คะแนนดีเพราะเห็นสภาพคล้ายกันมาแล้ว แต่ยังไม่แสดงว่าจะใช้กับเที่ยวบินหรือพื้นที่ใหม่ได้

train ใช้เรียนรู้, validation ใช้เลือกโมเดลและค่าตัดสินใจ, test พักไว้ประเมินหลังล็อกทางเลือกแล้ว การใช้ test เลือก confidence threshold ซ้ำ ๆ ทำให้ test ไม่เป็นชุดประเมินอิสระตามเจตนาเดิม

ในแบบฝึกนี้ใช้ flight_id เป็นกลุ่มที่ไม่ข้าม split หากคำถามคือใช้กับ พื้นที่ใหม่ ต้องพิจารณา site_id เป็นหน่วยแบ่งด้วย โปรแกรมตัวอย่างยังไม่ตรวจเงื่อนไขข้ามพื้นที่ให้อัตโนมัติ

อ่าน manifest แล้วหาข้อผิดพลาด

แตก ZIP เปิด dataset-split/manifest-review.csv แล้วอ่านคอลัมน์:

  • image_id: รหัสระเบียนภาพ
  • flight_id: เที่ยวบินต้นทาง ใช้จัดกลุ่มในโจทย์นี้
  • site_id: พื้นที่ต้นทาง
  • content_id: รหัสเนื้อหาสมมติ ช่วยฝึกกรณีเนื้อหาเดียวกันแต่ชื่อภาพต่างกัน ไม่ใช่ hash ที่คำนวณจากภาพจริง
  • split: train, validation หรือ test
  • license: ที่มาสิทธิ์ข้อมูลตัวอย่าง โปรแกรมเพียงตรวจว่ามีค่า ไม่รับรองสิทธิ์ทางกฎหมาย

จดเลขบรรทัดและเหตุผลก่อนรันโปรแกรม มองหาห้าประเภท: เที่ยวบินเดียวข้าม split, รหัสภาพซ้ำ, เนื้อหาซ้ำ, ค่าที่ต้องมีหาย และชื่อ split นอกข้อตกลงในโจทย์

รันโปรแกรมตรวจบนคอมพิวเตอร์

เปิด terminal ในโฟลเดอร์ dataset-split หลังแตกไฟล์แล้ว ทดสอบไฟล์ที่ไม่มีปัญหาตามขอบเขตโปรแกรมก่อน

Windows:

py -3 check_split.py manifest-valid.csv
py -3 check_split.py manifest-review.csv

Linux:

python3 check_split.py manifest-valid.csv
python3 check_split.py manifest-review.csv

ผลเป็น JSON ไฟล์แรกคาดว่า valid: true และ errors: [] ไฟล์โจทย์คาดว่า valid: false พร้อมข้อผิดพลาดห้าประเภท GROUP_LEAKAGE, DUPLICATE_IMAGE_ID, DUPLICATE_CONTENT, MISSING_VALUE, INVALID_SPLIT

โปรแกรมจบด้วยรหัส 0 เมื่อไม่พบปัญหาในขอบเขตตรวจ, 1 เมื่อพบปัญหาข้อมูล และ 2 เมื่อเปิดไฟล์หรืออ่านรูปแบบไม่ได้ ข้อความภาษาอังกฤษเป็นชื่อสถานะที่เทียบกับรายการข้างต้น ไม่ใช่คำสั่งให้ติดตั้งโปรแกรมเพิ่ม

สถานะ OS ที่ทดสอบจริงอยู่ใน verification.json ใน ZIP คำสั่งของแต่ละ OS เป็นแนวทางเริ่มต้น ไม่ใช่หลักฐานว่ามีผลทดลองครบทุกเครื่อง

แก้ด้วยหลักฐาน ไม่เดาให้โปรแกรมผ่าน

  1. เที่ยวบินเดียวควรอยู่ชุดเดียวกันตามโจทย์นี้ เลือกการแบ่งก่อนฝึกและบันทึกเหตุผล
  2. ภาพซ้ำต้องย้อนตรวจต้นฉบับก่อนเลือกเก็บ ชื่อไฟล์ต่างกันอาจเป็นเนื้อหาเดิม
  3. ถ้า flight_id หาย ให้ตรวจแหล่งต้นทางหรือกักรายการไว้ พร้อมบันทึกเหตุผล ห้ามใส่ ID สมมติเพื่อให้โปรแกรมขึ้นผ่าน
  4. ตรวจความหมายของ holdout ก่อนเปลี่ยนชื่อให้ตรงข้อตกลง ไม่เปลี่ยนทุกค่าที่ผิดเป็น test อัตโนมัติ
  5. ส่งตารางที่แก้แล้ว รายการที่กักออก และ data-card.md แล้วรันตรวจซ้ำ

manifest-valid.csv เป็นตัวอย่างโครงสร้างที่ผ่าน ไม่ใช่ข้อมูลจริงที่แก้จากไฟล์โจทย์ ทุกระเบียนและรหัสในชุดนี้เป็นข้อมูลสังเคราะห์ ไม่มีภาพบุคคลหรือภาพภารกิจจริง

รู้ได้อย่างไรว่าทำถูก

เปิด answers.md หลังทำโจทย์ เกณฑ์ร่างคือพบข้อผิดพลาด 30 คะแนน เหตุผลการแก้/กัก 30, data card และหลักฐานทำซ้ำ 25, อธิบายข้อจำกัด 15 เป้าหมายอย่างน้อย 75 และต้องไม่ปกปิดข้อมูลรั่ว

โปรแกรมผ่านยังไม่ยืนยันความถูกต้องของ labels สิทธิ์ภาพ ความสมดุลคลาส หรือภาพใกล้เคียงที่มี content_id ต่างกัน และยังไม่ได้แสดงความแม่นยำของโมเดล ผู้สอนควรถามว่า “มีเรื่องอะไรที่ CSV นี้ยังบอกเราไม่ได้?”

ปัญหาพบบ่อย

  • ไม่พบ py หรือ python3: ตรวจว่ามี Python ที่ใช้งานได้; หากต้องติดตั้งใช้ Python.org แล้วเปิด terminal ใหม่
  • ไม่พบไฟล์: แตก ZIP ก่อนและเปิด terminal ในโฟลเดอร์ที่มี check_split.py; อย่ารันจากหน้าต่างดู ZIP
  • Missing columns: คงชื่อ header ตาม README บาง spreadsheet อาจเปลี่ยนตัวคั่น CSV ให้บันทึกเป็น comma-separated และ UTF-8
  • คะแนนตรวจไม่ตรงที่คิด: แยกเลขบรรทัดไฟล์จากลำดับข้อมูล Header เป็นบรรทัด 1; ตรวจคำสะกดและตัวพิมพ์ของ split

อ่านต่อและบรรณานุกรม

สืบค้น 8 กันยายน 2569 การใช้เที่ยวบิน/พื้นที่เป็นหน่วยแบ่งและชุดโจทย์นี้เป็นการประยุกต์ของ PK-Research ต้องเลือกหน่วยแบ่งให้ตรงภารกิจจริงก่อนใช้กับชุดข้อมูลของตน

กลับแผนหลักสูตร AI และโดรน: จากภาพสู่โมเดล →

Used in courses

How to cite this page

Drone Institute, Rangsit University. (2026). Checking datasets before AI training. In UAS Technology Knowledge Hub (B.Tech.). https://rsu-drt.pk-research.work/en/kb/courses/modules/dataset-split/

Original from Drone-Hub: https://drone.pk-research.work/courses/modules/dataset-split/ · © PK-Research