i wykonany następujący kod do generowania znaków mądry wartości ufności:charakter mądry wartości ufności wykorzystujące tesseract 3,01
int main(int argc, char **argv) {
const char *lang="eng";
const PIX *pixs;
if ((pixs = pixRead(argv[1])) == NULL) {
cout <<"Unsupported image type"<<endl;
exit(3);
}
TessBaseAPI api;
api.SetVariable("save_blob_choices", "T");
api.SetPageSegMode(tesseract::PSM_SINGLE_WORD );
api.SetImage(pixs);
int rc = api.Init(argv[0], lang);
api.Recognize(NULL);
ResultIterator* ri = api.GetIterator();
if(ri != 0)
{
do
{
const char* symbol = ri->GetUTF8Text(RIL_SYMBOL);
if(symbol != 0)
{
float conf = ri->Confidence(RIL_SYMBOL);
cout<<"\nnext symbol: "<< symbol << " confidence: " << conf <<"\n" <<endl;
}
delete[] symbol;
} while((ri->Next(RIL_SYMBOL)));
}
return 0;
}
wyjście uzyskane na powyższy obrazek, było:
następny symbol: N pewność: 72,3563 następny symbol: B zaufanie: 72,3563
następny ufności E: symbol: 69,9937 następnego symbolu: pewność T: 69,9937
następnego symbolu R ufności: 69,9937 następnego symbolu: a ufności: 69,9937
następnym symbolem N ufności: 69,9937 następnego symbolu: pewność G: 69,9937
następnego symbolu: - zaufanie: 69,9937 następny symbol: ufam: 69,9937
Jak widać, wartości ufności dla znaków należących do tego samego słowa są takie same. Czy to oczekiwane wyjście? Czy wartości ufności nie powinny być różne dla każdej postaci? Próbowałem wykonać kod dla słowa, w którym każdy znak był w innym stylu czcionki ... a jednak wartość zaufania była taka sama dla znaków należących do tego samego słowa.