개틀링
개틀링이란 무엇입니까?
Gatling은 성능과 안정성을 위해 설계된 강력한 오픈 소스 부하 테스트 도구입니다. 실제 사용자 행동을 시뮬레이션하고 스트레스 상황에서 애플리케이션의 성능을 측정하기 위한 포괄적인 솔루션을 제공합니다.
동기 부여
Gatling은 다음과 같은 기능을 제공합니다.
1. 애플리케이션의 한계를 이해하십시오. 병목 현상과 성능 문제가 사용자에게 영향을 미치기 전에 식별하십시오.
2. 사용자 경험 개선: 애플리케이션이 최대 트래픽을 처리하고 모든 사용자에게 원활한 성능을 제공할 수 있는지 확인하십시오.
3. 귀중한 통찰력 확보: 테스트 결과를 분석하여 애플리케이션의 성능, 확장성 및 안정성을 최적화합니다.
질문이 있으신가요? 도움이 필요하세요?
도움과 지원을 받으려면 다음을 수행할 수 있습니다.
1. 공식 문서를 참조하세요. 자세한 튜토리얼, 가이드, API 참조를 살펴보세요.
2. Gatling 커뮤니티 포럼에 가입하세요. 다른 사용자와 소통하고, 경험을 공유하고, 조언을 구하세요.
3. 문제 보고: 버그가 발생하면 공식 Gatling GitHub 저장소에 문제를 제기하세요.
파트너
Gatling은 다양한 파트너와 협력하여 포괄적인 로드 테스트 솔루션을 제공합니다. 전문 통합 및 지원 서비스를 위한 파트너 에코시스템을 살펴보세요.
다크넷 개체 탐지 프레임워크 및 YOLO
Darknet은 C, C++ 및 CUDA로 작성된 오픈 소스 신경망 프레임워크로 속도와 효율성으로 유명합니다.
YOLO(You Only Look Once)는 Darknet 프레임워크와 원활하게 통합되는 최첨단 실시간 객체 감지 시스템입니다.
Darknet/YOLO 생태계를 살펴보세요:
1. Hank.ai의 기여: Hank.ai가 Darknet/YOLO 커뮤니티에 어떻게 적극적으로 기여하는지 알아보세요.
2. 공식 웹사이트: 다크넷/YOLO 웹사이트에서 최신 정보, 자료, 뉴스에 접속하세요.
3. 종합 FAQ: Darknet/YOLO에 관해 자주 묻는 질문에 대한 답변을 찾아보세요.
4. Discord 서버에 가입하세요. 다른 Darknet/YOLO 매니아들과 연결하고, 아이디어를 토론하고, 지원을 받으세요.
서류
1. YOLOv7: YOLOv7의 최신 발전 사항을 살펴보세요.
2. Scaled-YOLOv4: Scaled-YOLOv4 아키텍처와 성능 향상에 대해 알아보세요.
3. YOLOv4: YOLOv4의 주요 기능과 혁신을 이해합니다.
4. YOLOv3: YOLO의 기원과 YOLOv3의 기본 원칙에 대해 알아보세요.
일반 정보
Darknet/YOLO 프레임워크는 속도와 정확성 측면에서 다른 프레임워크 및 YOLO 버전보다 지속적으로 성능이 뛰어납니다.
완전히 무료이며 오픈 소스이므로 라이선스 제한 없이 프로젝트와 제품에 통합할 수 있습니다.
2024년 10월에 출시된 Darknet V3 "Jazz"는 NVIDIA RTX 3090 GPU를 사용하여 LEGO 데이터 세트 비디오를 최대 1000FPS로 처리하는 놀라운 성능을 달성합니다.
다크넷 버전
1. 버전 0.x: Joseph Redmon이 2013년부터 2017년까지 개발한 원본 Darknet 도구입니다.
2. 버전 1.x: Alexey Bochkovskiy가 2017년부터 2021년까지 유지 관리하는 인기 있는 Darknet 저장소입니다.
3. 버전 2.x "OAK": Hank.ai가 후원하고 2023년부터 Stéphane Charette가 유지 관리하는 Darknet 저장소입니다. 버전 번호 지정을 도입하고 다음을 포함하여 상당한 개선을 가져왔습니다.
- Windows 및 Linux용 CMake를 사용한 통합 빌드 프로세스.
- C++ 컴파일러로의 코드베이스 변환.
- 훈련 중 Chart.png 시각화가 개선되었습니다.
- 버그 수정 및 성능 최적화.
4. 버전 2.1: v2 브랜치에서 사용할 수 있는 버전 2.x의 마지막 브랜치입니다.
5. 버전 3.x "JAZZ": 2024년 10월에 출시된 최신 버전으로 다음 기능을 제공합니다.
- 레거시 및 유지 관리되지 않는 명령을 제거했습니다.
- 훈련과 추론 모두에 대한 광범위한 성능 최적화.
- 레거시 C API를 수정했습니다.
- 새로운 Darknet V3 C 및 C++ API.
- src-examples의 확장된 샘플 코드 및 애플리케이션.
MSCOCO 사전 훈련된 가중치
몇몇 인기 있는 YOLO 버전은 MSCOCO 데이터 세트에서 사전 훈련되어 cfg/coco.names 파일에 나열된 80개의 객체 클래스를 제공합니다.
다음을 포함하여 기타 데이터세트와 사전 훈련된 가중치를 테스트에 사용할 수 있습니다.
레고 기어
롤로덱스
다음 리포지토리를 포함하여 다양한 위치에서 MSCOCO 사전 훈련된 가중치를 다운로드하세요.
| 버전 | 작은 | 전체 |
|---|---|---|
| YOLOv2(2016년 11월) | yolov2-tiny.weights | yolov2-full.weights |
| YOLOv3(2018년 5월) | yolov3-tiny.weights | yolov3-full.weights |
| YOLOv4(2020년 5월) | yolov4-tiny.weights | yolov4-full.weights |
| YOLOv7(2022년 8월) | yolov7-tiny.weights | yolov7-full.weights |
MSCOCO 사전 훈련된 가중치를 사용한 예:
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
사용자는 자신의 네트워크를 훈련하도록 권장되며 MSCOCO는 주로 테스트용이라는 점을 기억하십시오.
건물
Darknet에는 C++17 이상, OpenCV가 필요하며 빌드 자동화를 위해 CMake를 사용합니다.
중요 참고 사항: 이 지침은 2023년 8월 이후 Darknet 구축을 위해 업데이트되었습니다. 이전 튜토리얼을 따라가다가 문제가 발생하는 경우 이 README에서 최신 구축 단계를 참조하세요.
구글 코랩
아래 Linux 지침을 따르세요. 훈련과 같은 특정 작업을 위해 colab 하위 디렉터리에서 Jupyter 노트북을 살펴보세요.
리눅스 CMake 방법
1. 필요한 종속성을 설치합니다.
- sudo apt-get 설치 빌드 필수 git libopencv-dev cmake
2. Darknet 저장소를 복제합니다.
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. 빌드 디렉터리를 생성합니다:
- cd darknet mkdir buildcd 빌드
4. 다크넷 구성 및 구축:
- cmake -DCMAKEBUILDTYPE=릴리스 ..
- -j4 패키지 만들기
5. .deb 패키지를 설치합니다.
- sudo dpkg -i darknet-VERSION.deb
6. 설치를 확인합니다.
- 다크넷 버전
선택 사항: GPU 가속을 위해 CUDA 또는 CUDA+cuDNN을 설치합니다.
1. CUDA를 다운로드하고 설치합니다.
- https://developer.nvidia.com/cuda-downloads
2. cuDNN 다운로드 및 설치:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3. CUDA 설치 확인:
-nvcc
- 엔비디아-smi
4. 다크넷 재구축:
- cmake -DCMAKEBUILDTYPE=릴리스 ..
- -j4 패키지 만들기
5. 업데이트된 .deb 패키지를 설치합니다.
- sudo dpkg -i darknet-VERSION.deb
Windows CMake 메서드
1. 필요한 종속성을 설치합니다.
- Winget 설치 Git.Git
- Winget 설치 Kitware.CMake
-winget 설치 nsis.nsis
- Winget 설치 Microsoft.VisualStudio.2022.Community
2. Visual Studio 설치 수정:
- "Visual Studio 설치 프로그램"을 엽니다.
- '수정'을 선택하세요.
- "C++를 사용한 데스크톱 개발"을 선택합니다.
- '수정'과 '예'를 클릭하세요.
3. Microsoft VCPKG를 설치합니다.
- VS 2022(PowerShell 아님)용 개발자 명령 프롬프트를 엽니다.
- cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe 통합 설치 .vcpkg.exe 통합 powershell.vcpkg.exe 설치 opencv[contrib ,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
4. Darknet 저장소를 복제합니다.
- cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknet
5. 빌드 디렉터리를 생성합니다:
- mkdir buildcd 빌드
6. 다크넷 구성 및 구축:
- cmake -DCMAKEBUILDTYPE=릴리스 -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
- msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
- msbuild.exe /property:Platform=x64;Configuration=PACKAGE.vcxproj 릴리스
7. 필요한 경우 CUDA DLL을 복사합니다.
- 누락된 CUDA DLL 오류가 발생하면 해당 오류를 출력 디렉터리에 복사하세요.
- "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease를 복사합니다.
8. msbuild를 다시 실행하여 NSIS 설치 패키지를 생성합니다.
- msbuild.exe /property:Platform=x64;Configuration=PACKAGE.vcxproj 릴리스
9. NSIS 설치 마법사를 실행합니다:
- darknet-VERSION.exe
10. 설치 확인:
- C:프로그램 파일Darknetbindarknet.exe 버전
선택 사항: GPU 가속을 위해 CUDA 또는 CUDA+cuDNN을 설치합니다.
1. CUDA를 다운로드하고 설치합니다.
- https://developer.nvidia.com/cuda-downloads
2. cuDNN 다운로드 및 설치:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. cuDNN의 압축을 풀고 디렉터리를 복사합니다.
- C:/Program Files/NVIDIA GPU 컴퓨팅 툴킷/CUDA/[버전]
4. 다크넷 재구축:
- CUDA 설치 후 6~8단계를 반복하세요.
다크넷 사용
CLI
명령:
다크넷 도움말
다크넷 버전
이미지 예측:
V2: 다크넷 탐지기 테스트 cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
출력 좌표:
V2: 다크넷 탐지기 테스트 Animals.data Animals.cfg Animalsbest.weights -extoutput dog.jpg
V3: darknet01inference_images 동물 개.jpg
DarkHelp: DarkHelp --json Animals.cfg Animals.names Animals_best.weights dog.jpg
비디오 처리:
V2: 다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
V3: darknet03display_videos Animals.cfg test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
웹캠:
V2: 다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -c 0
V3: darknet08display_webcam 동물
결과를 비디오에 저장:
V2: 다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideos멀티스레드 Animals.cfg Animals.names Animals_best.weights test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
JSON 출력:
V2: 다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson 동물 image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
특정 GPU:
V2: 다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
정확성:
다크넷 탐지기 지도 Driving.data Driving.cfg Driving_best.weights ...
다크넷 탐지기 맵 Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
앵커:
다크넷 탐지기 calcanchors Animals.data -numof_clusters 6 -너비 320 -높이 256
훈련
DarkMark: 주석 및 교육을 위해 DarkMark를 활용합니다. 이는 새로운 신경망을 훈련하는 데 권장되는 접근 방식입니다.
수동 설정:
1. 프로젝트 디렉터리를 생성합니다(예: ~/nn/animals/).
2. 구성 파일 복사: cfg/yolov4-tiny.cfg
3. Animals.names 파일을 만듭니다. 다음과 같은 클래스를 나열합니다(한 줄에 하나씩).
- 개
- 고양이
- 새
- 말
4. Animals.data 파일을 생성합니다.
- 수업 = 4
- 기차 = /home/username/nn/animals/animals_train.txt
- 유효한 = /home/username/nn/animals/animals_valid.txt
- 이름 = /home/username/nn/animals/animals.names
- 백업 = /home/사용자 이름/nn/animals
5. 데이터 세트 폴더를 만듭니다. 이미지와 해당 주석 파일(.txt)을 YOLO 형식으로 저장합니다.
6. Animalstrain.txt 및 Animalsvalid.txt를 생성합니다. 훈련 및 검증을 위한 이미지를 나열합니다.
7. Animals.cfg를 수정합니다.
- 배치 = 64
- 하위 구분 = 1
- max_batches = 8000 (4개 클래스 * 2000)
- 걸음 수 = 6400,7200
- 너비 = ...
- 키 = ...
- 수업 = 4
- 필터 값을 업데이트합니다(예: (4 + 5) * 3 = 27).
8. 훈련 시작: cd ~/nn/animals/ darknet detector -map -dont_show train Animals.data Animals.cfg
훈련 매개변수:
--자세한 출력을 위한 자세한 정보
기타 도구 및 링크
DarkMark: Darknet을 위한 프로젝트 관리, 이미지 주석 및 파일 생성.
DarkHelp: 대체 CLI, 이미지 타일링, 개체 추적 및 강력한 C++ API.
Darknet/YOLO FAQ: 일반적인 질문에 대한 광범위한 리소스입니다.
Stéphane의 YouTube 채널: 튜토리얼 및 예제 비디오.
Darknet/YOLO Discord 서버: 커뮤니티 지원 및 토론.
로드맵
완전한:
훈련 중 qsort()에 대한 std::sort()
check_mistakes, getchar() 및 system() 제거
C++ 컴파일러 지원(Linux의 g++, Windows의 VisualStudio)
Windows 빌드 수정
Python 지원 수정
다크넷 라이브러리 빌드
예측 라벨('알파벳' 코드)
CUDA/GPU 코드 재활성화
CUDNN 다시 활성화
CUDNN 절반 다시 활성화
하드코딩되지 않은 CUDA 아키텍처
CUDA 버전 정보 개선
AVX 다시 활성화
이전 솔루션 및 Makefile 제거
선택사항이 아닌 종속성으로서의 OpenCV
이전 pthread 라이브러리 종속성 제거
STB 제거
새로운 CUDA 감지를 위해 CMakeLists.txt 재작성
"알파벳" 코드 및 데이터/레이블 이미지 제거
소스 외부 빌드
향상된 버전 번호 출력
훈련 및 추론을 위한 성능 최적화
가능한 경우 참조별 전달
.hpp 파일을 정리했습니다.
darknet.h를 다시 작성함
cv::void* 캐스팅 대신 매트 사용
내부 이미지 구조 사용 수정
ARM 기반 Jetson 장치에 대한 빌드 수정 사항
V3의 Python API 수정
단기 목표:
printf()에 대한 std::cout
Zed 카메라 지원
향상된 명령줄 구문 분석
중기 목표:
std::string을 위해 char* 코드 제거
컴파일러 경고 정리
cv::Mat 사용 개선
이전 목록 기능을 std::Vector 또는 std::list로 대체
1채널 회색조 이미지 지원
N채널 이미지 지원(N > 3)
지속적인 코드 정리
장기 목표:
모든 GPU에 대한 CUDA/CUDNN 수정
CUDA+cuDNN 코드 재작성
비 NVIDIA GPU 지원
회전된 경계 상자 및 각도 지원
키포인트 및 뼈대
히트맵
분할