Jetson Nano에서 Darknet+YOLOv3
6771 단어 YOLOv3DarknetJetsonNanoJetson
소개
VGG16을 Chainer와 TensorRT로 실험한 결과, 준비한 이미지는 각각 "장자"와 "라켓"으로 추정되었다. 물론 이것은 틀렸다. 그래서 이번에는 Darknet을 시험해 같은 이미지가 어떻게 판정되는지를 확인한다.
오사라이
지금까지의 작업 결과는 github에 정리했다. 전체 스크래치에서 pipenv를 사용하여 움직이는 곳까지 확인하고 있다. 또 상위 1건의 표시였던 랭킹은 상위 10건까지 표시하도록 했다.
문제 : 아래 이미지는 무엇입니까?
Chainer에서 VGG16을 사용한 추론
자세한 내용은 Jetson Nano에서 VGG16 사용해보기을 참조하십시오.
yamamo-to@jetson-nano:~/Documents/jetson_nano/vgg16_example$ pipenv run python3 vgg16_test.py boss.jpg
0.23183 789 n04201297 shoji
0.10520 910 n04597913 wooden spoon
0.04276 915 n04613696 yurt
0.03409 752 n04039381 racket, racquet
0.02754 440 n02823428 beer bottle
0.02448 746 n04019541 puck, hockey puck
0.02100 666 n03786901 mortar
0.02028 901 n04579145 whiskey jug
0.01489 722 n03942813 ping-pong ball
0.01293 737 n03983396 pop bottle, soda bottle
1위는 장자로, 2위는 나무의 숟가락으로 나왔다.
TensorRT에서 VGG16을 사용하여 추론.
자세한 내용은 Jetson Nano에서 TensorRT를 사용한 VGG16 모델로 이미지 판별을 참조하십시오.
터미널yamamo-to@jetson-nano:~/Documents/jetson_nano/vgg16_example$ pipenv run python3 trt_infer.py vgg16.trt boss.jpg
[TensorRT] INFO: Glob Size is 587064608 bytes.
[TensorRT] INFO: Added linear block of size 12902400
[TensorRT] INFO: Added linear block of size 12845056
[TensorRT] INFO: Added linear block of size 1605632
[TensorRT] INFO: Deserialize required 3732959 microseconds.
0.12717 752 n04039381 racket, racquet
0.04638 440 n02823428 beer bottle
0.03672 898 n04557648 water bottle
0.03265 882 n04517823 vacuum, vacuum cleaner
0.02877 650 n03759954 microphone, mike
0.02658 907 n04591713 wine bottle
0.02322 619 n03637318 lampshade, lamp shade
0.01998 402 n02676566 acoustic guitar
0.01862 804 n04254120 soap dispenser
0.01577 512 n03109150 corkscrew, bottle screw
결과 1위는 라켓, 2위는 맥주병으로 추론되었다.
Darknet 준비
읽으면 요구 조건이 충족되는 것 같습니다.
요청
Jetson Nano (JetPack 4.2)
Windows or Linux
Linux (Ubuntu)
CMake >= 3.8 for modern CUDA support
3.10.2
CUDA 10.0
10.0.166
OpenCV >= 2.4
3.3.1
cuDNN >= 7.0 for CUDA 10.0
7.3.1.28
GPU with CC 1 >= 3.0
5.3
on Linux GCC or Clang, on Windows MSVC 2015/2017/2019
gcc
우선 소스 코드 다운로드.
터미널yamamo-to@jetson-nano:~/Documents$ git clone https://github.com/AlexeyAB/darknet.git
yamamo-to@jetson-nano:~/Documents$ cd darknet
yamamo-to@jetson-nano:~/Documents/darknet$
컴파일은 Makefile을 직접 편집한 후 make한다.
지금까지의 작업 결과는 github에 정리했다. 전체 스크래치에서 pipenv를 사용하여 움직이는 곳까지 확인하고 있다. 또 상위 1건의 표시였던 랭킹은 상위 10건까지 표시하도록 했다.
문제 : 아래 이미지는 무엇입니까?
Chainer에서 VGG16을 사용한 추론
자세한 내용은 Jetson Nano에서 VGG16 사용해보기을 참조하십시오.
yamamo-to@jetson-nano:~/Documents/jetson_nano/vgg16_example$ pipenv run python3 vgg16_test.py boss.jpg
0.23183 789 n04201297 shoji
0.10520 910 n04597913 wooden spoon
0.04276 915 n04613696 yurt
0.03409 752 n04039381 racket, racquet
0.02754 440 n02823428 beer bottle
0.02448 746 n04019541 puck, hockey puck
0.02100 666 n03786901 mortar
0.02028 901 n04579145 whiskey jug
0.01489 722 n03942813 ping-pong ball
0.01293 737 n03983396 pop bottle, soda bottle
1위는 장자로, 2위는 나무의 숟가락으로 나왔다.
TensorRT에서 VGG16을 사용하여 추론.
자세한 내용은 Jetson Nano에서 TensorRT를 사용한 VGG16 모델로 이미지 판별을 참조하십시오.
터미널
yamamo-to@jetson-nano:~/Documents/jetson_nano/vgg16_example$ pipenv run python3 trt_infer.py vgg16.trt boss.jpg
[TensorRT] INFO: Glob Size is 587064608 bytes.
[TensorRT] INFO: Added linear block of size 12902400
[TensorRT] INFO: Added linear block of size 12845056
[TensorRT] INFO: Added linear block of size 1605632
[TensorRT] INFO: Deserialize required 3732959 microseconds.
0.12717 752 n04039381 racket, racquet
0.04638 440 n02823428 beer bottle
0.03672 898 n04557648 water bottle
0.03265 882 n04517823 vacuum, vacuum cleaner
0.02877 650 n03759954 microphone, mike
0.02658 907 n04591713 wine bottle
0.02322 619 n03637318 lampshade, lamp shade
0.01998 402 n02676566 acoustic guitar
0.01862 804 n04254120 soap dispenser
0.01577 512 n03109150 corkscrew, bottle screw
결과 1위는 라켓, 2위는 맥주병으로 추론되었다.
Darknet 준비
읽으면 요구 조건이 충족되는 것 같습니다.
요청
Jetson Nano (JetPack 4.2)
Windows or Linux
Linux (Ubuntu)
CMake >= 3.8 for modern CUDA support
3.10.2
CUDA 10.0
10.0.166
OpenCV >= 2.4
3.3.1
cuDNN >= 7.0 for CUDA 10.0
7.3.1.28
GPU with CC 1 >= 3.0
5.3
on Linux GCC or Clang, on Windows MSVC 2015/2017/2019
gcc
우선 소스 코드 다운로드.
터미널yamamo-to@jetson-nano:~/Documents$ git clone https://github.com/AlexeyAB/darknet.git
yamamo-to@jetson-nano:~/Documents$ cd darknet
yamamo-to@jetson-nano:~/Documents/darknet$
컴파일은 Makefile을 직접 편집한 후 make한다.
yamamo-to@jetson-nano:~/Documents$ git clone https://github.com/AlexeyAB/darknet.git
yamamo-to@jetson-nano:~/Documents$ cd darknet
yamamo-to@jetson-nano:~/Documents/darknet$
diff를 취하면 다음과 같다.
터미널
yamamo-to@jetson-nano:~/Documents/darknet$ git diff
diff --git a/Makefile b/Makefile
index 7f0547d..5b32de9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
-GPU=0
-CUDNN=0
+GPU=1
+CUDNN=1
CUDNN_HALF=0
-OPENCV=0
+OPENCV=1
AVX=0
OPENMP=0
-LIBSO=0
+LIBSO=1
ZED_CAMERA=0
# set GPU=1 and CUDNN=1 to speedup on GPU
@@ -37,7 +37,7 @@ OS := $(shell uname)
# ARCH= -gencode arch=compute_60,code=sm_60
# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
-# ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
+ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
# For Jetson Tx2 or Drive-PX2 uncomment:
# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]
터미널
yamamo-to@jetson-nano:~/Documents/darknet$ make
그리고는 기다릴 뿐.
또 YOLOv3의 가중치를 떨어뜨린다.
터미널
yamamo-to@jetson-nano:~/Documents/darknet$ wget https://pjreddie.com/media/files/yolov3.weights
Darknet + YOLOv3 결과
앞의 이미지 boss.jpg
를 data 디렉토리에 넣은 다음 추론합니다.
yamamo-to@jetson-nano:~/Documents/darknet$ ./darknet detect cfg/yolov3.cfg YOLOv3.weights data/boss.jpg
결과는 ...
오, 멋지게 병으로 나왔다. YOLOv3 대단해!
참고문헌
yamamo-to@jetson-nano:~/Documents/darknet$ ./darknet detect cfg/yolov3.cfg YOLOv3.weights data/boss.jpg
CC는 C 컴파일러가 아닌 Compute Capability의 약어 ↩
Reference
이 문제에 관하여(Jetson Nano에서 Darknet+YOLOv3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamamo-to/items/85c324e076ae87ece8eb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)