Pull to refresh
47
0
Boris Nagaev @starius

User

Send message

Почему компьютерное зрение очень мало используется на практике

Reading time6 min
Views20K
На самом деле правильнее было бы назвать «машинное зрение», но так я думаю понятнее будет, если кто не знает то это не охранное видеонаблюдение, а распознавание или измерение чего либо c помощью камер. Существует много задач и областей, где компьютерное зрение было бы очень востребовано и могло бы использоваться повсеместно, но на практике оно используется очень редко.

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

Задача вычисления площади может показаться довольно сложной. Если подходить строго математически, то да, например, посчитать площадь квадрата или прямоугольника очень просто умножаем длину на ширину и готово, если треугольника чуть сложнее, а вот других криволинейных фигур может быть очень сложно.
Мой алгоритм подсчета площади настолько прост, что его можно реализовать без всяких библиотек и т.п. буквально в десять строк кода, по сути это простейший детектор движения только с калибровкой камеры. Камера жестко фиксируется над местом, куда подается продукция, делается снимок фона (без продукции), например, белый стол, цвета пикселей загоняются в массив. Далее на стол подается или кладется образец, например какая-то коробка. Далее делается второй снимок с коробкой, цвета второго кадра пишутся в другой массив и затем сравниваются значения цветов, количество отличающихся пикселей суммируется. Затем этот образец измеряется рулеткой, вводится в программу его площадь и вычисляется площадь одного пикселя, т.е. площадь делится на число пикселей. Вот и вся калибровка. Далее достаточно подавать любую продукцию, любого размера и формы, определятся число изменившихся пикселей, и умножается на площадь одного пикселя, найденного при калибровке, надеюсь все понятно. Причем продукция может двигаться, например, на конвейере, площадь будет измеряться правильно, нужно только захват
Читать дальше →
Total votes 64: ↑51 and ↓13+38
Comments76

О принятии решений пользователем

Reading time3 min
Views1.1K
В одном из недавних обсуждений я столкнулся, как мне показалось, с одним распространенным мнением касательно отношений между пользователями и разработчиками. По большой части это касается ответственности первых и вторых, а если быть еще точнее — оформления форм и взаимодействия пользователей с этими формами.

Так уж вышло, что многие из нас не только пользователи, но и разработчики тех или иных продуктов. Так или иначе многим из нас приходится оказываться не только со стороны пользователя формы, но и со стороны, с которой эта форма разработана. Мне кажется некоторые недооценивают влияние своих решений на пользователей и на последствия, которые могут быть в итоге.
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments19

В Англии ты можешь попасть за решётку за хранение шума

Reading time3 min
Views62K
(прим. переводчика)
Последние дни все обсуждают пресловутый законопроект №89417-6, при этом ругая нашу страну за столь непродуманный закон. Данным переводом (полный заголовок которого чуть ниже) я хочу показать, что не только у нас принимают законы, позволяющие привлечь кого угодно к статье практически на ровном месте. В некоторых странах всё ещё хуже. Гораздо хуже. И будем надеяться, что до нас этот бред не дойдёт.


В Англии ты можешь попасть за решётку не только за шифрование данных, но и за астрономический шум.


В комментариях ко вчерашнему посту все удивились тому факту, что в Англии шифрование объявлено вне закона: граждане страны будут отправлены за решётку на срок до пяти лет, если они не смогут предъявить ключ к своим зашифрованным данным.
Читать дальше →
Total votes 154: ↑147 and ↓7+140
Comments165

Законопроект № 89417-6 принят во втором и третьем чтении

Reading time5 min
Views15K
википротестУвы, протест Википедии, ВКонтакте, Яндекса, БашИма, ЖЖ и многих других ни к чему не привёл. Как сообщает в твиттере и на сайте Лента.ру со ссылкой на ТАСС, проект был принят большинством голосов Единой России. Во втором чтении принят 441 голосом, в третьем — 434 голосами (по данным твиттера КПРФ). Хотя и в него и были введены некоторые поправки.

ВАЖНО! Совет при Президенте не одобрял принятие закона, см. UPD13 под катом. А как же тогда он прошёл так легко?
Так же стало известно, что список будет публичным. См. UPD14.
По закону специальная организация будет мониторить Сеть и обращаться в Роскомнадзор в случае, если обнаружит на сайте детскую порнографию, инструкции по производству или приобретению наркотиков или советы по осуществлению самоубийства.
Лента.ру

Официальное объявление уже появилось на сайте законопроекта, новостные сайты, видимо, готовят подробные репортажи (если есть интересные, прошу ссылки постить в комменты). Но мы здесь уже можем начать обсуждение: к чему может привести этот закон в мире IT, что делать дальше и прочее. В пост будут добавляться ссылки на другие источники по мере их появления.
Больше ссылок и подробностей
Total votes 228: ↑211 and ↓17+194
Comments908

