앤서블
Ansible은 매우 간단한 IT 자동화 시스템입니다. 구성 관리, 애플리케이션 배포, 클라우드 프로비저닝, 임시 작업 실행, 네트워크 자동화 및 다중 노드 오케스트레이션을 적절하게 처리합니다. Ansible을 사용하면 로드 밸런서를 사용한 다운타임 없는 롤링 업데이트와 같은 복잡한 변경 사항을 손쉽게 실행할 수 있습니다. 공식 웹사이트에서 Ansible의 기능에 대해 더 자세히 알아보세요.
디자인 원칙
1. 앤서블을 활용하라
pip 또는 선호하는 패키지 관리자를 사용하여 Ansible 릴리스 버전을 원활하게 설치할 수 있습니다. 다양한 플랫폼에 대한 포괄적인 지침을 보려면 자세한 설치 가이드를 참조하세요.
2. 고급 사용자 및 개발자 역량 강화
고급 사용자와 개발자를 위해 devel 브랜치는 최신 기능과 수정 사항에 대한 액세스를 제공합니다. 일반적으로 안정적이지만 이 분기를 활용할 때 주요 변경 사항이 발생할 가능성을 인정하는 것이 중요합니다. devel 브랜치와 협력하기로 선택한 경우 Ansible 커뮤니티에 참여하는 것이 좋습니다.
의사소통
활발한 Ansible 포럼에 참여하여 커뮤니티에 참여하고, 도움을 구하고, 질문하세요. 추가 커뮤니케이션 채널을 알아보려면 Ansible 커뮤니티 연결에 대한 전용 가이드를 살펴보세요.
앤서블에 기여
코딩 지침
우리는 개발자 가이드에 코딩 지침을 꼼꼼하게 문서화했습니다. 다음 섹션을 검토해 보시기 바랍니다.
1. 지점정보
2. 로드맵
팀과 커뮤니티의 귀중한 피드백을 바탕으로 각 주 버전 또는 부 버전(예: 2.7, 2.8)에 대한 초기 로드맵이 게시됩니다. Ansible 로드맵 페이지는 우리의 계획을 간략하게 설명하고 우리의 방향에 영향을 미칠 수 있는 방법을 제공합니다.
저자
Ansible은 원래 Michael DeHaan이 고안했으며 5,000명이 넘는 사용자(계속 늘어나고 있음)의 기여로 이익을 얻었습니다. 기여해주신 모든 분들께 감사드립니다!
Ansible은 Red Hat, Inc.의 후원을 받는 것을 자랑스럽게 생각합니다.
특허
GNU 일반 공중 라이선스 v3.0 이상. 전체 라이센스 텍스트는 복사를 참조하십시오.
다크넷 개체 탐지 프레임워크 및 YOLO
!darknet 및 hank.ai 로고
Darknet은 C, C++ 및 CUDA로 개발된 오픈 소스 신경망 프레임워크입니다.
YOLO(You Only Look Once)는 Darknet 프레임워크 내에서 작동하는 최첨단 실시간 개체 탐지 시스템을 나타냅니다.
Hank.ai가 Darknet/YOLO 커뮤니티에 어떻게 기여하고 있는지 알아보세요: https://darknetcv.ai/
공식 Darknet/YOLO 웹사이트를 살펴보세요: https://pjreddie.com/darknet/
포괄적인 Darknet/YOLO FAQ를 참조하세요: https://pjreddie.com/darknet/yolo/
활성 Darknet/YOLO Discord 서버에 가입하세요: https://discord.gg/zSq8rtW
서류
1. YOLOv7 논문: https://arxiv.org/abs/2207.02696
2. Scaled-YOLOv4 논문: https://arxiv.org/abs/2102.12074
3. YOLOv4 논문: https://arxiv.org/abs/2004.10934
4. YOLOv3 논문: https://arxiv.org/abs/1804.02769
일반 정보
Darknet/YOLO 프레임워크는 속도와 정확성 모두에서 다른 프레임워크와 YOLO 버전을 계속해서 능가합니다.
완전한 자유와 오픈 소스 특성을 통해 라이센스 제한이나 비용 없이 Darknet/YOLO를 상업용 프로젝트를 포함한 기존 프로젝트 및 제품에 원활하게 통합할 수 있습니다.
2024년 10월에 출시된 Darknet V3("Jazz")는 NVIDIA RTX 3090 GPU를 활용할 때 인상적인 1000FPS로 LEGO 데이터 세트 비디오를 처리하여 그 위용을 보여줍니다. 이는 각 비디오 프레임에 대해 1밀리초 이하의 처리 시간에 해당하며 탁월한 효율성을 보여줍니다.
Darknet/YOLO와 관련된 지원이나 토론이 필요하면 전용 Discord 서버인 https://discord.gg/zSq8rtW에 가입하세요.
Darknet/YOLO의 CPU 버전은 Raspberry Pi, 클라우드 및 Colab 서버, 데스크톱, 노트북 및 고급 훈련 장비를 포함한 다양한 장치에 적용할 수 있습니다. Darknet/YOLO의 GPU 버전에는 NVIDIA의 CUDA 지원 GPU가 필요합니다.
Darknet/YOLO는 Linux, Windows 및 Mac 운영 체제에서 원활하게 작동하는 것으로 검증되었습니다. 아래 설명된 조립 지침을 참조하세요.
다크넷 버전
Joseph Redmon이 2013년부터 2017년 사이에 개발한 원래 Darknet 도구에는 버전 번호가 부족했습니다. 우리는 이것을 버전 0.x로 간주합니다.
Alexey Bochkovskiy가 2017년부터 2021년까지 유지 관리한 후속 인기 Darknet 저장소에도 버전 번호가 부족했습니다. 우리는 이것을 버전 1.x로 분류합니다.
Hank.ai가 후원하고 Stéphane Charette가 관리하는 Darknet 저장소는 2023년부터 처음으로 버전 명령을 도입했습니다. 2023년부터 2024년 말까지 버전 2.x "OAK"를 반환했습니다.
개발 목표는 코드베이스에 익숙해지는 동시에 기존 기능의 중단을 최소화하는 데 중점을 두었습니다.
버전 2.x의 주요 개선 사항:
1. 통합 빌드 프로세스: Windows와 Linux 모두에서 CMake를 사용하는 통합 접근 방식의 빌드 단계를 다시 작성했습니다.
2. C++ 전환: C++ 컴파일러를 활용하도록 코드베이스를 변환했습니다.
3. 향상된 훈련 시각화: 훈련 중 Chart.png 시각화가 개선되었습니다.
4. 성능 최적화: 버그를 해결하고 성능 관련 최적화를 구현했으며 주로 훈련 시간 단축에 중점을 두었습니다.
버전 2.1은 v2 분기에서 사용할 수 있는 이 코드베이스의 마지막 분기를 나타냅니다.
다음 개발 단계는 2024년 중반에 시작되어 2024년 10월 버전 3.x "JAZZ" 릴리스에서 정점에 달했습니다.
해당 버전의 특정 명령에 액세스해야 하는 경우 이전 v2 분기를 확인하는 옵션을 유지합니다. 누락된 명령이 있는 경우 조사 및 재통합 가능성을 위해 알려 주시기 바랍니다.
버전 3.x의 중요한 변경 사항:
1. 명령 정리: 오래되고 유지 관리되지 않는 수많은 명령을 제거했습니다.
2. 향상된 성능: 교육 및 추론 중에 광범위한 성능 최적화를 구현했습니다.
3. API 수정: 레거시 C API가 수정되었습니다. 원본 Darknet API를 사용하는 애플리케이션에는 약간의 조정이 필요합니다. 지침은 업데이트된 문서를 참조하세요: https://darknetcv.ai/api/api.html
4. 새로운 API 소개: 새로운 Darknet V3 C 및 C++ API 도입: https://darknetcv.ai/api/api.html
5. 확장된 샘플 코드: src-examples 디렉터리에 새로운 애플리케이션과 샘플 코드를 추가했습니다: https://darknetcv.ai/api/files.html
MSCOCO 사전 훈련된 가중치
사용자 편의를 위해 MSCOCO 데이터 세트에 대해 여러 가지 인기 있는 YOLO 버전이 사전 훈련되었습니다. 이 데이터 세트는 cfg/coco.names 텍스트 파일에서 찾을 수 있는 80개의 클래스를 포함합니다.
LEGO Gears 및 Rolodex를 포함하여 Darknet/YOLO를 테스트하는 데 더 간단한 추가 데이터 세트와 사전 훈련된 가중치를 쉽게 사용할 수 있습니다. 자세한 내용은 Darknet/YOLO FAQ를 참조하세요.
다음 리포지토리를 포함하여 다양한 위치에서 MSCOCO 사전 훈련된 가중치를 얻을 수 있습니다.
YOLOv2(2016년 11월):
yolov2-tiny
yolov2-full
YOLOv3(2018년 5월):
yolov3-tiny
yolov3-full
YOLOv4(2020년 5월):
yolov4-tiny
yolov4-full
YOLOv7(2022년 8월):
yolov7-tiny
yolov7-full
MSCOCO 사전 훈련된 가중치는 데모 목적으로 제공됩니다. 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는 일반적으로 프레임워크의 기능이 예상대로 작동하는지 확인하는 데 사용됩니다.
건물
이전 빌드 방법(2023년 이전)이 통합 솔루션으로 통합되었습니다. Darknet에는 C++17 이상, OpenCV가 필요하며 CMake를 활용하여 필요한 프로젝트 파일을 생성합니다.
Darknet/YOLO를 구축하는 데에는 C++ 전문 지식이 필요하지 않습니다. 자동차를 운전하는 것과 마찬가지로 자동차를 활용하기 위해 정비공이 될 필요는 없습니다.
소프트웨어 개발자는 Darknet/YOLO 개체 감지 프레임워크의 내부 작동에 대한 통찰력을 얻으려면 https://darknetcv.ai/를 방문하는 것이 좋습니다.
구글 코랩
Google Colab 지침은 Linux 지침을 반영합니다. 여러 Jupyter 노트북은 새로운 네트워크 훈련과 같은 특정 작업을 보여줍니다.
colab 하위 디렉터리에서 노트북을 탐색하거나 아래 제공된 Linux 지침을 따르세요.
리눅스 CMake 방법
1. 필수 소프트웨어:
빌드 필수사항: sudo apt-get install build-essential git libopencv-dev cmake
2. 저장소 복제:
소스 디렉터리 생성: mkdir ~/srccd ~/src
저장소 복제: git clone https://github.com/hank-ai/darknetcd darknet
3. 디렉토리 구축:
빌드 디렉터리 생성: mkdir buildcd build
4. CMake 구성:
CMake 구성: cmake -DCMAKEBUILDTYPE=Release ..
5. 다크넷 구축:
빌드: make -j4
6. 패키지 설치:
패키지 만들기: 패키지
패키지 설치: sudo dpkg -i darknet-VERSION.deb
선택 사항: CUDA 또는 CUDA+cuDNN 설치
가속화된 이미지 및 비디오 처리를 위해 선택적으로 CUDA 또는 CUDA+cuDNN을 설치할 수 있습니다.
쿠다 설치:
CUDA를 다운로드하고 설치하려면 https://developer.nvidia.com/cuda-downloads를 방문하세요.
cuDNN 설치:
다운로드하려면 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 및 nvidia-smi를 실행할 수 있는지 확인하세요. PATH 변수를 수정해야 할 수도 있습니다.
CUDA 또는 CUDA+cuDNN 업그레이드:
Darknet 빌드 디렉터리에서 CMakeCache.txt 파일을 삭제하여 CMake가 필요한 파일을 다시 찾도록 하세요.
다크넷을 재구축하세요.
CMake 버전 업그레이드(필요한 경우):
기존 CMake 제거: sudo apt-get purge cmake
최신 CMake 설치: sudo snap install cmake --classic
셸을 다시 시작하거나(bash) 새 경로가 인식되는지 확인하세요(fish).
고급 사용자:
DEB 대신 RPM 설치 파일을 빌드하려면 CM_package.cmake에서 관련 줄을 수정하세요. make -j4 패키지를 실행하기 전에 다음 줄을 조정하십시오.
`cmake
설정(CPACK_GENERATOR "DEB")
설정(CPACK_GENERATOR "RPM")
`
CentOS 및 OpenSUSE와 같은 배포판의 경우 다음 줄을 수정합니다.
`cmake
설정(CPACK_GENERATOR "DEB")
설정(CPACK_GENERATOR "RPM")
`
설치 패키지가 빌드되면 배포판의 패키지 관리자를 사용하여 설치하십시오. 예를 들어 Ubuntu와 같은 Debian 기반 시스템에서는 다음과 같습니다.
`배쉬
sudo dpkg -i darknet-2.0.1-Linux.deb
`
설치 후:
설치된 파일은 다음과 같습니다.
- /usr/bin/darknet: 다크넷 실행 파일입니다. darknet 버전을 실행하여 설치를 확인하세요.
- /usr/include/darknet.h: C, C++, Python 개발자를 위한 Darknet API.
- /usr/include/darknet_version.h: 개발자를 위한 버전 정보입니다.
- /usr/lib/libdarknet.so: C, C++ 및 Python 개발 연결을 위한 라이브러리입니다.
- /opt/darknet/cfg/...: 모든 .cfg 템플릿의 위치입니다.
이제 Darknet이 /usr/bin/에 성공적으로 구축 및 설치되었습니다. 확인하려면 darknet 버전을 실행하세요.
Windows CMake 메서드
1. 전제조건:
Winget을 사용하여 다음을 설치합니다.
- Git: Winget 설치 Git.Git
- CMake: Winget 설치 Kitware.CMake
- NSIS: Winget 설치 nsis.nsis
- Visual Studio 2022 커뮤니티: Winget 설치 Microsoft.VisualStudio.2022.Community
2. 비주얼 스튜디오 구성:
Windows 시작 메뉴에서 "Visual Studio 설치 프로그램"을 엽니다.
"수정"을 클릭하세요.
"C++를 사용한 데스크톱 개발"을 선택합니다.
오른쪽 하단에 있는 "수정"을 클릭한 다음 "예"를 클릭하세요.
3. 개발자 명령 프롬프트:
"Windows 시작" 메뉴를 열고 "VS 2022용 개발자 명령 프롬프트"를 선택합니다. 이 단계에서는 PowerShell을 사용하지 마세요.
4. Microsoft VCPKG 설치(OpenCV용):
C:: cd c:로 이동합니다.
src 디렉터리 생성: mkdir c:src
VCPKG 복제: cd c:src git clone https://github.com/microsoft/vcpkg
부트스트랩 VCPKG: cd vcpkg bootstrap-vcpkg.bat
VCPKG 통합: .vcpkg.exe 통합 설치
OpenCV 설치(종속성 포함): .vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. 선택 사항: CUDA 또는 CUDA+cuDNN 설치(Windows)
가속화된 이미지 및 비디오 처리를 위해 선택적으로 CUDA 또는 CUDA+cuDNN을 설치할 수 있습니다.
쿠다 설치:
CUDA를 다운로드하고 설치하려면 https://developer.nvidia.com/cuda-downloads를 방문하세요.
cuDNN 설치:
cuDNN을 다운로드하고 설치하려면 https://developer.nvidia.com/rdp/cudnn-download 또는 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows를 방문하세요.
CUDA 설치 후:
nvcc.exe를 실행할 수 있는지 확인하세요. PATH 변수를 수정해야 할 수도 있습니다.
다운로드한 cuDNN의 압축을 풀고 bin, include 및 lib 디렉터리를 C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/에 복사합니다. 일부 파일을 덮어써야 할 수도 있습니다.
CUDA 또는 CUDA+cuDNN 업그레이드:
CUDA는 Visual Studio 이후에 설치해야 합니다. Visual Studio를 업그레이드하는 경우 CUDA를 다시 설치하세요.
6. 다크넷 복제 및 구축:
소스 디렉터리로 이동합니다: cd c:src
저장소 복제: git clone https://github.com/hank-ai/darknet.git
빌드 디렉터리 생성: cd darknetmkdir build
VCPKG로 CMake 구성: cd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
솔루션 빌드: msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
NSIS 설치 패키지 생성: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. 누락된 CUDA/cuDNN DLL 처리:
CUDA 또는 cuDNN DLL(예: cublas64_12.dll) 누락에 대한 오류가 발생하는 경우 관련 CUDA .dll 파일을 Darknet.exe와 동일한 출력 디렉터리에 수동으로 복사하세요. 예를 들어:
`배쉬
"C:프로그램 파일NVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease 복사
`
설치에 맞게 명령의 버전 번호를 조정합니다.
msbuild.exe 명령을 다시 실행하여 NSIS 설치 패키지를 생성합니다.
고급 사용자:
cmake 명령은 Visual Studio 솔루션 파일(Darknet.sln)을 생성합니다. Visual Studio GUI를 선호하는 경우 명령줄 도구를 사용하는 대신 Visual Studio에서 Darknet 프로젝트를 로드할 수 있습니다.
빌드 후 확인:
C:srcDarknetbuildsrc-cliReleasedarknet.exe가 있는지 확인하세요. C:srcDarknetbuildsrc-cliReleasedarknet.exe 버전을 실행하여 확인하세요.
설치:
NSIS 설치 마법사(예: 빌드 디렉터리의 darknet-VERSION.exe)를 실행하여 Darknet, 라이브러리, 포함 파일 및 필요한 DLL을 설치합니다.
설치 후 확인:
C:/Program Files/darknet/bin/darknet.exe가 있는지 확인하세요. C:/Program Files/darknet/bindarknet.exe 버전을 실행하여 확인하세요.
다크넷 사용
CLI
이 목록에는 모든 Darknet 명령이 포함되어 있지 않습니다.
Darknet CLI 외에도 더욱 발전된 대안 인터페이스를 제공하는 DarkHelp 프로젝트 CLI 사용을 고려해 보세요. 두 CLI를 함께 사용할 수 있습니다.
대부분의 명령에는 해당 .names 및 .cfg 파일과 함께 .weights 파일이 필요합니다. 자체 네트워크를 훈련시키거나 사전 훈련된 네트워크를 다운로드할 수 있습니다.
사전 훈련된 데이터세트:
LEGO Gears: 이미지의 개체 감지.
Rolodex: 이미지의 텍스트 감지.
MSCOCO: 표준 80등급 개체 감지.
일반적인 CLI 명령:
1. 도움말: 다크넷 도움말
2. 버전: 다크넷 버전
3. 이미지 예측(V2):
다크넷 탐지기 테스트 cars.data cars.cfg cars_best.weights image1.jpg
4. 이미지 예측(V3):
darknet02displayannotatedimages cars.cfg image1.jpg
5. 이미지 예측(DarkHelp):
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
6. 출력 좌표(V2):
다크넷 탐지기 테스트 Animals.data Animals.cfg Animalsbest.weights -extoutput dog.jpg
7. 출력 좌표(V3):
darknet01inference_images 동물 개.jpg
8. 출력 좌표(DarkHelp):
DarkHelp --json Animals.cfg Animals.names Animals_best.weights dog.jpg
9. 비디오 처리(V2):
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
10. 비디오 처리(V3):
darknet03display_videos 동물.cfg 테스트.mp4
11. 비디오 처리(DarkHelp):
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
12. 웹캠 처리(V2):
다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -c 0
13. 웹캠 처리(V3):
darknet08display_webcam 동물
14. 비디오 저장(V2):
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
15. 비디오 저장(V3):
darknet05프로세스비디오멀티스레드 동물.cfg 동물.이름 동물_최고.가중치 테스트.mp4
16. 비디오 저장(DarkHelp):
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
17. JSON 출력(V2):
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. JSON 출력(V3):
darknet06imagestojson 동물 image1.jpg
19. JSON 출력(DarkHelp):
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
20. GPU 선택(V2):
다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
21. 네트워크 정확도 검사:
다크넷 탐지기 지도 Driving.data Driving.cfg Driving_best.weights ...
22. 정확도 확인(mAP@IoU=75):
다크넷 감지기 맵 Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
23. 앵커 재계산(DarkMark 권장):
다크넷 탐지기 calcanchors Animals.data -numof_clusters 6 -너비 320 -높이 256
24. 새로운 네트워크 훈련:
darknet detector -map -dont_show train Animals.data Animals.cfg(아래 교육 섹션 참조)
훈련
Darknet/YOLO FAQ의 관련 섹션에 대한 빠른 링크:
설정: https://pjreddie.com/darknet/yolo/
구성 파일 선택: https://pjreddie.com/darknet/yolo/
훈련 명령: https://pjreddie.com/darknet/yolo/
주석 및 교육에 대한 가장 효율적인 접근 방식은 DarkMark를 활용하는 것입니다. 이는 새로운 신경망을 훈련하는 데 권장되는 방법입니다.
수동 훈련 설정:
1. 프로젝트 폴더를 생성합니다(예: ~/nn/animals/).
2. 구성 템플릿 복사:
구성 파일(예: cfg/yolov4-tiny.cfg)을 선택합니다.
프로젝트 폴더에 넣어주세요.
이제 ~/nn/animals/animals.cfg가 생겼습니다.
3. Animals.names 파일을 생성합니다:
프로젝트 폴더에 Animals.names라는 텍스트 파일을 만듭니다.
원하는 클래스로 이 파일을 편집하세요.
각 클래스가 빈 줄이나 주석 없이 별도의 줄에 있는지 확인하세요.
예를 들어:
`
개
고양이
새
말
`
4. Animals.data 파일을 생성합니다:
프로젝트 폴더에 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/동물
`
5. 데이터세트 폴더를 생성합니다:
이미지와 주석을 저장할 폴더를 만듭니다. 예를 들어 ~/nn/animals/dataset입니다.
각 이미지에는 주석을 정의하는 해당 .txt 파일이 필요합니다.
이러한 .txt 파일은 수동으로 생성할 수 없습니다. 이미지에 주석을 달고 이러한 파일을 생성하려면 DarkMark 또는 유사한 도구가 필요합니다.
YOLO 주석 형식에 대해서는 Darknet/YOLO FAQ를 참조하세요.
6. Animalstrain.txt 및 Animalsvalid.txt 파일을 생성합니다.
Animals.data 파일에 지정된 대로 이러한 텍스트 파일을 만듭니다.
이러한 파일에는 각각 학습 및 검증에 사용되는 모든 이미지가 나열되어 있습니다.
상대 또는 절대 경로를 사용하여 한 줄에 하나의 이미지.
7. 구성 파일(animals.cfg)을 수정합니다.
배치: 배치=64로 설정합니다.
세분화: 하위 구분=1로 시작합니다. 네트워크 크기 및 GPU 메모리를 기반으로 필요에 따라 조정합니다.
최대 배치: 적절한 시작 값은 maxbatches=2000 * numberofclasses입니다. 이 예에서는 maxbatches=8000(동물 4마리)입니다.
단계: max_batches의 80% 및 90%로 설정합니다. 이 예에서는 steps=6400,7200입니다.
너비 및 높이: 네트워크 크기를 정의합니다. 지침은 Darknet/YOLO FAQ를 참조하세요.
클래스: .names 파일의 클래스 수(이 예에서는 4)와 일치하도록 class=...를 설정합니다.
필터: 욜로 레이어 이전의 각 컨벌루션 레이어에서 필터=...를 (클래스 수 + 5) * 3으로 설정합니다. 이 예에서는 필터=27입니다.
8. 훈련 시작:
프로젝트 폴더로 이동합니다: cd ~/nn/animals/
훈련 시작: darknet detector -map -dont_show train Animals.data Animals.cfg
인내심을 가지십시오. 가장 좋은 가중치는 Animals_best.weights로 저장됩니다.
Chart.png 파일을 보고 훈련 진행 상황을 관찰하세요.
추가 훈련 매개변수는 Darknet/YOLO FAQ를 참조하세요.
더 자세한 교육 출력을 보려면 --verbose 플래그를 추가하세요.
`배쉬
다크넷 탐지기 -map -dont_show --verbose 기차 동물.데이터 동물.cfg
`
기타 도구 및 링크
DarkMark: Darknet/YOLO 프로젝트 관리, 이미지 주석 달기, 주석 확인 및 교육 파일 생성용. https://darknetcv.ai/darkmark/
DarkHelp: Darknet에 대한 강력한 대안 CLI, 이미지 타일링, 객체 추적 및 상용 친화적인 C++ API입니다. https://darknetcv.ai/darkhelp/
Darknet/YOLO FAQ: 일반적인 질문에 대한 답변입니다. https://pjreddie.com/darknet/yolo/
Stéphane의 YouTube 채널: 튜토리얼 및 예제 비디오를 볼 수 있습니다. https://www.youtube.com/@stephane-charette
Darknet/YOLO Discord Server: 지원 질문 및 커뮤니티 토론용입니다. https://discord.gg/zSq8rtW
로드맵
최종 업데이트 날짜: 2024-10-30
완전한
훈련 중에 qsort()를 std::sort()로 대체했습니다.
check_mistakes, getchar() 및 system()을 제거했습니다.
Darknet을 C++ 컴파일러(Linux의 g++, Windows의 VisualStudio)로 마이그레이션했습니다.
Windows 빌드 문제가 해결되었습니다.
Python 지원을 다시 활성화했습니다.
Darknet 라이브러리를 구축했습니다.
예측 라벨('알파벳' 코드)을 다시 활성화했습니다.
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 Orin 장치가 작동합니다.
V3에서 Python API 문제가 해결되었습니다.
단기 목표
printf()를 std::cout으로 교체합니다(진행 중).
오래된 zed 카메라 지원을 조사합니다.
일관성을 위해 명령줄 구문 분석을 개선합니다(진행 중).
중기 목표
모든 char* 코드를 제거하고 std::string으로 바꿉니다.
숨겨진 경고를 제거하고 컴파일러 경고를 해결합니다(진행 중).
사용자 정의 C 이미지 구조 대신 cv::Mat 사용을 향상합니다(진행 중).
이전 목록 기능을 std::Vector 또는 std::list로 대체합니다.
1채널 회색조 이미지에 대한 지원을 수정했습니다.
N > 3인 N 채널 이미지(예: 깊이 또는 열 채널이 있는 이미지)에 대한 지원을 추가합니다.
지속적인 코드 정리를 계속합니다(진행 중).
장기 목표
모든 GPU에서 CUDA/CUDNN 문제를 해결합니다.
CUDA+cuDNN 코드를 다시 작성하세요.
NVIDIA GPU가 아닌 GPU에 대한 지원을 살펴보세요.
회전된 경계 상자 또는 각도 지원을 구현합니다.
키포인트/골격을 소개합니다.
히트맵 지원을 추가합니다(진행 중).
세분화를 통합합니다.