我想我读了很多关于设置tensorflow、tensorflow-hub在BigSur v11.6上的Mac M1上的对象检测。我设法在2个多星期后找出了大多数错误。但我在OpenCV设置上卡住了。我试图从源代码编译它,但似乎它无法从它的核心包中找到模块,所以在成功的cmake构建后总是无法生成文件。它在不同的阶段失败,需要不同的库,尽管它们在那里,但在多次cmake和删除build文件夹或cmake cash文件后,max达到了31%。所以我不知道该怎么做才能成功地制作文件。我用git克隆并解压缩了我的miniforge 3目录中的opencv-4.5.0和opencv_contrib-4.5.0。然后我在我的opencv-4.5.0文件夹中创建了一个文件夹“build”,我在其中使用的cmake命令是(我的miniforge conda环境称为silicon,并确保我在bash环境中使用的是arch arm 64):
cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 -DWITH_OPENJPEG=OFF -DWITH_IPP=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/Users/adi/miniforge3/opencv_contrib-4.5.0/modules -D PYTHON3_EXECUTABLE=/Users/adi/miniforge3/envs/silicon/bin/python3.8 -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=ON /Users/adi/miniforge3/opencv-4.5.0
所以它的叫声就像:
[ 20%] Linking CXX shared library ../../lib/libopencv_core.dylib
[ 20%] Built target opencv_core
make:***[all] Error 2
或者也像在另一个尝试中一样,最初请求calib 3d或dnn,但是那些库在主文件夹opencv-4.5.0中。
我尝试安装openCV的另一种方法是使用conda:
conda install opencv
但是当我用
python -c "import cv2; cv2.__version__"
看起来像是通过自制软件搜索ffmepg(我没有通过自制软件安装这些软件,而是用conda安装的)。所以它抱怨说:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/adi/miniforge3/envs/silicon/lib/python3.8/site-packages/cv2/__init__.py", line 5, in <module>
from .cv2 import *
ImportError: dlopen(/Users/adi/miniforge3/envs/silicon/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so, 2): Library not loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
Referenced from: /Users/adi/miniforge3/envs/silicon/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so
Reason: image not found
虽然我有这些libs,所以当我搜索:find /usr/ -name 'libavcodec.58.dylib'我可以找到许多位置:
find: /usr//sbin/authserver: Permission denied
find: /usr//local/mysql-8.0.22-macos10.15-x86_64/keyring: Permission denied
find: /usr//local/mysql-8.0.22-macos10.15-x86_64/data: Permission denied
find: /usr//local/hw_mp_userdata/Internet_Manager/OnlineUpdate: Permission denied
/usr//local/lib/libavcodec.58.dylib
/usr//local/Cellar/ffmpeg/4.4_2/lib/libavcodec.58.dylib
(silicon) MacBook-Pro:opencv-4.5.0 adi$ ln -s /usr/local/Cellar/ffmpeg/4.4_2/lib/libavcodec.58.dylib /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
ln: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib: No such file or directory
其中一个指南说安装自制也在arm 64 env,所以我这样做:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
alias ibrew='arch -x86_64 /usr/local/bin/brew' # create brew for intel (ibrew) and arm/ silicon
不确定这是否会影响它,但看起来它没有做任何事情,因为它仍然使用**/opt/homebrew/而不是/usr/local/**。因此,如果我能使任何方法工作,任何帮助将是非常感谢的。最终我想使用Tenserflow模型动物园对象检测模型。所以所有其他依赖项看起来都很好(目前)除了OpenCV不工作或如果它是与conda安装工作,那么它似乎scipy和scikit-learn不工作。
1条答案
按热度按时间eagi6jfj1#
在我的情况下,我也有很多麻烦,试图安装这两个模块。我终于设法做到了,但老实说,不知道如何和为什么。我留下以下的要求,如果你可能想重新创建的环境,在我的情况下工作。你应该有conda Miniforge 3安装: