Ich werde am Tag des Dankes für die Arbeit zum ersten Mal bei Qiita posten. Danke.
Es gibt eine Roboterentwicklungsumgebung namens ROS. (Offizielle ROS-Website) Mit ROS können Daten von Sensoren wie Kameras auf integrierte Weise verarbeitet werden, um Roboter zu bewegen und zu simulieren.
** Ich möchte Deep Learning hier integrieren! !! ** ** **
Wenn Sie es zuerst tun, ist es ein Tutorial! Also Tensorflow [Deep MNIST für Experten](https://www.tensorflow.org/versions/r0.10/tutorials/mnist/pros/index. html) trainiertes Modell läuft jetzt auf ROS.
Zuvor gab es eine Person, die ein geschultes Tensorflow-Modell ausführt, das Objekte auf ROS erkennt Das Modell wurde unter Bezugnahme auf visualisiert.
Durch das explizite Schreiben des Modells wurde es meines Erachtens zu einem Skript, das leicht auf andere Aufgaben angewendet werden kann. (Sie können die Netzwerkkonfiguration ändern. Wenn Sie sie zuerst lernen, können Sie sie verschieben.)
Dann habe ich das Skript tatsächlich wie folgt geschrieben.
Beschreibung der ROS-Knoten Beschreibung des Herausgebers und Abonnenten
Ich schrieb in Ein anderer Artikel
Wie in GitHub README.md
$ roscore
$ python tensorflow_in_ros_mnist.py image:=/cv_camera/image_raw
$ rosrun cv_camera cv_camera_node
$ rostopic echo /result
Tensorflow, ROS, cv_bridge, Kameratreiber, OpenCV, numpy müssen im Voraus vorbereitet werden. Wenn Sie einen Fehler in der Ausführungsreihenfolge machen, tritt ein Fehler auf, der jedoch funktioniert. Machen Sie sich also keine Sorgen.
Als ich das Bild mit Farbe auf dem Computer anzeigte und die Kamera darauf richtete, wurde es wie in der folgenden Abbildung gezeigt. Das Bild rechts ist das Bild, das von der Kamera eingegangen ist, und die Daten: links ist die Nummer, die CNN erwartet und veröffentlicht hat. Es ist korrekt.
Die handschriftliche 9 wurde ebenfalls richtig erkannt.
Die Erkennungsgenauigkeit schwankt jedoch je nach Art der Kamera erheblich. Sie können den Abstand zwischen der Kamera und dem Bild festlegen, ihn mit Numpy zuschneiden, bevor Sie ihn in das CNN einfügen, und mit dem Binärisierungswert spielen.
** Ich bin froh, dass es vorerst richtig funktioniert hat! !! ** ** ** Ich war nervös wegen des ersten Beitrags auf GitHub und Qiita. Insbesondere war ich ziemlich verwirrt, die Lizenz von GitHub herauszufinden und zu verstehen. Infolgedessen habe ich die Aphache 2.0-Lizenz unter Bezugnahme auf diese Site erstellt. Ist dies korrekt? Der Code war ziemlich chaotisch, ich habe keine Kommentare hinzugefügt und dachte, ich sollte mein Bestes geben.
** Überwältigender Dank am Arbeitstag danke! !! ** ** **