Schema.org에 오신 것을 환영합니다.
이것은 Schema.org 프로젝트 저장소입니다. 여기에는 Schema.org를 게시하는 데 사용되는 모든 스키마, 예제 및 소프트웨어가 포함되어 있습니다. 사이트 자체에 대해서는 대신 Schema.org를 참조하세요.
참고: 지원 소프트웨어의 대부분은 하위 모듈인 'sdopythonapp'에서 가져옵니다.
문제와 제안은 프로젝트 관련 공동 작업자, 특히 W3C Schema.org 커뮤니티 그룹 참가자가 관리합니다. 참여하고 싶다면 W3C 그룹에 가입하여 자신을 소개하고 여기에서 관심 있는 문제를 찾거나 제출하세요. Git 및 GitHub를 처음 사용하는 경우 W3C Wiki에 GitHub에 대한 유용한 소개가 있습니다.
들어오는 풀 요청을 확인하기 위한 지속적인 통합 테스트도 있습니다.
GitHub의 이슈 #1은 릴리스 계획의 시작점입니다. 광범위한 주제, 특정 문제 및 릴리스 이정표 측면에서 향후 작업에 대한 개요를 제공해야 합니다. 문제 #1은 릴리스별 진입점에 연결되거나 GitHub 내의 레이블 또는 마일스톤을 통해 문제를 탐색합니다.
사이트에 대한 모든 변경 사항은 여기에서 토론을 통해 이루어집니다. 실질적인 변경 사항은 릴리스 노트에 기록되어 있습니다. 새 릴리스 노트 초안의 미리 보기는 다음 릴리스에 대한 테스트 사이트의 일부로 찾을 수 있습니다. 매달 Schema.org 운영 그룹과 더 넓은 커뮤니티의 최종 검토를 거쳐 공식 릴리스를 만듭니다.
문서 및 소프트웨어에 대한 CC 및 오픈소스 라이선스에 대해서는 FAQ 항목을 참조하세요.
우리는 항상schema.org 개선을 위한 실질적인 제안에 관심이 있으며, 스키마 컬렉션은 2011년 출시 이후 점진적으로 증가하고 있습니다. 우리는 새로운 스키마를 추가하는 것보다 기존 스키마, 예제 및 문서에 대한 간단한 수정 및 개선을 우선시하려고 노력합니다. 일부(대규모) 소비 애플리케이션이 데이터를 사용할 것이라는 증거가 있는 경우 새 스키마를 추가할 가능성이 가장 높습니다. 소비 애플리케이션은 검색 엔진일 필요는 없습니다. 소프트웨어 도구(예: 오픈 소스, 웹 분석에 대한 마크업 강화 접근 방식, 브라우저 추가 기능 또는 클라우드 도구)는 모두 탐색 및 협업을 위한 풍부한 영역입니다. 중요한 것은 데이터 소비자가 변화를 잘 활용할 것이라는 합리적인 기대가 있어야 한다는 것입니다. 일반적으로 검색 엔진이 Schema.org 기반의 구조화된 데이터를 사용하려고 한다는 점을 근거로 추가 내용을 정당화하는 것만으로는 충분하지 않습니다. 작은 변경 사항과 이전 버전과 호환되는 변경 사항을 통합하기가 더 쉽습니다.
참고: Schema.org는 웹 콘텐츠의 전체 세부정보를 캡처하려고 시도하지 않습니다. 그것은 필연적으로 더 복잡한 현실을 단순화하는 것입니다. 이는 Schema.org에 더 많은 세부 정보를 추가하는 것이 가능해 보이는 경우가 많다는 것을 의미합니다. 그러나 게시자와 웹마스터가 Schema.org를 단순하고 쉽게 사용할 수 있도록 유지하기 위해 이러한 세부 정보를 추가하지 않는 경우가 많습니다.
Schema.org는 JSON-LD, Microdata 및 RDFa와 같은 웹 표준을 사용하여 독립적인 확장을 허용합니다(예: GS1 어휘 참조).
또한 우아함, "적절한 모델링", 존재론적 순수성 또는 개념적 통일을 고려하여 Schema.org 용어를 대규모로 재구성하는 작업을 수행할 가능성도 거의 없습니다. 프로젝트 창립자와 팀은 이러한 우려 뒤에 숨은 전통을 잘 알고 존중하지만 Schema.org의 규모, 범위 및 특성으로 인해 우리는 점진적인 발전이라는 다소 지저분한 개념과 실용주의적인 개념을 위해 우아함과 글로벌 일관성을 교환해야 했습니다. 형식적인 온톨로지에서 어울리지 않는 스타일에 대한 관용. 통합된 도메인 간 논리 기반 지식 구조에 대한 제안은 예를 들어 Ontolog 커뮤니티에서 더 잘 받아들여질 수 있습니다.
마크업 유용성을 이유로 전용 속성 연결 없이 유형을 도입하는 경우도 있습니다. 공식적인 온톨로지에서 이는 종종 잘못된 모델링으로 간주됩니다. 그러나 논리적으로 동등한 구조는 JSON-LD 또는 RDF/S의 기본 형식 개념에 익숙하지 않은 게시자/웹마스터로부터 더 많은 오류를 초래할 수 있습니다.
Schema.org는 폐쇄형 시스템이 아니며 다른 이니셔티브(예: Wikidata 또는 GS1)에서는 우리가 Schema.org에서 정의한 용어와 함께 혼합할 수 있는 많은 다른 용어를 정의했습니다. 우리는 또한 Schema.org의 전체적인 우아함을 단독으로 감소시키는 경우에도 관련 외부 표준 및 이니셔티브에 맞춰 디자인을 조정하기 위해 노력합니다. 예를 들어, 서지나 문화유산의 맥락에서 우리는 MARC, BibFrame, FRBR과 같은 계획의 영향을 받을 수 있으며, 전자상거래의 경우 Good Relations 및 GS1과 협력했습니다. Schema.org의 뉴스 관련 용어는 사실 확인 기관, Trust Project 등과의 협력과 함께 IPTC의 rNews 디자인을 통합함으로써 큰 영향을 받았습니다. 우리의 TV 및 음악 관련 어휘는 음악 온톨로지 및 MusicBrainz와 함께 BBC 및 유럽 방송 연합과 협력하여 큰 영향을 받았습니다. 우리의 스키마는 이러한 이전 디자인을 반영합니다. 우리는 이러한 방식으로 협력하여 Schema.org를 점진적으로 개선하고 자체적인 순수 모델을 단독으로 생성하기보다는 이러한 디자인을 다듬고 통합하고 혼합하는 것을 선호합니다. 결과적으로 글로벌 우아함이 부족할 수 있지만 우리 작업이 전 세계 관련 노력과 일치하게 됩니다.
우리는 유용성 및 가독성 문제를 추적하는 문제를 항상 환영하지만, 전반적인 철학적 문제(예: 예약 또는 작업이 "실제로" 이벤트인지 여부)보다는 구체적인 상황(예: 반복 이벤트를 설명하는 방법)에 초점을 맞추도록 권장합니다. 우리는 글로벌 우아함(모든 것이 합리적인 위치에 있다는 글로벌 이론 보유)보다 로컬 일관성(많은 일반적인 상황을 설명하는 합리적인 방법 보유)을 우선시합니다. 이는 정리가 전혀 없다는 의미는 아니지만 다른 고려 사항과 균형을 이루고 있습니다(종종 더 중요함).
종종 "보류 중" 영역에 용어를 추가할 때 우리는 새로운 용어가 다른 용어와 어떻게 관련되는지, 기존 패턴과 함께 어떻게 사용할 수 있는지 등 글로벌 관점을 취하는 피드백을 강력히 권장합니다. 이 통합 단계는 이러한 고려 사항을 반영하지만 일반적으로 대대적인 구조 조정보다는 적절한 표현 변경, 예제 또는 유형/속성 링크 문서 조정을 통해 표현됩니다.
"우리가 일하는 방식"에 대해 자세히 알아보세요.
대부분의 공동작업자가 소프트웨어에 대해 알아야 할 것은 실행 방법뿐입니다. 소프트웨어의 목적은 잠재적인 로컬 변경 사항을 포함하여 Schema.org 사이트의 정적 복사본을 생성하여 테스트를 위해 로컬 시스템의 간단한 웹 서버 뒤에서 검사하고 실행하는 것입니다. 프로덕션 릴리스가 클라우드 서버에 배포되는 것과 동일한 방식으로 gcloud를 사용하여 로컬 버전을 가상 머신에 배포하여 다른 사람들과 공동작업할 수 있습니다.
작업할 초기 로컬 복사본을 생성하는 방법을 설명하는 전체 지침은 SOFTWARE_README.md에서 제공되며, 변경 사항을 테스트하기 위해 발전합니다. 기본적으로 Python 버전 3.6 이상이 로드된 Linux와 유사한(Mac 포함) 환경이 필요합니다. 그런 다음 자신의 컴퓨터에서 실행 중인 Schema.org의 테스트 빌드를 http://localhost:8080/으로 액세스할 수 있도록 만들거나 공동 작업을 위해 appspot.com에 게시할 수 있습니다. 관련 gcloud 명령어에 대한 자세한 내용은 Appengine 문서를 참조하세요.
소프트웨어 및 그 사용에 대한 자세한 내용은 SOFTWARE_README.md에서 확인할 수 있습니다. Wiki의 참고 사항도 참조하세요: https://github.com/schemaorg/schemaorg/wiki/Contributing
모든 스키마와 예제는 data/ utf-8 인코딩 파일에 있습니다.
기본 스키마 파일은 data/schema.ttl(utf-8)입니다.
스키마를 개발하는 동안 data/sdo-somethinghere-schema.ttl을 사용하는 것이 유용할 수 있습니다.
형식은 RDF/Turtle 형식의 W3C RDFS를 기반으로 합니다.
예제는 data/examples.txt(utf-8) 및 기타 .txt 파일에 저장됩니다.
스키마와 마찬가지로 data/examples.txt도 읽혀집니다. 별도의 파일을 사용하여 개발하는 것이 유용할 수 있습니다.
어휘가 최종적으로 메인 저장소에 통합되면 스키마 데이터가 Schema.org에 병합됩니다. 그러나 예제는 별도의 파일에 유지됩니다. 이는 git의 파일 비교 기계와 더 잘 작동하기 때문입니다.
data/releases/ 계층 구조는 릴리스 스냅샷용으로 예약되어 있습니다(https://schema.org/version/ 참조).
ext// 계층 구조는 확장용으로 예약되어 있습니다(https://schema.org/docs/extension.html 참조).
우리는 진행 중인 작업에 더 이상 github 브랜치를 사용하지 않습니다. 메인/브랜치는 우리의 최신 후보입니다. 개념적으로 일관된 상태를 보장할 수는 없으나, 검토를 위한 릴리스 후보가 배포되기 전에 안정화되어야 합니다.
이 문서는 Schema.org 자체보다는 소프트웨어 코드베이스에 관한 것입니다. 그러나 영어 변형 중에서 선택해야 하는 경우 레이블, 주석 및 문서는 미국 영어(코드 및 스키마에서)를 사용해야 합니다. 가능하다면 국제 영어를 목표로 하세요.
참조: https://twitter.com/schemaorg_dev
예:
`
Apache-2.0 라이센스
목차
다크넷 개체 탐지 프레임워크 및 YOLO
서류
일반 정보
다크넷 버전
MSCOCO 사전 훈련된 가중치
건물
구글 코랩
리눅스 CMake 방법
Windows CMake 메서드
다크넷 사용
CLI
훈련
기타 도구 및 링크
로드맵
단기 목표
중기 목표
장기 목표
다크넷 개체 탐지 프레임워크 및 YOLO
darknet 및 hank.ai 로고
Darknet은 C, C++ 및 CUDA로 작성된 오픈 소스 신경망 프레임워크입니다.
YOLO(You Only Look Once)는 Darknet 프레임워크에서 실행되는 최첨단 실시간 개체 감지 시스템입니다.
Hank.ai가 Darknet/YOLO 커뮤니티를 어떻게 돕는지 읽어보세요.
Darknet V3 "Jazz" 발표
Darknet/YOLO 웹사이트를 참조하세요.
Darknet/YOLO FAQ를 읽어보세요.
Darknet/YOLO 디스코드 서버에 가입하세요
서류
종이 YOLOv7
종이 크기 조정-YOLOv4
종이 YOLOv4
종이 YOLOv3
일반 정보
Darknet/YOLO 프레임워크는 다른 프레임워크 및 YOLO 버전보다 계속해서 더 빠르고 정확합니다.
이 프레임워크는 완전 무료이며 오픈 소스입니다. 라이센스나 수수료 없이 Darknet/YOLO를 상업용 프로젝트를 포함한 기존 프로젝트 및 제품에 통합할 수 있습니다.
2024년 10월에 출시된 Darknet V3("Jazz")는 NVIDIA RTX 3090 GPU를 사용할 때 최대 1000FPS에서 LEGO 데이터 세트 비디오를 정확하게 실행할 수 있습니다. 즉, Darknet/YOLO에서 각 비디오 프레임을 읽고, 크기를 조정하고, 1밀리초 이내에 처리합니다. 더 적은.
도움이 필요하거나 Darknet/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에서 작동하는 것으로 알려져 있습니다. 아래의 조립 지침을 참조하세요.
다크넷 버전
Joseph Redmon이 2013~2017년에 작성한 원본 Darknet 도구에는 버전 번호가 없습니다. 우리는 이 버전을 0.x로 간주합니다.
2017년부터 2021년까지 Alexey Bochkovskiy가 관리한 다음 인기 Darknet 저장소에도 버전 번호가 없었습니다. 우리는 이 버전을 1.x로 간주합니다.
Hank.ai가 후원하고 2023년부터 Stéphane Charette가 유지 관리하는 Darknet 저장소는 버전 명령이 있는 최초의 저장소였습니다. 2023년부터 2024년 말까지 버전 2.x "OAK"를 반환했습니다.
목표는 코드베이스에 익숙해지면서 기존 기능을 최대한 활용하는 것이었습니다.
Windows와 Linux 모두에서 CMake를 사용하여 빌드하는 하나의 통합된 방법을 갖도록 빌드 단계를 다시 작성했습니다.
C++ 컴파일러를 사용하도록 코드베이스를 변환했습니다.
훈련하는 동안 Chart.png가 향상되었습니다.
버그 수정 및 성능 관련 최적화는 주로 네트워크 훈련에 걸리는 시간을 줄이는 것과 관련이 있습니다.
이 코드베이스의 마지막 분기는 v2 분기의 버전 2.1입니다.
다음 개발 단계는 2024년 중반에 시작되어 2024년 10월에 출시되었습니다. 이제 버전 명령은 3.x "JAZZ"를 반환합니다.
이러한 명령 중 하나를 실행해야 하는 경우 언제든지 이전 v2 분기를 체크아웃할 수 있습니다. 누락된 명령을 다시 추가하는 방법을 조사할 수 있도록 알려주시기 바랍니다.
오래되고 유지 관리되지 않는 많은 명령을 제거했습니다.
훈련 및 추론 중에 다양한 성능 최적화가 이루어졌습니다.
레거시 C API가 수정되었습니다. 원본 Darknet API를 사용하는 애플리케이션에는 약간의 수정이 필요합니다: https://darknetcv.ai/api/api.html
새로운 Darknet V3 C 및 C++ API: https://darknetcv.ai/api/api.html
src-examples의 새로운 앱과 샘플 코드: https://darknetcv.ai/api/files.html
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 사전 훈련된 가중치는 데모 목적으로만 제공됩니다. 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++를 알 필요가 없는 것처럼, 자동차를 운전하기 위해 정비공이 될 필요도 없습니다.
구글 코랩
리눅스
윈도우
더 복잡한 빌드 단계가 포함된 이전 튜토리얼을 따르거나 이 추가 정보의 내용과 일치하지 않는 빌드 단계를 따르는 경우 주의하세요. 아래에 설명된 새로운 빌드 단계는 2023년 8월에 시작되었습니다.
소프트웨어 개발자는 https://darknetcv.ai/를 방문하여 Darknet/YOLO 개체 감지 프레임워크의 내부 정보를 얻는 것이 좋습니다.
구글 코랩
Google Colab 지침은 Linux 지침과 동일합니다. 새로운 네트워크 훈련과 같은 특정 작업을 수행하는 방법을 보여주는 여러 Jupyter 노트북을 사용할 수 있습니다.
colab 하위 디렉터리에서 노트북을 확인하거나 아래 Linux 지침을 따르세요.
리눅스 CMake 방법
Linux용 Darknet 빌드 튜토리얼
선택 사항: 최신 NVIDIA GPU가 있는 경우 이 시점에서 CUDA 또는 CUDA+cuDNN을 설치할 수 있습니다. 설치된 경우 Darknet은 GPU를 사용하여 이미지(및 비디오) 처리 속도를 높입니다.
CMake가 필요한 모든 파일을 다시 찾도록 하려면 Darknet 빌드 디렉터리에서 CMakeCache.txt 파일을 삭제해야 합니다.
Darknet을 다시 구축하는 것을 잊지 마십시오.
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 및 nvidia-smi를 실행할 수 있는지 확인하세요. PATH 변수를 수정해야 할 수도 있습니다.
나중에 CUDA 또는 CUDA+cuDNN을 설치하거나 최신 버전의 NVIDIA 소프트웨어로 업그레이드하는 경우:
이 지침에서는 Ubuntu 22.04를 실행하는 시스템을 가정합니다(필수는 아닙니다!). 다른 배포판을 사용하는 경우 필요에 따라 조정하세요.
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
이전 버전의 CMake를 사용하는 경우 위의 cmake 명령을 실행하려면 먼저 CMake를 업그레이드해야 합니다. Ubuntu에서 CMake를 업그레이드하려면 다음 명령을 사용하면 됩니다.
sudo apt-get purge cmake sudo snap install cmake --classic
bash를 명령 셸로 사용하는 경우 이 시점에서 셸을 다시 시작해야 합니다. 물고기를 사용하는 경우 즉시 새 경로를 선택해야 합니다.
고급 사용자:
DEB 파일 대신 RPM 설치 파일을 빌드하려면 CM_package.cmake에서 관련 라인을 참조하세요. make -j4 패키지를 실행하기 전에 다음 두 줄을 편집해야 합니다.
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
Centos 및 OpenSUSE와 같은 배포판의 경우 CM_package.cmake에서 해당 두 줄을 다음과 같이 전환해야 합니다.
SET(CPACKGENERATOR "DEB")SET(CPACKGENERATOR "RPM")
빌드가 완료된 후 설치 패키지를 설치하려면 배포용 일반 패키지 관리자를 사용하십시오. 예를 들어 Ubuntu와 같은 Debian 기반 시스템에서는 다음과 같습니다.
sudo dpkg -i darknet-2.0.1-Linux.deb
.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 템플릿이 저장되는 곳입니다.
이제 끝났습니다! Darknet은 /usr/bin/에 구축 및 설치되었습니다. 테스트하려면 이것을 실행하세요: 다크넷 버전.
/usr/bin/darknet이 없다면 설치하지 않고 빌드만 했다는 의미입니다! 위에서 설명한 대로 .deb 또는 .rpm 파일을 설치했는지 확인하세요.
Windows CMake 메서드
이 지침에서는 Windows 11 22H2를 새로 설치한다고 가정합니다.
일반 cmd.exe 명령 프롬프트 창을 열고 다음 명령을 실행합니다.
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을 다시 구축하는 것을 잊지 마십시오.
Darknet은 그것 없이 실행될 수 있지만 사용자 정의 네트워크를 교육하려면 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#download-windows를 방문하세요.
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 릴리스
cublas64_12.dll과 같은 일부 누락된 CUDA 또는 cuDNN 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 설치 패키지를 설치하면 다음이 수행됩니다.
C:Program FilesDarknet과 같은 Darknet이라는 디렉터리를 만듭니다.
CLI 애플리케이션, darknet.exe 및 기타 샘플 앱을 설치합니다.
OpenCV의 파일과 같은 필수 타사 .dll 파일을 설치합니다.
다른 응용 프로그램에서 darknet.dll을 사용하려면 필요한 Darknet .dll, .lib 및 .h 파일을 설치하세요.
템플릿 .cfg 파일을 설치합니다.
이제 끝났습니다! 설치 마법사가 완료되면 Darknet이 C:Program FilesDarknet에 설치됩니다. 테스트하려면 다음을 실행하세요: C:Program FilesDarknetbindarknet.exe 버전.
C:/Program Files/darknet/bin/darknet.exe가 없다면 설치하지 않고 빌드만 했다는 뜻입니다! 이전 단계에서 NSIS 설치 마법사의 각 패널을 진행했는지 확인하세요.
다크넷 사용
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.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 .1150 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 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에서 가장 잘 수행됩니다. 왜냐하면 이 앵커는 100번 연속으로 실행되고 계산된 모든 앵커 중에서 가장 좋은 앵커를 선택하기 때문입니다. 하지만 Darknet에서 이전 버전을 실행하려면:
다크넷 탐지기 calcanchors Animals.data -numof_clusters 6 -너비 320 -높이 256
새 네트워크 훈련:
darknet detector -map -dont_show train Animals.data Animals.cfg(아래 교육 섹션도 참조)
훈련
Darknet/YOLO FAQ의 관련 섹션에 대한 빠른 링크:
파일과 디렉터리를 어떻게 설정해야 합니까?
어떤 구성 파일을 사용해야 합니까?
자체 네트워크를 훈련할 때 어떤 명령을 사용해야 합니까?
주석을 달고 훈련하는 가장 간단한 방법은 DarkMark를 사용하여 필요한 모든 Darknet 파일을 생성하는 것입니다. 이는 확실히 새로운 신경망을 훈련하는 데 권장되는 방법입니다.
사용자 정의 네트워크를 훈련시키기 위해 다양한 파일을 수동으로 설정하려는 경우:
파일이 저장될 새 폴더를 만듭니다. 이 예에서는 동물을 감지하기 위해 신경망이 생성되므로 ~/nn/animals/ 디렉터리가 생성됩니다.
템플릿으로 사용하려는 Darknet 구성 파일 중 하나를 복사하세요. 예를 들어 cfg/yolov4-tiny.cfg를 참조하세요. 생성한 폴더에 넣어주세요. 이 예에서는 이제 ~/nn/animals/animals.cfg가 있습니다.
구성 파일을 저장한 폴더에 Animals.names 텍스트 파일을 만듭니다. 이 예에서는 이제 ~/nn/animals/animals.names가 있습니다.
텍스트 편집기를 사용하여 Animals.names 파일을 편집합니다. 사용하려는 클래스를 나열하십시오. 빈 줄이나 주석 없이 한 줄에 정확히 1개의 항목이 있어야 합니다. 이 예의 경우 .names 파일에는 정확히 4줄이 포함됩니다.
개 고양이 새 말
동일한 폴더에 Animals.data 텍스트 파일을 만듭니다. 이 예의 경우 .data 파일에는 다음이 포함됩니다.
클래스 = 4 기차 = /home/username/nn/animals/animalstrain.txt 유효 = /home/username/nn/animals/animalsvalid.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 x 클래스 수입니다. 이 예에서는 4마리의 동물이 있으므로 4 * 2000 = 8000입니다. 즉, maxbatches=8000을 사용한다는 의미입니다.
참고 단계=.... 이는 최대 배치의 80% 및 90%로 설정되어야 합니다. 이 예에서는 maxbatches가 8000으로 설정되었으므로 steps=6400,7200을 사용합니다.
참고 너비=... 및 높이=.... 이는 네트워크 크기입니다. Darknet/YOLO FAQ에서는 사용할 최적의 크기를 계산하는 방법을 설명합니다.
class=... 줄의 모든 인스턴스를 검색하고 .names 파일의 클래스 수로 수정합니다. 이 예에서는 클래스=4를 사용합니다.
각 [yolo] 섹션 앞의 [convolutional] 섹션에서 행 filter=...의 모든 인스턴스를 검색합니다. 사용할 값은 (numberofclasses + 5) 3입니다. 이 예의 의미는 (4 + 5) 3 = 27입니다. 따라서 해당 행에서 filter=27을 사용합니다.
훈련을 시작하세요! 다음 명령을 실행하십시오.
cd ~/nn/animals/ 다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
인내심을 가지십시오. 가장 좋은 가중치는 Animals_best.weights로 저장됩니다. 그리고 훈련 진행 상황은 다음을 통해 확인할 수 있습니다.