การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker

ในคอมพิวเตอร์วิทัศน์ การแบ่งส่วนความหมายเป็นงานของการจำแนกทุกพิกเซลในภาพด้วยคลาสจากชุดป้ายกำกับที่รู้จัก ซึ่งพิกเซลที่มีป้ายกำกับเดียวกันจะมีลักษณะเฉพาะร่วมกัน มันสร้างมาสก์การแบ่งส่วนของภาพอินพุต ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงรูปแบบการแบ่งส่วนของ cat ฉลาก.

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ในเดือนพฤศจิกายน 2018, อเมซอน SageMaker ประกาศเปิดตัวอัลกอริธึมการแบ่งส่วนความหมายของ SageMaker ด้วยอัลกอริทึมนี้ คุณสามารถฝึกโมเดลของคุณด้วยชุดข้อมูลสาธารณะหรือชุดข้อมูลของคุณเอง ชุดข้อมูลการแบ่งเซ็กเมนต์รูปภาพยอดนิยมประกอบด้วยชุดข้อมูล Common Objects in Context (COCO) และ PASCAL Visual Object Classes (PASCAL VOC) แต่คลาสของป้ายกำกับมีจำกัด และคุณอาจต้องการฝึกโมเดลบนออบเจ็กต์เป้าหมายที่ไม่รวมอยู่ใน ชุดข้อมูลสาธารณะ ในกรณีนี้ คุณสามารถใช้ ความจริงของ Amazon SageMaker เพื่อติดป้ายกำกับชุดข้อมูลของคุณเอง

ในโพสต์นี้ ฉันสาธิตวิธีแก้ไขปัญหาต่อไปนี้:

  • การใช้ Ground Truth เพื่อติดป้ายกำกับชุดข้อมูลการแบ่งส่วนความหมาย
  • การแปลงผลลัพธ์จาก Ground Truth เป็นรูปแบบอินพุตที่จำเป็นสำหรับอัลกอริธึมการแบ่งส่วนความหมายในตัวของ SageMaker
  • การใช้อัลกอริทึมการแบ่งส่วนความหมายเพื่อฝึกแบบจำลองและทำการอนุมาน

การติดฉลากข้อมูลการแบ่งส่วนความหมาย

ในการสร้างโมเดลแมชชีนเลิร์นนิงสำหรับการแบ่งส่วนความหมาย เราจำเป็นต้องติดป้ายกำกับชุดข้อมูลที่ระดับพิกเซล Ground Truth ให้คุณมีตัวเลือกในการใช้คำอธิบายประกอบที่เป็นมนุษย์ผ่าน อังคารเครื่องกลเติร์กผู้ขายที่เป็นบุคคลภายนอก หรือพนักงานส่วนตัวของคุณเอง หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแรงงาน โปรดดูที่ สร้างและจัดการแรงงาน. หากคุณไม่ต้องการจัดการพนักงานติดฉลากด้วยตัวเอง Amazon SageMaker Ground Truth Plus เป็นอีกตัวเลือกที่ยอดเยี่ยมในฐานะบริการติดฉลากข้อมูลแบบเบ็ดเสร็จใหม่ที่ช่วยให้คุณสามารถสร้างชุดข้อมูลการฝึกอบรมคุณภาพสูงได้อย่างรวดเร็วและลดต้นทุนได้มากถึง 40% สำหรับโพสต์นี้ ฉันจะแสดงวิธีติดป้ายกำกับชุดข้อมูลด้วยตนเองด้วยฟีเจอร์การแบ่งส่วนอัตโนมัติของ Ground Truth และการติดป้ายกำกับฝูงชนด้วยทีมงาน Mechanical Turk

การติดฉลากด้วยตนเองด้วย Ground Truth

