Thực hiện phát hiện vật thể trên hình ảnh.
API yêu cầu phiên bản TFLite có Siêu dữ liệu mô hình TFLite.
API này hỗ trợ các mô hình có một tensor đầu vào hình ảnh và bốn tensor đầu ra. Cụ thể hơn, sau đây là các yêu cầu.
- Tensor hình ảnh đầu vào (
kTfLiteUInt8
/kTfLiteFloat32
)- Ảnh đầu vào có kích thước
[batch x height x width x channels]
. - dự đoán theo lô không được hỗ trợ (
batch
bắt buộc phải là 1). - chỉ hỗ trợ đầu vào RGB (
channels
bắt buộc phải là 3). - nếu loại là
kTfLiteFloat32
, bạn cần phải đính kèm normalizationOptions vào siêu dữ liệu để chuẩn hoá dữ liệu đầu vào.
- Ảnh đầu vào có kích thước
- Tensor đầu ra phải là 4 đầu ra của một op
DetectionPostProcess
, tức là:- Tensor vị trí (
kTfLiteFloat32
):- tensor có kích thước
[1 x num_results x 4]
, mảng bên trong đại diện cho các hộp giới hạn ở dạng [trên cùng, bên trái, bên phải, dưới cùng]. - Bạn phải đính kèm
BoundingBoxProperties
vào siêu dữ liệu, đồng thời phải chỉ địnhtype=BOUNDARIES
vàcoordinate_type=RATIO
.
- tensor có kích thước
- tensor lớp (
kTfLiteFloat32
):- tensor có kích thước
[1 x num_results]
, mỗi giá trị đại diện cho chỉ mục số nguyên của một lớp. - nếu bản đồ nhãn được đính kèm vào siêu dữ liệu dưới dạng tệp liên kết với
TENSOR_VALUE_LABELS
, thì chúng sẽ được dùng để chuyển đổi các giá trị tensor thành nhãn.
- tensor có kích thước
- tensor điểm số (
kTfLiteFloat32
):- tensor của kích thước
[1 x num_results]
, mỗi giá trị đại diện cho điểm số của đối tượng đã phát hiện.
- tensor của kích thước
- Số tensor phát hiện (
kTfLiteFloat32
):- số nguyên num_results dưới dạng một tensor có kích thước
[1]
.
- số nguyên num_results dưới dạng một tensor có kích thước
- Tensor vị trí (
Bạn có thể tìm thấy ví dụ về mô hình như vậy trên TensorFlow Hub.
Lớp lồng ghép
lớp | ObjectDetector.ObjectDetectorOptions | Các tuỳ chọn để thiết lập ObjectDetector . |
Phương thức công khai
ObjectDetector tĩnh |
createFromBuffer(Ngữ cảnh theo bối cảnh, ByteBuffer modelBuffer)
Tạo một thực thể
ObjectDetector từ vùng đệm mô hình và ObjectDetector.ObjectDetectorOptions mặc định. |
ObjectDetector tĩnh |
createFromFile(Ngữ cảnh, String modelPath)
Tạo một thực thể
ObjectDetector từ tệp mô hình và ObjectDetector.ObjectDetectorOptions mặc định. |
ObjectDetector tĩnh |
createFromFile(Ngữ cảnh ngữ cảnh, Tệp modelFile)
Tạo một thực thể
ObjectDetector từ tệp mô hình và ObjectDetector.ObjectDetectorOptions mặc định. |
ObjectDetector tĩnh |
createFromOptions(Ngữ cảnh theo ngữ cảnh, ObjectDetector.ObjectDetectorOptions detectOptions)
Tạo một thực thể
ObjectDetector từ ObjectDetector.ObjectDetectorOptions . |
ObjectDetectorResult | |
ObjectDetectorResult |
detect(hình ảnh MPImage, ImageProcessingOptions imageprocessingOptions)
Phát hiện đối tượng trên một hình ảnh được cung cấp.
|
void |
detectAsync(hình ảnh MPImage, ImageProcessingOptions imageprocessingOptions, long timestampMs)
Gửi dữ liệu hình ảnh trực tiếp để phát hiện đối tượng và kết quả sẽ có qua
OutputHandler.ResultListener được cung cấp trong ObjectDetector.ObjectDetectorOptions . |
void |
detectAsync(hình ảnh MPImage, dấu thời gian dàiMs)
Gửi dữ liệu hình ảnh trực tiếp để phát hiện đối tượng với các tuỳ chọn xử lý hình ảnh mặc định, tức là
|
ObjectDetectorResult |
detectForVideo(hình ảnh MPImage, ImageProcessingOptions imageprocessingOptions, long timestampMs)
Phát hiện đối tượng trên khung hình video được cung cấp.
|
ObjectDetectorResult |
detectForVideo(hình ảnh MPImage, dấu thời gian dàiMs)
Phát hiện đối tượng trên khung video được cung cấp với các tuỳ chọn xử lý hình ảnh mặc định, tức là
|
Các phương thức kế thừa
Phương thức công khai
công khai tĩnh ObjectDetector createFromBuffer (Ngữ cảnh ngữ cảnh, ByteBuffer modelBuffer)
Tạo một thực thể ObjectDetector
từ vùng đệm mô hình và ObjectDetector.ObjectDetectorOptions
mặc định.
Tham số
bối cảnh | một ERROR(/Context) trên Android. |
---|---|
modelBuffer | ByteBuffer trực tiếp hoặc ERROR(/MappedByteBuffer) của mô hình phát hiện. |
Gửi
nếu có lỗi trong quá trình tạo ObjectDetector .
|
công khai tĩnh ObjectDetector createFromFile (Ngữ cảnh theo ngữ cảnh, String modelPath)
Tạo một thực thể ObjectDetector
từ tệp mô hình và ObjectDetector.ObjectDetectorOptions
mặc định.
Tham số
bối cảnh | một ERROR(/Context) trên Android. |
---|---|
modelPath | đến mô hình phát hiện có siêu dữ liệu trong tài sản. |
Gửi
nếu có lỗi trong quá trình tạo ObjectDetector .
|
công khai tĩnh ObjectDetector createFromFile (Ngữ cảnh ngữ cảnh, File mô hìnhFile)
Tạo một thực thể ObjectDetector
từ tệp mô hình và ObjectDetector.ObjectDetectorOptions
mặc định.
Tham số
bối cảnh | một ERROR(/Context) trên Android. |
---|---|
modelFile | thực thể File của mô hình phát hiện. |
Gửi
IOException | nếu xảy ra lỗi I/O khi mở tệp mô hình tflite. |
---|---|
nếu có lỗi trong quá trình tạo ObjectDetector .
|
công khai tĩnh ObjectDetector createFromOptions (Ngữ cảnh, ObjectDetector.ObjectDetectorOptionsdetectOptions)
Tạo một thực thể ObjectDetector
từ ObjectDetector.ObjectDetectorOptions
.
Tham số
bối cảnh | một ERROR(/Context) trên Android. |
---|---|
detectorOptions | một thực thể ObjectDetector.ObjectDetectorOptions . |
Gửi
nếu có lỗi trong quá trình tạo ObjectDetector .
|
công khai ObjectDetectorResult detect (MPImage)
Phát hiện đối tượng trên một hình ảnh được cung cấp với các tuỳ chọn xử lý hình ảnh mặc định, tức là không áp dụng bất kỳ chế độ xoay nào. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.IMAGE)
.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|
Gửi
nếu có lỗi nội bộ. |
công khai ObjectDetectorResult detect (MPImage hình ảnh, ImageProcessingOptions imageprocessingOptions)
Phát hiện đối tượng trên một hình ảnh được cung cấp. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.IMAGE)
.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|---|
imageProcessingOptions | ImageProcessingOptions xác định cách xử lý hình ảnh đầu vào trước khi chạy suy luận. Lưu ý rằng tác vụ này không hỗ trợ khu vực quan tâm: việc chỉ định ImageProcessingOptions.regionOfInterest() sẽ dẫn đến việc phương thức này gửi một IllegalArgumentException. |
Gửi
IllegalArgumentException | nếu ImageProcessingOptions chỉ định một khu vực quan tâm. |
---|---|
nếu có lỗi nội bộ. |
công khai vô hiệu detectAsync (MPImage hình ảnh, ImageProcessingOptions imageprocessingOptions, long timestampMs)
Gửi dữ liệu hình ảnh trực tiếp để phát hiện đối tượng và kết quả sẽ có qua
OutputHandler.ResultListener
được cung cấp trong ObjectDetector.ObjectDetectorOptions
. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.LIVE_STREAM)
.
Bạn phải cung cấp dấu thời gian (tính bằng mili giây) để cho biết thời điểm hình ảnh đầu vào được gửi đến trình phát hiện đối tượng. Dấu thời gian đầu vào phải tăng đơn điệu.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|---|
imageProcessingOptions | ImageProcessingOptions xác định cách xử lý hình ảnh đầu vào trước khi chạy suy luận. Lưu ý rằng tác vụ này không hỗ trợ khu vực quan tâm: việc chỉ định ImageProcessingOptions.regionOfInterest() sẽ dẫn đến việc phương thức này gửi một IllegalArgumentException. |
timestampMs | dấu thời gian nhập (tính bằng mili giây). |
Gửi
IllegalArgumentException | nếu ImageProcessingOptions chỉ định một khu vực quan tâm. |
---|---|
nếu có lỗi nội bộ. |
công khai trống detectAsync (Hình ảnh MPImage, long timestampMs)
Gửi dữ liệu hình ảnh trực tiếp để phát hiện đối tượng với các tuỳ chọn xử lý hình ảnh mặc định, tức là không áp dụng bất kỳ chế độ xoay nào và kết quả sẽ có qua OutputHandler.ResultListener
được cung cấp trong ObjectDetector.ObjectDetectorOptions
. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.LIVE_STREAM)
.
Bạn phải cung cấp dấu thời gian (tính bằng mili giây) để cho biết thời điểm hình ảnh đầu vào được gửi đến trình phát hiện đối tượng. Dấu thời gian đầu vào phải tăng đơn điệu.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|---|
timestampMs | dấu thời gian nhập (tính bằng mili giây). |
Gửi
nếu có lỗi nội bộ. |
công khai ObjectDetectorResult detectForVideo (MPImage hình ảnh, ImageProcessingOptions imageprocessingOptions, long timestampMs)
Phát hiện đối tượng trên khung hình video được cung cấp. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.VIDEO)
.
Bạn phải cung cấp dấu thời gian của khung hình video (tính bằng mili giây). Dấu thời gian đầu vào phải tăng đơn điệu.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|---|
imageProcessingOptions | ImageProcessingOptions xác định cách xử lý hình ảnh đầu vào trước khi chạy suy luận. Lưu ý rằng tác vụ này không hỗ trợ khu vực quan tâm: việc chỉ định ImageProcessingOptions.regionOfInterest() sẽ dẫn đến việc phương thức này gửi một IllegalArgumentException. |
timestampMs | dấu thời gian nhập (tính bằng mili giây). |
Gửi
IllegalArgumentException | nếu ImageProcessingOptions chỉ định một khu vực quan tâm. |
---|---|
nếu có lỗi nội bộ. |
công khai ObjectDetectorResult detectForVideo (MPImage, dấu thời gian dàiMs)
Phát hiện đối tượng trên khung video được cung cấp với các tuỳ chọn xử lý hình ảnh mặc định, tức là không áp dụng bất kỳ chế độ xoay nào. Chỉ sử dụng phương thức này khi ObjectDetector
được tạo bằng ERROR(/RunningMode.VIDEO)
.
Bạn phải cung cấp dấu thời gian của khung hình video (tính bằng mili giây). Dấu thời gian đầu vào phải tăng đơn điệu.
ObjectDetector
hỗ trợ các loại hệ màu sau:
Tham số
hình ảnh | một đối tượng MPImage MediaPipe để xử lý. |
---|---|
timestampMs | dấu thời gian nhập (tính bằng mili giây). |
Gửi
nếu có lỗi nội bộ. |