Una dintre cele mai vizibile (și spectaculoase) aplicații ale Inteligenței Artificiale, mai exact ale domeniului numit Machine Learning, este mecanismul prin care computerul capătă suficientă inteligență încât să facă de unul singur diferența între o pisică și un cal, sau între o persoană și un pahar cu vin dintr-o imagine sau un flux video.

Sau, în cazul imaginilor luate de un satelit, între un sit de lansare a rachetelor balistice și un staul de oi.

Anul trecut, dacă nu mă înșel, Google ne-a făcut cadou principalul său instrument de Machine Learning. Adică Tensorflow.

Știu, există discuții întregi legate de motivația care a determinat ditamai compania să elibereze pentru developărși din toată lumea un instrument atât de puternic. Aici am o părere destul de fermă: pentru că domeniul ăsta al Inteligenței Artificiale se dezvoltă exponențial, în vreme ce oamenii capabili să-l abordeze sunt foarte puțini în comparație cu nevoile pieței. Așa că a fost logic să elibereze Tensorflow (bănuiesc oricum că mai au și altele) cu speranța că, transformând instrumentul într-un Open Source, developărșii wordwide vor face treabă bună și gratis.

Mă rog, să trecem la ale noastre.

Repository-ul Tensorflow care stă la baza abordării îl găsiți pe Github, https://github.com/tensorflow/models.

Bun.

Eu am lucrat pe un laptop MacBook Air cu varianta de Anaconda pentru Python 3.6. În principiu, distribuția ar trebui să conțină deja cam tot ce aveți nevoie. Dacă lipsește ceva, folosiți fie conda install fie pip install, dar aveți grijă să lansați terminalul în enviorenment-ului base din Anaconda. Aveți grijă, de asemenea, ca toate cele de trebuință să fie grupate într-un folder, în același env, ca să nu vă încurcați în path-uri și să generați error-uri de neînțeles.

Dacă, totuși, obțineți erori, copiați mesajul și apoi paste pe stackoverflow – găsiți acolo toate trăznăile din lume gestionate de o comunitate super-dinamică și binevoitoare. Să vă purtați frumos cu ei!

Și, în sfârșit, dacă tot nu vă merge, băgați un comment la postarea asta și promit să vă răspund în prima zi ploioasă când stau în casă!

Să începem cu detectarea obiectelor din fotografii.

Am descărcat de pe google o imagine cu plaja din Mamaia în 1983, una cu interiorul unui restaurant din Bruxelles și alta cu niște bărci pe lacul Herăstrău:

 

… apoi i-am zis mașinii ce să facă:

 

Rezultatul arată cam așa:

 

Pentru ceva gratis, zic că e ok. Modelul a fost antrenat pe niște jdemii de imagini pe care Microsoft le-a numit Dataset, apoi l-a numit cocoapi și ni l-a dat nouă. Foarte mulțumesc!

Ce merge cu fotografii, merge și cu un flux video, indiferent care ar fi el. Să zicem webcam-ul de pe laptop. Codul pentru real-time detection este ăsta:

Gheghe va face prezentările 🙂

Zic din nou același lucru: nu-i rău, dar nici foarte bine!

Ca să obținem rezultate mai bune ca ăsta, ar cam trebui să ne antrenăm singuri mașinile.

Data viitoare, încercăm să facem propria rețea neuronală și să o antrenăm pe un set de imagini personalizat, cum ar fi niște staule de oi, și să vedem ce iese! Poate folosind Keras, cu Tensorflow backend.

http://musetoiu.ro/wp-content/uploads/2018/03/plaja_detected.pnghttp://musetoiu.ro/wp-content/uploads/2018/03/plaja_detected-150x150.pngdan musetoiuMLobject detection,python,tensor flow
Una dintre cele mai vizibile (și spectaculoase) aplicații ale Inteligenței Artificiale, mai exact ale domeniului numit Machine Learning, este mecanismul prin care computerul capătă suficientă inteligență încât să facă de unul singur diferența între o pisică și un cal, sau între o persoană și un pahar cu vin dintr-o...