LabelImg在Docker on Mac上成功安装

LabelImg作为图片标注工具,是在进行图片识别和视频分类等机器学习任务的训练集准备,不可少的工具,官网地址:https://github.com/tzutalin/labelImg

现在心情久久不能平静,终于在Docker(Docker on mac)的容器中,成功跑起来LabelImg了,经过了两天的煎熬和屡败屡试,现在很不及待记录下来解决方案,希望能够帮到遇到同样问题,煎熬中的小伙伴。

本人机器学习环境都制作成docker镜像,通过运行docker容器执行相关任务。docker直接用mac上安装的docker

一、主要问题:

1、LabelImg用python编写和采用qt作为它的图形界面,qt的安装遇到不少问题,主要是不同版本pyqt4(python2)和pyqt5(python3)的问题,比如报错:make: *** No rule to make target 'qt5py3'.  Stop.

2、LabelImg 是一款图形窗口的工具,运行LabelImg,需要能在docker容器中启动图形窗口

      过程报:cannot connect to X server等等错误

3、Docker on Mac和Docker on Linux在硬件使用上稍有不同,导致网络很多文章的方法对于Docker on Mac是不生效的

      过程报:cannot open display "unix/private/tmp/com.apple.launchd.**org.macosforge.xquartz:0" 等等错误

二、问题解决:

1、本人自己采用官网提供的tzutalin/py2qt4镜像,本次成功启动LabelImg,也基于此镜像。

     自个手动生成镜像,应该回在qt安装上遇到问题,感觉按照LabelImg的官网的指引,应该是能安装成功的,以后有时间再验证一下。

 2、docker容器必须通过x11进行图形窗口的显示。

     《微信分享】林帆:Docker运行GUI软件的方法》 比较清晰说明docker通过x11的显示图形窗口。

      但上文中的-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY,在docker on mac中并不生效,该方案是对于docker on linux的,生效方案下面给出。

       mac目前的版本都不自带x11,可以下载安装xquartz,xquartz就是目前apple官方的x11方案。xquartz的版本必须用2.7.10,不能用最新的2.7.11版本。

3、通过下文的大神的方法,稍做修改,把labelimg跑起来的,

  《Docker for Mac and GUI applications

open -a XQuartz
ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $ip
docker run -d --name labelimg -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /Develop/AI/docker/tensorflow/notebooks:/root/notebooks tzutalin/py2qt4

 关键语句:-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$ip:0

 

三、具体步骤

1、下载labelimg镜像,在mac终端执行(前提条件:已安装和启动docker)

docker pull tzutalin/py2qt4

2、运行docker容器,在mac终端执行

open -a XQuartz
ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $ip
docker run -it -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /Develop/AI/docker/tensorflow/notebooks:/root/notebooks tzutalin/py2qt4

3、在容器终端中执行(注意是容器里执行的哦),git和make install 在非第一次是不需要再执行了,在容器终端中,进入指定目录,执行python  ./labelImg.py,即可。

cd /root/notebooks/labelimg
git clone https://github.com/tzutalin/labelImg.git
cd /root/notebooks/labelimg/labelImg
make
python  ./labelImg.py

 

4、期待已久的LabelImg窗口出现了

  

四、参考文章

https://fredrikaverpil.github.io/2016/07/31/docker-for-mac-and-gui-applications

https://www.csdn.net/article/2015-07-30/2825340

https://blog.csdn.net/u012746060/article/details/81183006

https://hub.docker.com/r/tzutalin/py2qt4/

https://pjreddie.com/projects/pascal-voc-dataset-mirror/

https://forums.docker.com/t/how-to-run-gui-apps-in-containiers-in-osx-docker-for-mac/17797/7
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值