ฝึกโมเดลการตรวจจับออบเจ็กต์ด้วย AutoML Vision Edge

โมเดลการตรวจจับวัตถุคล้ายกับโมเดลการติดป้ายกำกับรูปภาพ แต่จะกำหนดป้ายกำกับให้กับส่วนต่างๆ ของรูปภาพแทนที่จะกำหนดให้กับทั้งรูปภาพ คุณสามารถใช้โมเดลการตรวจจับวัตถุเพื่อจดจำและหาตำแหน่งของวัตถุในรูปภาพ หรือเพื่อติดตามการเคลื่อนไหวของวัตถุในชุดรูปภาพ

หากต้องการฝึกโมเดลการตรวจจับออบเจ็กต์ ให้ระบุชุดรูปภาพ AutoML Vision Edge ที่มีป้ายกำกับออบเจ็กต์และขอบเขตของออบเจ็กต์ที่สอดคล้องกัน AutoML VisionEdge ใช้ชุดข้อมูลนี้เพื่อฝึกโมเดลใหม่ในระบบคลาวด์ซึ่งคุณใช้สำหรับการตรวจจับออบเจ็กต์ในอุปกรณ์ได้

ฟีเจอร์การฝึกโมเดลของ

ก่อนเริ่มต้น

  • หากยังไม่มีโปรเจ็กต์ Firebase ให้สร้างโปรเจ็กต์ในคอนโซล Firebase

  • ทำความคุ้นเคยกับหลักเกณฑ์ที่แสดงในคู่มือ ML แบบครอบคลุม - AutoML

  • หากต้องการลองใช้ AutoML Vision Edge เท่านั้นและไม่มีข้อมูลการฝึกของคุณเอง ให้ดาวน์โหลดชุดข้อมูลตัวอย่าง เช่น ชุดข้อมูลต่อไปนี้

1. รวบรวมข้อมูลการฝึก

ก่อนอื่นคุณต้องรวบรวมชุดข้อมูลการฝึกของรูปภาพที่ติดป้ายกำกับ โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้

  • รูปภาพต้องอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ JPEG, PNG, GIF, BMP, ICO

  • รูปภาพแต่ละภาพต้องมีขนาดไม่เกิน 30 MB โปรดทราบว่า AutoML Vision Edge จะลดขนาดรูปภาพส่วนใหญ่ในระหว่างการประมวลผลก่อน ดังนั้นโดยทั่วไปแล้วการให้รูปภาพที่มีความละเอียดสูงมากจึงไม่มีประโยชน์ในแง่ความแม่นยำ

  • ใส่ตัวอย่างของป้ายกำกับแต่ละรายการอย่างน้อย 10 รายการ และควรมีอย่างน้อย 100 รายการขึ้นไป

  • ใส่ภาพจากหลายมุม ความละเอียด และพื้นหลังสำหรับป้ายกำกับแต่ละรายการ

  • ข้อมูลการฝึกควรใกล้เคียงกับข้อมูลที่จะใช้ทำนายมากที่สุด เช่น หาก Use Case ของคุณเกี่ยวข้องกับรูปภาพที่เบลอและมีความละเอียดต่ำ (เช่น จากกล้องรักษาความปลอดภัย) ข้อมูลการฝึกอบรมควรประกอบด้วยรูปภาพที่เบลอและมีความละเอียดต่ำ

  • โมเดลที่ 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. ฝึกโมเดล

ต่อไป ให้ฝึกโมเดลโดยใช้รูปภาพของคุณ โดยทำดังนี้

  1. เปิดหน้าชุดข้อมูล Vision ในคอนโซล Google Cloud เลือกโปรเจ็กต์เมื่อได้รับข้อความแจ้ง

  2. คลิกชุดข้อมูลใหม่ ตั้งชื่อชุดข้อมูล เลือกประเภทโมเดลที่ต้องการฝึก แล้วคลิกสร้างชุดข้อมูล

  3. ในแท็บนำเข้าของชุดข้อมูล ให้อัปโหลดรูปภาพการฝึก ไฟล์ ZIP ของรูปภาพการฝึก หรือไฟล์ CSV ที่มีตำแหน่ง Cloud Storage ที่คุณอัปโหลด โปรดดูหัวข้อรวบรวมข้อมูลการฝึก

  4. หลังจากการนําเข้าเสร็จสิ้นแล้ว ให้ใช้แท็บรูปภาพเพื่อยืนยันข้อมูลการฝึก

  5. หากคุณไม่ได้อัปโหลด CSV ให้วาดกรอบล้อมรอบวัตถุที่ต้องการจดจำและติดป้ายกำกับแต่ละวัตถุสำหรับแต่ละรูปภาพ

  6. ในแท็บฝึก ให้คลิกเริ่มฝึก

    1. ตั้งชื่อโมเดลและเลือกประเภทโมเดล Edge

    2. กำหนดการตั้งค่าการฝึกต่อไปนี้ ซึ่งควบคุมประสิทธิภาพของโมเดลที่สร้างขึ้น

      เพิ่มประสิทธิภาพโมเดลสําหรับ... การกำหนดค่าโมเดลที่จะใช้ คุณสามารถฝึกโมเดลที่เร็วขึ้นและเล็กลงได้เมื่อต้องการเวลาในการตอบสนองต่ำหรือแพ็กเกจขนาดเล็ก หรือฝึกโมเดลที่ช้าลงและใหญ่ขึ้นเมื่อความแม่นยำสำคัญที่สุด
      งบประมาณชั่วโมงทำงานของโหนด

      เวลาสูงสุด (เป็นชั่วโมงการประมวลผล) ที่ใช้ฝึกโมเดล โดยทั่วไปแล้ว การฝึกอบรมนานขึ้นจะทำให้โมเดลแม่นยำยิ่งขึ้น

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

      เวลาการฝึกตามปกติ
      ชุดขนาดเล็กมาก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 คุณสามารถใช้วิธีนี้เพื่อเผยแพร่โมเดลหลายรายการเป็นกลุ่ม หรือช่วยสร้างไปป์ไลน์การเผยแพร่อัตโนมัติ

วิธีเผยแพร่โมเดลด้วย Model Management API ของ Admin SDK

  1. ติดตั้งและเริ่มต้น SDK

  2. เผยแพร่โมเดล

    คุณจะต้องระบุตัวระบุทรัพยากรของโมเดล ซึ่งเป็นสตริงที่มีลักษณะเหมือนตัวอย่างต่อไปนี้

    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