มาร์ไมท์
Marmite [Markdown makes sites] เป็นเครื่องมือสร้างไซต์คงที่ที่ง่ายมาก
โปรแกรมแก้ไข Downcodes กล่าวว่า: "Marmite เป็นเครื่องมือสร้างเว็บไซต์แบบสแตติกที่เรียบง่ายมาก ฉันมักจะใช้ SSG อื่น ๆ แต่มักจะพบว่ามันยุ่งยากเกินไปที่จะตั้งค่าตั้งแต่เริ่มต้น เพียงแค่ไดเร็กทอรีของไฟล์มาร์กดาวน์และการรันคำสั่งก็สามารถสร้างเว็บไซต์ได้ เสียงนี้ฟังดูดี สะดวกจริงๆ”
วิธีใช้
Marmite ทำสิ่งง่ายๆ อย่างหนึ่ง:
แปลงไฟล์มาร์กดาวน์เป็น HTML
นอกจากนี้ยังสามารถจัดการการสร้างหรือการคัดลอกไฟล์สแตติกหรือไฟล์มีเดียไปยังไดเร็กทอรีเอาต์พุตได้
ติดตั้ง
ติดตั้งโดยใช้สินค้า:
`ทุบตี
สินค้าติดตั้งมาร์ไมท์
-
หรือดาวน์โหลดไบนารีที่คอมไพล์แล้วจากหน้าเผยแพร่
ใช้
มันใช้งานง่ายมาก!
`ทุบตี
$ marmite โฟลเดอร์ที่มีเครื่องหมายดาวน์ไฟล์พา ธ ที่สร้างไซต์
-
เว็บไซต์จะถูกสร้างขึ้นในไดเร็กทอรี pathtogenated_site/
คลีไอ
`ทุบตี
❯ มาร์ไมต์ --ช่วยด้วย
Marmite เป็นเครื่องมือสร้างไซต์คงที่ที่ง่ายที่สุด
การใช้งาน: marmite [ตัวเลือก]
ข้อโต้แย้ง:
ตัวเลือก:
--serve ให้บริการไซต์ด้วยเซิร์ฟเวอร์ HTTP ในตัว
--watch ตรวจจับการเปลี่ยนแปลงและสร้างไซต์ใหม่โดยอัตโนมัติ
--ผูก
ที่อยู่ที่จะผูกเซิร์ฟเวอร์ [ค่าเริ่มต้น: localhost:8000]
--config
เส้นทางไปยังไฟล์การกำหนดค่าแบบกำหนดเอง [ค่าเริ่มต้น: marmite.yaml]
--debug พิมพ์ข้อความดีบัก
--init-templates เริ่มต้นเทมเพลตในโครงการ
--start-theme เริ่มต้นธีมด้วยเทมเพลตและเนื้อหาคงที่
-h, --help ช่วยพิมพ์
-V, --version เวอร์ชันพิมพ์
-
เริ่มต้นเลย
อ่านบทช่วยสอนเพื่อเรียนรู้วิธีเริ่มต้นใช้งาน Marmite https://rochacbruno.github.io/marmite/getting-started.html และใช้เวลาสักครู่ในการสร้างบล็อกของคุณ
เอกสาร
อ่านเพิ่มเติมเกี่ยวกับวิธีการปรับแต่งเทมเพลต เพิ่มความคิดเห็น และอื่นๆ ได้ที่ https://rochacbruno.github.io/marmite/
สรุป
Marmite นั้นง่ายมาก
หากความเรียบง่ายนี้ไม่เหมาะกับความต้องการของคุณ ยังมีเครื่องมือสร้างเว็บไซต์คงที่ที่ยอดเยี่ยมอื่นๆ อีกมากมาย นี่คือบางส่วนที่ฉันแนะนำ:
เจคิลล์
ฮิวโก้
แกสบี้
เน็กซ์.เจส
กรอบการตรวจจับวัตถุ Darknet และ YOLO
ภาพรวม
Darknet เป็นเฟรมเวิร์กโครงข่ายประสาทเทียมแบบโอเพ่นซอร์สที่เขียนด้วยภาษา C, C++ และ CUDA
YOLO (คุณดูเพียงครั้งเดียว) คือระบบตรวจจับวัตถุแบบเรียลไทม์ที่ล้ำสมัยที่ทำงานในกรอบงาน Darknet
ลิงค์สำคัญ:
Hank.ai ช่วยชุมชน Darknet/YOLO ได้อย่างไร
เว็บไซต์ Darknet/YOLO
คำถามที่พบบ่อยเกี่ยวกับ Darknet/YOLO
เซิร์ฟเวอร์ Discord ของ Darknet/YOLO
กระดาษ
กระดาษ YOLOv7
กระดาษปรับขนาด-YOLOv4
กระดาษ YOLOv4
กระดาษ YOLOv3
ข้อมูลทั่วไป
เฟรมเวิร์ก Darknet/YOLO มีประสิทธิภาพเหนือกว่าเฟรมเวิร์กอื่นๆ และเวอร์ชัน YOLO อย่างต่อเนื่องในแง่ของความเร็วและความแม่นยำ
เฟรมเวิร์กนั้นฟรีและโอเพ่นซอร์สโดยสมบูรณ์ คุณสามารถรวม Darknet/YOLO เข้ากับโปรเจ็กต์และผลิตภัณฑ์ที่มีอยู่ รวมถึงผลิตภัณฑ์เชิงพาณิชย์ โดยไม่ต้องมีใบอนุญาตหรือค่าธรรมเนียม
Darknet V3 ("Jazz") เปิดตัวในเดือนตุลาคม 2024 สามารถรันวิดีโอชุดข้อมูล LEGO ได้อย่างแม่นยำที่สูงถึง 1,000 FPS เมื่อใช้ NVIDIA RTX 3090 GPU ซึ่งหมายความว่า Darknet/YOLO อ่านในเวลา 1 มิลลิวินาทีหรือน้อยกว่า ดึงข้อมูล ปรับขนาด และประมวลผลแต่ละเฟรมวิดีโอ .
Darknet/YOLO เวอร์ชัน CPU สามารถทำงานบนอุปกรณ์ง่ายๆ เช่น Raspberry Pi, เซิร์ฟเวอร์คลาวด์และ colab, เดสก์ท็อป, แล็ปท็อป และอุปกรณ์การฝึกอบรมระดับไฮเอนด์ Darknet/YOLO เวอร์ชัน GPU ต้องใช้ GPU ที่รองรับ CUDA ของ NVIDIA
Darknet/YOLO ทำงานบน Linux, Windows และ Mac ดูคำแนะนำในการสร้างด้านล่าง
เวอร์ชันดาร์กเน็ต
เครื่องมือ Darknet ดั้งเดิมที่เขียนโดย Joseph Redmon ในปี 2556-2560 ไม่มีหมายเลขเวอร์ชัน เราคิดว่ามันเป็นเวอร์ชัน 0.x
พื้นที่เก็บข้อมูล Darknet ยอดนิยมถัดไปที่ดูแลโดย Alexey Bochkovskiy ในช่วงปี 2560-2564 ยังไม่มีหมายเลขเวอร์ชันเช่นกัน เราเชื่อว่าเป็นเวอร์ชัน 1.x
พื้นที่เก็บข้อมูล Darknet ที่สนับสนุนโดย Hank.ai และดูแลโดยStéphane Charette ตั้งแต่ปี 2023 เป็นพื้นที่แรกที่มีคำสั่งเวอร์ชัน ตั้งแต่ปี 2023 ถึงสิ้นปี 2024 จะกลับมาเป็นเวอร์ชัน 2.x "OAK"
เป้าหมายคือการทำลายฟังก์ชันการทำงานที่มีอยู่ให้น้อยที่สุดเท่าที่จะเป็นไปได้ในขณะที่ทำความคุ้นเคยกับฐานโค้ด
เขียนขั้นตอนการสร้างใหม่เพื่อให้เรามีวิธีการสร้างบน Windows และ Linux แบบครบวงจรโดยใช้ CMake
แปลงฐานโค้ดเพื่อใช้คอมไพเลอร์ C++
ปรับปรุง Chart.png ระหว่างการฝึกอบรม
การแก้ไขข้อบกพร่องและการเพิ่มประสิทธิภาพที่เกี่ยวข้องกับประสิทธิภาพ ซึ่งส่วนใหญ่เกี่ยวข้องกับการลดเวลาที่ต้องใช้ในการฝึกอบรมเครือข่าย
สาขาสุดท้ายของฐานโค้ดนี้คือเวอร์ชัน 2.1 ในสาขา v2
การพัฒนาระยะต่อไปจะเริ่มในกลางปี 2024 และจะเปิดตัวในเดือนตุลาคม 2024 คำสั่ง version ส่งคืน 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
มีชุดข้อมูลที่เรียบง่ายกว่าและตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าอื่นๆ หลายชุดสำหรับการทดสอบ Darknet/YOLO เช่น LEGO Gears และ Rolodex สำหรับข้อมูลเพิ่มเติม โปรดดูคำถามที่พบบ่อยของ Darknet/YOLO
สามารถดาวน์โหลดตุ้มน้ำหนักที่ฝึกล่วงหน้าของ MSCOCO ได้จากสถานที่ต่างๆ หรือจากพื้นที่เก็บข้อมูลนี้:
YOLOv2 (พฤศจิกายน 2559)
- yolov2-tiny.weights
- yolov2-full.weights
YOLOv3 (พฤษภาคม 2018)
- yolov3-tiny.weights
- yolov3-full.weights
YOLOv4 (พฤษภาคม 2020)
- yolov4-tiny.weights
- yolov4-full.weights
YOLOv7 (สิงหาคม 2022)
- yolov7-tiny.weights
- yolov7-full.weights
ตุ้มน้ำหนักที่ฝึกล่วงหน้าของ MSCOCO มีไว้เพื่อการสาธิตเท่านั้น ไฟล์ .cfg และ .names ที่เกี่ยวข้อง (สำหรับ MSCOCO) จะอยู่ในไดเร็กทอรี 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 วิดีโอ 1.avi
-
โปรดทราบว่าควรฝึกอบรมเครือข่ายของตนเอง MSCOCO มักใช้เพื่อยืนยันว่าทุกอย่างเรียบร้อยดี
สร้าง
วิธีการก่อสร้างต่างๆ ในอดีต (ก่อนปี 2023) ได้ถูกผสานรวมเป็นหนึ่งเดียว Darknet ต้องการ C++17 หรือสูงกว่า, OpenCV และใช้ CMake เพื่อสร้างไฟล์โปรเจ็กต์ที่จำเป็น
คุณไม่จำเป็นต้องรู้ C++ เพื่อสร้าง ติดตั้ง หรือรัน Darknet/YOLO เช่นเดียวกับที่คุณไม่จำเป็นต้องเป็นช่างเครื่องก็ขับรถได้
Google Colab
คำแนะนำของ Google Colab เหมือนกับคำแนะนำของ Linux มีสมุดบันทึก Jupyter จำนวนมากที่แสดงวิธีการทำงานบางอย่าง เช่น การฝึกอบรมเครือข่ายใหม่
ดูสมุดบันทึกในไดเรกทอรีย่อย colab หรือทำตามคำแนะนำของ Linux ด้านล่าง
วิธีการลินุกซ์ CMake
1. ติดตั้งซอฟต์แวร์ที่จำเป็น:
`ทุบตี
sudo apt-get ติดตั้ง build-essential git libopencv-dev cmake
-
2. โคลนพื้นที่เก็บข้อมูล Darknet:
`ทุบตี
โคลนคอมไพล์ https://github.com/hank-ai/darknet
-
3. สร้างไดเร็กทอรี build:
`ทุบตี
ซีดีดาร์กเน็ต
สร้าง mkdir
สร้างซีดี
-
4. ใช้ CMake เพื่อสร้างไฟล์บิลด์:
`ทุบตี
cmake -DCMAKEBUILDTYPE=ปล่อย ..
-
5. สร้าง Darknet:
`ทุบตี
ทำ -j4
-
6. ติดตั้ง Darknet (ไม่จำเป็น):
`ทุบตี
ทำแพ็คเกจ
sudo dpkg -i darknet-VERSION.deb
-
สังเกต:
หากคุณติดตั้ง NVIDIA GPU บนระบบของคุณ คุณสามารถติดตั้ง CUDA หรือ CUDA+cuDNN เพื่อเร่งการประมวลผลภาพ (และวิดีโอ) ได้
หากคุณติดตั้ง CUDA หรือ CUDA+cuDNN หรืออัปเกรดซอฟต์แวร์ NVIDIA คุณจะต้องลบไฟล์ CMakeCache.txt ในไดเร็กทอรี build และสร้าง Darknet ใหม่
คุณสามารถใช้คำสั่งเวอร์ชัน darknet เพื่อตรวจสอบว่าติดตั้ง Darknet สำเร็จหรือไม่
วิธีการ Windows CMake
1. ติดตั้งซอฟต์แวร์ที่จำเป็น:
`ทุบตี
winget ติดตั้ง Git.Git
winget ติดตั้ง Kitware.CMake
ติดตั้ง winget nsis.nsis
winget ติดตั้ง Microsoft.VisualStudio.2022.Community
-
2. แก้ไขการติดตั้ง Visual Studio:
- เปิดเมนู Windows Start และเรียกใช้ Visual Studio Installer
- คลิก "แก้ไข"
- เลือก "การพัฒนาเดสก์ท็อปโดยใช้ C++"
- คลิก "แก้ไข" ที่มุมขวาล่าง จากนั้นคลิก "ใช่"
3. ติดตั้ง Microsoft VCPKG:
`ทุบตี
CDC:
mkdir c:src
ซีดี c:src
โคลนคอมไพล์ https://github.com/microsoft/vcpkg
ซีดี vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe รวมการติดตั้ง
.vcpkg.exe รวม PowerShell
.vcpkg.exe ติดตั้ง opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
-
4. โคลนพื้นที่เก็บข้อมูล Darknet:
`ทุบตี
ซีดี c:src
โคลนคอมไพล์ https://github.com/hank-ai/darknet.git
ซีดีดาร์กเน็ต
สร้าง mkdir
สร้างซีดี
-
5. ใช้ CMake เพื่อสร้างไฟล์บิลด์:
`ทุบตี
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
-
6. สร้าง Darknet:
`ทุบตี
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
-
7. ติดตั้ง Darknet:
- เรียกใช้ไฟล์ darknet-VERSION.exe ในไดเร็กทอรี build เพื่อเริ่มวิซาร์ดการติดตั้ง NSIS
สังเกต:
หากคุณติดตั้ง NVIDIA GPU บนระบบของคุณ คุณสามารถติดตั้ง CUDA หรือ CUDA+cuDNN เพื่อเร่งการประมวลผลภาพ (และวิดีโอ) ได้
หากคุณติดตั้ง CUDA หรือ CUDA+cuDNN หรืออัปเกรดซอฟต์แวร์ NVIDIA คุณจะต้องลบไฟล์ CMakeCache.txt ในไดเร็กทอรี build และสร้าง Darknet ใหม่
คุณสามารถใช้คำสั่งเวอร์ชัน darknet.exe เพื่อตรวจสอบว่าติดตั้ง Darknet สำเร็จหรือไม่
การใช้ดาร์กเน็ต
คลีไอ
ต่อไปนี้ไม่ใช่รายการคำสั่งทั้งหมดที่ Darknet รองรับ
นอกจาก Darknet CLI แล้ว ยังมี CLI ของโปรเจ็กต์ DarkHelp ซึ่งจัดเตรียม CLI ทางเลือกสำหรับ Darknet/YOLO DarkHelp CLI ยังมีคุณสมบัติขั้นสูงหลายประการที่ไม่มีใน Darknet คุณสามารถใช้ Darknet CLI และ DarkHelp CLI ในเวลาเดียวกันได้ โดยไม่ได้แยกจากกัน
สำหรับคำสั่งส่วนใหญ่ที่แสดงด้านล่าง คุณต้องใช้ไฟล์ .weights ที่สอดคล้องกับไฟล์ .names และ .cfg คุณสามารถฝึกเครือข่ายของคุณเองได้ (แนะนำเป็นอย่างยิ่ง!) หรือดาวน์โหลดโครงข่ายประสาทเทียมที่ผู้อื่นฝึกและโพสต์ได้ฟรีบนอินเทอร์เน็ต ตัวอย่างของชุดข้อมูลก่อนการฝึกอบรมได้แก่:
LEGO Gears (ค้นหาวัตถุในภาพ)
Rolodex (ค้นหาข้อความในภาพ)
MSCOCO (การตรวจจับวัตถุมาตรฐาน 80 หมวดหมู่)
คำสั่งให้รันได้แก่:
วิธีใช้ darknet: แสดงข้อมูลความช่วยเหลือ
เวอร์ชัน darknet: ตรวจสอบเวอร์ชัน
การทดสอบเครื่องตรวจจับ darknet cars.data cars.cfg cars_best.weights image1.jpg: ใช้รูปภาพเพื่อการทำนาย (V2)
darknet02displayannotatedimages cars.cfg image1.jpg: การทำนายโดยใช้รูปภาพ (V3)
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg: การทำนายโดยใช้รูปภาพ (DarkHelp)
การทดสอบเครื่องตรวจจับ darknetanimals.dataanimals.cfganimalbest.weights -extoutput dog.jpg: พิกัดเอาต์พุต (V2)
darknet01inference_images สัตว์ dog.jpg: พิกัดเอาต์พุต (V3)
DarkHelp --jsonanimals.cfganimals.namesanimals_best.weights dog.jpg: พิกัดเอาต์พุต (DarkHelp)
การสาธิตเครื่องตรวจจับ darknetanimals.dataanimals.cfganimalbest.weights -extoutput test.mp4: กำลังประมวลผลวิดีโอ (V2)
darknet03display_videos Animals.cfg test.mp4: กำลังประมวลผลวิดีโอ (V3)
DarkHelpanimals.cfganimals.namesanimals_best.weights test.mp4: กำลังประมวลผลวิดีโอ (DarkHelp)
การสาธิตเครื่องตรวจจับ darknetanimals.dataanimals.cfganimals_best.weights -c 0: อ่านจากเว็บแคม (V2)
darknet08display_webcam สัตว์: อ่านจากเว็บแคม (V3)
การสาธิตเครื่องตรวจจับ darknetanimals.dataanimals.cfganimalbest.weights test.mp4 -outfilename res.avi: บันทึกผลลัพธ์ลงในวิดีโอ (V2)
darknet05processvideosmultithreadedanimals.cfganimals.namesanimals_best.weights test.mp4: บันทึกผลลัพธ์ลงในวิดีโอ (V3)
DarkHelpanimals.cfganimals.namesanimals_best.weights test.mp4: บันทึกผลลัพธ์ลงในวิดีโอ (DarkHelp)
การสาธิตเครื่องตรวจจับ darknet Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput: ใช้รูปแบบ JSON (V2)
darknet06imagestojson สัตว์ image1.jpg: ใช้รูปแบบ JSON (V3)
DarkHelp --jsonanimals.namesanimals.cfganimals_best.weights image1.jpg: ใช้รูปแบบ JSON (DarkHelp)
การสาธิตเครื่องตรวจจับ darknetanimals.dataanimals.cfganimals_best.weights -i 1 test.mp4: ทำงานบน GPU เฉพาะ
แผนที่เครื่องตรวจจับ darknet Driving.data Driving.cfg Driving_best.weights ... : ตรวจสอบความถูกต้องของโครงข่ายประสาทเทียม
แผนที่เครื่องตรวจจับ darknet Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75: ตรวจสอบความถูกต้องของ mAP@IoU=75
เครื่องตรวจจับ darknet calcanchors Animals.data -numof_clusters 6 -กว้าง 320 -สูง 256: คำนวณจุดยึดใหม่
เครื่องตรวจจับ darknet -map -dont_show ฝึกสัตว์ data Animals.cfg: ฝึกเครือข่ายใหม่
รถไฟ
ฉันจะตั้งค่าไฟล์และไดเร็กทอรีของฉันได้อย่างไร?
ฉันควรใช้โปรไฟล์ใด
ฉันควรใช้คำสั่งใดในการฝึกเครือข่ายของตัวเอง?
การใช้คำอธิบายประกอบและการฝึกอบรม DarkMark เป็นวิธีที่ง่ายที่สุดซึ่งจะสร้างไฟล์ Darknet ที่จำเป็นทั้งหมด นี่เป็นวิธีที่แนะนำในการฝึกโครงข่ายประสาทเทียมใหม่อย่างแน่นอน
หากคุณต้องการตั้งค่าไฟล์ต่างๆ ด้วยตนเองเพื่อฝึกเครือข่ายแบบกำหนดเอง ให้ทำตามขั้นตอนเหล่านี้:
1. สร้างโฟลเดอร์ใหม่เพื่อจัดเก็บไฟล์ ตัวอย่างเช่น คุณจะสร้างโครงข่ายประสาทเทียมสำหรับตรวจจับสัตว์ ดังนั้นไดเร็กทอรีต่อไปนี้จะถูกสร้างขึ้น: ~/nn/animals/
2. คัดลอกไฟล์การกำหนดค่า Darknet ที่คุณต้องการใช้เป็นเทมเพลต ดูตัวอย่าง cfg/yolov4-tiny.cfg วางไว้ในโฟลเดอร์ที่คุณสร้างขึ้น สำหรับตัวอย่างนี้ ตอนนี้เรามี ~/nn/animals/animals.cfg
3. สร้างไฟล์ข้อความanimals.namesในโฟลเดอร์เดียวกับที่คุณวางไฟล์การกำหนดค่า สำหรับตัวอย่างนี้ ตอนนี้เรามี ~/nn/animals/animals.names
4. ใช้โปรแกรมแก้ไขข้อความเพื่อแก้ไขไฟล์animals.names ระบุหมวดหมู่ที่คุณต้องการใช้ แต่ละบรรทัดต้องมีหนึ่งรายการเท่านั้น ไม่มีบรรทัดว่างหรือความคิดเห็น สำหรับตัวอย่างนี้ ไฟล์ .names จะมี 4 บรรทัดต่อไปนี้:
-
สุนัข
แมว
นก
ม้า
-
5. สร้างไฟล์ข้อความanimals.dataในโฟลเดอร์เดียวกัน สำหรับตัวอย่างนี้ ไฟล์ .data จะประกอบด้วย:
-
คลาส=4
train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
ชื่อ=/home/ชื่อผู้ใช้/nn/animals/animals.names
backup=/home/username/nn/animals
-
6. สร้างโฟลเดอร์เพื่อจัดเก็บรูปภาพและคำอธิบายประกอบของคุณ ตัวอย่างเช่น อาจเป็น ~/nn/animals/dataset รูปภาพแต่ละรูปต้องมีไฟล์ .txt ที่เกี่ยวข้องซึ่งอธิบายคำอธิบายประกอบสำหรับรูปภาพนั้น รูปแบบของไฟล์ความคิดเห็น .txt มีความเฉพาะเจาะจงมาก คุณไม่สามารถสร้างไฟล์เหล่านี้ด้วยตนเองได้ เนื่องจากคำอธิบายประกอบแต่ละรายการจำเป็นต้องมีพิกัดที่แน่นอนของคำอธิบายประกอบ โปรดดู DarkMark หรือซอฟต์แวร์อื่นที่คล้ายคลึงกันเพื่อใส่คำอธิบายประกอบภาพของคุณ รูปแบบคำอธิบายประกอบ YOLO มีอธิบายอยู่ใน Darknet/YOLO FAQ
7. สร้างไฟล์ข้อความ "train" และ "valid" ที่มีชื่ออยู่ในไฟล์ .data ไฟล์ข้อความทั้งสองนี้จำเป็นต้องแสดงรายการรูปภาพทั้งหมดที่ Darknet ต้องใช้สำหรับการฝึกอบรมและการตรวจสอบ (เมื่อคำนวณ mAP%) ตามลำดับ หนึ่งภาพต่อบรรทัด เส้นทางและชื่อไฟล์อาจเป็นแบบสัมพัทธ์หรือแบบสัมบูรณ์ก็ได้
8. ใช้โปรแกรมแก้ไขข้อความเพื่อแก้ไขไฟล์ .cfg ของคุณ
- ตรวจสอบให้แน่ใจว่าชุด = 64
- ให้ความสนใจกับการแบ่งเขต ขึ้นอยู่กับขนาดเครือข่ายและจำนวนหน่วยความจำที่มีบน GPU คุณอาจต้องเพิ่มการแบ่งย่อย ค่าที่เหมาะสมที่สุดคือ 1 ดังนั้นให้เริ่มเลย หาก 1 ไม่ได้ผลสำหรับคุณ โปรดดูคำถามที่พบบ่อยของ Darknet/YOLO
- หมายเหตุ maxbatches=…. ค่าที่ดีในการเริ่มต้นคือจำนวนหมวดหมู่คูณด้วย 2000 ในตัวอย่างนี้ เรามีสัตว์ 4 ตัว ดังนั้น 4 * 2000 = 8000 ซึ่งหมายความว่าเราจะใช้ maxbatches=8000
- หมายเหตุขั้นตอน=…. ควรตั้งค่าเป็น 80% และ 90% ของ maxbatches สำหรับตัวอย่างนี้ เนื่องจาก maxbatches ถูกตั้งค่าเป็น 8000 เราจะใช้ขั้นตอน = 6400,7200
- หมายเหตุ ความกว้าง=... และความสูง=.... นี่คือมิติเครือข่าย คำถามที่พบบ่อยเกี่ยวกับ Darknet/YOLO อธิบายวิธีคำนวณขนาดที่เหมาะสมที่สุดที่จะใช้
- ค้นหาบรรทัด class=... ทั้งหมด และแก้ไขด้วยจำนวนคลาสในไฟล์ .names ของคุณ สำหรับตัวอย่างนี้ เราจะใช้ class=4
- ค้นหาตัวกรองทั้งหมด=... บรรทัดในส่วน [convolutional] ก่อนแต่ละส่วน [yolo] ค่าที่ใช้คือ (จำนวนหมวด + 5) 3. ซึ่งหมายความว่าสำหรับตัวอย่างนี้ (4 + 5) 3 = 27 ดังนั้นเราจึงใช้ตัวกรอง=27 ในบรรทัดที่เหมาะสม
9. เริ่มการฝึก! รันคำสั่งต่อไปนี้:
`ทุบตี
ซีดี ~/nn/สัตว์/
เครื่องตรวจจับ darknet -map -dont_show รถไฟanimals.dataanimals.cfg
-
โปรดรอ. ตุ้มน้ำหนักที่ดีที่สุดจะถูกบันทึกเป็นanimals_best.weights คุณสามารถติดตามความคืบหน้าของการฝึกอบรมได้โดยการดูไฟล์ Chart.png ดูคำถามที่พบบ่อยของ Darknet/YOLO สำหรับพารามิเตอร์เพิ่มเติมที่คุณอาจต้องการใช้เมื่อฝึกเครือข่ายใหม่
หากคุณต้องการดูรายละเอียดเพิ่มเติมระหว่างการฝึก ให้เพิ่มพารามิเตอร์ --verbose ตัวอย่างเช่น:
`ทุบตี
เครื่องตรวจจับ darknet -map -dont_show --verbose รถไฟanimals.dataanimals.cfg
-
เครื่องมือและลิงค์อื่นๆ
ในการจัดการโปรเจ็กต์ Darknet/YOLO ของคุณ ใส่คำอธิบายประกอบรูปภาพ ตรวจสอบคำอธิบายประกอบของคุณ และสร้างไฟล์ที่จำเป็นในการฝึกกับ Darknet โปรดดู DarkMark
สำหรับ CLI ทางเลือกที่ทรงพลังแทน Darknet สำหรับการทำงานกับการจัดเรียงรูปภาพ การติดตามวัตถุในวิดีโอ หรือ C++ API อันทรงพลังที่สามารถใช้งานได้ง่ายในแอปพลิเคชันเชิงพาณิชย์ โปรดดู DarkHelp
โปรดดูคำถามที่พบบ่อยของ Darknet/YOLO เพื่อดูว่าสามารถช่วยตอบคำถามของคุณได้หรือไม่
ลองดูบทแนะนำและวิดีโอตัวอย่างมากมายในช่อง YouTube ของ Stéphane
หากคุณมีคำถามหรือต้องการสนทนากับผู้ใช้ Darknet/YOLO คนอื่นๆ โปรดเข้าร่วมเซิร์ฟเวอร์ Darknet/YOLO Discord
แผนงาน
อัปเดตล่าสุด: 30-10-2024
สมบูรณ์
แทนที่ qsort() ด้วย std::sort() ในระหว่างการฝึกอบรม (ยังมีการทดแทนอื่น ๆ ที่คลุมเครืออยู่)
ลบ check_mistakes, getchar() และ system()
แปลง Darknet เพื่อใช้คอมไพเลอร์ C++ (g++ บน Linux, Visual Studio บน Windows)
แก้ไขการสร้าง Windows
แก้ไขการสนับสนุน Python
สร้างไลบรารี Darknet
เปิดใช้งานป้ายกำกับในการคาดคะเนอีกครั้ง (รหัส "ตัวอักษร")
เปิดใช้งานรหัส CUDA/GPU อีกครั้ง
เปิดใช้งาน CUDNN อีกครั้ง
เปิดใช้งาน CUDNN ครึ่งหนึ่งอีกครั้ง
อย่าฮาร์ดโค้ดสถาปัตยกรรม CUDA
ข้อมูลเวอร์ชัน CUDA ที่ดีขึ้น
เปิดใช้งาน AVX อีกครั้ง
ลบโซลูชันเก่าและ Makefile
ทำให้ OpenCV ไม่จำเป็น
ลบการพึ่งพาไลบรารี pthread เก่า
ลบ STB
เขียน CMakeLists.txt ใหม่เพื่อใช้เครื่องมือ CUDA ใหม่
ลบรหัส "ตัวอักษร" เก่าและลบรูปภาพมากกว่า 700 ภาพในข้อมูล/ป้ายกำกับ
สร้างซอร์สโค้ดภายนอก
มีเอาต์พุตหมายเลขเวอร์ชันที่ดีกว่า
การเพิ่มประสิทธิภาพการทำงานที่เกี่ยวข้องกับการฝึกอบรม (งานที่กำลังดำเนินอยู่)
การเพิ่มประสิทธิภาพการทำงานที่เกี่ยวข้องกับการอนุมาน (งานที่กำลังดำเนินอยู่)
ใช้การอ้างอิงตามค่าทุกครั้งที่เป็นไปได้
ทำความสะอาดไฟล์ .hpp
เขียน darknet.h ใหม่
อย่าแปลง cv::Mat เป็น void* แต่ให้ใช้เป็นวัตถุ C++ ที่ถูกต้องแทน
แก้ไขหรือคงโครงสร้างภาพภายในที่ใช้อย่างสม่ำเสมอ
แก้ไขการสร้างสำหรับอุปกรณ์ Jetson สถาปัตยกรรม ARM
- อุปกรณ์ Jetson ดั้งเดิมไม่น่าจะได้รับการแก้ไขเนื่องจาก NVIDIA ไม่รองรับอีกต่อไป (ไม่มีคอมไพเลอร์ C ++ 17)
- อุปกรณ์ Jetson Orin ใหม่ทำงานอยู่
แก้ไข Python API ใน V3
- ต้องการการสนับสนุน Python ที่ดีกว่า (มีนักพัฒนา Python คนใดบ้างที่ยินดีช่วยเหลือเกี่ยวกับปัญหานี้)
เป้าหมายระยะสั้น
แทนที่ printf() ด้วย std::cout (อยู่ระหว่างดำเนินการ)
ตรวจสอบการสนับสนุนกล้อง zed เก่า
การแยกวิเคราะห์บรรทัดคำสั่งที่ดีขึ้นและสอดคล้องกันมากขึ้น (อยู่ระหว่างดำเนินการ)
เป้าหมายระยะกลาง
ลบรหัส char* ทั้งหมดและแทนที่ด้วย std::string
อย่าซ่อนคำเตือนและล้างคำเตือนของคอมไพเลอร์ (อยู่ระหว่างดำเนินการ)
ใช้ cv::Mat ดีกว่าแทนโครงสร้างรูปภาพที่กำหนดเองใน C (อยู่ระหว่างดำเนินการ)
แทนที่ฟังก์ชันรายการเก่าด้วย std::vector หรือ std::list
แก้ไขการรองรับภาพระดับสีเทาช่องเดียว
เพิ่มการรองรับภาพ N-channel โดยที่ N > 3 (เช่น รูปภาพที่มีความลึกเป็นพิเศษหรือช่องระบายความร้อน)
การล้างโค้ดอย่างต่อเนื่อง (อยู่ระหว่างดำเนินการ)
เป้าหมายระยะยาว
แก้ไขปัญหา CUDA/CUDNN ที่เกี่ยวข้องกับ GPU ทั้งหมด
เขียนโค้ด CUDA+cuDNN ใหม่
พิจารณาเพิ่มการรองรับ GPU ที่ไม่ใช่ NVIDIA
กล่องขอบเขตแบบหมุนหรือการรองรับ "มุม" บางรูปแบบ
ประเด็นสำคัญ/โครงกระดูก
แผนที่ความร้อน (อยู่ระหว่างดำเนินการ)
การแบ่งส่วน