ดำเนินการตรวจจับวัตถุในรูปภาพ
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 | การประทับเวลาอินพุต (เป็นมิลลิวินาที) |
การขว้าง
| ในกรณีที่เกิดข้อผิดพลาดภายใน |