Image İşlənmə: Coca-Cola Tanıma üçün Təkmilləşdirilmiş Alqoritm

Son bir neçə il ərzində işləyən ən maraqlı layihələrdən biri də görüntü emal layihəsidir. Məqsəd, Coca-Colanın "güclü" qutularını tanımaq üçün bir sistem inkişaf etdirmək idi ("banklar" sözünü vurğuladığımı nəzərə alaraq, niyə bir dəqiqə içində görürsünüz). Ölçüsü və fırlanma ilə yaşıl bir dikdörtgədə tanınma imkanı ilə aşağıda bir nümunəni görə bilərsiniz.

2019

1390
16 апр. 16 Martda Charles Menguy tərəfindən təyin olundu 2012-04-16 07:23 '12 at 07:23 2012-04-16 07:23
@ 26 cavab

Alternativ yanaşma miqyaslı qeyri-invariant transform funksiyalarını (SIFT) və ya Tezləşdirilmiş etibarlı funksiyaları (SURF) istifadə edərək funksiyaları (əsas nöqtələri) çıxarmaq olacaqdır.

OpenCV 2.3.1 tətbiq olunur.

Məlum bir obyekti tapmaq üçün Features2D + Homografi funksiyalarını istifadə edərək yaxşı bir nümunə tapa bilərsiniz .

Hər iki alqoritm miqyaslı və fırlanma üçün invariant deyildir. Onlar funksiyaları ilə işlədikləri üçün, oklüzyonu idarə edə bilərsiniz (kifayət qədər əsas nöqtələr görünsə).

2019

563
16 апр. Cavab verən stacker 16 apr. 2012-04-16 08:17 '12 at 8:17 2012-04-16 08:17

Prosesin sürətini artırmaq üçün mən özbaşına bir təsvir / obyekt tapmaq istəmirəm, amma xüsusilə Coca-Cola loqotipini istəmirəm. Bu vacibdir, çünki bu logo çox xarakterikdir və xüsusən qırmızı RGB kanalında, tezlik domenində xarakterik, miqyasda qeyri-invaziv imza olmalıdır. Başqa sözlə, üfüqi bir tarama xətti ilə qarşılanan qırmızı-ağ-qırmızı rəngli alternativ (lövhədə yatay şəkildə hizalanmış bir loqoda öyrədilmişdir) logoın mərkəzi hissəsindən keçən fərqli "ritm" olacaqdır. Bu ritm müxtəlif tərəzi və istiqamətlərdə "sürətləndirir" və ya "yavaş" olacaq, lakin mütənasib olaraq bərabərdir. Yəqin ki, ulduzun formalaşması modelini istifadə edərək, bir neçə düzəldən belə bir tarama xətlərini təsvir edə bilərik. Bu "imza scan xətləri" adlandırın.

2019

331
18 апр. cavab cavote verilir 18 Apr 2012-04-18 00:06 '12 at 0:06 2012-04-18 00:06

Maraqlı bir problem: şüşə imicinə baxdığımda bunun da ola biləcəyini düşündüm. Amma bir adam olaraq fərqimə çatdırdım ki, sonra da bunun bir şüşə olduğunu gördüm ...

Beləliklə, qablar və şüşə parçalamaq üçün, ilk növbədə ilk növbədə şüşələrin taranması barədə nə düşünürsünüz? Əgər taparsanız, bankları axtarmaqdan əvvəl qısayolunuzu maska ​​edin.

Əgər zaten banklar yapıyorsanız tətbiq etmək çox çətin deyil. Həqiqi çatışmazlıq, işləmə müddətinin iki dəfəyidir. (Lakin, real tətbiqlər barədə əvvəlcədən düşünərək, hələ də şüşə etmək istəyirəm;)

132
16 апр. Cavab Darren Cook Apr 16 2012-04-16 08:03 '12 at 8:03 'da 2012-04-16 08:03

İnsanlar ikinci şüşə və bir şüşə arasında ayırmaq çətin deyil (şüşə şəffaf sahəsi gizli olması şərtilə)?

Çox kiçik bir sahə (yəni şüşə ucunun eyni genişliyə, sağa isə kiçik bir dəyişikliyə malik olduğu halda kiçik bir kranın üst hissəsindəki eni olduğu halda) demək olar ki, eynidırlar?

Mənə baş verən ilk şey qırmızı şüşə yoxlamaq idi. Şüşə üçün heç bir top yoxsa və ya qismən gizli olsa (yuxarıda göstərildiyi kimi) bu hələ də problemdir.

İkincisi, şüşə şəffaflığı barədə düşündüm. OpenCV-də bir görünüşdə şəffaf obyektlərin tapılması üçün bir neçə iş var. Aşağıdakı linklərə baxın.

Xüsusilə şüşə necə dəqiq müəyyən etdiyinə baxın:

Onların icra nəticələrinə baxın:

2019

101
19 апр. Cavab Abid Rahman K 19 Apr tərəfindən verilir. 2012-04-19 02:02 '12 at 2:02 2012-04-19 02:02

Darren Kukun istedadını çox sevirəm və yığmaçı bu problemə cavab verir. Düşüncələrimə fikirlərimi atmağa başladıq, amma inanıram ki, mənim yanaşma burada buraxmamaq üçün çox məsuliyyət daşıyır.

Bir sözlə, Coca-Cola loqosunun məkanda müəyyən bir yerdə olduğunu müəyyən etmək üçün alqoritmi müəyyənləşdirdiniz. İndi Coca-Cola qutularını digər obyektlərdən ayırmaq üçün uyğun olan təsadüfi yönümlər və təsadüfi miqyaslı amillər üçün heuristics müəyyənləşdirməyə çalışırsınız: şüşə, billboard, reklam və bu ikonik logo ilə əlaqəli Coca-Cola xüsusiyyətləri. Problemin ifadəsində bu əlavə halların bir çoxuna səbəb olmadı, amma alqoritminizin müvəffəqiyyəti üçün vacibdirlər.

Buradakı sirr, hansı əyani funksiyaların içərisində ola biləcəyini və ya banklarda mövcud olmayan digər Koks məhsulları üçün funksiyaları olan mənfi məkan vasitəsilə müəyyən etməkdir. Bu məqsədlə, cari üst cavab bir şüşə kap, maye və ya digər oxşar vizual heuristics varlığı ilə şüşə müəyyən edilə bilməz, əgər və yalnız "can" seçilməsi üçün əsas yanaşma göstərəcəkdir .

Məsələ ondan ibarətdir ki, pozulur. Məsələn, şüşə boş ola bilər və heç bir papaq yox idi, bu yanlış müsbət nəticəyə gətirib çıxardı. Və ya yanlış bir aşkarlığa gətirib çıxaran, təhrif edilmiş əlavə xüsusiyyətləri olan qismən bir şüşə ola bilər. Şübhəsiz ki, bu məqsədlərimiz üçün zərif və təsirli deyil.

Bu məqsədlə bankalar üçün ən uyğun seçmə meyarları aşağıdakılardır:

  • Sualınızdakı şəkildəki obrazın siluet şəkli, sağ mı? Əgər belədirsə, +1.
  • Təbii və ya süni işıq varlığını düşünürsek, şüşə üçün bir xrom planı görürük, yəni alüminiumdan hazırlanır? Əgər belədirsə, +1.
  • Bir obyektin güzgü xüsusiyyətlərini işıq mənbəyimizə ( bir işıq mənbəyinin aşkarlanmasına dair təsvirli video link) nisbətən nisbətən müəyyən edəcəyik? Əgər belədirsə, +1.
  • Topoloji logosunun təhrif edilməsi, obyektin yönləndirilməsi, obyektlərin uyğunluğu (məsələn, bir masaya bənzər düz bir səthdə və ya digər kutular kontekstində) daxil olmaqla, lakin bunlarla məhdudlaşmayan bir obyekt kimi təsvir edən bir obyektin digər xüsusiyyətlərini müəyyən edə bilərikmi? Nişanlar? Bəli, onda hər +1 üçün.

Sizin təsnifatınız belə ola bilər:

  • Namizədlərin hər matçında, Coca Cola loqotipinin olması aşkar edilərsə, gri bir çərçivə çəkin.
  • +2 üzərində hər bir matç üçün qırmızı bir çərçivə çəkir.

Bu görmə qabiliyyətli banklar kimi doğru bir şəkildə təsbit edilə bilən zəif müsbət nəticələrə toxunaraq, tapılanları istifadəçiyə vurğulayır.

