Мазмуну:

Opencv Бет таануу: 4 кадам
Opencv Бет таануу: 4 кадам

Video: Opencv Бет таануу: 4 кадам

Video: Opencv Бет таануу: 4 кадам
Video: Computer Vision with Python! Grayscaling Images 2024, Ноябрь
Anonim
Opencv Бет таануу
Opencv Бет таануу

Жүздү таануу азыркы учурда абдан кеңири таралган нерсе, смартфондор, көптөгөн электрондук гаджеттер сыяктуу көптөгөн колдонмолордо. Мындай технология көптөгөн алгоритмдерди жана инструменттерди камтыйт. OpenCV сыяктуу китепканалар, эми коопсуздук системалары сыяктуу өз тиркемелериңизге жүз таанууну кошо аласыз.

Бул долбоордо мен сизге Raspberry Pi аркылуу жүздү таанууну кантип түзүү керектигин айтам жана биз адамдын атын көрсөтүү үчүн arduino+Lcd колдондук.

1 -кадам: Сизге керектүү нерселер

Сиз керек
Сиз керек

1. РЕППЕРРИ ПИ

2. ARDUINO UNO / NANO

3.16x2 lCD дисплейи

4. RASPI-CAMERA / WEBcam (мен жакшы жыйынтык үчүн вебкамераны жакшы көрөм)

2-кадам: Opencv-Intro жана Орнотуу

Opencv-Intro жана орнотуу
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" менен иштетиңиз

Сунушталууда: