Une histoire de mettre ubuntu dans le disque dur par ignorance complète et de faire yolov3

introduction

Qu'est-ce que LINUX en premier lieu? Même s'il s'agit d'un niveau, j'ai décidé de faire de la détection d'objets. J'ai souffert au niveau de quelques mois donc je laisse le chemin.

C'est pour les personnes qui ne touchent pas à la CUI ou à Linux. Je n'en sais pas grand-chose moi-même, donc il y a des erreurs et des parties redondantes, mais c'est l'ambiance.

environnement

GPU:RTX2060 (windows10 pro)

Je voulais utiliser Windows et ubuntu sans stress, j'ai donc préparé et construit deux disques durs.

Construire

installation ubuntu

Les choses nécessaires

・ Disque dur ・ Mémoire USB de 4 Go ou plus Le disque dur et l'USB peuvent être réutilisés, mais ** le contenu sera effacé **, veuillez donc préparer celui que vous n'utilisez pas.

création du support d'installation ubuntu

Téléchargez l'iso Ubuntu 18.04 depuis ici. Le nouveau a moins d'informations, donc la faiblesse est 18.04. Les débutants seront misérables avec 20.04. Tout ce que vous avez à faire est de le mettre dans une clé USB.

Et comme il existe un logiciel pour l'insérer, je vais le préparer également. J'ai utilisé le Universal USB Installer. Lorsque vous l'utilisez, sélectionnez la clé USB ainsi que la destination d'écriture.

Avez-vous inséré le disque dur pour ubuntu? Après l'avoir inséré, c'est le suivant.

lancer ubuntu

Démarrez ubuntu à partir de la mémoire USB. Maintenez la touche SHIFT enfoncée et redémarrez Windows, ou ouvrez le menu de démarrage pendant le démarrage et sélectionnez celui qui ressemble à une mémoire USB. Comment ouvrir le menu de démarrage est écrit dans une phrase mystérieuse telle que F8 ou F11 qui apparaît lorsque le PC démarre. Appuyez sur la touche correspondant à ce moment. Cela dépend du fabricant, veuillez donc le vérifier vous-même. J'ai ouvert à F11.

Lorsque vous le démarrez, un menu que vous ne comprenez pas apparaîtra, alors démarrez ubuntu avec celui qui dit ubuntu sans installation.

C'est là que commence ubuntu. Tout ce que vous avez à faire est de lancer l'installation sur votre bureau. Il vous sera demandé où l'installer, mais sélectionnez un disque dur vierge. ** Ne sélectionnez jamais un disque dur contenant des fenêtres. Toutes les données mourront. ** **

Au milieu "Il y a un nouvel ubuntu appelé ubuntu 20.04 LTS!" Cela peut être dit, mais veuillez l'ignorer.

Vous pouvez retirer la mémoire USB lorsque vous avez terminé.

Modifier l'ordre de démarrage du lecteur (pour les personnes avec 2 disques durs)

À ce rythme, le barrage F11 démarrera chaque fois que vous tenterez de démarrer ubuntu. Par conséquent, laissez l'enfant qui démarre Windows et ubuntu appelé BIOS démarrer ubuntu de préférence.

Tout comme lorsque vous avez ouvert le menu de démarrage plus tôt, appuyez cette fois sur F2 ou sur la touche Suppr de l'écran de démarrage. Encore une fois, selon le fabricant, j'étais Supprimer.

L'écran du BIOS devrait maintenant être ouvert. Les paramètres du système d'exploitation et ainsi de suite évoluent, mais recherchez Boot Device Priority ou un nom proche de celui-ci. Si vous le trouvez, placez en premier l'ordre de démarrage du disque dur contenant ubuntu. La plupart des disques durs bloqués à l'origine sont des numéros plus jeunes.

ubuntu est un bon gamin qui demande par quoi commencer, alors maintenant ça commence confortablement.

Construction de fondations

Action initiale

Il y a une liste de logiciels en bas à gauche, alors ouvrez le terminal. C'est une chose noire comme un programmeur. Si vous ne pouvez pas le trouver, il est quelque part dans la liste, alors cherchez-le.

Lorsqu'il s'ouvre, entrez ce qui suit. La marque $ est une marque pour la ligne à saisir. Entrez la pièce excluant cela.

$ sudo apt update
$ sudo apt upgrade

sudo a les privilèges root. Si on vous dit "Vous n'avez pas la permission / permission" ou "Exécuter en tant que root", vous pouvez généralement le résoudre en mettant ceci au début. apt est une commande de gestion de paquet appelée * APT (Advanced Packaging Tool) *. Si vous apportez des modifications, effectuez update et upgrade. Il vaut mieux être nouveau.

Pour les phrases longues, entrez un peu au début et appuyez sur la touche TAB pour la terminer dans une certaine mesure, alors utilisons-la.

Au fait, si vous trouvez sudo gênant, vous pouvez le résoudre en vous connectant à la racine.

$ sudo su -

//Utilisez exit pour vous déconnecter de la racine
$ exit

