PetervanLunteren / EcoAssist

Simplify camera trap image analysis with ML species recognition models based around the MegaDetector model
MIT License
121 stars 16 forks source link

software exiting without error or outfile generated on intel Apple iMac #47

Closed TinaH10 closed 5 months ago

TinaH10 commented 5 months ago

Hello Peter, I have been referred here to ask you with a problem I am having running EcoAssist on my 2013 intel iMac running OS X Catalina. I installed the software and it seemed to install fine, but strangely, when I try and run it on images, it exits a few seconds after showing the message that it is processing. If I process movies, it will process them all but in the end also simply exits without the outfile being produced. However, the post processing works fine. I am running Megadetector on a linux cluster and imported the .json file into the folder with the images back on my Mac. Then post-processing produces the expected results. The post processing works, but the detection does not.

Could you advise what I have done wrong?

Below is the code of the command file and it looks like there is an error with the $LOCATION_ECOASSIST_FILES files maybe?

!/usr/bin/env bash

OSX and Linux commands to open the EcoAssist application https://github.com/PetervanLunteren/EcoAssist

Peter van Lunteren, 9 Apr 2024 (latest edit)

check the OS and set var

if [ "$(uname)" == "Darwin" ]; then echo "This is an OSX computer..." if [[ $(sysctl -n machdep.cpu.brand_string) =~ "Apple" ]]; then echo " ...with an Apple Silicon processor." PLATFORM="Apple Silicon Mac" else echo " ...with an Intel processor." PLATFORM="Intel Mac" fi elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then echo "This is a Linux computer." PLATFORM="Linux" fi

set location var

if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then LOCATION_ECOASSIST_FILES="/Applications/.EcoAssist_files" elif [ "$PLATFORM" = "Linux" ]; then LOCATION_ECOASSIST_FILES="$HOME/.EcoAssist_files" fi

set variables

CONDA_DIR="${LOCATION_ECOASSIST_FILES}/miniforge" ECOASSISTCONDAENV="${CONDA_DIR}/envs/ecoassistcondaenv-base" PIP="${ECOASSISTCONDAENV}/bin/pip" HOMEBREW_DIR="/opt/homebrew"

log output to logfiles

exec 1> $LOCATION_ECOASSIST_FILES/EcoAssist/logfiles/stdout.txt exec 2> $LOCATION_ECOASSIST_FILES/EcoAssist/logfiles/stderr.txt

timestamp and log the start

START_DATE=date echo "Starting at: $START_DATE" echo ""

log system information

UNAME_A=uname -a if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then MACHINE_INFO=system_profiler SPSoftwareDataType SPHardwareDataType SPMemoryDataType SPStorageDataType fi FILE_SIZES_DEPTH_0=du -sh $LOCATION_ECOASSIST_FILES FILE_SIZES_DEPTH_1=du -sh $LOCATION_ECOASSIST_FILES/* FILE_SIZES_DEPTH_2=du -sh $LOCATION_ECOASSIST_FILES/*/* echo "uname -a:" echo "" echo "$UNAME_A" echo "" if [ "$PLATFORM" = "Apple Silicon Mac" ] || [ "$PLATFORM" = "Intel Mac" ]; then echo "System information:" echo "" echo "$MACHINE_INFO" echo "" fi echo "File sizes with depth 0:" echo "" echo "$FILE_SIZES_DEPTH_0" echo "" echo "File sizes with depth 1:" echo "" echo "$FILE_SIZES_DEPTH_1" echo "" echo "File sizes with depth 2:" echo "" echo "$FILE_SIZES_DEPTH_2" echo ""

change directory

cd $LOCATION_ECOASSIST_FILES || { echo "Could not change directory to EcoAssist_files. Command could not be run. Did you change the name or folder structure since installing EcoAssist?"; exit 1; }

activate conda env

source "${LOCATION_ECOASSIST_FILES}/miniforge/etc/profile.d/conda.sh" source "${LOCATION_ECOASSIST_FILES}/miniforge/bin/activate" export PATH="${CONDA_DIR}/bin":$PATH conda activate $ECOASSISTCONDAENV

path to python exe

PATH_TO_PYTHON="${ECOASSISTCONDAENV}/bin/" echo "Path to python: $PATH_TO_PYTHON" echo ""

add to PYTHONPATH

export PYTHONPATH="$PYTHONPATH:$PATH_TO_PYTHON:$PWD/cameratraps:$PWD/ai4eutils:$PWD/yolov5:$PWD/EcoAssist" echo "PYHTONPATH=$PYTHONPATH" echo ""

add to PATH

export PATH="$PATH_TO_PYTHON:/usr/bin/:$PATH" echo "PATH=$PATH" echo ""

version of python exe

PYVERSION=python -V echo "python version: $PYVERSION" echo ""

location of python exe

PYLOCATION=which python echo "python location: $PYLOCATION" echo ""

run script

"${PATH_TO_PYTHON}/python" EcoAssist/EcoAssist_GUI.py

timestamp and log the end

END_DATE=date echo "" echo "Closing at: $END_DATE” Ecoassist progress

PetervanLunteren commented 5 months ago

Hi Tina, it sounds like the part of EcoAssist that runs MegaDetector is not functioning properly. That probably has to do with the fact that, as of January 2024, support for Intel-based Macs has been deprecated. While the software may still function on Intel Macs, optimal performance cannot be guaranteed, and unexpected behavior may occur.

If you're only running EcoAssist for MegaDetector and not for a classification model, you can also install an old version. That will probably still work on Intel macs. In the FAQ, under "What happened to the train feature?" you can find instructions on how to install EcoAssist v4.3.

TinaH10 commented 5 months ago

Hi Peter,

thanks so much for getting back. Originally, I had installed the intel OSX version from your website. This did not work for the Megadetector part, but I could import the json file from running Megadetector on my cluster and use the postprocessing in EcoAssist. However, after re-installation, even the postprocessing did no longer work. I then went ahead to install the older version, and have the same problem, it instals fine, but then simply exits when I try and start it.

/Applications/EcoAssist.command ; exit; Tina-Imac:~ harrb1$ /Applications/EcoAssist.command ; exit; This is an OSX computer... ...with an Intel processor. logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed.

[Process completed]

Thanks for your help,

Bettina

On Jun 10, 2024, at 3:14 AM, Peter van Lunteren @.***> wrote:

Hi Tina, it sounds like the part of EcoAssist that runs MegaDetector is not functioning properly. That probably has to do with the fact that, as of January 2024, support for Intel-based Macs has been deprecated. While the software may still function on Intel Macs, optimal performance cannot be guaranteed, and unexpected behavior may occur.

If you're only running EcoAssist for MegaDetector and not for a classification model, you can also install an old version. That will probably still work on Intel macs. In the FAQ https://addaxdatascience.com/ecoassist/#FAQ, under "What happened to the train feature?" you can find instructions on how to install EcoAssist v4.3.

— Reply to this email directly, view it on GitHub https://github.com/PetervanLunteren/EcoAssist/issues/47#issuecomment-2157649400, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGOVVLG2DPI433WM2SDTT53ZGVN4ZAVCNFSM6AAAAABI7GIYKOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJXGY2DSNBQGA. You are receiving this because you authored the thread.


Bettina Harr PhD Max-Planck-Institut fuer Evolutionsbiologie Abteilung Evolutionsgenetik August-Thienemannstrasse 2 24306 Ploen (Germany)

Tel: ++49 4522 763 287

http://web.evolbio.mpg.de/~harr/HarrLab/HOME.html

######################## Become Carbon neutral today Visit: https://savingnature.com ########################

PetervanLunteren commented 5 months ago

Do you know when you downloaded the version that did work? I'll prepare a special install.command to get that specific version back.

TinaH10 commented 5 months ago

since it never really worked fully (i.e. all I could do is postprocessing) and I have now set everything up on my cluster I am going to use the command line version for now. Until I eventually have to get a new computer. This issue comes up more and more with my intel Mac....Thanks or you help!

PetervanLunteren commented 5 months ago

No problem :)