Почему я ненавижу фреймворки

Reading time4 min
Views70K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →
Total votes 363: ↑297 and ↓66+231
Comments239

Разработка основанная на Readme

Reading time4 min
Views6.4K
Последнее время я слышу множество разговоров о разработке, основанной на тестировании (TDD), о разработке, основанной на функционировании (BDD), об экстремальном программировании (XP), о SCRUM-е, о собраниях стоя и ещё Бог знает о каком количестве методик для создания ПО, но все эти методики не имеют смысла, если ПО, которое мы создаём не соответствует требованиям пользователей. Давайте я попробую это объяснить по-другому. Идеальная реализация неправильно составленной спецификации бесполезна. Так же, как и полезность прекрасно написанной библиотеки стремится к нулю, если у неё нет документации. Что-то определённо не так, если ваше приложение не решает поставленную проблему или, если никто не знает как им воспользоваться.

Здорово. И как же нам решить эту проблему? Проще, чем вы думаете, и достаточно важно, чтобы выделить ответ в отдельный параграф.

Первым делом создайте Readme файл.
Читать дальше →
Total votes 48: ↑38 and ↓10+28
Comments36

Распознавание цифр с помощью простейшей статистики и анализа топологии

Reading time2 min
Views24K
Дело было на третьем курсе, появился у нас предмет ИИС (интеллектуальные информационные системы). Так как я давно интересовался распознаванием образов, удалось выпросить тему «распознавание рукописных цифр». Я решил не возиться с нейронными сетями и придумать что-то свое, простое, но достаточно эффективное.
Читать дальше →
Total votes 71: ↑68 and ↓3+65
Comments57

Карта Интернета

Reading time3 min
Views19K
Привет всем!

Хочу представить вам Карту Интернета или результат кластеризации более чем 350 тысяч сайтов в соответствии с переходами пользователей между ними. Размер круга определяется посещаемостью сайта, цвет – национальной принадлежностью, а положение на карте – его связями с другими сайтами. Если два сайта имеют стабильный поток пользователей между ними, то они будут «стараться» расположиться ближе друг к другу. После завершения работы алгоритма, на карте можно наблюдать скопления сайтов (кластеры) объединенные общими пользователями.

image

Например, если ввести в поиск habrahabr.ru, то можно увидеть, что dirty.ru и leprosorium.ru в том же «созвездии», а еще подальше livejournal.ru. Это говорит о том, что тот, кто сейчас читает этот текст, также с высокой вероятностью посещает эти сайты (относительно усредненного пользователя Рунета конечно).

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

Тем, кого интересует краткое техническое описание – добро пожаловать под кат
Читать дальше →
Total votes 224: ↑217 and ↓7+210
Comments146

Хочешь быть программистом — будь им!

Reading time4 min
Views51K
Данный пост навеян статьей "Я, пользователь!", которая вызвала много споров, и была весьма прохладно встречена сообществом. Обсуждение в комментариях показало, что мысль, которую Автор высказал довольно жестко и агрессивно, была воспринята как призыв вернуться к ветряным мельницам. Однако, на мой взгляд, проблема затронутая автором, гораздо глубже.
Сейчас я постараюсь объяснить, что я имею в виду.
Total votes 140: ↑114 and ↓26+88
Comments198

Portable Components, кроссплатформенная библиотека для C++

Reading time13 min
Views28K
«Система должна быть спроектирована так,
чтобы оставаться как можно проще
после серии внесенных в нее изменений»

Бьярне Строуструп – программист, автор языка C++

Преамбула


В данной статье мне бы хотелось бы рассказать о довольно популярной, но так редко освещаемой на Хабре библиотеке Portable Components (сокр. POCO). Она будет полезна как разработчикам бизнес-логики программного продукта, так и в решении большинства прикладных задач. При всем изобилии кроссплатформенных библиотек для C++ всё больше людей сталкиваются с POCO лицом к лицу и не знают с чего начать. В данной статье я постараюсь описать технологии, заложенные в библиотеке и дать простейшие примеры решения некоторых задач. Также хотелось бы отметить, что за плечами библиотеки множество успешных как Open Source, так и коммерческих проектов.
Читать дальше →
Total votes 80: ↑80 and ↓0+80
Comments40

Конкурс ВК: Мессенджер для Android. Как это было!?

Reading time3 min
Views35K
Приятного времени суток!

