티스토리 뷰
다룰 내용
- 지난 포스팅에서는 설치, 다운로드 해야할 것들을 정리해 둠
- 이번에는 Visual Studio 설정 후 빌드하기와
- 실시간 스트리밍, 동영상에서 object detection 을 해보겠음
visual studio 설정 및 빌드
- 다양한 경우에 대한 설정, 빌드 방법은 깃헙의 원문을 참조할 것
- README 에 상세히 설명되어 있음: https://github.com/AlexeyAB/darknet/
→ 저도 시행착오를 거쳐 동작시킨 후 다시 기억을 더듬어 적는 것이다 보니,
따라하시다 막히시거나 추가로 설정해야 하는 부분을 찾으시면 댓글 달아주시면 큰 도움 되겠습니다.
1) darknet.sln 실행
- github 에서 다운로드 받은 darknet 소스에서 darknet.sln 실행
- Visual Studio 에서 Release , x64 를 선택
2) 솔루션 속성 >> C/C++
- 솔루션 속성 창에서 (Alt+Enter) >> C/C++ >> 추가 포함 디렉토리
- 여기에 OpenCV의 include, CUDA, cuDNN 의 경로가 포함되어 있어야 한다.
C/C++ >> 전처리기 에서 CUDNN 정의
3) 솔루션 속성 >> 링커
- 마찬가지로 OpenCV의 include, CUDA, cuDNN 의 경로가 명시되어 있어야 한다.
4) 기타등등
- src 폴더안의 모든 .c, .co and http_stream.cpp 파일을 프로젝트에 추가할 것
5) 그리고 빌드
- 여기까지 따라오시느라 수고 많으셨음.
- 그리고 빌드를 해보자 Ctrl+F5
실행 준비
yolov3.weights
- 이미 학습된 yolo v3 의 weight를 다운로드 받아서
- (빌드로 생성된) darknet.exe 파일이 있는 폴더 (darknet\build\darknet\x64) 에 복사해둔다.
- 다운로드 링크:
yolov3.cfg (236 MB COCO Yolo v3) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov3.weights yolov3-tiny.cfg (34 MB COCO Yolo v3 tiny) - requires 1 GB GPU-RAM: https://pjreddie.com/media/files/yolov3-tiny.weights yolov2.cfg (194 MB COCO Yolo v2) - requires 4 GB GPU-RAM: https://pjreddie.com/media/files/yolov2.weights yolo-voc.cfg (194 MB VOC Yolo v2) - requires 4 GB GPU-RAM: http://pjreddie.com/media/files/yolo-voc.weights yolov2-tiny.cfg (43 MB COCO Yolo v2) - requires 1 GB GPU-RAM: https://pjreddie.com/media/files/yolov2-tiny.weights yolov2-tiny-voc.cfg (60 MB VOC Yolo v2) - requires 1 GB GPU-RAM: http://pjreddie.com/media/files/yolov2-tiny-voc.weights yolo9000.cfg (186 MB Yolo9000-model) - requires 4 GB GPU-RAM: http://pjreddie.com/media/files/yolo9000.weights |
OpenCV dll
OpenCV 의 dll 두 가지를, 마찬가지로 (빌드로 생성된) darknet.exe 파일이 있는 폴더에 복사해둔다.
opencv_world340.dll opencv_ffmpeg340_64.dll |
드디어 실행
스트리밍 object detection
- 노트북 웹캠에서 나오는 실시간 스트리밍으로 object detection 을 해보자
- 그냥 아래 cmd 파일중 darknet_web_cam_voc.cmd을 실행했더니 동작함
# play video from Web-Camera number 0 rem darknet.exe detector demo data/voc.data cfg/yolov2-voc.cfg yolo-voc.weights -c 0 darknet.exe detector demo data/coco.data cfg/yolov3.cfg yolov3.weights -c 0 pause |
동영상 object detection
- 원하는 파일을 test.mp4 로 이름을 변경해서 darknet.exe 가 있는 폴더에 복사후
- darknet_yolo_v3_video.cmd 를 실행하면 된다.
darknet.exe detector demo data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 -ext_output test.mp4 pause |
참고: 깃헙 원문의 How to use
Example of usage in cmd-files from build\darknet\x64\:
- darknet\build\darknet\x64 폴더의 .cmd 를 실행
darknet_yolo_v3.cmd - initialization with 236 MB Yolo v3 COCO-model yolov3.weights & yolov3.cfg and show detection on the image: dog.jpg darknet_voc.cmd - initialization with 194 MB VOC-model yolo-voc.weights & yolo-voc.cfg and waiting for entering the name of the image file darknet_demo_voc.cmd - initialization with 194 MB VOC-model yolo-voc.weights & yolo-voc.cfg and play your video file which you must rename to: test.mp4 darknet_demo_store.cmd - initialization with 194 MB VOC-model yolo-voc.weights & yolo-voc.cfg and play your video file which you must rename to: test.mp4, and store result to: res.avi darknet_net_cam_voc.cmd - initialization with 194 MB VOC-model, play video from network video-camera mjpeg-stream (also from you phone) darknet_web_cam_voc.cmd - initialization with 194 MB VOC-model, play video from Web-Camera number #0 darknet_coco_9000.cmd - initialization with 186 MB Yolo9000 COCO-model, and show detection on the image: dog.jpg darknet_coco_9000_demo.cmd - initialization with 186 MB Yolo9000 COCO-model, and show detection on the video (if it is present): street4k.mp4, and store result to: res.avi |
How to use on the command line:
- On Linux use ./darknet instead of darknet.exe, like this:./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights
Yolo v3 COCO - image: darknet.exe detector test data/coco.data cfg/yolov3.cfg yolov3.weights -i 0 -thresh 0.25 Alternative method Yolo v3 COCO - image: darknet.exe detect cfg/yolov3.cfg yolov3.weights -i 0 -thresh 0.25 Output coordinates of objects: darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -thresh 0.25 dog.jpg -ext_output 194 MB VOC-model - image: darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights -i 0 194 MB VOC-model - video: darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights test.mp4 -i 0 194 MB VOC-model - save result to the file res.avi: darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights test.mp4 -i 0 -out_filename res.avi Alternative method 194 MB VOC-model - video: darknet.exe yolo demo yolo-voc.cfg yolo-voc.weights test.mp4 -i 0 43 MB VOC-model for video: darknet.exe detector demo data/coco.data cfg/yolov2-tiny.cfg yolov2-tiny.weights test.mp4 -i 0 Yolo v3 236 MB COCO for net-videocam - Smart WebCam: darknet.exe detector demo data/coco.data cfg/yolov3.cfg yolov3.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 194 MB VOC-model for net-videocam - Smart WebCam: darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 194 MB VOC-model - WebCamera #0: darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights -c 0 186 MB Yolo9000 - image: darknet.exe detector test cfg/combine9k.data yolo9000.cfg yolo9000.weights
Remeber to put data/9k.tree and data/coco9k.map under the same folder of your app if you use the cpp api to build an app To process a list of images data/train.txt and save results of detection to result.txt use: darknet.exe detector test data/voc.data yolo-voc.cfg yolo-voc.weights -dont_show -ext_output < data/train.txt > result.txt
|
For using network video-camera mjpeg-stream with any Android smartphone:
Download for Android phone mjpeg-stream soft: IP Webcam / Smart WebCam Smart WebCam - preferably: https://play.google.com/store/apps/details?id=com.acontech.android.SmartWebCam2 IP Webcam: https://play.google.com/store/apps/details?id=com.pas.webcam Connect your Android phone to computer by WiFi (through a WiFi-router) or USB
Start Smart WebCam on your phone Replace the address below, on shown in the phone application (Smart WebCam) and launch: 194 MB COCO-model: darknet.exe detector demo data/coco.data yolo.cfg yolo.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 194 MB VOC-model: darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 |
ToDo List
- 기약할 수는 없지만, 위의 다양한 command 들을 하나씩 테스트 해보고 싶음
- 나만의 dataset 을 만들어서 train 해보고 싶음
Trouble Shooting
Q. 빌드중 에러메시지 발생
- "the cuda toolkit v9.2 directory '' does not exist. please verify the cuda toolkit is installed properly or define the cudatoolkitdir property to resolve this error."
- cublas64_92.dll 을 찾지 못하는 경우도 있었음
A1. nVidia CUDA, cuDNN 관련한 프로그램, 폴더를 다 지우고 새로운 마음으로 다시 깔아보자
A2. 대부분은 CUDA 관련한 PATH 설정 문제임
* Visual Studio 의 CUDA 설정 관련 참고링크: https://goo.gl/94WKWt
'deep learning' 카테고리의 다른 글
이미지 임베딩이란? (0) | 2023.04.13 |
---|---|
윈도우즈에서 yolo v3 돌려보기 1/2 (0) | 2018.08.02 |
- Total
- Today
- Yesterday
- API
- golang
- agile
- JIRA
- Shortcut
- bun
- strange
- 노션
- 독서
- 제이펍
- 클린 애자일
- go
- solid
- Gin
- 2023
- 인텔리제이
- OpenAI
- github
- notion
- postgres
- Bug
- 잡학툰
- intellij
- folklore
- 체호프
- 독서후기
- websocket
- pool
- ChatGPT
- 영화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |