Catch up on everthing we announced at this year's Firebase Summit. Learn more

ฝึกโมเดลการตรวจจับวัตถุด้วย 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 ภูมิภาคและเป็นส่วนหนึ่งของโครงการ Firebase ของคุณสอดคล้องโครงการ Google Cloud

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

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

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

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

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

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

  3. เกี่ยวกับชุดของคุณนำเข้าแท็บอัปโหลดภาพการฝึกอบรมของคุณเก็บไปรษณีย์ของภาพการฝึกอบรมของคุณหรือไฟล์ CSV ที่มีสถานที่จัดเก็บเมฆคุณอัปโหลดไป ดู ประกอบข้อมูลการฝึกอบรมของคุณ

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

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

  6. บนรถไฟแท็บคลิกเริ่มต้นการฝึกอบรม

    1. ชื่อรุ่นและเลือกประเภทรุ่นขอบ

    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 วิสัยทัศน์เริ่มต้นคู่มือ และ คู่มือ Inclusive ML - AutoML สำหรับข้อมูลเพิ่มเติม

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

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

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

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

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

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

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

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

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

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

เพื่อเผยแพร่รูปแบบที่มี SDK ผู้ดูแลระบบ การจัดการรูปแบบ 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 ปพลิเคชัน