我有一个.pb模型,我想将其用作自定义MLKit模型。MLKit仅支持.tflite模型,但即使在我使用tocoTensorFlow Lite模型后,文件大小对于Firebase还是太大(95 MB,仅允许40 MB)。
有没有一种方法可以量化图,然后转换为TFLite或量化.tflite图?
当我做前者时,我收到以下错误消息: Unsupported TensorFlow op: Dequantize) for which the quantized form is not yet implemented. Sorry, and patches welcome (that's a relatively fun patch to write, mostly providing the actual quantized arithmetic code for this op).
我按照此自述文件中的所有说明进行人脸检测,当我尝试访问人脸的属性时,例如face.leftEyeOpenProbability, face.rightEyeOpenProbability或者尽管检测到人脸face.smilingProbability,但它却将我抛出空值。
我试图通过两种方式来解决这个问题,
1. 使用旧的 firebase_ml_vision 插件来处理使用
firebase_ml_vision: ^0.2.1该函数的flutter(与 AndroidX 不兼容)detectInImage()。
2.使用新firebase_ml_vision插件(与AndroidX兼容)
firebase_ml_vision: ^0.6.0+2,其中功能可按processImage()被使用。
在这两种方法中,属性值都是 null。
这是使用最新插件检测人脸的片段。
void _getImageAndDetectFace() async {
final imageFile = await ImagePicker.pickImage(source: ImageSource.camera);
final image = FirebaseVisionImage.fromFile(imageFile);
final faceDetector = FirebaseVision.instance.faceDetector(FaceDetectorOptions(
mode: FaceDetectorMode.accurate,
enableLandmarks: true,
));
final faces = await faceDetector.detectInImage(image); //this is not null
setState(() {
if (mounted) {
_imageFile = imageFile;
_faces = faces;
for (Face …Run Code Online (Sandbox Code Playgroud) 我一直在开发一个应用程序,它需要将 CameraX 用于它的预览流,但它也需要一种用于解码文本的框式叠加层。我已经成功地实现了预览,但似乎无法找到一种方法来实现一个覆盖,在不使用任何第三方应用程序的情况下,文本将被解码。现在我们可以从整个屏幕解码文本。我在 Codelabs 教程(链接)中看到了一个代码,它就是这样做的,但它在 Kotlin 中,我无法破译这个复杂的 Kotlin 代码。如果有人可以在不使用第三方库的情况下帮助我做到这一点,那就太好了。提前致谢。
我的 XML 代码:
<androidx.camera.view.PreviewView
android:id="@+id/previewView"
android:layout_width="match_parent"
android:layout_height="675dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar">
Run Code Online (Sandbox Code Playgroud)
我的相机逻辑:
PreviewView mCameraView;
Camera camera;
void startCamera() {
mCameraView = findViewById(R.id.previewView);
cameraProviderFuture = ProcessCameraProvider.getInstance(this);
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
bindPreview(cameraProvider);
} catch (ExecutionException | InterruptedException e) {
// No errors need to be handled for this Future.
// This should never be reached.
}
}, ContextCompat.getMainExecutor(this));
}
void bindPreview(@NonNull ProcessCameraProvider cameraProvider) {
Preview preview = new …Run Code Online (Sandbox Code Playgroud) 我想识别并计算图片中的对象,例如计算社区图片中的房屋数量。使用 ML Kit 执行此操作的最佳方法是什么?
我需要使用对象检测 API吗?或者是否可以使用直接的图像标签获得多个“房屋”标签?
您好,我正在使用 android mlkit 条码扫描仪,无需 firebase 和 androidx ,我遵循此代码https://medium.com/@surya.n1447/google-vision-ml-kit-with-camerax-64bbbfd4c6fd 当我扫描 qrcode 时,它是太慢了,我不知道如何提高扫描速度,是否有一些技巧或类似的东西?还是改用 zxing 还是 Google Vision 更好?我用的是小米10T Pro
类 ScanPersonFragment : Fragment() {
private var processingBarcode = AtomicBoolean(false)
private var mediaPlayer: MediaPlayer? = null
private lateinit var cameraExecutor: ExecutorService
private lateinit var scanBarcodeViewModel: ScanPersonViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
cameraExecutor = Executors.newSingleThreadExecutor()
scanBarcodeViewModel = ViewModelProvider(this).get(ScanPersonViewModel::class.java)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val v = inflater.inflate(R.layout.fragment_scan_person_destination, container, false)
mediaPlayer = MediaPlayer.create(context, R.raw.beep)
scanBarcodeViewModel.progressState.observe(viewLifecycleOwner, …Run Code Online (Sandbox Code Playgroud) android computer-vision android-camera firebase-mlkit google-mlkit
我正在构建一个 Android 应用程序,其中需要从图片中识别七段数字并在处理数据后填充屏幕。
这需要在离线模式下发生。所以它需要在移动设备上运行
我看过 Tess,但它使应用程序的大小相当大,因此我想在 Firebase 上坚持使用 ML Kit。
有没有办法在现有的 ML Kit 文本视觉 API 中添加七段数字识别?
我已经Firebase MLKit SDK按照文档进行了整合,可以在back camera照片中正确检测到文字。当我使用前置摄像头拍摄的照片时,文本检测错误,并且出现不良结果。
@IBAction func findTextDidTouch(_ sender: UIButton) {
runTextRecognition(with:imageView.image!)
}
func runCloudTextRecognition(with image: UIImage) {
let visionImage = VisionImage(image: image)
cloudTextDetector.detect(in: visionImage) { features, error in
if let error = error {
print("Received error: \(error)")
return
}
self.processCloudResult(from: features, error: error)
}
}
for text in features {
if let block = text as? VisionTextBlock {
print(block.text)
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道。我需要更换相机或Firebase毫升套件吗?
在将我的依赖项升级到最新版本时:
implementation "com.google.firebase:firebase-ml-common:16.1.6"
implementation "com.google.firebase:firebase-ml-model-interpreter:16.2.4"
implementation "com.google.firebase:firebase-ml-vision:18.0.2"
Run Code Online (Sandbox Code Playgroud)
我的构建因以下异常而失败:
* What went wrong:
Execution failed for task ':mlkit:app:transformResourcesWithMergeJavaResForDebug'.
> More than one file was found with OS independent path 'META-INF/androidx.exifinterface_exifinterface.version'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我一直在使用 Firebase ML Kit 在我的应用中做一些图像标记。一切正常,但今天在更新我的 gradle 依赖项后,我不能再使用一些类,如FirebaseVisionLabelDetectorOptions和FirebaseVisionCloudLabel。它们以红色突出显示,当我将鼠标悬停时,我看到以下消息:
未解决的参考:FirebaseVisionLabelDetectorOptions
这是我的代码:
class ImageActivity : AppCompatActivity() {
// ... omited code for brevity
private fun labelImages(image: FirebaseVisionImage) {
val detector = FirebaseVision.getInstance()
.visionLabelDetector
val result = detector.detectInImage(image)
.addOnSuccessListener { labels ->
for (label in labels) {
val text = label.label
val entityId = label.entityId
val confidence = label.confidence
}
}
}
private fun labelImagesCloud(image: FirebaseVisionImage) {
val options = FirebaseVisionCloudDetectorOptions.Builder()
.setModelType(FirebaseVisionCloudDetectorOptions.LATEST_MODEL)
.setMaxResults(30)
.build()
val detector = FirebaseVision.getInstance()
.visionCloudLabelDetector
val …Run Code Online (Sandbox Code Playgroud) 我尝试使用 Android 开发人员文档使用 CameraX 实现 MLKit 文本分析器。我的期望是分析器将在每一帧上运行,但它只运行一次,当预览初始化时。文本由 MLKit 分析,但只有在我旋转屏幕并重新启动片段时才会执行分析。为什么会发生这种情况?
在我使用的 XML 中<androidx.camera.view.PreviewView .../>。
在片段中:
private lateinit var cameraProviderFuture: ListenableFuture<ProcessCameraProvider>
private fun startCamera() {
context?.let { ctx ->
cameraProviderFuture = ProcessCameraProvider.getInstance(ctx)
cameraProviderFuture.addListener(Runnable {
val cameraProvider = cameraProviderFuture.get()
bindPreview(cameraProvider)
}, ContextCompat.getMainExecutor(ctx))
}
}
private fun bindPreview(cameraProvider: ProcessCameraProvider) {
val preview: Preview = Preview.Builder()
.build()
val cameraSelector: CameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
val analyzer = ImageAnalysis.Builder()
.setTargetResolution(Size(1280, 720))
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build().apply {
setAnalyzer(Executors.newSingleThreadExecutor(), TextAnalyzer())
}
val camera = cameraProvider.bindToLifecycle(viewLifecycleOwner, cameraSelector, …Run Code Online (Sandbox Code Playgroud) firebase-mlkit ×10
android ×7
firebase ×4
google-mlkit ×2
kotlin ×2
dart ×1
flutter ×1
ios ×1
java ×1
mlvision ×1
objective-c ×1
ocr ×1
swift ×1
tensorflow ×1