
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ตัวแยกประเภท Haar ใน python และ opencv ค่อนข้างยุ่งยาก แต่ใช้งานง่าย
เรามักประสบปัญหาในการตรวจจับและจำแนกภาพ ทางออกที่ดีที่สุดคือการสร้างตัวแยกประเภทของคุณเอง ที่นี่เราเรียนรู้ที่จะสร้างตัวแยกประเภทรูปภาพของเราเองด้วยคำสั่งไม่กี่คำสั่งและโปรแกรมหลามที่ยาวแต่เรียบง่าย
การจัดประเภทต้องใช้รูปภาพเชิงลบและบวกจำนวนมาก เนกาทีฟไม่มีวัตถุที่ต้องการในขณะที่ค่าบวกคือวัตถุที่มีวัตถุที่จะตรวจพบ
จำเป็นต้องมีค่าลบและค่าบวกประมาณ 2,000 รายการ โปรแกรม python จะแปลงรูปภาพเป็นระดับสีเทาและมีขนาดที่เหมาะสม เพื่อให้ตัวแยกประเภทใช้เวลาที่เหมาะสมที่สุดในการสร้าง
ขั้นตอนที่ 1: ซอฟต์แวร์ที่จำเป็น
คุณต้องใช้ซอฟต์แวร์ต่อไปนี้เพื่อสร้างตัวแยกประเภทของคุณเอง
1) OpenCV: เวอร์ชันที่ฉันใช้คือ 3.4.2 เวอร์ชันนี้ใช้ได้อย่างง่ายดายบนอินเทอร์เน็ต
2) Python: เวอร์ชันที่ใช้คือ 3.6.2 สามารถดาวน์โหลดได้จาก python.org
นอกจากนี้คุณต้องมีเว็บแคม (แน่นอน)
ขั้นตอนที่ 2: ดาวน์โหลดรูปภาพ
ขั้นตอนแรกคือการถ่ายภาพวัตถุที่จะจำแนกให้ชัดเจน
ขนาดไม่ควรใหญ่มากเพราะต้องใช้เวลามากในการประมวลผลคอมพิวเตอร์ ฉันเอาขนาด 50 คูณ 50
ต่อไปเราจะดาวน์โหลดภาพเชิงลบและบวก คุณสามารถค้นหาได้ทางออนไลน์ แต่เราใช้รหัสหลามเพื่อดาวน์โหลดภาพจาก 'https://image-net.org'
ต่อไปเราจะแปลงภาพเป็นระดับสีเทาและขนาดปกติ สิ่งนี้ถูกนำไปใช้ในรหัส รหัสจะลบรูปภาพที่ผิดพลาดออกด้วย
ถึงตอนนี้ไดเร็กทอรีของคุณควรมีภาพวัตถุเช่น watch5050-j.webp
หากไม่ได้สร้างโฟลเดอร์ข้อมูล ให้ทำด้วยตนเอง
รหัสหลามมีอยู่ในไฟล์.py
ขั้นตอนที่ 3: การสร้างตัวอย่างเชิงบวกใน OpenCV


ตอนนี้ไปที่ไดเร็กทอรี opencv_createsamples และเพิ่มเนื้อหาที่กล่าวถึงข้างต้นทั้งหมด
ในพรอมต์คำสั่งให้ไปที่ C:\opencv342\build\x64\vc14\bin เพื่อค้นหาแอป opencv_createsamples และ opencv_traincascade
ตอนนี้รันคำสั่งต่อไปนี้
opencv_createsamples -img watch5050-j.webp
คำสั่งนี้ใช้สำหรับสร้างตัวอย่างเชิงบวกของวัตถุ 1950 ให้ถูกต้อง และไฟล์คำอธิบาย info.lst ของรูปภาพเชิงบวก คำอธิบายควรเป็นเช่นนี้ 0001_0014_0045_0028_0028-j.webp
ตอนนี้โฟลเดอร์มี
ข้อมูล
โฟลเดอร์รูปภาพ neg
bg.txt ไฟล์
โฟลเดอร์ข้อมูลว่าง
ขั้นตอนที่ 4: การสร้างไฟล์เวกเตอร์ที่เป็นบวก

ตอนนี้สร้างไฟล์เวกเตอร์บวกที่ให้พา ธ ไปยังภาพบวกไฟล์ decsription
ใช้คำสั่งต่อไปนี้
opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec positives.vec
ถึงตอนนี้เนื้อหาของไดเร็กทอรีจะต้องเป็นดังนี้:
--neg
----negimages.jpg
--opencv
--ข้อมูล
--ข้อมูล
--positives.vec
--bg.txt
--watch5050-j.webp
ขั้นตอนที่ 5: ฝึกลักษณนาม



