Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

ก่อนจะเริ่ม

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

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

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

    • หนึ่งในชุดข้อมูลที่ แนะนำ ของ TensorFlow
    • ชุดข้อมูลที่โฮสต์บน Kaggle

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 Console หลังจากที่คุณอัปโหลด แนะนำสำหรับชุดข้อมูลขนาดเล็กเท่านั้น ดูขั้นตอนต่อไป

2. ฝึกโมเดลของคุณ

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

  1. เปิดหน้า ชุดข้อมูล Vision ใน Google Cloud Console เลือกโครงการของคุณเมื่อได้รับพร้อมท์

  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 แบบรวม - AutoML สำหรับข้อมูลเพิ่มเติม

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

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

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

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

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

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

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

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

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

  • ดาวน์โหลดโมเดล TF Lite จากหน้า ทดสอบและใช้งาน ชุดข้อมูลของคุณใน Google Cloud Console แล้วอัปโหลดโมเดลบนหน้า โมเดลที่กำหนดเอง ของคอนโซล 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 Console
    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