Hər bir əmlakın aşkarlanması çox fərqli temporal və məkan bir mürəkkəbliyə malikdir və hər bir yanaşma üçün http://dsp.stackexchange.com vasitəsilə sürətli bir keçid məqsədləriniz üçün ən doğru və effektiv alqoritmi müəyyən etmək üçün daha məqbuldur. Buradakı mənim niyyətim, namizədin aşkar sahəsinin kiçik bir hissəsini aradan qaldırmaqla mümkün olan bir şeyin aşkar olunmasının, bu problemin ən etibarlı və effektiv həlli olmadığını və ideal olaraq müvafiq tədbirlər görməyinizin vacib və sadəcə vurğulamaqdır. .

Və salam, Hacker News'in nəşrinə görə təbrik edirəm ! Ümumiyyətlə, bu, qəbul etdiyi təbliğata layiq bir gözəl sualdır.

41
23 апр. Cavab 23 Apreldə MrGomez'e verilir 2012-04-23 01:56 '12 at 1:56 2012-04-23 01:56

Forma baxırıq

Can / şüşə qırmızı hissəsinin şəklində gander edin. Üstəlik bir az şişirmək və şüşə etiketinin necə düz bir şəkildə düzəldiləcəyinə diqqət edin. Qırmızı hissənin genişliyini onun uzunluğu ilə müqayisə edərək, bu ikisini ayırd edə bilərsiniz.

Həyəcanlara baxırıq

Şüşə və qutuları ayırmaq üçün bir vasitədir. Şüşə plastikdən hazırlanır, qrup isə alüminium metaldan hazırlanır. Çox yaxşı işıqlandırılmış hallarda, güzgü görüntüləyən etiketin etiketi etiket ilə izah etmək üçün bir yol olacaq.

Mən deyə bilərik ki, bu bir insanın etiketin iki növü arasındakı fərqini necə göstərəcək. İşıqlandırma şəraiti pis olarsa, ikincisini hər hansı bir şəkildə fərqləndirməkdə qətiliklə müəyyən bir qeyri-müəyyənlik olacaqdır. Bu vəziyyətdə şəffaf / şəffaf bir şüşə varlığını təsbit etməlisiniz.

35
16 апр. Cavab tskuzzy 16 apr verilir . 2012-04-16 11:31 '12 at 11:31 2012-04-16 11:31

Zdenek Kalal Tracking yırtıcılarına nəzər yetirin. Bu, bəzi hazırlıqları tələb edir, lakin izlənilən obyektin müxtəlif istiqamətlərə və tərəzilərə necə baxdığını və real vaxtda necə aparıldığını fəal şəkildə araşdıra bilər!

Mənbə kodu saytında mövcuddur. MATLAB-da , lakin bəlkə də cəmiyyətin bir üzvü tərəfindən artıq bir Java tətbiqi var. Mən TLD-nin tracker hissəsini C # -də uğurla reallaşdırdım. Düzgün xatırlayıramsa TLD Ferns'i bir işarə nöqtəsi dedektoru olaraq istifadə edir. Bunun əvəzində, SURF və ya SIFT (zaten @stacker tərəfindən təklif olunur), izci tərəfindən itirdiyində bir obyekti yenidən ələ keçirmək üçün istifadə edirəm. Tracker ilə Əlaqə asanlıqla vaxt keçdikcə sift / sörf nümunələrinin dinamik bir siyahısını yaratmağa imkan verir ki, bu da zamanla obyektin yüksək dəqiqliklə yenidən tutulmasına imkan verir.

C # tracker'ımın həyata keçirilməsində maraqlıysanız, xahiş etməkdən çəkinməyin.

31
17 апр. İstifadəçi tərəfindən cavab verildi1222021 Apr 17 2012-04-17 23:56 '12 at 11:56 PM 2012-04-17 23:56

Əgər məhdudiyyətlərinizdən birində olmayan bir kamera ilə məhdudlaşmırsınızsa, Xbox Kinect kimi bir sıra sensoru istifadə edə bilərsiniz. Bununla, dərinliyə və rəngə əsaslanan ardıcıl görüntü seqmentasiyası edə bilərsiniz. Bu, şəkildəki obyektləri tez bir zamanda ayırmağa imkan verir. Затем вы можете использовать сопоставление ICP или аналогичные методы, чтобы даже соответствовать форме, а не просто ее контуру или цвет, и учитывая, что она является цилиндрической, это может быть допустимым вариантом для любой ориентации, если у вас есть предыдущее 3D-сканирование цели. Эти методы часто бывают довольно быстрыми, особенно когда они используются для такой конкретной цели, которая должна решить вашу проблему скорости.

Также я мог бы предложить, не обязательно для точности или скорости, но для удовольствия вы могли бы использовать обученную нейронную сеть на своем сегментированном изображении с оттенком, чтобы идентифицировать форму банки. Они очень быстрые и часто могут быть точными до 80/90%. Тренировка будет немного долгим процессом, хотя вам придется вручную идентифицировать банку в каждом изображении.

25
ответ дан Fantastic Mr Fox 16 апр. '12 в 7:54 2012-04-16 07:54

Я бы обнаружил красные прямоугольники: RGB → HSV, фильтр red → двоичное изображение, закрыть (расширение затем размывается, называемое imclose в matlab)

Затем просмотрите прямоугольники от самых больших до самых маленьких. Прямоугольники, которые имеют меньшие прямоугольники в известном положении/масштабе, могут быть удалены (при условии, что пропорции бутылки постоянны, меньший прямоугольник будет крышкой для бутылок).

Это оставит вас с красными прямоугольниками, тогда вам нужно каким-то образом обнаружить логотипы, чтобы узнать, красные ли они прямоугольники или кокс. Как OCR, но с известным логотипом?

20
ответ дан Alex L 16 апр. '12 в 9:34 2012-04-16 09:34

Это может быть очень наивная идея (или может вообще не работать), но размеры всех кокса могут быть исправлены. Так может быть, если одно и то же изображение содержит как банку, так и бутылку, тогда вы можете рассказать их отдельно по соображениям размера (бутылки будут больше). Теперь из-за недостающей глубины (т.е. 3D-сопоставление для двумерного отображения) возможно, что бутылка может казаться сжатой и не существует разницы в размерах. Вы можете восстановить некоторую информацию о глубине с помощью стереоизображения , а затем восстановить исходный размер.

19
ответ дан Sharad 16 апр. '12 в 8:13 2012-04-16 08:13

Я не знаю OpenCV, но, глядя на проблему логически, я думаю, что вы можете различать бутылку и можете, изменив изображение, которое вы ищете, например, Coca Cola. Вы должны включить до верхней части банки, так как в случае может быть серебряная подкладка наверху кока-колы, а в случае бутылки такой серебряной подкладки не будет.

Но очевидно, что этот алгоритм потерпит неудачу в тех случаях, когда вершина can скрыта, но в этом случае даже человек не сможет отличить два (если видна только часть кока-колы бутылки/банки)

14
ответ дан techExplorer 19 апр. '12 в 10:15 2012-04-19 10:15

Хм, я на самом деле думаю, что нахожусь на чем-то (это похоже на самый интересный вопрос, когда-либо), поэтому было бы позором не продолжать пытаться найти "идеальный" ответ, хотя приемлемый был найден)...

Как только вы найдете логотип, ваши проблемы будут выполнены наполовину. Тогда вам нужно только выяснить различия между тем, что вокруг логотип. Кроме того, мы хотим сделать как можно меньше. Я думаю, что это на самом деле эта легкая часть...

Что вокруг логотипа? Для банки можно увидеть металл, который, несмотря на эффекты освещения, не меняет своего основного цвета. Пока мы знаем угол метки, мы можем сказать, что прямо над ним, поэтому мы смотрим на разницу между ними:

2019

14
ответ дан Deji 12 июля '14 в 19:12 2014-07-12 19:12

Мне нравится вызов и я хочу дать ответ, который решает проблему, я думаю.

  • Извлечь функции (ключевые точки, дескрипторы, такие как SIFT, SURF) логотипа
  • Совместите точки с образцом модели логотипа (используя Matcher, например Brute Force)
  • Оцените координаты твердого тела (проблема PnP - SolvePnP)
  • Оцените положение крышки в соответствии с жестким корпусом
  • Сделайте обратную проекцию и вычислите положение пикселя изображения (ROI) крышки бутылки (я предполагаю, что у вас есть внутренние параметры камеры)
  • Проверьте, существует ли кепка или нет. Если есть, то это бутылка

Обнаружение крышки - еще одна проблема. Это может быть сложным или простым. Если бы я был вами, я бы просто проверил цветную гистограмму в ROI для простого решения.

Пожалуйста, дайте отзыв, если я ошибаюсь. Təşəkkür edirik.

11
ответ дан edayangac 24 сент. '13 в 17:14 2013-09-24 17:14

Существует множество цветовых дескрипторов, используемых для распознавания объектов, в приведенной ниже статье сравниваются многие из них. Они особенно эффективны в сочетании с SIFT или SURF. Только SURF или SIFT не очень полезны для изображения кока-колы, потому что они не распознают множество точек интереса, вам нужна информация о цвете, чтобы помочь. Я использую BIC (Border/Interior Pixel Classi fiation) с SURF в проекте, и он отлично работал для распознавания объектов.

Цветовые дескрипторы для поиска веб-изображений: сравнительное исследование

9
ответ дан Guilherme Defreitas 03 янв. '13 в 18:26 2013-01-03 18:26

Мне нравится ваш вопрос, независимо от того, не зависит от него: P

Интересный в стороне; Я только что закончил тему в своей области, где мы рассмотрели робототехнику и компьютерное зрение. Наш проект на семестр был невероятно похож на тот, который вы описываете.

Нам пришлось разработать робот, который использовал Xbox Kinect для обнаружения коксовых бутылок и банок на любой ориентации в различных условиях освещения и окружающей среды. Наше решение включало использование полосового фильтра на канале Hue в сочетании с преобразованием окружности hough. Мы смогли немного ограничить окружающую среду (мы могли бы выбрать, где и как расположить робота и датчик Kinect), иначе мы собирались использовать преобразования SIFT или SURF.

Вы можете прочитать о нашем подходе на моем сообщении в блоге по теме :)

8
ответ дан aaronsnoswell 04 янв. '13 в 9:10 2013-01-04 09:10

Вам нужна программа, которая изучает и улучшает точность классификации органически из опыта.

Я предлагаю глубокое обучение, с глубоким обучением это становится тривиальной проблемой.

Вы можете перенастроить начальную модель v3 на Tensorflow:

Как перенести начальный конечный уровень для новых категорий .

В этом случае вы будете обучать сверточную нейронную сеть, чтобы классифицировать объект, как может кока-кола или нет.

7
ответ дан Nuelsian 08 сент. '17 в 20:46 2017-09-08 20:46

Глубокое обучение

Соберите по меньшей мере несколько сотен изображений, содержащих банки колы, аннотируйте ограничивающий прямоугольник вокруг них как положительные классы, включая бутылки колы и другие продукты колы, обозначающие их отрицательные классы, а также случайные объекты.

Если вы не собираете очень большой набор данных, выполните трюк использования глубоких функций обучения для небольшого набора данных. Идеально использовать комбинацию векторных машин поддержки (SVM) с глубокими нейронными сетями.

После того, как вы загрузите изображения в ранее обученную модель глубокого обучения (например, GoogleNet), вместо использования уровня принятия решений (окончательного) уровня нейронной сети для использования классификаций используйте данные предыдущего уровня (ов) как функции для обучения вашего классификатора.

OpenCV и Google Net: http://docs.opencv.org/trunk/d5/de7/tutorial_dnn_googlenet.html

OpenCV и SVM: http://docs.opencv.org/2.4/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

6
ответ дан Semih Korkmaz 08 мая '17 в 22:27 2017-05-08 22:27

Я несколько лет опаздываю, отвечая на этот вопрос. Поскольку в последние 5 лет современное искусство подтолкнуло CNN к своим пределам, я бы не стал использовать OpenCV для выполнения этой задачи сейчас! ( Я знаю, что вам особенно нужны функции OpenCv в вопросе ). Я считаю, что алгоритмы обнаружения объектов, такие как Faster-RCNN, YOLO, SSD и т.д., будут иметь эту проблему со значительным запасом по сравнению с функциями OpenCV. Если бы я решил решить эту проблему сейчас (через 6 лет!!), я бы определенно использовал Faster-RCNN .

5
ответ дан Abhijit Balaji 16 марта '18 в 7:18 2018-03-16 07:18

В качестве альтернативы всем этим приятным решениям вы можете обучить свой собственный классификатор и сделать ваше приложение устойчивым к ошибкам. В качестве примера вы можете использовать Haar Training , предоставляя большое количество положительных и отрицательных изображений вашей цели.

Полезно извлекать только банки и их можно комбинировать с обнаружением прозрачных объектов.

5
ответ дан madduci 04 дек. '14 в 9:39 2014-12-04 09:39

Существует пакет компьютерного зрения под названием HALCON от MVTec , чьи демонстрации могут дать вам хорошие алгоритмические идеи. Существует множество примеров, похожих на вашу проблему, которые вы можете запустить в демонстрационном режиме, а затем посмотреть на операторов в коде и посмотреть, как их реализовать из существующих операторов OpenCV.

Я использовал этот пакет, чтобы быстро прототипировать сложные алгоритмы для таких проблем, а затем найти, как их реализовать, используя существующие функции OpenCV. В частности, для вашего случая вы можете попытаться реализовать в OpenCV функциональность, встроенную в оператор find_scaled_shape_model . Некоторые операторы указывают на научную статью о реализации алгоритма, которая может помочь выяснить, как сделать что-то подобное в OpenCV. Ümid edirəm bu kömək edir ...

2
ответ дан Darien Pardinas 10 апр. '14 в 2:40 2014-04-10 02:40

Ответы на этой странице действительно равны:

  • "использовать SIFT"

  • "использовать Kinect"

Если вас не интересует фактическая информатика распознавания образов, и вы просто хотите "использовать" что-то (например, SIFT или Kinect),

сегодня повсеместно просто использовать общедоступные системы распознавания образов.

По состоянию на 2017 год и в течение многих лет распознавание изображений широко и тривиально доступно .

Вы больше не сядете и (попробуете) добиться распознавания образов с нуля, чем сядете и начнете собирать и отображать карты, или что вы начнете рендеринг HTML с нуля или напишите базу данных SQL с нуля.

Вы просто используете тензометр Google (они достигли точки построения чипов, ради всего прочего, быстрее обрабатывать тензорный поток), Clarifai, Bluemix или что-то еще.

AWS только что выпустила хороший для распознавания изображений (2018).

Например, для использования любой из этих служб это несколько строк кода....

 func isItACokeCan() { jds.headers = ["Accept-> 

Это буквально даст вам лучшее, существующее, кокс-распознавание на Земле , в настоящее время достигнутое.

По состоянию на 2018 год вы больше не можете сидеть и "писать лучше распознавания кокса, чем Bluemix", чем вы могли бы "сесть и написать лучшую программу Go, чем AlphaGo".

Системы, такие как Siri, Google Maps, BAAS, основные усилия по обработке изображений - и, очевидно, поиск в тексте google - меняют игру.

Обратите внимание на невероятную разницу только после того, как этот вопрос был задан шесть лет назад.

Во что бы то ни стало , если вы попали в фактическую компьютерную науку распознавания образов , перейдите к ней.

Но этот QA, по-видимому, является скорее обзором технологий.

Так как ответы здесь говорят "использовать библиотеку SIFT" - вы действительно этого не сделали. (Опять же - не более, чем вы по какой-то причине трудолюбиво программируете веб-сервер или базу данных SQL с нуля!)

Вы просто подключаетесь к хорошо известным, вездесущим системам распознавания образов "BAAS" - это строка кода.

2
ответ дан Fattie 01 окт. '17 в 16:44 2017-10-01 16:44

Вы всегда можете обучить каскадный классификатор HAAR, поддерживаемый opencv. Вы можете использовать в качестве положительных образцов бутылки, банки и т.д., Также обнаруживая объекты коки с разными этикетками!

ЗДЕСЬ вы можете воспользоваться некоторыми полезными ссылками, которые помогут вам в обучении.

0
ответ дан Roberto Manfreda 28 июня '18 в 11:53 2018-06-28 11:53

Возможно, слишком много лет поздно, но тем не менее теория, чтобы попробовать.

Отношение ограничивающего прямоугольника красной области логотипа к общему размеру бутылки/банки отличается. В случае Can, должно быть 1:1, тогда как будет отличаться от бутылки (с крышкой или без нее). Это должно облегчить различие между ними.

Обновление: Горизонтальная кривизна области логотипа будет отличаться между Can и Bottle из-за их соответствующей разницы в размерах. Это может быть особенно полезно, если вашему роботу необходимо забрать банку/бутылку, и вы решите захват соответственно.

0
ответ дан KB 05 февр. '18 в 22:33 2018-02-05 22:33

Первыми вещами, которые я бы искал, являются цветные - например, RED, при обнаружении эффекта "красных глаз" на изображении - существует определенный диапазон цветов для обнаружения, некоторые характеристики об этом, учитывая окружающие области и такие, как расстояние, отличное от другого глаз, если он действительно виден на изображении.

1: Первая характеристика - цвет, а красный - очень доминирующий. После обнаружения Coca Cola Red есть несколько объектов, представляющих интерес 1A: Насколько велика эта красная область (достаточно ли количества, чтобы определить истинную возможность или нет - 10 пикселей, вероятно, недостаточно), 1B: содержит ли он цвет ярлыка - "Coca-Cola" или волна. 1B1: достаточно ли рассмотреть высокую вероятность того, что это метка.

Пункт 1 - это вид короткого вырезания - предварительный процесс, если этот сотовый объект существует в изображении - двигайтесь дальше.

Итак, если это так, то я смогу использовать этот сегмент своего изображения и начну искать более масштабное изображение из области, о которой идет речь, - в основном посмотрите на окружающий регион/края...

2: Учитывая указанную выше ID области изображения в 1 - проверьте окружающие точки [края] рассматриваемого предмета. A: Есть ли что-то сверху или снизу - серебро? B: Бутылка может казаться прозрачной, но также может быть стеклянный стол - так есть стеклянный стол/полка или прозрачная область - если так, то есть несколько возможных вариантов. Бутылка MIGHT имеет красную крышку, она может и не быть, но должна иметь либо форму винтов/винтов для бутылок, либо колпачок. C: Даже если это не удается A и B, оно все еще может быть частично. Это более сложно, если это частично, потому что частичная бутылка/частичная может выглядеть одинаково, поэтому некоторая дополнительная обработка измерения края красной области до края. Маленькая бутылка может быть похожа по размеру.

3: После вышеупомянутого анализа, когда я посмотрю на надпись и логотип волны - потому что я могу ориентировать мой поиск некоторых букв в словах. Поскольку у вас может не быть всего текста из-за отсутствия все банки могут выровняться в определенных точках в тексте (на расстоянии), чтобы я мог найти эту вероятность и знать, какие буквы должны существовать в этой точке волны на расстоянии х.

0
ответ дан Ken 04 сент. '17 в 14:40 2017-09-04 14:40

Если вы заинтересованы в том, чтобы быть в реальном времени, то вам нужно добавить фильтр предварительной обработки, чтобы определить, что сканируется с помощью тяжелых вещей. Хороший быстрый, очень реальном времени, фильтр предварительной обработки, который позволит вам сканировать вещи, которые, скорее всего, будут кока-колой, может не выглядеть, чем прежде, чем перейти к более случайным вещам, это примерно так: поиск изображения для самых больших патчей цвета, которые являются определенным допуском от sqrt(pow(red,2) + pow(blue,2) + pow(green,2)) вашей кока-колы. Начните с очень строгой цветоустойчивости и проведите свой путь до более мягких цветовых допусков. Затем, когда ваш робот исчерпал выделенное время для обработки текущего кадра, он использует найденные в настоящее время бутылки для ваших целей. Обратите внимание, что вам нужно будет настроить цвета RGB в sqrt(pow(red,2) + pow(blue,2) + pow(green,2)) , чтобы получить их в порядке.

Кроме того, это gona кажется действительно тупым, но вы обязательно включили оптимизацию компилятора -oFast при компиляции кода C?

0
ответ дан user7892745 13 мая '17 в 1:07 2017-05-13 01:07

Я думаю, что лучшая разница между меткой бутылки и ярлыком может выглядеть следующим образом: Буклетная этикетка прямо по краям сверху вниз. Может ли изображение вверху становится тоньше. Помимо этого, с точки зрения алгоритма чрезвычайно сложно сделать разницу. В моем алгоритме, анализируя моменты, я бы специально искал эту функцию.

-2
ответ дан Wojciech Krukar 03 дек. '17 в 4:06 2017-12-03 04:06

Другие вопросы по меткам или Задайте вопрос