Je ne peux pas utiliser CTRL + V! Ceux qui disent peuvent être satisfaits avec CTRL + SHIFT + V.

Si cela ne fonctionne pas à l'avenir, essayez d'abord update et sudo. Il sera résolu relativement.

Insérez le pilote NVIDIA

C'est un enfant qui exécute le GPU. J'ai fait référence à https://qiita.com/kawazu191128/items/8a46308be6949f5bda57.

Tout d'abord, indiquez-nous le pilote recommandé.

$ ubuntu-drivers devices

Cela installera le pilote recommandé. J'étais nvidia-driver-455.

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo apt install nvidia-driver-455

Maintenant que le pilote est installé, redémarrez-le.

$ sudo reboot

Après avoir confirmé que le GPU est reconnu après le redémarrage, vous avez terminé.

$ nvidia-smi

Dans mon cas, le mot RTX2060 est sorti.

Installation d'OpenCV

C'est un enfant nécessaire au calcul. Maru Pakuri des choses suivantes https://qiita.com/usk81/items/98e54e2463e9d8a11415

Tout d'abord, ajoutez le référentiel.

$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu bionic-security main"

Ensuite, nous insérerons les bibliothèques dépendantes.

$ sudo apt -y install build-essential checkinstall cmake unzip pkg-config yasm
$ sudo apt -y install git gfortran python3-dev
$ sudo apt -y install libjpeg-dev libpng-dev libtiff-dev libtbb-dev
$ sudo apt -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev libxvidcore-dev libx264-dev libgtk-3-dev

Enfin, je vais installer OpenCV.

$ cd /usr/local/src
$ sudo git clone https://github.com/opencv/opencv.git
$ sudo git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv_contrib
$ sudo git checkout -b 3.4.3 refs/tags/3.4.3
$ cd ../opencv/
$ sudo git checkout -b 3.4.3 refs/tags/3.4.3

cd est une commande pour déplacer la position actuelle (répertoire). Vous pouvez vous déplacer avec cd destination, et vous pouvez remonter d'un niveau avec deux points comme cd ../. Vous pouvez également revenir là où vous étiez à l'origine avec cd ~ /.

git est une commande pour faire quelque chose depuis github. Si vous êtes invité à installer quelque chose, veuillez le suivre docilement.

Ensuite, utilisons l'OpenCV téléchargé.

$ sudo mkdir build
$ cd build

mkdir crée un répertoire de création ou un répertoire. Par ailleurs, répertoire ≒ dossier. Si vous consultez cet article, vous n'avez pas à vous soucier de la différence.

Je le rendrai disponible lorsque je passerai à la construction. Cela prend beaucoup de temps alors n'ayez pas peur.

$ sudo cmake -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D WITH_TBB=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
$ sudo make -j12
$ sudo make install

//Vérifiez si cela a fonctionné
$ echo /usr/local/lib > /etc/ld.so.conf.d/opencv.conf
$ ldconfig -v

\ est un signe que "je vais le saisir sur la ligne suivante, alors ne l'exécutez pas encore". Il peut également être écrit «\». Compilez avec make, c'est-à-dire rendez-le utilisable. -j12 spécifie le nombre de cœurs de processeur à utiliser. Si vous n'êtes pas sûr, veuillez l'omettre. echo est comme print. Je ne suis pas sûr.

Enfin, vérifiez si OpenCV est inclus. Si la version (3.4.3 cette fois) est affichée, elle réussit.

$ opencv_version

Installation de la boîte à outils CUDA

Cela rend le GPU utilisable pour un large éventail d'utilisations. https://qiita.com/okubo999/items/79e1d97a7a3a3de70de2 Pour référence.

Apportez la boîte à outils CUDA depuis le site officiel. Selon l'Aniki d'outre-mer sur le tableau d'affichage, 10.2 semble être bon, alors j'ai choisi 10.2. Post-scriptum: Si vous pensez avoir essayé TensorFlow à l'avenir, définissez-le sur 10.0. Il ne prend pas en charge 10.2.

Linux -> x84_64 -> Ubuntu -> 18.04 -> deb(network) Si vous appuyez sur, la méthode est écrite. Cependant, je vais le changer un peu à la fin.

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
$ sudo apt update
$ sudo apt -y install cuda-toolkit-10-2

Vous pouvez le télécharger avec wget. Cela vient de www + get. Puisque je ne veux que la boîte à outils cette fois, je ne spécifie que la boîte à outils à la fin.

Si cela reste tel quel, le PC ne l'utilisera pas correctement, alors ajoutez un chemin.

$ nano ~/.bashrc

Ajoutez ensuite ce qui suit à la dernière ligne:

.bashrc


## CUDA and cuDNN paths
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

nano est un éditeur de texte. Je pense que diverses choses apparaîtront ci-dessous, alors veuillez vous y référer. ^ Tels que ^ X signifie appuyer sur CTRL en même temps. Entrez «y» ou «n» lorsqu'on vous demande «OUI» ou «NON».

Enfin, réfléchissez au chemin.

$ source ~/.bashrc

//Si vous voyez différentes choses ci-dessous, vous réussissez
$ nvcc -V
$ echo $PATH

Installation de cuDNN

Cela rend CUDA facile à utiliser pour l'intelligence artificielle. Depuis le Site officiel, installez celui qui correspond à la version de CUDA. Cette fois, il est 7.6.5.

Si vous êtes invité à vous inscrire, je vous obéirai tranquillement.

Lorsque vous ouvrez l'archive Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2 Parce qu'il y a, à partir de là cuDNN Runtime Library for Ubuntu18.04 (Deb) cuDNN Developer Library for Ubuntu18.04 (Deb) cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb) Télécharger.

Si vous le téléchargez tel quel, il sera dans le dossier de téléchargement, mais il est sale alors j'ai créé un espace de travail et je l'ai mis là.

$ mkdir workspace
$ cd workspace

Après le téléchargement, accédez au chemin téléchargé (en utilisant cd). Développons-le.

$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb 
$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb 
$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.2_amd64.deb 

dpkg est un enfant qui manipule .deb.

Si vous venez jusque-là, vous êtes presque victorieux.

Apprentissage automatique

Enfin, j'entrerai dans la partie apprentissage automatique. Reportez-vous à https://qiita.com/okubo999/items/79e1d97a7a3a3de70de2

Préparation du darknet

Tout d'abord, préparez le framework darknet.

Ce sera désordonné à partir d'ici, veuillez donc créer un espace de travail et travailler dessus. (Ajout: comme l'apprentissage des données créées par moi-même ne s'est pas bien déroulé avec le darknet d'origine, je l'ai changé pour une version améliorée (?) D'Alexey.)

$ git clone https://github.com/AlexeyAB/darknet.git
$ cd darknet
$ nano Makefile

Après avoir ouvert Makefile, procédez comme suit.

Makefile


GPU=1
cuDNN=1
OPENCV=1 

Makefile est le paramètre utilisé lors de la création. Je veux utiliser GPU cette fois, donc je l'ai réécrit un peu.

Vous pouvez maintenant l'utiliser en le fabriquant.

$ make

Si vous exécutez darknet et qu'il n'y a aucune erreur, vous gagnez.

$ ./darknet 
usage: ./darknet [function]

Utilisez YOLO v3

Enfin le sujet principal. Tout d'abord, apportez les données entraînées.

$ wget https://pjreddie.com/media/files/yolov3.weights

Si wget s'arrête en raison d'une erreur, etc., vous pouvez le redémarrer en utilisant --continue. Dans ce cas, cela ressemble à ceci. $ wget --continue https://pjreddie.com/media/files/yolov3.weights

Il est enfin temps de courir.

$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Si vous obtenez l'image de sortie, vous êtes une victoire complète. Merci pour votre soutien.

YOLO s'arrête?

CUDA Error:out of memory
darknet: ./src/cuda.c:36: check_error: Assertion '0' failed.

Si vous dites quelque chose comme ça, on dit que les performances du GPU sont de la merde. Si cela se produit, supportez la netteté et supprimez les paramètres. ** darknet / cfg / yolov3.cfg ** a un paramètre de taille, alors réduisez-le par un multiple de 32.

darknet/cfg/yolov3.cfg


width=416
height=416

Il existe d'autres paramètres qui fonctionnent, mais je trouve que le redimensionnement est le plus efficace et le plus intuitif. Si vous voyez le chien devant le vélo, vous êtes diplômé de la baise. Merci pour votre soutien.

Je veux ajouter une option

Vous pouvez ajouter diverses options à yolov3, mais même si vous l'ajoutez à ce qui précède, il sera ** ignoré **. Ajoutons -dont_show pour rendre la sortie d'image poire.

//Ne pas afficher l'image de résultat
$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg -dont_show

«detect» est devenu «détecteur» et «cfg / coco.data» a été ajouté. Si vous le laissez comme "detect", une seule option passera et "test" fera apparaître une quantité ridicule de fenêtres.

Je veux faire yolov4

En fait, yolov1 ~ v4 est inclus dans «darknet». C'est facile d'essayer yolov4

$ ./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg -dont_show

Changez simplement le nombre en 3-> 4. C'est un peu plus lent, mais c'est plus précis. yolov3 a plus d'articles sur le net, mais veuillez choisir celui que vous aimez.

en conclusion

L'autre jour, mon ubuntu s'est transformé en enfer dans une chaîne de Firefox écrasée et réinstallé, alors je l'ai laissé pour rappel. J'ai erré dans WSL et ubuntu 20.04, mais la stabilité est toujours importante.

Après cela, j'ai fait mon objectif initial d'apprendre avec mes propres données voir cet article.

urlukg.jpg

Grands oreilles de chat.

Recommended Posts

Une histoire de mettre ubuntu dans le disque dur par ignorance complète et de faire yolov3
L'histoire du lancement de données BLOB depuis EXCEL dans DBUnit
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
L'histoire de l'acquisition de Java Silver en deux mois de totalement inexpérimenté.
L'histoire de l'installation de raspi-config sur Ubuntu 18.04 et de la modification des paramètres initiaux de GPIO