ตอนนี้มาฝึก haar cascade และสร้างไฟล์ xml กัน
ใช้คำสั่งต่อไปนี้
opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
ขั้นตอนคือ 10 การเพิ่มขั้นตอนต้องใช้การประมวลผลมากขึ้น แต่ตัวแยกประเภทมีประสิทธิภาพมากกว่า
ตอนนี้ haarcascade ถูกสร้างขึ้น ใช้เวลาประมาณสองชั่วโมงจึงจะเสร็จสมบูรณ์ เปิดโฟลเดอร์ข้อมูลที่นั่น คุณจะพบ cascade.xml ซึ่งเป็นตัวแยกประเภทที่สร้างขึ้น
ขั้นตอนที่ 6: การทดสอบลักษณนาม
โฟลเดอร์ data มีไฟล์ต่างๆ ตามที่แสดงในภาพด้านบน
หลังจากสร้างตัวแยกประเภทแล้วเราจะดูว่าตัวแยกประเภททำงานหรือไม่โดยการรันโปรแกรม object_detect.py อย่าลืมวางไฟล์ classifier.xml ไว้ในไดเร็กทอรีหลาม
ขั้นตอนที่ 7: ขอขอบคุณเป็นพิเศษ
ฉันอยากจะขอบคุณ Senddex ที่เป็นโปรแกรมเมอร์หลามที่ยอดเยี่ยม
เขามีชื่อ youtube ด้วยชื่อที่กล่าวถึงข้างต้นและวิดีโอที่ช่วยฉันได้มากมีลิงค์นี้
รหัสส่วนใหญ่ถูกคัดลอกจาก senddex แม้ว่าจะได้รับความช่วยเหลือมากมายจาก senddex แต่ฉันก็ยังประสบปัญหามากมาย ฉันแค่อยากจะแบ่งปันประสบการณ์ของฉัน
ฉันหวังว่าคำแนะนำนี้จะช่วยคุณได้ !!! คอยติดตามข้อมูลเพิ่มเติม
BR
ตาฮีร์ อุลฮัก
แนะนำ:
เครื่องสแกนโค้ด QR โดยใช้ OpenCV ใน Python: 7 ขั้นตอน

เครื่องสแกนรหัส QR การใช้ OpenCV ใน Python: ในโลกปัจจุบันนี้ เราเห็นรหัส QR และบาร์โค้ดถูกใช้เกือบทุกที่ตั้งแต่บรรจุภัณฑ์ของผลิตภัณฑ์ไปจนถึงการชำระเงินออนไลน์ และทุกวันนี้ เราเห็นรหัส QR แม้แต่ในร้านอาหารเพื่อดูเมนู ดังนั้นไม่ สงสัยว่าตอนนี้เป็นความคิดที่ยิ่งใหญ่ แต่เคยไหม
การตรวจจับสีใน Python โดยใช้ OpenCV: 8 ขั้นตอน

การตรวจจับสีใน Python โดยใช้ OpenCV: สวัสดี! คำแนะนำนี้ใช้เพื่อแนะนำวิธีการแยกสีเฉพาะจากรูปภาพใน python โดยใช้ไลบรารี openCV หากคุณเพิ่งเริ่มใช้เทคนิคนี้ ไม่ต้องกังวล ที่ส่วนท้ายของคู่มือนี้ คุณจะสามารถตั้งโปรแกรมสีของคุณเองได้
การจดจำใบหน้าและการระบุตัวตน - Arduino Face ID โดยใช้ OpenCV Python และ Arduino: 6 ขั้นตอน

การจดจำใบหน้าและการระบุตัวตน | Arduino Face ID โดยใช้ OpenCV Python และ Arduino: การจดจำใบหน้า AKA face ID เป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดบนโทรศัพท์มือถือในปัจจุบัน ดังนั้นฉันจึงมีคำถาม "ฉันขอรหัสใบหน้าสำหรับโครงการ Arduino ของฉันได้ไหม" และคำตอบคือ ใช่… การเดินทางของฉันเริ่มต้นดังนี้: ขั้นตอนที่ 1: เข้าถึงเรา
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน

Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: 4 ขั้นตอน

Augmented Reality (AR) สำหรับ Dragonboard410c หรือ Dragonboard820c โดยใช้ OpenCV และ Python 3.5: คำแนะนำนี้จะอธิบายวิธีการติดตั้ง OpenCV, Python 3.5 และการพึ่งพาสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Augmented Reality