Мазмұны:

Opencv бетін тану: 4 қадам
Opencv бетін тану: 4 қадам

Бейне: Opencv бетін тану: 4 қадам

Бейне: Opencv бетін тану: 4 қадам
Бейне: Урок №2. Установка, сбор датасета, тренировка модели для распознавания лиц. Beyond Robotics 2024, Қараша
Anonim
Opencv бетін тану
Opencv бетін тану

Қазіргі кезде смартфондар, көптеген электронды гаджеттер сияқты көптеген қосымшаларда бетті тану өте кең таралған. Мұндай технология көптеген алгоритмдер мен құралдарды қамтиды, ол Raspberry Pi сияқты кіріктірілген SOC платформаларын қолданады. OpenCV сияқты кітапханалар, сіз енді қауіпсіздік жүйелері сияқты жеке қосымшаларға бет таныуды қоса аласыз.

Бұл жобада мен сізге Raspberry Pi көмегімен бетті қалай тануға болатынын айтамын және біз адамның атын көрсету үшін arduino+Lcd қолдандық.

1 -қадам: Сізге қажет заттар

Сізге қажет заттар
Сізге қажет заттар

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

2. ARDUINO UNO / NANO

3.16x2 lCD дисплейі

4. RASPI-CAMERA / WEBcam (жақсы нәтиже алу үшін веб-камераны жақсы көремін)

2-қадам: Opencv-кіріспе және орнату

Opencv-кіріспе және орнату
Opencv-кіріспе және орнату

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

Raspberry Pi -ге OpenCV үшін қажетті пакеттерді орнату үшін терминалда келесі пәрмендерді теріңіз.

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 бағдарламасын Raspberry Pi құрылғысына орнату үшін келесі пәрменді теріңіз, pip3 бізге OpenCV Python 3 үшін орнатылатынын айтады.

sudo pip3 opencv-салым-python libwebp6 орнатыңыз

Енді OpenCV орнатылуы керек.

(егер қандай да бір қателер орын алса: сіз оны төмендегі сілтеме бойынша жасай аласыз

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Енді асықпаңыз, ол дұрыс орнатылғанын немесе орнатылмағанын тексеруіміз керек

Опционды келесі жолмен тексеріңіз:

1. терминалға кіріп, «python» жазыңыз

2. содан кейін «импорт cv2» теріңіз.

3. содан кейін «cv2._ нұсқасы _» теріңіз.

содан кейін бұл кітапханаларды орнатыңыз

pip3 python-numpy орнатыңыз

pip3 python-matplotlib орнатыңыз

Суреттегі беттерді анықтау үшін тест коды:

cv2 импорттау

faceCascade = cv2. CascadeClassifier («haarcascade_frontalface_default.xml»);

image = cv2.imread ('сіздің файл атыңыз') #мысал cv2.imread ('home/pi/Desktop/filename.jpg')

сіз суреттегі адамдардың бетінде төртбұрышты қораптар пайда болған сияқты нәтиже аласыз.

3 -қадам: Бейнені нақты уақытта анықтау және тану

cv2 импорттау

numpy санын np ретінде импорттаңыз

импорттау os

сериялық импорт

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 сіздің жағдайда өзгеруі мүмкін, бұл arduino -ға байланысты

cascadePath = «haarcascade_frontalface_default.xml»

faceCascade = cv2. CascadeClassifier (cascadePath)

танушы = cv2.face.createLBPHFaceRecognizer ()

суреттер =

белгілер =

os.listdir («Деректер жинағы») файл атауы үшін:

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.тіктөртбұрыш (жақтау, (x, y), (x+w, y+h), (255, 0, 0), 2)

егер санау> 20: res = атаулар [танушы. болжау (сұр [y: y+h, x: x+w])-1]

егер res! = lastRes:

lastRes = рез

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. Tom 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

жоғарыда айтылғандай, сіз тиісті адамдарға белгілерді қоса аласыз,

егер pi 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 арасында кез келген бетті анықтаса, онда ол Том Круз деп белгіленді, сондықтан фотосуреттерді жүктеу кезінде абай болыңыз. ………………

содан кейін arduino -ны таңқурай Pi -ге қосыңыз және main.py кодтаушыға = serial. Serial ('/dev/ttyACM0', 9600, күту уақыты = 1) өзгертулер енгізіңіз., haarcascade_frontalface_default.xml бір қалтада.)

3. Енді Raspi-терминалын ашыңыз, кодты «sudo python main.py» арқылы іске қосыңыз.

Ұсынылған: