Android应用程序和java应用程序为相同的图像生成不同的结果
我正在为两个不同的平台开发OCR应用程序Android应用程序和java应用程序为相同的图像生成不同的结果,java,android,tesseract,tess4j,tess-two,Java,Android,Tesseract,Tess4j,Tess Two,我正在为两个不同的平台开发OCR应用程序 安卓 窗户 我正在使用android studio进行android应用程序开发,使用的是Tess two library版本5.4.1。下面是我的代码,我用它从图像中识别文本 myBitmap = BitmapFactory.decodeFile(imagePaths[i]); TessBaseApi tessApi = new TessBaseAPI(); tessApi.init(dirPathSDCard, "eng"); tessApi.set
myBitmap = BitmapFactory.decodeFile(imagePaths[i]);
TessBaseApi tessApi = new TessBaseAPI();
tessApi.init(dirPathSDCard, "eng");
tessApi.setImage(myBitmap);
returnedText = tessApi.getUTF8Text();
Log.e("Returned Text", returnedText)
tessApi.end()
对于pc,我使用java编程语言和EclipseIDE。我将Tess4j用于我的java应用程序。下面是我的代码,它显示了如何从图像中识别文本
public static void main(String args[]) throws IOException{
try {
ITesseract instance = new Tesseract();
instance.setDatapath("tessdata");
String result = instance.doOCR(imgFile);
System.out.println(result);
}
catch(TesseractException e) {
System.err.println(e.getMessage());}
}
我的问题是,我相信这两个包装器类都基于用c/c++编写的OCR引擎。有时我会从android应用程序中获得准确的文本,但java程序不会为相同的图像返回准确的结果。有时我会从java程序中得到准确的结果,但android应用程序不会为该图像返回准确的文本。如果两个包装器类的核心库相同,那么为什么它们都会产生不同的结果。我正在测试以下图像,android应用程序会返回准确的文本,但java程序不会
这两个程序有可能得到相同的结果吗。任何帮助都将不胜感激。非常感谢您在这件事上的时间和帮助 由于Tesseract API调用完全不同,因此无法保证这两个程序执行相同的操作。据猜测,底层实现是一个中立的网络。即使API调用最终调用come代码,不同的矩阵也会返回不同的结果。相互训练网络可能是可能的。您的意思是,如果我根据自己的数据训练一个模型,那么在这种情况下,我可以从两个应用程序中获得相同的结果?在更大的数据集上训练两个模型,两个模型在训练阶段相互竞争。这大大提高了使用竞争模型进行训练的学习速度。我对两个平台使用相同的训练模型,但仍然得到不同的结果。是的,这在神经网络中是正常的,直到你有足够的样本量来消除样本偏差。每次训练的执行都是不同的。该方法的成功取决于具有三个或更多自变量的系统的不确定性,但训练时间相当长。由于Tesseract API调用完全不同,因此无法保证这两个程序执行相同的操作。据猜测,底层实现是一个中立的网络。即使API调用最终调用come代码,不同的矩阵也会返回不同的结果。相互训练网络可能是可能的。您的意思是,如果我根据自己的数据训练一个模型,那么在这种情况下,我可以从两个应用程序中获得相同的结果?在更大的数据集上训练两个模型,两个模型在训练阶段相互竞争。这大大提高了使用竞争模型进行训练的学习速度。我对两个平台使用相同的训练模型,但仍然得到不同的结果。是的,这在神经网络中是正常的,直到你有足够的样本量来消除样本偏差。每次训练的执行都是不同的。该方法的成功取决于具有三个或三个以上自变量的系统的不确定性,但训练时间相当长。