DIY RASPBERRY NEURAL NETWORK SEES ALL, RECOGNIZES SOME

author
9 minutes, 19 seconds Read

As a fun project I thought I’d put Google’s Inception-v3 neural network on a Raspberry Pi to see how well it does at recognizing objects first hand. It [turned out to be] not only fun to implement, but also the way I’d implemented it ended up making for loads of fun for everyone I showed it to, mostly folks at hackerspaces and such gatherings. And yes, some of it bordering on pornographic — cheeky hackers.

An added benefit numerous pointed out is that, once installed, no internet access is required. This is state-of-the-art, standalone object recognition with no big brother knowing what you’ve been up to, unlike with that nosey Alexa.

But will it result in widespread helpful AI? If a neural network can recognize every object around it, will that result in human-like skills? Okumaya devam etmek.

How To Do object Recognition

Inception object recognizer internals
The implementation consists of:

Raspberry Pi 3 model B

amplifier and speaker

PiCamera

momentary swtich

cellphone charger battery for the Pi

The heart of the required software is Google’s Inception neural network which is implemented using their TensorFlow framework. You can download it by following the TensorFlow tutorial for image recognition. The tutorial doesn’t involve any programing so don’t worry if you don’t know Python or TensorFlow. That is, unless you’re going to modify their sample code as I did.

classify_image.py printing that it saw a panda
The sample code takes a fixed named file including a picture of a panda and does object recognition on it. It gives the result by printing out that it saw a panda. But that wasn’t enough fun.

I hunted around for some text-to-speech software and found Festival. Now when it wants to say it saw a panda, I modified the sample code to run festival in a linux shell and tell it to actually say “I saw a panda” to the speaker.

Audio Playerhttps://hackaday.com/wp-content/uploads/2017/06/classify_speak_panda_audio.wav

00:00
00:00
00:00

But that still wasn’t fun enough. I connected a PiCamera to the Raspberry Pi, and had that take a photo and give it to the TensorFlow code to do object recognition. In the vernacular, it now ran inference on my photo.

And lastly, to make it all real easy I connected a momemtary switch to one of the Pi’s GPIO pins and took the photo when the momentary switch was pressed.

Here’s the Python program’s main() function before…

1
2
3
4
5
def main(_):
  maybe_download_and_extract()
  image = (FLAGS.image_file if FLAGS.image_file else
           os.path.join(FLAGS.model_dir, ‘cropped_panda.jpg’))
  run_inference_on_image(image)

… ve sonra.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def main(_):
  os.system("echo %s | festival –tts" % "Wait while I prepare my brain…")

  maybe_download_and_extract()
  # creates graph from saved GraphDef.
  create_graph()

  # preparing for the switch
  GPIO.setmode(GPIO.BCM)
  GPIO.setup(17, GPIO.IN)

  camera = PiCamera()

  os.system("echo %s | festival –tts" % "I am ready to see things.")

  while True:
    # loop for the switch
    while (GPIO.input(17) == GPIO.LOW):
      time.sleep(0.01)

    # take and write a snapshot to a file
    image = os.path.join(FLAGS.model_dir, ‘seeing_eye_image.jpg’)
    camera.capture(image)

    os.system("echo %s | festival –tts" % "I am thinking about what you showed me…")
    human_string = run_inference_on_image(image)
    os.system("echo I saw a %s | festival –tts" % human_string)

The calls to os.system() are where I run the festival text-to-speech program to make it say something to the speaker.

maybe_download_and_extract() is where Google’s Inception neural network would be downloaded from the Internet, if it’s not already present. By default, it downloads it to /tmp/imagenet which is on a RAM disk. The first time it did this, I copied it from /tmp/imagenet to /home/inception on the SD card and now run the program using a command line that includes where to find the Inception network.

