Penggunaan visi komputer dalam penelitian kelautan atau 12 orang di dada orang mati


Salam hangat, kawan-kawan tercinta.
Komunitas OpenDataScience berhasil mengembangkan inisiatif ML4SG - Machine Learning for Social Good . Dalam kerangka kerjanya, sejumlah proyek menarik telah dimulai, yang dalam berbagai bidang meningkatkan kehidupan kami bersama Anda.


Kami ingin berbicara tentang salah satu proyek ini, dengan nama kode #proj_shipwrecks . Proyek ini diluncurkan oleh anggota komunitas ODS, yang pada suatu waktu setuju untuk bekerja secara gratis pada apa yang mereka suka, tetapi untuk beberapa alasan tangan belum mencapainya. Sekarang proyek ini telah tumbuh menjadi sebuah startup kecil nirlaba, dengan sejumlah bidang penelitian dan pengembangan yang berbeda.


Sebagai bagian dari proyek ini, kami berusaha membantu orang-orang yang terlibat dalam berbagai jenis penelitian kelautan, mulai dari arkeolog, biolog, dan ahli kelautan hingga tim penyelamat air, menggunakan keahlian kami dalam penglihatan komputer dan membuat gerakan baru yang terkadang tak terduga.


Tentang apa semua ini?


Singkatnya, proyek kami bertujuan untuk membantu ahli biologi kelautan dan arkeolog, tim penyelamat air, dan peneliti kelautan dari semua garis. Kami berupaya mengurangi waktu dan biaya untuk sejumlah operasi dengan mengotomatisasi pekerjaan dengan data dari sonar, satelit, radar bukaan sintetis, dan hanya gambar dan video visual.


Penelitian kami akan membantu tidak hanya untuk menemukan tempat baru untuk menyelam, tetapi juga akan membantu orang-orang yang orang yang dicintainya hilang di jurang. Langkah selanjutnya adalah pembentukan tim terpisah yang akan membantu ahli kelautan dan ahli biologi untuk memantau populasi kehidupan laut, dari anjing laut hingga karang koloni, serta ahli meteorologi untuk memantau pembentukan dan pergerakan siklon kutub.


Proyek ini dimulai relatif baru-baru ini, fase aktif dimulai pada Februari-Maret tahun ini. Sejak itu, kami memutuskan konsepnya, kami memiliki tim yang baik, kami mengorganisir diri dalam semacam startup dan belajar bagaimana melakukan semua hal keren. Tetapi hal pertama yang pertama.


Siapa kita


Kami adalah yang ke-12 (+ -, struktur tim agak cair) tanggal pengikut Setan dari berbagai tingkat junior. Seseorang mengayun-ayunkan neuron untuk waktu yang lama, seseorang baru saja menemukan dunia ajaib Deep Learning di luar Kursers. Selain itu, tim kami mempekerjakan pengembang yang dipompa dan insinyur tanggal yang sangat keren. Semua orang datang pada waktu yang berbeda, terutama anggota UDF saat ini memulai proyek, tetapi seseorang datang ke sana hanya setelah mengetahui tentang proyek tersebut. Kami mendapat peningkatan yang lebih besar dalam jumlah setelah DataFest diadakan pada awal Mei, ketika tim hampir dua kali lipat.


Kami bekerja dengan aggail, kami tidak memiliki rencana yang dijadwalkan setiap hari, kami hanya memiliki visi tentang konsep di mana kami ingin datang dan apa yang akan didapat pada akhirnya, secara taktis tugas berubah tergantung pada data apa yang kami kumpulkan, apakah hipotesis ini atau itu berhasil, Apakah Anda memerlukan fitur di mana seluruh sprint mingguan berfungsi atau apakah itu menjadi usang, karena Seseorang punya ide paling keren.


Secara umum, kami bersenang-senang dan nyaman :)


gambar


Apa yang kita lakukan


Sesuai namanya, kami sedang mengerjakan penggunaan visi komputer di berbagai bidang penelitian kelautan, baik untuk kebaikan sosial maupun langsung untuk bisnis.


gambar


Mari kita memikirkan tugas-tugas untuk kebaikan sosial dan membahas secara rinci dua di antaranya - arkeologi laut dan Search & Rescue


Arkeologi kelautan


Wikipedia memberi tahu kita bahwa arkeologi laut mempelajari interaksi manusia dengan laut, danau dan sungai dengan memeriksa sisa-sisa fisik yang terkait, baik itu kapal, struktur pantai, struktur terkait, kargo, sisa-sisa manusia dan bentang alam bawah laut. Disiplin terkait adalah arkeologi bawah air, yang mempelajari masa lalu melalui artefak di bawah air.


