Hackathon ROBO-RACE dan lokakarya langsung tentang AI di Artin: bagaimana kabarnya

Selamat siang, para pembaca! Baru-baru ini, saya cukup beruntung untuk berpartisipasi dalam satu hackathon pada kecerdasan buatan, yang diselenggarakan oleh kelompok Roboauto dari Artin di Brno (Republik Ceko), memimpin pengembangan kendaraan tanpa awak. Dalam artikel ini saya ingin membagikan kesan saya dan menceritakan bagaimana semuanya berjalan, apa yang saya pelajari dan apa yang berguna untuk dipelajari. Siapa yang peduli, tolong, di bawah kucing.

Tentang hackathon


Ini adalah hackathon pertama pada subjek pembelajaran mesin dan AI, dan kelompok Roboauto mencapai sukses besar di bidang ini, jadi saya mendaftar segera sebelumnya. Hackathon utamanya ditujukan untuk mahasiswa Universitas Teknik Brno. Seperti yang dikatakan penulis sebelumnya di halaman Facebook hackathon, hackathon seharusnya menjadi kompetisi permainan antar tim pada simulator mobil balap. Para penulis berjanji untuk menyediakan proyek simulator di Jawa, di mana Anda dapat menghubungkan program Anda. Tujuan utama: untuk menulis program Java untuk mobil Anda sedemikian rupa sehingga mobil melewati lingkaran lebih cepat daripada saingan. Anda dapat menggunakan jaringan saraf atau logika terprogram.

Video trek kompetisi diterbitkan di halaman acara di Facebook, yang harus kami lalui:



Beberapa hari sebelum hari hackathon, semua peserta dikirim e-mail dengan instruksi singkat tentang cara mempersiapkan acara. Diperlukan untuk menginstal Intellij Idea IDE dengan dukungan Gradle, Java versi 8 dan membuat akun di GitLab.

Anda dapat mendaftarkan tim Anda atau mendaftar sendiri. Dalam kasus kedua, penyelenggara menghubungkan Anda ke beberapa tim. Saya ditugaskan ke tim dengan seorang pria dari perusahaan saya NXP, yang juga mendaftar secara independen.

gambar

Bagian teoretis - pengantar


Semuanya dimulai dengan blok teori 2 jam. Kami diberi akses ke wifi dan memiliki presentasi dari penyelenggara dan program hackathon. Pada siang hari dari 12 hingga tengah malam, hackathon itu sendiri direncanakan dengan beberapa seri balapan dan istirahat untuk makan siang dan makan malam. Dari 17 hingga 19 jam ada bagian di lintasan rintangan di mobil yang dikendalikan radio di ruang terpisah.

Pembicara pertama, Pavel, membuat pengesahan presentasi: presentasi lingkungan simulator, koneksi proyek-proyeknya, pengantar AI. Tujuan: untuk mengajarkan model mobil di simulator sehingga dapat mengemudi secepat mungkin. Anda juga dapat mengontrol model dari keyboard. Kami ditunjukkan demonstrasi di simulator dan implementasi dalam kode.

gambar

gambar

gambar

Kami diberi tautan ke proyek di Gitlab. Setiap orang harus meminta akses ke repositori, mengkloning proyek itu sendiri secara lokal di komputer dan mengimpor ke IntelliJ IDEA. Proyek ini termasuk dukungan untuk Gradle, sistem generasi tipe Maven atau CMake. Anda dapat segera memulai proyek: jendela simulator seperti ini terbuka:

gambar

Setelah itu, pembicara lain Stepan membuat pengantar singkat tentang teori pembelajaran mesin dan menjelaskan bahwa hackathon akan menggunakan jaringan saraf seperti umpan maju dan pelatihan dengan seorang guru. Tujuannya adalah untuk mengajarkan mobil cara mengemudi. Untuk melakukan ini, pertama-tama kita akan mengarahkan trek sendiri dengan kontrol manual, menyimpan titik lintasan. Set data lintasan disimpan dalam tabel CSV: jarak dari garis tengah jalan, sudut terhadap jalan, dan salah satu dari nilai 0, 1, -1 untuk nilai belokan. Kemudian kita akan mengajarkan jaringan untuk mengemudi di sepanjang jalan sedekat mungkin ke jalur yang dilalui oleh kontrol manual.

Di antara pertanyaan-pertanyaan dari para peserta adalah pertanyaan yang menarik: bagaimana menunjukkan untuk data jaringan pada posisi mobil saingan lainnya. Stepan mengatakan bahwa data tentang saingan juga dapat diatur ke input dari jaringan saraf. Anda juga dapat mengatur data kecepatan di pintu masuk, jika ini membantu dalam pelatihan.

Stepan menunjukkan cara membuat dua contoh kontrol manual: salah (sewenang-wenang) dan kanan (rapi, dekat dengan tengah jalan). Saat mendemonstrasikan jaringan terlatih, mobil punya masalah besar di tikungan.

Itu mungkin untuk mengkonfigurasi berbagai parameter jaringan: jumlah input, output, jumlah era pelatihan, jumlah neuron di lapisan tersembunyi. Program untuk mengimplementasikan jaringan saraf menggunakan pustaka DL4J : deeplearning4j.org . Sayangnya, perpustakaan tidak berfungsi pada sistem operasi 32-bit (saya punya masalah pada laptop dengan Ubuntu 12.04).

Bagian utama adalah kompetisi.


Setiap tim menentukan warna mobil mereka, yang harus ditunjukkan dalam kode program. Kami segera diberitahu cara menggunakan API aplikasi untuk mengendalikan mobil Anda dalam suatu kompetisi.

gambar

Rekan saya dan saya mulai dengan memecahkan masalah dengan cepat melintasi rute menggunakan metode biasa berdasarkan API. Solusi kami adalah ini: tergantung pada jarak ke belokan berikutnya dan arah belokan, kami menyesuaikan akselerasi dan sudut rotasi mobil. Untuk mendapatkan informasi tentang kedekatan belokan, kami menggunakan objek Grid dari sistem API. Inti dari Grid: untuk mobil, Anda bisa mendapatkan kotak persegi panjang dari permukaan lapangan bermain di depan mobil (kiri dan kanan mobil) ukuran sewenang-wenang (misalnya, lebar 8 dan panjang 10 sel). Untuk setiap sel, Anda dapat menentukan apakah trek melewatinya dan apakah mobil lain saat ini ada di dalamnya.

Berikut ini tautan ke proyek kami . File utama: Driver_team12.java, Team12.java dan RunDev.java. Logika kontrol terletak di file Driver_team12.java.

Menjelang malam, saya mulai berurusan dengan jaringan saraf. Dimulai dengan rekaman lintasan sederhana dengan kontrol manual. Dengan pelatihan tentang data yang direkam dan menyesuaikan parameter (jumlah iterasi, jumlah zaman pelatihan, kecepatan belajar), beberapa hasil yang lebih baik dari kursus itu tercapai.

Selama hackathon, beberapa kompetisi diadakan, di mana masing-masing serangkaian balapan antara kelompok tim diadakan. Dalam prosesnya, para peserta secara konstan memperbaiki keputusan mereka. Masalah besar adalah tabrakan beberapa mobil, benar-benar menghalangi pergerakan di jalan raya. Di sini tim yang menerapkan penanganan rintangan terbaik menang.

gambar

gambar

gambar

gambar

Dalam kompetisi, setengah dari tim mempresentasikan solusi berdasarkan jaringan saraf. Pemenangnya adalah salah satu tim ini. Salah satu tim terkemuka membangun jaringan saraf 25 lapisan, menerima banyak parameter pada input (di antaranya jarak ke tengah jalan, kecepatan dan data dari objek Grid). Tim lain menggunakan dua jaringan saraf: satu untuk bagian lurus (untuk meminimalkan penyimpangan dari tengah jalan) dan satu untuk belokan.

Balapan Hackathon tersedia:


Hal menarik lainnya


Selain hackathon itu sendiri, sebuah acara menarik juga dimasukkan dalam program ini - jalannya rintangan di mobil yang dikendalikan radio. Dari 17 hingga 19 jam di ruang terpisah, Anda bisa mencoba mengatasi rintangan sulit pada model mobil dengan kontrol radio.

gambar

gambar

gambar

Makan siang dan makanan ringan diselenggarakan sepanjang hari. Di malam hari kami memesan pizza. Dimungkinkan juga untuk menuangkan bir di dapur tanpa batasan.

gambar

Begitu menarik, mengasyikkan, dan penuh semangat adalah sepanjang hari hackathon. Ada banyak kesan menyenangkan, banyak momen menyenangkan dari kompetisi tim. Hackathon adalah pelatihan otak yang baik selama akhir pekan, di mana Anda dapat memutar otak Anda untuk tugas-tugas kehidupan nyata dan mencoba tangan Anda untuk belajar bagaimana mengendarai mobil tak berawak dalam simulator sederhana.

Semoga beruntung untuk semua orang dan sampai jumpa lagi!

Source: https://habr.com/ru/post/id410905/


All Articles