โมเดลการตรวจจับออบเจ็กต์คล้ายกับโมเดลการติดป้ายกำกับรูปภาพ แต่จะติดป้ายกำกับให้กับภูมิภาคของรูปภาพแทนที่จะติดป้ายกำกับให้กับรูปภาพทั้งรูป คุณสามารถ ใช้โมเดลการตรวจหาออบเจ็กต์เพื่อจดจำและระบุตำแหน่งออบเจ็กต์ในรูปภาพ หรือเพื่อ ติดตามการเคลื่อนไหวของออบเจ็กต์ในชุดรูปภาพ
หากต้องการฝึกโมเดลการตรวจจับออบเจ็กต์ คุณต้องระบุชุดรูปภาพที่มีป้ายกำกับออบเจ็กต์และขอบเขตออบเจ็กต์ที่สอดคล้องกันให้กับ AutoML Vision Edge AutoML Vision Edge ใช้ชุดข้อมูลนี้เพื่อฝึกโมเดลใหม่ในระบบคลาวด์ ซึ่งคุณสามารถใช้สำหรับการตรวจหาออบเจ็กต์ในอุปกรณ์ได้
ฟีเจอร์การฝึกโมเดลของก่อนเริ่มต้น
หากยังไม่มีโปรเจ็กต์ Firebase ให้สร้างโปรเจ็กต์ในคอนโซล Firebase
ทำความคุ้นเคยกับหลักเกณฑ์ที่ระบุไว้ในคู่มือ ML ที่ครอบคลุม - AutoML
หากเพียงต้องการลองใช้ AutoML Vision Edge และไม่มีข้อมูลการฝึก ของคุณเอง ให้ดาวน์โหลดชุดข้อมูลตัวอย่าง เช่น ชุดข้อมูลต่อไปนี้
- ชุดข้อมูลที่แนะนำของ TensorFlow
- ชุดข้อมูลที่โฮสต์ใน Kaggle
1. รวบรวมข้อมูลการฝึก
ก่อนอื่นคุณต้องรวบรวมชุดข้อมูลการฝึกที่มีรูปภาพที่ติดป้ายกำกับ โปรดคำนึงถึง หลักเกณฑ์ต่อไปนี้
รูปภาพต้องอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้: JPEG, PNG, GIF, BMP, ICO
รูปภาพแต่ละภาพต้องมีขนาดไม่เกิน 30 MB โปรดทราบว่า AutoML Vision Edge จะลดขนาดรูปภาพส่วนใหญ่ในระหว่างการประมวลผลล่วงหน้า ดังนั้นโดยทั่วไปแล้วการให้รูปภาพที่มีความละเอียดสูงมากจึงไม่ได้ช่วยเพิ่มความแม่นยำ
ใส่ตัวอย่างของป้ายกำกับแต่ละรายการอย่างน้อย 10 รายการ และควรใส่ 100 รายการขึ้นไป
ใส่ภาพหลายมุม ความละเอียด และพื้นหลังสำหรับแต่ละป้าย
ข้อมูลการฝึกควรใกล้เคียงกับข้อมูลที่จะใช้ในการคาดการณ์มากที่สุด ตัวอย่างเช่น หากกรณีการใช้งานของคุณเกี่ยวข้องกับรูปภาพที่เบลอและมีความละเอียดต่ำ (เช่น จากกล้องรักษาความปลอดภัย) ข้อมูลการฝึกของคุณควรประกอบด้วยรูปภาพที่เบลอและมีความละเอียดต่ำ
โมเดลที่สร้างโดย AutoML Vision Edge ได้รับการเพิ่มประสิทธิภาพสำหรับภาพถ่ายของ ออบเจ็กต์ในโลกจริง แต่ไม่เหมาะกับภาพรังสี ภาพวาดด้วยมือ เอกสารที่สแกน ใบเสร็จ และอื่นๆ
นอกจากนี้ โดยทั่วไปแล้ว โมเดลจะคาดการณ์ป้ายกำกับที่มนุษย์กำหนดไม่ได้ ดังนั้น หากมนุษย์ไม่สามารถกำหนดป้ายกำกับได้โดยดูที่รูปภาพเป็นเวลา 1-2 วินาที โมเดลก็อาจฝึกให้ทำเช่นนั้นไม่ได้เช่นกัน
เมื่อเตรียมรูปภาพการฝึกพร้อมแล้ว ให้เตรียมรูปภาพเหล่านั้นเพื่อนำเข้าไปยัง Google Cloud คุณมีสองตัวเลือกดังนี้
ตัวเลือกที่ 1: Cloud Storage พร้อมดัชนี CSV
อัปโหลดรูปภาพการฝึกไปยัง Google Cloud Storage และเตรียมไฟล์ CSV ที่แสดง URL ของรูปภาพแต่ละรูป รวมถึงป้ายกำกับออบเจ็กต์ที่ถูกต้องและภูมิภาคขอบเขตสำหรับแต่ละรูปภาพ (ไม่บังคับ) ตัวเลือกนี้มีประโยชน์เมื่อใช้ชุดข้อมูลขนาดใหญ่
เช่น อัปโหลดรูปภาพไปยัง Cloud Storage และเตรียมไฟล์ CSV ดังตัวอย่างต่อไปนี้
gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,, gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,, gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,
กรอบล้อมรอบออบเจ็กต์จะระบุเป็นพิกัดสัมพัทธ์ในรูปภาพ ดูการจัดรูปแบบ CSV ของข้อมูลการฝึก
รูปภาพต้องจัดเก็บไว้ในที่เก็บข้อมูลที่อยู่ในus-central1
ภูมิภาคและเป็นส่วนหนึ่งของโปรเจ็กต์ Google Cloud ที่สอดคล้องกันของโปรเจ็กต์ Firebase
ตัวเลือกที่ 2: รูปภาพที่ไม่มีป้ายกำกับ
ติดป้ายกำกับรูปภาพการฝึก และวาดขอบเขตของออบเจ็กต์ใน Google Cloud คอนโซลหลังจากอัปโหลด เราขอแนะนำให้ใช้วิธีนี้กับชุดข้อมูลขนาดเล็กเท่านั้น ดูขั้นตอนถัดไป
2. ฝึกโมเดล
จากนั้นฝึกโมเดลโดยใช้รูปภาพของคุณ
เปิดหน้าชุดข้อมูล Vision ในคอนโซล Google Cloud เลือกโปรเจ็กต์เมื่อได้รับข้อความแจ้ง
คลิกชุดข้อมูลใหม่ ตั้งชื่อชุดข้อมูล เลือกประเภทโมเดลที่ต้องการฝึก แล้วคลิกสร้างชุดข้อมูล
ในแท็บนำเข้าของชุดข้อมูล ให้อัปโหลดรูปภาพการฝึก ไฟล์เก็บถาวร ZIP ของรูปภาพการฝึก หรือไฟล์ CSV ที่มีCloud Storage ตำแหน่งที่คุณอัปโหลดรูปภาพ ดูหัวข้อ รวบรวมข้อมูลการฝึก
หลังจากงานนำเข้าเสร็จสมบูรณ์แล้ว ให้ใช้แท็บรูปภาพเพื่อยืนยัน ข้อมูลการฝึก
หากไม่ได้อัปโหลด CSV ให้วาดกรอบล้อมรอบ ออบเจ็กต์ที่ต้องการจดจำและติดป้ายกำกับแต่ละออบเจ็กต์สำหรับแต่ละรูปภาพ
ในแท็บฝึก ให้คลิกเริ่มฝึก
ตั้งชื่อโมเดลและเลือกประเภทโมเดลEdge
กำหนดการตั้งค่าการฝึกต่อไปนี้ ซึ่งจะควบคุมประสิทธิภาพ ของโมเดลที่สร้างขึ้น
เพิ่มประสิทธิภาพโมเดลสำหรับ... การกำหนดค่าโมเดลที่จะใช้ คุณสามารถฝึกโมเดลให้เร็วขึ้น เล็กลง เมื่อความหน่วงต่ำหรือขนาดแพ็กเกจเล็กเป็นสิ่งสำคัญ หรือ ฝึกโมเดลให้ช้าลง ใหญ่ขึ้น เมื่อความแม่นยำเป็นสิ่งสำคัญที่สุด งบประมาณชั่วโมงทำงานของโหนด เวลาสูงสุดในหน่วยชั่วโมงการคำนวณที่ใช้ฝึกโมเดล โดยทั่วไปแล้ว เวลาในการฝึกที่มากขึ้นจะส่งผลให้โมเดลมีความแม่นยำมากขึ้น
โปรดทราบว่าการฝึกอาจเสร็จสมบูรณ์ได้ในเวลาที่น้อยกว่าที่ระบุ หากระบบพิจารณาว่าโมเดลได้รับการเพิ่มประสิทธิภาพแล้ว และ การฝึกเพิ่มเติมจะไม่ช่วยปรับปรุงความแม่นยำ ระบบจะเรียกเก็บเงินจากคุณ เฉพาะชั่วโมงที่ใช้จริงเท่านั้น
เวลาการฝึกตามปกติ ชุดข้อมูลขนาดเล็กมาก 1 ชั่วโมง 500 รูปภาพ 2 ชั่วโมง 1,000 รูปภาพ 3 ชั่วโมง รูปภาพ 5,000 รูป 6 ชั่วโมง 10,000 รูปภาพ 7 ชั่วโมง 50,000 รูปภาพ 11 ชั่วโมง รูปภาพ 100,000 รูป 13 ชั่วโมง รูปภาพ 1,000,000 รูป 18 ชั่วโมง
3. ประเมินโมเดล
เมื่อการฝึกเสร็จสมบูรณ์แล้ว คุณสามารถคลิกแท็บประเมินเพื่อดูเมตริกประสิทธิภาพของโมเดลได้
การใช้งานหน้าที่สำคัญอย่างหนึ่งคือการกำหนดเกณฑ์ความเชื่อมั่นที่เหมาะกับโมเดลของคุณมากที่สุด เกณฑ์ความเชื่อมั่นคือความน่าเชื่อถือขั้นต่ำที่โมเดลต้องมีจึงจะกำหนดป้ายกำกับให้อิมเมจได้ หากเลื่อนแถบเลื่อนเกณฑ์ความเชื่อมั่น คุณจะดูได้ว่าเกณฑ์ต่างๆ มีผลต่อประสิทธิภาพของโมเดลอย่างไร ประสิทธิภาพของโมเดลวัดโดยใช้เมตริก 2 รายการ ได้แก่ ความแม่นยำและความอ่อนไหว
ในบริบทของการจัดประเภทรูปภาพ ความแม่นยำคืออัตราส่วนของจำนวน รูปภาพที่ติดป้ายกำกับอย่างถูกต้องต่อจำนวนรูปภาพที่โมเดลติดป้ายกำกับ ตามเกณฑ์ที่เลือก เมื่อโมเดลมีความแม่นยำสูง โมเดลจะกำหนดป้ายกำกับอย่างไม่ถูกต้องน้อยลง (ผลบวกลวงน้อยลง)
การเรียกคืนคืออัตราส่วนของจำนวนรูปภาพที่ติดป้ายกำกับอย่างถูกต้องต่อจำนวนรูปภาพที่มีเนื้อหาที่โมเดลควรติดป้ายกำกับได้ เมื่อโมเดลมีความอ่อนไหวสูง โมเดลจะกำหนดป้ายกำกับได้น้อยลง (ผลลบลวงน้อยลง)
การเพิ่มประสิทธิภาพเพื่อความแม่นยำหรือการเรียกคืนจะขึ้นอยู่กับกรณีการใช้งานของคุณ ดูข้อมูลเพิ่มเติมได้ที่คู่มือสำหรับผู้เริ่มต้นใช้งาน AutoML Vision และคู่มือ ML ที่ครอบคลุม - AutoML
เมื่อพบเกณฑ์ความเชื่อมั่นที่ให้เมตริกที่คุณพอใจ ให้จดบันทึกไว้ คุณจะใช้เกณฑ์ความเชื่อมั่นเพื่อกำหนดค่าโมเดลในแอป (คุณใช้เครื่องมือนี้ได้ทุกเมื่อเพื่อรับค่าเกณฑ์ที่เหมาะสม)
4. เผยแพร่หรือดาวน์โหลดโมเดล
หากพอใจกับประสิทธิภาพของโมเดลและต้องการใช้ในแอป คุณมี 3 ตัวเลือกให้เลือกใช้ร่วมกันได้ ได้แก่ การติดตั้งใช้งาน โมเดลสำหรับการคาดการณ์ออนไลน์ การเผยแพร่โมเดลไปยัง Firebase หรือการดาวน์โหลด โมเดลและรวมไว้กับแอป
ทำให้โมเดลใช้งานได้
ในแท็บทดสอบและใช้ของชุดข้อมูล คุณสามารถทำให้โมเดลใช้งานได้สำหรับการคาดการณ์ออนไลน์ ซึ่งจะเรียกใช้โมเดลในระบบคลาวด์ ตัวเลือกนี้อธิบายไว้ในเอกสารประกอบของ Cloud AutoML เอกสารในเว็บไซต์นี้จะกล่าวถึงตัวเลือกที่เหลืออีก 2 รายการ
เผยแพร่โมเดล
การเผยแพร่โมเดลไปยัง Firebase ช่วยให้คุณอัปเดตโมเดลได้โดยไม่ต้องเผยแพร่แอปเวอร์ชันใหม่ และใช้ Remote Config และ A/B Testing เพื่อ แสดงโมเดลที่แตกต่างกันแบบไดนามิกต่อผู้ใช้กลุ่มต่างๆ ได้
หากเลือกที่จะระบุโมเดลโดยโฮสต์ด้วย Firebase เท่านั้น และไม่รวมไว้กับแอป คุณจะลดขนาดการดาวน์โหลดเริ่มต้นของแอปได้ โปรดทราบว่าหากไม่ได้รวมโมเดลไว้กับแอป ฟังก์ชันการทำงานที่เกี่ยวข้องกับโมเดลจะใช้ไม่ได้จนกว่าแอปจะดาวน์โหลดโมเดลเป็นครั้งแรก
หากต้องการเผยแพร่โมเดล คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้
- ดาวน์โหลดโมเดล TF Lite จากหน้าทดสอบและใช้ของชุดข้อมูลใน Google Cloud คอนโซล แล้วอัปโหลดโมเดลในหน้าโมเดลที่กำหนดเองของคอนโซล Firebase โดยปกติแล้ว วิธีนี้เป็นวิธีที่ง่ายที่สุดในการเผยแพร่โมเดลเดียว
- เผยแพร่โมเดลจากโปรเจ็กต์ Google Cloud โดยตรงไปยัง Firebase โดยใช้ Admin SDK คุณสามารถใช้วิธีนี้เพื่อเผยแพร่โมเดลหลายรายการพร้อมกัน หรือเพื่อ ช่วยสร้างไปป์ไลน์การเผยแพร่แบบอัตโนมัติ
วิธีเผยแพร่โมเดลด้วย API การจัดการโมเดลของ Admin SDK
เผยแพร่โมเดล
คุณจะต้องระบุตัวระบุทรัพยากรของโมเดล ซึ่งเป็นสตริง ที่มีลักษณะคล้ายตัวอย่างต่อไปนี้
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
หมายเลขโปรเจ็กต์ของCloud Storageที่เก็บข้อมูลที่มี โมเดล ซึ่งอาจเป็นโปรเจ็กต์ Firebase หรือGoogle Cloud โปรเจ็กต์อื่น คุณดูค่านี้ได้ในหน้าการตั้งค่าของ Firebase คอนโซลหรือแดชบอร์ดคอนโซล Google Cloud MODEL_ID
รหัสของโมเดลที่คุณได้รับจาก AutoML Cloud API Python
# First, import and initialize the SDK. # Get a reference to the AutoML model source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format( # See above for information on these values. project_number, model_id )) # Create the model object tflite_format = ml.TFLiteFormat(model_source=source) model = ml.Model( display_name="example_model", # This is the name you will use from your app to load the model. tags=["examples"], # Optional tags for easier management. model_format=tflite_format) # Add the model to your Firebase project and publish it new_model = ml.create_model(model) new_model.wait_for_unlocked() ml.publish_model(new_model.model_id)
Node.js
// First, import and initialize the SDK. (async () => { // Get a reference to the AutoML model. See above for information on these // values. const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`; // Create the model object and add the model to your Firebase project. const model = await ml.createModel({ displayName: 'example_model', // This is the name you use from your app to load the model. tags: ['examples'], // Optional tags for easier management. tfliteModel: { automlModel: automlModel }, }); // Wait for the model to be ready. await model.waitForUnlocked(); // Publish the model. await ml.publishModel(model.modelId); process.exit(); })().catch(console.error);
ดาวน์โหลดและรวมโมเดลกับแอป
การรวมโมเดลไว้กับแอปจะช่วยให้มั่นใจได้ว่าฟีเจอร์ ML ของแอปจะยังคงทำงานได้เมื่อโมเดลที่โฮสต์ใน Firebase ไม่พร้อมใช้งาน
หากคุณทั้งเผยแพร่โมเดลและรวมไว้กับแอป แอปจะใช้โมเดลเวอร์ชันล่าสุดที่มี
หากต้องการดาวน์โหลดโมเดล ให้คลิก TF Lite ในหน้าทดสอบและใช้ของชุดข้อมูล
ขั้นตอนถัดไป
เมื่อเผยแพร่หรือดาวน์โหลดโมเดลแล้ว ให้ดูวิธีใช้โมเดล ในแอป iOS+ และ Android