Si vous le remarquez, il a été mis à jour pour la première fois depuis plus d'un an ... (^^ ;;;
Récemment, je n'ai pas touché Python ou OpenCV car je n'utilise que Java ou la programmation professionnelle. Je n'ai donc pas suivi les dernières tendances en matière de détection et de reconnaissance d'objets, mais depuis l'année dernière, CornerNet-Lite a été un sujet brûlant, et il semble que CornerNet-Squeeze soit plus rapide que yolo v3, donc je vais créer un environnement et expérimenter avec Max-kun par reconnaissance d'objets. .. Voir ci-dessous pour plus de détails sur les tendances.
https://opencv.org/latest-trends-in-object-detection-from-cornernet-to-centernet-explained-part-ii-cornernet-lite/
Voir ↓ pour un article en japonais facile à comprendre sur le mécanisme de CornerNet. https://engineer.dena.jp/2019/07/cv-papers-19-keypoint-object-detection.html En un mot, CornerNet semble être un mécanisme qui crée une carte thermique, estime les coins d'un rectangle et détecte et reconnaît les objets.
Donc, comme indiqué ci-dessous, ce serait mieux s'il était construit dans l'environnement Anaconda, mais l'environnement pip3 a déjà été construit, et il y a concurrence avec Anaconda ([conda et pip: Danger de mélange](http: // onoz000.). hatenablog.com/entry/2018/02/11/142347)) C'est ennuyeux, donc je l'ai construit sans utiliser Anaconda, donc je vais en garder un journal.
https://github.com/princeton-vl/CornerNet-Lite
Accédez à l'URL ci-dessous et cliquez en fonction de votre environnement pour afficher la commande. https://pytorch.org/
QUICK START LOCALLY Cette partie!
Mon environnement est Windows et le gestionnaire de packages est pip, Python 3.7.4, cuda10.1.
C:\>pip3 install torch===1.4.0 torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html
Looking in links: https://download.pytorch.org/whl/torch_stable.html
Collecting torch===1.4.0
Downloading https://download.pytorch.org/whl/cu101/torch-1.4.0-cp37-cp37m-win_amd64.whl (796.8MB)
|████████████████████████████████| 796.8MB 45kB/s
Collecting torchvision===0.5.0
Using cached https://files.pythonhosted.org/packages/7d/3e/2b5ddf744226159dc90a52f0d044c0de7c5ca4f42d12a350a674ebb6fb2a/torchvision-0.5.0-cp37-cp37m-win_amd64.whl
Requirement already satisfied: six in c:\python\python37\lib\site-packages (from torchvision===0.5.0) (1.12.0)
Requirement already satisfied: pillow>=4.1.1 in c:\python\python37\lib\site-packages (from torchvision===0.5.0) (6.1.0)
Requirement already satisfied: numpy in c:\python\python37\lib\site-packages (from torchvision===0.5.0) (1.17.2)
Installing collected packages: torch, torchvision
Found existing installation: torch 1.0.1
Uninstalling torch-1.0.1:
Successfully uninstalled torch-1.0.1
Found existing installation: torchvision 0.4.0
Uninstalling torchvision-0.4.0:
Successfully uninstalled torchvision-0.4.0
Successfully installed torch-1.4.0 torchvision-0.5.0
C:\>
Si avec succès s'affiche, vous avez terminé.
Obtenez la version pytorch de CornerNet-Lite à partir de ce qui suit et exécutez-la.
https://github.com/princeton-vl/CornerNet-Lite.git
C:\>cd github
C:\github>git clone https://github.com/princeton-vl/CornerNet-Lite.git
Cloning into 'CornerNet-Lite'...
remote: Enumerating objects: 75, done.
remote: Total 75 (delta 0), reused 0 (delta 0), pack-reused 75
Unpacking objects: 100% (75/75), done.
Exécutez make, mais supposez que l'environnement mingw a été construit.
C:\github\CornerNet-Lite\core\external>mingw32-make
python setup.py build_ext --inplace
Traceback (most recent call last):
File "setup.py", line 4, in <module>
from Cython.Build import cythonize
ModuleNotFoundError: No module named 'Cython'
Makefile:2: recipe for target 'all' failed
mingw32-make: *** [all] Error 1
Aucun module nommé 'Cython' n'est affiché, donc installez Cython avec pip. En fonction de l'environnement construit, d'autres modules peuvent également indiquer Aucun module nommé. Dans ce cas, évaluez le message d'erreur qui apparaît et installez le module.
Un package pour accélérer Python. Voir ↓ https://qiita.com/pashango2/items/45cb85390193d97523ca
C:\>pip3 install cython
Collecting cython
Downloading https://files.pythonhosted.org/packages/1f/be/b14be5c3ad1ff73096b518be1538282f053ec34faaca60a8753d975d7e93/Cython-0.29.14-cp37-cp37m-win_amd64.whl (1.7MB)
|████████████████████████████████| 1.7MB 6.4MB/s
Installing collected packages: cython
Successfully installed cython-0.29.14
C:\>
prendre le coeur…
C:\github\CornerNet-Lite\core\external>mingw32-make
python setup.py build_ext --inplace
Compiling bbox.pyx because it changed.
Compiling nms.pyx because it changed.
[1/2] Cythonizing bbox.pyx
C:\Python\Python37\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\github\CornerNet-Lite\core\external\bbox.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[2/2] Cythonizing nms.pyx
C:\Python\Python37\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\github\CornerNet-Lite\core\external\nms.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
running build_ext
building 'bbox' extension
creating build
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Python\Python37\lib\site-packages\numpy\core\include -IC:\Python\Python37\include -IC:\Python\Python37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\shared" -IC:\opencv3.4.0\sources\include\opencv2 -IC:\opencv3.4.0\sources\include -IC:\opencv3.4.0\build\include\opencv2 -IC:\opencv3.4.0\build\include -IC:\opencv\build\include /Tcbbox.c /Fobuild\temp.win-amd64-3.7\Release\bbox.obj -Wno-cpp -Wno-unused-function
cl: erreur de ligne de commande D8021: l'argument numérique «/ Wno-cpp» n'est pas valide.
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
Makefile:2: recipe for target 'all' failed
mingw32-make: *** [all] Error 1
C:\github\CornerNet-Lite\core\external>
J'obtiens toujours une erreur. L'argument numérique '/ Wno-cpp' n'est pas valide. on m'a dit Pour le moment, dans C: \ github \ CornerNet-Lite \ core \ external \ setup.py
extra_compile_args=['-Wno-cpp', '-Wno-unused-function']
Vous n'en avez pas besoin car l'option de compilation n'est pas valide, non? Voilà pourquoi
extra_compile_args=[]
J'ai perdu l'argument et ré-exécuté.
C:\github\CornerNet-Lite\core\external>mingw32-make
~~~~
Omis en chemin
~~~~
md64.lib
Création de la bibliothèque build \ temp.win-amd64-3.7 \ Release \ nms.cp37-win_amd64.lib et object build \ temp.win-amd64-3.7 \ Release \ nms.cp37-win_amd64.exp
Je génère du code.
La génération du code est terminée.
rm -rf build
La génération va bien avec.
Les données d'entraînement sont MS COCO. https://github.com/princeton-vl/CornerNet-Lite#training-and-evaluation
Comme indiqué dans Documentation, les trois fichiers de modèle créés sont acquis et placés.
CornerNet-Saccade CornerNet-Saccade model CornerNet_Saccade_500000.pkl(447M) https://drive.google.com/file/d/1MQDyPRI0HgDHxHToudHqQ-2m8TVBciaa/view?usp=sharing Téléchargez-le et placez-le ci-dessous.
C:\github\CornerNet-Lite\cache\nnet\CornerNet_Saccade\
CornerNet-Squeeze CornerNet-Squeeze model CornerNet_Squeeze_500000.pkl(122M) https://drive.google.com/file/d/1qM8BBYCLUBcZx_UmLT0qMXNTh-Yshp4X/view?usp=sharing Téléchargez-le et placez-le ci-dessous.
C:\github\CornerNet-Lite\cache\nnet\CornerNet_Squeeze\
CornerNet CornerNet model CornerNet_500000.pkl(768M) https://drive.google.com/file/d/1e8At_iZWyXQgLlMwHkB83kN-AN85Uff1/view?usp=sharing Téléchargez-le et placez-le ci-dessous.
C:\github\CornerNet-Lite\cache\nnet\CornerNet\
Exécutez la commande suivante.
C:\github\CornerNet-Lite>python demo.py
Traceback (most recent call last):
File "demo.py", line 7, in <module>
detector = CornerNet_Saccade()
File "C:\github\CornerNet-Lite\core\detectors.py", line 38, in __init__
from .test.cornernet_saccade import cornernet_saccade_inference
File "C:\github\CornerNet-Lite\core\test\__init__.py", line 1, in <module>
from .cornernet import cornernet
File "C:\github\CornerNet-Lite\core\test\cornernet.py", line 7, in <module>
from tqdm import tqdm
ModuleNotFoundError: No module named 'tqdm'
C:\github\CornerNet-Lite>
ModuleNotFoundError: Aucun module nommé 'qdm', installez donc tqdm avec pip.
C:\>pip3 install tqdm
Collecting tqdm
Downloading https://files.pythonhosted.org/packages/72/c9/7fc20feac72e79032a7c8138fd0d395dc6d8812b5b9edf53c3afd0b31017/tqdm-4.41.1-py2.py3-none-any.whl (56kB)
|████████████████████████████████| 61kB 4.1MB/s
Installing collected packages: tqdm
Successfully installed tqdm-4.41.1
C:\>
Alors, réessayez.
C:\github\CornerNet-Lite>python demo.py
total parameters: 116969339
loading from C:\github\CornerNet-Lite\core\..\cache\nnet\CornerNet_Saccade\CornerNet_Saccade_500000.pkl
C:\Python\Python37\lib\site-packages\torch\nn\functional.py:2506: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4.0. Please specify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details.
"See the documentation of nn.Upsample for details.".format(mode))
Les fichiers suivants sont créés dans C: \ github \ CornerNet-Lite.
demo_out.jpg Comme ça, Borzoi le reconnaît correctement comme un chien, et SUP reconnaît également les planches de surf et les personnes (huileurs).
En regardant le journal
loading from C:\github\CornerNet-Lite\core\..\cache\nnet\CornerNet_Saccade\CornerNet_Saccade_500000.pkl
Il est devenu. J'utilise CornerNet-Saccade et ce n'est pas le sujet CornerNet-Squeeze qui est plus rapide que yolo v3, donc je vais changer demo.py.
!/usr/bin/env python
import cv2
from core.detectors import CornerNet_Squeeze
from core.vis_utils import draw_bboxes
detector = CornerNet_Squeeze()
image = cv2.imread("demo.jpg ")
image = cv2.imread("max_kun.jpg ")
bboxes = detector(image)
image = draw_bboxes(image, bboxes)
cv2.imwrite("demo_out_max_kun.jpg ", image)
Puis exécutez-le.
C:\github\CornerNet-Lite>python demo2.py
total parameters: 31771852
loading from C:\github\CornerNet-Lite\core\..\cache\nnet\CornerNet_Squeeze\CornerNet_Squeeze_500000.pkl
C:\github\CornerNet-Lite>
Le résultat ressemble à ceci. Umu. La détection d'objet n'a pas été effectuée avant la reconnaissance d'objet. De plus, il reconnaît Keira comme un oiseau. La précision n'est-elle pas bonne? ?? ??
En regardant l'AP des données COCO dans Documentation, Est-il supérieur à yolo v3?
YOLOv3 33,0% à 39 ms CornerNet-Squeeze est de 34,4% en 30 ms CornerNet-Saccade est de 43,2% à 190 ms
La précision augmente.
L'image lorsqu'elle est reconnue par yolo v3 est comme ça.
Voir ici l'article sur l'exécution de yolo v3 avec pytorch ↓. https://qiita.com/goodboy_max/items/b75bb9eea52831fcdf15
CornerNet-Squeeze n'est-il pas bon pour reconnaître et appliquer des images différentes des données COCO? Parce que l'image était grossière? Ou avez-vous choisi l'option de compilation? ?? ??
Le mystère s'approfondit ...
https://opencv.org/latest-trends-in-object-detection-from-cornernet-to-centernet-explained-part-ii-cornernet-lite/ https://engineer.dena.jp/2019/07/cv-papers-19-keypoint-object-detection.html https://qiita.com/sounansu/items/9a6caf1ac5e78aefaeae https://qiita.com/pashango2/items/45cb85390193d97523ca
Recommended Posts