다크넷 개체 탐지 프레임워크 및 YOLO
Darknet은 C, C++ 및 CUDA로 작성된 오픈 소스 신경망 프레임워크입니다.
YOLO(You Only Look Once)는 Darknet 프레임워크 내에서 실행되는 최첨단 실시간 개체 감지 시스템입니다.
Hank.ai가 Darknet/YOLO 커뮤니티에 어떻게 힘을 실어주고 있는지 알아보세요!
Darknet V3 "Jazz" 발표
다크넷/YOLO 웹사이트 방문
다크넷/YOLO FAQ 살펴보기
Darknet/YOLO Discord 서버에 가입하세요
서류
1. 논문 YOLOv7: 논문 링크
2. Paper Scaled-YOLOv4: 종이에 연결
3. 논문 YOLOv4: 논문 링크
4. 논문 YOLOv3: 논문 링크
일반 정보
Darknet/YOLO 프레임워크는 속도와 정확성 모두에서 다른 프레임워크 및 YOLO 버전보다 지속적으로 뛰어난 성능을 발휘합니다.
이 프레임워크는 완전 무료이며 오픈 소스입니다. 라이선스 비용 없이 Darknet/YOLO를 상업용 프로젝트를 포함한 기존 프로젝트 및 제품에 원활하게 통합할 수 있습니다.
2024년 10월에 출시된 Darknet V3("Jazz")는 NVIDIA RTX 3090 GPU에서 최대 1000FPS로 LEGO 데이터 세트 비디오를 실행하여 놀라운 성능을 달성했습니다. 이는 크기 조정 및 처리를 포함하여 각 비디오 프레임을 Darknet/YOLO가 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라고 합니다.
2017년부터 2021년까지 Alexey Bochkovskiy가 유지 관리한 후속 인기 Darknet 저장소에도 버전 번호가 부족했습니다. 우리는 이 버전을 1.x로 간주합니다.
Hank.ai가 후원하고 Stéphane Charette가 관리하는 Darknet 저장소는 2023년부터 처음으로 버전 명령을 도입했습니다. 2023년부터 2024년 말까지 버전 2.x "OAK"를 반환했습니다.
개발팀은 코드베이스에 익숙해지는 동시에 기존 기능의 중단을 최소화하는 데 중점을 두었습니다.
이 기간 동안 구현된 주요 변경 사항은 다음과 같습니다.
1. 통합 빌드 프로세스: Windows 및 Linux 모두에서 CMake를 사용하여 프로세스를 간소화하기 위해 빌드 단계를 다시 작성했습니다.
2. C++ 변환: C++ 컴파일러를 활용하도록 코드베이스를 변환했습니다.
3. 차트 향상: 학습 중에 Chart.png 시각화가 향상되었습니다.
4. 버그 수정 및 최적화: 주로 훈련 시간 단축에 중점을 두고 수많은 버그 수정 및 성능 관련 최적화가 구현되었습니다.
이 코드베이스의 마지막 분기는 v2 분기에 있는 버전 2.1입니다.
다음 개발 단계는 2024년 중반에 시작되어 2024년 10월 버전 3.x "JAZZ"가 출시되면서 정점에 달했습니다. 이제 버전 명령은 3.x를 반환합니다.
해당 버전에서 특정 명령을 실행해야 하는 경우 언제든지 이전 v2 분기로 되돌릴 수 있습니다. 누락된 명령이 있는 경우 개발팀에 알려주시면 해당 명령을 다시 추가하는 방법을 조사하겠습니다.
버전 3.x "JAZZ"에 도입된 중요한 변경 사항은 다음과 같습니다.
1. 명령 제거: 오래되고 지원되지 않는 많은 명령이 제거되었습니다.
2. 성능 최적화: 훈련과 추론 모두에 수많은 성능 최적화가 적용되었습니다.
3. API 수정: 레거시 C API가 수정되었습니다. 원래 Darknet API를 사용하는 애플리케이션에는 약간의 조정이 필요할 수 있습니다. https://darknetcv.ai/api/api.html
4. 새로운 C/C++ API: Darknet V3에는 새로운 C 및 C++ API가 도입되었습니다. https://darknetcv.ai/api/api.html
5. 향상된 샘플 코드: src-examples에서 새로운 애플리케이션과 샘플 코드를 사용할 수 있습니다. https://darknetcv.ai/api/files.html
MSCOCO 사전 훈련된 가중치
몇몇 인기 있는 YOLO 버전은 MSCOCO 데이터세트의 편의를 위해 사전 훈련되었습니다. 이 데이터 세트에는 cfg/coco.names 텍스트 파일에 나열된 80개의 클래스가 포함되어 있습니다.
MSCOCO 외에도 LEGO Gears 및 Rolodex와 같은 Darknet/YOLO 테스트를 위해 다양하고 간단한 데이터 세트와 사전 훈련된 가중치를 사용할 수 있습니다. 자세한 내용은 Darknet/YOLO FAQ를 참조하세요.
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 사전 훈련된 가중치는 데모 목적으로만 제공됩니다. 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++에 대한 지식이 필요하지 않습니다. 그것은 정비공이 아니더라도 자동차를 운전하는 것과 비슷합니다.
구글 코랩
Google Colab 지침은 Linux용 지침을 반영합니다. 새로운 네트워크 훈련과 같은 특정 작업을 시연하기 위해 여러 Jupyter 노트북을 사용할 수 있습니다.
colab 하위 디렉터리에서 노트북을 탐색하거나 아래 Linux 지침을 따르세요.
리눅스 CMake 방법
Linux용 Darknet 빌드 튜토리얼
1. 전제조건: 다음 패키지가 설치되어 있는지 확인하십시오.
`배쉬
sudo apt-get 설치 빌드 필수 git libopencv-dev cmake
`
2. Darknet 복제: Darknet 저장소를 복제합니다.
`배쉬
mkdir ~/srccd ~/src
자식 클론 https://github.com/hank-ai/darknet
CD 다크넷
`
3. 빌드 디렉터리 생성: 빌드 디렉터리를 생성합니다.
`배쉬
mkdir 빌드
CD 빌드
`
4. CMake로 구성: CMake를 실행하여 빌드를 구성합니다.
`배쉬
cmake -DCMAKEBUILDTYPE=릴리스 ..
`
5. 빌드: 프로젝트를 빌드합니다.
`배쉬
-j4를 만드세요
`
6. 패키지: 데비안 패키지를 생성합니다:
`배쉬
패키지 만들기
`
7. 설치: 패키지를 설치합니다.
`배쉬
sudo dpkg -i darknet-VERSION.deb
`
선택 사항: GPU 가속을 위한 CUDA/cuDNN
1. CUDA 설치: 최신 NVIDIA GPU가 있는 경우 GPU 가속을 위해 CUDA를 설치할 수 있습니다. https://developer.nvidia.com/cuda-downloads에서 CUDA를 다운로드하여 설치하세요.
2. cuDNN 설치: https://developer.nvidia.com/rdp/cudnn-download 또는 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-에서 cuDNN을 다운로드하여 설치합니다. 패키지 관리자 설치 개요.
3. CUDA 설치 확인: CUDA를 설치한 후 nvcc 및 nvidia-smi를 실행할 수 있는지 확인합니다. PATH 변수를 조정해야 할 수도 있습니다.
4. CMake 구성(CMake 이후에 CUDA가 설치된 경우): CMake를 구성한 후 CUDA 또는 CUDA+cuDNN을 설치하는 경우 Darknet 빌드 디렉터리에서 CMakeCache.txt 파일을 삭제하여 CMake가 필요한 파일을 다시 찾도록 해야 합니다. 그런 다음 CMake를 다시 실행하고 Darknet을 다시 빌드하세요.
고급 사용자
RPM 패키지: DEB 파일 대신 RPM 설치 파일을 빌드하려면 CM_package.cmake에서 다음 줄을 수정합니다.
`cmake
# SET (CPACK_GENERATOR "DEB")
설정(CPACK_GENERATOR "RPM")
`
Centos 및 OpenSUSE와 같은 배포판: Centos 및 OpenSUSE와 같은 배포판의 경우 CM_package.cmake의 줄을 다음과 같이 변경합니다.
`cmake
# SET (CPACK_GENERATOR "DEB")
설정(CPACK_GENERATOR "RPM")
`
설치 패키지: 빌드 후 패키지를 설치하려면 배포판의 패키지 관리자를 사용하십시오. 예를 들어 Ubuntu와 같은 Debian 기반 시스템에서는 sudo dpkg -i darknet-2.0.1-Linux.deb를 사용합니다.
설치된 주요 파일:
/usr/bin/darknet: 주요 Darknet 실행 파일입니다. CLI에서 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 템플릿을 저장합니다.
Windows CMake 메서드
Windows용 빌드 튜토리얼(새 Windows 11 22H2 설치를 가정)
1. 전제 조건 설치: Winget을 사용하여 필요한 구성 요소를 설치합니다.
`배쉬
Winget 설치 Git.Git
Winget 설치 Kitware.CMake
Winget 설치 nsis.nsis
Winget 설치 Microsoft.VisualStudio.2022.Community
`
2. Visual Studio C++ 지원 설치: C++ 지원을 포함하도록 Visual Studio 설치를 수정합니다.
* "Windows 시작" 메뉴를 열고 "Visual Studio 설치 프로그램"을 실행합니다.
* "수정"을 클릭하세요.
* "C++를 사용한 데스크톱 개발"을 선택합니다.
* 오른쪽 하단의 '수정'을 클릭한 후 '예'를 클릭하세요.
3. 개발자 명령 프롬프트: "Windows 시작" 메뉴에서 "VS 2022용 개발자 명령 프롬프트"를 실행합니다. 이 단계에서는 PowerShell을 사용하지 마세요!
4. Microsoft VCPKG 설치: OpenCV를 빌드하려면 VCPKG를 설치합니다.
`배쉬
질병통제예방센터:
mkdir c:src
CD C:src
자식 클론 https://github.com/microsoft/vcpkg
CD vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe 통합 설치
.vcpkg.exe powershell 통합
.vcpkg.exe opencv 설치[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
* 인내심을 가지세요. 이 단계에서는 수많은 구성 요소를 다운로드하고 빌드해야 하므로 상당한 시간이 걸릴 수 있습니다.
5. 선택 사항: GPU 가속을 위한 CUDA/cuDNN: Linux 섹션에 설명된 것과 동일한 단계를 따르세요.
6. Darknet 복제: Darknet 저장소를 복제합니다.
`배쉬
CD C:src
자식 클론 https://github.com/hank-ai/darknet.git
CD 다크넷
mkdir 빌드
CD 빌드
`
7. CMake로 구성: CMake를 사용하여 빌드를 구성합니다.
`배쉬
cmake -DCMAKEBUILDTYPE=릴리스 -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
8. msbuild를 사용하여 빌드: msbuild를 사용하여 프로젝트를 빌드합니다.
`배쉬
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;구성=PACKAGE.vcxproj 릴리스
`
문제 해결: CUDA/cuDNN DLL 누락
CUDA 또는 cuDNN DLL(예: cublas64_12.dll) 누락에 대한 오류가 발생하는 경우 CUDA .dll 파일을 darknet.exe와 동일한 출력 디렉터리에 수동으로 복사하세요. 예를 들어:
`배쉬
"C:프로그램 파일NVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease 복사
`
* CUDA 버전에 따라 명령을 조정하는 것을 잊지 마세요.
DLL을 복사한 후 msbuild.exe 명령을 다시 실행하십시오.
고급 사용자
Visual Studio 솔루션: CMake는 Visual Studio 솔루션 파일(Darknet.sln)을 생성합니다. Visual Studio GUI 사용을 선호하는 소프트웨어 개발자는 명령줄을 사용하는 대신 Visual Studio 내에서 Darknet 프로젝트를 로드할 수 있습니다.
확인 및 설치
확인: Darknet이 올바르게 구축되었는지 확인하려면 다음 명령을 실행하십시오.
`배쉬
C:srcDarknetbuildsrc-cliReleasedarknet.exe 버전
`
설치: 마지막 단계에서 생성된 NSIS 설치 마법사를 실행하여 Darknet, 라이브러리, 포함 파일 및 필요한 DLL을 올바르게 설치합니다. 빌드 디렉터리에서 darknet-VERSION.exe 파일을 찾으세요. 예: darknet-2.0.31-win64.exe.
설치된 주요 파일:
C:프로그램 파일Darknetbin/darknet.exe: Darknet CLI 애플리케이션.
C:Program FilesDarknet/bin: 다른 샘플 애플리케이션이 포함되어 있습니다.
C:프로그램 파일Darknet: 필수 타사 .dll 파일(OpenCV), Darknet .dll, .lib 및 .h 파일, 템플릿 .cfg 파일을 포함합니다.
다크넷 사용
CLI
다음 목록에는 Darknet에서 지원하는 모든 명령이 포함되어 있지 않습니다.
Darknet CLI 외에도 Darknet에서 직접 사용할 수 없는 여러 고급 기능을 갖춘 대체 CLI를 제공하는 DarkHelp 프로젝트 CLI를 고려해보세요. 두 CLI를 동시에 사용할 수 있습니다.
필수 전제조건:
대부분의 명령에는 해당 .names 및 .cfg 파일과 함께 .weights 파일이 필요합니다.
자신만의 네트워크를 훈련시키거나(강력히 권장됩니다!) 인터넷에서 사전 훈련된 네트워크를 다운로드하십시오.
사전 훈련된 데이터 세트 예:
LEGO Gears: 이미지의 개체 감지.
Rolodex: 이미지의 텍스트 감지.
MSCOCO: 표준 80등급 개체 감지.
예제 명령:
1. 도움 받기:
`배쉬
다크넷 도움말
`
2. 버전 확인:
`배쉬
다크넷 버전
`
3. 이미지 예측:
V2:
`배쉬
다크넷 감지기 테스트 cars.data cars.cfg cars_best.weights image1.jpg
`
V3:
`배쉬
darknet02displayannotatedimages cars.cfg image1.jpg
`
다크도움말:
`배쉬
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
4. 출력 좌표:
V2:
`배쉬
다크넷 탐지기 테스트 Animals.data Animals.cfg Animalsbest.weights -extoutput dog.jpg
`
V3:
`배쉬
darknet01inference_images 동물 개.jpg
`
다크도움말:
`배쉬
DarkHelp --json Animals.cfg Animals.names Animals_best.weights dog.jpg
`
5. 비디오 처리:
V2:
`배쉬
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
`
V3:
`배쉬
darknet03display_videos 동물.cfg 테스트.mp4
`
다크도움말:
`배쉬
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
6. 웹캠 처리:
V2:
`배쉬
다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -c 0
`
V3:
`배쉬
darknet08display_webcam 동물
`
7. 비디오 출력:
V2:
`배쉬
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
`
V3:
`배쉬
darknet05프로세스비디오멀티스레드 동물.cfg 동물.이름 동물_최고.가중치 테스트.mp4
`
다크도움말:
`배쉬
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
8. JSON 출력:
V2:
`배쉬
다크넷 탐지기 데모 Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
V3:
`배쉬
darknet06imagestojson 동물 image1.jpg
`
다크도움말:
`배쉬
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
`
9. 특정 GPU:
V2:
`배쉬
다크넷 탐지기 데모 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
10. 정확성 평가:
지도:
`배쉬
다크넷 탐지기 지도 Driving.data Driving.cfg Driving_best.weights ...
`
mAP@IoU=75:
`배쉬
다크넷 탐지기 맵 Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
`
11. 앵커 계산:
DarkMark: 최적의 성능을 위해 DarkMark를 사용하여 앵커를 다시 계산합니다.
다크넷(이전 방법):
`배쉬
다크넷 탐지기 calcanchors Animals.data -numof_clusters 6 -너비 320 -높이 256
`
12. 새로운 네트워크 훈련:
DarkMark(권장): 주석 및 교육에 DarkMark를 사용합니다.
수동 설정:
1. 디렉터리 생성: 프로젝트에 대한 폴더를 생성합니다(예: ~/nn/animals/).
2. 구성 파일: Darknet 구성 파일을 템플릿으로 복사합니다(예: cfg/yolov4-tiny.cfg).
3. .names 파일: 클래스를 나열하는 .names 텍스트 파일을 만듭니다(예: ~/nn/animals/animals.names).
4. .data 파일: 구성 파일과 동일한 폴더에 .data 텍스트 파일을 생성합니다(예: ~/nn/animals/animals.data).
5. 데이터세트 폴더: 이미지와 주석을 위한 폴더를 만듭니다(예: ~/nn/animals/dataset).
6. .txt 주석: 주석 좌표가 포함된 각 이미지에 대해 .txt 파일을 생성합니다. DarkMark 또는 기타 주석 도구를 사용하십시오.
7. 훈련/유효 파일: 훈련 및 검증 이미지를 나열하는 Animalstrain.txt 및 Animalsvalid.txt 파일을 만듭니다.
8. .cfg 파일 수정: 데이터 세트를 기반으로 구성 파일을 조정합니다.
* 배치=64로 설정합니다.
* GPU 메모리를 기반으로 세분화를 조정합니다.
max_batches를 클래스 수 2000으로 설정합니다.
* 단계를 max_batches의 80% 및 90%로 설정합니다.
* 네트워크 크기에 따라 너비와 높이를 조정합니다.
*classes=...를 .names 파일의 클래스 수로 설정합니다.
각 [yolo] 섹션 앞의 [convolutional] 섹션에서 필터=...를 (클래스 수 + 5) 3으로 조정합니다.
9. 훈련: 훈련 시작:
`배쉬
CD ~/nn/동물/
다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
`
* 가장 좋은 가중치는 Animals_best.weights로 저장됩니다.
* 훈련 진행 상황을 모니터링하려면 Chart.png 파일을 확인하세요.
기타 도구 및 링크
주요 자료:
DarkMark: Darknet/YOLO 프로젝트 관리, 이미지 주석 달기, 주석 확인 및 교육 파일 생성용.
DarkHelp: 이미지 타일링, 비디오의 개체 추적 및 상업용 애플리케이션에 적합한 강력한 C++ API와 같은 기능을 갖춘 Darknet의 강력한 대안 CLI입니다.
Darknet/YOLO FAQ: 일반적인 질문과 솔루션에 대한 답변을 찾아보세요.
Stéphane의 YouTube 채널: 튜토리얼과 예제 비디오를 살펴보세요.
Darknet/YOLO Discord Server: 지원 및 토론을 위해 다른 Darknet/YOLO 사용자와 연결하세요.
로드맵
마지막 업데이트: 2024년 10월 30일:
완료된 작업:
1. 관련 교육 섹션에서 qsort()를 std::sort()로 대체했습니다.
2. check_mistakes, getchar() 및 system()을 제거했습니다.
3. C++ 컴파일러(Linux의 경우 g++, Windows의 경우 VisualStudio)를 사용하도록 Darknet을 변환했습니다.
4. Windows 빌드를 수정했습니다.
5. Python 지원이 수정되었습니다.
6. 다크넷 라이브러리를 구축했습니다.
7. 예측에 대한 레이블("알파벳" 코드)을 다시 활성화합니다.
8. CUDA/GPU 코드를 다시 활성화했습니다.
9. CUDNN을 다시 활성화합니다.
10. CUDNN 절반을 다시 활성화했습니다.
11. 하드 코딩된 CUDA 아키텍처를 제거했습니다.
12. CUDA 버전 정보가 개선되었습니다.
13. AVX를 다시 활성화했습니다.
14. 이전 솔루션과 Makefile을 제거했습니다.
15. OpenCV를 선택 사항이 아닌 것으로 만들었습니다.
16. 이전 pthread 라이브러리에 대한 종속성을 제거했습니다.
17. STB를 제거했습니다.
18. 새로운 CUDA 감지를 사용하기 위해 CMakeLists.txt를 다시 작성했습니다.
19. 이전 "알파벳" 코드를 제거하고 데이터/라벨에서 이미지를 삭제했습니다.
20. 소스 외부 빌드를 활성화했습니다.
21. 향상된 버전 번호 출력.
22. 훈련과 관련된 성능 최적화(진행 중).
23. 추론과 관련된 성능 최적화(진행 중).
24. 해당되는 경우 참조별 전달을 구현했습니다.
25. .hpp 파일을 정리했습니다.
26. darknet.h를 다시 작성했습니다.
27. cv::Mat를 void*로 캐스팅하는 것을 제거하여 이를 적절한 C++ 객체로 사용했습니다.
28. 내부 이미지 구조 사용 방식의 일관성이 향상되었습니다.
29. ARM 기반 Jetson 장치에 대한 빌드가 수정되었습니다.
30. V3의 Python API를 수정했습니다.
단기 목표:
1. printf()를 std::cout(진행 중)으로 바꾸십시오.
2. 이전 zed 카메라 지원을 조사합니다.
3. 명령줄 구문 분석을 개선하고 표준화합니다(진행 중).
중기 목표:
1. 모든 char* 코드를 제거하고 std::string으로 대체합니다.
2. 컴파일러 경고를 제거합니다(진행 중).
3. C의 사용자 정의 이미지 구조 대신 cv::Mat 사용을 개선합니다(진행 중).
4. 이전 목록 기능을 std::벡터 또는 std::list로 대체합니다.
5. 1채널 회색조 이미지 지원을 수정했습니다.
6. N > 3인 N 채널 이미지에 대한 지원을 추가합니다(예: 추가 깊이 또는 열 채널이 있는 이미지).
7. 지속적인 코드 정리(진행 중).
장기 목표:
1. 모든 GPU에서 CUDA/CUDNN 문제를 해결합니다.
2. CUDA+cuDNN 코드 재작성.
3. NVIDIA GPU가 아닌 GPU에 대한 지원을 살펴보세요.
4. 회전된 경계 상자 또는 "각도" 지원을 구현합니다.
5. 키포인트/골격을 지원합니다.
6. 히트맵 지원(진행 중)
7. 분할.