Skip to content

Baselines

Everything scored by the benchmark implements one contract (pic2smiles.evaluation.harness.Recognizer): given image paths, return one prediction each. A system that cannot run returns skipped with a reason and is excluded from every rate rather than scoring zero.

Reference points, not competitors

name what it is why it is in the table
oracle reads the answer from the manifest validates the harness. If it is not 1.000, the scoring code is broken, not the model.
image_hash_nn average-hash nearest neighbour over a rendered gallery the memorization floor. It can only return a molecule it has already seen, so it shows what "retrieval without recognition" scores on each tier.

External OCSR systems

name approach status
MolScribe Swin encoder + graph decoder runs on Linux via subprocess; cannot run on this macOS 27 laptop (see below)
MolNexTR ConvNeXt + transformer, graph output not installed
MolGrapher atom/bond keypoints + GNN not installed
DECIMER transformer image-to-SMILES not installed
Img2Mol CNN encoder + pretrained latent decoder not installed
OSRA rule-based vectorization binary not installed

MolScribe on macOS 27

The Python 3.10 environment that previously ran MolScribe no longer imports:

ImportError: dlopen(.../scipy/sparse/linalg/_propack/_spropack.cpython-310-darwin.so):
  section '__DATA/__thread_bss' has a zero-fill section type, but offset field is not zero

macOS 27's dyld rejects the older compiled scipy extensions. The fix would be scipy >= 1.16, which requires Python 3.11+, while MolScribe pins torch<2. Upgrading scipy inside the 3.10 environment does not resolve it.

This is reported as a result, not worked around: part of the goal is a model that runs on this laptop, and the strongest available pretrained baseline currently does not.

Subprocess boundary

MolScribe's dependency stack (old torch, albumentations, scikit-image) cannot share an environment with a current PyTorch training setup. The harness shells out to scripts/molscribe_predict.py under a separate interpreter, which prints one SMILES per input image. A missing interpreter or checkpoint degrades to skipped with the path recorded.

Numbers from the previous revision of this repo

The earlier report listed MolScribe at 0.000 exact match on 20 hand-drawn images. Those numbers came from the environment that no longer runs, on a sample of 20, and are not carried forward. Any MolScribe figure in the current report was produced by the current harness on the current frozen evaluation sets.