본문 바로가기

AI

(9)
YOLO 학습 RTX 2060 super VS RTX 2070 super 딥러닝 등 PC를 학습시키는데 있어서 GPU가 필요하고, 일반적으로 개인이 사용하는 GPU의 성능에 따른 필요한 학습시간이 궁금했다. 그래픽 카드에 따라서 어느 정도의 성능차이가 나타나는지를 시간을 중점으로 실험했다. 실험을 대상으로 한 GPU는 RTX 2060 super와 RTX 2070 super이다. 1. PC성능 RTX 2060 super PC CPU: AMD Ryzen 3 3200G memory: DDR4 16GB GPU: NVIDIA GeForce RTX 2060 SUPER RTX 2070 super PC CPU: Intel Core i7 7700 memory: DDR4 24GB GPU: NVIDIA GeForce RTX 2070 SUPER 2. 실험 환경 이미지 수: 18,452장 서로 다른..
YOLO NVR(DVR) 이용한 실시간 감지(RTSP) YOLO는 실시간 물체 감지를 목적으로 서비스를 한다. YOLO의 사용 목적의 대부분은 실시간 물체 감지를 위해서 사용한다고 믿어 의심치 않는다. 대부분 CCTV를 NVR(DVR)에 연결해서 사용한다. 그래서 사용하려면 다소 초기 설정이 길어진다. 반대로 간단한 실험이나, 거리가 가까운 경우, IP 카메라 혹은 webcam 등을 사용해서 PC랑 직접적으로 연결하는 경우가 많기 때문에 접근이 쉬운 편이다. CCTV는 동축케이블을 이용해서 100m 이상의 거리를 연결하는 경우가 많으며, 일반적인 PC에는 동축케이블을 연결할 방법이 없기 때문에 초반 설정 작업이 필요로 한다. 이 글은 NVR(DVR)의 RTSP를 이용해서 YOLO를 실시간 streaming 한다. 요즘에 나오는 NVR(DVR)은 네트워크 기능..
YOLO image size 개인으로 만들어낸 이미지만 해도 21,000장을 넘어섰다. coco dataset의 일부와 합쳐서 사용중이니 학습에 사용하고 있는 이미지는 46,000장 가량 된다. 하지만 내가 직접 이미지를 마킹해서 학습시켜서 그런건지, 아니면 원래 내가 원하는 수준의 성능은 안나오는 건지 모르겠지만 감지 성능이 성에 차지 않았다. YOLO의 감지(detect) 능력을 조금이라도 키워 보겠다고, 방법을 찾아 다니다 보면 해외 사이트 등에서 YOLO image resize를 수정해서 사용해 보라고 조언한다. 물론 image resize를 하지 말고, height와 width를 건들지 말라고도 한다. 하지만 궁금해서 한번 해봤다. (네트워크의 size는 건들지 않았다.) ※주장: image의 height와 width가 낮..
darknet yolo 실행을 위해 필요한 프로그램 darknet windows 설치: https://github.com/AlexeyAB/darknet 1) .../build/darknet/x64 폴더로 옮긴 파일 목록 opencv_ffmpeg349.dll opencv_ffmpeg349_64.dll opencv_world349.dll cudnn64_7.dll darknet.exe darknet53.conv.74 ※다른 방법으로는 옮긴 파일들의 원래 위치를 path로 등록하는 방법이 있다. 2) 설치 프로그램 vcredist_x64.exe (msvcr100.dll) Microsoft Visual C++ 2010 SP1 재배포 가능 패키지 32비트 http://www.microsoft.com/ko-kr/download/details.aspx?id=8328 M..
YOLO 학습에 대한 잡다한 지식(기본, 배경 지식) 1. windows 버전 darknet이 darknet_no_gpu.sln 버전과 darknet.sln으로 나뉜 이유. YOLO는 joseph redmon이라는 사람이 만들어 냈다. github나 트위터 등에서는 pjreddie라는 닉네임으로 활동하고 있다. YOLO는 처음 제작되었을 때 Linux 전용으로 코딩되어 있었다. 따라서 darknet 실행 시 옵션으로 gpu를 사용할지 말 지 지정할 수가 있었다. 그러나 AlexeyAB라는 사용자가 darknet을 windows 버전에서 사용 할 수 있도록 수정했고, 이 과정에서 visual studio로 컴파일되도록 하였다. 이때 코드를 분리하면서 GPU를 사용하는 버전과 GPU를 사용하지 않는 버전을 따로 제작해야 할 필요가 있었고, 이로 인해 darkn..
YOLO 동작 시 화면에 있는 퍼센트(확률) 지우기 YOLO에서 실시간 detection 혹은 동영상 detection 등을 하게 되면 화면에 class의 name과 probability(확률)이 %로 나온다. 감지된 화면이 어지럽다고 생각하거나, 단순히 어떤 객체로 인식하는 지만 출력해 줄 필요가 있다면 그다지 유용한 기능이 아니다. 따라서 화면에서 probability가 표시 되지 않게 하기 위해서는 소스코드를 수정해줘야 한다. 환경은 windows의 darknet에서 진행했다. darknet에서 사용하는 여러 소스파일 중 image_opencv.cpp 파일에서 이를 해결 할 수 있다. image_opencv.cpp 에서 draw_detections_cv_v3를 수정하면 된다. extern "C" void draw_detections_cv_v3(mat..
YOLO 학습 환경(PC 스펙) 딥러닝, 머신러닝은 CPU 보다는 GPU를 사용해야 한다. YOLO 학습을 하는데 사용한 PC 성능은 다음과 같다. OS: Windows 10 CPU: AMD Ryzen 3 3200G RAM: 16GB GPU: NVIDIA GeForce RTX 2060 SUPER 8GB memory NVIDIA의 경우 대규모 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델로 CUDA를 지원하고 있다. 따라서 대부분 딥러닝 연구에는 NVIDIA의 그래픽카드 제품이 사용된다. CUDA는 NVIDIA 그래픽 카드에서 병렬 처리 알고리즘을 여러 표준 언어로 제공하는 만큼, C언어로 작성된 darknet의 YOLO 또한 CUDA를 사용한다. 물론 darknet YOLO는 no_gpu 버전 즉 CPU 버전을 지원하지만, 위에서 작성한 컴퓨..
YOLO mark 학습이미지 ( 마킹 크기에 대하여 ) YOLO 학습을 할 때, YOLO mark-master 라는 프로그램을 이용해서 학습시킬 데이터를 만들 수 있다. 이미지에 일일이 손으로 네모모양 box로 영역을 설정하여 해당 부분이 학습될 수 있도록 해야한다. YOLO에서 학습을 하는데 사용한 coco dataset의 markup영역을 확인하면, 의외로 꼼꼼히 marking 했고, 상당 수의 makring을 했다는 것을 알 수 있다. 기본 제공되는 mark를 보고 YOLO에서는 어떤 기준을 가지고 mark를 했는지 나름대로 분석해봤다. *마킹 분석( 기본 이미지 마킹 방식 ) 1. 학습시키고자 하는 물체의 끝선에 맞춰서 영역을 지정함. 2. 물체가 작던지, 크던지, 사람이 인지 할 수 있는 수준의 물체이고, 학습 시켜야 할 물체라면 반드시 마킹한다. ..