SynapseML icon indicating copy to clipboard operation
SynapseML copied to clipboard

OpenCV binding replacement

Open memoryz opened this issue 3 years ago • 0 comments

Current the opencv binding is pulled from "org.openpnp" % "opencv" % "3.2.0-1", but it's not actively maintained, and missing many features. This PR intends to replace the opencv binding to use bytedeco's javacv, meanwhile, also to replace the superpixel implementation with opencv's better native implementation.

Unfortunately, I later discovered that the bytedeco's opencv distribution doesn't work with Databricks or Synapse, because neither Spark environments support platform-specific classifiers in the maven coordinate. The expected behavior is the Spark environment loads the main opencv jar (without classifier) as well as platform-specific jars (with OS/platform classifier), as specified in the pom file. The actual behaviors are: Databricks resolves to the same wrong jar every time, and Synapse resolves to a random jar, but neither platform loads all the needed jars.

As I follow up with Azure support, I'm creating this PR as a backup.

Please do not merge.

memoryz avatar Oct 15 '21 21:10 memoryz