Running the inception object recognizer
The call to create_graph() was moved from inside the run_inference_on_image() function. create_graph() sets up the neural network, which you need do only once. previously the program was a one-shot deal, but now it has an unlimited while loop which calls run_inference_on_image() each time through the loop. Obviously, setting up the neural network is something you do only once (see our introduction to TensorFlow for much more about graphs) so it had to be moved above the loop.

The run_inference_on_image() function is where the image is given to the neural network to do the object recognition. It used to just print out whatever it thought was in the image, but I modified it to instead return the text string including what it thinks the object is, “coffee mug” for example. So the last line is where it would say”Bir kahve kupa gördüm” amplifikatöre ve hoparlöre.

BÜYÜK BÜTÜN BÜTÜNLERİ, etrafta taşınabilecek ve hiç kimse tarafından denenebilecek küçük ve bağımsız bir paket verdi. İşte eylemde bir video.

Bir gelişme, kullanıcının video kameranın ne olduğunu görebilmesi için küçük bir ekran eklemek olacaktır, ancak Picamera’nın geniş bir görme açısı var ve bir ekran gerekli olmadığı ortaya çıktı.

Nesne tanıma ne kadar iyi

Bir tütün gören başlangıcı
Onu gösteren bir cep telefonu, genellikle bir cep telefonu gördüğünü söyleyerek sonuçlanır, ancak bazı durumlarda bir iPod. Ancak, şu ana kadar her seferinde su şişeleri ve kahve kupaları uygun.

Ancak, insanlarla iyi yapmaz. Büroumda bana işaret etmek, muhtemelen doğrudan arkamda ekipman ve parçaların raflarından dolayı “tütün dükkanı, tobacconist dükkanı, tobacconist” olduğunu söylemesine neden olur. Bununla birlikte, boş bir duvara karşı durmak, bir tişörtü gördüğünü, bir tişört gördüğünü, bunu çıkardığını, “banyo gövdeleri, yüzme gövdeleri” dedi, sadece çıplak üst gövdeyi ve kafamı görmesine rağmen, “banyo gövdeleri, yüzme gövdeleri” dedi. (Seni fotoğrafı ayıracağım.)

Imagenet Örnek Cep Telefonu Görüntüleri

Imagenet Örnek Kahve Kupa Görüntüleri

Nöral ağı, 2012’nin büyük görsel tanıma mücadelesinden versiyon olan Imagenet adlı bir veri kümesinde eğitilmiştir. Veri kümesi, belirli bir nesnenin görüntülerini içeren, 1000 sınıfa bölünmüş büyük bir görüntü koleksiyonundan oluşur. Bu küçük numuneden cep telefonu sınıfından görebileceğiniz gibi, telefon görüntülerinden bazıları biraz tarihlidir. Ancak, kahve kupaları gibi nesneler zaman içinde değişmez.

Ancak bu, eğlenmekten, eğlenmekten, eğlenmekten, ilk defa sihirli bir değnek bulmak ve kimin ne yapabileceğini görmek için etrafta sallayarak gibi her şeyde test etmekten dolayı yürüyen herkesi durdurmadı.

Yapabileceğinin en iyisi bu mu?

Öncelikle, her bir tanınma, bir Ahududu Pi 3’te yaklaşık 10 saniye sürer, böylece yayınlanmalı ya da daha hızlı bir işlemci, tercihen bir Cuda Enabled NVIDIA GPU’lu olan, çünkü GPU TENSOSFLOW’un tek türüdür.

Başlangıç ​​nöral net, yalnızca eğitildiği veriler kadar iyidir. Yukarıda yer aldığım kusurlar, cep telefonlarını ve insanları, Imagenet DataSet ile ilgili sorunlardır. Zamanın sadece% 3,46’sının hepsi en iyi tahminlerinin 5’i yanlış, iken insanlar aynı testi yapan insanlar, en iyi 5 tahmininin% 5’inde yanlıştır. Fena değil.

Freaky stuff ile ilgili kısa makalemize dikkat çektiğimizde, Sinir Ağları Bugün, Uzun Kısa Süreli Bellek (LSTM) Sinir Ağları, videoda daha önce gelenleri dikkate alırken, bir videonun tek bir çerçevesinde gördüklerini inceleyebilir. Örneğin, önceki sahne bir plaj partisiydi ise, sepet topu yerine bir plaj topu gördüğü konusunda çok daha fazla güvene sahiptir. Bu, başlandırma nöral ağından farklıdır, bu başlangıçtaki yalnızca devam etmenizi gösterdiğiniz görüntüye sahiptir.

Bu bizi nerede buluyor?

İnsan benzeri becerilerle birlikte yaygın yardımcı AI ile nesne tanıma sonucu geliştirecek mi? Gözün evrimi, genellikle 541 milyon yıl önce Cambian patlaması olarak bilinen yaşam alanlarında patlamanın önemli bir nedeni olarak belirtilmektedir.

Ancak bu gözler geliştiğinde, bunları kullanmak için zaten bir miktar beyin vardı. Bu beyin zaten dokunma, titreşim ve koku duyusunu kullandı. Bu yüzden gelişmiş nesne tanıma tek başına bir devrime neden olmazdı. İnsan benzeri beceriler için AIS’imiz çok daha fazla zekaya ihtiyaç duyar. Şu anda bunun için ihtiyaç duyduğumuzun sadece bitleri ve fikirleri var.

Çok sayıda katılıyorum, AI’mizin plan yapabileceği için tahminler yapması gerektiğidir. Bunun için, dünyanın bu öngörülenler için temel olarak kullanılması için bir iç modeli veya anlayışı olabilir. Bir teli için bir lehim önerisi başvurusu yapan insan becerisi için, bir iç model önerisi temas kurduğunda ne olacağını ve ardından buna dayanarak planlanacağını tahmin eder. Öneri tele temas ettiğinde, eğer işler tahmin edildiği gibi gitmezse, AI reaksiyona girer.

Facebook’tan Facebook’tan Olumlu Senterial Ağları (GAN) ile yapılan son çalışma, burada böyle bir model ve öngörücü yeteneği içeren bir başlangıç ​​noktasında ipucu olabilir (GAN’sine aşina değilseniz, sizi garip şeylerle ilgili kısa makalemize yönlendiririz. bugün yap). Adın “üretici” kısmı, görüntüler ürettikleri anlamına gelir. Ancak çok daha spesifik olarak, bunlar derinden kıvrımlı ganslardır, yani, üzerinde eğitim gördükleri görüntülerde gördüklerini anlamalarını içerir. Örneğin, pencereler, kapılar ve TV’ler hakkında bilgi verirler ve odalarda nereye giderler.

ADGL Video Tahminleri
Peki öngörüler yapmak? Facebook’tan çok daha fazla iş video nesilini içerir. Kıldırsal gradyan farkı kaybı yordayıcıları (AGDL) kullanarak, bir videonun sonraki iki karesinin ne olması gerektiğini tahmin ediyorlar. Bir bilardo oyunu fotoğrafında groun görebilirsinizD Trütü, yani gerçekten ne oldu ve AGDL ağının ne tahmin ettiği. Geleceğe çok uzak değil ama bu bir başlangıç.

Bunlar, saf bir nesne tanımayıcısından insan benzeri becerilere sahip bir yoldan en az küçük adımlardır.

Kapanışta

Başlangıç nöral ağının nesneleri tanıdıktan önce nerede görebilirsiniz? Garajında / atölyesinde nesneleri tanımak için bir RC arabada [Lukas Biewald ]’yu kapladık.

Bu [olduğu ortaya çıktı] herkesin kullanması için eğlenceli iken, başka hangi kullanımı düşünebilirsiniz? Ne yararlı bir uygulama düşünebilirsiniz? Ne eklenebilir? Aşağıdaki yorumlarda bize bildirin.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *