Aspose.OMR for .NET fails to recognize answer sheets

I’m using Aspose.OMR for .NET 25.8.0 to recognize answer sheets, but why are images P1 and P2 failing to be recognized?

The result of recognizing image P1 is:
{“RecognitionResults”:[{“ElementName”:“Answers1”,“Value”:“”},{“ElementName”:“Answers2”,“Value”:“”},{“ElementName”:“Answers3”,“Value”:“D”},{“ElementName”:“Answers4”,“Value”:“C”},{“ElementName”:“Answers5”,“Value”:“A”},{“ElementName”:“Answers6”,“Value”:“D”},{“ElementName”:“Answers7”,“Value”:“C”},{“ElementName”:“Answers8”,“Value”:“B”},{“ElementName”:“Answers9”,“Value”:“B”},{“ElementName”:“Answers10”,“Value”:“C”},{“ElementName”:“Answers11”,“Value”:“B”},{“ElementName”:“Answers12”,“Value”:“D”},{“ElementName”:“Answers13”,“Value”:“B”},{“ElementName”:“Answers14”,“Value”:“A”},{“ElementName”:“Answers15”,“Value”:“C”},{“ElementName”:“Answers16”,“Value”:“A”},{“ElementName”:“Answers17”,“Value”:“C,D”},{“ElementName”:“Answers18”,“Value”:“A,B,C”},{“ElementName”:“Answers19”,“Value”:“C,D”},{“ElementName”:“Answers20”,“Value”:“A,B,D”},{“ElementName”:“Answers21”,“Value”:“A,D”},{“ElementName”:“Answers22”,“Value”:“A,B,C,D”},{“ElementName”:“Answers23”,“Value”:“A,B,C,D”},{“ElementName”:“Answers24”,“Value”:“A,B,D”},{“ElementName”:“Answers25”,“Value”:“A,B,D”},{“ElementName”:“Answers26”,“Value”:“A,D”},{“ElementName”:“Answers27”,“Value”:“A,C”},{“ElementName”:“Answers28”,“Value”:“A,B,C”},{“ElementName”:“Answers29”,“Value”:“A,B,C,D”},{“ElementName”:“Answers30”,“Value”:“A,B,C,D”},{“ElementName”:“Answers31”,“Value”:“A,C,D”},{“ElementName”:“Answers32”,“Value”:“A,B,D”},{“ElementName”:“Answers33”,“Value”:“A,B,C,D”}]}

问题.7z (1.5 MB)

@xingyu11

Summary
The OMR engine returns empty values for the first two answer fields (Answers1, Answers2) while the remaining answers are recognized. This usually means the engine could not correctly locate the corner markers or align the sheet in the supplied images.

Why it happens

  1. Corner markers not fully visible or low contrast – Aspose.OMR requires the four black squares at the sheet corners to be completely inside the picture. If a corner (especially the top‑left) is cut off, blurred, or washed‑out, the engine may fail to align the grid and skip the early fields.
  2. Perspective distortion / improper framing – A photo taken at an angle or that does not capture the whole sheet creates a trapezoidal shape. The OMR algorithm then cannot map the bubbles accurately, often affecting the first rows/columns.

What to do next

  1. Verify the source images
  • Open the original P1 and P2 files. Ensure all four black corner squares are completely inside the picture and clearly visible.
  • Confirm that the sheet fills the frame with no cropping of the edges.
  • Check that lighting is even, with no strong glare or shadows over the top‑left area.
  1. Retake or rescan if needed
  • Position the camera (or scanner) parallel to the paper; a stand or flat‑bed scanner works best.
  • Use diffuse illumination or a scanner to avoid reflections.
  • Make sure the entire sheet, including the corner markers, is captured.

Following these steps—ensuring full corner‑marker visibility and proper image framing—usually resolves the empty‑field issue.

:warning: I could not fully verify this explanation against the retrieved sources. Please double-check the behaviour in your environment and confirm the exact SDK/version.

Hello, @xingyu11

Thank you for your patience!

I have investigated provided files and can confirm that there is an issue with the recognition of some of the bubbles.
I have registered this issue as OMRNET-1188 ticket and will look into it.

Once the issue is patched - I will post detail here.

Hello, @xingyu11

I have investigated provided templates further.
I believe that main reason for some incorrect bubbles is a distorton of the paper sheet, particularly corners.
Unfortunately it is not supported at the moment, but is in development queue.

At the current moment I can only recommend using a scanned flat images.

I am sorry for this inconvenience.