Deteksi orang dari atas

16

Saya mencoba menemukan beberapa metode untuk mendeteksi orang menggunakan hanya satu kamera 3 meter di atas tanah. Ini adalah bingkai yang dikembalikan oleh kamera:

masukkan deskripsi gambar di sini

UPDATE: Tes video -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

Untuk melakukan itu, pertama-tama saya mengerti bahwa saya harus melakukan segmentasi latar-latar depan. Itu bagian yang mudah.

Dengan topeng latar depan, saya dapat melakukan operasi sederhana seperti transformasi Hough untuk menemukan lingkaran, tetapi cara ini hanya mendeteksi 60% kepala, termasuk banyak positif palsu.

Saya dapat menggunakan beberapa teknik sederhana lainnya seperti segmentasi warna, tetapi saya menemukan bahwa kepala orang sangat berbeda dilihat dari atas karena gaya rambut, warna, jumlah rambut, ...

Opsi lain yang saya miliki tentang hal itu adalah kemungkinan untuk menggunakan HOG Descriptors, atau fitur seperti Haar, tetapi saya akan membutuhkan database orang yang luas yang terlihat dari atas untuk melatih model. Saya belum menemukan yang seperti itu.

Saya pikir ini akan menjadi masalah yang sangat berulang, tetapi saya tidak dapat menemukan banyak tentang itu di literatur atau internet. Bantuan apa pun untuk menyelesaikan tugas ini akan dihargai :-)

PEMBARUAN: Untuk informasi lebih lanjut, tujuannya adalah untuk mengimplementasikan beberapa metode umum untuk membuat pelacakan aliran pejalan kaki. Prototipe pertama akan diuji di Mall.

emepetres
sumber
1
Jika Anda dapat memposting beberapa video, ada kemungkinan seseorang akan menulis prototipe. Bisakah Anda memposting?
Andrey Rubshtein
@Andrey, saya mengunggah tes video yang menunjukkan masalah.
emepetres
@emepetres Jika Anda memiliki sumber daya untuk menguji masalah ini, mungkin Anda juga memiliki sumber daya untuk menemukan kamera kedua? Menggabungkan pandangan dari dua kamera (satu pandangan atas, dan satu frontal atau dari sudut) dan menggunakan informasi dari kedua suara yang menarik dan seperti pendekatan yang masuk akal untuk pelacakan aliran pejalan kaki (tergantung pada akurasi yang Anda butuhkan)
penelope
4
tugas ini disebut "penghitungan orang" dalam literatur.
mrgloom
Bisakah Anda memberikan tautan untuk video ini. Ini tidak tersedia lagi di tautan yang disediakan
Garvita Tiwari

Jawaban:

11

Apakah ada benda lain yang bisa bergerak di samping orang? Jika tidak, Anda bisa menemukan gumpalan (komponen yang terhubung) di topeng latar depan Anda, dan ini adalah orang-orang Anda.

Mereka juga dapat "bertabrakan" satu sama lain, menciptakan satu gumpalan, bukan dua. Dalam hal ini, Anda dapat melakukan pelacakan gerakan dan menyelesaikan ambiguitas dengan menggunakan fakta bahwa lintasan dan kecepatannya halus.

Jika ada objek lain (seperti anjing, mobil), Anda harus membuat classifier yang mendapat parameter gumpalan seperti:

  • Statistik gumpalan (ukuran, soliditas, dll.)
  • Warna
  • Informasi tepi
  • Kecepatan (dalam hal pelacakan)

Dan mengembalikan kelas yang benar (Manusia / Tidak Ada Manusia).

Andrey Rubshtein
sumber
1
Saya mencari metode yang kuat yang dapat membedakan antara manusia / non-manusia juga. Dengan cara itu, setelah memikirkan jawaban Anda, saya pikir menggunakan parameter gumpalan seperti yang Anda sarankan, dikombinasikan dengan beberapa fitur pelacakan dan beberapa informasi statistik gumpalan harus cukup kuat.
emepetres
8

Saya telah berada di "untuk menggunakan metode yang teruji dengan baik saya akan membutuhkan database contoh yang luas yang saya tidak punya" posisi di perusahaan yang sangat kecil yang "tidak mampu membelinya". Saya sangat menyesal bahwa saya tidak hanya melakukan apa pun yang diperlukan untuk mendapatkan data sebanyak mungkin. Saya pikir itu akan membuat dunia berbeda bagi mereka pada akhirnya.

Deteksi penglihatan dunia nyata apa pun memiliki sejuta hal yang tidak Anda pikirkan sampai Anda mencobanya dan gagal. Ini adalah masalah lama, berkali-kali lebih sulit daripada yang terlihat. Saya akan merekomendasikan menempel pada metode newton "berdiri di bahu raksasa" (atau, hampir sama baiknya, di atas tumpukan besar kurcaci). Artinya, gunakan metode yang sudah Anda ketahui berfungsi dan kuat. Semua hal yang kedengarannya akan "cukup baik" malah akan gagal total.

Keadaan canggih dalam deteksi pejalan kaki terakhir yang saya tahu adalah HOG yang awalnya diuji dalam pengaturan itu. Anda ingin melacak sehingga Anda perlu sedikit bermain di google scholar untuk menemukannya. Beli poin utama saya adalah, saya telah berada di posisi yang sama dan dari itu saya akan merekomendasikan Anda mendapatkan database Anda, apa pun yang harus Anda lakukan, dan menggunakan sesuatu yang Anda tahu bekerja, yang sudah diuji dengan tingkat kegagalan yang diketahui, tidak sesuatu yang kedengarannya bagus. Pawai kematian 40 tahun algoritma penglihatan komputer yang "terdengar seperti mereka akan bekerja" bukanlah sesuatu yang Anda inginkan.

PS Tidak mencoba mengkritik visi komputer. Ini salah satu area favorit saya. Tapi sejarah menunjukkan ada seribu langkah yang salah untuk diambil dan tidak banyak yang benar. Lebih baik mengikuti seseorang yang sudah menemukan beberapa langkah yang benar.

John Robertson
sumber
Mungkin Anda benar, dan saya harus meluangkan waktu membuat basis data yang baik untuk melatih dan menguji deskriptor HOG. Dengan cara itu, apakah Anda tahu ukuran minimum mana yang akan memiliki database ini untuk membuat pelatihan dengan benar?
emepetres
1
Saya tidak tahu. Variasi selebar mungkin. Selain itu, HOG adalah detektor, ia mengembalikan respons "ya ada orang" atau "tidak ada orang" untuk gambar dan tidak ada yang lain. Ia tidak mengatakan apa-apa tentang di mana orang itu (lokasi) atau berapa piksel orang tersebut (segmentasi) atau apakah ada beberapa orang versus satu orang. Saya pikir beberapa adaptasi untuk HOG telah dibuat (beberapa dipatenkan) tetapi intinya adalah apa yang Anda inginkan adalah pelacakan orang dan HOG seperti yang ada adalah tentang deteksi saja, bahkan lokasi. Saya belum pernah melakukannya tetapi pelacakan orang adalah topik yang sudah lama ada. Lihat makalah tentang pelacakan orang.
John Robertson
1
@John Robertson HOG bukan detektor itu hanya descriptor dan digunakan dengan beberapa classificator (SVM + HOG misalnya) dan dapat mengembalikan lokasi objek.
mrgloom
1
@ mrgloom Anda benar. Itu mengembalikan lokasi dengan melakukan pencarian berjendela. Itu hanya cepat menggunakan metode yang dipatenkan oleh perusahaan besar sekalipun. Saya tidak bermaksud menggunakan kata detektor dalam pengertian teknis di sini, hanya dalam arti bahasa Inggris sederhana bahwa itu adalah sesuatu yang mendeteksi. Ini hanya memberikan lokasi dalam arti longgar bahwa di dalam jendela itu ada seseorang yang kira-kira 80-90% dari skala jendela tetapi tanpa identifikasi bagian mana dari jendela itu mungkin milik orang tersebut. Saya akrab dengan perbedaan teknis deskriptor / detektor.
John Robertson
3

Saya pikir Anda bisa memulai dengan menggabungkan beberapa jawaban dari sini.

Ada dua pendekatan berbeda yang disebutkan dalam jawaban ini , dengan perbedaan utama bahwa Anda tidak mungkin melakukan deteksi wajah karena Anda tidak melihat wajah. Tetapi pendekatan lain masih berlaku: memutuskan cuaca sesuatu adalah pejalan kaki atau tidak berdasarkan tindakannya (gerakan) .

Ini akan, seperti yang Anda prediksi, menyarankan menggunakan semacam segmentasi latar latar depan. Googling yang sangat cepat menemukan artikel terbaru ini yang terlihat cukup menjanjikan, tetapi karena saya tidak pernah melakukan ini secara pribadi, Anda atau orang lain mungkin memiliki saran yang lebih baik untuk algoritma tertentu untuk digunakan dalam langkah ini.

Sekarang, jawaban pertama yang saya tautkan hanya memberikan ide pendekatan yang sangat umum. Namun jawaban ini dapat memberi Anda gagasan tentang langkah Anda selanjutnya: melacak objek, dan mencoba membedakannya berdasarkan kecepatan atau arah bergerak .

Akhirnya, saya tidak pernah menangani masalah yang Anda miliki, jadi saya mungkin tidak banyak membantu, tapi mungkin jawaban yang saya tautkan dapat memberi Anda beberapa gagasan umum tentang dari mana harus memulai. Itu juga mengejutkan saya bahwa saya tidak dapat menemukan karya dan artikel sebelumnya ketika mencari jawaban untuk masalah Anda, tetapi kemudian, mungkin Anda hanya perlu seseorang untuk memberi tahu Anda kata kunci yang tepat untuk menggambarkan masalah ini .

Penelope
sumber
Terima kasih atas jawaban Anda. Artikel tentang segmentasi foreground terlihat sangat menarik. Seperti yang disarankan oleh Anda dan @Andrey, saya akan mengikuti pendekatan analisis gumpalan untuk menentukan jumlah manusia di setiap gumpalan.
emepetres
@emepetres Akan lebih baik jika Anda memberi tahu kami tentang hasil Anda, dan seberapa sukses pendekatan itu setelah Anda mencobanya dan mengujinya
penelope
1

Saya memiliki semacam tugas seperti yang dijelaskan di sini, menghitung orang. Tetapi persyaratan saya adalah kamera harus menghadap orang dari sisi kiri / kanan, bukan di atas kepala.

Yang sedang berkata, mengeksplorasi solusi yang mungkin untuk kasus saya, saya menemukan metode yang menarik untuk kasus Anda (deteksi overhead). Solusi tersebut menggunakan kamera stereo sehingga Anda dapat menangani gumpalan (orang-orang bergerak terlalu berdekatan) dengan melihat kedalaman (mis. Hanya melihat gumpalan pada tingkat kepala rata-rata orang).

Produk ini mungkin memberi Anda penjelasan yang lebih baik: digiop . Lihat brosur untuk penjelasan teknis lebih lanjut.

PS Saya tidak mewakili perusahaan, hanya menunjukkan solusi yang terdokumentasi dengan baik

bonchenko
sumber
Terima kasih telah berbagi, Tampaknya ini cara yang menarik untuk menyelesaikan masalah.
emepetres