ในเดือนธันวาคม 2019 Ground Truth ได้เพิ่มคุณสมบัติการแบ่งส่วนอัตโนมัติให้กับอินเทอร์เฟซผู้ใช้การติดฉลากการแบ่งกลุ่มความหมายเพื่อเพิ่มปริมาณงานการติดฉลากและปรับปรุงความแม่นยำ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การแบ่งส่วนออบเจ็กต์อัตโนมัติเมื่อดำเนินการติดป้ายกำกับการแบ่งเซ็กเมนต์เชิงความหมายด้วย Amazon SageMaker Ground Truth. ด้วยคุณสมบัติใหม่นี้ คุณสามารถเร่งกระบวนการติดฉลากในงานแบ่งกลุ่มได้ แทนที่จะวาดรูปหลายเหลี่ยมที่กระชับพอดีหรือใช้เครื่องมือแปรงเพื่อจับภาพวัตถุในภาพ คุณวาดเพียงสี่จุดที่: ที่จุดบนสุด ล่างสุด ซ้ายสุด และขวาสุดของวัตถุ Ground Truth ใช้จุดทั้งสี่นี้เป็นอินพุตและใช้อัลกอริธึม Deep Extreme Cut (DEXTR) เพื่อสร้างหน้ากากที่กระชับพอดีรอบวัตถุ สำหรับบทช่วยสอนที่ใช้ Ground Truth สำหรับการติดป้ายกำกับการแบ่งส่วนความหมายของรูปภาพ โปรดดูที่ การแบ่งส่วนความหมายของรูปภาพ. ต่อไปนี้คือตัวอย่างวิธีที่เครื่องมือแบ่งกลุ่มอัตโนมัติสร้างรูปแบบการแบ่งกลุ่มโดยอัตโนมัติหลังจากที่คุณเลือกจุดสุดขั้วสี่จุดของวัตถุ

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การติดฉลาก Crowdsourcing ด้วยพนักงานเครื่องกล Turk

หากคุณมีชุดข้อมูลขนาดใหญ่และไม่ต้องการติดป้ายกำกับรูปภาพด้วยตนเองเป็นร้อยเป็นพัน คุณสามารถใช้ Mechanical Turk ซึ่งจัดหาบุคลากรตามสั่ง ปรับขนาดได้ และทำงานที่มนุษย์สามารถทำได้ดีกว่าคอมพิวเตอร์ ซอฟต์แวร์เครื่องกล Turk เสนองานอย่างเป็นทางการให้กับพนักงานหลายพันคนที่เต็มใจทำงานทีละน้อยตามความสะดวก ซอฟต์แวร์ยังดึงงานที่ทำและเรียบเรียงให้คุณซึ่งเป็นผู้ขอซึ่งจ่ายเงินให้กับคนงานสำหรับงานที่น่าพอใจ (เท่านั้น) ในการเริ่มต้นใช้งาน Mechanical Turk โปรดดูที่ บทนำเกี่ยวกับ Amazon เครื่องกล Turk.

สร้างงานติดฉลาก

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

  1. บนคอนโซล SageMaker ให้เลือก งานติดฉลาก ในบานหน้าต่างนำทาง
  2. Choose สร้างงานติดฉลาก.
  3. ป้อนชื่อสำหรับงานของคุณ
  4. สำหรับ ตั้งค่าข้อมูลเข้าให้เลือก ตั้งค่าข้อมูลอัตโนมัติ.
    สิ่งนี้สร้างรายการของข้อมูลที่ป้อน
  5. สำหรับ ตำแหน่ง S3 สำหรับชุดข้อมูลอินพุตให้ป้อนพาธสำหรับชุดข้อมูล
    การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  6. สำหรับ หมวดหมู่งานเลือก ภาพ.
  7. สำหรับ การเลือกงานให้เลือก การแบ่งส่วนความหมาย.
    การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  8. สำหรับ ประเภทคนงานให้เลือก อังคารเครื่องกลเติร์ก.
  9. กำหนดการตั้งค่าของคุณสำหรับการหมดเวลางาน เวลาหมดอายุของงาน และราคาต่องาน
    การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  10. เพิ่มป้ายกำกับ (สำหรับโพสต์นี้ sea turtle) และให้คำแนะนำในการติดฉลาก
  11. Choose สร้างบัญชีตัวแทน.
    การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

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

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การแปลงชุดข้อมูล

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

ช่องทางการป้อนข้อมูลที่ร้องขอ

การแบ่งส่วนความหมายของ SageMaker คาดว่าชุดข้อมูลการฝึกอบรมของคุณจะถูกจัดเก็บบน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3). ชุดข้อมูลใน Amazon S3 คาดว่าจะนำเสนอในสองช่องทาง หนึ่งช่องสำหรับ train และหนึ่งสำหรับ validationโดยใช้สี่ไดเร็กทอรี สองไดเร็กทอรีสำหรับรูปภาพ และอีกสองไดเร็กทอรีสำหรับคำอธิบายประกอบ คาดว่าคำอธิบายประกอบจะเป็นภาพ PNG ที่ไม่มีการบีบอัด ชุดข้อมูลอาจมีการแมปป้ายชื่อที่อธิบายวิธีการสร้างการแมปคำอธิบายประกอบ หากไม่เป็นเช่นนั้น อัลกอริทึมจะใช้ค่าเริ่มต้น สำหรับการอนุมาน จุดปลายยอมรับภาพที่มี an image/jpeg ชนิดของเนื้อหา. ต่อไปนี้เป็นโครงสร้างที่จำเป็นของช่องข้อมูล:

s3://bucket_name |- train | - image1.jpg | - image2.jpg |- validation | - image3.jpg | - image4.jpg |- train_annotation | - image1.png | - image2.png |- validation_annotation | - image3.png | - image4.png |- label_map | - train_label_map.json | - validation_label_map.json

ภาพ JPG ทุกภาพในรถไฟและไดเร็กทอรีการตรวจสอบความถูกต้องมีภาพป้ายกำกับ PNG ที่สอดคล้องกันซึ่งมีชื่อเหมือนกันใน train_annotation และ validation_annotation ไดเรกทอรี หลักการตั้งชื่อนี้ช่วยให้อัลกอริทึมเชื่อมโยงป้ายกำกับกับรูปภาพที่เกี่ยวข้องระหว่างการฝึก รถไฟ, train_annotation, การตรวจสอบ และ validation_annotation ช่องทางบังคับ. คำอธิบายประกอบเป็นภาพ PNG แบบช่องสัญญาณเดียว รูปแบบใช้งานได้ตราบใดที่ข้อมูลเมตา (โหมด) ในรูปภาพช่วยให้อัลกอริทึมอ่านรูปภาพคำอธิบายประกอบเป็นจำนวนเต็ม 8 บิตที่ไม่ได้ลงนามในช่องสัญญาณเดียว

ผลงานจากงานติดฉลาก Ground Truth

ผลลัพธ์ที่สร้างจากงานการติดฉลาก Ground Truth มีโครงสร้างโฟลเดอร์ดังต่อไปนี้:

s3://turtle2022/labelturtles/ |- activelearning |- annotation-tool |- annotations | - consolidated-annotation | - consolidation-request | - consolidation-response | - output | -0_2022-02-10T17:40:03.294994.png | -0_2022-02-10T17:41:04.530266.png | - intermediate | - worker-response |- intermediate |- manifests | - output | - output.manifest

มาสก์การแบ่งส่วนจะถูกบันทึกไว้ใน s3://turtle2022/labelturtles/annotations/consolidated-annotation/output. รูปภาพคำอธิบายประกอบแต่ละภาพเป็นไฟล์ .png ที่ตั้งชื่อตามดัชนีของรูปภาพต้นฉบับและเวลาที่การติดป้ายกำกับรูปภาพนี้เสร็จสมบูรณ์ ตัวอย่างเช่น ต่อไปนี้คือรูปภาพต้นฉบับ (Image_1.jpg) และรูปแบบการแบ่งส่วนซึ่งสร้างโดยทีมงาน Mechanical Turk (0_2022-02-10T17:41:04.724225.png) โปรดสังเกตว่าดัชนีของหน้ากากแตกต่างจากตัวเลขในชื่อภาพต้นทาง

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รายการผลลัพธ์จากงานการติดฉลากอยู่ใน /manifests/output/output.manifest ไฟล์. เป็นไฟล์ JSON และแต่ละบรรทัดจะบันทึกการจับคู่ระหว่างรูปภาพต้นฉบับกับป้ายกำกับและข้อมูลเมตาอื่นๆ บรรทัด JSON ต่อไปนี้บันทึกการแมประหว่างรูปภาพต้นฉบับที่แสดงกับคำอธิบายประกอบ:

{"source-ref":"s3://turtle2022/Image_1.jpg","labelturtles-ref":"s3://turtle2022/labelturtles/annotations/consolidated-annotation/output/0_2022-02-10T17:41:04.724225.png","labelturtles-ref-metadata":{"internal-color-map":{"0":{"class-name":"BACKGROUND","hex-color":"#ffffff","confidence":0.25988},"1":{"class-name":"Turtle","hex-color":"#2ca02c","confidence":0.25988}},"type":"groundtruth/semantic-segmentation","human-annotated":"yes","creation-date":"2022-02-10T17:41:04.801793","job-name":"labeling-job/labelturtles"}}

