ดำเนินการตรวจจับวัตถุในรูปภาพ
API ต้องการโมเดล TFLite ที่มีข้อมูลเมตาของโมเดล TFLite
API รองรับโมเดลที่มี Tensor อินพุตอิมเมจ 1 รายการและ Tensor เอาต์พุต 4 รายการ หากต้องการเจาะจงยิ่งขึ้น โปรดดูข้อกำหนดด้านล่าง
- Tensor อิมเมจ (
kTfLiteUInt8
/kTfLiteFloat32
)- อินพุตรูปภาพของขนาด
[batch x height x width x channels]
- ไม่รองรับการอนุมานกลุ่ม (ต้องมี
batch
เป็น 1) - รองรับเฉพาะอินพุต RGB เท่านั้น (ต้องมี
channels
เป็น 3) - หากประเภทเป็น
kTfLiteFloat32
ต้องมี การทำให้เป็นมาตรฐาน ต้องแนบ กับข้อมูลเมตาเพื่อทำให้อินพุตเป็นมาตรฐาน
- อินพุตรูปภาพของขนาด
- Tensor เอาต์พุตต้องเป็นเอาต์พุต 4 รายการของ
DetectionPostProcess
อินพุต เช่น- Tensor สถานที่ตั้ง (
kTfLiteFloat32
):- Tensor ของขนาด
[1 x num_results x 4]
ซึ่งเป็นอาร์เรย์ภายในแสดงกรอบล้อมรอบในรูปแบบ [บน, ซ้าย, ขวา, ล่าง] - ต้องแนบ
BoundingBoxProperties
กับข้อมูลเมตา รวมถึงต้องระบุtype=BOUNDARIES
และcoordinate_type=RATIO
- Tensor ของขนาด
- Tensor คลาส (
kTfLiteFloat32
):- tensor ของขนาด
[1 x num_results]
โดยแต่ละค่าจะแสดงดัชนีจำนวนเต็มของคลาส - หากมีการแนบการแมปป้ายกำกับกับข้อมูลเมตาเป็นไฟล์ที่เกี่ยวข้อง
TENSOR_VALUE_LABELS
ระบบจะใช้การแมปป้ายกำกับเหล่านั้นเพื่อแปลงค่า tensor เป็นป้ายกำกับ
- tensor ของขนาด
- Tensor คะแนน (
kTfLiteFloat32
):- tensor ของขนาด
[1 x num_results]
โดยแต่ละค่าจะแสดงคะแนนของออบเจ็กต์ที่ตรวจพบ
- tensor ของขนาด
- จำนวน Tensor การตรวจจับ (
kTfLiteFloat32
):- จำนวนเต็ม num_results เป็น tensor ขนาด
[1]
- จำนวนเต็ม num_results เป็น tensor ขนาด
- Tensor สถานที่ตั้ง (
ดูตัวอย่างโมเดลดังกล่าวได้ใน TensorFlow Hub
ชั้นเรียนที่ซ้อนกัน
คลาส | ObjectDetector.ObjectDetectorOptions | ตัวเลือกในการตั้งค่าObjectDetector |
วิธีการสาธารณะ
ภาพนิ่ง ObjectDetector |
createFromBuffer(บริบทบริบท, ByteBuffer modelBuffer)
สร้างอินสแตนซ์
ObjectDetector จากบัฟเฟอร์โมเดลและ ObjectDetector.ObjectDetectorOptions เริ่มต้น |
ภาพนิ่ง ObjectDetector |
createFromFile(บริบทบริบท, String modelPath)
สร้างอินสแตนซ์
ObjectDetector จากไฟล์โมเดลและ ObjectDetector.ObjectDetectorOptions เริ่มต้น |
ภาพนิ่ง ObjectDetector |
createFromFile(บริบทบริบท, ไฟล์ modelFile)
สร้างอินสแตนซ์
ObjectDetector จากไฟล์โมเดลและ ObjectDetector.ObjectDetectorOptions เริ่มต้น |
ภาพนิ่ง ObjectDetector |
createFromOptions(บริบทบริบท, ObjectDetector.ObjectDetectorOptions DetectorOptions)
สร้างอินสแตนซ์
ObjectDetector จาก ObjectDetector.ObjectDetectorOptions |
ObjectDetectorResult | |
ObjectDetectorResult |
detect(รูปภาพ MPImage, ImageProcessingOptions imageProcessingOptions)
ตรวจหาออบเจ็กต์ในรูปภาพเดียวที่ให้ไว้
|
void |
detectAsync(รูปภาพ MPImage, ImageProcessingOptions imageProcessingOptions, การประทับเวลายาว)
ส่งข้อมูลรูปภาพสดเพื่อตรวจจับออบเจ็กต์ และผลลัพธ์จะแสดงผ่าน
OutputHandler.ResultListener ที่ระบุไว้ใน ObjectDetector.ObjectDetectorOptions |
void |
detectAsync(รูปภาพ MPImage, การประทับเวลายาว Ms)
ส่งข้อมูลภาพสดเพื่อตรวจจับวัตถุด้วยตัวเลือกการประมวลผลรูปภาพเริ่มต้น เช่น
|
ObjectDetectorResult |
detectForVideo(รูปภาพ MPImage, ImageProcessingOptions imageProcessingOptions, การประทับเวลายาว)
ทำการตรวจจับวัตถุในเฟรมวิดีโอที่ระบุ
|
ObjectDetectorResult |
detectForVideo(รูปภาพ MPImage, timestampMs นาน)
ตรวจหาออบเจ็กต์ในเฟรมวิดีโอที่ระบุด้วยตัวเลือกการประมวลผลรูปภาพเริ่มต้น เช่น
|
วิธีการที่รับช่วงมา
วิธีการสาธารณะ
สาธารณะ คงที่ ObjectDetector createFromBuffer (บริบทบริบท, ByteBuffer ModelBuffer)
สร้างอินสแตนซ์ ObjectDetector
จากบัฟเฟอร์โมเดลและ ObjectDetector.ObjectDetectorOptions
เริ่มต้น
พารามิเตอร์
บริบท | Android ERROR(/Context) |
---|---|
modelBuffer | ByteBuffer โดยตรงหรือ ERROR(/MappedByteBuffer) ของโมเดลการตรวจจับ |
การขว้าง
หากเกิดข้อผิดพลาดระหว่างการสร้าง ObjectDetector
|
สาธารณะ คงที่ ObjectDetector createFromFile (บริบทบริบท, String modelPath)
สร้างอินสแตนซ์ ObjectDetector
จากไฟล์โมเดลและ ObjectDetector.ObjectDetectorOptions
เริ่มต้น
พารามิเตอร์
บริบท | Android ERROR(/Context) |
---|---|
modelPath | ไปยังโมเดลการตรวจจับที่มีข้อมูลเมตาในเนื้อหา |
การขว้าง
หากเกิดข้อผิดพลาดระหว่างการสร้าง ObjectDetector
|
สาธารณะ คงที่ ObjectDetector createFromFile (บริบทบริบท, ไฟล์ modelFile)
สร้างอินสแตนซ์ ObjectDetector
จากไฟล์โมเดลและ ObjectDetector.ObjectDetectorOptions
เริ่มต้น
พารามิเตอร์
บริบท | Android ERROR(/Context) |
---|---|
modelFile | อินสแตนซ์โมเดลการตรวจจับ File |
การขว้าง
IOException | หากเกิดข้อผิดพลาด I/O เมื่อเปิดไฟล์โมเดล tflite |
---|---|
หากเกิดข้อผิดพลาดระหว่างการสร้าง ObjectDetector
|
สาธารณะ คงที่ ObjectDetector createFromOptions (บริบทบริบท, ObjectDetector.ObjectDetectorOptions DetectorOptions)
สร้างอินสแตนซ์ ObjectDetector
จาก ObjectDetector.ObjectDetectorOptions
พารามิเตอร์
บริบท | Android ERROR(/Context) |
---|---|
detectorOptions | อินสแตนซ์ ObjectDetector.ObjectDetectorOptions |
การขว้าง
หากเกิดข้อผิดพลาดระหว่างการสร้าง ObjectDetector
|
สาธารณะ ObjectDetectorResult detect (รูปภาพ MPImage)
ทำการตรวจหาออบเจ็กต์ในรูปภาพเดียวที่ให้มาด้วยตัวเลือกการประมวลผลรูปภาพเริ่มต้น กล่าวคือ โดยไม่ใช้การหมุนใดๆ เลย ใช้วิธีนี้เมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.IMAGE)
เท่านั้น
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|
การขว้าง
ในกรณีที่เกิดข้อผิดพลาดภายใน |
สาธารณะ ObjectDetectorResult detect (รูปภาพ MPImage, ImageProcessingOptions imageProcessingOptions)
ตรวจหาออบเจ็กต์ในรูปภาพเดียวที่ให้ไว้ ใช้วิธีนี้เฉพาะเมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.IMAGE)
เท่านั้น
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|---|
imageProcessingOptions | ImageProcessingOptions จะระบุวิธีประมวลผลรูปภาพอินพุตก่อนเรียกใช้การอนุมาน โปรดทราบว่างานนี้ไม่รองรับภูมิภาคที่สนใจ: การระบุ ImageProcessingOptions.regionOfInterest() จะส่งผลให้เมธอดนี้ส่ง IllegalArgumentException |
การขว้าง
IllegalArgumentException | หาก ImageProcessingOptions ระบุภูมิภาคที่สนใจ |
---|---|
ในกรณีที่เกิดข้อผิดพลาดภายใน |
สาธารณะ void detectAsync (รูปภาพ MPImage, ImageProcessingOptions ตัวเลือกรูปภาพการประมวลผลข้อมูล, การประทับเวลายาว Ms)
ส่งข้อมูลรูปภาพสดเพื่อตรวจจับออบเจ็กต์ และผลลัพธ์จะแสดงผ่าน OutputHandler.ResultListener
ที่ระบุไว้ใน ObjectDetector.ObjectDetectorOptions
ใช้วิธีนี้เฉพาะเมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.LIVE_STREAM)
เท่านั้น
ต้องระบุการประทับเวลา (เป็นมิลลิวินาที) เพื่อระบุว่ามีการส่งรูปภาพอินพุตไปยังตัวตรวจจับวัตถุเมื่อใด การประทับเวลาอินพุตต้องเพิ่มขึ้นแบบโมนาเท่านั้น
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|---|
imageProcessingOptions | ImageProcessingOptions จะระบุวิธีประมวลผลรูปภาพอินพุตก่อนเรียกใช้การอนุมาน โปรดทราบว่างานนี้ไม่รองรับภูมิภาคที่สนใจ: การระบุ ImageProcessingOptions.regionOfInterest() จะส่งผลให้เมธอดนี้ส่ง IllegalArgumentException |
timestampMs | การประทับเวลาอินพุต (เป็นมิลลิวินาที) |
การขว้าง
IllegalArgumentException | หาก ImageProcessingOptions ระบุภูมิภาคที่สนใจ |
---|---|
ในกรณีที่เกิดข้อผิดพลาดภายใน |
สาธารณะ void detectAsync (รูปภาพ MPImage, การประทับเวลายาว Ms)
ส่งข้อมูลรูปภาพสดเพื่อตรวจจับออบเจ็กต์ด้วยตัวเลือกการประมวลผลรูปภาพเริ่มต้น กล่าวคือ โดยไม่ใช้การหมุน และผลการค้นหาจะพร้อมใช้งานผ่าน OutputHandler.ResultListener
ที่ให้ไว้ใน ObjectDetector.ObjectDetectorOptions
ใช้วิธีนี้เฉพาะเมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.LIVE_STREAM)
เท่านั้น
ต้องระบุการประทับเวลา (เป็นมิลลิวินาที) เพื่อระบุว่ามีการส่งรูปภาพอินพุตไปยังตัวตรวจจับวัตถุเมื่อใด การประทับเวลาอินพุตต้องเพิ่มขึ้นแบบโมนาเท่านั้น
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|---|
timestampMs | การประทับเวลาอินพุต (เป็นมิลลิวินาที) |
การขว้าง
ในกรณีที่เกิดข้อผิดพลาดภายใน |
สาธารณะ ObjectDetectorResult detectForVideo (รูปภาพ MPImage ImageProcessingOptions imageProcessingOptions, long timestampMs)
ทำการตรวจจับวัตถุในเฟรมวิดีโอที่ระบุ ใช้วิธีนี้เฉพาะเมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.VIDEO)
เท่านั้น
และระบุการประทับเวลาของเฟรมวิดีโอ (เป็นมิลลิวินาที) การประทับเวลาอินพุตต้องเพิ่มขึ้นทีละน้อย
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|---|
imageProcessingOptions | ImageProcessingOptions จะระบุวิธีประมวลผลรูปภาพอินพุตก่อนเรียกใช้การอนุมาน โปรดทราบว่างานนี้ไม่รองรับภูมิภาคที่สนใจ: การระบุ ImageProcessingOptions.regionOfInterest() จะส่งผลให้เมธอดนี้ส่ง IllegalArgumentException |
timestampMs | การประทับเวลาอินพุต (เป็นมิลลิวินาที) |
การขว้าง
IllegalArgumentException | หาก ImageProcessingOptions ระบุภูมิภาคที่สนใจ |
---|---|
ในกรณีที่เกิดข้อผิดพลาดภายใน |
สาธารณะ ObjectDetectorResult detectForVideo (MPImage รูปภาพ, การประทับเวลายาว Ms)
ทำการตรวจจับออบเจ็กต์ในเฟรมวิดีโอที่ระบุด้วยตัวเลือกการประมวลผลรูปภาพเริ่มต้น กล่าวคือ โดยไม่ใช้การหมุนใดๆ เลย ใช้วิธีนี้เมื่อมีการสร้าง ObjectDetector
ด้วย ERROR(/RunningMode.VIDEO)
เท่านั้น
และระบุการประทับเวลาของเฟรมวิดีโอ (เป็นมิลลิวินาที) การประทับเวลาอินพุตต้องเพิ่มขึ้นทีละน้อย
ObjectDetector
รองรับพื้นที่สีประเภทต่อไปนี้
พารามิเตอร์
รูปภาพ | ออบเจ็กต์ MediaPipe MPImage สำหรับการประมวลผล |
---|---|
timestampMs | การประทับเวลาอินพุต (เป็นมิลลิวินาที) |
การขว้าง
ในกรณีที่เกิดข้อผิดพลาดภายใน |