Free Support Forum - aspose.com

2D Barcode Recognition Invalid Results

We are evaluating the 4.9.0 version of Barcode as a replacement for a tool we are already using. We have two main concerns that I hope can be addressed here:
1. Performance - The reader is significantly slower than our existing tool. Using the similar settings our existing tool takes less than a second to detect the barcode. The Aspose tool takes anywhere from 14-62 seconds. It ran a little faster with a different developers environment ( about 3 seconds ). I know that we may not be able to match exactly the performance of the previous tool. However, this seems extreme.
2. Invalid results - The data extracted from 2D barcodes appears to have junk in it. The first few characters are correct. Everything after that is random looking characters. Generally a lot more characters than are encoded in the barcode.

We tried reading a PDF417 and DataMatrix barcode. Both attempts exhibit issues 1 and 2. The DataMatrix example has only one barcode on the page but two are read with the tool.

I have tested the PDF417 demo aspx sample within the online documentation. This returns the correct results for the code text. In looking at the code behind it doesn’t look any different from what our code is doing. Could the online demo be using a different version of the tool?

We are using Windows 7 (64bit and 32bit) when testing.

Attached is the tif file containing the PDF417 that will demonstrate the issue. Below is a snippet of the code that we are using to test the tool.

private string AsposeBarcodes(string filename)
{
var sb = new StringBuilder();
var types =
BarCodeReadType.Code39Standard |
BarCodeReadType.Code39Extended |
BarCodeReadType.Code128 |
BarCodeReadType.Pdf417 |
BarCodeReadType.DataMatrix;

using (var reader = new BarCodeReader(filename, types))
{
var stopwatch = new Stopwatch();
var barcodes = new List<KeyValuePair<BarCodeReadType, string>>();

reader.OrientationHints = RecognitionHints.Orientation.NoRotate;

stopwatch.Start();

while (reader.Read())
{

barcodes.Add(
new KeyValuePair<BarCodeReadType, string>(
reader.GetReadType(),
//Encoding.ASCII.GetString(reader.GetCodeBytes())));
reader.GetCodeText()));
}

stopwatch.Stop();

sb.AppendLine(“Aspose:\r\n” + string.Format("\t{0}s", stopwatch.Elapsed.TotalSeconds));
sb.AppendLine(“Results:”);

foreach (var barcode in barcodes)
sb.AppendLine(string.Format("\t[{0}]: ‘{1}’", barcode.Key, barcode.Value));
}

return sb.ToString();
}


Thanks for the help.

,w

Hi,


First of all, please accept our sincere apologies for your inconvenience.

I have evaluated both issues on my end, and I can confirm that Aspose.BarCode for .NET v4.9.0 is producing invalid results while reading Pdf417 symbol from your provided sample. I have logged this issue in our defect database under ticket Id BARCODENET-33287 and attached the same to your request for tracking purposes.

Regarding the performance issue, I am afraid, I am unable to observe it on my end while using the same code as of yours. The code returned the results (although invalid) in just 3~4 secs. Moreover, I have also tested the same sample with my simplest code and the results were returned in less than 1 sec. To probe further into this matter, please share more details about your development environment such as OS version, .NET Framework version, type of application etc.

Please note, adding more symbologies to BarCodeReadType will increase the reading time because the BarCodeReader will try to search for all symbologies defined in BarCodeReadType. Unless you are expecting more than one symbology in a specified sample, it will be appropriate to assign just one symbology.

Regarding your inquiry about the online demo, I will check the version of Aspose.BarCode assemblies used for our online demos and will let you know here.

Regards,

The 3-4 second processing time for the invalid barcode data is little over 3 times slower than our current tool. As I said in the first post, our current tool is running at less than a second for the same barcode test. We are testing for the same barcode types as the sample code I provided shows. If you have code that can process the barcode in a manner that is quicker, please post that code so that I may test it and compare to the code I posted.

Just to reiterate we are using the same conditions/properties (as we possibly can) when comparing the two API’s.

The OS Versions were posted previously. Here they are again with as much detail as I can give you:
Test Application:

Windows Forms
Project Targeted to .NET Framework 3.5
Using the Aspose.Barcode build from the 3.5 bin folder (I have tried 2.0 as well with the same results)
Development box #1
Windows 7 SP1 (32-bit) 3.75GB RAM - Intel Core2 Duo T5470
Testing results (14-64 seconds)
Development box #2
Windows 7 SP1 (64-bit) 4.0GB RAM - AMD Phenom 2 2.8
Testing results (3.4-3.7 seconds)

I see these two issues as pretty detrimental to the purchase of this tool. I am still very interested in the version of the online demo. If you could provided that I could test that version as well.

,w

Thanks.
,w

Hi,


Sorry for the delayed response.

I have attached your request to an appropriate ticket (BARCODENET-33289) from our defect database. We will soon analyse the performance issue as discussed in your comments and will keep you posted with updates on this.

Regarding the version of Aspose.BarCode for .NET assembly that is driving our online demos, I have found it to be an old version (v3.9.0) that will not be available for public use.

Please note, the recognition performance mainly depends upon the quality and the size of the image. If the image has good quality and is small in size then the recognition process will be efficient. If you specify AllSupportedTypes or multiple symbologies as BarCodeReadType then BarCodeReader’s internal optimization schema will sacrifice accuracy for speed. It is recommended that if the symbology of the barcode is known then you must specify it as BarCodeReadType.

Below is the simplest code snippet to recognize Code128 barcode symbol.

C#

var reader = new Aspose.BarCodeRecognition.BarCodeReader(“sample.tif”, BarCodeReadType.Code128);
while (reader.Read())
{
Console.WriteLine("Codetext found: " + reader.GetCodeText() + ", Symbology: " + reader.GetReadType().ToString());
}
reader.Close();

Regards,

OK. So the online demo is using a version that is over a year old that is also 13 revisions back. That seems odd. Not only odd - it seems just wrong that a version that is 13 revisions older is significantly faster and more accurate. Is this the type of quality that we should expect from Aspose? I surely hope not.

I understand that any barcode detection algorithm will be faster if it is only detecting one barcode type with a smaller targeted area. However, testing with the online version and other tools I am comparing multiple barcode type detection timing and accuracy with the same exact images.

I noticed that other posts on this forum are mentioning performance issues as well. This does not seem to be isolated to my test environment or code.

At this time I consider the latest version of this tool to be broken (4.9.0). Since the version that works is not available to the public, I cannot recommend its usage as it is now. I also am questioning the quality of the product in general. It appears that the development for this product is laxadasical at best. You should not have a product that decreases in performance and accuracy over time. That is unless you do not test it all.

I will continue to monitor this thread in hopes that there is a plan to reverse the performance degredation and accuracy issues.

Hi,


Sorry for your inconvenience.

You are right about the performance degradation. We have recently introduced Vector based recognition algorithm that may have increased the recognition time. We are currently looking into this and we will shortly reply you back with updates on the ticket logged earlier as BARCODENET-33289.

Regards,

The issues you have found earlier (filed as BARCODENET-33289) have been fixed in this update.


This message was posted using Notification2Forum from Downloads module by aspose.notifier.
(1)

The issues you have found earlier (filed as BARCODENET-33287) have been fixed in this update.


This message was posted using Notification2Forum from Downloads module by aspose.notifier.