As tarefas Cron não são realmente adequadas para gerenciar aplicativos de desktop. Seria melhor iniciar o aplicativo a partir de um script de shell em loop; na sua forma mais simples
#!/bin/sh
cd /home/masoud/Desktop/vision3
while :; do ./vision; done
Dessa forma, sempre que vision
for interrompido, ele será iniciado novamente.
Você pode querer planejar uma "estratégia de saída" para quando realmente quiser interromper o programa. Isso faria:
#!/bin/sh
cd /home/masoud/Desktop/vision3
while [ ! -f no_vision ]; do ./vision; done
Então quando você quiser parar o programa,
touch /home/masoud/Desktop/vision3/no_vision
e feche-o - o script de shell também será interrompido.