Ang TensorFlow usa ka versatile nga himan sa paghimo og machine-learning nga mga modelo.
Sa kini nga post, atong tan-awon kung giunsa paghimo ang usa ka sistema sa pag-ila sa nawong nga adunay TensorFlow, usa ka open-source nga balangkas sa pagkat-on sa makina. Atong hisgotan ang mga mahinungdanong proseso sa paghimo og usa ka malampuson nga sistema sa pag-ila sa nawong, gikan sa pagtigom ug pag-andam sa datos aron sa pagbansay ug pagtimbang-timbang sa usa ka modelo.
Makakuha ka og first-hand nga kasinatian sa TensorFlow aron makahimo og facial recognition uban sa tabang sa code snippet ug tinuod nga kalibutan nga mga ehemplo. Giabi-abi ka sa pagsunod samtang nagpadayon kami.
Pasiuna sa TensorFlow
Ang TensorFlow usa ka libre ug bukas nga gigikanan nga librarya. Kini usa ka simbolo nga math toolbox nga naggamit sa dataflow ug differentiable programming. Mahimo nimong madumala ang lainlaing mga buluhaton uban niini, lakip ang lawom neural network pagbansay.
Ang TensorFlow gamhanan ug mapahiangay. Ingon usab, kini usa ka maayo nga himan alang sa pagpalambo ug pag-deploy sa mga modelo sa pagkat-on sa makina. Makahimo ka og mga komplikado nga mga modelo nga adunay daghang mga layer ug mga operasyon sa tensor. Usab, ang mga pre-built nga mga modelo sa librarya mahimong maayo nga pag-ayo alang sa piho nga mga panginahanglan.
Dugang pa, ang TensorFlow adunay dako ug nagkalapad nga komunidad sa tiggamit. Mao nga, adunay daghang kasayuran ug tabang alang sa mga indibidwal nga bag-o sa plataporma.
Ang TensorFlow kay popular sa pagkat-on sa makina sa bahin tungod kay naghatag kini usa ka end-to-end workflow. Busa, dali ka makatukod, magbansay ug mag-deploy og mga modelo. Naghatag kini og mga himan ug estratehiya alang sa pagpaayo ug pag-scale sa mga modelo aron mohaum sa piho nga mga panginahanglan. Nagkalainlain kini gikan sa pre-processing sa datos hangtod sa pag-deploy sa modelo.
Unsa ang Face Recognition?
Ang pag-ila sa nawong kay a computer vision buluhaton nga nagpaila sa pag-ila sa usa ka tawo base sa ilang nawong. Kini nga teknik makaila sa mga kinaiya sa nawong, sama sa porma ug texture sa mga mata, ilong, ug baba.
Ug, kini nagtandi kanila sa usa ka database sa nailhan nga mga nawong sa pag-ila sa usa ka duwa. Ang pag-ila sa nawong adunay daghang gamit, lakip ang mga sistema sa seguridad, organisasyon sa litrato, ug biometric nga panghimatuud.
Ang katukma sa mga algorithm sa pag-ila sa nawong labi nga nadugangan sa bag-ohay nga mga tuig ingon usa ka sangputanan sa mga kalampusan sa pagkat-on sa makina.
Pag-import sa Gikinahanglan nga mga Librarya
Sa dili pa magsugod ang bisan unsang butang, kinahanglan natong i-import ang mga librarya nga gikinahanglan alang sa atong modelo. Ang Tensorflow (tf) gi-import ug gigamit sa paghimo ug pagbansay sa modelo. <(p>
Ang "numpy" naghimo sa mga kalkulasyon sa matematika ug pagproseso sa datos.
Ang "matplotlib.pyplot" gi-import isip plt ug gigamit alang sa data charting ug visualizations.
Sa kataposan, ang “fetch lfw people” gi-import gikan sa sklearn. mga dataset ug gigamit sa pag-load sa dataset sa pag-ila sa nawong. Kini nga function kabahin sa scikit-learn toolkit. Salamat sa kini nga function dili na kami kinahanglan nga mag-upload ug lain nga dataset. Gitukod na kini sa sckit-learn.
Ug, kini naghatag kanimo og access sa usa ka halapad nga han-ay sa mga datos alang sa pagkat-on sa makina mga aplikasyon. Niini nga senaryo, among gigamit ang paagi sa pagkuha sa lfw nga mga tawo aron makuha ang dataset nga "Naka-label nga mga Nawong sa Ihalas" (LFW). Naglangkob kini sa mga litrato sa mga nawong sa mga tawo ingon man ang mga label nga kauban nila.
Kini nga mga librarya kritikal sa pagpatuman ug pagtimbang-timbang sa atong modelo sa pag-ila sa nawong.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Preprocessing ug Loading sa Face Recognition Dataset
Niini nga bahin, among gigamit ang "pagkuha sa lfw nga mga tawo" nga function aron maproseso ang datos sa pag-ila sa nawong. Una, gigamit namon ang pagkuha sa lfw nga mga tawo nga adunay kapilian nga "min nawong matag tawo = 60". Kini nagpakita nga gusto lang namo iapil ang mga tawo sa dataset nga adunay labing menos 60 ka mga litrato. Busa, among gisiguro nga ang among modelo adunay igong datos nga makat-unan. Usab, kini nagpamenos sa kapeligrohan sa overfitting.
Ang mga datos ug mga label gikan sa butang nga mga nawong gikuha ug gi-assign sa mga variable X ug y. X hol.
Andam na kami sa pagbansay sa among modelo sa pag-ila sa nawong gamit ang preprocessed data ug mga label.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Pagbahin sa Training ug Test Sets
Niini nga lakang, gibahin namo ang among dataset sa pag-ila sa nawong ngadto sa duha ka bahin gamit ang train test split method gikan sa sklearn.model selection. Ang tumong niini nga split mao ang pag-assess sa performance sa atong modelo human sa training
Ang train test split function modawat isip input data X ug label y. Ug, gibahin sila sa mga set sa pagbansay ug pagsulay. Gipili namon ang gidak-on sa pagsulay = 0.2 sa kini nga pananglitan. Nagpasabot kini nga 20% sa datos ang gamiton isip test set ug 80% isip training set. Dugang pa, gigamit namon ang random nga estado = 42 aron masiguro nga ang datos kanunay nga gibahin sa matag higayon nga himuon ang code.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Pag-andam sa Data
Ang katuyoan sa preprocessing data mao ang pag-andam niini alang sa pagsulod sa modelo. Ang datos giproseso nang daan niini nga code pinaagi sa pagbahin sa matag data point sa 255.
Unsay nagtukmod kanamo sa pagkab-ot niini? Ang normalisasyon usa ka pamaagi sa preprocessing nga gigamit sa pagkat-on sa makina aron masiguro nga ang tanan nga mga bahin naa sa parehas nga sukod. Sa kini nga senaryo, ang pagbahin sa 255 nga mga timbangan sa datos sa usa ka sakup nga 0 hangtod 1, nga usa ka naandan nga lakang sa pag-normalize sa datos sa litrato.
Gipaspasan niini ang panagtapok sa modelo ug makadugang sa performance niini.
X_train = X_train / 255.0
X_test = X_test / 255.0
Paghimo sa Mode
Gusto namon nga mailhan ang indibidwal kansang nawong makita sa usa ka litrato. Sa kini nga kaso, mogamit kami usa ka hingpit nga konektado nga network, nga sagad nailhan nga usa ka dasok nga network. Kini usa ka artipisyal nga neural network nga gigamit sa paghimo sa modelo.
Ang mga artipisyal nga neural network gi-modelo kung giunsa ang utok sa tawo naglihok ug naorganisar. Kini gilangkoban sa mga node sa pagproseso sa impormasyon o mga neuron nga nalambigit. Ang matag neuron sa usa ka layer sa usa ka dasok nga network nalambigit sa matag neuron sa layer sa ibabaw niini.
Ang modelo adunay upat ka mga layer sa kini nga code. Aron ipakaon ngadto sa sunod nga layer, ang input data gipatag sa unang layer ngadto sa usa ka dimensyon nga array. Ang 128 ug 64 nga mga neuron sa mosunod nga duha ka mga lut-od, sumala niana, hingpit nga nalambigit.
Ang ReLU activation function usa ka talagsaon nga activation function nga gigamit niini nga mga layer. Uban niana, makuha namon ang modelo aron mahibal-an ang dili linya nga mga correlasyon tali sa mga input ug output. Ang katapusan nga layer naggamit sa softmax activation function aron makahimo mga panagna. Ug, kini usa ka bug-os nga konektado nga layer nga adunay daghang mga neuron nga adunay potensyal nga mga klase.
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(62 * 47,)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(len(target_names), activation='softmax')
])
Pag-compile sa Modelo
Ang modelo gihugpong gamit ang "compile" function. Kinahanglan natong andamon ang modelo alang sa pagbansay. Mao nga, among ipasabut ang optimizer, function sa pagkawala, ug mga sukatan nga gamiton aron masusi ang modelo.
Atol sa pagbansay, ang optimizer ang nagdumala sa pagbag-o sa mga parameter sa modelo. Ang "adam" optimizer usa ka sikat nga pamaagi sa pag-optimize sa lawom nga pagkat-on.
Gigamit namon ang function sa pagkawala aron masusi ang pasundayag sa modelo sa datos sa pagbansay. Tungod kay ang mga target nga label kay mga integer nga nagpakita sa klase sa imahe kaysa sa usa ka init nga naka-encode nga mga vector, ang "sparse categorical crossentropy" nga pagkawala function paborable.
Sa katapusan, among gihubit ang mga sukatan aron masusi ang modelo, sa kini nga kaso, "pagkatukma".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Pagbansay sa Modelo
Atong gamiton ang "fit" function sa pagbansay sa modelo.
Maghatag kami sa datos sa pagbansay (X nga tren) ug may kalabutan nga mga label (y tren), ingon man ang pagtakda sa gidaghanon sa mga panahon (mga pag-usab) nga modagan ingon nga 10. Ang pamaagi sa pagbansay nagbag-o sa mga gibug-aton sa modelo aron makunhuran ang pagkawala (ang kalainan tali sa gitagna ug tinuod nga mga label) ug pagpalambo sa katukma sa datos sa pagbansay.
model.fit(X_train, y_train, epochs=10)
Pagtimbang-timbang sa Modelo
Karon, kinahanglan naton nga susihon ang nabansay nga modelo sa datos sa pagsulay. Gigamit namon ang pagkawala sa pagsulay ug ang katukma sa pagsulay gigamit aron masusi ang pasundayag sa modelo. Sa test data X test ug ang test labels y test, kinahanglan natong tawgon ang "model.evaluate function"
Ang function nagpagawas sa katukma sa pagsulay ug pagkawala sa pagsulay. Ang mga variable nga pagsulay sa pagkawala ug pagsulay sa katukma, matag usa, adunay kini nga mga kantidad. Sa katapusan, gigamit namon ang function nga "print" aron ma-output ang katukma sa pagsulay.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Pagtagna sa mga Klase ug Pagkuha sa Gitagna nga mga Klase
Gamit ang modelo sa pagbansay ug ang datos sa pagsulay, ang algorithm naghimo mga panagna. Kung ang datos sa pagsulay ipasa sa pamaagi nga "model.predict", nagpagawas kini usa ka laray sa mga panagna alang sa matag litrato sa set sa pagsulay.
Ang target nga ngalan sa klase alang sa matag hulagway makuha dayon gikan sa listahan sa "target nga mga ngalan" gamit ang "np.argmax" function aron mailhan ang indeks nga adunay labing dako nga gitagna nga posibilidad. Kini nga indeks gigamit dayon aron mahibal-an ang gitagna nga klase alang sa matag imahe.
Gamit ang usa ka lista nga pagsabot, ang tanan nga mga panagna sa "predictions" array gipailalom niini nga pamaagi, nga miresulta sa "predicted classes" list.
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Pagtan-aw sa mga Prediksyon
Makita na nato kung unsa ang hitsura sa atong modelo.
Aron masusi kung unsa ka maayo ang nahimo sa modelo, ang una nga 10 nga mga litrato ug ang ilang mga panagna ipakita. Kini magplano sa mga litrato sa grayscale ug ipakita ang aktuwal nga klase sa imahe ug ang klase nga gitagna sa modelo gamit ang matplotlib.pyplot module.
Ang function nga "imshow" gigamit sa for loop aron maplano ang matag usa sa una nga 10 nga mga litrato sa pagsulay. Ang mga target nga ngalan[y test[i]] ug gitagna nga mga klase[i] gigamit aron mahibal-an ang aktuwal nga klase sa imahe ug gitagna nga klase, matag usa. Ang mga titulo sa matag laraw gipakita sa kini nga mga klasipikasyon.
Sa katapusan, ang laraw gipakita gamit ang plt.show() nga pamaagi.
for i in range(10):
plt.imshow(X_test[i].reshape(62, 47), cmap='gray')
plt.title(f"True: {target_names[y_test[i]]}, Predicted:{predicted_classes[i]}")
plt.show()
wrap Up
Ang TensorFlow nagtanyag usa ka kompleto ug flexible nga palibot alang sa paghimo og mga modelo sa pagkat-on sa makina.
Pinaagi sa pag-ayo sa modelo aron makab-ot ang partikular nga mga kinahanglanon o pinaagi sa pagdugang sa mga bag-ong kalamboan sa pagkat-on sa makina, ang katukma sa modelo mahimong madugangan pa.
Ang TensorFlow ug pag-ila sa nawong lagmit nga magamit nga labi sa mga industriya sama sa mga sistema sa seguridad, biometric authentication, ug pag-atiman sa kahimsog sa umaabot. Makita nato ang makaiikag nga mga inobasyon sa dili madugay.
Leave sa usa ka Reply