Сколько человек хочет заняться разработкой под Android, но в силу определенных обстоятельств все никак не может начать (у кого-то нет времени, кому-то скучно просто прорешивать примеры, лень, неопределенность)? Сколько человек добавляет каждую, кажущуюся интересной и полезной, статью на хабре в избранное и забивает? До конкурса ВКонтакте на разработку мессенджера под Android, я был среди числа вышеописанных пользователей. Но в один роковой момент все изменилось…
Читать дальше →
Total votes 164: ↑153 and ↓11+142
Comments64

Отправляем заявление в Государственную Думу по законопроекту №89417-6

Reading time2 min
Views29K
image Добрый день всем, кто озабочен проблемой Законопроекта №89417-6 (предлагаемых поправок к закону «Об информации»).

Если вы хотите написать заявление в Государственную Думу, но не знаете, как это сделать, я подготовил пошаговую инструкцию и текст обращения.
Читать дальше →
Total votes 292: ↑276 and ↓16+260
Comments639

Однострочники на С++

Reading time2 min
Views61K
image
На хабе появилось несколько топиков об «однострочниках» на разных языках, которые решали простые задачи. Я решил опубликовать несколько алгоритмов на языке C/С++.
Итак, поехали!
Читать дальше →
Total votes 148: ↑111 and ↓37+74
Comments103

Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать

Reading time15 min
Views58K
Итак, прошел почти год с момента моего первого поста о программировании видеокарт и страшилок о том, как это все сложно. Теперь настала пора показать, что все не так плохо и как пользоваться этой странной штукой по имени OpenCL, да еще и использовать его главное преимущество, то есть возможность запускать один и тот же код на разных девайсах. А еще я покажу как можно получить на порядок большую производительность обычного процессора практически бесплатно.
За деталями под кат...
Total votes 57: ↑54 and ↓3+51
Comments21

Коаны о программировании

Reading time4 min
Views36K
От переводчика: The Codeless Code — сборник побасенок о философии программирования. Побасенки в сборнике разные — некоторые весьма кровожадные, некоторые достаточно хардкорные с технической точки зрения (родной язык автора — Java), но встречаются очень емкие. Представляю вам перевод семи наиболее полюбившихся мне историй, остальные 30+ (новые добавляются каждую неделю) можно найти на сайте.

Пустяк


Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.

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

Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
Читать дальше →
Total votes 253: ↑240 and ↓13+227
Comments74

Тренд, который изменит всё

Reading time3 min
Views3.4K
Производительность компьютеров демонстрирует впечатляющий и устойчивый рост, удваиваясь каждые полтора года. Однако мало кто знает, что и электрическая производительность (число операций на киловатт потреблённой электроэнергии) тоже удваивается каждые полтора года с самого начала компьютерной эры.

Koomey's law
Читать дальше →
Total votes 114: ↑108 and ↓6+102
Comments194

Раскрытие IP-адреса пользователя Skype

Reading time1 min
Views88K


Деанонимизация скайп-пользователя по его skypename через нахождение его реального IP-адреса

1. Качаем отсюда пропатченный скайп версии 5.5:
http://skype-open-source.blogspot.com/2012/03/skype55-deobfuscated-released.html

2. Включаем создание файла с дешифрованным debug логом. Для этого добавляем нескольких ключей в реестр.
https://github.com/skypeopensource/skypeopensource/wiki/skype-3.x-4.x-5.x-enable-logging

3. Выбираем функцию добавить скайп контакт, но не добавляем, а только кликаем на него, чтобы посмотреть vcard. Этого будет достаточно.
Читать дальше →
Total votes 172: ↑140 and ↓32+108
Comments77

Размеры массивов в Java

Reading time2 min
Views32K
Размеры объектов в Java уже обсуждались на Хабре, например, здесь или здесь. Мне бы хотелось подробнее остановиться на размерах многомерных массивов — простая вещь, которая для меня стала неожиданной.

Оптимизируя вычислительный алгоритм по памяти, я наткнулся на то, что при определённых (вполне разумных) входных параметрах создаётся массив float[500][14761][2]. Сколько он может занимать в памяти (на HotSpot 1.6.0_26 32bit, если кому интересно)? Я примерно прикинул, что 500*14 761*2*sizeof(float) = 500*14 761*2*4 = 59 044 000 байт плюс какой-то оверхед. Решив проверить, как на самом деле, я воспользовался Eclipse Memory Analyzer (невероятно волшебная вещь, рекомендую!) и обнаружил, что «Retained Heap» для этого массива составляет 206 662 016 байт! Неплохой оверхед — 350%. Посмотрим, почему так получилось.
Читать дальше →
Total votes 108: ↑104 and ↓4+100
Comments24
12 ...
17

Information

Rating
Does not participate
Registered
Activity