Мазмуну:
- 1 -кадам: Реалдуу убакыт режиминде жүздү аныктоо
- 2 -кадам: Үлгүлүү сүрөттөрүңүздү окутуу
- 3 -кадам: жүздөрдү таануу
Video: Opencv Бетти аныктоо, окутуу жана таануу: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
OpenCV-булагы ачык булактан турган компьютердин көрүү китепканасы, бул сүрөттү иштетүү сыяктуу негизги сүрөттөрдү иштетүү тапшырмаларын аткаруу үчүн абдан популярдуу, сүрөттү аралаштыруу, ошондой эле видеонун сапатын жогорулатуу, босого ж. Б. моделдер, алар жөнөкөй милдеттерди чечүү үчүн түздөн -түз колдонулушу мүмкүн.
opencv орнотуу үчүн бул шилтемени колдонуңуз
www.instructables.com/id/Opencv-and-Python…
1 -кадам: Реалдуу убакыт режиминде жүздү аныктоо
жүздү аныктоо боюнча көптөгөн программаларды гуглдан издесеңиз болот жана аныкталган жүздөр тренинг жана этикетка сыяктуу сүрөттөрдү кайра иштетүү үчүн папкада сакталышы керек. биз 30 үлгүлөрдү чогултканы жатабыз
cv2 импорттоо
np катары numpy импорттоо
импорт системасын импорттоо
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #сиздин harcascade файл жолун кошуу
name = raw_input ("Анын аты ким?")
#бардык файлдар Users/prasad/Documents/images папкасында сакталат
dirName = "/Users/prasad/Documents/images/" + name
print (dirName) эгер болбосо os.path.exists (dirName): os.makedirs (dirName) басып чыгаруу ("Каталог түзүлдү") башка: print ("Аты мурунтан эле бар") sys.exit ()
саноо = 1
#биз 30 үлгү чогултканы жатабыз
30 саны боюнча: break # frame = frame.array grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) жүздөр = faceCascade.detectMultiScale (боз, 1.5, 5) үчүн (x, y, w, h): roiGray = боз [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("жүз", roiGray) cv2.rectangle (кадр, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
эгер ачкыч == 27:
тыныгуу
#camera.release ()
cv2.destroyAllWindows ()
2 -кадам: Үлгүлүү сүрөттөрүңүздү окутуу
Жүздү аныктоо аяктагандан кийин, биз сүрөттөрдү үйрөтө алабыз
импорттоо osimport numpy катары PIL импорттоо Image импорт cv2 импорт туздалган #импорт сериялуу
#ser = serial. Serial ('/dev/ttyACM0', 9600, күтүү = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
таануучу = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#сүрөттөрдү сүрөттөр папкасынын астына үйрөтүңүз
imageDir = os.path.join (baseDir, "сүрөттөр")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write ("Окутуу…..". encode ())
os.walk ичиндеги root, dirs, файлдар үчүн (imageDir):
файлдагы файл үчүн print (root, dirs, files): print (file) if file.endswith ("png") or file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (тамыры) басып чыгаруу (энбелги)
labelIdsке жазбаса:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [label]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") жүздөр = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
(x, y, w, h) үчүн жүздөрдө:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
ачык ("этикеткалар", "wb") менен f катары:
pickle.dump (labelIds, f) f.close ()
таануучу.поезд (xTrain, np.array (yLabels))
ognizer.save ("trainer.yml") басып чыгаруу (labelIds)
3 -кадам: жүздөрдү таануу
тренинг аяктагандан кийин, сиз төмөнкү кодду иштете аласыз, ал сиздин үйрөтүлгөн жүзүңүздү тааный баштайт
импорт osos.environ ['PYTHONINSPECT'] = 'күйгүзүү' cv2 импорт numpy катары np импорт тузу #импорт RPi. GPIO GPIO катары импорттук убакыт уйкудан
f катары ачык ('этикеткалар', 'rb') менен:
dicti = pickle.load (f) f.close ()
камера = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
таануучу = cv2.face. LBPHFaceRecognizer_create () таануучу.окуу ("trainer.yml")
шрифт = cv2. FONT_HERSHEY_SIMPLEX
акыркы = ''
#камерадагы кадр үчүн.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
while True: ret, frame = camera.read () grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) жүздөр = faceCascade.detectMultiScale (боз, масштабFactor = 1.5, minNeighbors = 5) үчүн (x, y, w, h) жүздөрдө: roiGray = боз [y: y+h, x: x+w]
id_, conf = таануучу.президент (roiGray)
аты үчүн, dicti.items () мааниси:
if value == id_: print (name) cv2.putText (frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name! = last: last = ат болсо конф <= 70: cv2.rectangle (кадр, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('кадр', кадр)
ачкыч = cv2.waitKey (1)
эгер ачкыч == 27:
cv2.destroyAllWindows бузуу ()
Сунушталууда:
Объектке багытталган программалоо: Объекттерди түзүү Окутуу/Окутуу методу/Shape Puncher колдонуу техникасы: 5 кадам
Объектке багытталган программалоо: Объекттерди түзүү Окутуу/Окутуу методу/Shape Puncherди колдонуу техникасы: Объектке багытталган программалоого жаңы келген студенттер үчүн үйрөнүү/окутуу методу. Бул аларга класстардан объекттерди түзүү процессин элестетүүгө жана көрүүгө мүмкүнчүлүк берүүнүн жолу. EkTools 2 дюймдук чоң сокку; катуу формалар эң жакшы.2. Кагаз же с
IP камера ESP32-CAM тактасын колдонуу менен бетти аныктоо менен: 5 кадам
IP камера ESP32-CAM тактасын колдонуп жүздү аныктоо менен: Бул билдирүү башкаларга салыштырмалуу айырмаланат жана биз абдан кызыктуу ESP32-CAM тактасын карап чыгабыз, ал таң калыштуу түрдө арзан (9 доллардан аз) жана колдонууга оңой. Биз жөнөкөй IP камерасын түзөбүз, аны 2 аркылуу түз видео берүү үчүн колдонсо болот
Жүздү таануу жана идентификация - OpenCV Python жана Arduino аркылуу Arduino Face ID: 6 кадам
Жүздү таануу жана идентификация | OpenCV Python жана Arduino аркылуу Arduino Face ID: жүздү таануу AKA жүзүнүн идентификатору - азыркы учурда уюлдук телефондордогу эң маанилүү өзгөчөлүктөрдүн бири. Ошентип, менде " менин Arduino проектим үчүн жүз ID барбы " жана жооп ооба … Менин саякатым мындайча башталды: 1 -кадам: Бизге жетүү
Объектке багытталган программалоо: Объекттерди түзүү Окутуу/Окутуу ыкмасы/Кайчы колдонуу техникасы: 5 кадам
Объектке багытталган программалоо: Объекттерди түзүү Окутуу/Окутуу ыкмасы/Кайчы колдонуу техникасы: Объектке багытталган программалоого жаңы келген студенттер үчүн үйрөнүү/окутуу методу. Бул аларга класстардан объекттерди түзүү процессин элестетүүгө жана көрүүгө мүмкүнчүлүк берүүнүн бир жолу. Бөлүктөр: 1. Кайчы (каалаган түрү жасайт). 2. Кагаз же карточка кесими. 3. Маркер
RaspberryPi-4те реалдуу убакытта бетти аныктоо: 6 кадам (сүрөттөр менен)
RaspberryPi-4те реалдуу убакытта бетти аныктоо: Бул Нускоодо биз Shunyaface китепканасынын жардамы менен Shunya O/S менен Raspberry Pi 4те реалдуу убакытта жүздү аныктоону жүргүзөбүз. Бул үйрөткүчтү аткаруу менен RaspberryPi-4те 15-17 детектордук ылдамдыкка жете аласыз