รวมตัวแยกประเภทรูปภาพ

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

ใช้งานห้องสมุด ImageClassifier API ในการปรับใช้ลักษณนามภาพของคุณเองหรือคนที่เข้ามาใน pretrained ปพลิเคชันมือถือของคุณ

คุณสมบัติหลักของ ImageClassifier API

  • ป้อนข้อมูลการประมวลผลภาพ รวมทั้งการหมุน การปรับขนาด และการแปลงพื้นที่สี

  • พื้นที่ที่น่าสนใจของภาพที่ป้อน

  • ป้ายชื่อแผนที่สถานที่

  • เกณฑ์คะแนนเพื่อกรองผลลัพธ์

  • ผลการจัดหมวดหมู่ยอดนิยม

  • ติดป้ายกำกับรายการที่อนุญาตและรายการที่ไม่อนุญาต

โมเดลตัวแยกประเภทรูปภาพที่รองรับ

รุ่นต่อไปนี้จะรับประกันได้ว่าจะเข้ากันได้กับ ImageClassifier API

เรียกใช้การอนุมานใน Java

ดู ภาพตรวจสอบการอ้างอิงการจัดหมวดหมู่ สำหรับตัวอย่างของวิธีการใช้ ImageClassifier ใน Android app

ขั้นตอนที่ 1: นำเข้าการพึ่งพา Gradle และการตั้งค่าอื่นๆ

คัดลอก .tflite ไฟล์รูปแบบไปยังไดเรกทอรีสินทรัพย์ของโมดูล Android รุ่นที่จะวิ่ง ระบุว่าไฟล์ไม่ควรถูกบีบอัดและเพิ่มห้องสมุด TensorFlow Lite โมดูลของ build.gradle ไฟล์:

android {
    // Other settings

    // Specify tflite file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.2.0'
}

ขั้นตอนที่ 2: การใช้โมเดล

// Initialization
ImageClassifierOptions options = ImageClassifierOptions.builder().setMaxResults(1).build();
ImageClassifier imageClassifier = ImageClassifier.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<Classifications> results = imageClassifier.classify(image);

ดู รหัสแหล่งที่มาและ Javadoc สำหรับตัวเลือกเพิ่มเติมในการกำหนดค่า ImageClassifier

เรียกใช้การอนุมานใน C++

// Initialization
ImageClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_file);
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();

// Run inference
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();

ดู รหัสที่มา สำหรับตัวเลือกเพิ่มเติมในการกำหนดค่า ImageClassifier

ตัวอย่างผลลัพธ์

นี่คือตัวอย่างของผลการจัดหมวดหมู่ของหนึ่ง ลักษณนามนก

กระจอก

Results:
  Rank #0:
   index       : 671
   score       : 0.91406
   class name  : /m/01bwb9
   display name: Passer domesticus
  Rank #1:
   index       : 670
   score       : 0.00391
   class name  : /m/01bwbt
   display name: Passer montanus
  Rank #2:
   index       : 495
   score       : 0.00391
   class name  : /m/0bwm6m
   display name: Passer italiae

ลองใช้ง่าย เครื่องมือ CLI สาธิต ImageClassifier กับตัวเองและรูปแบบการทดสอบข้อมูลของคุณ

ข้อกำหนดความเข้ากันได้ของรุ่น

ImageClassifier API คาดว่ารูปแบบการ TFLite กับบังคับ TFLite รุ่นเมตาดาต้า ดูตัวอย่างของการสร้างเมตาสำหรับลักษณนามภาพโดยใช้ นักเขียน API TensorFlow Lite เมตาดาต้า

โมเดลตัวแยกประเภทรูปภาพที่เข้ากันได้ควรเป็นไปตามข้อกำหนดต่อไปนี้:

  • อินพุตภาพเทนเซอร์ (kTfLiteUInt8/kTfLiteFloat32)

    • ภาพข้อมูลขนาด [batch x height x width x channels]
    • อนุมานชุดไม่ได้รับการสนับสนุน ( batch จะต้อง 1)
    • เพียงปัจจัยการผลิต RGB ได้รับการสนับสนุน ( channels จะต้อง 3)
    • ถ้าประเภทเป็น kTfLiteFloat32 จำเป็นต้องแนบ NormalizationOptions กับข้อมูลเมตาเพื่อทำให้อินพุตเป็นมาตรฐาน
  • เทนเซอร์คะแนนเอาท์พุต (kTfLiteUInt8/kTfLiteFloat32)

    • กับ N การเรียนและทั้ง 2 หรือ 4 มิติคือ [1 x N] หรือ [1 x 1 x 1 x N]

    • แมปป้ายกำกับทางเลือก (แต่แนะนำ) เป็น AssociatedFile-s ที่มีประเภท TENSOR_AXIS_LABELS ซึ่งมีหนึ่งป้ายกำกับต่อบรรทัด ดู ไฟล์ตัวอย่างฉลาก ครั้งแรก AssociatedFile ดังกล่าว (ถ้ามี) จะใช้ในการเติม label ฟิลด์ (ชื่อเป็น class_name ใน C ++) ของผล display_name ฟิลด์เต็มไปจาก AssociatedFile (ถ้ามี) ซึ่งเป็นสถานที่เกิดเหตุตรงกับ display_names_locale เขตของ ImageClassifierOptions ใช้ในเวลาสร้าง ( "th" โดยค่าเริ่มต้นคือภาษาอังกฤษ) ถ้าไม่มีของเหล่านี้มีอยู่เพียง index ข้อมูลของผลที่จะได้รับการเติมเต็ม