HmacManager
요약
다운코드 편집기는 ASP.NET Core 애플리케이션용 HMAC 인증 도구인 HmacManager를 제공하여 애플리케이션에 대한 원활한 통합과 강력한 보안을 제공합니다.
특징
HMAC 인증: HmacManager는 HMAC 인증을 제공하므로 ASP.NET Core API에 보안 인증 계층을 추가할 수 있습니다.
간편한 구성: 간단한 구성 옵션을 통해 애플리케이션에 HMAC 인증을 신속하게 통합할 수 있습니다.
사용자 정의 옵션: HmacManager는 필요에 따라 구성할 수 있도록 사용자 정의 옵션을 제공합니다.
강화된 보안: HMAC 인증은 HMAC 해싱 알고리즘을 사용하여 요청을 인증함으로써 API의 보안을 강화합니다.
설치
HmacManager는 NuGet에서 사용할 수 있습니다.
`배쉬
dotnet 패키지 HmacManager 추가
`
자원
추가 자료: 공식 문서
샘플 코드: GitHub 저장소
다크넷 개체 탐지 프레임워크 및 YOLO
!darknet 및 hank.ai 로고
Darknet은 C, C++ 및 CUDA로 작성된 오픈 소스 신경망 프레임워크입니다.
YOLO(You Only Look Once)는 Darknet 프레임워크에서 실행되는 고급 실시간 표적 탐지 시스템입니다.
1. 논문
YOLOv7: 논문 링크
Scaled-YOLOv4: 논문 링크
YOLOv4: 논문 링크
YOLOv3: 논문 링크
2. 일반정보
Darknet/YOLO 프레임워크는 속도와 정확성 면에서 다른 프레임워크와 YOLO 버전보다 계속해서 뛰어난 성능을 발휘합니다.
프레임워크는 완전 무료이며 오픈 소스입니다. 라이센스나 비용 없이 Darknet/YOLO를 상업용 제품을 포함한 기존 프로젝트 및 제품에 통합할 수 있습니다.
2024년 10월에 출시된 Darknet V3("Jazz")는 NVIDIA RTX 3090 GPU를 사용할 때 최대 1000FPS에서 LEGO 데이터세트 비디오를 정확하게 실행할 수 있습니다. 즉, 각 비디오 프레임이 Darknet에서 읽고 크기를 조정하고 처리하는 데 1밀리초 이하가 걸립니다. /YOLO(초)입니다.
Darknet/YOLO Discord 서버에 가입하세요: https://discord.gg/zSq8rtW
Darknet/YOLO의 CPU 버전은 Raspberry Pi, 클라우드 서버, Colab 서버, 데스크톱, 노트북 및 고급 교육 장비와 같은 간단한 장치에서 실행될 수 있습니다. Darknet/YOLO의 GPU 버전에는 NVIDIA CUDA를 지원하는 GPU가 필요합니다.
Darknet/YOLO는 Linux, Windows 및 Mac에서 잘 작동하는 것으로 알려져 있습니다. 아래 빌드 지침을 참조하세요.
3. 다크넷 버전
버전 0.x: Joseph Redmon이 2013~2017년에 작성한 원본 Darknet 도구에는 버전 번호가 없습니다.
버전 1.x: 2017년부터 2021년까지 Alexey Bochkovskiy가 관리하는 다음 인기 Darknet 저장소에도 버전 번호가 없습니다.
버전 2.x("OAK"): Hank.ai가 후원하고 2023년부터 Stéphane Charette가 관리하는 Darknet 저장소는 버전 명령을 갖춘 최초의 저장소입니다. 2023년부터 2024년 말까지 버전 2.x "OAK"로 돌아갑니다.
버전 3.x(“JAZZ”): 2024년 중반에 시작되는 다음 개발 단계, 2024년 10월 출시. 버전 명령은 이제 3.x "JAZZ"를 반환합니다.
4. MSCOCO 사전 훈련 가중치
편의를 위해 YOLO의 여러 인기 버전이 MSCOCO 데이터세트에 대해 사전 훈련되었습니다. 이 데이터 세트에는 80개의 카테고리가 포함되어 있으며 텍스트 파일 cfg/coco.names에서 볼 수 있습니다.
LEGO Gears 및 Rolodex와 같이 Darknet/YOLO 테스트에 사용할 수 있는 다른 더 간단한 데이터 세트와 사전 훈련된 가중치가 있습니다. 자세한 내용은 Darknet/YOLO FAQ를 참조하세요.
MSCOCO 사전 훈련된 가중치는 다양한 위치나 이 저장소에서 다운로드할 수 있습니다.
* YOLOv2(2016년 11월)
*YOLOv2-작은
*YOLOv2-전체
* YOLOv3(2018년 5월)
* YOLOv3-작은
*YOLOv3-전체
* YOLOv4(2020년 5월)
* YOLOv4-작은
*YOLOv4-전체
* YOLOv7(2022년 8월)
* YOLOv7-작은
*YOLOv7-전체
MSCOCO 사전 훈련된 가중치는 데모 목적으로만 사용됩니다. 해당 .cfg 및 .names 파일은 cfg 디렉터리에 있습니다. 예제 명령:
`배쉬
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는 모든 것이 정상인지 확인하는 데 자주 사용됩니다.
5. 빌드
과거(2023년 이전)의 다양한 구축 방식이 하나의 통합 솔루션으로 병합되었습니다. Darknet에서는 C++17 이상, OpenCV 및 CMake를 사용하여 필요한 프로젝트 파일을 생성해야 합니다.
Darknet/YOLO를 구축, 설치, 실행하기 위해 C++를 알 필요는 없습니다. 마치 자동차를 운전하기 위해 정비공이 될 필요가 없는 것과 같습니다.
5.1 구글 코랩
Google Colab 지침은 Linux 지침과 동일합니다. 여러 Jupyter 노트북은 새 네트워크 훈련과 같은 특정 작업을 수행하는 방법을 보여줍니다.
colab 하위 디렉터리에서 노트북을 확인하거나 아래 Linux 지침을 따르세요.
5.2 리눅스 CMake 방법
Linux에서의 Darknet 빌드 튜토리얼
`배쉬
sudo apt-get 설치 빌드 필수 git libopencv-dev cmake mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 패키지 sudo dpkg -i darknet-VERSION.deb
`
5.3 윈도우 CMake 방법
이 지침에서는 Windows 11 22H2를 새로 설치한다고 가정합니다.
`배쉬
Winget 설치 Git.Git Winget 설치 Kitware.CMake Winget 설치 nsis.nsis Winget 설치 Microsoft.VisualStudio.2022.Community
`
그런 다음 C++ 애플리케이션에 대한 지원을 포함하도록 Visual Studio 설치를 수정해야 합니다.
* Windows 시작 메뉴를 클릭하고 Visual Studio 설치 프로그램을 실행합니다.
* "편집"을 클릭하세요.
* "C++를 사용한 데스크톱 개발"을 선택합니다.
* 오른쪽 하단의 '수정'을 클릭한 후 '예'를 클릭하세요.
모든 항목을 다운로드하고 설치한 후 "Windows 시작" 메뉴를 다시 클릭하고 "VS 2022용 개발자 명령 프롬프트"를 선택합니다. PowerShell을 사용하여 이러한 단계를 수행하지 마세요. 그렇지 않으면 문제가 발생합니다!
고급 사용자:
* 개발자 명령 프롬프트를 실행하는 것 외에도 일반 명령 프롬프트 또는 장치에 SSH를 사용하여 "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat"를 수동으로 실행할 수도 있습니다.
위의 지침을 따르고 개발자 명령 프롬프트(PowerShell이 아님!)를 실행한 후 다음 명령을 실행하여 Microsoft VCPKG를 설치합니다. 그러면 OpenCV를 빌드하는 데 사용됩니다.
`배쉬
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
`
이 마지막 단계는 실행하는 데 오랜 시간이 걸리므로 인내심을 갖고 기다리십시오. 많은 것을 다운로드하고 구축해야 합니다.
고급 사용자:
* OpenCV를 구축할 때 추가하고 싶은 다른 옵션 모듈이 많이 있다는 점에 유의하세요. 전체 목록을 보려면 .vcpkg.exe 검색 opencv를 실행하세요.
선택 사항: 최신 NVIDIA GPU가 있는 경우 지금 CUDA 또는 CUDA+cuDNN을 설치할 수 있습니다. 설치된 경우 Darknet은 GPU를 사용하여 이미지(및 비디오) 처리를 가속화합니다.
CMake가 필요한 모든 파일을 다시 찾도록 하려면 Darknet 빌드 디렉터리에서 CMakeCache.txt 파일을 삭제해야 합니다.
다크넷을 재구축하는 것을 잊지 마세요.
Darknet은 그것 없이 실행될 수 있지만 사용자 정의 네트워크를 교육하려면 CUDA 또는 CUDA+cuDNN이 필요합니다.
CUDA를 다운로드하고 설치하려면 https://developer.nvidia.com/cuda-downloads를 방문하세요.
다운로드하려면 https://developer.nvidia.com/rdp/cudnn-download 또는 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview를 방문하세요. cuDNN을 설치합니다.
CUDA를 설치한 후 nvcc.exe 및 nvidia-smi.exe를 실행할 수 있는지 확인하세요. PATH 변수를 수정해야 할 수도 있습니다.
cuDNN을 다운로드한 후 압축을 풀고 bin, include 및 lib 디렉터리를 C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/에 복사합니다. 일부 파일을 덮어써야 할 수도 있습니다.
나중에 CUDA 또는 CUDA+cuDNN을 설치하거나 최신 버전의 NVIDIA 소프트웨어로 업그레이드하는 경우:
* CUDA는 Visual Studio 이후에 설치해야 합니다. Visual Studio를 업그레이드하는 경우 CUDA를 다시 설치해야 합니다.
이전 단계가 모두 성공적으로 완료되면 Darknet을 복제하고 구축해야 합니다. 또한 이 단계에서는 OpenCV 및 기타 종속성을 찾을 수 있도록 CMake에 vcpkg의 위치를 알려야 합니다.
`배쉬
cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake .. msbuild. exe /property:Platform=x64;Configuration=릴리스 /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln msbuild.exe /property:Platform=x64;Configuration=PACKAGE.vcxproj 릴리스
`
일부 누락된 CUDA 또는 cuDNN DLL(예: cublas64_12.dll)에 대한 오류가 발생하는 경우 CUDA .dll 파일을 Darknet.exe와 동일한 출력 디렉터리에 수동으로 복사하세요. 예를 들어:
`배쉬
"C:프로그램 파일NVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease 복사
`
(예는 다음과 같습니다. 실행 중인 버전을 확인하고, 설치한 버전에 적합한 명령을 실행하세요.)
파일을 복사한 후 마지막 msbuild.exe 명령을 다시 실행하여 NSIS 설치 패키지를 생성합니다.
`배쉬
msbuild.exe /property:Platform=x64;구성=PACKAGE.vcxproj 릴리스
`
고급 사용자:
* cmake 명령의 출력은 일반 Visual Studio 솔루션 파일인 Darknet.sln입니다. msbuild.exe 대신 Visual Studio GUI를 자주 사용하여 프로젝트를 빌드하는 소프트웨어 개발자라면 명령줄을 무시하고 Visual Studio에서 Darknet 프로젝트를 로드할 수 있습니다.
이제 C:srcDarknetbuildsrc-cliReleasedarknet.exe 파일을 실행할 준비가 되었습니다. 다음 명령을 실행하여 C:srcDarknetbuildsrc-cliReleasedarknet.exe 버전을 테스트합니다.
Darknet, 라이브러리, 포함 파일 및 필요한 DLL을 올바르게 설치하려면 이전 단계에서 구축한 NSIS 설치 마법사를 실행하세요. 빌드 디렉터리에 있는 darknet-VERSION.exe 파일을 참조하세요. 예를 들어:
`배쉬
darknet-2.0.31-win64.exe
`
NSIS 설치 패키지를 설치하면 다음이 수행됩니다.
* Darknet이라는 디렉터리를 만듭니다(예: C:Program FilesDarknet).
* CLI 애플리케이션, darknet.exe 및 기타 샘플 애플리케이션을 설치합니다.
* OpenCV의 파일과 같은 필수 타사 .dll 파일을 설치합니다.
* 다른 응용 프로그램에서 darknet.dll을 사용하려면 필요한 Darknet .dll, .lib 및 .h 파일을 설치하십시오.
* 템플릿 .cfg 파일을 설치합니다.
이제 끝났습니다! 설치 마법사가 완료되면 C:Program FilesDarknet에 Darknet이 설치됩니다. 다음 명령을 실행하여 C:Program FilesDarknetbindarknet.exe 버전을 테스트합니다.
C:/Program Files/darknet/bin/darknet.exe가 없다면 설치한 것이 아니라 그냥 빌드한 것입니다! 이전 단계에서 NSIS 설치 마법사의 각 패널을 탐색했는지 확인하세요.
6. 다크넷 사용
6.1 CLI
다음은 Darknet에서 지원하는 모든 명령의 전체 목록이 아닙니다.
Darknet CLI 외에도 Darknet/YOLO CLI에 대한 대안을 제공하는 DarkHelp 프로젝트 CLI도 참고하세요. DarkHelp CLI에는 Darknet에는 없는 몇 가지 향상된 기능도 있습니다. Darknet CLI와 DarkHelp CLI를 함께 사용할 수 있으며, 상호 배타적이지 않습니다.
아래 표시된 대부분의 명령에는 해당 .names 및 .cfg 파일이 있는 .weights 파일이 필요합니다. 네트워크를 직접 훈련할 수도 있고(강력히 권장됩니다!), 다른 사람이 훈련시켰고 인터넷에서 무료로 사용할 수 있는 신경망을 다운로드할 수도 있습니다. 사전 학습 데이터 세트의 예는 다음과 같습니다.
* LEGO Gears(이미지에서 개체 찾기)
* Rolodex (이미지에서 텍스트 찾기)
* MSCOCO(표준 80 카테고리 표적 탐지)
실행할 명령은 다음과 같습니다.
* 실행할 수 있는 몇 가지 가능한 명령과 옵션을 나열합니다.
`배쉬
다크넷 도움말
`
* 버전 확인:
`배쉬
다크넷 버전
`
* 예측에 이미지 사용:
`배쉬
V2: 다크넷 탐지기 테스트 cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp 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 ... Id 이름 AvgPrecision TP FN FP TN 정확도 ErrorRate 정밀도 재현 특이성 FalsePosRate -- ---- ------------ ---- -- ------ ------ ------ -------- --------- --------- ---- -- ---------- ------------ 0 차량 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821 1 오토바이 80.4499 2936 513 569 5393 0.8850 .11 50 0.8377 0.8513 0.9046 0.0954 자전거 2대 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285 3인 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855 4 대 다수 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610 5 녹색등 86.8118 1969 239 10 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102 6등 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236 7등 94.1033 3449 2 17 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
* 정확도 확인 mAP@IoU=75:
`배쉬
다크넷 탐지기 맵 Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
`
* 앵커 포인트 재계산은 DarkMark에서 가장 잘 수행됩니다. DarkMark는 연속으로 100번 실행되고 계산된 모든 앵커 포인트 중에서 가장 좋은 앵커 포인트를 선택하기 때문입니다. 그러나 Darknet에서 이전 버전을 실행하려는 경우:
`배쉬
다크넷 탐지기 calcanchors Animals.data -numof_clusters 6 -너비 320 -높이 256
`
* 새로운 네트워크 훈련:
`배쉬
cd ~/nn/animals/ 다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
`
6.2 훈련
Darknet/YOLO FAQ의 관련 부분에 대한 빠른 링크:
* 파일과 디렉터리를 어떻게 설정해야 합니까?
* 어떤 프로필을 사용해야 합니까?
* 자체 네트워크를 훈련할 때 어떤 명령을 사용해야 합니까?
주석을 달고 훈련하는 가장 쉬운 방법인 DarkMark를 사용하여 필요한 모든 Darknet 파일을 생성하십시오. 이는 확실히 새로운 신경망을 훈련하는 데 권장되는 방법입니다.
사용자 정의 네트워크를 훈련시키기 위해 다양한 파일을 수동으로 설정하려면 다음을 수행하십시오.
* 파일을 저장할 새 폴더를 만듭니다. 이 예에서는 동물을 감지하기 위한 신경망이 생성되므로 ~/nn/animals/ 디렉터리가 생성됩니다.
* 템플릿으로 사용하려는 다크넷 구성 파일 중 하나를 복사하세요. 예를 들어 cfg/yolov4-tiny.cfg를 참조하세요. 생성한 폴더에 넣어주세요. 이 예에서는 이제 ~/nn/animals/animals.cfg가 있습니다.
* 구성 파일을 저장한 폴더에 Animals.names 텍스트 파일을 만듭니다. 이 예에서는 이제 ~/nn/animals/animals.names가 있습니다.
* Animals.names 파일을 편집하려면 텍스트 편집기를 사용하십시오. 사용하려는 카테고리를 나열하십시오. 한 줄에 정확히 하나의 항목이 필요하며 빈 줄이나 주석이 필요하지 않습니다. 이 예의 경우 .names 파일에는 정확히 4줄이 포함됩니다.
`
개
고양이
새
말
`
* 같은 폴더에 Animals.data 텍스트 파일을 만듭니다. 이 예의 경우 .data 파일에는 다음이 포함됩니다.
`
수업 = 4
기차 = /home/username/nn/animals/animals_train.txt
유효한 = /home/username/nn/animals/animals_valid.txt
이름 = /home/username/nn/animals/animals.names
백업 = /home/사용자 이름/nn/동물
`
* 이미지와 주석을 저장할 폴더를 만듭니다. 예를 들어 ~/nn/animals/dataset일 수 있습니다. 각 이미지에는 해당 이미지의 주석을 설명하는 해당 .txt 파일이 필요합니다. .txt 주석 파일의 형식은 매우 구체적입니다. 각 주석에는 주석의 정확한 좌표가 포함되어야 하기 때문에 이러한 파일을 수동으로 생성할 수 없습니다. 이미지에 주석을 추가하려면 DarkMark 또는 기타 유사한 소프트웨어를 참조하십시오. YOLO 주석 형식은 Darknet/YOLO FAQ에 설명되어 있습니다.
* .data 파일에 이름이 지정된 "train" 및 "valid" 텍스트 파일을 만듭니다. 이 두 텍스트 파일은 Darknet이 mAP%를 계산할 때 학습하고 검증하는 데 사용해야 하는 모든 이미지를 별도로 나열해야 합니다. 행당 정확히 하나의 이미지입니다. 경로와 파일 이름은 상대적이거나 절대적일 수 있습니다.
* 텍스트 편집기를 사용하여 .cfg 파일을 수정하세요.
* 배치=64인지 확인하세요.
* 하위 구분에 주의하세요. 네트워크 크기와 GPU에서 사용 가능한 메모리 양에 따라 세분화를 늘려야 할 수도 있습니다. 사용하기에 가장 좋은 값은 1이므로 그것부터 시작하세요. 1을 사용할 수 없는 경우 Darknet/YOLO FAQ를 참조하세요.
maxbatches=… 시작하기에 좋은 값은 범주 수의 2000배입니다. 이 예에는 4마리의 동물이 있으므로 4 2000 = 8000입니다. 이는 maxbatches=8000을 사용한다는 의미입니다.
* 참고 단계=..... 이는 maxbatch의 80%와 90%로 설정되어야 합니다. 이 예에서는 maxbatches가 8000으로 설정되어 있으므로 steps=6400,7200을 사용합니다.
* 참고 너비=... 및 높이=..... 이는 네트워크 차원입니다. Darknet/YOLO FAQ에서는 사용할 최적의 크기를 계산하는 방법을 설명합니다.
* 모든 클래스 인스턴스를 검색하여 .names 파일의 클래스 수로 수정합니다. 이 예에서는 클래스=4를 사용합니다.
각 [yolo] 섹션 앞의 [convolutional] 섹션에서 모든 filter=... 행의 인스턴스를 검색합니다. 사용할 값은 (범주수 + 5) 3 입니다. 즉, 이 예에서는 (4 + 5) * 3 = 27입니다. 따라서 해당 행에서는 filter=27을 사용합니다.
* 훈련을 시작하세요! 다음 명령을 실행하십시오.
`배쉬
cd ~/nn/animals/ 다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
`
* 기다리세요. 가장 좋은 가중치는 Animals_best.weights로 저장됩니다. 그리고 Chart.png 파일을 보면 학습 진행 상황을 관찰할 수 있습니다. 새로운 네트워크를 훈련할 때 사용할 수 있는 추가 매개변수는 Darknet/YOLO FAQ를 참조하세요.
* 학습 중에 더 자세한 내용을 보려면 --verbose 매개변수를 추가하세요. 예를 들어:
`배쉬
다크넷 탐지기 -map -dont_show --verbose 기차 동물.데이터 동물.cfg
`
7. 기타 도구 및 링크
Darknet/YOLO 프로젝트를 관리하고, 이미지에 주석을 달고, 주석의 유효성을 검사하고, Darknet 교육에 필요한 파일을 생성하려면 DarkMark를 참조하세요.
Darknet CLI에 대한 강력한 대안, 이미지 타일링, 비디오의 개체 추적을 사용하거나 상용 애플리케이션에서 쉽게 사용할 수 있는 강력한 C++ API를 얻으려면 DarkHelp를 참조하세요.
질문에 대한 답변을 얻으려면 Darknet/YOLO FAQ를 참조하세요.
Stéphane의 YouTube 채널에서 다양한 튜토리얼과 예제 비디오를 확인해 보세요.
지원 질문이 있거나 다른 Darknet/YOLO 사용자와 채팅하고 싶다면 Darknet/YOLO Discord 서버에 가입하세요.
8. 로드맵
2024년 10월 30일에 최종 업데이트되었습니다.
* 완전한
* 훈련 중에 qsort()를 std::sort()로 대체했습니다(다른 모호한 코드가 여전히 존재함).
* check_mistakes, getchar() 및 system() 제거
* C++ 컴파일러(Linux의 경우 g++, Windows의 경우 VisualStudio)를 사용하도록 Darknet을 변환합니다.
* Windows 빌드 수정
* Python 지원 수정
* 다크넷 라이브러리 구축
* 예측에서 라벨을 다시 활성화합니다('알파벳' 코드).
* CUDA/GPU 코드를 다시 활성화합니다.
* CUDNN을 다시 활성화
* CUDNN 절반을 다시 활성화
* CUDA 아키텍처를 하드코딩하지 마세요
* 더 나은 CUDA 버전 정보
* AVX를 다시 활성화
* 이전 솔루션 및 Makefile 제거
* OpenCV를 선택사항이 아닌 것으로 만들기
* 이전 pthread 라이브러리에 대한 종속성을 제거합니다.
* STB 삭제
* 새로운 CUDA 감지를 사용하려면 CMakeLists.txt를 다시 작성하세요.
* 오래된 "알파벳" 코드를 제거하고 데이터/라벨에서 700개 이상의 이미지를 삭제했습니다.
*외부 소스 코드 빌드
* 더 나은 버전 번호 출력이 있습니다.
* 훈련 관련 성능 최적화(현재 진행 중인 작업)
* 추론 관련 성능 최적화(진행 중인 작업)
* 가능하면 값별 참조를 사용하세요.
* .hpp 파일 정리
* darknet.h 다시 작성
cv::Mat를 void로 캐스팅하지 말고 적절한 C++ 객체로 사용하세요.
* 내부 이미지 구조의 일관된 사용을 수정하거나 유지합니다.
* ARM 아키텍처 Jetson 장치의 빌드 수정
*원래 Jetson 장치는 더 이상 NVIDIA에서 지원하지 않으므로 수정될 가능성이 없습니다(C++17 컴파일러 없음).
* 현재 새로운 Jetson Orin 장치가 실행 중입니다.
* V3에서 Python API 수정
* 더 나은 Python 지원이 필요합니다(도움을 주고 싶은 Python 개발자가 있습니까?)
* 단기 목표
* printf()를 std::cout으로 교체(작업 진행 중)
* 이전 zed 카메라 지원을 확인하세요.
* 더 좋고, 더 일관적인 명령줄 구문 분석(작업 진행 중)
* 중기 목표
모든 문자 코드를 제거하고 std::string으로 바꿉니다.
* 경고를 숨기지 말고 컴파일러 경고를 정리하세요(작업 진행 중).
* C의 사용자 정의 이미지 구조 대신 cv::Mat를 더 잘 사용합니다(작업 진행 중).
* 이전 목록 기능을 std::벡터 또는 std::list로 대체
* 1채널 회색조 이미지에 대한 지원이 수정되었습니다.
* N > 3인 N 채널 이미지에 대한 지원을 추가합니다(예: 추가 깊이 또는 핫 채널이 있는 이미지)
* 지속적인 코드 정리(진행 중)
* 장기 목표
* 모든 GPU의 CUDA/CUDNN 문제 수정
* CUDA+cuDNN 코드 재작성
* NVIDIA GPU가 아닌 GPU에 대한 지원 추가를 고려하세요.
* 회전된 경계 상자 또는 일부 형태의 "각도" 지원
*핵심 포인트/골격
* 히트맵(작업 진행 중)
* 나뉘다