最近又做了第n次moonlight的环境配置

moonlight是相对成熟的omr系统

这里记录环境配置的基本步骤

 

(总的来说主要是用conda新建符合程序要求的python版本

然后装好bazel和protobuf以及其他需要的包,设置好相关的PATH

最后bazel build的过程有点慢,其他也没什么坑了)

 

基本环境:virtualbox ubuntu20(ubuntu18同样适用)

 

以下是步骤:

1、更换apt源
https://blog.csdn.net/u013862444/article/details/98619724

 

2、安装miniconda3

//下载安装程序
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

//赋权、运行
chmod 777 Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

//添加PATH
vim ~/.bashrc
export PATH=/home/user/miniconda3/bin:$PATH
source ~/.bashrc

 

3、创建python环境
conda create -n [env_name] python=3.x #安装指定版本python

//一般选择py3.7版本即可
conda activate [env_name] # 切换python版本

 

4、更新pip源
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

//推荐清华源更新步骤
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U #更新pip版本
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #更新pip源

 

5、安装所需包

pip install -r requirements.txt

 

6、测试tensorflow是否安装成功
python
>> import tensorflow as tf

 

7、安装protobuf
pip install protobuf==3.6.1

 

8、安装bazel
参考自官网
https://docs.bazel.build/versions/0.20.0/install-ubuntu.html

//安装所需包
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python3

//手动下载bazel安装程序
https://github.com/bazelbuild/bazel/releases/tag/0.20.0
选择 bazel-<version>-installer-linux-x86_64.sh

//也可以直接用下面的下载链接:
https://github.com/bazelbuild/bazel/releases/download/0.20.0/bazel-0.20.0-installer-linux-x86_64.sh

//赋权、运行
chmod +x bazel-<version>-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user


//添加PATH
export PATH="$PATH:$HOME/bin"

 

9、运行moonlight

//requirements.txt同目录下执行以下命令

bazel build moonlight:omr #一般情况下这个会报错
bazel build moonlight:omr --incompatible_remove_native_http_archive=false #如果上一条报错,执行本条,否则跳过
// 这个过程会需要等很久,视网络状况而定,自测1h左右
// bazel build完毕后可以测试程序的基本功能,如下:

// Prints a Score message.
bazel-bin/moonlight/omr moonlight/testdata/IMSLP00747-000.png

// Scans several pages and prints a NoteSequence message.
bazel-bin/moonlight/omr --output_type=NoteSequence IMSLP00001-*.png

// 识别一张乐谱并生成xml文件(可以用MuseScore播放),注意执行路径
bazel-bin/moonlight/omr --output_type=MusicXML --output=[xml_file] [png_file]

 posted on 2022-03-21 16:24  defsign3r  阅读(329)  评论(0编辑  收藏  举报