赞
踩
看到了ProPainter在晚上去除水印、动态物体的视频,就想动手来搞搞,不过,好几年没写代码了,只能用简单的工具和方法来搞,记录一下我碰到的问题,和解决办法,希望提供帮助,尤其是在MAC下,一直提示,ModuleNotFoundError: No module named 'cv2'的解决办法。
先从失败的方案开始,原本有台Ubuntu的服务器,由于没有装FTP,本想快捷的上传、下载文件,结果搞好以后,服务器被和谐了。。只好用自己的MAC 15年的老机器,来跑起来。
方案二:先用miniconda搭建环境,再尝试运行。
环境看似没有问题,但是只要运行示例代码 “python inference_propainter.py --video inputs/object_removal/bmx-trees --mask inputs/object_removal/bmx-trees_mask ”,就提示错误ModuleNotFoundError: No module named 'cv2'
尝试解决方案:
重新安装opencv-python,用pip安装、用Conda安装,都全部失败。
重新安装Python,继续失败。
从网上找了解决办法,去找对应的OpenCV-Python的版本和OpenCV-contrib-Python的版本,把所有的版本,全部试了一般,继续失败。。。深深的挫败感。
就这么过去了两天时间,已经放弃了不打算尝试了,就当自己吃不到肉了。
好吧,自己还是不认命,既然缩减版的miniconda有问题,就尝试原本的大蟒蛇。主要是在Ubuntu上,安装了所有的包后,一次性就过了,MAC上自己又一直找不到原因在哪,也不知道怎么解决。头发都快薅秃了,我还给作者发了邮件,直到解决,作者还没回复我。
方案三:卸载了miniconda,重新搭建Anaconda环境,冲再尝试运行。
自以为解决的时候,一碰冷水过来,继续失败。重复方案二的解决办法,全部试了一遍,全部失败。
一开始就一直用conda create -n propainter python=3.8 -y创建环境,修改了Python版本,3.7、3.9继续失败。
持续崩溃中。。。。
又在anaconda-navigate中,搜索了所有的OpenCV,全部装了一遍,继续失败。
这里其实最后在怀疑还是环境有问题,之前在MAC上运行了SD,按理应该是可以跑OpenCV的,既然OpenCV的所有版本都试过了,那可能就是Python有问题。
运行了Python,发现版本和我在创建环境的时候不一致,又去搜索了很多办法,未能解决,那就只好放大招,删除所有环境。。。
最后一次。。成功了,方案如下:
删除了所有conda创建的环境,通过在anaconda-navigate页面上,如下图选择。
安装完所有的之后,包括OpenCV后,执行import cv2,没有报错,异常兴奋和开心。
不要以为这就结束了。。。
重新执行了示例: “python inference_propainter.py --video inputs/object_removal/bmx-trees --mask inputs/object_removal/bmx-trees_mask ”,新的错误来了,
"RuntimeError: Conv3D is not supported on MPS"
彻底崩了。。怎么这么多问题。。虽然我现在就是个代码新手,那种挫败感让你怀疑人生。继续网上搜索,大致的猜测是需要用CPU去训练,而不是GPU。网上的很多办法是修改环境,我也不知道怎么修改。
不行的话,就看源码,看看能不能发现啥,打开inference_propainter.py,其实也是无意中发现了这行被注释掉的代码。修改代码注释,成功运行,搞了三天,终于成功了。
其实,很大程度上是运气吧,不会修改运行环境,代码功力不够。
就这样吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。