Мазмұны:
- 1 -қадам: Сізге қажет заттар
- 2-қадам: Opencv-кіріспе және орнату
- 3 -қадам: Бейнені нақты уақытта анықтау және тану
- 4 -қадам: кодты іске қосу
Бейне: Opencv бетін тану: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Қазіргі кезде смартфондар, көптеген электронды гаджеттер сияқты көптеген қосымшаларда бетті тану өте кең таралған. Мұндай технология көптеген алгоритмдер мен құралдарды қамтиды, ол 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 және басқа кітапханаларды 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» арқылы іске қосыңыз.
Ұсынылған:
ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам
ARDUINO ҚОЛДАНУ БЕТІН БАҚЫЛАУ !!!: Алдыңғы нұсқаулықта мен «pyserial» модулін пайдаланып Arduino мен Python арасында қалай байланысуға және жарықдиодты басқаруға болатынын айттым. Егер сіз оны көрмесеңіз, оны мына жерден тексеріңіз: ARDUINO арасындағы байланыс & PYTHON! Түсті қалай анықтауға болады
Opencv Бетті анықтау, оқыту және тану: 3 қадам
Opencv Бетті анықтау, оқыту және тану: OpenCV - бұл компьютердің көру көзі ашық көзі, ол бұлыңғырлау, кескінді араластыру, суретті жақсарту, бейне сапасын жақсарту, шектеу және т. дәлелдейді
Жұлдызды компьютерлік көру арқылы тану (OpenCV): 11 қадам (суреттермен)
Жұлдызды компьютерлік көру арқылы тану (OpenCV): Бұл нұсқаулық сізге суреттегі жұлдызша үлгілерін автоматты түрде анықтау үшін компьютерді көру бағдарламасын қалай құруды сипаттайды. Бұл әдіс OpenCV (Open Source Computer Vision) кітапханасын қолдана отырып, үйретілген HAAR каскадтарының жиынтығын қолданады
Бетті тану және сәйкестендіру - OpenCV Python және Arduino көмегімен Arduino Face ID: 6 қадам
Бетті тану және сәйкестендіру | OpenCV Python және Arduino көмегімен Arduino Face ID: бетті тану AKA тұлғаның идентификаторы қазіргі кезде ұялы телефондардағы ең маңызды мүмкіндіктердің бірі болып табылады. Сонымен, менде " менің Arduino жобам үшін жеке идентификаторым болуы мүмкін " деген сұрақ болды. және жауап - иә … Менің саяхатым келесідей басталды: 1 -қадам: Бізге кіру
MQTT қолдауымен ESP32 CAM бетін тану - AI-ойлаушы: 4 қадам
MQTT қолдауымен ESP32 CAM бетін тану | AI-ойлаушы: Сәлеметсіз бе, мен MQTT-ге деректерді жібере алатын, ESP CAM-мен жүзді тану керек болса, мен жобаның кодын бөліскім келді. Жақсы .. мүмкін 7 сағаттан кейін бірнеше кодтық мысалдарды қарап, не екенін іздеп, менде финал бар