Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installing Audiveris on Nvidia Jetson TX2 #251

Closed
kyle-redyeti opened this issue Feb 15, 2019 · 9 comments
Closed

Installing Audiveris on Nvidia Jetson TX2 #251

kyle-redyeti opened this issue Feb 15, 2019 · 9 comments

Comments

@kyle-redyeti
Copy link

I am having issues getting Audiveris to install on the Nvidia development board. It is a bit of an odd mix of hardware and software. It is Ubuntu 16.04 and it is arm64. I have been able to install Tesseract 3.04.1 with leptonica-1.73 on the device but when I am trying to run the gradle script it wants to pull the jars from a repo and I see the following errors...

[ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Could not find tesseract-linux-null.jar (org.bytedeco.javacpp-presets:tesseract:3.04.01-1.3).

[ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Could not find leptonica-linux-null.jar (org.bytedeco.javacpp-presets:leptonica:1.73-1.3).

my computer shows...
tesseract --version
tesseract 3.04.01
leptonica-1.73
libgif 5.1.2 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.2

Is there a way to modify the gradle script to point to these local versions?

Thanks!

Kyle

@hbitteur
Copy link
Contributor

Gradle is trying to load archives with names ending by "-linux-null.jar"
And the "null" comes from targetOS variable which is used as a classifier token for the archives (binary code).

See these lines in build.gradle file, starting line 15:
ext.targetOSName = System.getProperty('os.name').toLowerCase()\ .startsWith('mac os x') ? 'macosx' :\ System.getProperty('os.name').split(' ')[0].toLowerCase()

ext.targetOSArch = ["i386":"x86", "i486":"x86", "i586":"x86", "i686":"x86", "x86":"x86", "amd64":"x86_64", "x86-64":"x86_64", "x86_64":"x86_64"]\ [System.getProperty('os.arch').toLowerCase()]

ext.targetOS = "${project.ext.targetOSName}-${project.ext.targetOSArch}"

Could you check the values you get in your environment for system properties "os.name" and "os.arch"

@hbitteur
Copy link
Contributor

Mind the fact that, for tesseract and for leptonica which are native programs (not Java), we need both the java interface and the binary library (which depends on your OS name and architecture).
Hence the need for the precise classifier token to load the proper binary archive.

@kyle-redyeti
Copy link
Author

Thanks! If I do have the jar files local for tesseract and leptonica can I point Gradle to those rater than out to https://jcenter.bintray.com/org/bytedeco/javacpp-presets/tesseract/3.04.01-1.3/

Also, thanks for the quick response!

Thanks Again!

Kyle

@maximumspatium
Copy link
Contributor

Gradle is trying to load archives with names ending by "-linux-null.jar"
And the "null" comes from targetOS variable which is used as a classifier token for the archives (binary code).

This is related to #199. You'll need to provide the appropriate mapping for the currently unsupported arm64 arch.

Try to uncomment this line and place it before jcenter():

//flatDir(dirs: 'dev/externals') // for libraries not in any other repository

I cannot say for sure if it will work though.

@maximumspatium
Copy link
Contributor

@kyle-redyeti Any progress?

@magic-k
Copy link

magic-k commented Jun 19, 2019

I'm not the OP but i tried to build audiveris on an arm64 chromebook.
Unfortunately theres no arm64 version of tesseract 3.x java binding. arm64 is only supported since 4.x
For leptonica there's no linux-arm64 version at all, only android-arm64.
At least according to https://jcenter.bintray.com

@maximumspatium
Copy link
Contributor

Unfortunately theres no arm64 version of tesseract 3.x java binding. arm64 is only supported since 4.x

Yes, that's true.

For leptonica there's no linux-arm64 version at all, only android-arm64.

That's also true but fixable. Only need to add the appropriate architecture and compile Javacpp-presets from source.
I cannot do that due to lack of the corresponding hardware...

Regarding Tesseract 4.x support, we have to stuck to the legacy OCR engine due to various issues with the state-of-the-art LSTM engine, see #273.
I'm going to try out to switch to the legacy engine from Tesseract 4.x using oem=0. If it works, we could proceed with Tesseract 4 integration (based on the legacy mode) and adding linux-arm64 support...

@magic-k
Copy link

magic-k commented Jun 28, 2019

FYI Leptonica linux-arm64 has been added and will be released soon.
See bytedeco/javacv#1021 (comment)

@maximumspatium
Copy link
Contributor

I'm going to try out to switch to the legacy engine from Tesseract 4.x using oem=0.

It works, see #273 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants