Виявлення наповненого скляного предмета


10

Мене надіслали сюди з цього питання в stackoverflow , вибачте, будь ласка, якщо питання надто конкретне і воно тут не в манерах :)

Завдання - знайти склянку з певною рідиною в ній. Дозвольте показати вам фотографії, а потім описати, чого я намагаюся досягти, і як я намагався досягти цього в описі під малюнками.

Фотографії : (здається, мені потрібно щонайменше 10 репутації, щоб розміщувати фотографії та посилання, тому посилання доведеться робити :( інакше ви можете подивитися на питання переповнення стека)

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення

Детальний опис : я намагався реалізувати алгоритм, який би визначав скло конкретної форми у opencv (скло може бути перетворене на інший кут / відстань зйомки камери). Будуть також інші окуляри інших форм. Скло, яке я шукаю, також буде наповнене кольоровою рідиною, яка відрізнятиме його від склянок, що містять інші кольори.

Поки я намагався за допомогою екстрактора функцій SIFT спробувати знайти деякі функції у склі, а потім зіставити їх з іншими фотографіями зі склом у ньому.

Цей підхід працював лише в дуже специфічних умовах, коли я мав би скло в дуже специфічному положенні, а тло було б схожим на навчальні образи. Проблема також полягає в тому, що скло - це 3D-об’єкт, і я не знаю, як витягти з нього функції (можливо, кілька фотографій з різних кутів - якось пов’язано?).

Зараз я не знаю, яким іншим підходом я можу скористатися. Я знайшов деякі підказки щодо цього (тут /programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338 ), але посилання, здається, порушені.

Ще однією проблемою було б виявити різні "рівні порожнечі" у такому склі, але я навіть не зміг правильно знайти скло.

Які були б ваші рекомендації щодо підходу до цього завдання? Було б краще скористатися іншим способом пошуку локальної 3d-об’єкти? Або краще взагалі використовувати інший підхід? Я чув про алгоритми "вивчення" об'єкта з набору декількох фотографій, але я ніколи цього не бачив на практиці.

Будь-яка порада буде дуже вдячна


будь-яке остаточне рішення з повним зразком вихідного коду в C #?
Кікенет

Ух, це досить специфічний запит. проблема ще не має рішення, і я більше не вкладатимуть більше часу у її вирішення. я вважаю, судячи з доповіді, згаданої тут, що наукові підстави не знайдуть рішення також дуже скоро, оскільки запропонований алгоритм мав дуже низькі показники точності. у будь-якому разі, оскільки цей проект був моєю роботою, я закінчився суперечкою про компроміс із клієнтом, оскільки завдання нереально завершити сьогодні. використовував звичайні детектори функцій, схожих на хаар, для "всього, що схоже на чашку", а потім вибирав жовті відтінки для виявлення пива. не оригінальне завдання
користувач1916182

Відповіді:



0

Можливо, цей документ може вам допомогти: http://ai.stanford.edu/~ang/papers/iros09-ScalableLearningObjectDetectionGPU.pdf

Хоча вони використовують активну стереосистему на додаток до 2D-зображень для отримання глибинних зображень, цікаво, як вони використовують функції на основі патча, будуючи словник об’єкта з багатьма невеликими фрагментами, а потім навчаючи класифікатор. Можливо, ви можете додати ці функції, щоб покращити показник виявлення.


я не думаю, що цю роботу можна використовувати дуже добре в дикій практиці. Роботу, описаному в статті, потрібен датчик глибини для виявлення інформації про глибину ... не дуже практично, щоб носити кінект навколо, коли робите випадкові фотографії на мобільний телефон чи щось таке ... але так, функції на основі патча - дуже цікавий підхід!
користувач1916182

-1

З цим було зроблено багато роботи, що стосується програмного забезпечення для розпізнавання обличчя. Наприклад, якщо ви помітили у Facebook під час тегування фотографій, розташування облич розміщується у вікні та пропонується вам.

Я побачив багато літератури про розпізнавання обличчя на зображеннях за допомогою нейронних мереж, і швидкий пошук в Google, безсумнівно, оберне величезну кількість інформації з цього приводу. Ці мережі приймають пікселі зображення як вхідні дані. У вашому випадку спосіб зміни непрозорості / відбиття світла від скла може бути хорошим виявленням особливостей, які навчатиметься мережа.

Однією з проблем може бути кількість фотографій, які ви повинні використовувати як навчальні дані та попередню обробку (тобто ідентифікацію обличчя). Якщо зробити це неможливо для достатньої кількості зображень, щоб достатньо добре тренувати вашу мережу, тоді вам доведеться шукати деякі ярлики на етапі навчання. Ця стаття стосується того, що ви хочете зробити: http://www.ll.mit.edu/publications/journal/pdf/vol04_no2/4.2.5.neuralnetwork.pdf

На щастя, це дуже активне поле, і значна частина коду, необхідного для цього типу проблем, доступна в Інтернеті.

Після того, як ви зможете виявити окуляри на зображеннях, ви зможете звідти зробити додатковий аналіз.


це абсолютно не має значення
користувач1916182

Цікаво вам це сказати. У будь-якому випадку тут є посилання на алгоритми виявлення, які використовує Facebook на основі нейронних мереж. Удачі, github.com/facebookresearch/Detectron .
rwolst
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.