รูปภาพต้นทางเรียกว่า Image_1.jpg และชื่อของคำอธิบายประกอบคือ 0_2022-02-10T17:41: 04.724225.png ในการเตรียมข้อมูลให้เป็นรูปแบบช่องข้อมูลที่จำเป็นของอัลกอริทึมการแบ่งส่วนความหมายของ SageMaker เราจำเป็นต้องเปลี่ยนชื่อคำอธิบายประกอบเพื่อให้มีชื่อเดียวกับภาพ JPG ต้นทาง และเรายังต้องแบ่งชุดข้อมูลออกเป็น train และ validation ไดเร็กทอรีสำหรับรูปภาพต้นฉบับและคำอธิบายประกอบ

แปลงผลลัพธ์จากงานการติดฉลาก Ground Truth เป็นรูปแบบอินพุตที่ร้องขอ

ในการแปลงเอาต์พุต ให้ทำตามขั้นตอนต่อไปนี้:

  1. ดาวน์โหลดไฟล์ทั้งหมดจากงานการติดป้ายกำกับจาก Amazon S3 ไปยังไดเร็กทอรีในเครื่อง:
    !aws s3 cp s3://turtle2022/ Seaturtles --recursive

  2. อ่านไฟล์ Manifest และเปลี่ยนชื่อของคำอธิบายประกอบเป็นชื่อเดียวกับรูปภาพต้นฉบับ:
    import os
    import re label_job='labelturtles'
    manifest_path=dir_name+'/'+label_job+'/'+'manifests/output/output.manifest' file = open(manifest_path, "r") txt=file.readlines()
    output_path=dir_name+'/'+label_job+'/'+'annotations/consolidated-annotation/output'
    S3_name='turtle2022/'
    im_list=[]
    for i in range(len(txt)): string = txt[i] try: im_name = re.search(S3_name+'(.+)'+'.jpg', string).group(1) print(im_name) im_png=im_name+'.png' im_list.append(im_name) annotation_name = re.search('output/(.+?)"', string).group(1) os.rename(annotation_name, im_png) except AttributeError: pass

  3. แยกชุดข้อมูลรถไฟและการตรวจสอบความถูกต้อง:
    import numpy as np
    from random import sample # Prints list of random items of given length
    train_num=len(im_list)*0.8
    test_num=len(im_list)*0.2
    train_name=sample(im_list,int(train_num))
    test_name = list(set(im_list) - set(train_name))

  4. สร้างไดเร็กทอรีในรูปแบบที่จำเป็นสำหรับช่องทางข้อมูลอัลกอริธึมการแบ่งส่วนความหมาย:
    os.chdir('./semantic_segmentation_pascalvoc_2022-01-11')
    os.mkdir('train')
    os.mkdir('validation')
    os.mkdir('train_annotation')
    os.mkdir('validation_annotation')

  5. ย้ายรถไฟและรูปภาพการตรวจสอบความถูกต้องและคำอธิบายประกอบไปยังไดเร็กทอรีที่สร้างขึ้น
    1. สำหรับรูปภาพ ใช้รหัสต่อไปนี้:
      for i in range(len(train_name)): train_im=train_name[i]+'.jpg' train_im_path=dir_name+'/'+train_im train_new_path='train/'+train_im shutil.move(train_im_path,train_new_path) train_annotation=train_name[i]+'.png' train_annotation_path=dir_name+'/labelturtles/annotations/consolidated-annotation/output/'+train_annotation train_annotation_new_path='train_annotation/'+train_annotation shutil.move(train_annotation_path,train_annotation_new_path)

    2. สำหรับคำอธิบายประกอบ ให้ใช้รหัสต่อไปนี้:
      for i in range(len(test_name)): val_im=test_name[i]+'.jpg' val_im_path=dir_name+'/'+val_im val_new_path='validation/'+val_im shutil.move(val_im_path,val_new_path) val_annotation=test_name[i]+'.png' val_annotation_path=dir_name+'/labelturtles/annotations/consolidated-annotation/output/'+val_annotation val_annotation_new_path='validation_annotationT/'+val_annotation shutil.move(val_annotation_path,val_annotation_new_path)

  6. อัปโหลดชุดข้อมูลการฝึกและการตรวจสอบความถูกต้อง รวมถึงชุดข้อมูลคำอธิบายประกอบไปยัง Amazon S3:
    !aws s3 cp train s3://turtle2022/train/ --recursive
    !aws s3 cp train_annotation s3://turtle2022/train_annotation/ --recursive
    !aws s3 cp validation s3://turtle2022/validation/ --recursive
    !aws s3 cp validation_annotation s3://turtle2022/validation_annotation/ --recursive

การฝึกอบรมแบบจำลองการแบ่งส่วนความหมายของ SageMaker

ในส่วนนี้ เราจะอธิบายขั้นตอนต่างๆ ในการฝึกโมเดลการแบ่งส่วนความหมายของคุณ

ติดตามสมุดบันทึกตัวอย่างและตั้งค่าช่องข้อมูล

คุณสามารถปฏิบัติตามคำแนะนำใน อัลกอริธึม Semantic Segmentation พร้อมใช้งานแล้วใน Amazon SageMaker เพื่อใช้อัลกอริทึมการแบ่งเซ็กเมนต์เชิงความหมายกับชุดข้อมูลที่คุณติดป้ายกำกับ ตัวอย่างนี้ สมุดบันทึก แสดงตัวอย่างแบบ end-to-end ที่แนะนำอัลกอริทึม ในสมุดบันทึก คุณจะได้เรียนรู้วิธีฝึกอบรมและโฮสต์โมเดลการแบ่งส่วนความหมายโดยใช้เครือข่ายแบบหมุนวนทั้งหมด (FCN) อัลกอริทึมโดยใช้ ชุดข้อมูล Pascal VOC สำหรับการฝึกอบรม เนื่องจากฉันไม่ได้วางแผนที่จะฝึกโมเดลจากชุดข้อมูล Pascal VOC ฉันจึงข้ามขั้นตอนที่ 3 (การเตรียมข้อมูล) ในสมุดบันทึกนี้ แต่ฉันสร้างโดยตรงแทน train_channel, train_annotation_channe, validation_channelและ validation_annotation_channel โดยใช้ตำแหน่ง S3 ที่ฉันเก็บภาพและคำอธิบายประกอบไว้:

Train_channel=’s3://turtle2022/train’
train_annotation_channel=’s3://turtle2022/train_annotation’
validation_channel=’s3://turtle2022/validation’
validation_annotation_channel=’s3://turtle2022/validation_annotation’

ปรับไฮเปอร์พารามิเตอร์สำหรับชุดข้อมูลของคุณเองในตัวประมาณของ SageMaker

ฉันติดตามสมุดบันทึกและสร้างวัตถุตัวประมาณ SageMaker (ss_estimator) เพื่อฝึกอัลกอริทึมการแบ่งส่วนของฉัน สิ่งหนึ่งที่เราต้องปรับแต่งสำหรับชุดข้อมูลใหม่คือใน ss_estimator.set_hyperparameters: เราต้องเปลี่ยน num_classes=21 ไปยัง num_classes=2 (turtle และ background) และฉันก็เปลี่ยนไป epochs=10 ไปยัง epochs=30 เพราะ 10 มีไว้เพื่อการสาธิตเท่านั้น จากนั้นฉันก็ใช้อินสแตนซ์ p3.2xlarge สำหรับการฝึกโมเดลโดยการตั้งค่า instance_type="ml.p3.2xlarge". การฝึกอบรมเสร็จสิ้นใน 8 นาที ที่สุด มิโอยู (Mean Intersection over Union) ที่ 0.846 ทำได้ที่ epoch 11 ด้วย a pix_acc (เปอร์เซ็นต์ของพิกเซลในภาพของคุณที่จัดประเภทอย่างถูกต้อง) ที่ 0.925 ซึ่งถือว่าค่อนข้างดีสำหรับชุดข้อมูลขนาดเล็กนี้

ผลการอนุมานแบบจำลอง

ฉันโฮสต์โมเดลในอินสแตนซ์ ml.c5.xlarge ราคาประหยัด:

training_job_name = 'ss-notebook-demo-2022-02-12-03-37-27-151'
ss_estimator = sagemaker.estimator.Estimator.attach(training_job_name)
ss_predictor = ss_estimator.deploy(initial_instance_count=1, instance_type="ml.c5.xlarge")

สุดท้าย ฉันได้เตรียมชุดทดสอบของภาพเต่า 10 ภาพเพื่อดูผลอนุมานของโมเดลการแบ่งส่วนที่ผ่านการฝึกอบรม:

import os path = "testturtle/"
img_path_list=[]
files = os.listdir(path) for file in files: if file.endswith(('.jpg', '.png', 'jpeg')): img_path = path + file img_path_list.append(img_path) colnum=5
fig, axs = plt.subplots(2, colnum, figsize=(20, 10)) for i in range(len(img_path_list)): print(img_path_list[i]) img = mpimg.imread(img_path_list[i]) with open(img_path_list[i], "rb") as imfile: imbytes = imfile.read() cls_mask = ss_predictor.predict(imbytes) axs[int(i/colnum),i%colnum].imshow(img, cmap='gray') axs[int(i/colnum),i%colnum].imshow(np.ma.masked_equal(cls_mask,0), cmap='jet', alpha=0.8) plt.show()

ภาพต่อไปนี้แสดงผล

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

หน้ากากแบ่งกลุ่มของเต่าทะเลดูแม่นยำ และฉันพอใจกับผลลัพธ์ที่ได้รับการฝึกอบรมจากชุดข้อมูล 300 ภาพที่ติดป้ายกำกับโดยพนักงานเครื่องกลของเติร์ก คุณยังสามารถสำรวจเครือข่ายอื่น ๆ ที่มีอยู่เช่น เครือข่ายการแยกวิเคราะห์ฉากพีระมิด (PSP) or DeepLab-V3 ในสมุดบันทึกตัวอย่างพร้อมชุดข้อมูลของคุณ

ทำความสะอาด

ลบปลายทางเมื่อคุณทำเสร็จแล้วเพื่อหลีกเลี่ยงค่าใช้จ่ายที่ต่อเนื่อง:

ss_predictor.delete_endpoint()

สรุป

ในโพสต์นี้ ฉันแสดงวิธีปรับแต่งการติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ SageMaker ขั้นแรก คุณสามารถตั้งค่างานการติดฉลากด้วยเครื่องมือแบ่งกลุ่มอัตโนมัติ หรือใช้พนักงานเครื่องกลของเติร์ก (รวมถึงตัวเลือกอื่นๆ) หากคุณมีออบเจ็กต์มากกว่า 5,000 รายการ คุณสามารถใช้การติดป้ายกำกับข้อมูลอัตโนมัติได้ จากนั้นคุณแปลงผลลัพธ์จากงานการติดฉลาก Ground Truth เป็นรูปแบบอินพุตที่จำเป็นสำหรับการฝึกอบรมการแบ่งส่วนความหมายในตัวของ SageMaker หลังจากนั้น คุณสามารถใช้อินสแตนซ์การประมวลผลแบบเร่งความเร็ว (เช่น p2 หรือ p3) เพื่อฝึกโมเดลการแบ่งส่วนเชิงความหมายด้วยสิ่งต่อไปนี้ สมุดบันทึก และปรับใช้โมเดลกับอินสแตนซ์ที่คุ้มค่ากว่า (เช่น ml.c5.xlarge) สุดท้าย คุณสามารถตรวจทานผลการอนุมานในชุดข้อมูลทดสอบของคุณด้วยโค้ดสองสามบรรทัด

เริ่มต้นใช้งาน SageMaker semantic segmentation การติดฉลากข้อมูล และ การฝึกโมเดล ด้วยชุดข้อมูลที่คุณชื่นชอบ!


เกี่ยวกับผู้เขียน

การติดฉลากข้อมูลการแบ่งเซ็กเมนต์เชิงความหมายและการฝึกโมเดลโดยใช้ Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.คารายาง เป็นนักวิทยาศาสตร์ข้อมูลใน AWS Professional Services เธอหลงใหลในการช่วยให้ลูกค้าบรรลุเป้าหมายทางธุรกิจด้วยบริการคลาวด์ของ AWS เธอได้ช่วยองค์กรต่างๆ ในการสร้างโซลูชัน ML ในหลายอุตสาหกรรม เช่น การผลิต ยานยนต์ ความยั่งยืนด้านสิ่งแวดล้อม และการบินและอวกาศ

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS