ฝึกโมเดลการติดป้ายกำกับรูปภาพด้วย AutoML Vision Edge

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

AutoML Vision Edge เป็นบริการของ Google Cloud การใช้งานบริการอยู่ภายใต้ข้อตกลงการอนุญาตให้ใช้สิทธิของ Google Cloud Platform และข้อกำหนดเฉพาะของบริการ รวมถึงจะมีการเรียกเก็บเงินตามนั้น ดูข้อมูลการเรียกเก็บเงินได้ที่หน้าราคาของ AutoML

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

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

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

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

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

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

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

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

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

    นอกจากนี้ โดยทั่วไปแล้ว โมเดลไม่สามารถคาดการณ์ป้ายกำกับที่มนุษย์ไม่สามารถกำหนดได้ ดังนั้น หากมนุษย์ไม่สามารถกำหนดป้ายกำกับด้วยการดูรูปภาพเป็นเวลา 1-2 วินาที โมเดลก็อาจไม่ได้รับการฝึกให้ดำเนินการด้วยเช่นกัน

เมื่อคุณมีรูปภาพการฝึกพร้อมแล้ว ให้เตรียมรูปภาพดังกล่าวเพื่อนำเข้าไปยัง Firebase คุณมี 3 ตัวเลือกดังนี้

ตัวเลือกที่ 1: ไฟล์ ZIP ที่มีโครงสร้าง

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

ชื่อไดเรกทอรีในไฟล์ ZIP นี้มีความยาวได้สูงสุด 32 อักขระ ASCII และต้องมีอักขระที่เป็นตัวอักษรและตัวเลขคละกันและขีดล่าง (_) เท่านั้น

เช่น

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

ตัวเลือกที่ 2: Cloud Storage ที่มีดัชนี CSV

อัปโหลดรูปภาพสำหรับการฝึกไปยัง Google Cloud Storage และเตรียมไฟล์ CSV ที่แสดง URL ของรูปภาพแต่ละรูป และป้ายกำกับที่ถูกต้องของรูปภาพแต่ละรูป (ไม่บังคับ) ตัวเลือกนี้มีประโยชน์เมื่อใช้ชุดข้อมูลขนาดใหญ่มาก

เช่น อัปโหลดรูปภาพไปยัง Cloud Storage และเตรียมไฟล์ CSV ตามขั้นตอนต่อไปนี้

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

รูปภาพต้องจัดเก็บในที่เก็บข้อมูลซึ่งเป็นส่วนหนึ่งของโปรเจ็กต์ Google Cloud ที่เกี่ยวข้องของโปรเจ็กต์ Firebase

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเตรียมไฟล์ CSV ได้ที่การเตรียมข้อมูลการฝึกในเอกสารประกอบของ Cloud AutoML Vision

ตัวเลือกที่ 3: รูปภาพที่ไม่มีป้ายกำกับ

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

2. ฝึกโมเดล

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

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

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

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

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

  5. คลิกเริ่มการฝึกในแท็บฝึกอบรม

    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