Мазмуну:
- 1 -кадам: Сизге керектүү нерселер
- 2-кадам: Opencv-Intro жана Орнотуу
- 3 -кадам: Реалдуу убакытта видеодо жүздү аныктоо жана таануу
- 4 -кадам: Кодду иштетүү
Video: Opencv Бет таануу: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Жүздү таануу азыркы учурда абдан кеңири таралган нерсе, смартфондор, көптөгөн электрондук гаджеттер сыяктуу көптөгөн колдонмолордо. Мындай технология көптөгөн алгоритмдерди жана инструменттерди камтыйт. OpenCV сыяктуу китепканалар, эми коопсуздук системалары сыяктуу өз тиркемелериңизге жүз таанууну кошо аласыз.
Бул долбоордо мен сизге Raspberry Pi аркылуу жүздү таанууну кантип түзүү керектигин айтам жана биз адамдын атын көрсөтүү үчүн arduino+Lcd колдондук.
1 -кадам: Сизге керектүү нерселер
1. РЕППЕРРИ ПИ
2. ARDUINO UNO / NANO
3.16x2 lCD дисплейи
4. RASPI-CAMERA / WEBcam (мен жакшы жыйынтык үчүн вебкамераны жакшы көрөм)
2-кадам: Opencv-Intro жана Орнотуу
OpenCV (ачык булактуу компьютердин көрүү китепканасы) - бул абдан пайдалуу китепкана - ал текстти таануу, жүздү таануу, объекттерди аныктоо, тереңдик карталарын түзүү жана машинаны үйрөнүү сыяктуу көптөгөн пайдалуу функцияларды камсыздайт.
Бул макалада Opencv жана башка китепканаларды Raspberry Piге кантип орнотуу керектиги көрсөтүлөт, алар объекттерди аныктоо жана башка долбоорлорду жасоодо пайдалуу болот. Ал жерден биз объектти таануу жана машина үйрөнүү долбоорун аткаруу менен сүрөт жана видео операцияларын аткарууну үйрөнөбүз. Тактап айтканда, биз сүрөттөгү беттерди аныктоо үчүн жөнөкөй код жазабыз.
OpenCV деген эмне?
OpenCV - бул компьютердин ачык булагы жана машинаны үйрөнүү программалык китепканасы. OpenCV BSD лицензиясынын алдында чыгарылган, аны академиялык жана коммерциялык колдонуу үчүн бекер кылат. Бул C ++, Python жана Java интерфейстерине ээ жана Windows, Linux, Mac OS, iOS жана Androidди колдойт. OpenCV эсептөө натыйжалуулугуна жана реалдуу убакытта колдонмолорго басым жасоо үчүн иштелип чыккан.
OpenCVди Raspberry Piге кантип орнотсо болот?
OpenCV орнотуу үчүн, Python орнотулган болушу керек. Raspberry Pis Python менен алдын ала жүктөлгөндүктөн, биз OpenCVди түз орното алабыз.
Сиздин Raspberry Pi жаңырганына жана Raspberry Piдеги орнотулган пакеттерди акыркы версияларына чейин жаңыртуу үчүн төмөндөгү буйруктарды териңиз.
sudo apt-get updatesudo apt-get upgrade
OpenCV үчүн керектүү пакеттерди Raspberry Piге орнотуу үчүн терминалга төмөнкү буйруктарды териңиз.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqt4i4 libqtgui4
Python 3 үчүн OpenCV 3ти орнотуу үчүн төмөнкү буйрукту териңиз, pip3 бизге OpenCV Python 3 үчүн орнотуларын айтат.
sudo pip3 орнотуу opencv-салым-python libwebp6
Эми OpenCV орнотулушу керек.
(Эгерде кандайдыр бир каталар пайда болсо: дагы эле төмөнкү шилтеме аркылуу жасай аласыз
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Эми шашылбаңыз, туура орнотулганбы же жокпу текшеришибиз керек
Сиздин ачыктыгыңызды текшериңиз:
1. терминалыңызга барыңыз жана "python" ды жазыңыз
2. анда "импорт cv2" деп жазыңыз.
3. анан "cv2._ version_" териңиз.
анда бул китепканаларды орнотуңуз
pip3 python-numpy орнотуу
pip3 python-matplotlib орнотуу
Сүрөттөгү жүздөрдү аныктоо үчүн тест коду:
cv2 импорттоо
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");
image = cv2.imread ('сиздин файлдын аты') #example cv2.imread ('үй/пи/Иш столу/filename.jpg')
сиз сүрөттөгү адамдардын жүзүндө төрт бурчтуу кутучалар пайда болгондой жыйынтык аласыз.
3 -кадам: Реалдуу убакытта видеодо жүздү аныктоо жана таануу
cv2 импорттоо
np катары numpy импорттоо
импорт os
серияны импорттоо
ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 сиздин учурда өзгөрүшү мүмкүн, бул ардуиного көз каранды
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)
таануучу = cv2.face.createLBPHFaceRecognizer ()
сүрөттөр =
энбелгилер =
os.listdirдеги файл аты үчүн ('Dataset'):
im = cv2.imread ('Dataset/'+файлдын аты, 0)
images.append (im)
labels.append (int (filename.split ('.') [0] [0]))
#файлдын атын басып чыгаруу
names_file = ачык ('labels.txt')
аттар = names_file.read (). split ('\ n')
таануучу.поезд (сүрөттөр, np.array (этикеткалар))
басып чыгаруу 'Окутуу бүттү… '
шрифт = cv2. FONT_
HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # видео түзмөгүңүз
lastRes = '' count = 0
ал эми (1):
_, frame = cap.read ()
боз = cv2.cvtColor (кадр, cv2. COLOR_BGR2GRAY)
жүздөр = faceCascade.detectMultiScale (боз, 1.3, 5)
эсептөө+= 1
(x, y, w, h) үчүн жүздөрдө:
cv2.rectangle (кадр, (x, y), (x+w, y+h), (255, 0, 0), 2)
эгерде эсептөө> 20: res = аттар [таануучу.президент (боз [y: y+h, x: x+w])-1]
эгер res! = lastRes:
lastRes = res
lastRes басып чыгаруу
ser.write (lastRes)
эсептөө = 0
тыныгуу
cv2.imshow ('кадр', кадр)
k = 0xFF & cv2.waitKey (10)
эгер k == 27:
тыныгуу
cap.release ()
ser.close ()
cv2.destroyAllWindows ()
4 -кадам: Кодду иштетүү
1. Мурунку кадамда тиркелген файлдарды жүктөп алыңыз
2. боз сүрөттөрүңүздү (6 сүрөт/ үлгүлөр ….) маалымат базаңыздын папкасына көчүрүңүз
1. Том Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (ачык маалымат топтому папкасы үчүн маалымат топтомунун сүрөт номери)
2. Брэд Питт-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Лео-3_1, 3_2, 3_3, 3_4, 3_5, 3_6
4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6
жогоруда айтылгандай, сиз тиешелүү адамдар үчүн энбелгилерин кошо аласыз,
эгер пи 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 арасында кандайдыр бир жүздү аныктаса, анда ал Том Круз деп аталып калган, андыктан сүрөттөрдү жүктөөдө этият болуңуз ………………
анан ардуинону малина Пиңизге туташтырыңыз жана main.py codeer = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) өзгөртүүлөрдү киргизиңиз., haarcascade_frontalface_default.xml бир папкада.)
3. Эми Raspi-терминалын ачып, кодуңузду "sudo python main.py" менен иштетиңиз
Сунушталууда:
Бет таануу эшик кулпусу: 8 кадам
Бетти таануу эшик кулпусу: Бир айга жакын убакыттын ичинде мен жүздү таануучу эшиктин кулпусун сунуштайм! Мен аны мүмкүн болушунча тыкан кылып көрсөтүүгө аракет кылдым, бирок мен 13 жашка чейин гана жасай алам. Бул жүздү таануучу эшиктин кулпусу Raspberry Pi 4 тарабынан башкарылат, атайын портативдүү бат
Opencv Бетти аныктоо, окутуу жана таануу: 3 кадам
Opencv Бетти аныктоо, окутуу жана таануу: OpenCV - булагы ачык булактан турган компьютердин көрүү китепканасы, ал сүрөттү иштетүүдөн тышкары, сүрөттү иштетүү, сүрөттү аралаштыруу, сүрөттү жакшыртуу, ошондой эле видеонун сапатын жогорулатуу, босогону ж. ал далилдейт
Жылдызды таануу Computer Vision аркылуу (OpenCV): 11 кадам (Сүрөттөр менен)
Жылдызды таануу Computer Vision (OpenCV) аркылуу: Бул көрсөтмө сизге сүрөттөгү жылдыздардын үлгүлөрүн автоматтык түрдө аныктоо үчүн компьютердин көрүү программасын кантип түзүүнү сүрөттөйт. Бул метод OpenCV (Open Source Computer Vision) китепканасын колдонот, үйрөтүлгөн HAAR каскаддарынын топтомун түзөт
Жүздү таануу жана идентификация - OpenCV Python жана Arduino аркылуу Arduino Face ID: 6 кадам
Жүздү таануу жана идентификация | OpenCV Python жана Arduino аркылуу Arduino Face ID: жүздү таануу AKA жүзүнүн идентификатору - азыркы учурда уюлдук телефондордогу эң маанилүү өзгөчөлүктөрдүн бири. Ошентип, менде " менин Arduino проектим үчүн жүз ID барбы " жана жооп ооба … Менин саякатым мындайча башталды: 1 -кадам: Бизге жетүү
Жүздү таануу+таануу: 8 кадам (сүрөттөр менен)
Жүздү таануу+таануу: Бул камерадан OpenCV менен жүздү таануунун жана таануунун чуркоосунун жөнөкөй мисалы. ЭСКЕРТҮҮ: Мен бул проектти сенсорлордун сынагы үчүн жасадым жана камераны сенсор катары таануу үчүн колдондум. Ошентип, биздин максатыбыз ушул сессияда 1. Анаконду орнотуу