ฝึกฝนโมเดลการตรวจจับวัตถุด้วย AutoML Vision Edge

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

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

ก่อนที่คุณจะเริ่ม

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

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

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

1. รวบรวมข้อมูลการฝึกอบรมของคุณ

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

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

  • แต่ละภาพต้องมีขนาด 30MB หรือเล็กกว่า โปรดทราบว่า 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. ฝึกโมเดลของคุณ

จากนั้น ฝึกโมเดลโดยใช้รูปภาพของคุณ:

  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. ประเมินแบบจำลองของคุณ

เมื่อการฝึกเสร็จสิ้น คุณสามารถคลิกแท็บ ประเมิน เพื่อดูการวัดประสิทธิภาพสำหรับโมเดลได้

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

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

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

ไม่ว่าคุณจะปรับให้เหมาะสมเพื่อความแม่นยำหรือการเรียกคืนจะขึ้นอยู่กับกรณีการใช้งานของคุณ ดู คู่มือสำหรับผู้เริ่มต้นใช้งาน AutoML Vision และ คู่มือ ML แบบ Inclusive - AutoML สำหรับข้อมูลเพิ่มเติม

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

4. เผยแพร่หรือดาวน์โหลดโมเดลของคุณ

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

ปรับใช้โมเดล

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

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

ด้วยการเผยแพร่โมเดลไปยัง Firebase คุณสามารถอัปเดตโมเดลได้โดยไม่ต้องเปิดตัวแอปเวอร์ชันใหม่ และคุณสามารถใช้การกำหนดค่าระยะไกลและการทดสอบ A/B เพื่อให้บริการโมเดลต่างๆ แบบไดนามิกแก่ผู้ใช้กลุ่มต่างๆ

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

หากต้องการเผยแพร่โมเดลของคุณ คุณสามารถใช้วิธีใดวิธีหนึ่งจากสองวิธี:

  • ดาวน์โหลดโมเดล TF Lite จากหน้า ทดสอบและใช้งาน ชุดข้อมูลของคุณในคอนโซล Google Cloud จากนั้นอัปโหลดโมเดลบนหน้า โมเดลที่กำหนดเอง ของคอนโซล Firebase โดยปกติแล้วนี่เป็นวิธีที่ง่ายที่สุดในการเผยแพร่โมเดลเดียว
  • เผยแพร่โมเดลโดยตรงจากโปรเจ็กต์ Google Cloud ของคุณไปยัง Firebase โดยใช้ Admin SDK คุณสามารถใช้วิธีนี้เพื่อเผยแพร่หลายโมเดลเป็นชุด หรือเพื่อช่วยสร้างไปป์ไลน์การเผยแพร่อัตโนมัติ

หากต้องการเผยแพร่โมเดลด้วย Admin SDK Model Management API :

  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

    หลาม

    # 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)
    

    โหนด 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 ของคุณ