ฝึกโมเดลการติดป้ายกำกับรูปภาพด้วย 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 นี้มีอักขระ ASCII ยาวไม่เกิน 32 ตัว และมีได้เฉพาะอักขระที่เป็นตัวอักษรและตัวเลขคละกัน และอักขระขีดล่าง (_) เท่านั้น

ตัวอย่างเช่น

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

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

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

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

2. ฝึกโมเดล

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

  1. เปิดหน้า Vision Datasets ในคอนโซล 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 ทำให้คุณสามารถอัปเดตโมเดลโดยไม่ต้องเผยแพร่แอปเวอร์ชันใหม่ รวมทั้งสามารถใช้การกำหนดค่าระยะไกลและการทดสอบ A/B เพื่อแสดงโมเดลที่แตกต่างกันแก่ผู้ใช้กลุ่มต่างๆ แบบไดนามิก

หากคุณเลือกที่จะระบุโมเดลโดยการโฮสต์โมเดลด้วย 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