Mengapa begitu penting untuk melakukannya? Pertama, berkat arkeologi, kita lebih tahu warisan kita, dalam hal ini, laut, kita menemukan artefak yang menjelaskan peristiwa-peristiwa dari masa lalu atau bahkan secara serius mengubah pandangan kita tentang beberapa momen bersejarah. Kedua, jangan lupa bahwa kita memiliki 2 perang dunia dengan partisipasi aktif armada, dan jiwa banyak pelaut yang mati masih menunggu sisa-sisa yang tersisa di darat.


Menurut UNESCO (sangat perkiraan), ada sekitar 3 juta bangkai kapal di dunia, dengan 3.500 kapal kargo dan penumpang (3.500, Karl!), 175 kapal perang dan 783 kapal selam yang tewas dalam Pertempuran Atlantik saja pada tahun 1939-1945. Ditemukan dari semua kemegahan ini, dilarang Tuhan, 10 persen, atau bahkan kurang.


Bagaimana visi komputer membantu dalam menemukan semua keagungan yang tenggelam ini?
Lagi pula, seringkali, hanya tempat kematian yang sangat dekat, sebuah bujur sangkar tertentu di laut terbuka, yang diketahui tentang kapal yang tenggelam, dan bahkan itu pun tidak akurat.


Untuk menyelesaikan masalah, kami membaginya menjadi 3 bagian.


  1. Pertama, Anda perlu memindai persegi yang luas, menyoroti anomali dalam sonar dan gambar batimetri
  2. Kemudian mengklasifikasikan anomali yang ditemukan untuk memahami apa yang kami temukan
  3. Terakhir, lakukan inspeksi visual terhadap objek

Di arah pertama, kami memecahkan masalah pendeteksian objek terkenal pada gambar sonar (mendeteksi anomali), serta tugas pembelajaran-ke-peringkat - kami menentukan "relevansi" dari anomali ini, yaitu, bahwa anomali benar-benar sebuah kapal, atau pesawat terbang, atau sesuatu yang buatan manusia, bukan batu, misalnya.


gambar


Tugas selanjutnya ke arah ini adalah klasifikasi anomali yang ditemukan - ini adalah kapal, atau masih pesawat terbang, atau mungkin sebuah wadah. Untuk melakukan ini, frekuensi sonar berubah, yang memungkinkan Anda untuk mendapatkan gambar dengan resolusi lebih tinggi dan mencoba untuk mengklasifikasikan objek.


Omong-omong, bagaimana cara kerja pemindaian samping sonar?


Pemindaian samping menggunakan sonar yang memancarkan pulsa berbentuk kerucut atau berbentuk kipas ke dasar laut melalui sudut lebar tegak lurus terhadap jalur sensor. Intensitas pantulan akustik dari dasar laut balok berbentuk kipas ini direkam dalam serangkaian bagian melintang. Dijahit bersama di sepanjang arah perjalanan, potongan-potongan ini membentuk gambar dasar laut dalam strip (lebar cakupan) dari balok. Frekuensi suara yang digunakan dalam side-scan sonar biasanya berkisar antara 100 hingga 500 kHz; frekuensi yang lebih tinggi memberikan resolusi yang lebih baik tetapi jangkauan yang lebih kecil.


gambar


Fitur penting dari operasi sonar adalah bahwa objek yang "dipindai" olehnya memiliki bayangan akustik, yang bentuknya terkadang lebih tiba-tiba daripada bentuk objek itu sendiri.


gambar


Di arah kedua, untuk kedua kalinya kami melewati sonar di atas setiap anomali dengan peringkat tinggi dan memecahkan masalah klasifikasi, mencoba menentukan jenis kapal atau pesawat yang kami temui.


gambar


Seluruh triknya adalah sekarang pencarian seperti itu dilakukan secara manual. Operator duduk (kadang-kadang selama 12 jam!) Dan melihat layar sonar, mencoba menentukan apakah ada sesuatu di sana atau tidak. Solusi yang kami kerjakan akan memaksimalkan otomatisasi seluruh proses.


Dimana uang data, Lebowski?


Masalah utama yang kami temui selama penelitian adalah fakta sederhana bahwa ada sangat sedikit gambar sonar yang tersedia untuk umum. Pada kumpulan data yang kami kumpulkan dari sekitar 220 gambar, detektor yang baik dan, lebih lagi, pengklasifikasi secara praktis tidak mungkin untuk diajarkan. Namun demikian, kami berhasil menemukan jalan keluar: kami hanya menghasilkan dataset kami;)


Singkatnya, pendekatannya adalah ini:


1) Dalam hal terjadi banjir, kapal paling sering berbaring ke bawah, lebih jarang di atas kapal, sangat jarang geladak.
2) Kami mengambil gambar kapal yang masih hidup (fotografi udara, satelit, ada dataset seperti itu, set yang sama dari kompetisi Airbus di Kaggle , misalnya) dan "menenggelamkannya".



Untuk "flooding", kami menggunakan CycleGAN - subspesies dari Generative Adversarial Network, yang memungkinkan transfer gaya satu gambar ke yang lain. Setelah pelatihan sekitar 400 era dan ~ 220 pasang A dan B (hidup dan tenggelam), sudah dimungkinkan untuk mendapatkan gambar yang memadai.


Kami mengambil gambar nyata dari sonar:


gambar


Gambar satelit:


gambar


Dan pada akhirnya kita mendapatkan gambar ini:


gambar


Dan kami dengan hati-hati memilih set validasi sehingga model detektor atau penggolong tidak melatih gambar buatan.


Akhirnya, di arah ketiga - inspeksi dan analisis visual - kami, antara lain, memecahkan masalah koreksi warna gambar dan video, dehazing dan super-resolusi menggunakan semua GAN yang sama, tetapi kali ini arsitektur U-GAN, W-GAN dan SRGAN.


Sifat penembakan bawah air sedemikian rupa sehingga hanya ada sedikit sumber cahaya alami (lebih tepatnya, mereka tidak ada sama sekali), dan cahaya buatan lampu sorot kendaraan laut dalam agak rendah daya.


Akibatnya, gambar yang diambil di bawah air biasanya terlihat seperti ini:


gambar


Saluran pipa kami memungkinkan Anda untuk menerima gambar-gambar ini saat ini:


gambar


Ini juga berlaku untuk video (video direkam pada remote control kendaraan bawah air Gnome pro):



Cari & Penyelamatan


Menurut statistik UE, dari 2011 hingga 2017, lebih dari 20.000 kapal berpartisipasi dalam berbagai insiden, dengan hampir 7.000 orang terluka, yang 683 di antaranya meninggal.


gambar


Insiden itu sangat berbeda, karena berbagai alasan: mulai dari kehilangan kendali atas kapal hingga tabrakan dalam gelap atau dalam kondisi visibilitas yang buruk. Kapal-kapal hilang di laut terbuka ketika transponder mogok, pembangkit listrik gagal dan kapal dapat dihilangkan energi, akhirnya, seseorang dari tim dapat hanyut oleh gelombang yang mengalir.


Kami menetapkan tujuan untuk mempengaruhi statistik menyedihkan kami dan untuk itu kami menyelesaikan tugas-tugas berikut:


1) Deteksi dan Klasifikasi Gambar dengan Radar Bukaan Sintetis
2) Deteksi dan Klasifikasi kapal berdasarkan citra satelit / pesawat
3) Pencarian orang yang tenggelam dan peralatan dan kargo yang tenggelam dari gambar sonar


Selain itu, kami juga memecahkan masalah segmentasi kapal pada gambar dari sonar, yang akan memungkinkan kami untuk menentukan lebih tepat poin untuk penyelaman berikutnya.


Mari kita membahas lebih rinci tentang setiap tugas.


Dengan deteksi satelit, semuanya kurang lebih jelas, masalah serupa sudah diselesaikan di kompetisi Airbus Kaggle yang disebutkan di atas. Anda juga dapat mengunduh dataset yang baik di kaggle.


Dengan gambar SAR, juga kurang lebih jelas, ada dataset OpenSARShip yang baik, yang berada dalam domain publik, karena peluncuran satelit Sentinel-1 oleh Uni Eropa telah membuat data lebih heterogen dalam domain publik.


Garis dasar yang cepat, bahkan di sejumlah kecil era, menunjukkan kecepatan yang dapat diterima pada arsitektur ResNet.


menggambar

Klasifikasi lebih lanjut sulit kecuali bahwa banyak jam kerja dihabiskan untuk markup.


Agak lebih menarik adalah halnya dengan gambar inframerah. Mungkin hanya ada satu dataset yang bagus dengan gambar inframerah dari kapal - VAIS , tetapi ini relatif kecil.


Tapi, seperti yang Anda duga, hipotesis penambahan set menggunakan transfer gaya juga bisa datang ke sini. Namun demikian, bahkan pada dataset awal, kami berhasil mendapatkan klasifikasi dasar yang baik (= lebih baik daripada acak) pada jaringan Siam .


menggambar3

Semuanya jauh lebih rumit dengan deteksi orang yang tenggelam.


Pertama, tidak ada dataset.
Kedua, tidak.
Ketiga, mereka sama sekali tidak.


Namun demikian, masalahnya sedang diselesaikan.


Seseorang yang tenggelam di layar sonar terlihat seperti ini:


menggambar2

Ketinggian di atas bagian bawah dapat berbeda, tergantung pada periode yang telah berlalu sejak saat kematian.


Bagaimana kita mendapatkan dataset dengan gambar-gambar seperti itu? Anda dapat, tentu saja, menenggelamkan beberapa boneka dan mengambil gambar dengan sonar, tetapi ada cara yang lebih murah.


Kami dapat mengumpulkan model 3D orang di situs perbankan gambar gratis, dan sama sekali tidak diperlukan dengan tekstur atau detail tinggi. Kemudian memanaskan adegan dengan bagian bawah yang tidak rata, atau menempatkan model 3D di salah satu simulator open source seperti UWSim atau UUVSimulator, di mana air, dan segala sesuatu di bawahnya, disimulasikan sesuai dengan semua kanon.


gambar


Kemudian Anda bisa mendapatkan tangkapan layar dari adegan-adegan ini, yang kemudian ... dengan benar, menerapkan transfer gaya. Lebih banyak GANS ke dewa GANS!


Akibatnya, pipa akan seperti ini:


menggambar4

Pendekatan ini memungkinkan Anda untuk mendapatkan dataset yang valid tanpa perlu biaya yang tidak perlu.


Rencana selanjutnya


Dan rencana masa depan kami besar :) Kami sedang mengerjakan semua petunjuk yang ditunjukkan di awal artikel menggunakan teknik dan peretasan yang kami pelajari saat bekerja untuk arkeologi laut dan Search & Rescue.


Kami sedang bernegosiasi dengan Pusat Penelitian Kelautan MSU , Administrasi Kelautan dan Atmosfer AS , Badan Climate4Media Estonia untuk Pemantauan Iklim dan Lingkungan tentang kemitraan, serta dengan pabrik sonar dan layanan pemerintah yang bertanggung jawab untuk pencarian dan penyelamatan di atas air.


Dan, tentu saja, kami mencari lebih banyak pembantu dan mitra.


Pertama-tama, kami akan dengan senang hati kepada ahli biologi kelautan, ekologi, arkeolog, dan ahli kelautan - kami akan mengajari Anda dalam Pembelajaran Mendalam, dan Anda akan melakukan sisanya :)
Jika Anda memiliki data dari sonars, dalam format .xtf atau .dat, atau data lain tentang subjek kami, maka kami juga akan senang untuk bekerja sama.


Kedua, kami melakukan banyak penelitian (GAN, Karl! Kami masih memiliki GAN 3D dalam perjalanan untuk menghasilkan awan titik 3D), yang membutuhkan daya komputasi yang signifikan, terutama GPU.


Ketiga, kami mencari pelanggan potensial untuk mencoba solusi kami dalam kondisi pertempuran.


Dan akhirnya, kami mencari investor yang tertarik pada pekerjaan kami dan prospek untuk menggunakan hasilnya tidak hanya untuk kebaikan sosial, tetapi juga untuk bisnis.


Rencana kami yang paling penting adalah menjauh dari mode "lakukan di malam hari dan akhir pekan" ke "mode ini" adalah pekerjaan kami dan kami menyukainya ":)


Karena sifat ikhtisar artikel tersebut, saya tidak memikirkan teknologi yang digunakan secara rinci. Jika Anda memiliki pertanyaan - selamat datang di komentar, ke halaman proyek , ke PM, ke surat (pavel.golubev@maritimeai.net), ke slack SLM , akhirnya! Anda juga dapat melihat laporan singkat kami di bagian ML4SG di DataFest yang diadakan pada bulan Mei - di sini . Jika menarik untuk mempertimbangkan beberapa teknologi secara terperinci - tulis, kami akan menuliskan pos terpisah.


Itu mungkin saja, lakukan perbuatan baik :)

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


All Articles