Настройка на Macbook Pro M1 Tenserflow с помощью OpenCV, Scipy, Scikit-узнайте

#tensorflow #opencv #scikit-learn #scipy #apple-m1

Вопрос:

Я думаю, что прочитал почти все руководства по настройке tensorflow, tensorflow-концентратора, обнаружению объектов на Mac M1 на BigSur v11.6. Мне удалось выяснить большинство ошибок более чем через 2 недели. Но я застрял в настройке OpenCV. Я попытался скомпилировать его из исходного кода, но, похоже, он не может найти модули из своего основного пакета, поэтому постоянно не может создать файл после успешной сборки cmake. Он терпит неудачу на разных этапах, требуя разных библиотек, несмотря на то, что они есть, но макс достиг 31% после многократного создания и удаления папки сборки или файла cmake cash. Поэтому я не уверен, что делать, чтобы успешно создать файл. Я клонировал и разархивировал opencv-4.5.0 и opencv_contrib-4.5.0 в своем каталоге miniforge3. Затем я создал папку «сборка» в своей папке opencv-4.5.0, и команда cmake, которую я в ней использую (моя среда miniforge conda называется silicon, и я убедился, что использую arch arm64 в среде bash):

 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
 

или также, как в другой попытке, изначально запрашивал calib3d или dnn, но эти библиотеки находятся в основной папке opencv-4.5.0.

Другой способ, которым я пытаюсь установить OpenCV, — это с помощью conda:

 conda install opencv
 

Но потом, когда я проверю с

 python -c "import cv2; cv2.__version__"
 

похоже, что он ищет ffmepg через homebrew (я не устанавливал ничего из этого через homebrew, но с помощью 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
 

Хотя у меня есть эти библиотеки, поэтому, когда я искал с помощью: 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
 

В одном из руководств говорилось об установке homebrew также в arm64 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.Привет! Вы уже проверили эту тему? sayak.dev/установка-opencv-m1 caffeinedev.medium.com/…youtube.com/watch?v=6835OZT0Y5Y

2. Да, к сожалению, они не помогли и не решили проблемы :/

3.ОК. Проблема с подключением с аналогичной трассировкой стека и другим возможным решением для справки. Спасибо! gist.github.com/capraMambrica/1984091 melvincabatuan.github.io/OpenCV-Install

4. Привет @Adriyana. Я являюсь автором блога caffeinedev.medium.com/… . инструкции все еще работают в системе. Я думаю, вы что — то упускаете. Если вы не в состоянии, я могу помочь. Кроме того, я также смог установить через conda.

5. Привет @ПрабхатКумарСаху, спасибо, я видел вашего гида. Я следил за этим много раз, но никогда не работал полностью и у меня были проблемы :/ Не уверен, что Apple выпустила какое — то исправление в последние дни-нужно проверить, потому что я видел некоторые изменения на их странице металла.