Layanan online "Analisis Kecepatan dalam Kecelakaan oleh Video"


Dalam versi uji, layanan online telah diluncurkan yang menunjukkan kecepatan saat ini dari objek yang menarik bagi kami (mobil dan kendaraan lain) menggunakan rekaman dari kamera video di persimpangan.

Masalah memvisualisasikan jarak saat mengendarai mobil dan kecepatan saat ini dihadapi oleh kedua siswa di sekolah mengemudi dan pengemudi yang cukup berpengalaman.

Tetapi ada solusi - analisis data ini pada frame video yang direkam sebelumnya dan pemrosesan mereka di berbagai layanan berbayar dan gratis, dapat diakses dan ditutup.



Salah satu layanan yang muncul baru-baru ini akan dibahas lebih lanjut.

Tautan ke layanan online "Analisis Kecepatan dalam Kecelakaan oleh Video".

Halaman utama layanan (sejauh ini sangat sederhana):



Penulis gagasan dan implementasinya adalah programmer Rusia dan Khabrovchanin - Ilya Alexandrovich Volkov .

Publikasi ini ditulis di HabrΓ© dengan izinnya.

Saat ini, layanan tidak bekerja secara otomatis, setiap video harus terlebih dahulu disiapkan untuk diproses secara manual oleh operator layanan (sekarang ini adalah penulisnya dalam satu orang atau pengguna baru, instruksi untuk bekerja dengan layanan di akhir publikasi).





Tahapan pemrosesan bingkai video:

- pada tahap pertama, distorsi optik dari kamera dikompensasi, yaitu, semua garis lurus dari dunia nyata harus lurus dan pada video yang diproses oleh layanan (koreksi distorsi dari kamera sudah bekerja secara otomatis dalam layanan);

- pada tahap kedua, referensi lokasi dibuat untuk bidang jalan, untuk ini operator perlu menandai persegi panjang pada kerangka seperti di dunia nyata dan memasukkan dua (atau lebih) segmen dengan panjang yang diukur sebelumnya (biasanya ini: lebar jalan, lebar jalur terpisah antara garis penanda, jarak) antara gerbong atau rambu, jarak roda mobil);









- pada tahap ketiga, operator layanan pada setiap frame perlu mengatur titik di mana objek yang diinginkan berada (tandai jalurnya), dan sebagai hasilnya, layanan akan menunjukkan kepada kita kecepatan objek saat ini dan perubahannya selama perpindahan.









Pemain layanan memiliki alat Penguasa, yang dengannya Anda dapat mengukur jarak pada video:



Keakuratan layanan sangat bergantung pada kualitas dan parameter video.



Sekarang layanan hanya bekerja dengan bingkai video yang diperoleh dengan menggunakan kamera statis (stasioner), basis data dari catatan ini dilengkapi dan dikembangkan.

Dalam proses finalisasi fungsi layanan, penulis berencana untuk menambahkan analisis catatan yang diperoleh dengan bantuan perekam video dalam memindahkan dan menghentikan mobil.

Penulis layanan berencana untuk menganalisis sejumlah besar video dari kecelakaan yang melibatkan pejalan kaki dan menganalisis statistik data tentang kecepatan kendaraan pada saat tabrakan.





Inilah yang akan dilakukan penulis untuk mengembangkan layanan ini:

  • tambahkan pelacakan titik otomatis;
  • tambahkan geotag;
  • memperkenalkan filter Kalman untuk meluruskan kesalahan observasi;
  • menggunakan visi komputer;
  • menambah fungsionalitas untuk menghitung kecepatan beberapa objek;
  • Direncanakan untuk memperkenalkan pembelajaran mesin untuk layanan ini untuk meminimalkan pekerjaan operator dalam menyiapkan rekaman video.



Saya sangat berharap bahwa publikasi ini akan menarik minat Khabrovites dan membantu penulis layanan ini dalam pengembangan dan pekerjaannya saat ini.

Saya berhasil menghubungi penulis layanan ini Ilya Volkov , berbicara dengannya tentang fungsionalitas layanan dan mendapatkan jawaban atas beberapa pertanyaan tentang proyek ini khusus untuk Habr.

Wawancara dengan penulis layanan "Analisis Kecepatan dalam Kecelakaan oleh Perekaman Video":

Pertanyaan: Apakah ide menerapkan layanan seperti itu sudah muncul sejak lama?
Jawaban Ilya: Sekitar empat bulan lalu saya melihat video dari kecelakaan dan menjadi menarik pada kecepatan apa (setidaknya kira-kira) salah satu peserta bergerak. Menjadi menarik bukan hanya bagi saya - dalam komentar ke video ada banyak kontroversi, dan berbagai peringkat dipanggil. Saat itulah saya berpikir bahwa alat seperti itu akan berguna.

Pertanyaan: Berapa banyak waktu yang telah berlalu dari pemikiran bahwa "Anda dapat melakukan ini" hingga peluncuran layanan yang pertama?
Jawaban Ilya: Ya, selama empat bulan, sudah sekitar. Tapi saya tidak akan tergesa-gesa memanggil versi yang saat ini berfungsi - masih lembab :)

Pertanyaan: Bahasa dan platform apa yang Anda gunakan dalam layanan dan mana yang Anda rencanakan untuk digunakan lebih lanjut?
Jawaban Ilya: Proyek ini dihosting di Firebase, ini adalah hal yang bagus untuk memulai dengan cepat ke hampir semua proyek. Otorisasi, hosting, basis data, penyimpanan file - semuanya ada di luar kotak. API Nyaman, sepenuhnya gratis pada awalnya.

Frontend - Vue.js, juga alat sederhana untuk belajar dari awal. Menggambar di kanvas menggunakan Konva.js, shader bertanggung jawab atas distorsi optik.

Hampir semua kode (kecuali untuk shader) ditulis dalam JavaScript. Tidak ada klaim khusus untuk stack, saya akan terus bekerja dengannya.

Pertanyaan: Kapan mungkin bagi pengguna biasa untuk mengunggah video mereka dan bekerja dengan layanan ini?
Jawaban Ilya: Pada prinsipnya, ini bisa dilakukan sekarang, saya menulis instruksi tentang bagaimana melakukan ini.

Pertanyaan: Apakah Anda satu-satunya yang terlibat dalam proyek atau apakah ada tim programmer?
Jawaban Ilya: Tim masih kecil - saya adalah teman saya, yang memiliki kompetensi dalam pengembangan front-end.

Pertanyaan: Apakah Anda berencana untuk melanjutkan pengembangan layanan dan apakah Anda mengharapkan bantuan dari kolega / anggota forum pada proyek ini?
Jawaban Ilya: Pengembangan layanan sudah pasti direncanakan, karena prototipe terlihat sangat menarik. Gagasan pengembangan penuh, keinginan juga hadir.
Bantuan selalu diterima - terutama saran.

Pertanyaan: Apakah ini layanan gratis atau adakah rencana untuk monetisasi?
Jawaban Ilya: Prospek untuk monetisasi masih agak kabur. Mungkin mereka akan menjadi jelas di masa depan.

Pertanyaan: Apakah organisasi atau komunitas muncul yang tertarik dengan layanan ini? Misalnya, klub motor atau sekolah mengemudi?
Jawaban Ilya: Komunitas tidak menulis kepada saya, tetapi beberapa pakar otomatis tertarik dengan proyek ini.

Pertanyaan: Apa akurasi penentuan kecepatan menggunakan layanan sekarang? Seberapa besar perbedaan data ini jika parameter yang diperlukan dimasukkan untuk mengukur roulette dari jalan nyata atau menggunakan layanan geografis di mana lebar jalan diukur dengan penggaris bawaan?
Jawaban Ilya: Dalam video dengan kualitas sangat baik dan tanpa distorsi optik, akurasinya tidak buruk, tes pada dataset terbuka menunjukkan kesalahan hingga 3%. Akurasi berkurang dengan penurunan kualitas video dan kecepatan bingkai yang tidak stabil.

Adapun pengukuran dengan roulette dan dengan bantuan geoservices - roulette, tentu saja, lebih andal. Data dari suatu geoservice tidak bisa dipercaya secara membuta, tetapi bisa dan harus diperiksa ulang.

Secara umum, saya memiliki keinginan besar untuk menolak untuk mengambil medan ke tengara dan menjadi terikat berdasarkan jarak roda mobil dan jarak lain yang diketahui dengan tepat.

Pertanyaan: Apakah mungkin untuk memilih unit pengukuran (km \ h, m \ s, mil \ jam) dan menyimpan data telemetri berkecepatan tinggi ke file log yang terpisah?
Jawaban Ilya: Ya, karena tidak begitu sulit untuk dilakukan. Tetapi ketika itu akan terwujud - saya tidak bisa mengatakan.

Pertanyaan: Video di musim dingin akan lebih sulit diproses dalam layanan Anda karena lapisan salju di jalan?
Jawaban Ilya: Ya, salju menambah kesulitan - beberapa landmark tidak terlihat, kadang-kadang bahkan geometri jalan berubah. Namun pada prinsipnya, kecepatan juga dihitung pada video bersalju.

Pertanyaan: Apakah direncanakan menggunakan jaringan saraf dalam layanan?
Jawaban Ilya: Ini jelas bukan prospek untuk waktu dekat, tetapi topiknya jelas sangat menarik. Akan keren untuk melatih jaringan saraf untuk memilih faktor-faktor distorsi kamera. Banyak ide untuk menggunakan jaringan saraf siap pakai. Tapi untuk saat ini, ada banyak yang harus dilakukan tanpa mereka :)

Pertanyaan: Sekarang layanan di-host di Firebase, apakah Anda mencari alternatif?
Jawaban Ilya: Satu-satunya hal yang tidak terlalu suka dengan Firebase adalah harganya. Misalnya, harga lalu lintas 1 GB dari penyimpanan file sekitar 7 rubel, sedangkan Yandex.Cloud hanya memiliki satu rubel. Meskipun ini bukan masalah yang sangat besar, tetapi di masa depan saya akan mencari cara untuk mengoptimalkan. Sekarang saya merancang arsitektur sedemikian rupa agar tidak menjadi sangat melekat pada penyedia layanan.


Terima kasih banyak kepada Ilya untuk jawaban yang menarik dan terperinci!

Jika memungkinkan, penulis menambahkan video baru ke layanan:







Instruksi untuk bekerja dengan layanan ada di sini .

1. Untuk membuat proyek Anda, Anda harus masuk. Sementara otorisasi tersedia melalui akun Google dan Facebook. Setelah otorisasi, tombol "Buat Proyek" akan tersedia untuk Anda.



2. Klik tombol "Buat Proyek", halaman untuk membuat proyek baru muncul, di mana ia diusulkan untuk mengunduh file video. Sedangkan ukuran maksimum file video adalah 3 megabita. Anda dapat memotong video menggunakan layanan video ini .



3. Unduh file, setelah unduhan berhasil, halaman proyek akan terbuka secara otomatis.



4. Pertama, kami menghapus distorsi optik kamera: menggunakan slider k3, k4, Scale, sesuaikan distorsi sehingga semua garis lurus dari dunia nyata lurus dan dalam gambar.



5. Gerakkan segi empat sehingga cocok dengan persegi panjang dari dunia nyata dan menunjukkan 2 jarak (segmen tidak harus paralel).



6. Anda dapat menggunakan Yandex.Maps untuk mencari jarak.



7. Karena jarak pada Yandex.Maps mungkin tidak sepenuhnya akurat, kita perlu memastikan bahwa pengikatan yang diperoleh memadai menggunakan penggaris. Biasanya kita tahu jarak roda mobil. Sebagai contoh, basis VAZ-2114 adalah 2,46 meter, kita mendapatkan 2,45.



8. Panjang trem sekitar 16 meter, yang juga dekat dengan panjang sebenarnya.



9. Sekarang kita siap melakukan perhitungan kecepatan mobil secara langsung. Kami masuk ke mode pengeditan titik-titik objek dan menandai titik objek pada setiap bingkai. Menandai titik secara manual pada setiap bingkai bisa melelahkan, oleh karena itu ada alat interpolasi: tandai titik di satu bingkai, lalu tandai titik setelah 5-15 bingkai, pilih interval antara bingkai di timeline dan tekan tombol I: Sekarang titik di antara frame bergerak seragam secara lurus empat persegi panjang .



10. Jadi, kami menghitung kecepatan objek.

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


All Articles